Skip to main content
Glama

Find broadband deals at an address

find_broadband_deals
Read-only

Use when the user wants broadband deals, offers or packages available where they live. If the user has not picked an address yet, call search_addresses first and offer the list; fall back to postcode-only search when they decline or no addresses are found (the precision field says which you got). Pass address_label alongside uprn once an address is picked. Translate the user's needs into the filter inputs. Present the returned picks and computed costs verbatim: never re-rank, re-filter or recalculate totals yourself. total_contract_cost and effective_monthly_cost already account for intro pricing, post-intro rises and setup fees. After presenting, ask one short follow-up about what matters to them (budget, speed needs, contract length, avoiding price rises) and refine with the filter inputs.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
uprnNoProperty identifier from search_addresses. Pass it whenever the user has picked an address so results become address-precise instead of postcode-wide. Never show this number to the user.
postcodeYesUK postcode, e.g. 'SS13 1HJ'. When asking, request the postcode and house number or name together in one question rather than two rounds.
providerNoOnly show deals from this provider, when the user names one.
address_labelNoThe display_address the user picked from search_addresses, passed back verbatim. Carried into the switch link so the FindBroadband site greets the user with their address instead of asking again.
min_speed_mbpsNoMinimum download speed in Mbps. Translate needs rather than inventing numbers: two people working from home plus gaming needs about 150, a heavy 4K household about 300, email and browsing about 35.
max_monthly_priceNoBudget cap in GBP per month, from phrases like 'under £30'.
max_contract_monthsNoLongest contract the user will accept, e.g. 12 for 'no long contracts'.
include_mobile_broadbandNoInclude 4G/5G home broadband. Default false (fixed-line only). Set true only if the user asks for mobile or wireless broadband.
exclude_mid_contract_risesNotrue when the user says they want no mid-contract price rises.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
uprnNo
dealsYes
picksYes
postcodeYes
precisionYes
checked_atYes
filters_relaxedNo
provider_filter_noteNo
total_matching_filtersYes
total_available_at_locationYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnly/openWorld/non-destructive, so the safety profile is covered. The description adds real behavior beyond that: the precision field indicates which search variant ran, totals already include intro pricing, post-intro rises and setup fees, and the output must be presented verbatim without re-ranking or recalculation.

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 trigger condition, then workflow, then output rules, then follow-up — a sensible progression. It is long and slightly repetitive ('translate the user's needs into the filter inputs' and 'refine with the filter inputs' restate the same idea), but nearly every sentence carries an operational instruction.

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?

For a 9-parameter open-world search with an output schema and annotations already in place, this description covers the full loop: prerequisite, fallback, parameter pairing, output handling constraints, and next-step refinement. Nothing an agent needs before or after the call is missing.

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

Parameters3/5

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

Schema description coverage is 100% and the schema already carries the per-parameter meaning, including the speed-translation examples, so the baseline is 3. The description only marginally extends this with the uprn/address_label pairing instruction and the generic 'translate needs into filter inputs' directive.

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?

The first sentence states a specific verb (find), resource (broadband deals/offers/packages) and scope (available where they live), and it explicitly names the sibling search_addresses as the upstream step. An agent can distinguish this from check_if_overpaying and get_deal_details 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.

Usage Guidelines5/5

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

Explicit routing rules: call search_addresses first if no address is picked, fall back to postcode-only when the user declines or no addresses are found, pass address_label alongside uprn once picked. It also prescribes the post-presentation follow-up, so both entry and continuation conditions are covered.

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.

Resources