Skip to main content
Glama
chrischall

freshbooks-mcp

by chrischall

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
FRESHBOOKS_CLIENT_IDYesThe client ID of your FreshBooks app.
FRESHBOOKS_TOKEN_STORENoFile path to store rotated refresh tokens.~/.freshbooks-mcp/session.json
FRESHBOOKS_REDIRECT_URINoThe redirect URI registered for your app. Must match exactly.https://localhost
FRESHBOOKS_CLIENT_SECRETYesThe client secret of your FreshBooks app.
FRESHBOOKS_REFRESH_TOKENYesThe refresh token obtained from the one-time bootstrap.

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
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 note field rather than looking like an empty account.

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

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

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