Skip to content
Agentmart
Submit a tool

Freshbooks MCP

FreshBooks invoicing for Claude — invoices, clients, estimates, and payments

Connector by chrischall · GitHub account verified by the MCP Registry

IndexedMITLocal (stdio)
Write a review

Install

Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.

npx agentmarket install connector/chrischall-freshbooks-mcp

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

FreshBooks invoicing for Claude — invoices, clients, estimates, and payments

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this server can do and what it asks for, from its tool list and install config. Checked Oct 25, 2026.

Tools
17 read · 0 write · 11 delete
Secrets
3 (API keys, tokens or passwords)
Install scripts
Not scanned yet
Runs as
Node.js package

Tools by what they do 28

Read from the source code; the running server may list different tools.

Read 17 · Look things up without changing anything.

  • freshbooks_auth_url
  • freshbooks_decline_estimate
  • freshbooks_get_expense
  • freshbooks_get_identity
  • freshbooks_get_project
  • freshbooks_get_record
  • freshbooks_list_clients
  • freshbooks_list_estimates
  • freshbooks_list_expense_categories
  • freshbooks_list_expenses
  • freshbooks_list_invoices
  • freshbooks_list_items
Show 5 more tools
  • freshbooks_list_payments
  • freshbooks_list_projects
  • freshbooks_list_records
  • freshbooks_list_services
  • freshbooks_list_time_entries

Delete 11 · Delete, drop, revoke or wipe things.

  • freshbooks_accept_estimate
  • freshbooks_auth_exchange
  • freshbooks_create_client
  • freshbooks_create_expense
  • freshbooks_create_invoice
  • freshbooks_create_project
  • freshbooks_create_time_entry
  • freshbooks_record_payment
  • freshbooks_send_estimate
  • freshbooks_update_estimate
  • freshbooks_update_invoice

Secrets and settings it asks for

Secrets: values you paste in that let it act as you.

  • FRESHBOOKS_CLIENT_SECRET
  • FRESHBOOKS_REFRESH_TOKEN
  • FRESHBOOKS_TOKEN_STORE

Other settings (environment variables or headers).

  • FRESHBOOKS_ACCOUNT_ID
  • FRESHBOOKS_BUSINESS_ID
  • FRESHBOOKS_CLIENT_ID
  • FRESHBOOKS_REDIRECT_URI
  • FRESHBOOKS_REQUEST_TIMEOUT_MS

Tools (28)

Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].

  • freshbooks_accept_estimatecan change or delete data

    Accept an estimate on behalf of the account, by sending FreshBooks' action_accept on the estimate (PUT estimates/estimates/{id} with {"estimate": {"action_accept": true}}). Acceptance is not reversible through the API — there is no un-accept action. Asks the user to confirm first: a confirmation prompt where the client supports one; otherwise the first call returns a preview and a confirmToken and makes no network call, and only a repeat call with that token proceeds (see MCP_CONFIRM_MODE). Idempotent: an estimate already accepted or invoiced is returned unchanged with changed: false and no wr…

  • freshbooks_auth_exchangecan change or delete data

    Complete FreshBooks authorization. Local sessions save the credentials privately and return only status; hosted sessions return the refresh token to the host's credential-capture flow. Pass the whole redirect URL: its state must match a consent URL freshbooks_auth_url issued, so a bare code is refused. The code is SINGLE-USE — if this fails, authorize again rather than retrying it.

  • freshbooks_auth_urlread-only

    Get the FreshBooks consent URL to authorize this connection. Open it, approve, and you'll land on the redirect URL — pass that whole URL to freshbooks_auth_exchange (its state parameter binds the approval to this server; valid 15 minutes, single-use). Read-only; contacts nothing.

  • freshbooks_create_clientcan change or delete data

    Create a client (customer) in FreshBooks. Asks the user to confirm first: a confirmation prompt where the client supports one; otherwise the first call returns a preview and a confirmToken and makes no network call, and only a repeat call with that token proceeds (see MCP_CONFIRM_MODE).

  • freshbooks_create_expensecan change or delete data

    Record an expense. Asks the user to confirm first: a confirmation prompt where the client supports one; otherwise the first call returns a preview and a confirmToken and makes no network call, and only a repeat call with that token proceeds (see MCP_CONFIRM_MODE).

  • freshbooks_create_invoicecan change or delete data

    Create an invoice for a client. Created invoices start as drafts. Asks the user to confirm first: a confirmation prompt where the client supports one; otherwise the first call returns a preview and a confirmToken and makes no network call, and only a repeat call with that token proceeds (see MCP_CONFIRM_MODE).

  • freshbooks_create_projectcan change or delete data

    Create a project. Asks the user to confirm first: a confirmation prompt where the client supports one; otherwise the first call returns a preview and a confirmToken and makes no network call, and only a repeat call with that token proceeds (see MCP_CONFIRM_MODE).

  • freshbooks_create_time_entrycan change or delete data

    Log a time entry. Duration is in SECONDS. Asks the user to confirm first: a confirmation prompt where the client supports one; otherwise the first call returns a preview and a confirmToken and makes no network call, and only a repeat call with that token proceeds (see MCP_CONFIRM_MODE).

  • freshbooks_decline_estimateread-only

    NOT SUPPORTED by the FreshBooks API — this tool always fails, and never sends a request. FreshBooks models no declined state for estimates: the status set is draft / sent / viewed / replied / accepted / invoiced, there is no action_deny or action_decline counterpart to action_accept in FreshBooks' own API collection, and there is no estimate.decline webhook event. The tool exists so this answers with the reason instead of a plausible-looking write that changes nothing. Call it to get the alternatives.

  • freshbooks_get_expenseread-only

    Get a single expense by its numeric id.

  • freshbooks_get_identityread-only

    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. When the identity belongs to several businesses, `businesses` lists them all; unless FRESHBOOKS_BUSINESS_ID picks one, writes are refused.

  • freshbooks_get_projectread-only

    Get a single project by its numeric id.

  • freshbooks_get_recordread-only

    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.

  • freshbooks_list_clientsread-only

    List clients for the authenticated FreshBooks account. Supports pagination and raw FreshBooks filter params. Returns items plus page/pages/total.

  • freshbooks_list_estimatesread-only

    List estimates for the authenticated FreshBooks account. Supports pagination and raw FreshBooks filter params. Returns items plus page/pages/total.

Show 13 more tools
  • freshbooks_list_expense_categoriesread-only

    List expense categories, which supply the categoryid used when creating an expense.

  • freshbooks_list_expensesread-only

    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_list_invoicesread-only

    List invoices for the authenticated FreshBooks account. Supports pagination and raw FreshBooks filter params. Returns items plus page/pages/total.

  • freshbooks_list_itemsread-only

    List items for the authenticated FreshBooks account. Supports pagination and raw FreshBooks filter params. Returns items plus page/pages/total.

  • freshbooks_list_paymentsread-only

    List payments for the authenticated FreshBooks account. Supports pagination and raw FreshBooks filter params. Returns items plus page/pages/total.

  • freshbooks_list_projectsread-only

    List projects for the business. Uses businessId (not accountId) and works even when the business has no accounting account.

  • freshbooks_list_recordsread-only

    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_list_servicesread-only

    List services (the billable work types available to projects and time entries).

  • freshbooks_list_time_entriesread-only

    List tracked time entries for the business. The response envelope also carries total_logged and total_unbilled alongside the rows.

  • freshbooks_record_paymentcan change or delete data

    Record a payment against an invoice. Asks the user to confirm first: a confirmation prompt where the client supports one; otherwise the first call returns a preview and a confirmToken and makes no network call, and only a repeat call with that token proceeds (see MCP_CONFIRM_MODE).

  • freshbooks_send_estimatecan change or delete data

    Email an estimate to the client, by sending FreshBooks' action_email on the estimate (PUT estimates/estimates/{id} with {"estimate": {"action_email": true, …}}). This puts mail in a client's inbox. Asks the user to confirm first: a confirmation prompt where the client supports one; otherwise the first call returns a preview and a confirmToken and makes no network call, and only a repeat call with that token proceeds (see MCP_CONFIRM_MODE). Omitting email_recipients lets FreshBooks use the client's own address. email_recipients must be addresses on the estimate's client record unless allow_non_…

  • freshbooks_update_estimatecan change or delete data

    Update an existing estimate. Only the supplied fields are sent; anything omitted is left alone. Asks the user to confirm first: a confirmation prompt where the client supports one; otherwise the first call returns a preview and a confirmToken and makes no network call, and only a repeat call with that token proceeds (see MCP_CONFIRM_MODE). Supplying lines REPLACES the whole line set — include each existing line's lineid to keep it. Returns the re-fetched estimate.

  • freshbooks_update_invoicecan change or delete data

    Update an existing invoice. Only the supplied fields are sent. Asks the user to confirm first: a confirmation prompt where the client supports one; otherwise the first call returns a preview and a confirmToken and makes no network call, and only a repeat call with that token proceeds (see MCP_CONFIRM_MODE). Note that changing an invoice out of draft can email it to the client. email_recipients in fields must be addresses on the invoice's client record unless allow_non_client_recipients is set, which is only for addresses the user named themselves.

Signals

Stars
0
Forks
1
Open issues
0
Weekly downloads
201
Last commit
Oct 21, 2026 (8 days ago)
Last release
Oct 16, 2026 (14 days ago)
Last package publish
Oct 16, 2026 (14 days ago)

From GitHub (fetched Oct 24, 2026) and the package registry.

Details

Registry name
io.github.chrischall/freshbooks-mcp
Version
1.2.2
Auth
API key
License
MIT
First seen
Oct 24, 2026
Last checked
Oct 25, 2026

More from chrischall

Cite this page

Freshbooks MCP. Agent Mart. https://agentmart.dev/connectors/chrischall-freshbooks-mcp (last updated 2026-10-25)