FreeAgent MCP Server (WavingCatApps/freeagent-mcp-vercel) is an MCP server listed on the M8ven Trust Index. It scores 72 out of 100, grade C. It declares 50 tools. No publisher has claimed this listing.
A Model Context Protocol server for the FreeAgent accounting API, enabling LLMs to manage contacts, invoices, estimates, bills, expenses, timeslips, projects, tasks, bank accounts, and more.
Caution. Specific findings reduced this grade. They are listed on the page. Grades reflect the full trust pyramid: code, verification depth, and reputation. New projects cap at C until adoption is earned.
How we verified
Verified is a snapshot. Live keeps it current, and builds your track record.
⚡ Connect GitHub → continuous verification on every pushwhy connect →Who stands behind it
WavingCatApps
Source: Glama
Claim it to get a verified publisher badge, a free copy of our full audit findings, and direct contact for any high-priority issues we find. Or connect your repo for our deepest verification, Live Monitored: read-only, revoke anytime. What we access →
Install from
The grade above is for the source repository. Registries can serve a different version, so we mark the ones we were not able to read.
These names and descriptions are the publisher's own, read from the source code. We print them as written. Our assessment is the findings above, not this list.
freeagent_list_contactsList all contacts in your FreeAgent account with pagination support.
freeagent_get_contactRetrieve detailed information about a specific contact by ID.
freeagent_create_contactCreate a new contact in FreeAgent.
freeagent_list_invoicesList invoices in your FreeAgent account with filtering and pagination.
freeagent_get_invoiceRetrieve detailed information about a specific invoice.
freeagent_create_invoiceCreate a new invoice in FreeAgent.
freeagent_transition_invoiceMove a FreeAgent invoice between lifecycle states: mark as sent, cancelled, draft, scheduled, or convert to a credit note. Use after freeagent_invoice_from_timeslips or freeagent_create_invoice to take a draft through to sent.
freeagent_list_estimatesList estimates (quotes) with filtering and pagination.
freeagent_get_estimateRetrieve detailed information about a specific estimate by ID.
freeagent_create_estimateDraft a new estimate (quote) for a contact.
freeagent_transition_estimateMove an estimate through its lifecycle: mark as sent, approved, rejected, cancelled, back to draft, or convert to an invoice.
freeagent_list_recurring_invoicesList recurring invoice templates with filtering and pagination.
freeagent_get_recurring_invoiceRetrieve a specific recurring invoice template by ID.
freeagent_list_price_list_itemsList price list (catalog) items available to use as invoice/estimate line items.
freeagent_get_price_list_itemRetrieve a specific price list item by ID.
freeagent_create_price_list_itemCreate a new catalog item that can be reused on invoices and estimates.
freeagent_invoice_from_timeslipsDraft an invoice from a contact's unbilled timeslips in one call. Resolves the contact by name/ID/URL, finds active projects, collects unbilled timeslips in the given date range (defaults: first day of previous month → today), groups by task using the task or project billing rate, and posts a draft …
freeagent_list_expensesList expenses in your FreeAgent account with filtering and pagination.
freeagent_get_expenseRetrieve detailed information about a specific expense by ID.
freeagent_create_expenseCreate a new expense in FreeAgent, including regular expenses or mileage claims.
freeagent_update_expenseUpdate an existing expense in FreeAgent. Only provide the fields you want to change.
freeagent_list_billsList supplier bills with filtering and pagination.
freeagent_get_billRetrieve detailed information about a specific supplier bill by ID.
freeagent_create_billCreate a new supplier bill in FreeAgent. Used to record money owed to suppliers.
freeagent_log_expenseLog a regular expense in one call. Takes a POSITIVE amount plus `kind` ('expense' or 'refund') — the tool applies the correct sign, so you never send a negative value. Accepts a category name, nominal code, or URL; accepts a user email, ID, or URL (defaults to the sole user on the account). Use free…
freeagent_list_timeslipsList timeslips in your FreeAgent account with filtering and pagination.
freeagent_get_timeslipRetrieve detailed information about a specific timeslip by ID.
freeagent_create_timeslipCreate a new timeslip (time tracking entry) in FreeAgent.
freeagent_update_timeslipUpdate an existing timeslip. Supports setting `billed_on_invoice` to link the timeslip to an invoice, though FreeAgent may reject external writes to that field.
freeagent_list_bank_accountsList all bank accounts in your FreeAgent account.
freeagent_get_bank_accountRetrieve detailed information about a specific bank account by ID.
freeagent_list_bank_transactionsList bank transactions for a specific bank account with pagination and filtering.
freeagent_get_bank_transactionGet detailed information about a specific bank transaction including amount, description, and explanation status.
freeagent_list_bank_transaction_explanationsList bank transaction explanations showing how transactions were categorized or linked to invoices, bills, or transfers.
freeagent_get_bank_transaction_explanationGet detailed information about a specific bank transaction explanation including categorization, tax info, and linked entities.
freeagent_create_bank_transaction_explanationCreate an explanation for a bank transaction by linking it to invoices, bills, or categories.
freeagent_update_bank_transaction_explanationUpdate an existing bank transaction explanation. Only provide the fields you want to change.
freeagent_reconcile_bank_transactionExplain a bank transaction in one call. Accepts a human-friendly hint (category name like 'Travel', nominal code like '285', or invoice reference like 'INV-001') and resolves it to the correct FreeAgent URL server-side. Auto-fills date and amount from the transaction, so you do not need to call get_…
freeagent_list_projectsList all projects in your FreeAgent account with filtering and pagination.
freeagent_get_projectRetrieve detailed information about a specific project by ID.
freeagent_create_projectCreate a new project in FreeAgent.
freeagent_list_tasksList tasks in your FreeAgent account with filtering and pagination.
freeagent_get_taskRetrieve detailed information about a specific task by ID.
freeagent_create_taskCreate a new task within a project in FreeAgent.
freeagent_list_categoriesList all categories in your FreeAgent account for expenses, invoices, and transactions.
freeagent_get_categoryRetrieve detailed information about a specific category by nominal code.
freeagent_get_companyRetrieve information about your FreeAgent company account.
freeagent_list_usersList all users in your FreeAgent account.
freeagent_search_toolsSearch the FreeAgent tool catalog and return JSONSchema definitions for matching tools. Use this to discover which tool to call before invoking freeagent_call_tool. Supports 'select:name1,name2' for direct name lookup, '+required optional' to require specific keywords, or plain keywords for a ranked…
freeagent_call_toolInvoke a FreeAgent catalog tool by name with the given arguments. Pair with freeagent_search_tools to discover tool names and input schemas — this meta-tool validates arguments against the target tool's Zod schema before dispatching.
Disclosed vulnerabilities in this server's declared npm dependencies (via OSV). Whether each is reachable depends on the installed versions.
axios Vulnerable to Full Man-in-the-Middle via Prototype Pollution Gadget in `config.proxy`
axios Vulnerable to Credential Theft and Response Hijacking via Prototype Pollution Gadget in Config Merge
Axios: Excessive recursion in formDataToJSON can cause denial of service
Axios: Invisible JSON Response Tampering via Prototype Pollution Gadget in `parseReviver`
BASE_URLFREEAGENT_ACCESS_TOKENexport ="your_access_token"FREEAGENT_CLIENT_IDRequired env vars: , FREEAGENT_CLIENT_SECRET, JWT_SECRET (stable secret required on Vercel so OAuth JWTs verify across serverless instances)FREEAGENT_CLIENT_SECRETRequired env vars: FREEAGENT_CLIENT_ID, , JWT_SECRET (stable secret required on Vercel so OAuth JWTs verify across serverless instances)FREEAGENT_TOOL_SEARCHexport =trueFREEAGENT_USE_SANDBOXexport ="true" # optionalJWT_SECRETRequired env vars: FREEAGENT_CLIENT_ID, FREEAGENT_CLIENT_SECRET, (stable secret required on Vercel so OAuth JWTs verify across serverless instances)MCP_REFRESH_TOKEN_EXPIRYMCP_TOKEN_EXPIRY_SECONDSPRODUCTION_URLSet (or rely on VERCEL_PROJECT_PRODUCTION_URL) for stable production OAuth callback URLs. Preview OAuth uses the request host (or VERCEL_URL) so short per-deploy hosts match FreeAgent wildcards.VERCELTool test coverage
Only 9/50 tools referenced in tests (18%)
Write tests that reference each tool by name so every tool has at least one test.
Secrets not logged
3 secret values sent to console.log
Redact or omit secret values from log output.
Production dependencies are patched
0 critical, 2 high severity in production deps — axios@1.15.0 (high), axios@1.15.0 (high)
Run npm audit fix, or upgrade the affected packages to a non-vulnerable version.
Claim the listing to review these findings one by one and send us a correction where you disagree, straight to the team. Claiming also means we tell you when the grade moves, and reach you first if we find anything urgent.
[](https://m8ven.ai/mcp/wavingcatapps/freeagent-mcp-vercel)?variant=verified from the URL.Vetting this one by hand? Tool Check is an MCP that scores other MCPs. Add it once and ask Claude, ChatGPT, or any MCP client to grade a server, surface CVEs, check the publisher, and suggest safer alternatives — before you install.
https://m8ven.ai/api/mcp/tool-check