FreeAgent MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PORT | No | If set, serves over HTTP on this port instead of stdio | |
| AUTH_TOKEN | No | Bearer token required on every HTTP request when PORT is set | |
| ORS_API_KEY | No | OpenRouteService API key for drive-distance lookups | |
| VENDOR_CATEGORIES | No | JSON object extending built-in vendor to category mapping | |
| MILEAGE_RATE_PENCE | No | Fixed pence-per-mile rate; overrides HMRC logic when set | |
| FREEAGENT_CLIENT_ID | Yes | OAuth client ID from FreeAgent Developer API | |
| GOOGLE_MAPS_API_KEY | No | Google Maps API key for drive-distance lookups (alternative to ORS) | |
| HMRC_RATE_LOW_PENCE | No | HMRC low-band rate in pence | 25 |
| HMRC_RATE_HIGH_PENCE | No | HMRC high-band rate in pence | 45 |
| HMRC_THRESHOLD_MILES | No | Miles per tax year before low band kicks in | 10000 |
| MILEAGE_CATEGORY_URL | No | FreeAgent category URL for mileage expenses | /v2/categories/311 |
| FREEAGENT_CLIENT_SECRET | Yes | OAuth client secret from FreeAgent Developer API | |
| FREEAGENT_REFRESH_TOKEN | Yes | Long-lived refresh token obtained via OAuth flow |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| freeagent_list_bank_accountsA | 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. |
| freeagent_list_transactionsA | 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. |
| freeagent_explain_transactionA | Approve or update a FreeAgent bank transaction explanation. Use this to:
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. Pass a download link as fileUrl, or save the PDF locally and pass filePath. Avoid fileBase64 for anything but tiny files — large inline base64 is unreliable. 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. |
| freeagent_list_categoriesA | 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. |
| freeagent_list_projectsA | List FreeAgent projects. Returns project URL, name, status and contact. Use the project URL to tag an expense to a client engagement via freeagent_create_expense. |
| freeagent_create_expenseA | 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. |
| freeagent_create_mileage_expenseA | 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. The claim value is calculated by FreeAgent from the mileage rate configured on the account (this is what HMRC reporting in FreeAgent uses). ratePence / cumulativeMilesYTD only produce an advisory estimate in the response for cross-checking — they do not change what is filed. |
| freeagent_list_contactsA | List FreeAgent contacts (clients and suppliers). Returns contact URL, name, email, status and outstanding account balance. Use the contact URL when raising an invoice or entering a supplier bill. |
| freeagent_create_contactA | Create a contact in FreeAgent — a client to invoice or a supplier to record bills against. Supply either an organisation name or a first/last name (or both). |
| freeagent_list_invoicesA | List FreeAgent invoices with their status and outstanding balance. Use view='overdue' to chase late payers, 'open_or_overdue' for everything unpaid, or 'draft' for invoices not yet issued. |
| freeagent_get_invoiceA | Fetch a single FreeAgent invoice in full, including its line items. |
| freeagent_create_invoiceA | Raise an invoice in FreeAgent. Created as a DRAFT — it is not sent to the client. Use freeagent_update_invoice_status with 'mark_as_sent' once you have issued it. Find the contact with freeagent_list_contacts and the income category with freeagent_list_categories (income categories, e.g. 001 Sales). |
| freeagent_update_invoice_statusA | Change an invoice's status in FreeAgent: mark_as_sent (issue it), mark_as_draft (pull it back), mark_as_scheduled, or mark_as_cancelled. These change status only — no email is sent to the client. |
| freeagent_delete_invoiceA | Permanently delete a FreeAgent invoice. Only draft invoices can normally be deleted — cancel an issued invoice instead with freeagent_update_invoice_status. |
| freeagent_list_billsA | List FreeAgent bills — money the company owes to suppliers (accounts payable). Use view='open_or_overdue' to see what is still to pay. |
| freeagent_create_billA | Record a supplier bill (an invoice the company has received and owes). Each line needs a spending category and a value including tax. RECEIPTS: before asking the user for the PDF, search connected email tools (Gmail, Outlook/M365) for the supplier invoice and pass it as fileBase64 + fileName. |
| freeagent_delete_billA | Permanently delete a FreeAgent bill. |
| freeagent_list_tasksA | List project tasks in FreeAgent. Time is always logged against a task, so use this to find the task URL before creating a timeslip. |
| freeagent_create_taskA | Create a task on a FreeAgent project. Tasks carry the billing rate that logged time is charged at. |
| freeagent_list_timeslipsA | List logged time in FreeAgent for a date range. Use view='unbilled' to find time that has not yet been invoiced. Returns per-project totals alongside the individual entries. |
| freeagent_create_timeslipA | Log time against a FreeAgent project task. Defaults to the authenticated user as the person who did the work. Find the task with freeagent_list_tasks. |
| freeagent_delete_timeslipB | Delete a logged timeslip from FreeAgent. |
| freeagent_profit_and_lossA | FreeAgent profit and loss summary — income, expenses, operating profit, corporation tax estimate, dividends and retained profit. Defaults to the current accounting year. |
| freeagent_trial_balanceA | FreeAgent trial balance — the balance on every nominal account. Credits are negative, debits positive. Useful for a full financial position. |
| freeagent_aged_debtorsA | Aged debtors — unpaid customer invoices bucketed by how overdue they are (not yet due, 1-30, 31-60, 61-90, 90+ days). Shows who owes what and for how long. |
| freeagent_aged_creditorsA | Aged creditors — unpaid supplier bills bucketed by how overdue they are. Shows what the company owes and for how long. |
| freeagent_tax_timelineA | Upcoming tax and filing deadlines from FreeAgent — VAT returns, corporation tax, Companies House filings, self assessment — with amounts due and dates. |
| freeagent_company_summaryA | FreeAgent company details — name, type, company registration number, VAT registration status, accounting year end and currency. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/OxygenBubbles/freeagent-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server