Skip to main content
Glama

GBG Loqate - Reach

Verify Address

verify_address
Read-only

Verify an address against Loqate's global reference data. Returns a confidence score (0-1), verification status, and a policy-driven accept/review/reject recommendation. Set 'suggest' to also get alternative addresses suggested by Loqate whenever the address does not clear the policy; offer them to the user and verify the chosen one in a second call before treating it as good. Suggestions require a separately licensed Loqate feature enabled on the account — without it, verification still succeeds and the problem is reported in suggestions.error. Requires a Loqate API key — pass it via the 'key' field (get one at account.loqate.com).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
idNoYour own identifier for this record, echoed back by Loqate
keyNoLoqate API key — required unless the server has one configured or the request carries an Authorization: Bearer header (get one at account.loqate.com)
policyNoPolicy name: strict shipping standard (default) or permissive
addressNoFull address string (free-form — use this OR structured fields below)
contactNoContact name for the delivery
countryNoISO 2-letter country code (e.g. US GB DE)
optionsNoLoqate API options as nested JSON, e.g. {"ServerOptions": {"FieldStatus": "true"}}. Dot notation is equivalent: {"ServerOptions.FieldStatus": "true"}. Pass GeoCode here as a boolean — it is sent at the request root where Loqate expects it. In-Options booleans (Certify Version Enhance Deceased Goneaways) take JSON booleans; ServerOptions values (e.g. OutputCasing DefaultCountry) are strings. Set ServerOptions.FieldStatus to "true" to get the changes list
premiseNoPremise or house number
suggestNoWhen true, look up alternative addresses suggested by Loqate and return them in the result as suggestions. Requires the Loqate address-suggestion feature to be enabled on the account (licensed separately from verification) — without it, verification still succeeds and the reason appears in suggestions.error. The lookup runs when the address is not accepted (review or reject) OR when it is accepted below the confidence floor (see suggest_below) — a policy accepts from its own minimum, so an accepted address is not necessarily a confident one. Address-only; off by default
surnameNoRecipient's last name
address2NoSecond address line
address3NoThird address line
address4NoFourth address line
address5NoFifth address line
address6NoSixth address line
address7NoSeventh address line
address8NoEighth address line
buildingNoBuilding name
forenameNoRecipient's first name
functionNoContact's job title or function
latitudeNoLatitude, for a reverse geocode
localityNoCity or town
post_boxNoPO box
postcodeNoPostal or ZIP code
full_nameNoRecipient's full name
longitudeNoLongitude, for a reverse geocode
admin_areaNoState or province
departmentNoDepartment within the organisation
verify_keyNoCustom address verification API key (overrides LOQATE_VERIFY_KEY env var)
verify_urlNoCustom address verification endpoint URL (overrides LOQATE_VERIFY_URL env var)
middle_nameNoRecipient's middle name
organizationNoCompany or organisation name
sub_buildingNoSub-building (e.g. flat, apartment or suite)
thoroughfareNoStreet name
suggest_belowNoConfidence floor for suggestions (0-1). An accepted address scoring below it still gets suggestions — policies accept from their own minimum, so an accepted address is not necessarily a confident one. Omit to use the policy value (standard 0.85); 0 disables the floor so only review/reject trigger a lookup
suggest_limitNoMaximum number of suggestions to return (1-10, default 5). Requires suggest
suggestion_idNoId of a suggestion previously returned in address.suggestions. The tool retrieves that address's cleansed components from Loqate and verifies those, which is how you confirm a suggestion the user chose. Use INSTEAD OF address, not alongside it. CONSUMES A LOQATE CREDIT — pass one id, for the one suggestion that was chosen, never several. Ids are not stable over time; a stale one returns SUGGESTION_NOT_FOUND and you must search again rather than retry
detect_countryNoWhen true and no country is supplied, guess the country from the address and flag the guess in the result (country_guessed). Address-only; off by default
delivery_addressNoFull delivery address
delivery_address1NoDelivery address line 1
delivery_address2NoDelivery address line 2
delivery_address3NoDelivery address line 3
delivery_address4NoDelivery address line 4
delivery_address5NoDelivery address line 5
delivery_address6NoDelivery address line 6
delivery_address7NoDelivery address line 7
delivery_address8NoDelivery address line 8
dependent_localityNoDependent locality (e.g. neighbourhood)
sub_building_floorNoFloor
dependent_thoroughfareNoDependent street name
sub_administrative_areaNoSub administrative area (e.g. county)
double_dependent_localityNoDouble dependent locality
super_administrative_areaNoSuper administrative area

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed8 schema fields changed
    • addedInput schema / properties / contact
      Added value: +{
      +  "description": "Contact name for the delivery",
      +  "type": "string"
      +}
    • addedInput schema / properties / department
      Added value: +{
      +  "description": "Department within the organisation",
      +  "type": "string"
      +}
    • addedInput schema / properties / forename
      Added value: +{
      +  "description": "Recipient's first name",
      +  "type": "string"
      +}
    • addedInput schema / properties / full_name
      Added value: +{
      +  "description": "Recipient's full name",
      +  "type": "string"
      +}
    • addedInput schema / properties / function
      Added value: +{
      +  "description": "Contact's job title or function",
      +  "type": "string"
      +}
    • addedInput schema / properties / id
      Added value: +{
      +  "description": "Your own identifier for this record, echoed back by Loqate",
      +  "type": "string"
      +}
    • addedInput schema / properties / middle_name
      Added value: +{
      +  "description": "Recipient's middle name",
      +  "type": "string"
      +}
    • addedInput schema / properties / surname
      Added value: +{
      +  "description": "Recipient's last name",
      +  "type": "string"
      +}
  2. Changed8 schema fields changed
    • changedInput schema / properties / dependent_locality / description
      Previous value: -"Dependent locality (e.g. neighborhood)"New value: +"Dependent locality (e.g. neighbourhood)"
    • changedInput schema / properties / latitude / description
      Previous value: -"Latitude for reverse geocode"New value: +"Latitude, for a reverse geocode"
    • changedInput schema / properties / longitude / description
      Previous value: -"Longitude for reverse geocode"New value: +"Longitude, for a reverse geocode"
    • changedInput schema / properties / organization / description
      Previous value: -"Organization or business name"New value: +"Company or organisation name"
    • changedInput schema / properties / post_box / description
      Previous value: -"PO Box number"New value: +"PO box"
    • changedInput schema / properties / sub_building / description
      Previous value: -"Sub-building (e.g. apartment, suite)"New value: +"Sub-building (e.g. flat, apartment or suite)"
    • changedInput schema / properties / sub_building_floor / description
      Previous value: -"Floor number"New value: +"Floor"
    • changedInput schema / properties / super_administrative_area / description
      Previous value: -"Super administrative area (e.g. region)"New value: +"Super administrative area"
  3. Changed1 schema field changed
    • changedInput schema / properties / options / description
      Previous value: -"Loqate API options. Pass GeoCode here as a boolean — it is sent at the request root where Loqate expects it. In-Options booleans (Certify Version Enhance Deceased Goneaways) take JSON booleans; ServerOptions values (e.g. OutputCasing DefaultCountry) are strings"New value: +"Loqate API options as nested JSON, e.g. {\"ServerOptions\": {\"FieldStatus\": \"true\"}}. Dot notation is equivalent: {\"ServerOptions.FieldStatus\": \"true\"}. Pass GeoCode here as a boolean — it is sent at the request root where Loqate expects it. In-Options booleans (Certify Version Enhance Deceased Goneaways) take JSON booleans; ServerOptions values (e.g. OutputCasing DefaultCountry) are strings. Set ServerOptions.FieldStatus to \"true\" to get the changes list"
  4. Changed2 schema fields changed
    • changedInput schema / properties / suggest / description
      Previous value: -"When true, look up alternative addresses suggested by Loqate and return them in the result as suggestions. The lookup runs when the address is not accepted (review or reject) OR when it is accepted below the confidence floor (see suggest_below) — a policy accepts from its own minimum, so an accepted address is not necessarily a confident one. Address-only; off by default"New value: +"When true, look up alternative addresses suggested by Loqate and return them in the result as suggestions. Requires the Loqate address-suggestion feature to be enabled on the account (licensed separately from verification) — without it, verification still succeeds and the reason appears in suggestions.error. The lookup runs when the address is not accepted (review or reject) OR when it is accepted below the confidence floor (see suggest_below) — a policy accepts from its own minimum, so an accepted address is not necessarily a confident one. Address-only; off by default"
    • addedInput schema / properties / suggestion_id
      Added value: +{
      +  "description": "Id of a suggestion previously returned in address.suggestions. The tool retrieves that address's cleansed components from Loqate and verifies those, which is how you confirm a suggestion the user chose. Use INSTEAD OF address, not alongside it. CONSUMES A LOQATE CREDIT — pass one id, for the one suggestion that was chosen, never several. Ids are not stable over time; a stale one returns SUGGESTION_NOT_FOUND and you must search again rather than retry",
      +  "type": "string"
      +}
  5. Changed3 schema fields changed
    • addedInput schema / properties / suggest
      Added value: +{
      +  "description": "When true, look up alternative addresses suggested by Loqate and return them in the result as suggestions. The lookup runs when the address is not accepted (review or reject) OR when it is accepted below the confidence floor (see suggest_below) — a policy accepts from its own minimum, so an accepted address is not necessarily a confident one. Address-only; off by default",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / suggest_below
      Added value: +{
      +  "description": "Confidence floor for suggestions (0-1). An accepted address scoring below it still gets suggestions — policies accept from their own minimum, so an accepted address is not necessarily a confident one. Omit to use the policy value (standard 0.85); 0 disables the floor so only review/reject trigger a lookup",
      +  "type": [
      +    "null",
      +    "number"
      +  ]
      +}
    • addedInput schema / properties / suggest_limit
      Added value: +{
      +  "description": "Maximum number of suggestions to return (1-10, default 5). Requires suggest",
      +  "type": "integer"
      +}
  6. Changed1 schema field changed
    • addedInput schema / properties / detect_country
      Added value: +{
      +  "description": "When true and no country is supplied, guess the country from the address and flag the guess in the result (country_guessed). Address-only; off by default",
      +  "type": "boolean"
      +}
  7. Changed1 schema field changed
    • changedInput schema / properties / options / description
      Previous value: -"Loqate API options (e.g. GeoCode, Certify, DefaultCountry, OutputCasing)"New value: +"Loqate API options. Pass GeoCode here as a boolean — it is sent at the request root where Loqate expects it. In-Options booleans (Certify Version Enhance Deceased Goneaways) take JSON booleans; ServerOptions values (e.g. OutputCasing DefaultCountry) are strings"
  8. Changed1 schema field changed
    • changedInput schema / properties / key / description
      Previous value: -"Loqate API key — required unless the server has one configured (get one at account.loqate.com)"New value: +"Loqate API key — required unless the server has one configured or the request carries an Authorization: Bearer header (get one at account.loqate.com)"
  9. First observed

TDQS

A4.3/5.0
Behavior4/5

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

Annotations declare readOnlyHint and openWorldHint, so the safety profile is covered; the description adds substantive behavioral context beyond that: an API key requirement, a separately licensed feature whose absence does not fail verification but surfaces in suggestions.error, and the two-call confirmation workflow. It still doesn't mention rate limits, credit cost, or latency for the main verification path.

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?

Four sentences, front-loaded with purpose then output then the suggest caveat then the auth requirement — no filler. There is some verbatim overlap with the 'suggest' parameter description, which is the only real inefficiency.

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

Completeness4/5

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

With 53 parameters and no output schema, the description carries a heavy load; it compensates by naming the returned fields (confidence score, verification status, recommendation) and the error channel for suggestions, plus the auth path. It stops short of describing the overall result structure or the policy field semantics in depth, so it is strong but not exhaustive.

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 coverage is 100%, so the baseline is 3; the description earns an increment by tying the parameters together conceptually — the policy-driven accept/review/reject model, the 'suggest' lookup trigger, and the workflow requirement that a chosen suggestion be verified in a second call rather than trusted directly. Much of the suggest licensing text is duplicated from the schema, which limits the gain.

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+resource ('Verify an address against Loqate's global reference data') and immediately characterizes the output (confidence score, status, accept/review/reject recommendation). The singular scope is distinguishable from the batch sibling, and the suggestion/second-call mechanic makes the tool's role unambiguous.

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 conditional guidance for the 'suggest' path (when to look up alternatives, and that the chosen one must be verified in a second call before being treated as good), plus the licensing precondition. It does not explicitly route between verify_address, verify_address_batch, and retrieve_address, so the sibling-selection guidance is implied rather than stated.

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.