TaxDome API & MCP explained (Beta)
Beta
MCP and the API are open to every firm in the beta community. What they can do is expanding, and this article will change with it.
MCP and TaxDome’s public API connect TaxDome to the other tools your firm uses.
-
MCP connects your AI assistant, like Claude or ChatGPT, to TaxDome. You ask in plain language, and it looks things up or takes action in TaxDome for you.
-
The API lets your other tools, like your CRM, scheduler, or notetaker, send information into TaxDome and pull it out automatically. You set it up once and it runs on its own.
Both only do what the person who connected them can do in TaxDome, within the permissions you choose.
TaxDome API & MCP at a glance
With MCP, ask your AI assistant. Once connected, it can find information and take action in TaxDome from the chat you already use. Because the same assistant can also connect to your email, calendar, and spreadsheets, it can work across all of them in one conversation. For example:
-
“Which jobs are overdue, and which stage is each one sitting in?”
-
“Brief me on the Smith account: open jobs, tasks, recent notes, and unpaid invoices.”
-
“Show me every unpaid invoice by client, oldest first.”
With the API, automate what should happen every time. It works like automove in your pipelines, except the trigger can be something that happens in another tool. For example:
-
A deal is marked won in HubSpot, and a client account is created in TaxDome from the deal’s details.
-
Your notetaker finishes a call summary, and it’s saved as a note on the client’s account.
-
A Calendly meeting ends, and the job moves to its next stage.
-
Every hour, job stages, assignees, tasks, invoices, and payments are copied into Google Sheets or your own dashboard.
You don’t need a developer to set these up— your AI assistant can write the automation for you .
Tip
For every tool and endpoint you can use, see the full tool catalog .
Access and permissions
MCP and the API are off until a firm owner or admin turns them on. Each has its own toggle in Settings > API & MCP > API & MCP, so you can turn on one without the other.
Access rights
TaxDome checks every request against three things, and an action goes through only if all three allow it:
-
Who can connect. Firm owners and admins choose which team members can use MCP and the API. One setting covers both. Go to Settings > API & MCP > Team members, select the checkbox next to each team member who needs access, and click Save.
-
What that person can see. A key or connection acts as the team member who created it. It reaches only the clients and records that person can already access in TaxDome.
-
What the connection may do. Each key or connection has its own access level: Read only, Manage, Full access, or a custom mix of Read, Manage, and Destructive (delete) permissions for each area of TaxDome. You choose it when you create an API key, or when you approve an MCP connection request. You can change it at any time.
For example, say you connect Claude with read-only access to clients and invoices. If Claude misreads a request and tries to delete a client or edit an invoice, TaxDome refuses the change and nothing happens to your data.
Your assistant reads data without asking. Before anything that deletes data or reaches a client, such as sending a message, it asks you to confirm.
Some areas also need their feature turned on for your firm: documents, tasks, SMS, email templates, organizers, time entries, and firm members. If the feature is off, requests for it fail, whatever the access rights.
Note
A not found response doesn’t always mean the record doesn’t exist. It may be one the team member behind the key or connection can’t see. Check whether they can open it in TaxDome before treating it as missing.
Rate limits
MCP and the API have separate rate limits, so hitting the limit on one doesn’t affect the other. Each API key has its own per-minute limit. Over the limit, the API returns a 429 error with a Retry-After header that says how many seconds to wait before trying again.
Connect through MCP
Note
TaxDome is in review to be listed as an official connector in the Claude and ChatGPT connector directories. Once it’s approved, you’ll be able to add TaxDome straight from the directory, including on Claude and ChatGPT Enterprise plans. We’ll update this article as soon as it’s through review.
Until then, add TaxDome as a custom connector using the steps below.
Before you start, check that:
-
Enable MCP for your firm is on, in Settings > API & MCP > API & MCP
-
You have access as a team member, in Settings > API & MCP > Team members
Each connection you make appears in the API & MCP list, where you can disconnect it anytime.
Claude on the web and in the desktop app
-
In TaxDome, click Connect to MCP. On the Claude tab, click Add to Claude.
-
Claude opens its Add custom connector form with TaxDome’s name and URL filled in. It warns that the connector was suggested by an external link. Check that the URL ends in taxdome.com/mcp, then click Continue.
-
Sign in to TaxDome when Claude asks you to. TaxDome opens the connection request. Choose the permissions and click Allow.
-
In any chat, open the + menu and turn TaxDome on. To try it, ask “Which of my jobs are overdue?”
Claude Code
Run this once in a terminal, replacing yoursubdomain with your firm’s subdomain:
claude mcp add --transport http taxdome https://yoursubdomain.taxdome.com/mcp
Then run /mcp inside Claude Code and sign in to TaxDome. Choose the permissions and click Allow.
ChatGPT
Click Connect to MCP and copy the connector URL (yoursubdomain.taxdome.com/mcp). There’s no key to paste, since ChatGPT connects by signing in to TaxDome, so just follow the steps below.
-
In ChatGPT, open Settings, then Security and login, and turn on Developer mode.
-
Open Plugins in the sidebar and click + next to Search plugins. From Settings, you get to the same page through Plugins > Browse plugins at the bottom of the list.
-
In the New Plugin form, enter TaxDome as the name, paste the URL you copied into Server URL, and leave Authentication set to OAuth.
-
ChatGPT warns that OpenAI hasn’t reviewed this server, which it does for every custom plugin. Select the I understand and want to continue checkbox and click Create.
-
Sign in to TaxDome when ChatGPT asks you to, choose the permissions, and click Allow.
Developer mode and custom plugins have to be allowed on your ChatGPT plan. If the option is missing, ask your ChatGPT administrator.
Other tools
For Cursor, VS Code, Windsurf, and other MCP clients, add this to your client’s MCP configuration file (for example, mcp.json), replacing yoursubdomain with your firm’s subdomain:
{
"mcpServers": {
"taxdome": {
"type": "http",
"url": "https://yoursubdomain.taxdome.com/mcp"
}
}
}
The first time it connects, the client opens TaxDome so you can sign in. Choose the permissions and click Allow.
Connect through the API
Before you start, check that:
-
Enable API for your firm is on, in Settings > API & MCP > API & MCP
-
You have access as a team member, in Settings > API & MCP > Team members
Then:
-
In Settings > API & MCP, click Create API key, name it, and choose its access rights . Then click Create key and copy the key from the Your key step.
Important
Treat the API key like a password. It acts with your TaxDome access, and anyone holding it can act as you.
-
Send the key on every request in the Authorization header: Authorization: Bearer <your API key>.
-
Send requests to yoursubdomain.taxdome.com/api/v4, replacing yoursubdomain with your subdomain. The tool catalog lists what each endpoint does, and the API docs tab in Settings > API & MCP has the full request and response details.
-
Test the connection by calling GET /api/v4/me. It returns who the key acts as and your firm’s details, such as its name, subdomain, and time zone, without changing any data. The key needs read access to Your profile, which every preset includes.
Your API keys appear under Keys and connections. To change a key’s access rights, open its menu and select Edit. To stop it from working, select Revoke, then confirm. Anything using the key loses access right away, and a revoked key can’t be restored.
Note
Every write request (create, update, or delete) needs a unique ID in the Idempotency-Key header, or it’s rejected. Generate a new ID for each operation. If you retry the same request, reuse its ID so the action doesn’t happen twice. This applies only to direct API calls. MCP handles it for you.
You can also add a short reason to a write request in the X-TaxDome-Intent header. It’s saved in your firm’s audit log next to the change, so anyone reviewing it later knows why your integration made it.
Set up API automations with your AI assistant
You don’t need to write code to use the API. Give your AI assistant the link to the tool catalog , describe what should happen, and ask it to write the automation. For example: “When a deal is marked won in HubSpot, create the client in TaxDome from the deal’s details.” It can write a script, or a workflow for a tool like n8n or Google Apps Script, that you run once and leave on.
Before you turn it on for real clients, test it on a test client first .
Test on a test client first
There’s no test mode. Whatever MCP or the API does in TaxDome really happens, and anything that reaches a client can’t be recalled:
-
Emails, chat messages, and texts really send
-
Moving a job runs that stage’s automations. They can email or text the client, send a real invoice payable with a live card, or send an engagement letter to real signers.
Before you use a new integration or prompt on real clients:
-
Create a test client account in TaxDome with your own email address and phone number, so anything that sends reaches you.
-
Add a test job for that client in the pipeline you want to try.
-
Run the integration or prompt on that client and check every result: what changed in TaxDome, and what arrived in your inbox.
-
When it works the way you expect, use it with real clients.