mcp-uk-tools
An MCP server that exposes keyless UK public-data tools for postcode lookups and bank holidays to AI clients.
Look up a UK postcode for town/area, region, council, country, and coordinates.
Find the nearest UK postcodes to a latitude/longitude, with an optional limit (1–100).
List upcoming UK bank holidays by division (England & Wales, Scotland, Northern Ireland), including today in Europe/London, sorted, max 8.
Use it from MCP-compatible clients like Claude Code or Claude Desktop over stdio; no API keys required.
Arguments are validated before network calls, with a 10-second deadline and MCP cancellation support.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-uk-tools What council is SW1A 1AA in?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mcp-uk-tools
A small Model Context Protocol (MCP) server that exposes UK public-data tools to any MCP-compatible AI client — Claude Code, Claude Desktop, or your own agent.
It's a clean, dependency-light reference for how I build MCP tool servers: a typed tool schema, a thin request handler, and each tool wrapping a real data source. Every source here is a free, keyless public API, so there are no API keys or secrets anywhere in this repo.
I use this same pattern in production to give an LLM grounded, source-cited access to official registers — this is the open, keyless version of it.
Tools
Tool | What it does | Source |
| Town/area, region, council, country & coordinates for a postcode | postcodes.io |
| Nearest postcodes to a latitude/longitude | postcodes.io |
| Upcoming UK bank holidays by division | gov.uk |
Related MCP server: Property Price Search MCP Server
Run it
npm ci
node server.js # speaks MCP over stdioUse it from Claude Code / Claude Desktop
Add it to your MCP client config:
{
"mcpServers": {
"uk-tools": {
"command": "node",
"args": ["/absolute/path/to/mcp-uk-tools/server.js"]
}
}
}Then just ask: "What council is SW1A 1AA in?" or "When is the next UK bank holiday?" — the model calls the tools itself.
How it works
ListToolsRequestSchema→ advertises the typed tool schemasCallToolRequestSchema→ routes a call to the matching handlereach handler does one
fetchto a keyless public API and returns JSON
That's the whole contract. Swap the data sources for your own APIs and you have a grounded tool layer for any agent.
Tests
npm test # node --test — unit, upstream-response, timeout and stdio integration testsEvery push and PR runs the suite on Node 22 and 24 via GitHub Actions. Node 22+ is required; use a supported LTS release.
License
MIT © Azeem Javed
Reliability contract
Arguments are validated by the server before network access. Nearest-postcode coordinates must be finite numbers within geographic bounds; limit is an integer from 1 to 100. Unknown holiday divisions return an explicit error. Upstream failures and malformed responses do not become successful empty results.
Bank holidays include today in Europe/London, are sorted by date, and return at most eight events. Requests have a 10-second deadline and propagate MCP cancellation. The postcode lookup's historical town field represents an administrative ward/parish, not a verified postal town.
The lockfile and npm ci make dependency resolution repeatable. Tests mock upstream data, cover London date boundaries and exercise a real stdio client/server exchange without contacting public APIs. Dependabot checks npm and Actions dependencies weekly.
npm ci
npm run check
npm test
npm audit --omit=devNo upstream availability guarantee is implied. Sources: Postcodes.io geolocation contract and GOV.UK bank-holiday data.
Available Tools
3 toolsuk_bank_holidaysA
List upcoming UK bank holidays for a division. Source: gov.uk (keyless).
Inputs: division.
uk_postcode_lookupB
Look up a UK postcode — town/area, region, council, country and coordinates. Source: postcodes.io (keyless).
Inputs: postcode (required).
uk_postcode_nearestB
Find UK postcodes nearest to a latitude/longitude. Source: postcodes.io (keyless).
Inputs: latitude (required), longitude (required), limit.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 3 tools
Each tool serves a clearly distinct purpose: postcode lookup by code, nearest postcodes by coordinates, and bank holidays. There is no overlap between them.
All tools follow a consistent snake_case pattern with the 'uk_' prefix and descriptive names. The naming is predictable and readable.
With only 3 tools, the server feels thin for a general UK utilities toolkit. While each tool is useful, more tools (e.g., reverse geocoding, bank holiday by year) would make the set more complete.
The tools cover two UK data domains (postcodes and bank holidays) but lack obvious operations like looking up a postcode by place name, validating postcodes, or listing holidays for a specific year. Notable gaps exist for a 'UK tools' server.
Maintenance
Related MCP Connectors
Postcodes MCP — wraps postcodes.io UK postcode API (free, no auth)
UK postcode lookup, street-level crime, flood warnings, grid carbon intensity, bank holidays
UK postcode lookup, nearest postcodes, autocomplete and distance (OS open data)
Address validation & geocoding for AI agents: 240+ countries, UK PAF, free US/CA enrichment
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceProvides Japanese postal code to address lookup functionality that can be integrated with AI assistants and other MCP clients.3MIT
- AlicenseAqualityDmaintenanceEnables users to search UK property prices by postcode, street, or city using the HM Land Registry's SPARQL endpoint. It also provides tools for resolving postcodes and finding nearby locations through Ordnance Survey data.22MIT
- AlicenseCqualityCmaintenanceA no-key-first MCP server providing access to UK public data including postcodes, bank holidays, carbon intensity, flood warnings, and government datasets.261MIT
- AlicenseNot gradedqualityBmaintenanceEnables access to UK government open data via the data.gov.uk CKAN API, allowing querying of datasets through natural language or direct MCP tools.105 npmMIT