UK Tourist Tax (Visitor Levy) Calculator
Server Details
Works out UK tourist tax for a holiday let booking: Edinburgh, Glasgow, Cardiff and more. Free.
- Status
- Healthy
- Uptime
- 100.0% over 23 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 2 tools
The two tools split cleanly along compute-vs-reference lines: one calculates a levy for a booking, the other returns rules and deadlines. There is mild overlap since calculate_uk_tourist_tax also returns the breakdown and return deadline, which the rules tool also exposes, but the primary intent of each is clear.
Both names use snake_case and share the 'uk_tourist_tax' domain token, which makes the pair easy to associate. The minor deviation is that one is verb-prefixed (calculate_) while the other is noun-style (uk_tourist_tax_rules), so the pattern is not perfectly parallel.
Two tools is on the thin side for the stated scope; the reference and calculation functions could arguably live in one tool with a mode parameter. However, the split is defensible and each tool has a distinct job, so it is borderline rather than clearly wrong.
The domain is narrow (UK visitor levy calculation), and the pair covers both computation for a booking and reference/rules lookup, including list-all-areas. Minor gaps like bulk/multi-booking calculation or rate-update tooling exist but are outside the apparent core scope.
Available Tools
2 toolscalculate_uk_tourist_taxCalculate UK tourist tax (visitor levy) on a bookingARead-onlyIdempotentInspect
UK only. Works out the tourist tax (visitor levy) a holiday let, B&B, guest house, hotel, hostel or campsite owes on one booking: Edinburgh 5% (first 5 nights, live since 24 July 2026), Glasgow 5% (from 25 January 2027), Aberdeen 7%, Stirling 3%, West Dunbartonshire 5%, Cardiff £1.30 per person per night (from 1 April 2027). Returns the levy, how it was worked out, and the return deadline. Free. The host owes it even when booked through Airbnb or Booking.com.
| Name | Required | Description | Default |
|---|---|---|---|
| area | Yes | Where the property is. | |
| guests | No | Number of people on the booking, including children and babies (Wales). | |
| check_in | Yes | Check-in date, YYYY-MM-DD. | |
| booked_on | No | Date the booking was made, YYYY-MM-DD. Optional: older bookings can be exempt. | |
| check_out | Yes | Check-out date, YYYY-MM-DD. | |
| under_18s | No | How many of the guests are under 18 (Wales lower rate only). | |
| vat_registered | No | True if the host is VAT registered (Scotland: the levy is worked out on the price without VAT). | |
| cleaning_fee_gbp | No | Compulsory one-off fees such as cleaning (Scotland). These count towards the levy. | |
| accommodation_type | No | Type of accommodation. Hostel dorm beds and tent pitches pay the lower Welsh rate. | |
| accommodation_price_gbp | No | What the guest paid for the nights (Scotland): include any booking fee the GUEST paid inside the booking; leave out meals, separately charged parking, optional extras and the tax itself. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, non-destructive, closed-world behavior. The description adds genuinely useful behavioral context beyond that: what is returned (levy, calculation breakdown, return deadline), that the tool is free, and effective-start dates for Edinburgh/Glasgow/Cardiff levies that determine whether a tax applies at all.
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?
Front-loads the essential scoping constraint ('UK only') and then packs jurisdiction rates, return contents, and the OTA-liability note into a short block. The rate enumeration is dense but each clause carries decision-relevant 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?
With 10 parameters, no output schema, and mutation-free annotations, the description covers what an agent needs: scope, per-booking applicability, output contents including the return deadline, and conditional date-based applicability. Only the sibling relationship/alternative routing is left implicit.
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 each parameter is already documented in the schema, including VAT treatment, cleaning fees, and under-18 handling. The description adds area-level rate context but no syntax or semantics beyond the schema; baseline 3 applies.
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+resource (calculate UK tourist tax on one booking) and scopes it geographically ('UK only'), then enumerates the jurisdictions and rates it covers. An agent can readily distinguish this from the sibling uk_tourist_tax_rules, which is a rules lookup rather than a per-booking calculation.
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 usage context: applies per booking, UK only, free to call, and explicitly notes the host owes it even when booked through Airbnb or Booking.com. It does not name the sibling tool or state when to prefer rules lookup instead, so it stops short of explicit alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uk_tourist_tax_rulesUK tourist tax (visitor levy) rules and deadlinesARead-onlyIdempotentInspect
UK only. Returns the tourist tax (visitor levy) rules, start dates, the next return deadlines and the Wales registration duty for one area, or a list of every area. Free.
| Name | Required | Description | Default |
|---|---|---|---|
| area | No | Optional. Leave out to list every area. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and closed-world behavior, so the safety profile is covered. The description still adds value beyond them with the 'UK only' geographic constraint, the 'Free' cost signal (analogous to rate/cost disclosure), and the enumeration of returned content. It omits data freshness/update cadence for deadlines, which is the one remaining behavioral gap.
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 short sentences, front-loaded with the hard constraint ('UK only') and the returned content, closing with a single-word cost note. No filler and nothing buried.
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-optional-parameter, closed-world, read-only lookup with no output schema, the description enumerates the returned fields and both invocation modes, which is enough to call it correctly. It stops short of noting how current the deadline data is or how areas map to the enum values.
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 the single enum parameter is fully documented in the schema, so the baseline is 3. The description's 'one area, or a list of every area' merely restates the optionality already expressed in the schema ('Optional. Leave out to list every area.') without adding format or selection guidance.
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 ('Returns') plus a concrete resource list: tourist tax rules, start dates, next return deadlines, and Wales registration duty. It also states scope ('UK only') and coverage (one area or all areas). It does not, however, name or differentiate itself from the sibling calculate_uk_tourist_tax, so the boundary between 'rules lookup' and 'tax calculation' is left implicit.
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?
'for one area, or a list of every area' implicitly tells the agent how to use the optional parameter, and 'Free' signals there is no cost barrier to calling it. But there is no explicit when-to-use guidance and no mention of when to prefer the sibling calculate_uk_tourist_tax instead, so usage is inferred rather than stated.
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.
2 tool updates
- First observed
calculate_uk_tourist_tax - First observed
uk_tourist_tax_rules
Related MCP Connectors
Search independent UK holiday stays, check live availability and exact prices, then open checkout.
Holiday rentals booked direct with the host: availability, prices, checkout links. No auth.
UK tax: take-home pay, self-employed and company tax, VAT, stamp duty, invoices and MTD.
UK property finance: bridging cost, dev appraisal, BTL stress test, stamp duty (SDLT/LBTT/LTT).
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceCalculate income tax (UK/US brackets), EU VAT, UK corporation tax, and capital gains tax. Provides estimates only - not professional tax advice.2 npm39 PyPIMIT
- AlicenseNot gradedqualityCmaintenanceEnables users to calculate Portuguese property purchase costs (IMT, stamp duty, deed/registration) and query annual IMI rates and costs for all 308 municipalities, with sourced figures.MIT
- AlicenseAqualityCmaintenanceProvides real tax calculations for US, Canada, Australia, and UK income, property, and dividend taxes using up-to-date local data with no API keys required.727 npmMIT
- AlicenseAqualityDmaintenanceFour UK property finance calculators for AI assistants: bridging cost, development appraisal, BTL stress test, and UK stamp duty (SDLT, LBTT, LTT). Built by FD Commercial, a specialist UK property finance broker.417 npm1MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.