RegTail
UK used-car checks from a plate or photo: MOT history and defects, mileage checks, cloned-plate signs and viewing advice.
Hosted MCP Server
npx add-mcp 'https://regtail.com/mcp'Installs into Claude Code, Codex, Cursor and more
Documentation
RegTail checks UK used cars. Give it a registration plate or a photo of the car and it returns the full report from the records: identity, every MOT test with its defects and advisories, mileage checks, problems by part, signs of a cloned plate, a verdict and a checklist for the viewing. Sources: the DVSA MOT history, the DVLA record, and our analysis of the national MOT data.
The API works from a number plate or a photo of the car. It doesn't accept advert links or return advert content. To compare an advert with the records, use regtail.com. Have an advert? Send its number plate, or a photo of the car, and we'll check the records.
The same six calls work over HTTP (https://regtail.com/api/v1) and as MCP tools (https://regtail.com/mcp), with the same key and the same credits. This page is also plain markdown at https://regtail.com/docs/agents.md, so an agent can read it and set itself up.
Test it in 30 seconds
The key rt_test_sample is public and needs no sign-up. Any key starting rt_test_ returns one real sample car (CX52HHM, the one on our sample report) and spends nothing. Inputs are still checked, so a bad plate still gets a 422.
K="Authorization: Bearer rt_test_sample"
curl -H "$K" https://regtail.com/api/v1/vehicles/AB12CDE
curl -H "$K" -X POST -H "content-type: application/json" -d '{"image": "data:image/jpeg;base64,..."}' https://regtail.com/api/v1/vehicles/from-photo
curl -H "$K" https://regtail.com/api/v1/vehicles/AB12CDE/advice
curl -H "$K" https://regtail.com/api/v1/credits
curl -H "$K" https://regtail.com/api/v1/plates/AB12CDE
MCP, with the sample key:
{"mcpServers": {"regtail": {"url": "https://regtail.com/mcp", "headers": {"Authorization": "Bearer rt_test_sample"}}}}
To try the MCP endpoint by hand, run the open-source MCP Inspector with npx @modelcontextprotocol/inspector. In the page it opens, choose the Streamable HTTP transport, enter https://regtail.com/mcp, add the header Authorization: Bearer rt_test_sample, connect, then list and call the tools.
Calls and tools
| MCP tool | HTTP | Cost |
|---|---|---|
check_vehicle | GET /api/v1/vehicles/{plate} | 1 credit |
check_photo | POST /api/v1/vehicles/from-photo with {"image": "data:image/jpeg;base64,..."} | 1 credit |
viewing_advice | GET /api/v1/vehicles/{plate}/advice | Free for 30 days after a paid check of the same car, otherwise 1 credit |
credits_balance | GET /api/v1/credits | Free |
decode_plate | GET /api/v1/plates/{plate} | Free |
Plates take any spacing and case. A photo is your own photo of the car showing its number plate, sent as a data URL; we read the plate, run the same check, and add photo_read: the plate read and whether the car in the photo looks like the plate's record. The photo is not kept. Every field is in the reference at https://regtail.com/docs and the schema at https://regtail.com/openapi.json, with examples from the sample car.
Get a key
Open https://regtail.com/?account=keys, sign in, and choose Create a new key. The key (rt_live_...) is shown once: put it in your secrets store, never in code. Revoke it on the same screen if it leaks. Send it on every call as Authorization: Bearer rt_live_.... There is no free tier through the API; the free check is on the website.
Connect an agent
Add the server to your agent's MCP settings with your key:
{"mcpServers": {"regtail": {"url": "https://regtail.com/mcp", "headers": {"Authorization": "Bearer rt_live_..."}}}}
Most agent clients read this shape from their MCP settings file. Without a key the endpoint offers the free tools and account linking instead (see Use it in a linked assistant). Some name the URL field serverUrl, or take the URL and header as command line options instead. The endpoint is stateless Streamable HTTP and answers in plain JSON. Each tool's description says when to use it, what it costs and what it returns.
Use it in a linked assistant
For Grok Bot or another assistant, add https://regtail.com/mcp without a default Authorization header. Free tools need no account; OAuth linking is optional. The same https://regtail.com/mcp endpoint, called without an API key, offers these tools:
| Tool | Needs | What it does |
|---|---|---|
free_check | Nothing | The website's free identity, tax/MOT status and latest-test projection, with up to three questions from free facts and a verdict image |
resolve_vehicle | Nothing | A typed plate, photo data URL or supported advert link to a plate only; otherwise a typed-plate fallback |
compare_vehicles | Nothing | Compare two website free projections, with image and report links |
decode_plate | Nothing | When a plate of this format could have been issued |
sample_report | Nothing | The detailed report of the sample car |
full_report | Linked account | The detailed report of a plate the account has unlocked, shaped for discussion: verdict, MOT history, mileage, advisories, next-MOT component evidence and budget, the viewing checklist |
unlock_report | Linked account | The only tool that spends: one credit unlocks one plate for 30 days, as on the website. The assistant must ask the user first and pass confirmed: true |
viewing_advice | Linked account | Advice for viewing an unlocked car |
credits_balance | Linked account | The account's credits, and a link to how credits work |
my_reports | Linked account | Unlocked plates and recent checks, to pick up a car checked earlier |
Linking signs the user in to their RegTail account (OAuth 2.1 with PKCE), so the credits are the ones bought on the website and an unlock in the assistant also shows on the website. Credits are not sold inside the assistant: with none left, the tools say so and link to https://regtail.com/pricing.
Next-MOT estimates, component probabilities, repair prices, mileage analysis and older MOT details require the detailed report. Paid odds are an estimate, not an inspection. Repair ranges are indicative garage prices. Free images and questions use only the existing free fields. Only available locked sections are offered as teasers. Report links preserve the plate and plugin attribution. Free tools have per-IP limits; a rate error includes retry seconds.
For client developers: the endpoint publishes its protected-resource metadata at https://regtail.com/.well-known/oauth-protected-resource, answers a bad or expired token with 401 and a WWW-Authenticate: Bearer resource_metadata="..." challenge, declares securitySchemes on every tool (noauth and oauth2, scope profile), and a linked-only tool called without a link returns a tool error carrying _meta["mcp/www_authenticate"]. With an rt_ key the endpoint serves the paid tools above instead, as before.
Pricing and charges
A paid call spends 1 credit: 1 credit for £2.99, 5 credits for £9.99, 15 credits for £19.99.
- A call is checked first (key, rate limit, input) and charged only after that. If it then fails, for example no plate can be read in the photo, the credit is refunded.
- Every call is charged on its own: repeating a check repeats the charge, and there is no idempotency key. Keep the response rather than asking again.
- Every check response says
charged(true or false) andcredits_remaining, also sent as theX-Credits-ChargedandX-Credits-Remainingheaders. Sample responses say"sample": true. - Calls are limited to 60 a minute per key, and sample calls to 30 a minute per address.
Errors
Every error has the same shape, over HTTP and as MCP tool errors:
{"error": {"code": "payment_required", "message": "No credits left. Top up at ...", "docs_url": "https://regtail.com/docs/agents#errors", "top_up_url": "...", "credits_remaining": 0}}
| Status | Codes | Meaning |
|---|---|---|
| 401 | unauthorized | No key, or an unknown or revoked one. |
| 401 | invalid_token | A linked account's access token is invalid or has expired. Link the account again. |
| 402 | payment_required | No credits left. Nothing was charged; top_up_url opens the credit packs. |
| 422 | invalid_plate, invalid_image, invalid_request | Bad input. Nothing is charged. |
| 422 | no_plate | No plate could be read in the photo. Refunded; ask for the plate and check it by plate. |
| 429 | rate_limited | Too many calls. Wait for the Retry-After header's seconds. |
| 5xx | advice_unavailable, photo_unavailable, server_error | Our side failed. Nothing is charged; try again later. |
What we do not check
RegTail does not check outstanding finance, the police stolen register or the insurance write-off register: those are private databases. A report says so rather than implying a clear result, and an agent should say so too. Ask the seller for a finance settlement letter, and use a provider that holds those registers if you need them confirmed.
Use of the API is covered by our terms. Questions: sunnier-larches25@icloud.com.