Wireless Choices Plan Finder
Server Details
Compare Australian mobile, prepaid, mobile broadband and nbn plans listed on Wireless Choices
- Status
- Healthy
- Uptime
- 100.0% over 21 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 4 tools
Each tool targets a distinct action: list_providers resolves providers, search_plans discovers plans, get_plan returns one plan's detail, and compare_plans does multi-plan side-by-side comparison. The boundaries are clear and the descriptions explicitly cross-reference each other (e.g. using slugs returned by search_plans).
All four tools follow a consistent verb_noun snake_case pattern: list_providers, search_plans, get_plan, compare_plans. The verbs are standard and predictable for a read-only lookup service.
Four tools is a reasonable, well-scoped set for a plan-finder domain, with each tool earning its place. It sits at the thin end of the ideal range, but nothing feels redundant.
The surface covers the full read-only lifecycle for browsing: provider listing, search, single-plan detail, and comparison. Minor gaps exist (no way to enumerate plan types or filter options directly, and no provider-level detail beyond a count), but core workflows are covered.
Available Tools
4 toolscompare_plansCompare two to four plansARead-onlyIdempotentInspect
Compare two to four plans from Wireless Choices side by side on price, data, network or technology, speed, contract and inclusions. Pass the plan type, provider slug and plan slug for each plan, as returned by search_plans.
| Name | Required | Description | Default |
|---|---|---|---|
| plans | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| mode | No | |
| error | No | Error code, present only on an error result |
| plans | No | |
| message | No | User-facing error message, present only on an error result |
| cta_label | No | |
| not_found | No | |
| disclosure | No | |
| result_count | No |
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 the safety profile is covered. The description adds genuine behavioral context by enumerating what the comparison actually surfaces (price, data, network, speed, contract, inclusions), which goes beyond the annotations. It does not mention failure behavior for invalid plan references.
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?
Two sentences, no filler. The what-and-why (compare on these axes) comes first, and the how (pass these identifiers) follows, matching the order an agent needs them.
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?
An output schema exists, so return-value shape need not be described. For a single nested-array parameter tool with annotations covering safety, the description supplies everything needed: comparison scope, required identifiers, their source, and the cardinality bound.
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 0%, so the description carries the burden and largely succeeds: it names the three per-plan fields (plan type, provider slug, plan slug) and tells the agent where those values originate. It also conveys the 2-4 cardinality that the schema enforces via minItems/maxItems. It does not spell out the plan_type enum values, though the schema exposes them.
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 (compare) and resource (plans) plus the exact comparison axes: price, data, network/technology, speed, contract, inclusions. This is clearly distinguishable from get_plan (single plan) and search_plans (discovery), so an agent can select it without opening other schemas.
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 a concrete workflow cue by telling the agent to pass values 'as returned by search_plans', which implies search_plans must run first. It stops short of stating when not to use this tool (e.g., for a single plan use get_plan), so it is clear but not exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_planGet one planARead-onlyIdempotentInspect
Return the details of one plan from Wireless Choices by plan type, provider slug and plan slug, including inclusions, current promotion terms and the link to its detail page. Use the slugs returned by search_plans or list_providers.
| Name | Required | Description | Default |
|---|---|---|---|
| plan_slug | Yes | ||
| plan_type | Yes | ||
| provider_slug | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| mode | No | |
| plan | No | |
| error | No | Error code, present only on an error result |
| message | No | User-facing error message, present only on an error result |
| cta_label | No | |
| disclosure | No | |
| listing_url | No | Listing page to try instead, present only when the plan was not found |
| result_count | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety and repeatability profile is fully covered. The description adds the payload contents (inclusions, current promotion terms, detail-page link), but since an output schema exists this is partly redundant rather than new behavioral insight.
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?
Two sentences, no filler: the first front-loads what is returned and its identifying inputs, the second gives the prerequisite. Nothing in the text is padding.
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 3-required-param read tool with an output schema and full annotation coverage, the description supplies the identity inputs, the dependency chain for obtaining slugs, and a rough sense of the response. Only the plan_type enum semantics remain unaddressed in prose.
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 0%, but the description names all three required parameters and frames them as a composite lookup key, which compensates partially. It does not explain the allowed plan_type values (mobile, prepaid, mobile_broadband, internet) or the slug format constraints, leaving that to the enum and pattern in the schema.
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 (return details) and resource (one plan) plus the exact identifying keys (plan type, provider slug, plan slug) and the payload (inclusions, promotion terms, detail link). An agent can distinguish it from search_plans, compare_plans and list_providers 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 tells the agent where the required slugs come from — 'Use the slugs returned by search_plans or list_providers' — which is the key prerequisite for calling this tool. It does not, however, state when to prefer this over compare_plans for multi-plan evaluation, so the routing is clear but not exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_providersList providers on Wireless ChoicesARead-onlyIdempotentInspect
List the telco providers currently listed on Wireless Choices, with the network each one sells access to and how many plans of each type are listed. Use this to resolve a provider name to its slug before calling search_plans or get_plan.
| Name | Required | Description | Default |
|---|---|---|---|
| plan_type | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| mode | No | |
| error | No | Error code, present only on an error result |
| message | No | User-facing error message, present only on an error result |
| providers | No | |
| disclosure | No | |
| result_count | No |
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 the safety profile is covered. The description adds useful context about what the call yields (providers, their networks, per-type plan counts), which is more than the annotations convey, though pagination/result-size behavior is unstated.
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?
Two sentences, zero waste: the first delivers scope and return content, the second delivers the routing rule. Both are front-loaded and easy to scan.
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?
Output schema exists so return values needn't be enumerated, and the description still summarizes them well. The only real hole is the undocumented optional plan_type filter, which keeps this just short of fully complete.
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 one parameter (plan_type, an enum) with 0% schema description coverage, and the description never mentions it. The stated return ('how many plans of each type') strongly implies the filter changes those counts, but the agent is left to infer this entirely on its own.
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 the telco providers') plus the returned fields (network, plan counts per type), which no sibling offers. An agent can distinguish this from compare_plans, get_plan and search_plans 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 states the use case: 'resolve a provider name to its slug before calling search_plans or get_plan', naming both downstream alternatives. It lacks a when-not-to-use clause, but the routing guidance is clear and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_plansSearch Australian telco plansARead-onlyIdempotentInspect
Search current Australian mobile, prepaid, mobile broadband and nbn home internet plans from providers listed on Wireless Choices. Filter by price, included data, network, speed tier, contract and features. Results are ordered by lowest ongoing price among matching plans and each one carries the date it was last updated on Wireless Choices. Returns up to 10 plans, each with a link to its detail page; use offset for the next plans among the first 50 matches. Use list_providers first if you are unsure which providers exist.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | price = lowest ongoing price first (default); data = most data first; value = lowest price per GB first | |
| limit | No | Plans to return, up to 10 (default 10) | |
| offset | No | Skip this many matches, to see the next plans in the same order. Pass next_offset from the previous result. Only the first 50 matches can be paged | |
| network | No | Mobile network the provider sells access to. Mobile, prepaid and mobile broadband only; not valid with internet. Use only when the user asks for plans on a network; a named provider goes in provider_slug | |
| features | No | All listed features must be included. Mobile, prepaid and mobile broadband only; not valid with internet | |
| plan_type | Yes | Which catalogue to search | |
| speed_tier | No | nbn speed tier in Mbps, internet only | |
| technology | No | Internet only | |
| expiry_days | No | Recharge length in days. Prepaid and mobile broadband only. 28 and 30 are different lengths and match exactly; 180 covers recharges of 180 to 186 days and 365 covers 360 to 365 days | |
| min_data_gb | No | Minimum included data in GB; ignored for unlimited plans | |
| max_price_aud | No | Ongoing price ceiling in AUD per billing period | |
| provider_slug | No | Restrict to one provider. Use when the user names a provider, e.g. telstra, optus, boost-mobile; slugs are listed by list_providers | |
| unlimited_data | No | Only plans with unlimited data | |
| contract_months | No | Contract term in months. 0 = month-to-month, with no fixed-term contract. Leave out unless the user asks about contract length |
Output Schema
| Name | Required | Description |
|---|---|---|
| mode | No | |
| error | No | Error code, present only on an error result |
| plans | No | |
| offset | No | Position of the first returned plan among the matches, from 0 |
| message | No | User-facing error message, present only on an error result |
| cta_label | No | |
| plan_type | No | |
| disclosure | No | |
| next_steps | No | |
| next_offset | No | Offset for the next plans; null when there are no more, or the 50-match paging limit is reached |
| result_count | No | Plans returned, at most 10 |
| contract_note | No | Present only when the search filtered on contract length: how many listed plans of this type have no fixed-term contract |
| coverage_note | No | |
| ranking_method | No | The ordering applied to the results, in words |
| total_matching | No | Plans that matched the filters |
| filters_applied | No | The filters that were applied, echoed from the request |
| catalogue_updated | No | Date the catalogue copy was generated, ISO date |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, closed-world behaviour, so the safety profile is covered. The description adds real behavioural context beyond that: default ordering by lowest ongoing price, a last-updated date on each plan, a 10-result ceiling, and the fact that paging is capped at the first 50 matches. The pagination cap partially duplicates the offset schema text, which keeps this from a 5.
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?
Four sentences, each carrying information: scope, filterable dimensions, ordering/return behaviour, and the list_providers routing hint. Front-loaded with the purpose, and the closing routing sentence is actionable rather than filler, though the filter enumeration is somewhat redundant against the schema.
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, an extensive annotated parameter set, and read-only annotations, the description need only supply scope, ordering, and paging limits — all of which it does. The remaining gap is cross-sibling positioning against compare_plans and get_plan, which an agent must infer.
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 7 parameters carry enums with documented semantics, so the schema does the heavy lifting. The description's 'filter by price, included data, network, speed tier, contract and features' is a restatement of parameters already fully documented, adding no syntax, defaults, or interaction rules of its own.
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 a precisely scoped resource (current Australian mobile, prepaid, mobile broadband and nbn home internet plans from Wireless Choices), and enumerates the filterable dimensions. An agent can tell at a glance this is the catalogue-search tool rather than a detail or comparison tool.
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 explicit conditional routing to list_providers ('Use list_providers first if you are unsure which providers exist') and implies the filtering conditions under which the tool applies. It does not, however, say when to prefer compare_plans or get_plan over this search, so the sibling routing is only partial.
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.
4 tool updates
- First observed
compare_plans - First observed
get_plan - First observed
list_providers - First observed
search_plans
Related MCP Connectors
Search U.S. cell plans, compare supported costs, find wireless news, and get switching guidance.
Compare US mobile plans, VPNs, travel eSIMs, home internet by address, and German energy tariffs.
Find cheap broadband deals
Cheapest travel eSIM plans for a trip from every provider eSIMCompare tracks, plus a price index.
Related MCP Servers
- AlicenseAqualityAmaintenanceOne-call Australian prudential data plumbing via APRA — cited responses for banking, superannuation and insurance context, not a data broker.6103 PyPIMIT
- AlicenseNot gradedqualityCmaintenanceEnables searching and comparing products from Woolworths and Coles supermarkets.MIT
- FlicenseNot gradedqualityBmaintenanceEnables users to audit monthly broadband and mobile bills, detect out-of-contract price creep and hidden junk fees, and generate high-leverage churn-threat retention scripts.7-
- AlicenseNot gradedqualityCmaintenanceBrowse, compare, and purchase eSIMs for 190+ countries via AI agents. 12 tools for searching 2,300+ data plans, checking coverage, and buying eSIMs with crypto or card. No account required for browsing.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.