Zip-Codes.com Location Intelligence: Spatial Analysis, Districts & 14+ Years of Demographics
Validate & geocode a US address; enrich with demographics, districts, counties, schools & much more.
Sollte ich dies verwenden
Qualität und Sicherheit
Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.
Kontextkosten
Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.
Installieren
Installation mit einem Klick
Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:
{
"mcpServers": {
"api": {
"url": "https://mcp.zip-codes.com/mcp"
}
}
}Remote-Endpunkte
https://mcp.zip-codes.com/mcpstreamable-httpWas es kann
Tool-Inventar
Tools (11)
🟢suggest_places(q, limit, types, state, country, ...)
Search for a place by partial name, misspelled name, or partial code — the resolver that turns what a person typed into something the other tools can look up. Fuzzy matching is built in: "beverley hills" finds Beverly Hills, "san fransisco" finds San Francisco, and a partial code like "902" finds the ZIP Codes starting with it. Matches US ZIP Codes, cities, USPS city names, counties, metropolitan areas, states, school districts, Canadian FSAs and Canadian postal codes, ranked, with the total number of matches. Reach for this FIRST when the place is vague, misspelled or partial, then pass the resolved code to zip_lookup, radius_search or distance. Restrict the kinds of place with types, or bias results towards a location with near. Coverage is broad rather than deep — it returns names and codes, not the full record.
Eingabe-Schema
{
"type": "object",
"properties": {
"q": {
"description": "What the user typed. At least one character, at most 200.",
"type": "string"
},
"limit": {
"description": "How many results to return. Defaults to 10; free-tier and demo callers are capped at 15, paid keys reach 500. With a key the credit cost follows the requested limit (up to 15: 1 credit; 50: 2; 150: 3; 500: 5), whether or not anything matches; demo calls are not charged.",
"type": [
"integer",
"null"
],
"default": null
},
"types": {
"description": "Restrict to these kinds of place. Omit to search all of them.",
"type": [
"array",
"null"
],
"items": {
"type": "string",
"enum": [
"zip",
"place",
"county",
"cbsa",
"fsa",
"state",
"school_district",
"ca_postal",
"uspscity"
]
},
"default": null
},
"state": {
"description": "Restrict to one US state or Canadian province, as a two-letter abbreviation such as CA, NY or ON.",
"default": null,
"type": [
"string",
"null"
]
},
"country": {
"description": "Restrict to one country. Omit to search both.",
"type": "string",
"enum": [
"US",
"CA"
],
"default": null
},
"near": {
"description": "Bias results towards somewhere. Accepts 'latitude,longitude', a 5-digit ZIP Code, a 3-character Canadian FSA, or a two-letter state or province abbreviation.",
"default": null,
"type": [
"string",
"null"
]
}
},
"required": [
"q"
]
}🟢zip_lookup(code, include, acs_years)
The full record for a postal code — the main location-intelligence tool. Takes a US ZIP Code, a US ZIP+4, a Canadian FSA, a Canadian postal code, or a latitude,longitude pair, and returns the city, state or province, county, whether it spans more than one county, area codes, elevation, metro area and postal details (metro.msa and metro.pmsa are legacy 1999 definitions; the current metro area, the CBSA, comes with census). A ZIP+4 also returns its delivery-segment street ranges, and coordinates reverse-geocode to the code containing the point. Optional enrichments add timezone, census geography, congressional and state legislative districts (for the current year or any TIGER/Line year served), school districts, demographics, Medicare geography and American Community Survey estimates for every release served, all in one schema per year; for Canadian codes, Statistics Canada geography and federal electoral districts (statcan). Use quick_zip instead when only the code and its place are needed — same inputs, about half the payload, no enrichments beyond timezone. Without an API key the core identity fields are returned and everything else is withheld, with each withheld path named.
Eingabe-Schema
{
"type": "object",
"properties": {
"code": {
"description": "A US ZIP Code, ZIP+4, Canadian FSA, or Canadian postal code. For example 90210, 90210-1234, M5V, or M5V 2T6.",
"type": "string"
},
"include": {
"description": "Enrichments, spelled as the REST API's /v2/zip include flags. Each multiplies the credit cost: base times (1 + number of enrichments). census, cd (congressional district) and state_leg are US Census Bureau data; census_YYYY, cd_YYYY, state_leg_YYYY add boundaries as of a TIGER/Line year (the bare flag answers under `current`, other years under their own key). statcan is Canada only: Statistics Canada geography for a Canadian FSA or postal code, federal electoral districts included, under `statcan` (statcan_YYYY for a census year; census or cd on a Canadian code is answered as statcan). acs_PROFILE is the current American Community Survey release, acs_PROFILE_YYYY an earlier one; every ACS year has the SAME FIELD PATHS, so values compare across years directly. Accepted: timezone, census, cd, state_leg, school_district, demographics, medicare, statcan, acs_demographic, acs_social, acs_economic, acs_housing; statcan_YYYY for YYYY 2011, 2016, 2021; census_YYYY, cd_YYYY, state_leg_YYYY for YYYY 2010-2025; acs_demographic_YYYY, acs_social_YYYY, acs_economic_YYYY, acs_housing_YYYY for YYYY 2011-2024. A bare flag is its newest year.",
"default": null,
"type": [
"array",
"null"
],
"items": {
"type": "string",
"pattern": "^(timezone|census|cd|state_leg|school_district|demographics|medicare|statcan|acs_demographic|acs_social|acs_economic|acs_housing|statcan_(201[16]|2021)|(census|cd|state_leg)_(201\\d|202[0-5])|(acs_demographic|acs_social|acs_economic|acs_housing)_(201[1-9]|202[0-4]))$"
}
},
"acs_years": {
"description": "Alias, kept for clients that learned it before include took year flags: ACS release years for the bare acs_ profiles in include (acs_social with acs_years [2015, 2024] is acs_social_2015 plus acs_social). Prefer the year flags in include. Every year has the SAME FIELD PATHS, and the answer comes back keyed by year. At most 16 profile-years per call. 2011 to 2024 (2024 is the current release).",
"type": [
"array",
"null"
],
"items": {
"type": "integer",
"minimum": 2011,
"maximum": 2024
},
"default": null
}
},
"required": [
"code"
]
}🟢zip_facts
Statistics about US ZIP Codes and Canadian postal codes: how many exist, how they break down by type, delivery point and carrier route totals, per-state tables, and ranked lists such as the ZIP Codes with the most carrier routes. Every figure is generated from a stored query against the source data, with the date it was measured. Costs nothing and needs no key.
Eingabe-Schema
{
"type": "object",
"properties": {}
}🟢quick_zip(code, include)
The fast, small answer for a postal code. Takes a US ZIP Code, a US ZIP+4, a Canadian FSA, a Canadian postal code, or a latitude,longitude pair, and returns the code's city, state or province, county, and whether it spans more than one county. Given a ZIP+4 it also returns the street ranges making up that delivery segment; given coordinates it reverse-geocodes to the code containing the point. zip_lookup accepts exactly the same inputs and returns the same ZIP+4 detail — choose this one when the answer only needs to be the code and its place, because the payload is about half the size and only the timezone enrichment is available here. Use zip_lookup for census, demographic, district or American Community Survey enrichments.
Eingabe-Schema
{
"type": "object",
"properties": {
"code": {
"description": "A US ZIP Code, ZIP+4, Canadian FSA, Canadian postal code, or a latitude,longitude pair. For example 90210, 90210-1234, M5V, M5V 2T6, or 34.10,-118.41.",
"type": "string"
},
"include": {
"description": "Enrichments to add. Only timezone is available on this tool; use zip_lookup for census, district, demographic and ACS enrichments.",
"default": null,
"type": [
"array",
"null"
],
"items": {}
}
},
"required": [
"code"
]
}🟢city_name_rules
How USPS names a ZIP Code, and which of those names may be used on mail. Each ZIP Code has exactly one preferred city name plus alternates, and some alternates are NOT valid for addressing — for 08088 NJ, SHAMONG is valid while SHAMONG TOWNSHIP is not. Returns the rules, the counts and a worked example. Costs nothing and needs no key.
Eingabe-Schema
{
"type": "object",
"properties": {}
}🟢radius_search(code, max, min, mode, limit, ...)
Find every US ZIP Code and Canadian postal area within a radius of a centre point, with the distance to each. The centre takes a US ZIP Code, a US ZIP+4, a Canadian FSA, a Canadian postal code, or a latitude,longitude pair; a ZIP+4 searches from its parent ZIP, and coordinates are used as the point itself, so the centre comes back with no code. Centroid mode measures centre to centre and reaches 500 miles; spatial mode intersects real boundaries, reports how much of each area falls inside, and reaches 250 miles. Set a minimum radius to search a ring rather than a circle. summary.total_count is the number of matches returned; when the list is cut, summary.total_available is the number in the radius and a notice says so. ACS statistics always cover the whole radius. They are aggregates of the ZIP Codes' estimates: est and pct only, with no margin of error or Census column; for one ZIP Code's estimate with its margin of error, use zip_lookup. timezone and ACS come back with the search itself; only census and district data need zip_lookup per ZIP. Without an API key the count and a sample of matches are returned and the rest is withheld; free-tier keys are capped at 100 miles centroid and 50 spatial.
Eingabe-Schema
{
"type": "object",
"properties": {
"code": {
"description": "Centre point: a US ZIP Code, ZIP+4, Canadian FSA or postal code, or a latitude,longitude pair.",
"type": "string"
},
"max": {
"description": "Radius in miles, as a number or a string. Up to 500 in centroid mode or 250 in spatial mode; exceeding the cap is an error rather than being reduced. May also be 'auto' to pick a radius from local population density, or 'auto-commute' to use commuting patterns where available.",
"type": "string"
},
"min": {
"description": "Minimum radius in miles, to exclude the middle and search a ring. Must be less than max. Defaults to 0.",
"type": [
"number",
"null"
],
"default": null
},
"mode": {
"description": "How to measure. centroid measures centre to centre and is the default when omitted; spatial intersects actual boundaries and adds how much of each area lies inside, at a lower maximum radius.",
"type": "string",
"enum": [
"centroid",
"spatial"
],
"default": null
},
"limit": {
"description": "Maximum number of matches to return, up to 100, which is also the default. A larger value is reduced to 100 and the result says so in notices. When the list is cut, summary.total_available is the number of matches in the radius (summary.total_count is the number returned) and a RESULTS_CAPPED notice says so; to see matches beyond the first 100, narrow the radius or raise `min` to step outwards in bands.",
"type": [
"integer",
"null"
],
"default": null
},
"include": {
"description": "Enrichments, spelled as the REST API's /v2/radius include flags; each multiplies the credit cost. timezone lands on each match. acs_PROFILE (current release) and acs_PROFILE_YYYY return aggregate statistics across the whole result set, with the same field paths every year. Census and district enrichments are not available here; use zip_lookup. Accepted: timezone, acs_demographic, acs_social, acs_economic, acs_housing; acs_demographic_YYYY, acs_social_YYYY, acs_economic_YYYY, acs_housing_YYYY for YYYY 2011-2024. A bare flag is its newest year.",
"default": null,
"type": [
"array",
"null"
],
"items": {
"type": "string",
"pattern": "^(timezone|acs_demographic|acs_social|acs_economic|acs_housing|(acs_demographic|acs_social|acs_economic|acs_housing)_(201[1-9]|202[0-4]))$"
}
},
"acs_years": {
"description": "Alias, kept for clients that learned it before include took year flags: ACS release years for the bare acs_ profiles in include (acs_social with acs_years [2015] is acs_social_2015). Prefer the year flags in include. At most 16 profile-years per call. 2011 to 2024 (2024 is the current release).",
"type": [
"array",
"null"
],
"items": {
"type": "integer",
"minimum": 2011,
"maximum": 2024
},
"default": null
}
},
"required": [
"code",
"max"
]
}🟢about_data
Where this server's data comes from: for each dataset the authority behind it, the edition served where the source publishes editions (TIGER/Line, ACS, ZCTA), how often a new release is taken, and a ready-made citation string. Costs nothing and needs no key.
Eingabe-Schema
{
"type": "object",
"properties": {}
}🟢distance(from, to)
Distance between two places, in miles and kilometres, plus the compass bearing from the first to the second. Each end takes a US ZIP Code, a US ZIP+4, a Canadian FSA, a Canadian postal code, or a latitude,longitude pair, and the two ends can be different kinds — a US ZIP to a Canadian postal code works, and so does a code to a coordinate. Time zone for both ends is included. This is a straight-line distance, not a driving route. Without an API key the distance itself is returned and the geography behind it is withheld.
Eingabe-Schema
{
"type": "object",
"properties": {
"from": {
"description": "Origin: a ZIP Code, ZIP+4, Canadian FSA or postal code, or latitude,longitude. For example 90210, M5V 2T6, or 34.10,-118.41.",
"type": "string"
},
"to": {
"description": "Destination, in any of the same forms as the origin.",
"type": "string"
}
},
"required": [
"from",
"to"
]
}🟢validate_address(address, include)
Validate and standardise a US street address and return its ZIP+4. US ONLY — unlike the postal-code tools, this does not cover Canada. Send the address on one line in mailing order: number and street, then any unit (APT 4, STE 900, #9), then city, state and ZIP. It tolerates ordinary slips (a misspelling, a missing ZIP, state or directional), but it is not a puzzle to solve: a unit placed after the city or ZIP ("Pensacola FL #9") is ambiguous, a unit or a floor. Send what the user gave you, in proper order, once. If it does not match, report that; do not keep trying rewrites. Returns the address in USPS standard form split into its parts, the 5-digit ZIP and the +4 add-on, a confidence level of high, medium or low (low: the +4 may be withheld), and the county, carrier route, congressional district and census block group for the match, all for one credit. `include` appends more, one credit each: coordinates, the census geographies the address sits inside, its congressional and state legislative districts (now or as of any TIGER/Line year served), its school district, its time zone, and American Community Survey profiles for its census tract. The congressional district already in `details` is USPS's own code for the record; the `cd` append is the mapped district, with its number, name and the congress it belongs to. Always read `notices`. ZIP_CORRECTED means the match is in a different ZIP than the one supplied. SECONDARY_NEEDED means the building has multiple units and an apartment or suite number should be requested. SECONDARY_NOT_VERIFIED means a supplied unit could not be confirmed against known ranges. PARTIAL_MATCH means some details are unverified. A failed match returns success false, sometimes with no notice explaining why, so check success rather than assuming the data block is populated. Without an API key the standardised address is returned with the +4 masked.
Eingabe-Schema
{
"type": "object",
"properties": {
"address": {
"description": "The address on one line. A city and state, or a ZIP Code, helps but neither is required — '1600 Pennsylvania Ave NW, Washington DC' and '1600 Pennsylvania Ave NW 20500' both resolve. Between 9 and 300 characters once spacing is normalised.",
"type": "string"
},
"include": {
"description": "Data to append to the match, spelled exactly as the REST API's /v2/address include flags, each costing one extra credit. 'coordinates' adds the latitude and longitude. 'census' adds the county, county subdivision, place, tract, block group and CBSA the address falls in; 'cd' adds its congressional district; 'state_leg' adds its upper and lower state legislative districts; 'school_district' adds its school district; 'timezone' adds the time zone at the matched point. census_YYYY, cd_YYYY and state_leg_YYYY add those boundaries as of a TIGER/Line year (the bare flag is the newest year, answered under `current`; other years under their own key). The 'acs_tract_*' values add an American Community Survey 5-year profile for the address's census tract: four profiles (demographic, social, economic, housing), unsuffixed for the current release or acs_tract_PROFILE_YYYY for an earlier one, in one schema, so a tract can be compared across years. Accepted: coordinates, census, cd, state_leg, school_district, timezone, acs_tract_demographic, acs_tract_social, acs_tract_economic, acs_tract_housing; census_YYYY, cd_YYYY, state_leg_YYYY for YYYY 2010-2025; acs_tract_demographic_YYYY, acs_tract_social_YYYY, acs_tract_economic_YYYY, acs_tract_housing_YYYY for YYYY 2022-2024. A bare flag is its newest year.",
"default": null,
"type": [
"array",
"null"
],
"items": {
"type": "string",
"pattern": "^(coordinates|census|cd|state_leg|school_district|timezone|acs_tract_demographic|acs_tract_social|acs_tract_economic|acs_tract_housing|(census|cd|state_leg)_(201\\d|202[0-5])|(acs_tract_demographic|acs_tract_social|acs_tract_economic|acs_tract_housing)_202[2-4])$"
}
}
},
"required": [
"address"
]
}🟢county_reference(state, limit)
US counties and county equivalents — all 3,235 of them — with their Census and USPS names, which disagree for over a hundred, plus ANSI code, legal type, land and water area, and USPS delivery footprint. Filter by state to get every county in that state: without a filter only the first 25 are returned, and they are FIPS-ordered, so an unfiltered call answers with Alabama rather than with whatever was asked about. Costs nothing and needs no key.
Eingabe-Schema
{
"type": "object",
"properties": {
"state": {
"description": "Two-letter US state or territory code. Returns EVERY county in that state, so no limit is needed — Texas is the largest at 254. Omit to browse all states.",
"type": "string",
"enum": [
"AK",
"AL",
"AR",
"AS",
"AZ",
"CA",
"CO",
"CT",
"DC",
"DE",
"FL",
"GA",
"GU",
"HI",
"IA",
"ID",
"IL",
"IN",
"KS",
"KY",
"LA",
"MA",
"MD",
"ME",
"MI",
"MN",
"MO",
"MP",
"MS",
"MT",
"NC",
"ND",
"NE",
"NH",
"NJ",
"NM",
"NV",
"NY",
"OH",
"OK",
"OR",
"PA",
"PR",
"RI",
"SC",
"SD",
"TN",
"TX",
"UT",
"VA",
"VI",
"VT",
"WA",
"WI",
"WV",
"WY"
],
"default": null
},
"limit": {
"description": "Cap the number of counties returned. Defaults to 25 when no state is given, or to all of them when one is.",
"type": [
"integer",
"null"
],
"default": null
}
}
}🟢metro_area_reference(state, limit)
US metropolitan and micropolitan statistical areas (CBSAs) — all 935. Of those only 393 are metropolitan; the rest are micropolitan and are NOT metro areas, so do not treat a CBSA count as a metro count. Each carries its divisions, parent combined area, land area and delivery footprint, plus the CMS Medicare labor market area, which is a DIFFERENT geography that shares the same code space. Filter by state to get every area in that state: without a filter only the first 25 are returned, alphabetically, so an unfiltered call answers with Aberdeen. Costs nothing and needs no key.
Eingabe-Schema
{
"type": "object",
"properties": {
"state": {
"description": "Two-letter US state or territory code. Returns every area that includes that state — an area can span several, so it is matched against the area's whole state list. Omit to browse all states.",
"type": "string",
"enum": [
"AK",
"AL",
"AR",
"AS",
"AZ",
"CA",
"CO",
"CT",
"DC",
"DE",
"FL",
"GA",
"GU",
"HI",
"IA",
"ID",
"IL",
"IN",
"KS",
"KY",
"LA",
"MA",
"MD",
"ME",
"MI",
"MN",
"MO",
"MP",
"MS",
"MT",
"NC",
"ND",
"NE",
"NH",
"NJ",
"NM",
"NV",
"NY",
"OH",
"OK",
"OR",
"PA",
"PR",
"RI",
"SC",
"SD",
"TN",
"TX",
"UT",
"VA",
"VI",
"VT",
"WA",
"WI",
"WV",
"WY"
],
"default": null
},
"limit": {
"description": "Cap the number of areas returned. Defaults to 25 when no state is given, or to all areas in the state when one is.",
"type": [
"integer",
"null"
],
"default": null
}
}
}Community
Nachweis