MarriageLicense.fyi
Server Details
Marriage licence offices across GB, IE, NZ, AU, CA and US.
- Status
- Healthy
- Uptime
- 99.9% over 21 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
TDQS
Scored across 6 tools
Each tool targets a distinct resource or action: get one listing, aggregate stats, and three separate list_* endpoints for categories, places, and sources, plus a filtered search. get_listing vs search_listings are clearly differentiated by single-record retrieval versus text/place/category querying. No overlap that would cause misselection.
All six tools follow a strict verb_noun snake_case pattern (get_listing, get_stats, list_categories, list_places, list_sources, search_listings). The verbs are used consistently with their semantics. No mixing of conventions.
Six tools is well-scoped for a read-only directory API covering detail, search, browse-by-facet, stats, and provenance. Each tool earns its place with no redundancy. Neither thin nor bloated.
The surface covers retrieval, search with filters, faceted browsing, aggregate stats, and data sourcing, which fits a read-only public directory. Minor gaps exist, such as no dedicated get_category/get_place detail endpoint or explicit pagination parameters, but agents can work around these via list and search tools.
Available Tools
6 toolsget_listingARead-onlyIdempotentInspect
Get one published marriage licence office by its slug.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | The listing slug. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnly, idempotent, non-destructive, and closed-world behavior, so the description carries little burden. It usefully adds the 'published' qualifier (implying unpublished slugs are not returned), but says nothing about failure behavior for an unknown slug, which the annotations do not cover.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with the resource and lookup key front-loaded and zero filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read tool with full schema coverage, complete annotations, and no output schema, the description is nearly sufficient. It could add a note on what is returned or the not-found case, but nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single parameter is fully constrained (pattern, length). The description only restates 'by its slug', adding no meaning beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Get), resource (marriage licence office), scope (one, published), and lookup key (its slug). This clearly separates it from the list_* and search_listings siblings, though it does not name them explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the 'one ... by its slug' phrasing suggests fetching a known item, versus search_listings for discovery. There is no explicit when-to-use, when-not-to-use, or alternative named, leaving routing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_statsARead-onlyIdempotentInspect
Get the number of published marriage licence offices, places and categories, and when the data last changed.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so safety profile needs no repetition. The description adds genuinely new context: the tool returns aggregate counts and a data-freshness timestamp, which tells the agent what it gets back behaviorally.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; every clause names concrete return data, and nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only summary tool with no output schema, the description covers what is returned (counts of offices/places/categories and last-changed time) sufficiently to call it correctly. Exact field names or shape are unspecified, but that is a minor gap given the simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4. No parameter semantics are needed and the description correctly does not invent any.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb (get) and spells out exactly what resource it returns: counts of published marriage licence offices, places and categories plus the last data-change timestamp. That is clearly distinct from sibling list_* / search_* tools, though it never names an alternative explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use or when-not-to-use statement. Usage is only implied by the contrast between returning aggregate counts/freshness and the sibling tools that enumerate listings, categories or places.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_categoriesBRead-onlyIdempotentInspect
List categories with their marriage licence office counts.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and a closed world, so the safety profile is covered. The description adds that results carry per-category office counts, which is useful payload context, but says nothing about ordering, volume, or whether the set is complete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence with the verb front-loaded and no filler; a single phrasing could arguably be tightened, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a trivial no-parameter enumerator this is close to sufficient, and with no output schema the description carries the return-shape burden—which it only partially meets by naming the count field. It leaves undefined what a "category" is and whether the list is exhaustive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4; there is no parameter semantics for the description to clarify or omit. Its statement that counts accompany each category is the only payload detail available.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb+resource ("List categories") plus the payload it returns ("marriage licence office counts"), so an agent knows exactly what this call produces. It is not explicitly contrasted with siblings like list_places or get_stats, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus list_places, list_sources, get_stats, or search_listings, and no mention of any prerequisites. The agent must infer the use case purely from the resource name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_placesARead-onlyIdempotentInspect
List countries, regions and cities that have marriage licence offices.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=false, and destructiveHint=false, so the safety profile is fully covered by structured data. The description adds domain context (the entities are those hosting marriage licence offices), which is genuinely useful, but says nothing about return structure or ordering since there is no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence, front-loaded with the verb and resource, with no filler or redundancy. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read-only enumeration whose behavioral traits are fully covered by annotations, the description is close to sufficient. The main remaining gap is what the returned records look like (fields, ordering, pagination), which matters more because no output schema exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4 and there is no schema semantics to supplement. The description correctly implies an unfiltered enumeration with no input arguments.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('List') and a precise resource ('countries, regions and cities that have marriage licence offices'), so an agent knows this is a geographic enumeration tool. It is implicitly distinct from siblings like list_categories, list_sources, and search_listings, though it never names or contrasts with them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no statement of prerequisites, and no mention of alternatives such as search_listings or get_listing. The only usage signal is the implied 'use this to enumerate locations', which the agent must infer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_sourcesBRead-onlyIdempotentInspect
List where the marriage licence office data comes from, with the license and refresh of each source.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, closed-world and non-destructive behavior, so the safety profile is covered. The description adds that each entry carries licence and refresh metadata, which is useful return-content context but not rich behavioral disclosure (no note on how often sources refresh or size of the list).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence with no filler, and the resource being listed is front-loaded. It loses a point for the ambiguous 'license and refresh' clause, which could be tightened to state exactly what metadata is returned.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With zero params, full annotation coverage and no output schema, the description's job is largely to say what comes back, and it does name the provenance and per-source metadata. A brief note on ordering or scope would make it fully self-sufficient, but nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to clarify; the baseline for a parameterless tool applies. No misleading parameter hints are given.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('List') and a specific resource (the provenance of marriage licence office data), so an agent can distinguish it from data-oriented siblings like get_listing or get_stats. The phrasing is slightly garbled ('with the license and refresh of each source' is ambiguous), but the intent is readable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No indication of when to call this versus siblings such as get_listing, list_categories, or get_stats, and no prerequisites or exclusions stated. Usage is only inferable from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_listingsBRead-onlyIdempotentInspect
Search published marriage licence offices by text, place and category.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Search text, with at least one letter or digit. Matches name, categories, attributes, description and place. Typos fall back to close matches. | |
| city | No | City slug, from /places. | |
| sort | No | `relevance` needs `q` and is the default with it. `name` is the default without `q`. `recent` is newest first. | |
| limit | No | Items per page. | |
| cursor | No | `page.nextCursor` from the previous response. Opaque. Send the same filters and `limit`. | |
| region | No | Region slug, from /places. | |
| country | No | ISO 3166-1 alpha-2 country code, any case. A country the directory does not cover, as listed in /places, gives 400. | |
| category | No | Category slug, from /categories. A parent slug also matches its children. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and closed-world scope, so the safety profile is covered. The description adds one real trait — results are limited to 'published' offices — but says nothing about pagination behavior or result ordering beyond what the schema states.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One clean, front-loaded sentence with no filler. It is efficient, though arguably clipped given an eight-parameter tool with pagination.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The schema fully documents filters and the cursor-based paging contract, and annotations carry the safety profile, so the description need not explain returns. Still, it omits any positioning against the five sibling tools and any note that filtering is optional (zero required params).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all eight parameters (including sort defaults, cursor echo rules, and slug sources) are documented in the schema itself. The description's 'text, place and category' only enumerates a subset of the axes already covered, adding no syntax or constraint detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Search) and resource (published marriage licence offices) plus the three search axes. It is distinguishable from the get_listing/list_* siblings, though it does not explicitly name or contrast them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no exclusions, and no routing to alternatives such as get_listing for a single known office or list_places/list_categories for enumerating filter values. The search-by-dimension phrasing only implies usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
6 tool updates
- First observed
get_listing - First observed
get_stats - First observed
list_categories - First observed
list_places - First observed
list_sources - First observed
search_listings
Related MCP Connectors
Find the government office that issues your apostille.
Find wedding venues and vendors, estimate costs, and manage guests, events and wedding details.
Find polygraph (lie detector) offices, pricing and service info across the US, Canada and the UK.
Official US and UK records: licenses, NPI, carriers, contracts, inspections, permits, house prices
Related MCP Servers
- AlicenseAqualityDmaintenanceVerified locale data for AI agents: dates, phone numbers, currency formatting, VAT/sales-tax by date, public holidays, and addresses (UK & US). Returns checked answers and flags impossible inputs instead of guessing.7Apache 2.0
- AlicenseNot gradedqualityCmaintenanceProvides Missouri DMV license office data including addresses, hours, contract agents, and daily-refreshed closure dates.5 npmMIT
- AlicenseNot gradedqualityCmaintenanceProvides Wisconsin DMV (WisDOT) customer service center data including address, hours, services, and payment methods for each counter. Enables querying by city, county, zip, name, or service type.5 npmMIT
- AlicenseNot gradedqualityCmaintenanceEnables read-only lookup and comparison of sourced, dated migration data — 39 countries and 27,000+ cities, visa and residence routes, passport entry rules, cost of living, salaries, crime, air quality and climate. Every fact returned includes its value, unit, geographic grain, observation date, source and grade, with unknown values left explicit rather than estimated.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.