100+ integrations are ready to connect to your AI.Connect your first MCP

FreshBooks MCP server for your AI

Draft and email invoices, log expenses and time against projects, record payments, and pull an aging or profit-and-loss report straight from the ledger.

PopMCPFreshBooks

Show me every client over 60 days overdue and what they owe

Supported FreshBooks tools

Search every read, write and webhook trigger: clients, invoices, bills, projects, time entries, taxes and the financial reports.

freshbooks_create_bill

Create a bill (money owed to a vendor).

freshbooks_create_bill_vendor

Create a bill vendor (supplier; beta).

freshbooks_list_bill_vendors

List bill vendors (the suppliers bills are owed to; beta resource).

freshbooks_list_bills

List bills (accounts-payable records owed to vendors) for an account.

freshbooks_create_project

Create a project under a business.

freshbooks_list_projects

List all projects for a business.

freshbooks_report_accounts_aging

Classic accounting report (Accounts/AR Aging).

freshbooks_report_balance_sheet

Ledger-based business report.

freshbooks_report_profit_and_loss

Ledger-based business report.

freshbooks_create_payment

Record a new manual payment against an invoice (Accounting API; DOUBLED payments/payments segment).

freshbooks_list_payments

List manual payments recorded against invoices for an account (Accounting API).

freshbooks_create_invoice

Create a new invoice.

freshbooks_email_invoice

Email an invoice to its recipients.

freshbooks_get_invoice

Retrieve a single invoice by id.

freshbooks_list_invoices

List invoices for an account.

freshbooks_mark_invoice_sent

Mark an invoice as sent (transition from draft to sent status).

freshbooks_update_invoice

Update an existing invoice.

freshbooks_create_estimate

Create a new estimate.

freshbooks_create_expense

Create an expense.

freshbooks_list_estimates

List estimates for an account.

freshbooks_list_expense_categories

List expense categories (the sibling resource that supplies categoryid for expenses).

freshbooks_list_expenses

List expenses for an account.

freshbooks_create_client

Create a new client (customer).

freshbooks_get_client

Retrieve a single client by id.

freshbooks_list_clients

List all clients (customers) for the account.

freshbooks_update_client

Update an existing client.

freshbooks_create_item

Create a new billable/catalog item.

freshbooks_create_time_entry

Create a time entry under a business in the TimeTracking API.

freshbooks_list_invoice_profiles

List recurring-invoice profiles (autobills) for an account.

freshbooks_list_items

List billable/catalog items for an account (items stored from invoice lines to speed up future invoicing).

freshbooks_list_taxes

List all tax rates defined on a FreshBooks account.

freshbooks_list_time_entries

List time entries for a business in the TimeTracking API.

freshbooks_get_current_user_me

Get the authenticated user's identity/profile — the canonical bootstrap call to DISCOVER which accounts/businesses the token can access (resolve {accountId} for accounting calls and {businessId} for projects/timetracking/ledger calls).

freshbooks_get_system

Get the system (account-level business/system settings) record for a FreshBooks account.

freshbooks_archive_bill

Archive a bill by PUT-ing the {"bill": {"vis_state": 2}} envelope to the single-bill path.

freshbooks_create_bill_payment

Create a bill payment recording money paid against a bill (beta).

freshbooks_delete_bill

Soft-delete a bill.

freshbooks_delete_bill_payment

Soft-delete a bill payment (beta).

freshbooks_delete_bill_vendor

Soft-delete a bill vendor (beta).

freshbooks_get_bill

Retrieve a single bill by id.

freshbooks_get_bill_payment

Retrieve a single bill payment by id (beta).

freshbooks_get_bill_vendor

Retrieve a single bill vendor by id (beta).

freshbooks_list_bill_payments

List bill payments (payments applied to bills; beta resource).

freshbooks_update_bill

Update an existing bill.

freshbooks_update_bill_payment

Update an existing bill payment (beta).

freshbooks_update_bill_vendor

Update an existing bill vendor (beta).

freshbooks_create_service

Create a service for a business.

freshbooks_create_service_rate

Set/add the hourly rate for a service.

freshbooks_delete_project

Delete a project permanently.

freshbooks_get_project

Get a single project by id.

freshbooks_get_service

Get a single service by id.

freshbooks_get_service_rate

Get the hourly rate for a service.

freshbooks_list_services

List services for a business.

freshbooks_report_cash_flow

Cash Flow report for the connected business.

freshbooks_report_expense_details

Ledger-based business report (Expense Details / Expense Report).

freshbooks_report_general_ledger

Ledger-based business report.

freshbooks_report_invoice_details

Classic accounting report.

freshbooks_report_manual_journal_entry

Ledger-based business report.

freshbooks_report_payments_collected

Classic accounting report.

freshbooks_report_tax_summary

Classic accounting report.

freshbooks_report_trial_balance

Ledger-based business report.

freshbooks_update_project

Update an existing project.

freshbooks_update_service_rate

Update the hourly rate for a service.

freshbooks_add_invoice_payment_option

Enable an online payment option (gateway) on a specific invoice so the client can pay online.

freshbooks_create_journal_entry

CLASSIC accounting API: create an adjustment journal entry.

freshbooks_create_ledger_account

MODERN businesses API: create a new account in the chart of accounts (a ledger account).

freshbooks_create_manual_journal_entry

MODERN 2023-09-25 businesses API (send header x-api-version: 2023-09-25): create an adjustment/manual journal entry.

freshbooks_delete_gateway

Disconnect/remove a payment gateway from an account (Accounting API).

freshbooks_delete_payment

Soft-delete a manual payment.

freshbooks_get_account_entry_details_report

MODERN 2023-09-25 businesses API: general-ledger detail for a single account.

freshbooks_get_chart_of_accounts_report

CLASSIC accounting API: Chart of Accounts report.

freshbooks_get_default_payment_options

Get the account's DEFAULT online payment options for new invoices.

freshbooks_get_invoice_payment_options

Retrieve the online payment options currently configured on a specific invoice.

freshbooks_get_ledger_account

MODERN businesses API: get a single chart-of-accounts / ledger account by UUID.

freshbooks_get_payment

Retrieve a single manual payment by id (Accounting API; note the DOUBLED payments/payments segment).

freshbooks_list_gateways

List the payment gateways connected to an account (Accounting API).

freshbooks_list_journal_entry_accounts

CLASSIC accounting API: get the chart of accounts as the list of journal entry accounts (ledger accounts).

freshbooks_list_journal_entry_details

CLASSIC accounting API: list the individual ledger line items (journal entry details) for the account.

freshbooks_list_manual_journal_entries

MODERN 2023-09-25 businesses API (header x-api-version: 2023-09-25): list manual/adjustment journal entries.

freshbooks_report_chart_of_accounts

MODERN 2023-09-25 businesses API: Chart of Accounts report (business-uuid variant).

freshbooks_update_payment

Update an existing manual payment (Accounting API; DOUBLED payments/payments segment).

freshbooks_delete_invoice

Hard-delete an invoice via HTTP DELETE on the invoice path.

freshbooks_soft_delete_invoice

Soft-delete (archive) an invoice by setting vis_state=1 via the standard invoice PUT update.

freshbooks_delete_estimate

Soft-delete an estimate.

freshbooks_delete_expense

Soft-delete an expense.

freshbooks_get_estimate

Retrieve a single estimate by id.

freshbooks_get_expense

Retrieve a single expense by id.

freshbooks_get_expense_category

Retrieve a single expense category by id.

freshbooks_mark_estimate_as_sent

Mark an estimate as sent without emailing it (e.g.

freshbooks_send_estimate_by_email

Email an estimate to the client.

freshbooks_update_estimate

Update an existing estimate (also the mechanism for sending and soft-deleting).

freshbooks_update_expense

Update an existing expense.

freshbooks_create_webhook_callback

Register a new webhook callback.

freshbooks_delete_client

Soft-delete (archive) a client.

freshbooks_delete_webhook_callback

Permanently delete (unregister) a webhook callback by id so FreshBooks stops POSTing its events.

freshbooks_get_webhook_callback

Retrieve a single webhook callback by its id.

freshbooks_list_webhook_callbacks

List all webhook (event) callbacks registered on a FreshBooks account.

freshbooks_resend_webhook_callback_verification

Re-trigger delivery of a fresh verification code for a still-unverified webhook callback.

freshbooks_update_client_contacts

Manage a client's secondary contacts.

freshbooks_verify_webhook_callback

Confirm a webhook callback by echoing back the verifier token FreshBooks delivered to the callback uri when it was created (or re-sent).

freshbooks_create_credit_note

Create a new credit note (credit) for a client.

freshbooks_create_invoice_profile

Create a recurring-invoice profile (autobill).

freshbooks_create_other_income

Create a new Other Income entry.

freshbooks_create_task

Create a billable task.

freshbooks_create_tax

Create a new tax rate.

freshbooks_delete_credit_note

Soft-delete a credit note (credit).

freshbooks_delete_invoice_profile

Soft-delete (archive) a recurring-invoice profile.

freshbooks_delete_item

Soft-delete a billable/catalog item.

freshbooks_delete_other_income

Delete an Other Income entry by income id.

freshbooks_delete_task

Soft-delete a billable task.

freshbooks_delete_tax

Permanently delete a tax rate by its numeric id from the doubled taxes/taxes path.

freshbooks_delete_time_entry

Delete a time entry in the TimeTracking API.

freshbooks_get_credit_note

Retrieve a single credit note (credit) by its credit id.

freshbooks_get_invoice_profile

Retrieve a single recurring-invoice profile by id.

freshbooks_get_item

Fetch a single billable/catalog item by id.

freshbooks_get_other_income

Retrieve a single Other Income entry by its income id.

freshbooks_get_task

Retrieve a single billable task by id.

freshbooks_get_tax

Retrieve a single tax rate by its numeric id from the taxes/taxes resource (note the doubled segment).

freshbooks_get_time_entry

Retrieve a single time entry by id from the TimeTracking API.

freshbooks_list_credit_notes

List all credit notes (credits) for an account.

freshbooks_list_other_incomes

List all Other Income entries for an account.

freshbooks_list_tasks

List billable tasks (reusable billable line items applied to invoices, distinct from project Services) for an account.

freshbooks_update_credit_note

Update an existing credit note (credit) by credit id.

freshbooks_update_invoice_profile

Update an existing recurring-invoice profile.

freshbooks_update_item

Update an existing billable/catalog item by id.

freshbooks_update_other_income

Update an existing Other Income entry by income id.

freshbooks_update_task

Update an existing billable task.

freshbooks_update_tax

Update an existing tax rate by its numeric id (doubled taxes/taxes path).

freshbooks_update_time_entry

Update an existing time entry in the TimeTracking API.

freshbooks_get_staff

Get a single staff (team member) by id.

freshbooks_get_team_member

Retrieve a single team member of the connected business by UUID.

freshbooks_list_staff

List staff (team members) for a FreshBooks account.

freshbooks_list_team_members

List the team members of the connected business.

Connect FreshBooks to your AI

Authorize once, then an endpoint your client signs into. Nothing to deploy, and nothing to install on the FreshBooks side.

Paste the Client ID and Client secret from your own FreshBooks OAuth app, then authorize in your browser. No password is shared, and the connection is locked to the single business you approve.

Auth typeyour-freshbooks-value
Client IDyour app's Client ID
Client secret••••••••••••3f7a
Authorize PopMCP on FreshBooksAuthorize

Then just ask for the work

  • Show me every client over 60 days overdue and what they owe

    • report_accounts_aging
    • list_invoices
    • list_clients
  • Mark every draft invoice from last week as sent and email it to the client

    • list_invoices
    • mark_invoice_sent
    • email_invoice
  • Add Northwind as a client and draft their first invoice for the March retainer

    • create_client
    • list_items
    • create_invoice
  • Compare unbilled time on the Q3 rebuild project with what we've invoiced

    • list_projects
    • list_time_entries
    • list_invoices

Use FreshBooks from the assistant you already open

One hosted endpoint, registered once per client. The same tools and the same permissions, whichever window the request comes from.

Claude DesktopCustom connector

Add the PopMCP URL under Settings → Connectors and the tools appear in every chat.

Claude WebCustom connector

The same endpoint, registered in the browser. Nothing to install on the machine you are working from.

ChatGPTCustom connector

Register PopMCP as a custom connector, then let ChatGPT read and update the account.

CodexDesktop & CLI

Wire the endpoint into Codex or the Codex CLI when a task needs live business context, not a fixture.

OpenCodeCoding agent

Register the remote MCP server in OpenCode's config for terminal-first and scripted agent runs.

ZCodeDesktop app

Add PopMCP as an MCP server in Z.ai's desktop app and work the account from the same window.

FreshBooks MCP server questions

What teams ask before putting FreshBooks behind an AI client.

Do I need my own FreshBooks OAuth app to connect?

Yes. The connect form asks for the Client ID and Client secret of a FreshBooks OAuth app you own, alongside an optional Auth type field. You then authorize once in your browser, so no FreshBooks password is ever shared with PopMCP, and the resulting connection is tied to one business.

What parts of my FreshBooks account can the agent reach?

Reads and writes run across the full API: clients, invoices, recurring profiles, estimates, expenses, items, other income, payments, credit notes, taxes, bills and vendors, journal entries, the chart of accounts, staff and the financial reports, plus Projects, services and time tracking. Webhook callbacks are covered too, so invoice, payment, estimate, expense and client events can start a workflow. Anything your OAuth authorization does not cover stays out of reach.

Why does the agent look up my identity before doing real work?

FreshBooks uses two different identifiers, and mixing them up is the usual reason a call fails. get_current_user_me is the bootstrap call that discovers which accounts and businesses the token can access, resolving the account id for accounting calls such as invoices and payments, and the business id for Projects, time tracking and ledger calls. Expect the agent to make that call first in a fresh session.

Are bills, bill vendors and bill payments production-ready?

Bills is the largest module here, with 16 operations covering list, retrieve, create, archive and soft-delete. Several of the surrounding resources are marked beta, including create_bill_vendor, list_bill_vendors, delete_bill_vendor, create_bill_payment and delete_bill_payment. They work, but treat them as beta behavior rather than settled API surface.

Can the agent permanently destroy accounting records?

The bill deletes are soft-deletes, both delete_bill and delete_bill_payment, and archive_bill only flips a bill's visibility state. The riskier moves are usually the ones that reach a client or a ledger, such as email_invoice, mark_invoice_sent or create_payment. Set the connection to read-only, or keep approval-required-for-writes on, so those pause for a human.

How many FreshBooks tools land in my AI client?

The integration covers 133 operations across 20 API modules, split roughly evenly at 66 read and 67 write. Only 34 load by default to keep your client's tool list manageable; the rest stay searchable and can be pulled in with the full-catalog toggle. There are also 25 triggers PopMCP can watch.

Do I have to run or host the FreshBooks MCP server myself?

No. PopMCP hosts it and gives you a Streamable HTTP MCP URL. There is nothing to deploy, no callback URL to register, and no infrastructure to keep running or patch.

Which AI clients can use this MCP server?

Any client that supports a remote Streamable HTTP MCP server — Claude Desktop, Claude Web, ChatGPT custom connectors, Codex and the Codex CLI, OpenCode and Z.ai's ZCode, as well as editors such as Cursor, Windsurf and Zed. Your client signs in to PopMCP with OAuth; the provider credential never leaves the server.

Why do only 34 of the 133 tools load by default?

Loading 133 tool definitions into every conversation burns context before the work starts. PopMCP loads a curated 34-tool set covering the everyday workflows and keeps the rest searchable, so your AI pulls a specialist tool only when a task needs it. You can switch a connection to the full catalog at any time.

What is the difference between a tool and a trigger?

A tool is something your AI calls — there are 133 here. A trigger is something PopMCP watches for you: 25 FreshBooks events that can start work on the PopMCP side. Triggers never enter your AI client's context, and none of them ask you to paste a callback URL into FreshBooks.

Connect FreshBooks to your AI in minutes

Launch a hosted MCP endpoint for FreshBooks, keep tool access under control, and start testing real workflow prompts right away.

Connect your first MCP