Fibre Compare
Server Details
Check which fibre and broadband deals are available at a UK postcode or address (fibrecompare.com).
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 3 tools
check_fibre_availability and search both search fibrecompare.com for broadband deals at a UK postcode, creating real overlap. The descriptions help by steering agents toward check_fibre_availability and framing search/fetch as compatibility fallbacks, but an agent can still hesitate over which search path to use.
check_fibre_availability follows a clear verb_noun pattern, while fetch and search are bare generic verbs. All names are lowercase and readable, but the set does not follow a single predictable convention.
Three tools is a reasonable size for a focused broadband-deal lookup service. However, search and fetch are explicitly compatibility duplicates, so one of the three is not fully earning its place.
The set covers the core lookup lifecycle: find deals by postcode, search for deal ids, and fetch full details for one deal. It lacks broader comparison or provider-detail operations, but no critical workflow dead-end is apparent for the stated purpose.
Available Tools
3 toolscheck_fibre_availabilityCheck fibre broadband availabilityARead-onlyIdempotentInspect
Check which fibre and broadband deals are available at a UK postcode (or exact address via UPRN/UDPRN) using fibrecompare.com. Returns providers, download speeds, monthly prices, contract lengths, key features and a sign-up link for each deal. Optionally filter by minimum speed, maximum price, provider or contract length.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | Ordering: 'recommended' (default; fibrecompare.com's editorial ranking), 'value' (cheapest effective monthly cost), 'price' (cheapest headline monthly cost), 'speed' (fastest first) or 'site' (backend order). | |
| uprn | No | Unique Property Reference Number for the exact premises, if known. Gives an address-level rather than postcode-level answer. | |
| limit | No | Maximum number of deals to return (default 5). The full list is always available at view_more_url. | |
| udprn | No | Royal Mail Unique Delivery Point Reference Number, if known and no UPRN is available. | |
| address | No | House number/name and optionally street, e.g. '12', 'Flat 3, 12', 'Rose Cottage'. If it matches one premises at the postcode the check is done at address level in this same call. | |
| postcode | Yes | UK postcode to check, e.g. 'SW1A 1AA'. Spacing and case do not matter. | |
| provider | No | Only return deals from providers whose name contains this text, e.g. 'BT', 'Hyperoptic'. | |
| visitor_id | No | The visitor_id from a previous result in this conversation. Reuse it so checks and deal clicks are attributed to the same visit. Omit on the first call. | |
| address_key | No | An address_key from a previous result's addresses list. Runs the check for that exact premises. | |
| min_download_mbps | No | Only return deals whose average download speed is at least this many Mbps (e.g. 100, 500, 900). | |
| max_contract_months | No | Only return deals with a contract of at most this many months (0 = rolling/no contract). | |
| max_monthly_cost_gbp | No | Only return deals costing at most this much per month in GBP. |
Output Schema
| Name | Required | Description |
|---|---|---|
| uprn | No | |
| deals | Yes | |
| udprn | No | |
| postcode | Yes | |
| addresses | No | For postcode-level results: the premises at this postcode. Pass one's address_key back to get an exact-address check. |
| visitor_id | No | Pass back as visitor_id on later calls in this conversation. |
| total_deals | Yes | |
| address_level | Yes | |
| view_more_url | Yes | fibrecompare.com results page for this address, listing every available deal. |
| addresses_note | No | |
| returned_deals | Yes | |
| display_address | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is fully covered. The description adds the external-service dependency and what a result contains, but says nothing about rate limits, throttling, error cases when a postcode is invalid, or coverage gaps — modest added value on top of the annotations.
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?
Three sentences, front-loaded with the core action and scope, with filters last. Slightly padded by enumerating return fields (providers, speeds, prices, contracts, features, sign-up link) that the output schema already supplies.
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 an output schema present and full schema coverage for 12 parameters, the description need not explain return structure, and it correctly covers scope and filters. Its main omission is the multi-call workflow implied by visitor_id/address_key (reuse across calls), which an agent must infer from the schema alone.
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 baseline is 3. The description echoes postcode, UPRN/UDPRN and the four filter dimensions but adds no syntax, defaults, or behavior beyond what each schema property already documents (including the nuanced visitor_id/address_key chaining, which only the schema explains).
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 precise verb and resource ('Check which fibre and broadband deals are available'), bounds it geographically (UK postcode), and names both the identifier modes (postcode vs UPRN/UDPRN) and the backing service (fibrecompare.com). This is specific enough that an agent can distinguish it from the generic 'fetch'/'search' siblings 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear context: postcode-level by default, address-level when a UPRN/UDPRN or matching address is supplied, plus the optional filter dimensions. It does not state when NOT to use it or name which sibling to prefer for, e.g., looking up a single known deal, so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fetchFetch a broadband dealARead-onlyIdempotentInspect
Compatibility tool paired with search. Retrieves the full details of one broadband deal returned by search, by its id.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | A deal id returned by search (format '<postcode>|<product_id>'). |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| url | Yes | |
| text | Yes | |
| title | Yes | |
| metadata | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered by structured data. The description adds only the dependency on search-issued ids and the 'compatibility tool' framing; it offers no further behavioral detail such as error behavior for unknown ids or what 'full details' comprises.
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 no filler; the pairing constraint and the retrieval action are both stated in one pass, and nothing is redundant.
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 one fully documented parameter, a complete annotation set, and an output schema that handles return values, the description covers what an agent needs to invoke it correctly. Only marginal enrichment (error cases, id provenance edge cases) is absent, which is acceptable at this complexity.
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?
There is a single parameter fully documented in the schema (100% coverage), including the '<postcode>|<product_id>' format, so the schema carries the semantics. The description echoes the id's provenance from search but adds no format or validation detail beyond it, making 3 the correct baseline.
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 (retrieves), a precise resource (the full details of one broadband deal), and the scoping mechanism (by its id, from results returned by search). This distinguishes it cleanly from sibling `search`, which returns the list, without the agent needing to open either schema.
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?
It states the tool is paired with `search` and operates on a deal id that search returned, which clearly signals the intended call sequence (search first, then fetch). It stops short of an explicit when-not-to-use statement or naming `check_fibre_availability` as an alternative, so it falls 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.
searchSearch broadband deals by postcodeARead-onlyIdempotentInspect
Compatibility tool for clients that require search/fetch (e.g. ChatGPT deep research). Prefer check_fibre_availability. Searches fibrecompare.com for broadband deals available at a UK postcode contained in the query; returns deal ids for fetch.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Free-text query containing a UK postcode, e.g. 'fibre deals at SW1A 1AA' or 'Hyperoptic EC2A 1AA'. |
Output Schema
| Name | Required | Description |
|---|---|---|
| results | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, open-world, idempotent and non-destructive traits, so the bar is lower. The description adds real context beyond them: it is a compatibility shim forced by search/fetch-style clients, it targets a specific external site, and its output feeds the fetch sibling. It does not mention rate limits or pagination, but the output schema covers returns.
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?
Compact — two sentences that each carry load. The client-compatibility caveat comes first rather than the core action, so it is not perfectly front-loaded, but there is no filler and no redundancy.
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 one-parameter read tool with full annotations and an output schema, the description supplies everything an agent needs: the compatibility rationale, the preferred alternative, the target source, and how results connect to fetch. Nothing material 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 coverage is 100% for the single parameter, and the schema already documents that the string is free text containing a UK postcode with examples. The description repeats "a UK postcode contained in the query" without adding parsing rules or format constraints, so the baseline 3 is appropriate.
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?
State a specific verb and resource: "Searches fibrecompare.com for broadband deals available at a UK postcode." It also distinguishes itself from both siblings by naming check_fibre_availability as preferred and explaining that results are "deal ids for fetch," so an agent can place it in the workflow without opening any schema.
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?
Explicitly scopes when to use it ("Compatibility tool for clients that require search/fetch, e.g. ChatGPT deep research") and when not to ("Prefer check_fibre_availability"). Both the routing condition and the exclusion are stated, leaving nothing to inference.
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.
3 tool updates
- First observed
check_fibre_availability - First observed
fetch - First observed
search
Related MCP Connectors
Compare products, prices and current offers across UK retailers to find the best deal.
UK neighbourhood research from government open data: postcode reports, comparisons, 45 datasets.
US telecom availability and intelligence by address, with FCC provenance. Fiber-first.
Point Topic public MCP: UK broadband market reference data — ISPs, networks, links and standards.
Related MCP Servers
- AlicenseAqualityDmaintenanceSearches UK electronics products across multiple retailers, compares prices, and provides purchase links.2114 npmMIT
- FlicenseNot gradedqualityBmaintenanceEnables AI agents to search and compare live UK product prices from marketplaces like eBay and Amazon, returning normalised JSON with direct buy links.-

Zyfy MCP Serverofficial
AlicenseAqualityCmaintenanceEnables natural language queries about UK postcodes and vehicles, including flood risk, crime rate, broadband coverage, property prices, MOT history, and ULEZ compliance.430 npmMIT- AlicenseAqualityDmaintenanceQuery ARCEP eligibility API to check fixed-line and mobile telecom eligibilities for a given address in France.2MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.