io.github.OxygenBubbles/freeagent-mcp-server
NPM · @OXYGENBUBBLES/FREEAGENT-MCP-SERVER · SCANNED AUG 6
FreeAgent accounting MCP: bank reconciliation, expenses, mileage claims and receipts.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score →
Supply Chain Security87
- No malware found by supply-chain analysis.Pass
- Known CVEs were checked across the 108 of 109 dependencies we could resolve, so this covers what we could see, not the whole tree.Partial
- No install/post-install scripts declared.Pass
- Dependency health was assessed across the 108 of 109 dependencies we could resolve, so this covers what we could see, not the whole tree. View diagnostics → Partial
Provenance & Transparency45
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 115 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability59
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 1849 tokens (~308/item across 6 items; 6 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management37
- Stability observed for 11 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.
npm · @oxygenbubbles/freeagent-mcp-server
claude mcp add oxygenbubbles-freeagent-mcp-server -- npx -y @oxygenbubbles/freeagent-mcp-server
codex mcp add oxygenbubbles-freeagent-mcp-server -- npx -y @oxygenbubbles/freeagent-mcp-server
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"oxygenbubbles-freeagent-mcp-server": {
"type": "local",
"command": [
"npx",
"-y",
"@oxygenbubbles/freeagent-mcp-server"
],
"enabled": true
}
}
} openclaw mcp add oxygenbubbles-freeagent-mcp-server --command npx --arg -y --arg @oxygenbubbles/freeagent-mcp-server
mcp_servers:
oxygenbubbles-freeagent-mcp-server:
command: "npx"
args: ["-y", "@oxygenbubbles/freeagent-mcp-server"] {
"mcpServers": {
"oxygenbubbles-freeagent-mcp-server": {
"command": "npx",
"args": [
"-y",
"@oxygenbubbles/freeagent-mcp-server"
]
}
}
} Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 5 Aug 26 +2
- CVE-2026-69207 no longer affects this package ▲ security
- Known CVEs: fail → partial ▲ security
- 4 Aug 26 −1
- CVE-2026-69207 affects this package: medium ▼ security
- Known CVEs: partial → fail ▼ security
- 3 Aug 26 +4
- Stability: unverified → 0.27 ▲ functional
- 2 Aug 26 +45
- Provenance: unverified → fail ▼ security
- Install scripts: unverified → pass ▲ security
- Known CVEs: unverified → partial ▲ security
- Malware scan: unverified → pass ▲ security
- Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window). security
- Schema quality: unverified → excellent ▲ functional
- License: unverified → pass ▲ functional
- Dependency health: unverified → partial ▲ functional
- Maintenance: unverified → pass ▲ functional
- MCP protocol: unverified → pass ▲ functional
- Licence: MIT functional
- 1 Aug 26 −7
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 31 Jul 26 −18
- Malware scan: pass → unverified ▼ security
- 28 Jul 26 +16
- Dependency health: partial → unverified ▼ functional
- Tool coverage: unverified → 100 ▲ functional
- First check of Tool coverage: 100 functional
- First check of Schema quality: fail functional
- First check of Schema quality: fail functional
- First check of Schema quality: unverified functional
- 27 Jul 26 26
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 6 Aug 2026 · Analysed npm/@oxygenbubbles/[email protected]
Provenance No attestation
The registry publishes no build provenance for this version, so there is nothing to verify.
| Result | No attestation |
|---|---|
| Ecosystem | npm |
Dependencies 108 packages
| Packages resolved | 108 |
|---|---|
| Deprecated | 108 |
| Stale | 32 |
| Tree resolution | Partial |
The dependency tree was only partially resolved, so these counts may be incomplete.
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.
freeagent_create_expense ~396
Create an expense in FreeAgent — for purchases on a personal card or cash that need claiming back. Provide vendor, date, amount, description and category. If categoryUrl is omitted, auto-selects from vendor mapping. Optionally pass bankAccountId to auto-match and explain a corresponding bank transaction (e.g. if the same purchase also appears on a company card). RECEIPTS: Before asking the user for a file, search connected email tools (Gmail, Outlook/M365) for a matching invoice. Use vendor name, amount and date as search terms. Download the PDF and pass it as fileBase64 + fileName. Also check local sources (Downloads folder, etc.) if the user has mentioned them.
| Name | Type | Req | Description |
|---|---|---|---|
| bankAccountId | string | – | If supplied, search this bank account for a matching unexplained transaction (same amount, date ±4 days) and link the expense to it. |
| categoryUrl | string | – | FreeAgent category URL (e.g. '/v2/categories/285'). Auto-selected from vendor if omitted. |
| contentType | string | – | MIME type (e.g. 'application/pdf'). Inferred from fileName if omitted. |
| currency | string | – | ISO 4217 currency code (default GBP) |
| datedOn | string | yes | Expense date YYYY-MM-DD |
| description | string | yes | Expense description (e.g. 'Monthly cloud hosting') |
| fileBase64 | string | – | Base64-encoded receipt file (PDF, PNG, JPEG, etc.) |
| fileName | string | – | File name for the receipt (e.g. 'receipt.pdf') |
| grossAmount | string | yes | Gross amount as string (e.g. '22.80') |
| vatAmount | string | – | VAT amount as string (e.g. '3.80') |
| vendor | string | yes | Vendor / merchant name (e.g. 'IONOS Cloud') |
No output schema declared.
No examples provided.
freeagent_create_mileage_expense ~383
Create a mileage expense in FreeAgent. Provide either origin + destination (requires ORS_API_KEY or GOOGLE_MAPS_API_KEY for distance lookup) or manualMiles for the journey distance. Set roundTrip=true to double the distance. Rate: pass ratePence to set the per-mile rate explicitly (e.g. 45 for 45p/mile). If omitted, defaults to the MILEAGE_RATE_PENCE env var, or HMRC approved rates (configurable via HMRC_RATE_HIGH_PENCE / HMRC_RATE_LOW_PENCE / HMRC_THRESHOLD_MILES env vars, defaulting to 45p/25p at 10,000 miles — pass cumulativeMilesYTD to enable threshold logic).
| Name | Type | Req | Description |
|---|---|---|---|
| cumulativeMilesYTD | number | – | Cumulative business miles already claimed this tax year. Used for HMRC threshold logic (high rate → low rate at threshold). Only relevant when ratePence is not set. |
| currency | string | – | ISO 4217 currency code (default GBP) |
| datedOn | string | yes | Journey date YYYY-MM-DD |
| description | string | yes | Journey description (e.g. 'Wakefield to Ackworth TT Club, coaching session') |
| destination | string | – | Destination address. Requires distance API key. Omit if providing manualMiles. |
| manualMiles | number | – | Journey distance in miles (use instead of origin/destination) |
| origin | string | – | Origin address. Requires distance API key. Omit if providing manualMiles. |
| ratePence | number | – | Pence per mile (e.g. 45). If omitted, uses MILEAGE_RATE_PENCE env var or HMRC rates (configurable via env vars, defaults to 45p/25p with threshold logic). |
| roundTrip | boolean | – | Double the distance for a return journey |
No output schema declared.
No examples provided.
freeagent_explain_transaction ~377
Approve or update a FreeAgent bank transaction explanation. Use this to: - Approve a 'marked for review' transaction (set markExplained=true) - Change the category or description of an explanation - Attach a receipt/invoice file (pass fileBase64 + fileName) Get the explanationId from freeagent_list_transactions (explanation_id field). RECEIPTS: Before asking the user for a file, search connected email tools (Gmail, Outlook/M365) for a matching invoice using vendor name, amount and date. Download the PDF from the email and pass it as fileBase64. Also check local file sources (Downloads folder, etc.) if the user has mentioned them. SAFETY: Only set markExplained=true when you have a confirmed receipt attached or the user has explicitly approved it.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | FreeAgent category path (e.g. '/v2/categories/285'). Use freeagent_list_categories to find the right one. |
| contentType | string | – | MIME type of the file (e.g. 'application/pdf', 'image/jpeg', 'image/png'). Inferred from fileName if omitted. |
| description | string | – | Human-readable description for the transaction (e.g. 'IONOS — Monthly cloud hosting') |
| explanationId | string | yes | Numeric FreeAgent bank transaction explanation ID (from explanation_id in list_transactions) |
| fileBase64 | string | – | Base64-encoded file to attach (receipt, invoice, screenshot — PDF, PNG, JPEG, etc.) |
| fileName | string | – | File name for the attachment (e.g. 'ionos-invoice-apr-2026.pdf') |
| markExplained | boolean | – | Set true to approve/reconcile the transaction. Only do this when evidence is attached or confirmed. |
No output schema declared.
No examples provided.
freeagent_list_bank_accounts ~44
List all bank accounts on the FreeAgent account. Returns account name, currency, current balance and status. Use this to find the bank account ID before listing transactions.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
freeagent_list_categories ~47
List FreeAgent expense categories (chart of accounts). Returns category URL, description, nominal code and group. Use the category URL when creating expenses or explaining transactions. Cached after first call.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
freeagent_list_transactions ~228
List bank account transactions from FreeAgent. By default returns unexplained (unreconciled) transactions. Use bankAccountId from freeagent_list_bank_accounts. Returns id, date, description, amount, and explanation details (category, marked_for_review) for each entry. After listing, if the task involves reconciliation, search available email or file sources for matching receipts — do not ask the user to provide files before checking email (Gmail, Outlook, etc.) and local sources first.
| Name | Type | Req | Description |
|---|---|---|---|
| bankAccountId | string | yes | Numeric FreeAgent bank account ID (e.g. '1877156') |
| fromDate | string | – | Start date filter YYYY-MM-DD (inclusive) |
| limit | integer | – | Max entries to return (default 50, max 200) |
| page | integer | – | Page number for pagination (default 1) |
| toDate | string | – | End date filter YYYY-MM-DD (inclusive) |
| view | string | – | Which transactions to return. Defaults to unexplained. Use 'marked_for_review' for auto-categorised transactions awaiting approval. |
No output schema declared.
No examples provided.