Your accounts,
in your assistant
Duck Tax is an MCP server. Point Claude, Cursor or any MCP client at it and ask in plain English: it derives and validates a balance sheet, looks companies up on the register, reads deadlines and penalties, categorises a bank statement, pulls last year’s figures off your filed accounts, and saves the result to your account.
It still files nothing. What comes back is checked numbers you hand to a filing product or an accountant.
Check figures, read the register, catch deadlines & more from Claude Desktop.
Connect it
Three steps, and the first one needs no account at all.
1. The endpoint
Everything that reads public data (checking figures, register lookups, deadlines, explanations) works with no account at all, under daily limits:
https://ducktax.com/api/mcp2. A token, if you want saving
A token lets your assistant list, save and delete your saved filings, and raises the daily limits to signed-in levels. It can do nothing else, and it expires on its own after six months.
3. Add it to your client
Claude Code:
claude mcp add --transport http ducktax https://ducktax.com/api/mcp --header "Authorization: Bearer YOUR_TOKEN"Cursor, Windsurf, VS Code or anything that reads an mcp.json:
{
"mcpServers": {
"ducktax": {
"url": "https://ducktax.com/api/mcp",
"headers": {
"Authorization": "Bearer YOUR_TOKEN"
}
}
}
}On claude.ai, add the endpoint URL as a custom connector under Settings → Connectors. Custom connectors cannot send a token yet, so the read-only tools work there and saving does not.
Just ask
Plain English is the whole interface. Things people actually ask:
“Check my accounts before I file: turnover 42,000, costs 31,500, bank 8,200.”
“Look up company 15379140 and tell me when the accounts are due.”
“How much have I already been fined for filing late?”
“Pull last year's figures off my filed accounts so I can enter comparatives.”
“Categorise this bank statement and turn it into balance sheet figures.”
“Save that as a filing, and list what else I have saved.”
What it can do
The boundaries are deliberate. Here is both sides of them.
It can
- Derive a full micro-entity balance sheet from seven figures, and say what does not add up
- Look a company up on Companies House or ABN Lookup by number, or find it by name
- Read both filing deadlines, days remaining, and the penalty band already incurred
- Lift last year's comparatives off the accounts already on the register
- Sort a bank statement into categories and turn the totals into figures
- Explain what a set of accounts actually says, in plain English
- List, save and delete the filings on your own account, once you hand it a token
It cannot
- File anything. Nothing here talks to Companies House or HMRC in the submitting direction. The output is checked numbers you hand to a filing product or an accountant
- Touch your saved filings without a token. Everything else works with no account at all
- Give tax advice, or tell you what you owe. It checks arithmetic and consistency, not your tax position
- Read anything about you that is not on a public register or in your own saved filings
Everything it can reach
All fifteen tools, nothing hidden, grouped by what calling one costs you.
Free: no account, no quota
Check accounts
check_accountsDerives the balance sheet for both years and lists every arithmetic or consistency problem in it.
Dormant figures
dormant_figuresThe whole form for a dormant company in one call: share capital, the matching cash, zeros elsewhere.
Totals to figures
totals_to_figuresTurns categorised statement totals into figures, without letting the owner topping up the account become sales.
Late filing penalty
late_filing_penaltyDays remaining or overdue, the band already incurred, and what the next one costs.
Jurisdictions
list_jurisdictionsWhich countries have an accounts engine, which registers can be reached, and the currency for each.
Sample accounts
sample_accountsA real worked example, the simplest accounts the UK regime permits, to demonstrate the checker against.
Server status
server_statusWhat this deployment can do right now, whether your token is valid, and how much quota is left.
Metered: register requests and model calls
Company lookup
lookup_companyThe full public record by number: name, status, office, officers, both deadlines, penalty if overdue.
Company search
search_companiesFind the number from the name. Outside the daily quota, lightly rate limited.
Prior year figures
get_prior_year_figuresReads last year's comparatives straight out of the accounts already filed on the register.
Explain accounts
explain_accountsWhat the year actually shows, written for a director rather than an accountant.
Categorise transactions
categorise_transactionsSorts a year of bank descriptions into the categories the figures are built from.
Yours: needs a token
List saved filings
list_saved_filingsThe same list the dashboard shows, most recently touched first. Where to start on "my accounts".
Save a filing
save_filingSaves or updates a set of figures. Saved even when validation complains, because a work in progress is worth keeping.
Delete a filing
delete_filingRemoves one saved filing, permanently. No undo and no trash, so it is told to confirm with you first.
Limits, and what they are for
The metered tools cost real money to answer, so they are capped rather than switched off.
- Register lookups
- 3 a day without a token, 10 with one, 100 on a subscription.
- Explanations
- 5 a day without a token, 10 with one, 100 on a subscription.
- Statement imports
- 1 a day without a token, 3 with one, 25 on a subscription.
Cached answers are free and never counted, and the cache is shared with the website, so a company somebody looked up there costs you nothing here. Company search sits outside the quota entirely. Ask for server_status at any time and it will tell you exactly what is left.
Would rather click than ask? The same checker is on the dashboard. Something not behaving, or a tool you wish existed? Say so in the Discord.