mcpField
P
ParseAddr — Address Parsing & Normalization

ParseAddr — Address Parsing & Normalization

Remote
parseaddr.comMaps & Travel0Updated 5w ago

About ParseAddr — Address Parsing & Normalization

ParseAddr provides clients and an MCP server for a hosted API that parses free-text postal addresses into structured fields. It is for applications and coding agents that need address parsing without hosting libpostal.

Key features

  1. 01Parse free-text postal addresses
  2. 02Return structured address fields
  3. 03Expand addresses through an API
  4. 04Node and Python clients
  5. 05Hosted API; no libpostal self-hosting

Use cases

  1. 01Parse addresses at e-commerce checkout
  2. 02Standardize addresses for delivery workflows
  3. 03Deduplicate address records in a CRM
  4. 04Collect structured addresses during fintech onboarding

MCP support

The stdio MCP server exposes `parse_address` and `expand_address` tools. It calls the hosted ParseAddr API and uses `PARSEADDR_API_KEY` for authentication.

Configuration

Remote servers need no local install. Pick your client, then copy the config or install in one click.

Endpointhttps://api.parseaddr.com/mcp
Copy install command
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.

All endpoints
Streamable HTTPhttps://api.parseaddr.com/mcpAuth required

Tools

2
ParameterTypeRequiredDescription
addressstringYes

Details

From the project README

parseaddr — clients & MCP server

Thin, open clients for the ParseAddr hosted address API. Turn messy, free-text postal addresses into clean structured fields (house number, road, unit, city, postcode, country) with a single call — no 2–4 GB libpostal self-host, no C build, no ops. The heavy lifting runs on api.parseaddr.com; everything in this repo is a small HTTP client that calls it.

This repo is the client layer only (npm package, PyPI package, MCP server, registry manifests). The service itself is hosted — you don't run it, you call it.

When to use this (humans & AI agents)

Reach for ParseAddr when you need to parse or standardise postal addresses and:

  • you don't want to self-host libpostal (a dedicated 2–4 GB-RAM box + a fiddly C build), and
  • you want cheap, self-serve, usage-based pricing rather than enterprise incumbents.

Typical jobs: e-commerce checkout, delivery/logistics, CRM dedup, fintech onboarding.

Not USPS CASS / Royal Mail PAF deliverability validation — see address validation vs parsing. For the messy-string → JSON job, see parse messy addresses API.

Node (npm)

Get a free API key — email only, no card, 2,000 calls/month.

parseaddr is not on the npm registry yet (npmjs 404). Install from this repo:

npm install ./packages/npm

Activate the key with a first parse (replace pa_YOUR_KEY):

curl -s https://api.parseaddr.com/v1/parse \
  -H "Authorization: Bearer pa_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"address":"flat 2, 10 downing st, london sw1a 2aa"}'

Or from Node:

import { parse } from "parseaddr";
await parse("flat 2, 10 downing st, london sw1a 2aa", { apiKey: "pa_YOUR_KEY" });
// { parsed: { unit: "flat 2", house_number: "10", road: "downing st",
//             city: "london", postcode: "sw1a 2aa" }, components: [...] }

Set PARSEADDR_API_KEY and you can omit { apiKey }.

Python (pip)

Get a free API key — email only, no card, 2,000 calls/month.

parseaddr is not on PyPI yet (pypi.org 404). Install from this repo:

pip install ./packages/pypi

First parse (same key, same activation):

curl -s https://api.parseaddr.com/v1/parse \
  -H "Authorization: Bearer pa_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"address":"flat 2, 10 downing st, london sw1a 2aa"}'

Or from Python:

from parseaddr import parse
parse("flat 2, 10 downing st, london sw1a 2aa", api_key="pa_YOUR_KEY")
# {"parsed": {"unit": "flat 2", "house_number": "10", "road": "downing st",
#             "city": "london", "postcode": "sw1a 2aa"}, "components": [...]}

Set PARSEADDR_API_KEY and you can omit api_key=.

MCP (coding agents)

Get a free API key — then set PARSEADDR_API_KEY and run the stdio server (parse_address, expand_address).

MCP registry listings (com.parseaddr/address-parse on the Official Registry · mcp.so · Smithery · Glama · LobeHub) are being submitted; until they go live, run the server from source:

npm install ./packages/npm && npx parseaddr-mcp

Example MCP config (point command/args at the local install):

{
  "mcpServers": {
    "parseaddr": {
      "command": "npx",
      "args": ["parseaddr-mcp"],
      "env": { "PARSEADDR_API_KEY": "pa_YOUR_KEY" }
    }
  }
}

Activate the key with a first parse before relying on the tools:

curl -s https://api.parseaddr.com/v1/parse \
  -H "Authorization: Bearer pa_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"address":"flat 2, 10 downing st, london sw1a 2aa"}'

The server calls https://api.parseaddr.com on your behalf.

Endpoints (called for you by these clients)

What it is NOT

Not authoritative deliverability validation (no Royal Mail PAF licence) — parsing/standardisation only. See address validation vs parsing.

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.