Skip to main content
Glama

acuris-mcp

validate_address

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).

Reading the verdict: `status` is only ever "verified" or "corrected". A
partial result has partial_match: true and NO `status`: the address was
not fully confirmed. Present it as "partially matched", with `reasons`
(e.g. house_number_unconfirmed, street_not_matched), `deliverable` and the
accuracy_type of the coordinate; never as valid, never as not found.
http_status 404 = not found.

Cost: 1 validation credit per successful lookup (verified, corrected, or a
partial result with a coordinate). No-match, errors and state/province-only
results are not charged: they are refunded automatically (you pay for
results, not attempts).

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "country": "<country>"
    },
    "name": "validate_address"
  }
}

Input Schema

NameRequiredDescriptionDefault
cityNo
stateNo
streetNo
countryYes
postcodeNo
address_lineNo
house_numberNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does so: it explains that `status` is only 'verified' or 'corrected', that partial results have partial_match:true and NO status, that http_status 404 means not found, and it prescribes how to phrase partial results. It also discloses the billing model (1 credit per successful lookup, auto-refund for no-match/errors/state-only) and the presence of coordinates with accuracy_type plus a free enrichment block.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action and the input contract, then the verdict-reading rules and cost. Dense and mostly earned, though the closing clause 'you pay for results, not attempts' restates the preceding refund sentence and the partial-match paragraph is somewhat long relative to its content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, and the description covers the return shape thoroughly: status values, partial_match flag, reasons, deliverable, confidence, coordinates with accuracy_type, and the enrichment block. Combined with error semantics (404) and billing, an agent has everything needed to call and interpret this tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate: it specifies the ISO-3 lowercase format for `country` and enumerates every fielded alternative (street, house_number, city, state, postcode) along with the either/or constraint against `address_line`. It does not define per-field semantics for non-US countries (e.g. what `state` means for a German address) or postcode formats, leaving a small gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Validate and standardize one postal address') and the word 'one' implicitly separates it from the validate_addresses_batch sibling. The scope (240+ countries, UK via Royal Mail PAF with UDPRN/UPRN) makes the tool identifiable without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear operating context: country must be ISO-3 lowercase, and the caller must supply EITHER address_line OR fielded parts, which resolves the main invocation ambiguity. It also states the cost/refund model so the agent knows when calls are free. It never routes explicitly to siblings like autocomplete_address or geocode_address, so it stops short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.