Validates UK addresses, postcodes, emails, and phone numbers using Royal Mail PAF, live SMTP, and HLR data.
Also known as postio-uk/postio-integrations, postcode-address-validation, @postio/mcp
- Stars
- 0
- Tools
- 6
- Downloads, 30 days
- —
- Latest version
- 0.1.5
- Last commit
- Oct 23, 2026
- License
- MIT
What is Postio MCP?
Postio validates UK addresses, postcodes, emails, and phone numbers using Royal Mail PAF, live SMTP, and HLR data. It exposes 6 tools, such as postio_address_search, postio_postcode_lookup, postio_udprn_lookup.
Summary generated from the project's README
About Postio MCP server
Verifying UK contact details directly within an AI assistant is what Postio enables for developers and automated agents. By connecting this server to MCP-aware hosts like Claude Desktop, Cursor, or Windsurf via npx, users can validate UK addresses, postcodes, emails, and phone numbers using real-world data sources. The server requires a POSTIO_API_KEY to perform billable lookups, though it can start without one to advertise its available tools.
Developers can use specific tools to perform complex verification tasks. The postio_address_search tool provides suggestions and UDPRNs, while postio_postcode_lookup retrieves all PAF delivery points at a specific postcode. For communication data, postio_email_validate checks syntax and SMTP status, and postio_phone_validate performs live HLR lookups to identify carriers and reachability. The server is designed to work over stdio and is compatible with any host that supports the Model Context Protocol.
What you can do with it
- 1Find specific UK addressesAsk the AI to find all addresses located on a specific street or within a certain postcode area.
- 2Validate mobile phone numbersDetermine if a list of UK phone numbers are reachable and identify which ones are mobile devices.
- 3Retrieve full address recordsUse a unique UDPRN to pull a complete, detailed address record.
Written from the project's README. Every use case is checked against a quote from it.
How to install Postio MCP
Formats verified 10 Nov 2026Add to CursorAdd to GooseInstall Postio MCP in Claude Code
$ claude mcp add --env 'POSTIO_API_KEY=<YOUR_POSTIO_API_KEY>' postcode-address-validation -- npx -y @postio/mcpInstall Postio MCP in Cursor
~/.cursor/mcp.json
{
"mcpServers": {
"postcode-address-validation": {
"command": "npx",
"args": [
"-y",
"@postio/mcp"
],
"env": {
"POSTIO_API_KEY": "<YOUR_POSTIO_API_KEY>"
}
}
}
}Install Postio MCP in VS Code
.vscode/mcp.json
{
"servers": {
"postcode-address-validation": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@postio/mcp"
],
"env": {
"POSTIO_API_KEY": "<YOUR_POSTIO_API_KEY>"
}
}
}
}Install Postio MCP in VS Code CLI
$ code --add-mcp '{"name":"postcode-address-validation","type":"stdio","command":"npx","args":["-y","@postio/mcp"],"env":{"POSTIO_API_KEY":"<YOUR_POSTIO_API_KEY>"}}'Install Postio MCP in Claude Desktop
claude_desktop_config.json
{
"mcpServers": {
"postcode-address-validation": {
"command": "npx",
"args": [
"-y",
"@postio/mcp"
],
"env": {
"POSTIO_API_KEY": "<YOUR_POSTIO_API_KEY>"
}
}
}
}Install Postio MCP in Codex
$ codex mcp add postcode-address-validation --env 'POSTIO_API_KEY=<YOUR_POSTIO_API_KEY>' -- npx -y @postio/mcpInstall Postio MCP in Codex config.toml
~/.codex/config.toml
[mcp_servers.postcode-address-validation] command = "npx" args = ["-y", "@postio/mcp"] [mcp_servers.postcode-address-validation.env] POSTIO_API_KEY = "<YOUR_POSTIO_API_KEY>"
Install Postio MCP in Gemini CLI
$ gemini mcp add -s user -e 'POSTIO_API_KEY=<YOUR_POSTIO_API_KEY>' postcode-address-validation npx -- -y @postio/mcpInstall Postio MCP in Gemini settings.json
~/.gemini/settings.json
{
"mcpServers": {
"postcode-address-validation": {
"command": "npx",
"args": [
"-y",
"@postio/mcp"
],
"env": {
"POSTIO_API_KEY": "<YOUR_POSTIO_API_KEY>"
}
}
}
}Postio MCP tools 6
Detected from the READMEpostio_address_searchpostio_postcode_lookuppostio_udprn_lookuppostio_email_validatepostio_phone_validatepostio_connect
| postio_address_search | — | |
| postio_postcode_lookup | — | |
| postio_udprn_lookup | — | |
| postio_email_validate | — | |
| postio_phone_validate | — | |
| postio_connect | — |
Configuration
POSTIO_API_KEYRequiredSecretPostio API key (pk_…). Free key, first 100 lookups on us, no card: https://postio.co.uk/signup
POSTIO_BASE_URLOverride the API base URL. Defaults to https://api.postio.co.uk/v1 (include /v1). Only needed for staging.
| Name | Description | |
|---|---|---|
| POSTIO_API_KEY | Postio API key (pk_…). Free key, first 100 lookups on us, no card: https://postio.co.uk/signup | RequiredSecret |
| POSTIO_BASE_URL | Override the API base URL. Defaults to https://api.postio.co.uk/v1 (include /v1). Only needed for staging. |
Automated checks
Ran Nov 13, 2026Full report →Passed our automated checks. That is not a security audit: read the code and give the server the narrowest access it needs. How checks work
- Source repository linked and reachablepostio-uk/postio-integrations is public and reachablegithub.com/postio-uk/postio-integrations ↗Pass
- Package names this repository as its source@postio/mcp names postio-uk/postio-integrations as sourcenpmjs.com/package/@postio/mcp ↗Pass
- Build provenance (Sigstore attestation)Sigstore attestation for @postio/mcpnpmjs.com/package/@postio/mcp/v/0.1.5#provenance ↗Pass
- Open source license (OSI)MITspdx.org/licenses/MIT.html ↗Pass
- Commit or release in the last yearLast commit or release 2026-10-23github.com/postio-uk/postio-integrations ↗Pass
- OpenSSF ScorecardNot checked
- Package name not close to a popular packageNo popular package one edit away from @postio/mcpPass
- No critical advisory in the package or its dependencies101 resolved dependencies checked; no critical advisoryosv.dev ↗Pass
- No hidden instructions to the model6 tool descriptions and the README read; no override phrases, credential paths or hidden charactersPass
- Destructive tools are labelledNo tool named like delete, drop or execPass
- Remote endpoint answers the MCP handshakeNot checked
README
View on GitHub@postio/mcp
Model Context Protocol server for Postio — the UK validation API for addresses, emails and phone numbers, exposed as tools for any MCP-aware AI host.
First time? Sign up free — first 100 lookups on us, no card needed.
Works with Claude Desktop, Claude Code, Cursor, Windsurf, Zed, Continue, and anything else that speaks MCP over stdio.
Node 20+.
Install
You don't, really. Use npx from your host's MCP config.
Claude Code
claude mcp add postio --env POSTIO_API_KEY=pk_… -- npx -y @postio/mcp
Claude Desktop
Edit ~/Library/Application Support/Claude/claude_desktop_config.json
(macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"postio": {
"command": "npx",
"args": ["-y", "@postio/mcp"],
"env": { "POSTIO_API_KEY": "pk_…" }
}
}
}
Cursor
~/.cursor/mcp.json (or <project>/.cursor/mcp.json for project-scoped):
{
"mcpServers": {
"postio": {
"command": "npx",
"args": ["-y", "@postio/mcp"],
"env": { "POSTIO_API_KEY": "pk_…" }
}
}
}
Windsurf / Zed / Continue
Same JSON as Cursor — they all consume the standard MCP server config shape.
Tools
| Tool | What it does | Billable |
|---|---|---|
postio_address_search |
Free-form UK address search → suggestions + UDPRNs | No |
postio_postcode_lookup |
All PAF delivery points at a postcode | Yes (on hit) |
postio_udprn_lookup |
Full record for a single UDPRN | Yes (on hit) |
postio_email_validate |
Syntax + typo + MX + SMTP + classification | Yes |
postio_phone_validate |
Parse + live HLR lookup (carrier, ported, reachable) | Yes |
postio_connect |
Free health probe | No |
The tools are intentionally primitive and 1:1 with the API. The
agent decides when to chain them — a typical address-finder flow
is postio_address_search → pick a UDPRN → postio_udprn_lookup
for the full record.
Each tool returns the raw API envelope as JSON text, including
meta.requestId for support correlation.
Example prompts
"Look up the address with udprn 25742215." →
postio_udprn_lookupwithudprn=25742215
"Find addresses on Wimpole Street W1G." →
postio_address_searchwithquery="Wimpole Street W1G"
"Is alice@gnail.com a real email address?" →
postio_email_validatewithemail="alice@gnail.com"→ the response includesdidYouMean: "gmail.com".
"Verify these UK phone numbers and tell me which are mobile." →
postio_phone_validateper number.
Configuration
| Env var | Purpose |
|---|---|
POSTIO_API_KEY |
Required. Your Postio API key. |
POSTIO_BASE_URL |
Optional override of the API base URL (default https://api.postio.co.uk/v1). |
A missing POSTIO_API_KEY is not fatal — the server still starts and
advertises its tools, so a host can list them before you've configured
credentials. Individual calls then fail with a message telling you to
set the key.
Official MCP Registry
Listed at registry.modelcontextprotocol.io
as uk.co.postio/postcode-address-validation, published under a
domain-verified namespace (not a personal GitHub one).
curl "https://registry.modelcontextprotocol.io/v0.1/servers/uk.co.postio%2Fpostcode-address-validation/versions/latest"
The listing is generated from server.json in this
directory; the version there tracks this package's version. CI
(publish-mcp-registry.yml) republishes on change.
License
MIT.
Postio MCP questions
How do I add Postio MCP to Claude Code?
Run claude mcp add --env 'POSTIO_API_KEY=<YOUR_POSTIO_API_KEY>' postcode-address-validation -- npx -y @postio/mcp in your terminal. Add --scope user to make it available in every project.
How do I add Postio MCP to Cursor?
Open ~/.cursor/mcp.json and add the server under mcpServers, using the Cursor config shown in the install section above.
What tools does Postio MCP provide?
It exposes 6 tools, including postio_address_search, postio_postcode_lookup, postio_udprn_lookup, postio_email_validate, postio_phone_validate.
Can I use this with Claude Desktop?
Yes, you can configure it in your Claude Desktop configuration file using npx.
What happens if I don't provide an API key?
The server will still start and list its tools, but individual tool calls will fail with a message instructing you to set the key.