cityparity — Cost-of-Living & Quality-of-Life Comparison
此 MCP 可以做什么
Compares cities using take-home pay, living costs, taxes, safety-net benefits, and weighted quality-of-life scores.
工具
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['source_city', 'target_city', 'gross_salary'], 'properties': {'living': {'type': 'object', 'properties': {'bedrooms': {'type': 'integer', 'maximum': 5, 'minimum': 0, 'description': 'Bedroom count for the household. Default 2.'}, 'lifestyle': {'enum': ['frugal', 'typical', 'generous'], 'type': 'string', 'description': 'Spending multiplier on food and discretionary categories. Default typical (1.0Ã\x97).'}, 'housing_mode': {'enum': ['rent', 'own', 'own_outright'], 'type': 'string', 'description': 'Whether the household rents or owns. Default rent.'}}, 'description': 'Housing and spending assumptions. Omit to use defaults: rent, 2 bedrooms, typical spending.', 'additionalProperties': False}, 'advanced': {'type': 'object', 'properties': {'age_bracket': {'enum': ['18-24', '25-34', '35-44', '45-54', '55-64'], 'type': 'string', 'description': 'Affects US healthcare premium multipliers. Default 25-34.'}, 'trips_home_per_year': {'type': 'integer', 'maximum': 12, 'minimum': 0, 'description': 'Round trips back to source country per year (target-only cost). Default 1.'}, 'apply_inbound_regime': {'type': 'boolean', 'description': "Apply the destination country's special inbound-worker tax regime if available (Italy impatriati, Portugal IFICI, Belgium expat, Poland B2B ryczaÅ\x82t, Greece inbound). Default false. Applies only on the target side."}, 'source_transit_choice': {'enum': ['car', 'transit'], 'type': 'string', 'description': "Default depends on city; e.g. Seattle defaults to 'car', Oslo defaults to 'transit'."}, 'target_transit_choice': {'enum': ['car', 'transit'], 'type': 'string', 'description': 'Same as above for the target city.'}, 'retirement_contrib_pct': {'type': 'number', 'maximum': 50, 'minimum': 0, 'description': 'Percentage of gross diverted to retirement (pre-tax for US 401k). Default 6.'}}, 'description': 'Optional fine-tuning: retirement contribution, age bracket, trips home, transit mode, and inbound tax regime. Omit to use defaults.', 'additionalProperties': False}, 'household': {'type': 'object', 'properties': {'kids_ages': {'type': 'array', 'items': {'type': 'integer', 'maximum': 25, 'minimum': 0}, 'maxItems': 10, 'description': 'Ages of dependent children, e.g. [3, 7]. Empty array or omitted if no kids.'}, 'has_partner': {'type': 'boolean', 'description': 'Whether the user has a working-age partner. Defaults to false.'}, 'partner_gross_salary': {'type': 'number', 'maximum': 50000000, 'minimum': 0, 'description': "Partner's annual gross salary in the SOURCE city's currency. REQUIRED when has_partner=true."}, 'partner_works_in_source': {'type': 'boolean', 'description': 'Whether the partner currently earns in the source city. REQUIRED when has_partner=true; cityparity does not default this because spouse-per-city working status materially changes the math (e.g. US childcare may exceed a second income, while Nordic subsidies make the second income viable).'}, 'partner_works_in_target': {'type': 'boolean', 'description': 'Whether the partner would earn in the target city after relocation. REQUIRED when has_partner=true.'}}, 'description': 'Family structure: working-age partner and dependent children. Omit for a single person with no kids.', 'additionalProperties': False}, 'source_city': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': "City slug for the user's current city. Use list_cities to discover valid slugs (e.g. 'nyc', 'seattle', 'tokyo')."}, 'target_city': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': 'City slug for the destination city.'}, 'gross_salary': {'type': 'number', 'maximum': 50000000, 'description': "User's annual gross salary in the SOURCE city's local currency (e.g. USD for Seattle, NOK for Oslo).", 'exclusiveMinimum': 0}, 'score_weights': {'type': 'object', 'properties': {'vacation': {'type': 'number', 'maximum': 100, 'minimum': 0}, 'childcare': {'type': 'number', 'maximum': 100, 'minimum': 0}, 'financial': {'type': 'number', 'maximum': 100, 'minimum': 0}, 'healthcare': {'type': 'number', 'maximum': 100, 'minimum': 0}, 'safety_net': {'type': 'number', 'maximum': 100, 'minimum': 0}}, 'description': 'Override the composite-score weights. Defaults: financial 30, healthcare 20, vacation 15, childcare 15, safety_net 20.', 'additionalProperties': False}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['source', 'target', 'equivalence', 'non_cash_deltas', 'quality_score', 'meta'], 'properties': {'meta': {'type': 'object', 'properties': {}, 'additionalProperties': True}, 'source': {'type': 'object', 'required': ['city', 'slug', 'currency', 'gross_income', 'effective_tax_rate', 'after_tax_income', 'taxes', 'costs', 'govt_benefits', 'net_cash_annual'], 'properties': {'city': {'type': 'string'}, 'slug': {'type': 'string'}, 'costs': {'type': 'object', 'required': ['housing', 'healthcare', 'childcare', 'food', 'transit', 'discretionary', 'travel_home', 'property_tax'], 'properties': {'food': {'type': 'number'}, 'housing': {'type': 'number'}, 'transit': {'type': 'number'}, 'childcare': {'type': 'number'}, 'healthcare': {'type': 'number'}, 'travel_home': {'type': 'number'}, 'property_tax': {'type': 'number'}, 'discretionary': {'type': 'number'}}, 'additionalProperties': False}, 'taxes': {'type': 'object', 'properties': {}, 'additionalProperties': True}, 'currency': {'type': 'string'}, 'gross_income': {'type': 'number'}, 'govt_benefits': {'type': 'number'}, 'net_cash_annual': {'type': 'number'}, 'after_tax_income': {'type': 'number'}, 'effective_tax_rate': {'type': 'number'}}, 'additionalProperties': False}, 'target': {'$ref': '#/properties/source'}, 'equivalence': {'type': 'object', 'required': ['status', 'target_salary_needed', 'household_gross', 'explanation'], 'properties': {'status': {'enum': ['solved', 'no_solution'], 'type': 'string'}, 'explanation': {'type': 'string'}, 'household_gross': {'type': ['number', 'null']}, 'target_salary_needed': {'type': ['number', 'null']}}, 'additionalProperties': False}, 'quality_score': {'type': 'object', 'properties': {}, 'additionalProperties': True}, 'non_cash_deltas': {'type': 'array', 'items': {'type': 'object', 'required': ['direction', 'metric', 'delta', 'text'], 'properties': {'note': {'type': 'string'}, 'text': {'type': 'string'}, 'delta': {'type': 'number'}, 'metric': {'type': 'string'}, 'direction': {'enum': ['up', 'down'], 'type': 'string'}}, 'additionalProperties': False}}}, 'additionalProperties': False}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['city'], 'properties': {'city': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': 'City slug. Use list_cities to discover valid slugs.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['slug', 'name', 'country', 'currency', 'compensation_index', 'tax', 'cost_snapshot', 'safety_net', 'govt_benefits', 'inbound_tax_regime', 'data_last_updated_field', 'data_year_range', 'methodology_url'], 'properties': {'tax': {'type': 'object', 'properties': {}, 'additionalProperties': True}, 'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'country': {'type': 'string'}, 'currency': {'type': 'string'}, 'safety_net': {'type': 'object', 'properties': {}, 'additionalProperties': True}, 'cost_snapshot': {'type': 'object', 'properties': {}, 'additionalProperties': True}, 'govt_benefits': {'type': 'object', 'properties': {}, 'additionalProperties': True}, 'data_year_range': {'type': ['string', 'null']}, 'methodology_url': {'type': 'string'}, 'compensation_index': {'type': ['number', 'null']}, 'inbound_tax_regime': {'anyOf': [{'type': 'object', 'properties': {}, 'additionalProperties': True}, {'type': 'null'}]}, 'data_last_updated_field': {'type': ['string', 'null']}}, 'additionalProperties': False}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['city'], 'properties': {'city': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': 'City slug. Use list_cities to discover valid slugs. Most cities return regime=null because their country has no special inbound-worker tax regime.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['slug', 'city', 'country', 'regime', 'methodology_url'], 'properties': {'city': {'type': 'string'}, 'slug': {'type': 'string'}, 'regime': {'anyOf': [{'type': 'object', 'required': ['type', 'duration_years', 'reduction_pct', 'flat_rate', 'max_income', 'note', 'eligibility_summary'], 'properties': {'note': {'type': ['string', 'null']}, 'type': {'type': 'string'}, 'flat_rate': {'type': ['number', 'null']}, 'max_income': {'type': ['number', 'null']}, 'reduction_pct': {'type': ['number', 'null']}, 'duration_years': {'type': ['number', 'null']}, 'eligibility_summary': {'type': ['string', 'null']}}, 'additionalProperties': False}, {'type': 'null'}]}, 'country': {'type': 'string'}, 'disclaimer': {'type': 'string'}, 'methodology_url': {'type': 'string'}}, 'additionalProperties': False}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['cities'], 'properties': {'cities': {'type': 'array', 'items': {'type': 'string', 'maxLength': 64, 'minLength': 1}, 'maxItems': 20, 'minItems': 1, 'description': 'Array of city slugs (1-20). Use list_cities to discover valid slugs.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['cities', 'methodology_url'], 'properties': {'cities': {'type': 'array', 'items': {'type': 'object', 'required': ['slug', 'city', 'country', 'parental_leave_weeks', 'parental_leave_paid_pct', 'universal_healthcare', 'vacation_days_statutory', 'public_holidays', 'public_holidays_effective', 'public_holidays_substitute_day', 'sick_leave_policy', 'safety_net_score'], 'properties': {'city': {'type': 'string'}, 'slug': {'type': 'string'}, 'country': {'type': 'string'}, 'sick_leave': {'anyOf': [{'type': 'object', 'required': ['statutory', 'waiting_days', 'tenure_months', 'scales_with_tenure', 'reference_period', 'paid_weeks', 'phases', 'note'], 'properties': {'note': {'type': ['string', 'null']}, 'phases': {'type': 'array', 'items': {'type': 'object', 'properties': {}, 'additionalProperties': True}}, 'statutory': {'type': 'boolean'}, 'paid_weeks': {'type': ['number', 'null']}, 'waiting_days': {'type': ['number', 'null']}, 'tenure_months': {'type': 'number'}, 'reference_period': {'type': ['string', 'null']}, 'scales_with_tenure': {'type': 'boolean'}}, 'additionalProperties': False}, {'type': 'null'}]}, 'public_holidays': {'type': ['number', 'null']}, 'safety_net_score': {'type': 'number'}, 'sick_leave_policy': {'type': ['string', 'null']}, 'parental_leave_flat': {'anyOf': [{'type': 'object', 'required': ['weeks', 'weekly_amount', 'currency', 'label'], 'properties': {'label': {'type': ['string', 'null']}, 'weeks': {'type': 'number'}, 'currency': {'type': ['string', 'null']}, 'weekly_amount': {'type': ['number', 'null']}}, 'additionalProperties': False}, {'type': 'null'}]}, 'parental_leave_note': {'type': ['string', 'null']}, 'parental_leave_basis': {'enum': ['percentage', 'flat', 'capped', 'mixed', 'unpaid', 'unknown', 'none'], 'type': 'string'}, 'parental_leave_weeks': {'type': ['number', 'null']}, 'universal_healthcare': {'type': 'boolean'}, 'parental_leave_capped': {'anyOf': [{'type': 'object', 'required': ['weeks', 'pct', 'cap_amount', 'cap_period', 'currency', 'income_eligibility_ceiling', 'label'], 'properties': {'pct': {'type': ['number', 'null']}, 'label': {'type': ['string', 'null']}, 'weeks': {'type': 'number'}, 'currency': {'type': ['string', 'null']}, 'cap_amount': {'type': ['number', 'null']}, 'cap_period': {'type': ['string', 'null']}, 'income_eligibility_ceiling': {'type': ['number', 'null']}}, 'additionalProperties': False}, {'type': 'null'}]}, 'parental_leave_summary': {'type': 'string'}, 'parental_leave_paid_pct': {'type': ['number', 'null']}, 'vacation_days_statutory': {'type': ['number', 'null']}, 'public_holidays_effective': {'type': ['number', 'null']}, 'public_holidays_substitute_day': {'anyOf': [{'anyOf': [{'type': 'boolean'}, {'type': 'string', 'const': 'partial'}]}, {'type': 'null'}]}, 'parental_leave_effective_pct_at_benchmark': {'type': ['number', 'null']}}, 'additionalProperties': False}}, 'not_found': {'type': 'array', 'items': {'type': 'string'}}, 'score_basis': {'type': 'object', 'properties': {}, 'additionalProperties': True}, 'methodology_url': {'type': 'string'}}, 'additionalProperties': False}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'country': {'type': 'string', 'maxLength': 64, 'description': 'Optional case-insensitive country filter. Use the canonical name as stored in city_data.country (e.g. "Norway", "USA", "United Kingdom"). If omitted, returns all countries.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['count', 'country_count', 'groups'], 'properties': {'count': {'type': 'integer'}, 'groups': {'type': 'array', 'items': {'type': 'object', 'required': ['country', 'cities'], 'properties': {'cities': {'type': 'array', 'items': {'type': 'object', 'required': ['slug', 'name'], 'properties': {'name': {'type': 'string'}, 'slug': {'type': 'string'}}, 'additionalProperties': False}}, 'country': {'type': 'string'}}, 'additionalProperties': False}}, 'country_count': {'type': 'integer'}}, 'additionalProperties': False}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'maximum': 50, 'minimum': 1, 'description': 'Max results to return. Default 10.'}, 'filter': {'type': 'object', 'properties': {'region': {'enum': ['europe', 'asia', 'north_america', 'south_america', 'oceania'], 'type': 'string', 'description': 'Restrict to one region.'}, 'country': {'type': 'string', 'maxLength': 64, 'description': 'Restrict to one country (case-insensitive match against city_data.country, e.g. "Germany", "USA", "United Kingdom").'}, 'countries': {'type': 'array', 'items': {'type': 'string', 'maxLength': 64}, 'maxItems': 50, 'description': 'Restrict to multiple countries.'}, 'exclude_cities': {'type': 'array', 'items': {'type': 'string', 'maxLength': 64}, 'maxItems': 100, 'description': 'Skip these specific city slugs from the result.'}, 'include_cities': {'type': 'array', 'items': {'type': 'string', 'maxLength': 64}, 'maxItems': 100, 'description': 'Restrict to a specific set of city slugs. Combined with other filters via intersection.'}, 'has_universal_healthcare': {'type': 'boolean', 'description': 'If true, only return cities with universal healthcare; if false, only without.'}}, 'description': 'Restrict which cities are ranked, by country, region, universal-healthcare flag, or explicit include/exclude slug lists. Omit to rank all supported cities.', 'additionalProperties': False}, 'weights': {'type': 'object', 'properties': {'vacation': {'type': 'number', 'maximum': 100, 'minimum': 0}, 'childcare': {'type': 'number', 'maximum': 100, 'minimum': 0}, 'financial': {'type': 'number', 'maximum': 100, 'minimum': 0}, 'healthcare': {'type': 'number', 'maximum': 100, 'minimum': 0}, 'safety_net': {'type': 'number', 'maximum': 100, 'minimum': 0}}, 'description': 'Override the composite-score weights. Defaults: financial 30, healthcare 20, vacation 15, childcare 15, safety_net 20.', 'additionalProperties': False}, 'scenario': {'type': 'object', 'properties': {'bedrooms': {'type': 'integer', 'maximum': 5, 'minimum': 0, 'description': 'Default 2.'}, 'kids_ages': {'type': 'array', 'items': {'type': 'integer', 'maximum': 25, 'minimum': 0}, 'maxItems': 10, 'description': 'Default [].'}, 'lifestyle': {'enum': ['frugal', 'typical', 'generous'], 'type': 'string', 'description': 'Default typical.'}, 'has_partner': {'type': 'boolean', 'description': 'Default false.'}, 'housing_mode': {'enum': ['rent', 'own', 'own_outright'], 'type': 'string', 'description': 'Default rent.'}, 'gross_salary_usd': {'type': 'number', 'maximum': 5000000, 'description': 'USD-equivalent salary to model in each city (converts to local currency). Default 100000.', 'exclusiveMinimum': 0}, 'partner_gross_salary_usd': {'type': 'number', 'maximum': 5000000, 'minimum': 0, 'description': 'Required when has_partner=true.'}}, 'description': 'Override the default ranking scenario. The same scenario is applied to every city so scores are comparable.', 'additionalProperties': False}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['ranked', 'considered', 'skipped', 'weights', 'scenario_used', 'methodology_url'], 'properties': {'ranked': {'type': 'array', 'items': {'type': 'object', 'required': ['rank', 'slug', 'city', 'country', 'currency', 'total_score', 'dimensions', 'net_cash_annual_local', 'net_cash_annual_usd', 'effective_tax_rate', 'universal_healthcare'], 'properties': {'city': {'type': 'string'}, 'rank': {'type': 'integer'}, 'slug': {'type': 'string'}, 'country': {'type': 'string'}, 'currency': {'type': 'string'}, 'dimensions': {'type': 'object', 'required': ['financial', 'healthcare', 'vacation', 'childcare', 'safety_net'], 'properties': {'vacation': {'type': 'number'}, 'childcare': {'type': 'number'}, 'financial': {'type': 'number'}, 'healthcare': {'type': 'number'}, 'safety_net': {'type': 'number'}}, 'additionalProperties': False}, 'total_score': {'type': 'number'}, 'effective_tax_rate': {'type': 'number'}, 'net_cash_annual_usd': {'type': 'number'}, 'parental_leave_weeks': {'type': ['number', 'null']}, 'universal_healthcare': {'type': 'boolean'}, 'net_cash_annual_local': {'type': 'number'}}, 'additionalProperties': False}}, 'skipped': {'type': 'array', 'items': {'type': 'object', 'required': ['slug', 'reason'], 'properties': {'slug': {'type': 'string'}, 'reason': {'type': 'string'}}, 'additionalProperties': False}}, 'weights': {'type': 'object', 'properties': {}, 'additionalProperties': True}, 'considered': {'type': 'integer'}, 'scenario_used': {'type': 'object', 'properties': {}, 'additionalProperties': True}, 'methodology_url': {'type': 'string'}}, 'additionalProperties': False}
近期工具变更
类似的 MCP 服务器
LiveDataLink
Exposes public-data tools covering economics, labor, banking, transport, books, legal opinions, carriers, environmental data, and…
AlpineDataWorks Intelligence Server
Provides economic, market, supply-chain, real-estate, energy, consumer, labor, and other scored intelligence indices with histori…
SharksAPI.AI
Provides marketing analytics and actions across GA4, Search Console, Google Ads, social channels, SEO, WordPress, and marketing p…
synter-ads
Manages cross-platform advertising campaigns, audiences, tracking, creative, landing pages, campaign audits, technology intellige…
synter-ads
Manages cross-platform advertising campaigns, audiences, tracking, creative, landing pages, campaign audits, technology intellige…
Stratalize Finance
Provides financial, macroeconomic, banking, credit, commodities, M&A, ESG, labor, and regulatory benchmarks for analysis and plan…
Stratalize Healthcare
Retired Stratalize server exposing benchmark, market intelligence, compliance, financial, healthcare, legal, real estate, and eco…
Stratalize Governance
Retired Stratalize server exposing benchmark, market intelligence, compliance, financial, healthcare, legal, real estate, and eco…