
OpenStreetMap Tagging Schema
Validates and queries OpenStreetMap tagging schemas to ensure your OSM data follows proper tagging conventions. Helps discover correct tag combinations and identifies tagging errors or improvements.
Query and validate OpenStreetMap tags with preset discovery and validation tools
What it does
- Validate OSM tag collections against official schema
- Search for proper tag presets by feature type
- Compare tag sets to identify differences
- Suggest improvements for existing tag combinations
- Convert between JSON and flat tag formats
- Retrieve valid values for specific tag keys
Best for
About OpenStreetMap Tagging Schema
OpenStreetMap Tagging Schema is a community-built MCP server published by gander-tools that provides AI assistants with tools and capabilities via the Model Context Protocol. Validate and discover OpenStreetMap tags quickly with preset discovery and validation tools for accurate mapping metadat It is categorized under developer tools. This server exposes 10 tools that AI clients can invoke during conversations and coding sessions.
How to install
You can install OpenStreetMap Tagging Schema in your AI client of choice. Use the install panel on this page to get one-click setup for Cursor, Claude Desktop, VS Code, and other MCP-compatible clients. This server supports remote connections over HTTP, so no local installation is required.
License
OpenStreetMap Tagging Schema is released under the GPL-3.0 license.
Tools (10)
Compare two sets of OpenStreetMap tags to identify differences, additions, deletions, and modifications. Performs detailed tag-level comparison showing which tags were added, removed, or changed between two versions. Provides human-readable names for all tags and values using the OSM tagging schema. Use this for reviewing tag changes, understanding feature modifications, analyzing tag history, or validating tag transformations. Returns structured diff with localized names for better readability.
Convert OpenStreetMap tags from flat text format (key=value per line) to JSON object format. This is an INPUT CONVERTER for AI workflows - use it FIRST when you receive tags in flat text format and need to work with them as a JSON object. Handles various text formats including key=value pairs (one per line), whitespace variations, empty lines, and comments (lines starting with #). Returns a clean JSON object with all parsed tags. Essential for processing OSM data from text exports, iD editor output, or JOSM exports.
Get complete detailed information about a specific OpenStreetMap preset. Presets are feature templates that define standard tagging patterns (e.g., the 'Restaurant' preset defines amenity=restaurant and lists fields like cuisine, outdoor_seating, etc.). Returns comprehensive preset information including: display name, all required and suggested tags, supported geometry types, complete list of fields (with template expansion), field types and options, and parent/child preset relationships. Use this to understand exactly how to tag a specific feature type, learn what fields are available for a preset, or get example values for proper tagging.
Retrieve all possible values for a specific OpenStreetMap tag key, with localized human-readable names for both the key and each value. This tool searches through the OSM tagging schema (both predefined field options and preset definitions) to find every documented value that can be used with the specified key. Returns four pieces of information: the normalized key name, localized key display name, a simple array of all values, and a detailed array with localized names for each value. Use this to discover what values are available for a tag (e.g., all amenity types), learn the proper terminology for values, or build UI selection lists. Essential for understanding OSM's controlled vocabularies.
Convert OpenStreetMap tags from JSON object format to flat text format (key=value per line). This is an OUTPUT CONVERTER for AI workflows - use it LAST when you need to present tags in a human-readable text format or export them for use in other tools. Produces clean, consistent key=value format with one tag per line, sorted alphabetically by key. Use this for generating human-readable tag lists, exporting to OSM editors, or sharing tag collections. The output format is compatible with JOSM, iD editor imports, and other OSM tools that accept flat text tag format.
OpenStreetMap Tagging Schema MCP Server
What is this?
This is a Model Context Protocol (MCP) server designed specifically for AI agents and LLM applications. It acts as a bridge between artificial intelligence systems and the comprehensive OpenStreetMap tagging knowledge base provided by the official @openstreetmap/id-tagging-schema library.
Current Status: Production-ready MCP server, actively maintained and continuously improved. The service is deployed and accessible at https://mcp.gander.tools/osm-tagging/.
We welcome your feedback! Have ideas for improvements? Found a bug? Want to discuss features? Please open an issue or start a discussion.
What this is NOT
⚠️ Important clarifications:
- Not a standalone application: This server requires integration with AI systems (like Claude Code or Claude Desktop) to be useful. It has no user interface or web frontend.
- Not for direct human use: Without an AI agent as an intermediary, this tool provides no value to end users. It's designed exclusively for programmatic access by LLM applications.
- Not a public API for general use: The deployed service at mcp.gander.tools is intended for integration with AI agents, not for direct HTTP requests or high-volume automated queries. Please do not attempt to abuse the service with DDoS attacks or excessive traffic.
If you're looking for a user-facing OSM tagging tool, consider iD editor or JOSM instead.
Features
7 MCP Tools organized into 3 categories:
- Tag Query (2 tools): Query tag values and search tags
- Preset Discovery (2 tools): Search and explore OSM presets with detailed configurations
- Validation (3 tools): Validate tags, check for deprecated tags, suggest improvements
📖 Full tool reference: docs/api/
Installation
Using npx (Recommended)
# No installation needed - run directly
npx @gander-tools/osm-tagging-schema-mcp
Using Docker
# Run with stdio transport
docker run -i ghcr.io/gander-tools/osm-tagging-schema-mcp:latest
📖 More options: docs/user/installation.md (source installation, verification, troubleshooting)
Quick Start
With Claude Code CLI
# Add to Claude Code
claude mcp add --transport stdio osm-tagging-schema -- npx -y @gander-tools/osm-tagging-schema-mcp
# Use in conversations
# Ask Claude: "What OSM tags are available for restaurants?"
# Ask Claude: "Validate these tags: amenity=parking, capacity=50"
With Claude Desktop
Add to your Claude Desktop configuration:
{
"mcpServers": {
"osm-tagging-schema": {
"command": "npx",
"args": ["@gander-tools/osm-tagging-schema-mcp"]
}
}
}
📖 Next steps:
- Configuration Guide - Setup for Claude Code/Desktop and custom clients
- Usage Guide - Tool examples and workflows
- API Reference - Complete tool documentation
- Deployment Guide - Production HTTP/Docker deployment
Testing with MCP Inspector
Test and debug the server using the official MCP Inspector:
# Test published package (quickest)
npx @modelcontextprotocol/inspector npx @gander-tools/osm-tagging-schema-mcp
# Test Docker image
npx @modelcontextprotocol/inspector docker run --rm -i ghcr.io/gander-tools/osm-tagging-schema-mcp
The Inspector provides an interactive web UI to test all tools, inspect responses, and debug issues.
📖 Complete inspection guide: docs/development/inspection.md (includes HTTP transport testing)
Development
Built with Test-Driven Development (TDD) and Property-Based Fuzzing:
- Comprehensive test suite (unit + integration) with 100% pass rate
- Property-based fuzz tests with fast-check for edge case discovery
- Continuous fuzzing in CI/CD (weekly schedule + on every push/PR)
npm install # Install dependencies
npm test # Run all tests
npm run test:fuzz # Run fuzz tests
npm run build # Build for production
📖 Development guides: docs/development/development.md | docs/development/fuzzing.md
Contributing
Contributions welcome! This project follows Test-Driven Development (TDD).
- Fork and clone the repository
- Install dependencies:
npm install - Create a feature branch
- Write tests first, then implement
- Ensure all tests pass:
npm test - Submit a pull request
📖 Guidelines: docs/development/contributing.md
Documentation
Quick Navigation
Choose your path:
| I want to... | Go to |
|---|---|
| Install and run the server | Installation Guide |
| Configure with Claude Code/Desktop | Configuration Guide |
| Learn how to use the tools | Usage Guide → API Reference |
| Test and debug the server | Inspection Guide |
| Deploy in production (HTTP/Docker) | Deployment Guide |
| Fix issues or errors | Troubleshooting Guide |
| Contribute to the project | Contributing Guide |
Complete Documentation
User Guides:
- Installation - Setup guide (npx, Docker, source)
- Configuration - Claude Code/Desktop configuration
- Usage - Tool examples and workflows
- API Reference - Complete tool documentation
- Troubleshooting - Common issues and solutions
Developer Docs:
- Contributing - Contribution guidelines (TDD workflow)
- Development - Development setup and debugging
- Inspection - MCP Inspector testing guide
- Fuzzing - Security fuzzing and property testing
- Roadmap - Project roadmap and future features
- Release Process - Release and publishing workflo
README truncated. View full README on GitHub.
Alternatives
Related Skills
Browse all skillsUse when working with the OpenAI API (Responses API) or OpenAI platform features (tools, streaming, Realtime API, auth, models, rate limits, MCP) and you need authoritative, up-to-date documentation (schemas, examples, limits, edge cases). Prefer the OpenAI Developer Documentation MCP server tools when available; otherwise guide the user to enable `openaiDeveloperDocs`.
Automate Instagram tasks via Rube MCP (Composio): create posts, carousels, manage media, get insights, and publishing limits. Always search tools first for current schemas.
Automate YouTube tasks via Rube MCP (Composio): upload videos, manage playlists, search content, get analytics, and handle comments. Always search tools first for current schemas.
Automate Freshservice ITSM tasks via Rube MCP (Composio): create/update tickets, bulk operations, service requests, and outbound emails. Always search tools first for current schemas.
UI design system toolkit for Senior UI Designer including design token generation, component documentation, responsive design calculations, and developer handoff tools. Use for creating design systems, maintaining visual consistency, and facilitating design-dev collaboration.
Automate Microsoft Teams tasks via Rube MCP (Composio): send messages, manage channels, create meetings, handle chats, and search messages. Always search tools first for current schemas.