DIY Accounting Submit

MCP server

Read and edit a book, and file from it

Status of each feature. Sandbox and preview features file nothing real. See the availability table.

What is MCP?

The Model Context Protocol (MCP) is an open standard for connecting AI applications to external data sources, tools, and workflows. Think of MCP like a USB-C port for AI applications — just as USB-C provides a standardised way to connect devices, MCP provides a standardised way to connect AI assistants to external systems.

DIY Accounting offers three ways in: the hosted connector, which a chat client reaches with one URL; the diya-gl MCP server for reading and editing a book; and the submission MCP you run yourself for filing VAT returns. Every filing they make is one the web app can make too.

Available now

The hosted connector

The hosted connector gives a chat client your saved books and the derivation tools with nothing to install. It signs in with the same account as the web app.

The connector URL is:

https://submit.diyaccounting.co.uk/mcp

Add it in Claude

In Claude on the web, in Claude Desktop, on mobile and in Cowork, open Settings, then Connectors, and add a custom connector with that URL. Claude opens the sign-in page; choose Continue, then sign in to your account.

In Claude Code, run:

claude mcp add --transport http diya-submit https://submit.diyaccounting.co.uk/mcp

Then run /mcp in Claude Code and choose the server to sign in.

Tools

open_book opens a book saved in your DIYA cloud by its id, and the other tools work on the book that is open. The connector does not reach HMRC.

open_book
Open a saved cloud book, for you or for a practice client.
derive_vat_return, get_vat_receipt
The nine VAT return boxes for a period, and a stored receipt.

A filing tool takes the figures its derive or render tool returned, so you see and approve the figures before anything reaches Companies House. Submitting a VAT return to HMRC is done in the web app or with the submission MCP below.

Available now

The diya-gl MCP server

diya-gl-mcp reads and edits a diya-gl book — the small set of files behind a DIY Accounting Spreadsheets workbook — from an MCP client such as Claude Desktop or Claude Code. It comes from the DIY Accounting Spreadsheets product, in the @diy-accounting-uk/diya-gl npm package.

Install it:

npm install -g @diy-accounting-uk/diya-gl

Run it:

diya-gl mcp

Point an MCP client at diya-gl-mcp (or diya-gl mcp) with no arguments. Four tools:

extract_book
Loads a workbook or package zip into a book, its computed report, and its checks and warnings.
report
Works out the figures, report sections and compliance checks for the book that is loaded.
edit_lines
Applies one named change to the book's transaction lines and returns the recalculated figures.
save_workbook
Writes the book back out as a workbook, a package zip, a diya-gl zip, or a JSON file.
Available now

The submission MCP on your computer

The submission MCP takes a customer's book and files the VAT return to HMRC. It works out the figures a filing needs, shows them for confirmation, and only then sends the filing.

Run it from npm

It needs Node.js 24 or later. Run it without installing:

npx @diy-accounting-uk/diya-submit

Run it from Docker

The image runs the same server over stdin and stdout, so a client starts it with docker run -i:

docker run -i --rm ghcr.io/diy-accounting-uk/diya-submit-mcp

Connect a client

Add the server to an MCP client such as Claude Desktop or Claude Code. For the npm package the client's configuration entry is:

{
  "mcpServers": {
    "diya-submit": {
      "command": "npx",
      "args": ["-y", "@diy-accounting-uk/diya-submit"],
      "env": {
        "DIYA_SUBMIT_BASE_URL": "https://submit.diyaccounting.co.uk",
        "DIYA_SUBMIT_AUTH_DOMAIN": "prod-auth.diyaccounting.co.uk",
        "DIYA_SUBMIT_MCP_CLIENT_ID": "5gpesn0rvb5vidtupcrgakq6tg"
      }
    }
  }
}

For the Docker image, set "command": "docker" and "args": ["run", "-i", "--rm", "-e", "DIYA_SUBMIT_BASE_URL", "-e", "DIYA_SUBMIT_AUTH_DOMAIN", "-e", "DIYA_SUBMIT_MCP_CLIENT_ID", "ghcr.io/diy-accounting-uk/diya-submit-mcp"] with the same env block.

Sign in

Ask the client to run sign_in. It opens the same sign-in page the web app uses, catches the answer on a local address, and keeps a refresh token in ~/.config/diya-submit/credentials.json readable only by you. Run sign_out to revoke it. HMRC's own grant stays a browser step, and a Companies House authentication code is passed on the one call that files and is not stored. In the Docker image the credentials file lives inside the container, so mount a volume at /home/node/.config/diya-submit to keep the sign-in between runs.

Tools

open_book, save_book
Open a book from a file or from the DIYA cloud, and save it back in any of the four formats.
list_vat_obligations
The open and fulfilled VAT obligations HMRC holds for a business.
derive_vat_return
The nine VAT return boxes for a period, with the lines that fed each box.
submit_vat_return, get_vat_receipt
File a confirmed VAT return with HMRC, and fetch the stored receipt.

A submit tool takes the figures the derive tool returned, never a book, so you see and approve the figures before anything reaches HMRC or Companies House.