Connects Claude to sthan.io's US postal APIs. You get eight tools: verify addresses against USPS data with DPV and ZIP+4, parse freeform text into structured components, autocomplete addresses/cities/ZIPs with sub-100ms response times, forward and reverse geocoding with accuracy scores, and IPv4/IPv6 geolocation. The verify endpoint is the standout here, returning delivery point validation and residential/commercial flags from real postal records instead of guessing. Runs via stdio, needs a free API key from sthan.io (no credit card), and works with Claude Desktop, Cursor, VS Code, or any MCP client. Useful when you're building workflows that need to validate shipping addresses, enrich location data, or let Claude handle geospatial queries without hallucinating coordinates.
MCP server for sthan.io — give your AI assistant the ability to verify, parse, autocomplete, and geocode US addresses, and look up IP geolocation. Works with Claude Desktop, Claude Code, Cursor, VS Code, Windsurf, and any MCP-compatible client.
8 tools · TypeScript · stdio transport · Free tier, no credit card required.
| Tool | What it does |
|---|---|
sthan_verify_address | Verify a US address is real and deliverable. Returns standardized format, ZIP+4, DPV, residential/commercial. |
sthan_parse_address | Parse freeform US address text into structured components (street number, name, type, direction, unit, city, state, zip). |
sthan_autocomplete_address | Suggest complete US addresses from partial input. Sub-100ms. |
sthan_autocomplete_city | Suggest US cities from partial input, with state code. |
sthan_autocomplete_zipcode | Suggest US ZIP codes from partial input. |
sthan_geocode | US address → latitude/longitude with accuracy + confidence. |
sthan_reverse_geocode | Latitude/longitude → nearest US street address with distance in meters. |
sthan_ip_geolocation | IPv4 or IPv6 → country, region, city, coordinates, timezone, postal code. |
Sign up at sthan.io and create a key from the dashboard. No credit card.
Claude Desktop / Claude Code (~/.claude/mcp.json or project .claude/mcp.json):
{
"mcpServers": {
"sthan": {
"command": "npx",
"args": ["-y", "@sthan/mcp-server"],
"env": { "STHAN_API_KEY": "sthan_test_your_key_here" }
}
}
}
Cursor (.cursor/mcp.json):
{
"mcpServers": {
"sthan": {
"command": "npx",
"args": ["-y", "@sthan/mcp-server"],
"env": { "STHAN_API_KEY": "sthan_test_your_key_here" }
}
}
}
VS Code (settings.json):
{
"mcp.servers": {
"sthan": {
"command": "npx",
"args": ["-y", "@sthan/mcp-server"],
"env": { "STHAN_API_KEY": "sthan_test_your_key_here" }
}
}
}
Once configured, just ask your AI assistant naturally:
| Variable | Required | Description |
|---|---|---|
STHAN_API_KEY | Yes | Your sthan.io API key (sthan_test_* for development, sthan_live_* for production) |
STHAN_API_URL | No | Override base URL (default: https://api.sthan.io) |
This monorepo publishes two packages:
| Package | npm | Purpose |
|---|---|---|
@sthan/mcp-server | The MCP server itself — the binary that your client launches | |
@sthan/core | TypeScript SDK for direct programmatic use of sthan.io APIs |
git clone https://github.com/sthan-io/mcp-server.git
cd mcp-server
npm install
npm run build --workspaces
Then run the server with STHAN_API_KEY=sthan_test_... node packages/mcp-server/dist/index.js.
llms-full.txt): https://api.sthan.io/llms-full.txtMIT — see LICENSE.
STHAN_API_KEY*secretYour sthan.io API key (get one free at https://sthan.io/dashboard)