FreeAgent accounting MCP: bank reconciliation, expenses, mileage claims and receipts.
Freeagent MCP server is a locally run integration for AI assistants that speak the Model Context Protocol. FreeAgent accounting MCP: bank reconciliation, expenses, mileage claims and receipts.
The FreeAgent OAuth credentials grant full access to the connected FreeAgent account. This server uses that access to:
Once Freeagent is connected, these are the calls the assistant has available:
freeagent_list_bank_accounts — List all bank accounts and their IDsfreeagent_list_transactions — List transactions (unexplained / explained / all / marked_for_review) with date filtersfreeagent_explain_transaction — Update, approve or attach a receipt to a transaction explanationfreeagent_list_categories — List the FreeAgent chart of accounts (expense categories)freeagent_create_expense — Create an expense claim with optional receipt attachment and bank-transaction auto-matchingfreeagent_create_mileage_expense — Create a mileage expense using HMRC rates, with optional distance auto-calculationFreeAgent — The FreeAgent OAuth credentials grant full access to the connected FreeAgent account. This server uses that access to:Required — The Required tool exposed by this serverOptional — The Optional tool exposed by this serverYou will need 8 environment variables: NETFLIX, FREEAGENT_CLIENT_ID, FREEAGENT_CLIENT_SECRET, FREEAGENT_REFRESH_TOKEN, MILEAGE_CATEGORY_URL, ORS_API_KEY, GOOGLE_MAPS_API_KEY, AUTH_TOKEN. The server will not start without them, which is usually why the tools fail to appear on a first run. Keep credentials in your client's env block or a secrets manager rather than in a file you might commit.
@oxygenbubbles/freeagent-mcp-server on npm is all you need. Most clients run it directly, so configuration is a few lines and a restart.
Among the developer tooling options, the useful question is rarely "what can it do" but "what does it cost you to run" — permissions, credentials, and how much of your context its toolset consumes. Freeagent's toolset — freeagent_list_bank_accounts, freeagent_list_transactions, freeagent_explain_transaction and 6 more — is a fair guide to whether it matches your workflow. It is maintained by OxygenBubbles; worth a glance at recent repository activity before you build anything load-bearing on it.
SyncDev reviews every entry in this directory against the project's own documentation before publishing, and revisits them as servers change.
| Tool | What it does |
|---|---|
| freeagent_list_bank_accounts | List all bank accounts and their IDs |
| freeagent_list_transactions | List transactions (unexplained / explained / all / marked_for_review) with date filters |
| freeagent_explain_transaction | Update, approve or attach a receipt to a transaction explanation |
| freeagent_list_categories | List the FreeAgent chart of accounts (expense categories) |
| freeagent_create_expense | Create an expense claim with optional receipt attachment and bank-transaction auto-matching |
| freeagent_create_mileage_expense | Create a mileage expense using HMRC rates, with optional distance auto-calculation |
| FreeAgent | The FreeAgent OAuth credentials grant **full access** to the connected FreeAgent account. This server uses that access to: |
| Required | The Required tool exposed by this server. |
| Optional | The Optional tool exposed by this server. |
{
"mcpServers": {
"freeagent": {
"command": "npx",
"args": ["-y", "@oxygenbubbles/freeagent-mcp-server"],
"env": {
"NETFLIX": "your-value",
"FREEAGENT_CLIENT_ID": "your-value",
"FREEAGENT_CLIENT_SECRET": "your-value",
"FREEAGENT_REFRESH_TOKEN": "your-value",
"MILEAGE_CATEGORY_URL": "your-value",
"ORS_API_KEY": "your-value",
"GOOGLE_MAPS_API_KEY": "your-value",
"AUTH_TOKEN": "your-value"
}
}
}
}Add to claude_desktop_config.json, then restart Claude Desktop.
| Variable | Description | Required |
|---|---|---|
| NETFLIX | Configuration value read at startup. | Optional |
| FREEAGENT_CLIENT_ID | Configuration value read at startup. | Optional |
| FREEAGENT_CLIENT_SECRET | Credential the server authenticates with. | Yes |
| FREEAGENT_REFRESH_TOKEN | Credential the server authenticates with. | Yes |
| MILEAGE_CATEGORY_URL | Endpoint or connection string the server talks to. | Yes |
| ORS_API_KEY | Credential the server authenticates with. | Yes |
| GOOGLE_MAPS_API_KEY | Credential the server authenticates with. | Yes |
| AUTH_TOKEN | Credential the server authenticates with. | Yes |
Kill hallucinated APIs — version-accurate, up-to-date library documentation injected straight into context.
Microsoft's official browser automation server — drive a real browser through the accessibility tree, no screenshots needed.
GitHub's official server — repos, issues, pull requests, Actions and code security, straight from your assistant.
Issue tracking at the speed of conversation — Linear's official hosted server with OAuth and zero install.
Local repository surgery — status, diffs, commits, branches and history for any repo on disk.
Timezone sanity for AI — current time anywhere and correct conversions, without the model doing date math.