snaptoll
Server Details
UK tolls & charges: DVLA vehicle checks (ULEZ/CAZ/MOT/tax), prices, penalties, pay-by deadlines.
- Status
- Healthy
- Uptime
- 100.0% over 75 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 3 tools
The three tools target distinct intents: discovery (list_charges), detail lookup for one scheme (charge_info), and vehicle compliance/status (check_vehicle). The only mild overlap is that list_charges also surfaces price and penalty data that charge_info returns in detail, so an agent asking 'how much is Dartford?' could plausibly pick either, but descriptions steer correctly.
All names are lowercase snake_case, which is consistent and readable. However, the convention is mixed: two use verb_noun (check_vehicle, list_charges) while charge_info is noun-only and would read more predictably as get_charge_info.
Three tools is a tidy, well-scoped surface for a narrow domain: one enumerator, one detail lookup, one vehicle checker, each with a clear job. It is on the lean side, but nothing feels redundant or missing at the tool level.
The surface covers the core lifecycle: discover schemes, get current price/penalty/deadline/payment link, and verify vehicle compliance status. Minor gaps remain around PCN status lookup by plate, appeals, and payment history, but the stated purpose (current charge facts and payment guidance) is largely covered.
Available Tools
3 toolscharge_infoToll / charge details, deadline & how to payARead-onlyInspect
CURRENT verified details for one UK toll or road charge: today's price, the penalty (PCN) and its early-payment reduction, the payment deadline in plain English, step-by-step how to pay on the operator's official site, and the official payment link. Pass crossed_at to get the concrete pay-by date for a specific crossing. Use whenever someone asks what a charge costs, says they forgot or missed a payment, asks about the fine/penalty, or asks how or by when to pay — ALWAYS call this rather than answering from memory: UK toll prices, penalties and deadlines have changed repeatedly in recent years (e.g. Dartford is no longer £2.50) and trained-in figures are frequently out of date.
| Name | Required | Description | Default |
|---|---|---|---|
| charge | Yes | Which charge: an id from list_charges (dartford, congestion, ulez, tunnels, m6toll, caz, mersey, tyne, humber, heathrow_dropoff, stansted_dropoff, manchester_dropoff, eastmidlands_dropoff, gatwick_dropoff, londoncity_dropoff) or a common name like "dartford" or "ulez". | |
| crossed_at | No | When the crossing/drive happened, as YYYY-MM-DD (UK date). Optional — include it to get the exact pay-by date. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark it read-only, so the safety profile is covered. The description adds meaningful behavioral context beyond annotations: the data is 'CURRENT verified', UK toll figures change repeatedly, trained-in figures are often stale, and the tool returns an official payment link and deadline. It does not mention error handling or rate limits, so it is strong but not exhaustive.
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?
The description is front-loaded with purpose and returned fields, then moves to usage triggers and the staleness rationale. It is dense and every sentence serves a purpose, though the first sentence is long and packs several ideas together.
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?
There is no output schema, so the description carries the burden of explaining what is returned, and it does so thoroughly: price, penalty, early-payment reduction, deadline, payment steps, and official link. Combined with the read-only annotation and complete schema coverage, an agent has enough to call it correctly.
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 the schema already documents both parameters in detail. The description explains that crossed_at yields a concrete pay-by date for a specific crossing, but this largely duplicates the schema's existing description. The charge parameter is not expanded beyond what the schema states.
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 clearly states it returns current verified details for one UK toll or road charge, and enumerates the specific fields: price, PCN, early-payment reduction, deadline, payment steps, and official link. This distinguishes it from list_charges (which enumerates charges) and check_vehicle (which concerns vehicles).
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 gives explicit triggers: asking what a charge costs, saying they forgot or missed payment, asking about fines, or asking how/by when to pay. It also strongly instructs to call the tool rather than answering from memory, but it does not explicitly name list_charges as the way to resolve an unknown charge ID, nor does it mention when not to use the tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_vehicleCheck a UK vehicle by number plateARead-onlyInspect
Free DVLA-backed check of a UK vehicle from its number plate: London ULEZ compliance, Clean Air Zone compliance, Scottish LEZ, MOT status and road tax status, plus make/colour confirmation. Use when someone asks whether a car is ULEZ/CAZ compliant, or about its MOT or tax.
| Name | Required | Description | Default |
|---|---|---|---|
| vrn | Yes | UK number plate (VRN), e.g. KM71AEA. Spaces are fine. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, and the description states 'Free DVLA-backed check', confirming it is a safe read. The description adds behavioral context by listing the specific checks performed (ULEZ, CAZ, LEZ, MOT, tax, make/colour), which goes beyond 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?
The description is two sentences, front-loaded with the core functionality and followed by usage guidance. No wasted words; every sentence adds value.
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?
Given a single parameter and no output schema, the description provides a comprehensive list of what the tool returns (ULEZ, CAZ, LEZ, MOT, tax, make/colour). This fully informs the agent of the tool's capabilities.
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% and the schema describes the single parameter vrn with an example and note about spaces. The description mentions 'from its number plate' but adds no additional meaning or format detail beyond the schema. 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?
The description clearly states the tool performs a 'Free DVLA-backed check of a UK vehicle from its number plate' and lists specific outputs (ULEZ, CAZ, LEZ, MOT, tax, make/colour). It distinguishes from siblings (charge_info, list_charges) which are about charging, not vehicle checks.
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?
The description explicitly says 'Use when someone asks whether a car is ULEZ/CAZ compliant, or about its MOT or tax.' This provides clear guidance on when to use. It does not mention when not to use, but the use cases are well-defined and the sibling tools cover different domains.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_chargesList UK tolls & road chargesARead-onlyInspect
Lists every UK pay-later ANPR toll and road charge (Dartford Crossing, London Congestion Charge, ULEZ, Blackwall & Silvertown tunnels, M6 Toll, Clean Air Zones, airport drop-off charges, and more) with the price and the penalty for missing payment. Use to discover which schemes exist and the ids accepted by charge_info.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true; the description adds value by detailing the exact content listed (price, penalty, schemes) without contradictions.
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 efficiently convey purpose, examples, and usage; no redundant information.
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?
Given zero parameters and no output schema, the description fully explains what the tool returns, its use case, and how it relates to sibling tools.
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?
No parameters exist, so baseline is 4. The description adds no parameter info, which is appropriate as none are needed.
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 clearly states the tool lists UK pay-later ANPR tolls and road charges with specific examples, and explicitly distinguishes its purpose (discovering schemes and IDs) from sibling tools like charge_info.
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?
The description tells when to use it ('Use to discover which schemes exist and the ids accepted by charge_info'), implying the alternative charge_info for details, but does not explicitly state when not to use it.
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.
1 tool update
- Changed
charge_info1 field changed- changed
Input schema / properties / charge / descriptionPrevious value: -"Which charge: an id from list_charges (dartford, congestion, ulez, tunnels, m6toll, caz, mersey, tyne, heathrow_dropoff, stansted_dropoff, manchester_dropoff, eastmidlands_dropoff, gatwick_dropoff, londoncity_dropoff) or a common name like \"dartford\" or \"ulez\"."New value: +"Which charge: an id from list_charges (dartford, congestion, ulez, tunnels, m6toll, caz, mersey, tyne, humber, heathrow_dropoff, stansted_dropoff, manchester_dropoff, eastmidlands_dropoff, gatwick_dropoff, londoncity_dropoff) or a common name like \"dartford\" or \"ulez\"."
1 tool update
- Changed
charge_info1 field changed- changed
Input schema / properties / charge / descriptionPrevious value: -"Which charge: an id from list_charges (dartford, congestion, ulez, tunnels, m6toll, caz, mersey, tyne, heathrow_dropoff, luton_dropoff, stansted_dropoff, manchester_dropoff, eastmidlands_dropoff, gatwick_dropoff, londoncity_dropoff) or a common name like \"dartford\" or \"ulez\"."New value: +"Which charge: an id from list_charges (dartford, congestion, ulez, tunnels, m6toll, caz, mersey, tyne, heathrow_dropoff, stansted_dropoff, manchester_dropoff, eastmidlands_dropoff, gatwick_dropoff, londoncity_dropoff) or a common name like \"dartford\" or \"ulez\"."
3 tool updates
- First observed
charge_info - First observed
check_vehicle - First observed
list_charges
Related MCP Connectors
UK used cars: road tax (VED), ULEZ charges, MOT dates, DVSA reliability, live dealer stock.
UK vehicle tax (VED) bands, expensive-car supplement, EV rules and MOT fees, sourced.
UK used-car checks by plate or photo: free MOT status, no key needed; optional detailed MOT reports
UK vehicle lookup, MOT status and full MOT history from official DVSA data, by registration.
Related MCP Servers
AlicenseAqualityCmaintenanceEnables natural language queries about UK postcodes and vehicles, including flood risk, crime rate, broadband coverage, property prices, MOT history, and ULEZ compliance.431 npmMIT- AlicenseNot gradedqualityDmaintenanceEnables UK haulage compliance checks including operator licence verification, tachograph auditing, drivers' hours calculations, and DVSA roadside inspection support.29 PyPIMIT
- FlicenseNot gradedqualityBmaintenanceQuery current and historical UK official figures (tax bands, minimum wage, benefits, energy price cap and 100+ more) with effective dates and links to official government sources. Data refreshed whenever the official sources change.-
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to look up US NHTSA and EU Safety Gate car recalls and complaints, compare a model's years by risk score, check UK MOT failure rates, retrieve EU vehicle specifications with WLTP CO2 and fuel consumption, and verify Cyprus company records, EU VAT numbers via VIES and LEIs. It draws only on official open data and is hosted through Apify, so nothing needs to be installed.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.