GBG Loqate - Reach
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
Verify addresses, email addresses, and phone numbers with confidence scores.
| Author | io.github.gbgplc |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 289 ms |
| Last measured | 2026-10-24 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"GBG Loqate - Reach": {
"url": "https://reach.prod.fabric.gbgplatforms.com/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (11)
list_policiesread-onlyList available decisioning policies (strict, shipping, standard, permissive) with their thresholds.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
retrieve_addressread-onlyResolve a suggestion id from address.suggestions into its full cleansed address components (organisation, sub-building, number, street, city, province, postcode, country). Use this when you need the address itself — to fill a form or show a confirmation — rather than a decision; to verify a chosen suggestion instead, pass 'suggestion_id' to verify_address. CONSUMES A LOQATE CREDIT per call, so resolve only the one suggestion the user chose. The result is reference data, NOT a verification. Requires a Loqate API key.
Parameters:
suggestion_id(required) — string — Id of a suggestion previously returned in address.suggestions. CONSUMES A LOQATE CREDIT. Ids are not stable over time; a stale one returns SUGGESTION_NOT_FOUND and you must search again rather than retrykey— string — Loqate API key — required unless the server has one configured or the request carries an Authorization: Bearer header
Hints: read-only yes · destructive not declared · idempotent not declared · open-world yes
show_policyread-onlyShow full details for a specific decisioning policy.
Parameters:
name(required) — string — Policy name: strict shipping standard or permissive
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
verify_addressread-onlyVerify 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).
Parameters:
id— string — Your own identifier for this record, echoed back by Loqatekey— string — Loqate API key — required unless the server has one configured or the request carries an Authorization: Bearer header (get one at account.loqate.com)policy— string — Policy name: strict shipping standard (default) or permissiveaddress— string — Full address string (free-form — use this OR structured fields below)contact— string — Contact name for the deliverycountry— string — ISO 2-letter country code (e.g. US GB DE)options— object — 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 listpremise— string — Premise or house numbersuggest— boolean — 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 defaultsurname— string — Recipient's last nameaddress2— string — Second address lineaddress3— string — Third address lineaddress4— string — Fourth address lineaddress5— string — Fifth address lineaddress6— string — Sixth address lineaddress7— string — Seventh address lineaddress8— string — Eighth address linebuilding— string — Building nameforename— string — Recipient's first namefunction— string — Contact's job title or functionlatitude— string — Latitude, for a reverse geocodelocality— string — City or townpost_box— string — PO boxpostcode— string — Postal or ZIP codefull_name— string — Recipient's full namelongitude— string — Longitude, for a reverse geocodeadmin_area— string — State or provincedepartment— string — Department within the organisationverify_key— string — Custom address verification API key (overrides LOQATE_VERIFY_KEY env var)verify_url— string — Custom address verification endpoint URL (overrides LOQATE_VERIFY_URL env var)middle_name— string — Recipient's middle nameorganization— string — Company or organisation namesub_building— string — Sub-building (e.g. flat, apartment or suite)thoroughfare— string — Street namesuggest_below— ['null', 'number'] — 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 lookupsuggest_limit— integer — Maximum number of suggestions to return (1-10, default 5). Requires suggestsuggestion_id— string — 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 retrydetect_country— boolean — 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 defaultdelivery_address— string — Full delivery addressdelivery_address1— string — Delivery address line 1delivery_address2— string — Delivery address line 2delivery_address3— string — Delivery address line 3delivery_address4— string — Delivery address line 4delivery_address5— string — Delivery address line 5delivery_address6— string — Delivery address line 6delivery_address7— string — Delivery address line 7delivery_address8— string — Delivery address line 8dependent_locality— string — Dependent locality (e.g. neighbourhood)sub_building_floor— string — Floordependent_thoroughfare— string — Dependent street namesub_administrative_area— string — Sub administrative area (e.g. county)double_dependent_locality— string — Double dependent localitysuper_administrative_area— string — Super administrative area
Hints: read-only yes · destructive not declared · idempotent not declared · open-world yes
verify_address_batchread-onlyVerify up to 100 addresses in one call. Up to 100 records per call; the results array is in submission order and each entry carries its input index, so results can be zipped back onto rows without relying on order. One bad record fails only itself — it carries an error while the rest are verified. Suggestions are not available in batch. Records are grouped by country before being sent, as Loqate recommends, so the cost is one upstream call per distinct country in the batch rather than one per call. Set detect_country to guess the country of records that do not supply one — detection runs per record, before grouping, so a mixed batch still sends each group with the right default. Requires a Loqate API key — pass it via the 'key' field.
Parameters:
addresses(required) — ['null', 'array'] — Addresses to verify, up to 100. Results are returned in the same order, each carrying its input indexkey— string — Loqate API key — required unless the server has one configured or the request carries an Authorization: Bearer headerpolicy— string — Policy name: strict shipping standard (default) or permissiveoptions— object — Loqate API options as nested JSON, applied to every record in the batchverify_key— string — Custom address verification API keyverify_url— string — Custom address verification endpoint URLdetect_country— boolean — When true, guess the country of any record that does not supply one, from its address text, and flag the guess in that record's result. Records are then grouped by their detected country, so a mixed-country batch each gets the right default. Off by default
Hints: read-only yes · destructive not declared · idempotent not declared · open-world yes
verify_contactread-onlyVerify address, email, and/or phone together. Returns individual results plus an overall recommendation (most conservative of all provided fields). 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.
Parameters:
id— string — Your own identifier for this record, echoed back by Loqatekey— string — Loqate API key — required unless the server has one configured or the request carries an Authorization: Bearer headeremail— string — Email address to verifyphone— string — Phone number to verifypolicy— string — Policy name: strict shipping standard (default) or permissiveaddress— string — Full address stringcontact— string — Contact name for the deliverycountry— string — ISO 2-letter country codeoptions— object — 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 listpremise— string — Premise or house numbersuggest— boolean — When true, look up alternative addresses suggested by Loqate and return them under address.suggestions. Requires the Loqate address-suggestion feature to be enabled on the account (licensed separately from verification). The lookup runs when the address is not accepted (review or reject) OR when it is accepted below the confidence floor (see suggest_below). Address-only — does not affect phone or email; off by defaultsurname— string — Recipient's last nameaddress2— string — Second address lineaddress3— string — Third address lineaddress4— string — Fourth address lineaddress5— string — Fifth address lineaddress6— string — Sixth address lineaddress7— string — Seventh address lineaddress8— string — Eighth address linebuilding— string — Building nameforename— string — Recipient's first namefunction— string — Contact's job title or functionlatitude— string — Latitude, for a reverse geocodelocality— string — City or townpost_box— string — PO boxpostcode— string — Postal or ZIP codefull_name— string — Recipient's full namelongitude— string — Longitude, for a reverse geocodeadmin_area— string — State or provincedepartment— string — Department within the organisationverify_key— string — Custom address verification API key (overrides LOQATE_VERIFY_KEY env var)verify_url— string — Custom address verification endpoint URL (overrides LOQATE_VERIFY_URL env var)middle_name— string — Recipient's middle nameorganization— string — Company or organisation namesub_building— string — Sub-building (e.g. flat, apartment or suite)thoroughfare— string — Street namesuggest_below— ['null', 'number'] — Confidence floor for suggestions (0-1). An accepted address scoring below it still gets suggestions. Omit to use the policy value (standard 0.85); 0 disables the floor. Address-onlysuggest_limit— integer — Maximum number of suggestions to return (1-10, default 5). Requires suggestsuggestion_id— string — 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 retrydetect_country— boolean — When true and no country is supplied, guess the country from the address and flag the guess in the result (country_guessed). Address-only — does not affect phone or email; off by defaultdelivery_address— string — Full delivery addressdelivery_address1— string — Delivery address line 1delivery_address2— string — Delivery address line 2delivery_address3— string — Delivery address line 3delivery_address4— string — Delivery address line 4delivery_address5— string — Delivery address line 5delivery_address6— string — Delivery address line 6delivery_address7— string — Delivery address line 7delivery_address8— string — Delivery address line 8dependent_locality— string — Dependent locality (e.g. neighbourhood)sub_building_floor— string — Floordependent_thoroughfare— string — Dependent street namesub_administrative_area— string — Sub administrative area (e.g. county)double_dependent_locality— string — Double dependent localitysuper_administrative_area— string — Super administrative area
Hints: read-only yes · destructive not declared · idempotent not declared · open-world yes
verify_contact_batchread-onlyVerify up to 100 contacts in one call, each with any combination of address, email and phone, returning an overall recommendation per contact. Results are in submission order and each carries its input index. One bad record fails only itself, and a field that cannot be verified does not remove the contact — the overall recommendation is drawn from whichever fields were checked. The three types run concurrently, so a full batch is paced by email at roughly 7 seconds per 100. Requires a Loqate API key — pass it via the 'key' field.
Parameters:
contacts(required) — ['null', 'array'] — Contacts to verify, up to 100. Results are returned in the same order, each carrying its input indexkey— string — Loqate API key — required unless the server has one configured or the request carries an Authorization: Bearer headerpolicy— string — Policy name: strict shipping standard (default) or permissiveoptions— object — Loqate API options as nested JSON, applied to every address in the batchverify_key— string — Custom address verification API keyverify_url— string — Custom address verification endpoint URLdetect_country— boolean — When true, guess the country of any contact whose address does not supply one and flag the guess in that contact's address result. Off by default
Hints: read-only yes · destructive not declared · idempotent not declared · open-world yes
verify_emailread-onlyVerify an email address via Loqate. Returns confidence, risk level, and accept/review/reject recommendation. Requires a Loqate API key — pass it via the 'key' field.
Parameters:
email(required) — string — Email address to verifykey— string — Loqate API key — required unless the server has one configured or the request carries an Authorization: Bearer headerpolicy— string — Policy name: strict shipping standard (default) or permissive
Hints: read-only yes · destructive not declared · idempotent not declared · open-world yes
verify_email_batchread-onlyVerify up to 100 email addresses in one call. Up to 100 records per call; the results array is in submission order and each entry carries its input index, so results can be zipped back onto rows without relying on order. One bad record fails only itself — it carries an error while the rest are verified. Suggestions are not available in batch. The batch endpoint returns less detail than single verification: risk, complainer and reason are absent, though the accept/review/reject recommendation and the disposable-mailbox flag are identical. Requires a Loqate API key — pass it via the 'key' field.
Parameters:
emails(required) — ['null', 'array'] — Email addresses to verify, up to 100. Results are returned in the same order, each carrying its input indexkey— string — Loqate API key — required unless the server has one configured or the request carries an Authorization: Bearer headerpolicy— string — Policy name: strict shipping standard (default) or permissive
Hints: read-only yes · destructive not declared · idempotent not declared · open-world yes
verify_phoneread-onlyVerify a phone number via Loqate. Returns confidence, number type, carrier, and accept/review/reject recommendation. Requires a Loqate API key — pass it via the 'key' field.
Parameters:
phone(required) — string — Phone number (E.164 format preferred e.g. +442071234567)key— string — Loqate API key — required unless the server has one configured or the request carries an Authorization: Bearer headerpolicy— string — Policy name: strict shipping standard (default) or permissivecountry— string — ISO 2-letter country code (helps with parsing if no country prefix)
Hints: read-only yes · destructive not declared · idempotent not declared · open-world yes
verify_phone_batchread-onlyVerify up to 100 phone numbers in one call. Up to 100 records per call; the results array is in submission order and each entry carries its input index, so results can be zipped back onto rows without relying on order. One bad record fails only itself — it carries an error while the rest are verified. Suggestions are not available in batch. Phone validation has no bulk endpoint, so numbers are checked concurrently against a shared limit. Measured at around 2.6s for 100 numbers, which is the fastest of the three batch types — email is the slowest, at roughly 7s for 100, because it probes mail servers. Requires a Loqate API key — pass it via the 'key' field.
Parameters:
phones(required) — ['null', 'array'] — Phone numbers to verify, up to 100. Results are returned in the same order, each carrying its input indexkey— string — Loqate API key — required unless the server has one configured or the request carries an Authorization: Bearer headerpolicy— string — Policy name: strict shipping standard (default) or permissive
Hints: read-only yes · destructive not declared · idempotent not declared · open-world yes
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.