Ordnance Survey - MCP Server
by CHRISCARLON
This is a Python-based MCP server that provides access to the Ordnance Survey APIs. It acts as a bridge between MCP clients and the OS APIs, simplifying geographic data queries through a standardized protocol.
Last updated: N/A
Ordnance Survey - MCP Server
A Python-based MCP server that provides access to the Ordnance Survey APIs.
Overview
This service creates a bridge between MCP clients and the OS APIs, making it easy to query geographic data through a standardised protocol.
The service handles authentication, (basic) rate limiting, and provides a simplified interface to complex OS APIs.
Project Structure
-
api_service - Asynchronous HTTP client implementation for the OS APIs
- Handles authentication, request formatting, and response processing
- Manages rate limiting and error handling
- Provides a clean interface to the external API endpoints
-
mcp_service - Exposes OS APIs functionality as MCP tools
- Converts API responses to MCP-compatible formats
- Implements business logic for feature operations
- Provides a standardized interface for other services
Features
- Collection management (listing and querying collections)
- Feature search with spatial and attribute filters
- Individual feature retrieval by ID
- Linked identifier operations
- Bulk feature operations
Requirements
- Python 3.11+
- OS API Key (set as environment variable
OS_API_KEY) - You will need to register for an OS Data Hub account to get an API key
- Dependencies: aiohttp, mcp[cli]
Usage
Configure in your MCP host configuration file (e.g Claude Desktop):
{
"mcpServers": {
"os-ngd-api": {
"command": "/Users/username/.local/bin/uv",
"args": ["--directory", "src/", "run", "server.py"],
"env": {
"OS_API_KEY": "your_api_key_here"
}
}
}
}
Claude Desktop Integration
This MCP service has only been tested with Claude Desktop.
The aim is to make this service work with various MCP hosts/clients, but this has not been tested yet.
When using with Claude Desktop:
- Ensure Claude Desktop is configured to access local tools
- The service will be available as a tool once it's running
- No additional network configuration is needed
Available Tools
All of this is a work in progress, but the following tools are available:
hello_world- Test connectivitycheck_api_key- Verify API key configurationlist_collections- List available feature collectionsget_collection_info- Get details about a specific collectionget_collection_queryables- Get filterable properties for a collectionsearch_features- Search features by various criteriaget_feature- Retrieve a specific feature by IDget_linked_identifiers- Find related identifiersget_bulk_features- Retrieve multiple features in a single callget_bulk_linked_features- Get linked features in bulkget_prompt_templates- Get standard prompt templates for common operations
Using Prompt Templates
This service provides pre-configured prompt templates to help you get started.
To access these templates ask Claude "show me available prompt templates"
Contributing
Contributions are welcome! Please open an issue or submit a pull request.
License
This project is licensed under the MIT License.
This project does not have the endorsement of Ordnance Survey.