FreeAgent MCP Server
for AI Agents
Connect your AI agent to StackOne's FreeAgent MCP server and give it 105 MCP tools out of the box. Auth, tool execution, and security all managed.
Coverage
105 Agent Actions
Create, read, update, and delete across FreeAgent — and extend your agent's capabilities with custom actions.
Authentication
Agent Tool Authentication
Per-user OAuth in one call. Your FreeAgent MCP server gets session-scoped tokens with zero credentials stored on your infra.
Agent Auth →Security
Agent Protection
Every FreeAgent tool response scanned for prompt injection in milliseconds — 88.7% accuracy, all running on CPU.
Prompt Injection Defense →Performance
Max Agent Context. Min Cost.
Free up to 96% of your agent's context window to enhance reasoning and reduce cost, on every FreeAgent call.
Tools Discovery →What is the FreeAgent MCP Server?
A FreeAgent MCP server lets AI agents read and write FreeAgent data through the Model Context Protocol — Anthropic's open standard for connecting LLMs to external tools. StackOne's FreeAgent MCP server ships with 105 pre-built actions, fully extensible via the Connector Builder — plus managed authentication, prompt injection defense, observability, and agent execution runtime. Connect it from MCP clients like Claude Desktop, Claude Code, Cursor, Goose, and VS Code, or from agent frameworks like OpenAI Agents SDK, LangChain, and Vercel AI SDK.
All FreeAgent MCP Tools
Every action from FreeAgent's API, ready for your agent. Create, read, update, and delete — scoped to exactly what you need.
Bank Accounts
- Create Bank Account
Create a new bank account in FreeAgent with a specified type, currency, and opening balance
- List Bank Accounts
Retrieve all bank accounts linked to the FreeAgent company, filterable by account type
- Get Bank Account
Retrieve a single bank account by its unique ID
- Update Bank Account
Update an existing bank account's name, bank name, or personal flag
- Delete Bank Account
Permanently delete a bank account from FreeAgent
Bank Transactions
- List Bank Transactions
Retrieve all bank transactions for a specific bank account, with optional date, status, and upload filters
- Get Bank Transaction
Retrieve a single bank transaction by its unique ID, including full explanation details
- Delete Bank Transaction
Permanently delete a bank transaction from FreeAgent
Bills
- Create Bill
Create a new bill (accounts payable) in FreeAgent with one or more line items
- List Bills
Retrieve all bills (accounts payable) with optional filtering by contact, project, payment status, and date range
- Get Bill
Retrieve a single bill by ID, including bill items, payment status, and attachment details
- Update Bill
Update an existing bill's details, line items, or add/remove bill items
- Delete Bill
Permanently delete a bill and its associated bill items from FreeAgent
Categorys
- Create Category
Create a custom accounting category in FreeAgent
- Get Category
Retrieve a single accounting category by its nominal code
- Update Category
Update a custom accounting category by nominal code
- Delete Category
Delete a user-created accounting category by nominal code
Contacts
- Create Contact
Create a new contact (client or supplier) in FreeAgent
- List Contacts
Retrieve all contacts (clients and suppliers) with optional filtering by type, status, and activity
- Get Contact
Retrieve a single contact by ID with full profile, balance, and CIS details
- Update Contact
Update an existing contact's details, address, invoice settings, or CIS configuration
- Delete Contact
Permanently delete a contact from FreeAgent
Credit Notes
- Create Credit Note
Create a new credit note in Draft status for a specified contact
- List Credit Notes
Retrieve all credit notes with optional filtering by contact, project, status, and date
- Get Credit Note
Retrieve a single credit note by ID with full line item and payment details
- Update Credit Note
Update an existing credit note's details, line items, or display settings
- Delete Credit Note
Permanently delete a credit note from FreeAgent
Estimates
- Create Estimate
Create a new estimate, quote, or proposal in FreeAgent for a specified contact
- List Estimates
Retrieve all estimates with optional filtering by contact, project, invoice, status, and date range
- Get Estimate
Retrieve a single estimate by ID with full line items, status, and VAT details
- Update Estimate
Update an existing estimate's details, notes, or display settings
- Delete Estimate
Permanently delete an estimate from FreeAgent (cannot delete estimates with Invoiced status)
Estimate Items
- Create Estimate Item
Add a new line item to an existing estimate
- Update Estimate Item
Update an existing estimate line item
- Delete Estimate Item
Remove a line item from an estimate
Default Estimate Additional Texts
- Get Default Estimate Additional Text
Retrieve the default additional text shown on all estimates
- Update Default Estimate Additional Text
Update the default additional text shown on all estimates
- Delete Default Estimate Additional Text
Remove the default additional text from all estimates
Expenses
- Create Expense
Create a new out-of-pocket expense or mileage claim in FreeAgent
- List Expenses
Retrieve all out-of-pocket expenses with optional filtering by user, project, status, and date range
- Get Expense
Retrieve a single expense by ID with full category, tax, rebill, and attachment details
- Update Expense
Update an existing expense's details, tax, rebill settings, or recurring schedule
- Delete Expense
Permanently delete an expense from FreeAgent
Invoices
- Create Invoice
Create a new draft invoice in FreeAgent with line items and optional auto-billing of timeslips, expenses, or estimates
- List Invoices
Retrieve all invoices with optional filtering by contact, project, status, date range, and sort order
- Get Invoice
Retrieve a single invoice by ID with full line items, payment status, and payment methods
- Update Invoice
Update an existing invoice's details, line items, payment methods, or display settings
- Delete Invoice
Permanently delete an invoice from FreeAgent
Default Invoice Additional Texts
- Get Default Invoice Additional Text
Retrieve the default additional text shown on all invoices
- Update Default Invoice Additional Text
Update the default additional text shown on all invoices
- Delete Default Invoice Additional Text
Remove the default additional text from all invoices
Projects
- Create Project
Create a new project in FreeAgent linked to a contact with budget, billing rate, and IR35 settings
- List Projects
Retrieve all projects with optional filtering by contact, status, sort order, and nested contact details
- Get Project
Retrieve a single project by ID with full budget, billing, and IR35 details
- Update Project
Update an existing project's name, status, budget, billing rate, or other settings
- Delete Project
Permanently delete a project from FreeAgent
Recurring Invoices
- List Recurring Invoices
Retrieve all recurring invoice profiles with optional filtering by contact, project, and status
- Get Recurring Invoice
Retrieve a single recurring invoice by ID with full schedule, line items, and payment methods
Tasks
- Create Task
Create a new task under a specific project in FreeAgent
- List Tasks
Retrieve all tasks with optional filtering by project, status, date, and sort order
- Get Task
Retrieve a single task by ID with full billing rate, status, and deletability info
- Update Task
Update an existing task's name, billing rate, status, or billable flag
- Delete Task
Permanently delete a task from FreeAgent
Timeslips
- Create Timeslip
Create a new timeslip (time entry) in FreeAgent for a user, task, and project
- List Timeslips
Retrieve all timeslips (time entries) with optional filtering by user, project, task, status, and date range
- Get Timeslip
Retrieve a single timeslip by ID with full hours, billing, and timer details
- Update Timeslip
Update an existing timeslip's hours, date, task, project, user, or comment
- Delete Timeslip
Permanently delete a timeslip from FreeAgent
Users
- Create User
Create a new user with a specified role and permission level in FreeAgent
- List Users
Retrieve all users with optional filtering by role type (staff, advisors, active)
- Get User
Retrieve a single user by ID with full role, permissions, and tax details
- Update User
Update an existing user's details, role, or permissions
- Delete User
Permanently delete a user from FreeAgent
Current Users
- Get Current User
Retrieve the authenticated user's personal profile (minimum Time access)
- Update Current User
Update the authenticated user's own profile (minimum Time access)
Other (30)
- Upload Bank Statement
Upload bank transactions as a JSON array to a specific bank account
- List Categories
Retrieve all accounting categories grouped by type (admin expenses, cost of sales, income, general)
- Get Company
Retrieve the authenticated company's profile, settings, and tax configuration
- List Business Categories
Retrieve all available business category values for the company profile
- Get Tax Timeline
Retrieve upcoming tax events and deadlines for the company
- Get Credit Note PDF
Download a credit note as a base64-encoded PDF
- Get Estimate PDF
Download an estimate as a base64-encoded PDF
- Get Mileage Settings
Retrieve mileage rates and engine type/size options for expense claims
- Get Invoice PDF
Download an invoice as a base64-encoded PDF
- Get Invoice Timeline
Retrieve a timeline of invoice payment events and activities
- Email Credit Note
Send a credit note via email (credit note must be in Open status, not Draft)
- Mark Credit Note As Sent
Transition a credit note from Draft to Open status, or re-open a cancelled credit note
- Mark Credit Note As Draft
Transition a credit note back to Draft status
- Duplicate Estimate
Create a copy of an existing estimate with Draft status and today's date
- Email Estimate
Send an estimate via email with optional attachments or using an email template
- Mark Estimate As Sent
Transition an estimate to Sent status
- Mark Estimate As Draft
Transition an estimate back to Draft status
- Mark Estimate As Approved
Transition an estimate to Approved status
- Mark Estimate As Rejected
Transition an estimate to Rejected status
- Convert Estimate To Invoice
Convert an approved estimate to an invoice, setting estimate status to Invoiced
- Duplicate Invoice
Create a copy of an existing invoice with Draft status and today's date
- Email Invoice
Send an invoice via email with optional attachments, expense receipts, or using a template
- Mark Invoice As Sent
Transition an invoice from Draft to Open status, or re-open a cancelled invoice
- Mark Invoice As Scheduled
Transition an invoice to Scheduled To Email status
- Mark Invoice As Draft
Transition an invoice back to Draft status
- Mark Invoice As Cancelled
Write off an invoice as unpaid (must be sent with due date in the past)
- Convert Invoice To Credit Note
Convert a draft negative invoice to a credit note
- Take Direct Debit Payment
Take payment for an invoice using a GoCardless Direct Debit Mandate
- Start Timer
Start a running timer on a timeslip to track time in real-time
- Stop Timer
Stop a running timer on a timeslip and record the elapsed time
FreeAgent AI Agent Use Cases
Connect your AI agent to FreeAgent and help your team scale the finance operations they run by hand today.
Automate invoice processing with AI agents connected to your ERP, accounting software, and AP tools through StackOne.
ViewUse StackOne to connect your AI agent to your accounting, CRM, and messaging systems to automate Accounts Receivable dunning and payment follow-up.
ViewUse StackOne to connect your AI agent to your accounting, email, and document management systems to automate invoice processing and purchase order matching.
ViewSet Up Your FreeAgent MCP Server in Minutes
One endpoint. Any framework. Your agent is talking to FreeAgent in under 10 lines of code.
Agent Frameworks
{
"mcpServers": {
"stackone": {
"command": "npx",
"args": [
"-y",
"mcp-remote@latest",
"https://api.stackone.com/mcp?x-account-id=<account_id>",
"--header",
"Authorization: Basic <YOUR_BASE64_TOKEN>"
]
}
}
}Check More Accounting MCP Servers
138+ actions
125+ actions
117+ actions
107+ actions
95+ actions
82+ actions
80+ actions
Platform Resources
MCP Code Mode: Keeping Tool Responses Out of Agent Context
Anthropic's code_execution processes data already in context. Custom MCP code mode keeps raw tool responses in a sandbox. 14K tokens vs 500.
11 min
Comparing BM25, TF-IDF, and Hybrid Search for MCP Tool Discovery
Benchmarking BM25, TF-IDF, and hybrid search for MCP tool discovery across 916 tools. The 80/20 TF-IDF/BM25 hybrid hits 21% Top-1 accuracy in under 1ms.
10 min
Indirect Prompt Injection Defense for MCP Tools: A Technical Guide
MCP tools that read emails, CRM records, and tickets are indirect prompt injection vectors. Here's how we built a two-tier defense that scans tool results in ~11ms.
12 min
MCP vs A2A: Architecture, Security, and When to Use Each
MCP vs A2A: what each protocol standardizes, how they differ, their shared security risks including indirect prompt injection, and when to use one, both, or a hybrid architecture.
12 min
MCP vs API: What 200+ Connector Builds Taught Us
MCP wraps APIs, it doesn't replace them. After building 200+ connectors that serve both, here's when each approach wins.
14 min read
FreeAgent MCP Server FAQ
Does StackOne have a FreeAgent MCP server?
FreeAgent MCP server vs direct API integration — what's the difference?
How does FreeAgent authentication work for AI agents?
origin_owner_id.Are FreeAgent MCP tools vulnerable to prompt injection?
What is the context bloat of a FreeAgent agent and how do I avoid it?
Can I limit which actions my FreeAgent agent can access?
Can I create custom agent actions for my FreeAgent MCP server?
When should I NOT use a FreeAgent MCP server?
What AI frameworks and AI clients does the StackOne FreeAgent MCP server support?
Put your AI agents to work
All the tools you need to build and scale AI agent integrations, with best-in-class connectivity, execution, and security.