freshbooks-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| FRESHBOOKS_CLIENT_ID | Yes | The client ID of your FreshBooks app. | |
| FRESHBOOKS_TOKEN_STORE | No | File path to store rotated refresh tokens. | ~/.freshbooks-mcp/session.json |
| FRESHBOOKS_REDIRECT_URI | No | The redirect URI registered for your app. Must match exactly. | https://localhost |
| FRESHBOOKS_CLIENT_SECRET | Yes | The client secret of your FreshBooks app. | |
| FRESHBOOKS_REFRESH_TOKEN | Yes | The refresh token obtained from the one-time bootstrap. |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| freshbooks_get_identityA | Resolve the authenticated FreshBooks user and their identifiers: accountId (alphanumeric, used by accounting and payments endpoints), businessId (integer, used by projects and time tracking) and businessUuid. The three are not interchangeable — using the wrong one returns a 404 rather than a useful error. |
| freshbooks_list_invoicesA | List invoices for the authenticated FreshBooks account. Supports pagination and raw FreshBooks filter params. Returns items plus page/pages/total. |
| freshbooks_get_invoiceA | Get a single invoice by its numeric FreshBooks id. |
| freshbooks_list_clientsA | List clients for the authenticated FreshBooks account. Supports pagination and raw FreshBooks filter params. Returns items plus page/pages/total. |
| freshbooks_get_clientA | Get a single client by its numeric FreshBooks id. |
| freshbooks_list_estimatesA | List estimates for the authenticated FreshBooks account. Supports pagination and raw FreshBooks filter params. Returns items plus page/pages/total. |
| freshbooks_get_estimateA | Get a single estimate by its numeric FreshBooks id. |
| freshbooks_list_paymentsA | List payments for the authenticated FreshBooks account. Supports pagination and raw FreshBooks filter params. Returns items plus page/pages/total. |
| freshbooks_get_paymentA | Get a single payment by its numeric FreshBooks id. |
| freshbooks_list_itemsA | List items for the authenticated FreshBooks account. Supports pagination and raw FreshBooks filter params. Returns items plus page/pages/total. |
| freshbooks_get_itemA | Get a single item by its numeric FreshBooks id. |
| freshbooks_create_clientA | Create a client (customer) in FreshBooks. Requires confirm: true to execute; without it returns a dry-run preview and makes no network call. |
| freshbooks_create_invoiceA | Create an invoice for a client. Created invoices start as drafts. Requires confirm: true to execute; without it returns a dry-run preview and makes no network call. |
| freshbooks_update_invoiceA | Update an existing invoice. Only the supplied fields are sent. Requires confirm: true to execute; without it returns a dry-run preview and makes no network call. Note that changing an invoice out of draft can email it to the client. |
| freshbooks_record_paymentA | Record a payment against an invoice. Requires confirm: true to execute; without it returns a dry-run preview and makes no network call. |
| freshbooks_list_expensesA | List expenses for the account, newest-first by default. Supports pagination and raw FreshBooks filters (e.g. {"search[categoryid]": 5}). If the response reports a total with no rows, the count includes records this identity cannot read — that is reported in the |
| freshbooks_get_expenseA | Get a single expense by its numeric id. |
| freshbooks_list_expense_categoriesA | List expense categories, which supply the categoryid used when creating an expense. |
| freshbooks_create_expenseA | Record an expense. Requires confirm: true to execute; without it returns a dry-run preview and makes no network call. |
| freshbooks_list_projectsB | List projects for the business. Uses businessId (not accountId) and works even when the business has no accounting account. |
| freshbooks_get_projectA | Get a single project by its numeric id. |
| freshbooks_create_projectA | Create a project. Requires confirm: true to execute; without it returns a dry-run preview and makes no network call. |
| freshbooks_list_time_entriesA | List tracked time entries for the business. The response envelope also carries total_logged and total_unbilled alongside the rows. |
| freshbooks_create_time_entryA | Log a time entry. Duration is in SECONDS. Requires confirm: true to execute; without it returns a dry-run preview and makes no network call. |
| freshbooks_list_servicesA | List services (the billable work types available to projects and time entries). |
| freshbooks_list_recordsA | List any FreshBooks accounting resource by name — the generic reader covering the long tail (taxes, credit notes, invoice profiles, tasks, staff, gateways, bills, bill vendors, bill payments, other income, expense categories) alongside the ones with dedicated tools. Returns items plus page/pages/total. Some resources are gated by plan or account role and will report that rather than returning rows. |
| freshbooks_get_recordA | Get a single record from any FreshBooks accounting resource by name and id. Ids are numeric on every resource mapped here; the schema also accepts a string so an id carried around as text still works. |
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/chrischall/freshbooks-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server