MCP Server README

The full upstream README, mirrored for reference. Install config, tool schemas, adoption signals and our own overview live on the MCP Server listing page.

Sthan MCP Server

npm version License: MIT

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.


Why use it

  • Real US postal data — addresses are verified against authoritative postal records, not heuristics. Returns delivery point validation (DPV), ZIP+4, residential/commercial flag.
  • Sub-100ms autocomplete — typeahead-grade response times for address, city, and ZIP suggestions.
  • Strong geocoding — forward geocoding returns accuracy classification (rooftop / interpolated / centroid / approximate) plus a confidence score, so your AI knows when to trust the result.
  • IPv4 + IPv6 geolocation — country, region, city, coordinates, postal code, timezone with current local time, flag, currency, calling code, network (ASN, ISP, organisation), mobile/proxy/hosting flags, reverse DNS and a confidence score.
  • Free tier with no credit card — get a key in under a minute at sthan.io/dashboard.

Tools

ToolWhat it does
sthan_verify_addressVerify a US address is real and deliverable. Returns standardized format, ZIP+4, DPV, residential/commercial.
sthan_parse_addressParse freeform US address text into structured components (street number, name, type, direction, unit, city, state, zip).
sthan_autocomplete_addressSuggest complete US addresses from partial input. Sub-100ms.
sthan_autocomplete_citySuggest US cities from partial input, with state code.
sthan_autocomplete_zipcodeSuggest US ZIP codes from partial input.
sthan_geocodeUS address → latitude/longitude with accuracy + confidence, county, ZIP+4 and time zone.
sthan_reverse_geocodeLatitude/longitude → nearest US street address with distance in meters, county, ZIP+4 and time zone; limit (up to 10) also lists nearby addresses.
sthan_ip_geolocationIPv4 or IPv6 → location (country to postal code, local time, flag, currency), the network behind it (ASN, ISP, proxy/hosting flags) and a confidence score.

Quick start

1. Get a free API key

Sign up at sthan.io and create a key from the dashboard. No credit card.

2. One-click install

Add to Claude Desktop Install in VS Code Install in VS Code Insiders Add to Cursor

  • Claude Desktop: download sthan.mcpb and double-click it. Claude asks for your API key and keeps it in your system keychain. Nothing else to install.
  • VS Code: click the button. VS Code asks for your API key and stores it securely.
  • Cursor: click the button, then replace your_key_here with your key in Cursor Settings > MCP.
  • Claude Code: claude mcp add sthan -e STHAN_API_KEY=your_key_here -- npx -y @sthan/mcp-server (details below).

3. Or set it up manually

Replace your_key_here with your key. Every setup below downloads the latest @sthan/mcp-server from npm and calls the live API at https://api.sthan.io.

Claude Code (terminal):

Terminal
claude mcp add sthan -e STHAN_API_KEY=your_key_here -- npx -y @sthan/mcp-server

On native Windows, wrap npx with cmd /c:

Terminal
claude mcp add sthan -e STHAN_API_KEY=your_key_here -- cmd /c npx -y @sthan/mcp-server

Add --scope user to use it in every project. Start claude and type /mcp to confirm sthan is connected.

Claude Desktop: edit claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\), then restart Claude Desktop:

config.json
{
  "mcpServers": {
    "sthan": {
      "command": "npx",
      "args": ["-y", "@sthan/mcp-server"],
      "env": { "STHAN_API_KEY": "your_key_here" }
    }
  }
}

Cursor: the same JSON in ~/.cursor/mcp.json (all projects) or .cursor/mcp.json (one project).

Windsurf: the same JSON in ~/.codeium/windsurf/mcp_config.json.

VS Code: create .vscode/mcp.json. VS Code asks for the key once and stores it securely:

config.json
{
  "inputs": [
    { "type": "promptString", "id": "sthan-api-key", "description": "sthan.io API key", "password": true }
  ],
  "servers": {
    "sthan": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@sthan/mcp-server"],
      "env": { "STHAN_API_KEY": "${input:sthan-api-key}" }
    }
  }
}

Try it without an AI client (opens the official MCP Inspector in your browser):

Terminal
npx @modelcontextprotocol/inspector -e STHAN_API_KEY=your_key_here npx -y @sthan/mcp-server

Click Connect, then Tools > List Tools, pick a tool, and run it.

Troubleshooting

  • Keep the -y in npx -y. Without it, npx waits for an "OK to install?" answer that an AI client cannot give, and the server never starts.
  • On Windows, run the claude mcp add ... cmd /c ... command from PowerShell or Command Prompt. Git Bash rewrites /c to C:/, which saves a broken command that times out (fix: prefix it with MSYS_NO_PATHCONV=1).
  • On Windows, if a client reports spawn npx ENOENT, use "command": "cmd" with "args": ["/c", "npx", "-y", "@sthan/mcp-server"].
  • Address verification and parsing can take up to about 2 minutes when a live postal lookup is needed. If your client gives up sooner, raise its tool timeout (Claude Code: set MCP_TOOL_TIMEOUT=150000 before starting claude; MCP Inspector: raise Request Timeout in its Configuration panel).

Example prompts

Once configured, just ask your AI assistant naturally:

  • "Is 123 Main St, New York, NY 10001 a real, deliverable address?"
  • "Parse this address: apt 2b 500 broadway new york ny"
  • "What are the coordinates of 1600 Pennsylvania Ave, Washington DC?"
  • "What's the nearest address to 40.7128, -74.0060?"
  • "Where is IP 8.8.8.8 located?"
  • "Suggest US cities starting with 'San Fr'."

Environment variables

VariableRequiredDescription
STHAN_API_KEYYesYour sthan.io API key (sthan_test_* for development, sthan_live_* for production)
STHAN_API_URLNoOverride base URL (default: https://api.sthan.io)

Response times

Most calls return in 1 to 3 seconds. Address verification and parsing can take longer (up to about 2 minutes) when an address cannot be matched from sthan.io's own data and needs a live postal lookup, so the server waits up to 150 seconds for those two tools. If your MCP client stops waiting sooner, raise its tool timeout (for example, in Claude Code set MCP_TOOL_TIMEOUT=150000).

Packages

This monorepo publishes two packages:

PackagenpmPurpose
@sthan/mcp-servernpmThe MCP server itself — the binary that your client launches
@sthan/corenpmTypeScript SDK for direct programmatic use of sthan.io APIs

Development

bash
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.

Links

License

MIT — see LICENSE.