cityparity MCP server
Cost-of-living and quality-of-life tools that AI agents can call. Built on the Model Context Protocol (spec 2025-06-18). Hosted at mcp.cityparity.com. Free, no API key, rate-limited at the edge.
Six tools
- compare_cities: full scenario comparison. Take-home, costs, equivalent target salary, lifestyle deltas, quality score.
- list_cities: discover supported city slugs, grouped by country.
- get_city_summary: profile for one city. Tax shape, headline costs, safety-net values.
- rank_cities: top N cities by composite QoL with custom weights and region/country filters.
- get_safety_net: parental leave, universal healthcare, vacation lookup for 1-20 cities.
- get_inbound_tax_regime: Italy impatriati, Portugal IFICI, Belgium expat, Poland B2B ryczałt, Greece inbound.
Install
Claude Code
Direct HTTP, no bridge needed:
claude mcp add --transport http cityparity https://mcp.cityparity.com/mcp
Codex CLI
Add to ~/.codex/config.yaml:
mcpServers:
cityparity:
url: https://mcp.cityparity.com/mcp
Claude Desktop
If your Claude Desktop build supports HTTP MCP (most recent versions), use the direct URL. Otherwise install the bridge:
{
"mcpServers": {
"cityparity": {
"url": "https://mcp.cityparity.com/mcp"
}
}
}
Edit at ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows). Restart Claude Desktop.
For older Claude Desktop builds that only do stdio:
{
"mcpServers": {
"cityparity": {
"command": "npx",
"args": ["-y", "cityparity-mcp"]
}
}
}
ChatGPT Desktop
Open ChatGPT Desktop → Settings → Connections → Add MCP Server, or add directly to the config file:
{
"mcpServers": {
"cityparity": {
"url": "https://mcp.cityparity.com/mcp"
}
}
}
Config file: ~/Library/Application Support/OpenAI/ChatGPT/mcp.json (macOS) or %APPDATA%\OpenAI\ChatGPT\mcp.json (Windows). Restart ChatGPT Desktop.
Cursor
Settings → MCP → "Add New MCP Server":
{
"name": "cityparity",
"url": "https://mcp.cityparity.com/mcp"
}
Direct HTTP / OpenAPI
If you don't want MCP at all, the same engine is at https://mcp.cityparity.com/api/v1/*. OpenAPI 3.0 spec: /openapi.json.
Example conversations
"Should I take this Oslo offer?"
The agent calls compare_cities with your Seattle salary, partner situation, kids, and the Oslo target. The tool returns the equivalent Oslo salary you'd need, plus lifestyle deltas (vacation, parental leave, universal healthcare) and a quality score on both sides. The agent composes a recommendation grounded in real numbers.
"What are the best cities for a tech worker family of four in Europe?"
The agent calls rank_cities with { filter: { region: 'europe' }, scenario: { kids_ages: [3, 7], has_partner: true, partner_gross_salary_usd: 50000 } }. The tool runs the scenario uniformly across every European city in the dataset, ranks by composite score, returns the top 10.
"Tell me about parental leave in Germany."
The agent calls get_safety_net with { cities: ['berlin', 'munich', 'frankfurt'] }. Returns parental leave weeks + paid percentage, universal healthcare flag, vacation days, and a safety-net score. No salary scenario needed for this question.
"Am I eligible for Italy impatriati?"
The agent calls get_inbound_tax_regime with { city: 'milan' }. Returns the regime mechanic (50% IRPEF reduction, 5 years, €600k cap) plus a conservative eligibility hint. The tool always includes a "consult a tax professional" disclaimer.
Methodology
The full methodology, how taxes, costs, childcare subsidies, and safety-net scoring work, is on the homepage.
One detail worth surfacing here: RSU income is not an input. Treated as source-only because grants typically don't follow you across employers. If you'll keep your current US employer remotely, treat the result as directional.
Smoke test
Verify the endpoint is reachable:
curl https://mcp.cityparity.com/
curl -X POST https://mcp.cityparity.com/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "MCP-Protocol-Version: 2025-06-18" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
Status, contact, and feedback
- Spec version:
2025-06-18. Built on Cloudflare Workers + the official@modelcontextprotocol/sdk. - Found a bug or want a city added: contact page.
- Machine-readable docs index: mcp.cityparity.com/llms.txt.
- Source for the bridge package:
cityparity-mcpon npm.