cityparity
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| CITYPARITY_MCP_URL | No | Override the upstream endpoint (local dev) | https://mcp.cityparity.com/mcp |
| CITYPARITY_MCP_DEBUG | No | Set to any value to log request/response framing to stderr |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| compare_citiesA | Compare two cities for one household: take-home pay, full cost breakdown, the equivalent target salary needed to match source net cash, non-cash lifestyle deltas (vacation, parental leave, healthcare), and a 0-100 quality score on five weighted dimensions. Use this for a head-to-head between two named cities; for a single city call get_city_summary, and to rank many cities call rank_cities. Read-only, no side effects; returns a text summary plus structured JSON. RSU income is NOT a parameter; RSU is treated as source-only because grants typically do not follow you across employers. |
| list_citiesA | List all city slugs supported by cityparity, grouped by country. Call this first to discover valid slugs before any other tool; the optional country filter narrows to one country. Read-only, no side effects; returns a text summary plus structured JSON. |
| get_city_summaryA | Concise profile of one city: currency, tax shape (bracket count + top rate + payroll/national insurance), headline costs (rent / groceries / transit / childcare), safety-net values (parental leave, vacation, universal healthcare), and data freshness. Lighter than compare_cities; use when the user is asking about one place rather than a comparison. Read-only, no side effects; returns a text summary plus structured JSON. |
| rank_citiesA | Rank supported cities by composite quality-of-life score across five weighted dimensions (financial, healthcare, vacation, childcare, safety_net). Returns top N (default 10), with filters for country, countries, region (europe/asia/north_america/south_america/oceania), has_universal_healthcare, include_cities, and exclude_cities. Use this to shortlist across many cities; for a head-to-head between two named cities use compare_cities. The same scenario is applied to every city so scores are directly comparable (default: single person, 2BR rent, $100k USD-equivalent gross). Read-only, no side effects; returns a text summary plus structured JSON. |
| get_safety_netA | Batch lookup of safety-net values — parental leave weeks + paid percentage, universal healthcare flag, vacation days, public holidays — for 1 to 20 cities at once, plus each city's safety_net dimension score (0-100) for relative strength. This is the only tool that accepts many cities in one call: use it to line several places up on family / leave / healthcare benefits. For one city's full profile (tax shape + costs + safety net together) call get_city_summary instead; for a two-city head-to-head that includes cost-of-living use compare_cities. Read-only, no side effects; returns a text summary plus structured JSON. |
| get_inbound_tax_regimeA | Look up a city's inbound-worker tax regime, the special reduced-tax schemes for relocating workers that general cost-of-living tools do not surface. Returns null when the country has no modeled regime (most cities). Modeled regimes: Italy impatriati (Milan, Rome), Portugal IFICI (Lisbon, Porto), Belgium expat (Brussels), Poland B2B ryczałt (Warsaw, Kraków), Greece inbound (Athens). Each entry includes the mechanic (reduction percentage or flat rate), duration, income cap if any, and a conservative eligibility hint. Read-only, no side effects; returns a text summary plus structured JSON. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 6 tools
Each tool has a clearly distinct purpose: compare_cities for head-to-head, get_city_summary for single city profile, get_inbound_tax_regime for tax schemes, get_safety_net for batch safety net, list_cities for discovering slugs, and rank_cities for ranking. No overlapping functionality.
All tool names follow a consistent verb_noun snake_case pattern (e.g., compare_cities, get_city_summary, list_cities). No mixing of conventions.
With 6 tools, the set is well-scoped for a city comparison service. Each tool covers a necessary operation (list, single summary, compare, rank, specific lookups) without being too few or excessive.
The tool surface covers the full workflow: discovering cities, getting single city profiles, comparing two cities, ranking many, and looking up specific tax regimes or safety nets. No obvious gaps for the stated purpose.