Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Untap

REMOTE · UNTAP.MONEY

Check UK Delay Repay, UK261 flights and TfL refunds. Save claims and check commutes on request.

Available components

+4 this week 72 Trust /100

Last scanned (20 hours ago)

Scores higher than 63% of remote servers

Reachable. Last reached 16 Oct 2026.

Category Finance and Payments

Recent critical change

Authorization (30 Sept 2026). See the changelog before you install this server.

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →

Endpoint Security63
Transport & Reachability100
Schema Quality & AI Usability64
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 5897 tokens (~294/item across 20 items; 20 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management53
  • Stability observed for 16 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • All 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
  • An AI judge read all 21 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 15 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 47 to 50. That category is still filling its 30-day observation window: 14 days of observed history at the previous scan, 15 at this one. The score rises as the window fills, whether or not the server changes.

  • 13 Oct 26 +1
    • “check_train_delay” added an optional parameter “tickets” cosmetic
    • “check_flight_compensation” reworded the description of “price_paid” cosmetic
    • “check_train_delay” reworded the description of “price_paid” cosmetic

    3 cosmetic changes on this day. Switch on “Show cosmetic changes” to see them.

  • 12 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 33 to 40. That category is still filling its 30-day observation window: 10 days of observed history at the previous scan, 12 at this one. The score rises as the window fills, whether or not the server changes.

  • 10 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 23 to 33. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 10 at this one. The score rises as the window fills, whether or not the server changes.

  • 7 Oct 26 +1
    • Tool “check_tfl_journeys” rewrote its description, which is the text the model reads security
    • Tool “check_train_delay” rewrote its description, which is the text the model reads security
    • Schema quality: 4848 → 5758 ▼ functional
    • Server version: 1.3.1 → 1.3.2 functional
  • 4 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 10 to 13. That category is still filling its 30-day observation window: 3 days of observed history at the previous scan, 4 at this one. The score rises as the window fills, whether or not the server changes.

  • 2 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

  • 1 Oct 26 0
    • The server rewrote its instructions, which are the text every model session reads security
    • Stability: unverified → 0.03 ▲ functional
    • Server version: 1.2.2 → 1.2.3 functional
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 16 Oct 2026 · Probed https://untap.money/api/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=untap.money CN=YR1,O=Let's Encrypt,C=US 16 Aug 2026 14 Nov 2026 RSA 2048 SHA256-RSA 6ef985fa78373cb042bf4adadce12a8c0d0
SANs: untap.money
CN=YR1,O=Let's Encrypt,C=US (CA) CN=Root YR,O=ISRG,C=US 3 Sept 2025 2 Sept 2028 RSA 2048 SHA256-RSA a20253f15f2691c05dc1ce13b9bcca4e
CN=Root YR,O=ISRG,C=US (CA) CN=ISRG Root X1,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 RSA 4096 SHA256-RSA f24b6d17f9d9ad7cb1c9fea78782699f

Background: What to check on a remote MCP endpoint →

DNSSEC insecure

Validation of untap.money. — Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
money. present 4450 8 Verified
untap.money. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication No authorisation required

The endpoint answered without asking for a token. Anyone who knows the URL can reach it.

Result No authorisation required
HTTP status 200
Header Value
strict-transport-security max-age=63072000; includeSubDomains; preload
content-security-policy default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://va.vercel-scripts.com https://accounts.google.com https://*.i.posthog.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; img-src 'self' data: blob: https:; font-src 'self' data: https://fonts.gstatic.com; connect-src 'self' https://*.supabase.co wss://*.supabase.co https://va.vercel-scripts.com https://vitals.vercel-insights.com https://accounts.google.com https://api.openai.com https://*.ingest.sentry.io https://*.ingest.de.sentry.io https://*.ingest.us.sentry.io https://*.i.posthog.com https://eu.posthog.com; frame-src 'self' https://accounts.google.com; frame-ancestors 'none'; base-uri 'self'; form-action 'self' https://accounts.google.com; worker-src 'self' blob:
x-content-type-options nosniff
x-frame-options DENY
referrer-policy strict-origin-when-cross-origin
permissions-policy camera=(), microphone=(self), geolocation=(), interest-cohort=()

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://untap.money/api/mcp Verified 200
http (plaintext) http://untap.money/api/mcp HTTPS enforced 308 https://untap.money/api/mcp
MCP tools · 20 exposed · ~5,343 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
add_flight ~403

Adds a flight to the person’s Untap account and returns the UK261 or EU261 verdict, the amount and the airline’s claim link. For past flights Untap checks AeroDataBox flight-status records; the status, delay and actual arrival fields are optional, and when left out Untap looks them up. Takes the airline’s two-letter IATA code (BA, U2, FR) and three-letter airport codes (LHR, BCN). When the airports given differ from the flight-status record, the result says so. Compensation applies to arrival delays of 3 hours or more and to cancellations. Requires sign-in to Untap.

NameTypeReqDescription
actual_arrivalstring|null–Optional. Actual arrival as an ISO 8601 datetime, if known.
airline_iatastringyesTwo-letter IATA airline code, e.g. "BA" for British Airways, "U2" for easyJet.
arrival_iatastringyesThree-letter IATA arrival airport code, e.g. "BCN".
booking_referencestring|nullyesPNR / airline booking reference if available, otherwise null.
delay_minutes––Optional. Arrival delay in minutes, if known.
departure_iatastringyesThree-letter IATA departure airport code, e.g. "LHR".
flight_numberstringyesFlight number including the airline prefix, e.g. "BA2551".
passenger_namestring|nullyesPassenger name as printed on the ticket, or null if not visible.
scheduled_arrivalstringyesScheduled arrival as ISO 8601 datetime.
scheduled_departurestringyesScheduled departure as ISO 8601 datetime.
status––Optional. What happened to the flight, if known. When left out, Untap looks the flight up in AeroDataBox flight-status records.
ticket_price_penceintegeryesTotal fare paid in pence.

No output schema declared.

No examples provided.

add_parking_fine ~563

Adds a UK parking ticket (a council PCN or a private parking charge) to the person’s Untap account and runs Untap’s appeal-grounds engine. Returns the grounds that may apply, how confident the match is, the appeal route and deadline. Grounds are matched against the contravention, the location and observed_notes; with no observed_notes, only general grounds come back and the result is a possible appeal, not money owed. Requires sign-in to Untap.

NameTypeReqDescription
amount_penceintegeryesFull charge amount in pence. £65 = 6500.
appeal_url–yesDirect https URL on the notice for online appeals, or null if none.
contravention_codestring|nullyesCouncil contravention code, e.g. "01", "12", "MR11". Null for private tickets.
contravention_datestringyesDate the contravention allegedly occurred, ISO 8601 date.
contravention_descriptionstringyesFull text of the alleged contravention as printed on the notice.
discount_deadlinestring|nullyesISO date by which the discount applies, or null if not stated.
discounted_amount_pence–yesReduced amount in pence if paid promptly (usually 50% within 14 or 21 days). Null if none stated.
full_deadlinestring|nullyesLast date on the notice for paying the full amount or lodging an appeal, as an ISO date.
has_windscreen_noticebooleanyesTrue if a paper notice was placed on the windscreen. False if it arrived in the post only.
issued_datestringyesDate the notice was issued or served, ISO 8601 date.
issuer_namestringyesIssuer name as written, e.g. "London Borough of Camden" or "ParkingEye Ltd".
issuer_typestringyesCouncil = local authority issued under TMA 2004. Private = on private land by a parking operator (BPA or IPC member).
keeper_notice_served_datestring|nullyesPrivate only: date the Notice to Keeper was served.
locationstringyesStreet or car park name where the contravention allegedly occurred.
observed_notesarrayyesShort phrases from the notice or the person’s account that may support an appeal, such as unclear signs, a broken machine or a few minutes over. The appeal-grounds engine matches against these; with…
pcn_referencestringyesPCN or notice reference number printed on the document.
vehicle_registrationstring|nullyesVehicle registration mark, or null if not shown.

No output schema declared.

No examples provided.

add_tfl_journeys ~214

Adds TfL contactless journeys to the person’s Untap account, up to 500 rows per call, and checks everything they have saved for incomplete journeys, missed Hopper fares and other overcharges. Each row carries flags for an incomplete journey, a revenue-inspection maximum fare, a free Hopper fare, a TfL correction and the daily or weekly cap, as shown on the statement. Journeys already saved are skipped. Refunds follow the same rule as the TfL check: an incomplete journey without a destination is an upper limit equal to the whole charge, and one with intended_destination is an estimate. Requires sign-in to Untap.

NameTypeReqDescription
card_last4string|nullyesLast 4 digits of the contactless card, if shown.
journeysarrayyesEvery journey on the statement. Up to 500 per call.
period_endstring|nullyesStatement period end date YYYY-MM-DD.
period_startstring|nullyesStatement period start date YYYY-MM-DD.

No output schema declared.

No examples provided.

add_train_journey ~359

Adds a UK train booking to the person’s Untap account and works out Delay Repay for it. One booking per call, with each journey in legs (one for a single, two for a return, in travel order). Untap checks National Rail’s Historical Service Performance records for each journey; the delay, actual arrival and cancellation fields are optional, and when left out Untap looks them up. Operators accept one journey per claim form, so a return with both directions late means two claims. A train journey that is already saved is returned as it is, not saved twice. Requires sign-in to Untap.

NameTypeReqDescription
booking_referencestring|nullyesBooking reference if available, otherwise null.
legsarrayyesEach journey on this booking, in travel order: one for a single, two for a return (outward first), more for a multi-stop booking. Untap works out Delay Repay for each journey and adds them up.
season_type––Season tickets only: how long the season runs. The operator divides the season price into single journeys (for example annual 464, monthly 40, weekly 10, flexi 16) and pays a share of one journey. Wh…
ticket_price_penceintegeryesTotal fare paid in pence for the whole booking. £62.00 = 6200.
ticket_typestringyesTicket type as printed. For "return" and "open_return" the single fare is half the price paid; for "season" the amount is a share of one journey value (see season_type); every other type uses the ful…

No output schema declared.

No examples provided.

check_commute ~160

Checks a saved train route against National Rail’s running records for one travel date and works out Delay Repay: the matched train, the delay, the amount, the deadline and a claim pack. When several trains match, the result lists them, each with a service_id. A saved route does not show that the person travelled that day, and the result says so. Nothing is saved or filed. Requires sign-in to Untap.

NameTypeReqDescription
commute_idstringyesThe id of a saved commute.
datestringyesThe travel date to check, preferably YYYY-MM-DD. "yesterday" also works.
service_id––The service_id of a train listed in an earlier result. With it, that train is checked directly.

No output schema declared.

No examples provided.

check_flight_compensation ~404

Works out compensation for a delayed or cancelled flight under UK261 or EU261. Takes the flight number and date. What happened comes from flight-status records, which cover about the last year, or from what_happened and arrival_delay_minutes when given. Returns the matched route, the arrival delay, the distance band, the amount per passenger, the extraordinary-circumstances caveat, the airline’s claim page, the dispute body for a refused claim, deadline guidance, a claim pack and the details needed to save the claim to an Untap account. When the airports given differ from the flight-status record, the result says so. No sign-in needed. Nothing is saved to an account. A record of the check, with no name, account or IP address, is kept for a year so answers can be verified.

NameTypeReqDescription
arrival_delay_minutes––How late the flight arrived at the gate, in minutes, if the person knows. Compensation turns on arrival, not departure.
cancellation_notice_days––For a cancellation: how many days before departure the airline told the person. 14 or more means no compensation.
datestringyesDate the flight was due to depart, local time. YYYY-MM-DD is best.
flight_numberstringyesAirline code and number, as on the booking: "BA2551", "U2 8123".
from_airport––Three-letter departure airport code, if known: "LGW". Helps pick the right flight on multi-stop numbers.
price_paid––Optional, in pounds: "£180" or 180. Not used for the amount, which is fixed in law, but needed to save the claim to an account.
to_airport––Three-letter arrival airport code, if known: "BCN".
what_happened––What happened, if known. When left out, Untap looks it up in flight-status records.

No output schema declared.

No examples provided.

check_tfl_journeys ~290

Checks Transport for London contactless or Oyster journeys for overcharges: incomplete journeys (no touch out, so the maximum fare was charged) and missed Hopper fares. Takes journey rows from a journey history, or the text of the CSV download from a TfL account. PDFs and images are not accepted. TfL refunds an incomplete journey as the maximum fare minus the fare for the journey actually made. Without the destination, the refund shown is an upper limit equal to the whole charge; with intended_destination on the row, it is an estimate from the usual fare to that station. Returns the refundable journeys and total, older journeys outside TfL’s 8 week window, how to claim in the TfL account, a claim pack and the details needed to save the journeys to an Untap account. It does not check service delays on the Tube, DLR, Elizabeth line or Overground, or Santander Cycles; the result lists these under not_checked. No sign-in needed. Nothing is saved to an account. A record of the check, with no name, account or IP address, is kept for a year so answers can be verified.

NameTypeReqDescription
csv_text––The text of the CSV journey history downloaded from a TfL account. Takes priority over journeys.
journeys––Journey rows from a TfL contactless or Oyster journey history. Used when csv_text is not given.

No output schema declared.

No examples provided.

check_train_delay ~628

Checks a late or cancelled train in Great Britain against National Rail’s historic running records and works out Delay Repay. Takes the two stations (names, partial names or three-letter codes), the date and roughly when the train left; the operator, ticket type and price paid are optional. Returns the matched train with scheduled and actual times, the delay at the destination, the operator and its scheme, the amount (or the percentage when no price is given), the claim deadline, a claim pack with the value for each form field, and the details needed to save the claim to an Untap account. When several trains fit, the result lists them, each with a service_id. The records cover roughly the last year and each day appears the day after. They hold direct trains only, so a journey with a change is checked one train at a time. When nothing could be learned, status is data_not_available with delay_known false, a reason, retryable and retry_after_seconds or try_again_on. When National Rail is slow the lookup carries on in the background, and a retry after retry_after_seconds is answered from the cache. No sign-in needed. Nothing is saved to an account. A record of the check, with no name, account or IP address, is kept for a year so answers can be verified.

NameTypeReqDescription
datestringyesDate of travel. YYYY-MM-DD is best; "25/09/2026", "25 September", "yesterday" and "last Friday" also work.
departure_time––Roughly when the train left the first station, UK time: "08:05", "8am", "around 8". Needed to find the train unless service_id is given.
fromstringyesStation the person got on at. A name, part of a name or a three-letter code: "Brighton", "Kings Cross", "BTN".
operator––Train company if known, as the person says it: "Southern", "GWR", "Avanti". Used to narrow the match.
price_paid––What one ticket cost, in pounds: "£24.50", 24.5 or 17 (read as £17.00). For a season ticket, the price of the whole season. Needed for a cash amount; without it the percentage is returned.
service_id––The service_id of a train listed in an earlier result. With it, that train is checked directly.
ticket_type––As printed: "Anytime Return", "Off-Peak Single", "Advance", "Annual Season", "Monthly Season", "Flexi Season". A return halves the single fare the amount is worked from. A season is valued per journe…
tickets––How many tickets of this price are on the booking, one per passenger. Defaults to 1. The amount is per ticket times this.
tostringyesStation the person got off at, in the same forms.

No output schema declared.

No examples provided.

delete_my_data ~174

Deletes every booking, statement, saved commute and claim in the person’s Untap account, in two steps. A call with confirm=false deletes nothing and returns a summary of what would be deleted, with a confirmation_token valid for 5 minutes. A call with confirm=true and that token deletes the data permanently; each token works once. The account itself is kept so Untap can still be used; deleting the account too is done at untap.money/data. Requires sign-in to Untap.

NameTypeReqDescription
confirmboolean–false returns a preview of what would be deleted and a confirmation_token, and deletes nothing. true deletes, and works only with an unexpired confirmation_token from a preview.
confirmation_tokenstring|null–The confirmation_token from a preview. Required when confirm is true; each token works once.

No output schema declared.

No examples provided.

find_money_owed ~215

Takes a plain-language description of what happened (a late or cancelled train, a delayed or cancelled flight, a TfL overcharge, a parking ticket, a council tax, water or broadband problem) and returns the UK refund and compensation schemes Untap covers that may apply. For each one it gives the fact that decides it, the Untap check that covers it and Untap’s free guide. It also picks out any flight number, date, time or amount in the text. Matching is by keywords, not a full reading of the situation, so the list is a starting point rather than a verdict. No sign-in needed. Nothing is saved to an account. A record of the check, with no name, account or IP address, is kept for a year so answers can be verified.

NameTypeReqDescription
situationstringyesWhat happened, in the person’s own words. For example: "my train from Brighton to Victoria was 40 minutes late on Monday" or "I think my council tax band is wrong".

No output schema declared.

No examples provided.

get_claim_instructions ~497

Returns how to submit one train, flight or TfL compensation claim on the company’s own form. Takes the claim type and the train operator or airline, with the journey date, ticket type, where it was booked and the airports as optional extras. Returns the eligibility rules for that company and claim type, the official claim page (marked unverified where Untap could not confirm it), numbered submission steps, each form field with where to find its value, the evidence to attach, the deadline (as a date when the journey date is given), any company rule on who may submit, what to expect after submitting and when to chase, the escalation route (operator to the Rail Ombudsman; airline to its dispute scheme, the CAA or a national enforcement body; TfL to London TravelWatch) and the sources with the dates they were checked. Covers every train operator in Untap’s Delay Repay engine, TfL and the airlines UK travellers fly most. Facts Untap has not verified come back marked as unknown rather than estimated. No sign-in needed. Nothing is saved to an account. A record of the check, with no name, account or IP address, is kept for a year so answers can be verified.

NameTypeReqDescription
arrival_airport––Three-letter arrival airport code, such as "LHR".
booked_via––Where the ticket was bought: from the operator or airline itself, from a ticket retailer such as Trainline, through a travel agent, or as part of a package holiday.
claim_typestringyesWhat the claim is for: a late or cancelled train, a delayed or cancelled flight, denied boarding, a TfL incomplete journey or another TfL overcharge.
company––The train operator or airline, by name or code as people say it: "Southern", "LNER", "easyJet", "BA", "U2". Not needed for TfL.
departure_airport––Three-letter departure airport code, such as "CDG". Decides whether UK261 or EU261 applies, and with the arrival airport, the distance band.
journey_date––Date of travel, YYYY-MM-DD. With it, the result gives the last day to claim as a date.
ticket_type––Ticket type as printed, such as "Anytime Return", "Advance Single" or "Season". Decides the rail return-ticket rule.

No output schema declared.

No examples provided.

get_delay_repay_rules ~128

Returns one train operator’s Delay Repay rules: the delay at which it starts paying, each payout tier, the claim deadline, the link to its claim form, any automatic or one-click scheme, and the date the rules were last checked against the operator’s own page. Accepts the operator’s name as people say it, such as Avanti, GWR or Southern. No sign-in needed.

NameTypeReqDescription
operatorstringyesTrain company name as people say it: "Avanti", "GWR", "Southern", "LNER", or a two-letter operator code.

No output schema declared.

No examples provided.

list_commutes ~58

Lists the person’s saved train routes with their ids, usual times, days and fares. Makes no National Rail lookups. Requires sign-in to Untap.

NameTypeReqDescription
include_stoppedboolean–Include stopped routes so they can be restored.

No output schema declared.

No examples provided.

list_my_claims ~130

Lists the claims in the person’s Untap account with amounts, deadlines, the verdict and their progress (not sent, sent, paid, rejected or archived). By default it shows claims that are still open; include_closed adds paid, rejected and archived ones. Requires sign-in to Untap.

NameTypeReqDescription
category––Restricts the list to one category. When left out, all categories are listed.
include_closedboolean–Also show claims marked paid, rejected or archived, and ones with nothing to claim.
limitinteger–Most rows to return. Defaults to 25.

No output schema declared.

No examples provided.

list_savings ~135

Lists the savings rows in the person’s Untap account, filtered by category and status. Each row has the verdict status (claimable, pending_check, not_eligible and so on) and user_progress, what the person has recorded since: none, submitted (sent), received (paid) or archived. Requires sign-in to Untap.

NameTypeReqDescription
category–yesRestrict to a single category, or null for all categories.
limitinteger–Maximum number of savings rows to return. Defaults to 25, capped at 100.
status–yesRestrict to a single status, or null for all.

No output schema declared.

No examples provided.

save_claim ~208

Saves the result of a train, flight or TfL check to the person’s Untap account, so it appears on their dashboard with its deadline. Accepts the save_claim arguments returned by a check, with the price paid added where the check listed it as missing. The verdict is worked out again from those facts rather than copied. A train journey that is already saved is returned as it is, not saved twice. Requires sign-in to Untap.

NameTypeReqDescription
categorystringyesWhich kind of check the claim came from.
flight––For category "flight": the flight, in the shape a flight check returns in save_claim.arguments.flight, with ticket_price_pence set.
tfl––For category "tfl": the journeys, in the shape a TfL check returns in save_claim.arguments.tfl.
train––For category "train": the train booking, in the shape a train check returns in save_claim.arguments.train, with ticket_price_pence set.

No output schema declared.

No examples provided.

save_commute ~301

Saves or updates one direction of a usual train journey (a commute) in the person’s Untap account: stations, usual departure time, travel days and day-ticket fare. An outward and a homeward journey are two separate routes. Saving the same route and time again updates it. Nothing is checked automatically; a saved route is checked only on request. Day tickets only; season tickets are not supported. Requires sign-in to Untap.

NameTypeReqDescription
commute_id––The id of an existing commute in this account, to update or restore it. When left out, a new route is saved.
departure_timestringyesUsual UK departure time, for example 08:05 or 8am.
fromstringyesDeparture station name or three-letter code.
label––Optional short name such as Morning commute.
ticket_price_pence––Usual day-ticket price in pence, £24.50=2450. Optional, for when the fare is known and stays the same. A day-ticket price, not a weekly or monthly season price.
ticket_typestring–Day ticket type. For return, the price is the whole return fare. Season tickets are not supported by saved commutes.
tostringyesArrival station name or three-letter code.
weekdaysarray–Usual travel days: Monday=1 through Sunday=7. Informational only; no automatic checks.

No output schema declared.

No examples provided.

scan_for_claims ~216

Reads up to 25 emails (sender, subject, date and plain-text body) and picks out the ones that point to a train, flight or TfL claim: booking confirmations, delay and cancellation notices, airline schedule changes and denied boarding, TfL incomplete journey and maximum fare emails, and claim acknowledgements and decisions. Detection is by sender domain, subject pattern and fixed phrases, with no language model. For each match it returns the type, the signals that matched, the booking reference, dates, flight number, stations or airports, times and amounts it could read, a confidence level, a deadline hint, and the Untap check that fits with its arguments filled in and any missing ones listed. Emails with no signal are listed by position. Each body is read up to 20,000 characters. Nothing from the emails is stored; the usage record holds counts only. No sign-in needed.

NameTypeReqDescription
emailsarrayyesUp to 25 emails, each with its sender, subject, date and plain-text body.

No output schema declared.

No examples provided.

stop_commute ~73

Hides a saved train route from the active list. The route is kept and can be restored by saving it again with its commute_id. No claims or bookings change. Requires sign-in to Untap.

NameTypeReqDescription
commute_idstringyesThe id of a saved commute. The route is kept and can be restored.

No output schema declared.

No examples provided.

update_claim_status ~187

Records progress on a claim in the person’s Untap account: sent (submitted to the operator or airline), paid (with the amount received, if known), rejected, or archived. Takes the claim_id given when the claim was saved or listed. This updates Untap’s record only; it does not contact the operator or airline. Requires sign-in to Untap.

NameTypeReqDescription
amount_received_pence––For paid: the amount actually received, in pence. £12.40 = 1240.
claim_idstringyesThe claim_id given when the claim was saved or listed.
note––Optional short note, such as the operator’s reference or the reason given for a refusal.
statusstringyessent: submitted to the operator or airline. paid: money received. rejected: the claim was refused. archived: hide it without an outcome.

No output schema declared.

No examples provided.

Install

How do I install the Untap MCP server?

Untap is a hosted endpoint at https://untap.money/api/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · untap.money

# add to Claude Code
claude mcp add --transport http aneduaim-untap-mcp 'https://untap.money/api/mcp'
Common questions

What is the Untap MCP server?

Untap is an MCP server listed in the public MCP registry as io.github.aneduaim/untap-mcp. Check UK Delay Repay, UK261 flights and TfL refunds. Save claims and check commutes on request. This page covers its hosted endpoint (https://untap.money/api/mcp).

Is the Untap MCP server safe to use?

Untap scores 72 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the Untap MCP server expose?

Untap exposes 20 tools: find_money_owed, check_train_delay, check_flight_compensation, check_tfl_journeys, get_delay_repay_rules, and 15 more. Their descriptions and schemas cost roughly 5,343 tokens of context every time the server is loaded.

Does the Untap MCP server require authentication?

No. We connected to Untap without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

Is the Untap MCP server still maintained?

Untap is still listed as active in the MCP registry. We last reached this channel on 16 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.