Skip to content

FindBroadband

by findbroadbanddeals.com · remote · no sign-in to list tools · v1.0.0 · published by com.findbroadbanddeals

Find cheap broadband deals

Changes · 13 high findings

4 tools: 1 change things and 3 only read.

Scanned Oct 21, 2026

3 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http broadband-deals https://www.findbroadbanddeals.com/api/mcp/standard

Findings

Matches of fixed checks, with the text they matched.

3 high
  • The input schema at properties.uprn.description contains "Never show this number to the user", an instruction to keep something from the user.

    Matched text

    inputSchema.properties.uprn.description: "...dress-precise instead of postcode-wide. Never show this number to the user."

    What this check looks for
  • The input schema at properties.uprn.description contains "Never show this number to the user", an instruction to keep something from the user.

    Matched text

    inputSchema.properties.uprn.description: "...dress-precise instead of postcode-wide. Never show this number to the user."

    What this check looks for
  • The input schema at properties.uprn.description contains "Never show this number to the user", an instruction to keep something from the user.

    Matched text

    inputSchema.properties.uprn.description: "...dress-precise instead of postcode-wide. Never show this number to the user."

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

4 tools

Changes things 1Claude Code: ask
  • check_if_overpayingUse when the user asks whether their CURRENT broadband bill or plan, or a RENEWAL or retention offer their provider quoted, is expensive, competitive or worth switching from.1 finding

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • High

      The input schema at properties.uprn.description contains "Never show this number to the user", an instruction to keep something from the user.

      Matched text

      inputSchema.properties.uprn.description: "...dress-precise instead of postcode-wide. Never show this number to the user."

      What this check looks for
    Description, as the server wrote it
    Use when the user asks whether their CURRENT broadband bill or plan, or a RENEWAL or retention offer their provider quoted, is expensive, competitive or worth switching from. Compares what they pay against comparable deals actually available at their address and returns a computed verdict with true 24-month savings. Present the verdict and figures verbatim rather than deriving your own. Each alternative's cost_24_months is its true cost over the 24-month comparison window; ask get_deal_details for a specific deal's whole-contract total. Set quote_type to 'renewal_offer' when evaluating a renewal quote.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
    • destructiveHint: false
Only reads 3Claude Code: allow
  • find_broadband_dealsUse when the user wants broadband deals, offers or packages available where they live.1 finding

    Why it is in this group

    • The name "find_broadband_deals" says "find": a word for reading.

    Findings

    • High

      The input schema at properties.uprn.description contains "Never show this number to the user", an instruction to keep something from the user.

      Matched text

      inputSchema.properties.uprn.description: "...dress-precise instead of postcode-wide. Never show this number to the user."

      What this check looks for
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
    • destructiveHint: false
  • get_deal_detailsUse when the user asks for more detail about ONE specific deal already returned by another tool: setup costs, price-rise terms, what happens after the intro period and availability…1 finding

    Why it is in this group

    • The name "get_deal_details" says "get": a word for reading.

    Findings

    • High

      The input schema at properties.uprn.description contains "Never show this number to the user", an instruction to keep something from the user.

      Matched text

      inputSchema.properties.uprn.description: "...dress-precise instead of postcode-wide. Never show this number to the user."

      What this check looks for
    Description, as the server wrote it
    Use when the user asks for more detail about ONE specific deal already returned by another tool: setup costs, price-rise terms, what happens after the intro period and availability at their address. Pass the deal_id from the earlier result, plus the user's postcode, uprn and address_label when known so availability is confirmed at their address. total_contract_cost here is the whole-contract figure over contract_months.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
    • destructiveHint: false
  • search_addressesUse when you have a UK postcode and need the exact property (broadband availability differs per property).No findings

    Why it is in this group

    • The name "search_addresses" says "search": a word for reading.
    Description, as the server wrote it
    Use when you have a UK postcode and need the exact property (broadband availability differs per property). Ask for the postcode and house number or name in ONE question up front. If the user's message already identifies the property (e.g. '1 Fyfields, SS13 1HJ'), match it against the returned list yourself and proceed straight to the next tool, briefly saying which address you're checking. Only show the numbered list and ask them to pick when the match is ambiguous or they gave postcode only and want precision. Then pass the entry's uprn (never shown to the user) plus its display_address as address_label to the other tools.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
    • destructiveHint: false

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.0.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http broadband-deals https://www.findbroadbanddeals.com/api/mcp/standard

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__broadband-deals__search_addresses",
      "mcp__broadband-deals__find_broadband_deals",
      "mcp__broadband-deals__get_deal_details"
    ],
    "ask": [
      "mcp__broadband-deals__check_if_overpaying"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as broadband-deals. Review it before you use it.