Duck Tax
Tax is confusing, ducks are not!
Duck Tax

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.

Built-in MCP ServerAI-ready

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/mcp

2. 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_accounts

Derives the balance sheet for both years and lists every arithmetic or consistency problem in it.

Dormant figures

dormant_figures

The whole form for a dormant company in one call: share capital, the matching cash, zeros elsewhere.

Totals to figures

totals_to_figures

Turns categorised statement totals into figures, without letting the owner topping up the account become sales.

Late filing penalty

late_filing_penalty

Days remaining or overdue, the band already incurred, and what the next one costs.

Jurisdictions

list_jurisdictions

Which countries have an accounts engine, which registers can be reached, and the currency for each.

Sample accounts

sample_accounts

A real worked example, the simplest accounts the UK regime permits, to demonstrate the checker against.

Server status

server_status

What 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_company

The full public record by number: name, status, office, officers, both deadlines, penalty if overdue.

Company search

search_companies

Find the number from the name. Outside the daily quota, lightly rate limited.

Prior year figures

get_prior_year_figures

Reads last year's comparatives straight out of the accounts already filed on the register.

Explain accounts

explain_accounts

What the year actually shows, written for a director rather than an accountant.

Categorise transactions

categorise_transactions

Sorts a year of bank descriptions into the categories the figures are built from.

Yours: needs a token

List saved filings

list_saved_filings

The same list the dashboard shows, most recently touched first. Where to start on "my accounts".

Save a filing

save_filing

Saves or updates a set of figures. Saved even when validation complains, because a work in progress is worth keeping.

Delete a filing

delete_filing

Removes 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.