acuris-mcp
Address validation & geocoding for AI agents: 240+ countries, UK PAF, free US/CA enrichment
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"acuris-mcp": {
"url": "https://api.acuris-geo.com/mcp"
}
}
}Remote endpoints
https://api.acuris-geo.com/mcpstreamable-httpWhat it can do
Tool inventory
Tools (9)
⚪validate_address(country, address_line, street, house_number, city, ...)
Validate and standardize one postal address (240+ countries; UK via the official Royal Mail PAF with UDPRN + UPRN). Give `country` as ISO-3 lowercase (e.g. usa, can, deu, gbr) plus EITHER a free-text `address_line` OR fielded parts (street, house_number, city, state, postcode). Returns an honest verdict — status "verified" (exact) or "corrected" (fixed), or partial_match with reasons — plus the standardized form, confidence, coordinates with an explicit accuracy_type, and, for street-accurate USA/Canada matches, a FREE `enrichment` block (census tract, block group, FIPS, CBSA/MSA, congressional district, school district / Canadian equivalents). Cost: 1 validation credit per successful lookup; no-match and errors are refunded automatically (you pay for results, not attempts).
Input Schema
{
"type": "object",
"properties": {
"country": {
"title": "Country",
"type": "string"
},
"address_line": {
"default": "",
"title": "Address Line",
"type": "string"
},
"street": {
"default": "",
"title": "Street",
"type": "string"
},
"house_number": {
"default": "",
"title": "House Number",
"type": "string"
},
"city": {
"default": "",
"title": "City",
"type": "string"
},
"state": {
"default": "",
"title": "State",
"type": "string"
},
"postcode": {
"default": "",
"title": "Postcode",
"type": "string"
}
},
"required": [
"country"
],
"title": "validate_addressArguments"
}🟢validate_addresses_batch(addresses, country)
Validate up to 50 addresses in one call (mixed countries allowed). `addresses` is a list where each entry is either a free-text string, or an object {"input": <string or fielded object>, "country": "iso3"}. Entries without their own country use the `country` parameter. UK (gbr) rows are routed individually to the Royal Mail PAF service; everything else goes through the batch endpoint. Results come back in the same order, each with the same shape as validate_address. Cost: 1 validation credit per successfully validated row; failed rows are refunded. For files bigger than 50 rows, call this tool repeatedly.
Input Schema
{
"type": "object",
"properties": {
"addresses": {
"items": {},
"title": "Addresses",
"type": "array"
},
"country": {
"default": "",
"title": "Country",
"type": "string"
}
},
"required": [
"addresses"
],
"title": "validate_addresses_batchArguments"
}⚪enrich_us_ca_address(country, address_line, street, house_number, city, ...)
Address → census & geographic codes (USA + Canada), FREE with validation. USA: state & county FIPS, census tract (11-digit GEOID), block group, CBSA/MSA, congressional district (119th Congress), school district. Canada: province, census division, dissemination area, census subdivision, census tract, CMA/CA, federal electoral district. Sources: US Census Bureau TIGER/Line; Statistics Canada (open data). The enrichment is attached when the address resolves to a house-number- or street-accurate match; centroid-only matches return no enrichment (the point could fall in the wrong area). `country` must be "usa" or "can". Cost: 1 validation credit (the enrichment itself is free); failed lookups are refunded.
Input Schema
{
"type": "object",
"properties": {
"country": {
"title": "Country",
"type": "string"
},
"address_line": {
"default": "",
"title": "Address Line",
"type": "string"
},
"street": {
"default": "",
"title": "Street",
"type": "string"
},
"house_number": {
"default": "",
"title": "House Number",
"type": "string"
},
"city": {
"default": "",
"title": "City",
"type": "string"
},
"state": {
"default": "",
"title": "State",
"type": "string"
},
"postcode": {
"default": "",
"title": "Postcode",
"type": "string"
}
},
"required": [
"country"
],
"title": "enrich_us_ca_addressArguments"
}🟡geocode_address(country, street, house_number, city, state, ...)
Forward-geocode an address to coordinates (lat/lng) with an explicit accuracy_type — you always know what you got. accuracy_type is an OPEN set; new tiers are added as reference data improves. Do NOT write code that treats an unrecognised value as a failure. Branch on the boolean `point_coordinate` instead, which is true when the coordinate identifies one address. Current values: rooftop and arrival_point (both point coordinates — a point on the building, or the property's entrance / access point), then street_interpolated, street_centroid, postcode_centroid, locality_centroid, admin_centroid. House-number-level matches may ALSO carry `arrival_point: {lat, lng}` — the premise's entrance/access coordinate beside the served pin (equal to lat/lng when accuracy_type is arrival_point). Use it for delivery and navigation; omitted when not on file. `country` is ISO-3 lowercase. Give fielded parts or a single line in `q`. For UK (gbr) addresses use validate_address instead — it returns point coordinates from Royal Mail PAF. Cost: 1 credit per successful geocode; failures are refunded.
Input Schema
{
"type": "object",
"properties": {
"country": {
"title": "Country",
"type": "string"
},
"street": {
"default": "",
"title": "Street",
"type": "string"
},
"house_number": {
"default": "",
"title": "House Number",
"type": "string"
},
"city": {
"default": "",
"title": "City",
"type": "string"
},
"state": {
"default": "",
"title": "State",
"type": "string"
},
"postcode": {
"default": "",
"title": "Postcode",
"type": "string"
},
"q": {
"default": "",
"title": "Q",
"type": "string"
}
},
"required": [
"country"
],
"title": "geocode_addressArguments"
}⚪reverse_geocode(lat, lng, country, radius_m, limit)
Coordinates → nearest address(es). Returns the closest reference addresses to (lat, lng), nearest first, with distances. Optional: `country` (ISO-3) to constrain the search, `radius_m`, `limit`. Cost: 1 credit per successful lookup; an empty radius (no addresses found) is refunded.
Input Schema
{
"type": "object",
"properties": {
"lat": {
"title": "Lat",
"type": "number"
},
"lng": {
"title": "Lng",
"type": "number"
},
"country": {
"default": "",
"title": "Country",
"type": "string"
},
"radius_m": {
"default": 0,
"title": "Radius M",
"type": "integer"
},
"limit": {
"default": 0,
"title": "Limit",
"type": "integer"
}
},
"required": [
"lat",
"lng"
],
"title": "reverse_geocodeArguments"
}⚪expand_uk_postcode(postcode)
Expand a UK postcode into every Royal Mail delivery point at that postcode — organisation, building, street, town, county, plus UDPRN, UPRN and rooftop coordinates for each address. Cost: 1 credit per postcode, regardless of how many addresses come back; an unknown/invalid postcode is refunded automatically.
Input Schema
{
"type": "object",
"properties": {
"postcode": {
"title": "Postcode",
"type": "string"
}
},
"required": [
"postcode"
],
"title": "expand_uk_postcodeArguments"
}🟢autocomplete_address(country, q, limit, state)
Address autocomplete (type-ahead): ranked, standardized address suggestions for a partial input `q` (typed so far), with lat/lng whenever the reference row carries a coordinate. Use it to help a person pick an address, then pass the chosen one to validate_address. `country` is ISO-3 lowercase. `limit` 1-50 (default 10). `state` narrows USA/Canada. For UK (gbr) the query may be, or start with, a postcode: a full or partial postcode returns every delivery point there (labelled with building/organisation names). UK requests are served from the Royal Mail PAF service; suggestions do not carry UDPRN/UPRN, so validate the chosen address to get them. Cost: billed exactly like the /suggest endpoint it wraps; see https://www.acuris-geo.com/acuris-pricing/
Input Schema
{
"type": "object",
"properties": {
"country": {
"title": "Country",
"type": "string"
},
"q": {
"title": "Q",
"type": "string"
},
"limit": {
"default": 10,
"title": "Limit",
"type": "integer"
},
"state": {
"default": "",
"title": "State",
"type": "string"
}
},
"required": [
"country",
"q"
],
"title": "autocomplete_addressArguments"
}🟢check_balance
Show the connected API key's remaining credit balances (validation, geocode, email, phone pools; trial expiry; the UK free-trial PAF counter for trial keys). Free — never consumes credits.
Input Schema
{
"type": "object",
"properties": {},
"title": "check_balanceArguments"
}🟡request_trial_key(email, accept_terms)
Get an instant FREE Acuris evaluation API key — 1,000 lookups (address validation and geocoding together) plus 50 UK lookups, valid 30 days, no card, no signup form. Idempotent: asking again with the same email within 24h returns the SAME key. BEFORE calling with accept_terms=true you MUST show the user both links and get their explicit confirmation that they agree: Terms of Service: https://api.acuris-geo.com/legal/terms UK PAF Evaluation Terms: https://api.acuris-geo.com/legal/uk-evaluation-terms Never set accept_terms=true on the user's behalf without that confirmation. Without it the tool mints nothing and returns these links. After receiving the key, reconfigure this MCP server connection with the header "Authorization: Bearer <key>" (or set ACURIS_API_KEY for stdio). UK (Royal Mail PAF) lookups are capped at 5 per UTC day while the key is valid. Paid plans: https://www.acuris-geo.com/acuris-pricing/
Input Schema
{
"type": "object",
"properties": {
"email": {
"title": "Email",
"type": "string"
},
"accept_terms": {
"default": false,
"title": "Accept Terms",
"type": "boolean"
}
},
"required": [
"email"
],
"title": "request_trial_keyArguments"
}Community
Evidence