Read FreeAgent contacts, invoices, bills, banking and reports; add contacts, draft invoices, time. Hosted by usefulapi — connect from Claude, Cursor, or any MCP client.
Add to your MCP config, then reload & authorize:
{
"mcpServers": {
"freeagent": {
"url": "https://freeagent.usefulapi.io/mcp"
}
}
}| Tool | Type | What it does |
|---|---|---|
freeagent_get_company | read | Get the company Fetch the FreeAgent company these credentials belong to — name, type (e.g. UkLimitedCompany), currency, start date and VAT registration status. A cheap way to confirm the setup works. FreeAgent: GET /v2/company. |
freeagent_get_current_user | read | Get the current user Fetch the FreeAgent user the token acts as, including their URL (needed for freeagent_create_timeslip) and permission level. FreeAgent: GET /v2/users/me. |
freeagent_get_tax_timeline | read | Get the tax timeline List upcoming tax deadlines and amounts due — VAT returns, corporation tax, self assessment and so on. FreeAgent: GET /v2/company/tax_timeline. |
freeagent_list_contacts | read | List contacts List contacts (clients and suppliers), with their account balance. FreeAgent: GET /v2/contacts. |
freeagent_get_contact | read | Get one contact Fetch a single contact by id or URL. FreeAgent: GET /v2/contacts/:id. |
freeagent_list_invoices | read | List invoices List sales invoices, optionally for one contact or project, filtered by status. FreeAgent: GET /v2/invoices. |
freeagent_get_invoice | read | Get one invoice Fetch a single invoice by id or URL, with its line items, totals, due and paid values. FreeAgent: GET /v2/invoices/:id. |
freeagent_list_bills | read | List bills List supplier bills (purchases), optionally by date range, contact or project, filtered by status. FreeAgent: GET /v2/bills. |
freeagent_list_expenses | read | List expenses List expense claims (out-of-pocket spending and mileage), optionally by date range or project. FreeAgent: GET /v2/expenses. |
freeagent_list_bank_accounts | read | List bank accounts List bank, credit-card and PayPal accounts with their current balances. Use an account's URL with freeagent_list_bank_transactions. FreeAgent: GET /v2/bank_accounts. |
freeagent_list_bank_transactions | read | List bank transactions List the transactions on one bank account, e.g. view=unexplained for what still needs reconciling. FreeAgent: GET /v2/bank_transactions?bank_account=…. |
freeagent_list_projects | read | List projects List projects, optionally for one contact. FreeAgent: GET /v2/projects. |
freeagent_list_tasks | read | List tasks List project tasks with their billing rates, optionally for one project. A task's URL is needed for freeagent_create_timeslip. FreeAgent: GET /v2/tasks. |
freeagent_list_timeslips | read | List timeslips List logged time, optionally by date range, user, task or project; view=unbilled for time not yet invoiced. FreeAgent: GET /v2/timeslips. |
freeagent_get_profit_and_loss | read | Get profit and loss Profit and loss summary — income, expenses, operating and retained profit — for a date range or an accounting period (defaults to the current year to date). FreeAgent: GET /v2/accounting/profit_and_loss/summary. |
freeagent_get_balance_sheet | read | Get the balance sheet Balance sheet — capital and current assets, liabilities and owners' equity — as at a date (default today). FreeAgent: GET /v2/accounting/balance_sheet. |
freeagent_create_contact | write | Create a contact Create a client or supplier contact. Give either organisation_name, or first_name and last_name. FreeAgent: POST /v2/contacts. |
freeagent_update_contact | write | Update a contact Update fields on an existing contact; only the fields you pass change. status=Hidden hides it (reversible with Active). FreeAgent: PUT /v2/contacts/:id. |
freeagent_create_draft_invoice | write | Create a draft invoice Create a sales invoice in DRAFT status. Nothing is sent to the customer and nothing is posted as income until it is marked sent in FreeAgent; a draft can be edited or discarded there. FreeAgent: POST /v2/invoices. |
freeagent_create_timeslip | write | Log a timeslip Log time against a project task for a user. Get the user from freeagent_get_current_user and the task from freeagent_list_tasks. Editable or removable in FreeAgent afterwards. FreeAgent: POST /v2/timeslips. |
freeagent_usage_status | Usage status (free-tier meter) Report the caller's current free-tier usage this month: calls used, monthly limit, remaining, and whether the cap is reached. Read-only; does not count against the meter. | |
freeagent_upgrade | Upgrade to Pro (unlimited) Subscribe to the Pro plan for UNLIMITED FreeAgent tool calls (the free tier caps monthly usage). Choose monthly ($9/month) or yearly ($90/year — 2 months free) billing. Returns a Stripe Checkout link to open in your browser; after payment your account upgrades automatically. Does not count against the meter. | |
freeagent_cancel_subscription | Cancel the Pro subscription Cancel the caller's FreeAgent Pro subscription at the end of the paid period (no refund for the current period; unlimited calls continue until then, then the free tier applies). Requires confirm: true. Run freeagent_upgrade later to undo the cancel before the period ends. Does not count against the meter. |
| Plan | Price | Limit |
|---|---|---|
| Free | $0 | 100 tool calls / month |
| Proper user | $9/mo · $90/yr | Unlimited |
Pro covers this FreeAgent server only. Subscribe with freeagent_upgrade (it returns a Stripe Checkout link). Cancel any time with freeagent_cancel_subscription: Pro continues to the end of the paid period, with no refund for the current period, and running freeagent_upgrade before then undoes the cancel. Or write to [email protected].
This is a Model Context Protocol endpoint — meant to be connected from an AI client, not opened in a browser. An invalid_token response at the URL is the auth gate working as designed; clients authenticate automatically.