FreshBooks MCP Server

Local setup required. This server has to be cloned and prepared on your machine before you register it in Claude Code.
1

Set the server up locally

Run this once to clone and prepare the server before adding it to Claude Code.

Run in terminal
pip install mcp-freshbooks
2

Register it in Claude Code

After the local setup is done, run this command to point Claude Code at the built server.

Run in terminal
claude mcp add -e "FRESHBOOKS_CLIENT_ID=${FRESHBOOKS_CLIENT_ID}" -e "FRESHBOOKS_CLIENT_SECRET=${FRESHBOOKS_CLIENT_SECRET}" -e "FRESHBOOKS_REDIRECT_URI=${FRESHBOOKS_REDIRECT_URI}" mcp-freshbooks -- node "<FULL_PATH_TO_MCP_FRESHBOOKS>/dist/index.js"

Replace <FULL_PATH_TO_MCP_FRESHBOOKS>/dist/index.js with the actual folder you prepared in step 1.

Required:FRESHBOOKS_CLIENT_IDFRESHBOOKS_CLIENT_SECRETFRESHBOOKS_REDIRECT_URI
README.md

Production-grade MCP server for FreshBooks accounting workflows

mcp-freshbooks

Production-grade MCP server for FreshBooks — 25 tools for invoices, clients, expenses, payments, time tracking, projects, estimates, and financial reports.

Features

  • 25 tools covering the full FreshBooks accounting workflow
  • OAuth2 authentication with automatic token refresh
  • Clean output — summarized lists, formatted details
  • Production-grade error handling and rate limit awareness
  • Zero cost — uses FreshBooks free developer program

Tools

Category Tools Description
Auth freshbooks_authenticate, freshbooks_authenticate_with_code, freshbooks_whoami OAuth2 flow + identity
Invoices list_invoices, get_invoice, create_invoice, update_invoice, send_invoice, delete_invoice Full invoice lifecycle
Clients list_clients, get_client, create_client, update_client Client management
Expenses list_expenses, get_expense, create_expense Expense tracking
Payments list_payments, create_payment Payment recording
Time Tracking list_time_entries, create_time_entry Time entry management
Projects list_projects, create_project Project management
Estimates list_estimates, create_estimate Estimate creation
Reports get_report Profit & loss, tax summary, payments collected

Quick Start

1. Install

pip install mcp-freshbooks

Or from source:

git clone https://github.com/AlexlaGuardia/mcp-freshbooks.git
cd mcp-freshbooks
pip install .

2. Get FreshBooks API Credentials

  1. Sign up at freshbooks.com/pages/developer-signup
  2. Create an OAuth app in the developer portal
  3. Set redirect URI to https://localhost:8555/callback
  4. Copy your Client ID and Client Secret

3. Configure

export FRESHBOOKS_CLIENT_ID=your_client_id
export FRESHBOOKS_CLIENT_SECRET=your_client_secret
export FRESHBOOKS_REDIRECT_URI=https://localhost:8555/callback

4. Add to Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "freshbooks": {
      "command": "mcp-freshbooks",
      "env": {
        "FRESHBOOKS_CLIENT_ID": "your_client_id",
        "FRESHBOOKS_CLIENT_SECRET": "your_client_secret",
        "FRESHBOOKS_REDIRECT_URI": "https://localhost:8555/callback"
      }
    }
  }
}

5. Authenticate

Use the freshbooks_authenticate tool on first use. It will give you a URL to open in your browser. After authorizing, tokens are saved to ~/.mcp-freshbooks/tokens.json and auto-refresh.

Usage Examples

List overdue invoices:

Use list_invoices with status "outstanding"

Create and send an invoice:

Create an invoice for client 12345 with a line item for "Web Development" at $1,500, then send it

Check profitability:

Get the profit and loss report for Q1 2026

Track time:

Create a 2-hour time entry for project 789 with note "API integration work"

Architecture

src/mcp_freshbooks/
├── server.py   # MCP server with 25 tool definitions
├── client.py   # FreshBooks API client (httpx async)
└── auth.py     # OAuth2 flow + token persistence

The server uses the MCP Python SDK with FastMCP for clean tool registration. All API calls go through the async client with automatic token refresh.

Requirements

  • Python 3.10+
  • FreshBooks account (free trial works for development)
  • FreshBooks OAuth app credentials

License

MIT

Tools (8)

freshbooks_authenticateInitiates the OAuth2 authentication flow.
list_invoicesLists invoices from the account.
get_invoiceRetrieves details for a specific invoice.
create_invoiceCreates a new invoice.
list_clientsLists all clients.
list_expensesLists all recorded expenses.
list_time_entriesLists time tracking entries.
get_reportGenerates financial reports like profit and loss.

Environment Variables

FRESHBOOKS_CLIENT_IDrequiredOAuth2 Client ID from FreshBooks developer portal
FRESHBOOKS_CLIENT_SECRETrequiredOAuth2 Client Secret from FreshBooks developer portal
FRESHBOOKS_REDIRECT_URIrequiredRedirect URI configured in the developer portal

Configuration

claude_desktop_config.json
{"mcpServers": {"freshbooks": {"command": "mcp-freshbooks", "env": {"FRESHBOOKS_CLIENT_ID": "your_client_id", "FRESHBOOKS_CLIENT_SECRET": "your_client_secret", "FRESHBOOKS_REDIRECT_URI": "https://localhost:8555/callback"}}}}

Try it

List all outstanding invoices for this month.
Create a new invoice for client 12345 with a line item for consulting services at $500.
Get the profit and loss report for the last quarter.
Create a 2-hour time entry for project 789 with the note 'API integration work'.

Frequently Asked Questions

What are the key features of FreshBooks MCP Server?

25 tools covering the full FreshBooks accounting workflow. OAuth2 authentication with automatic token refresh. Production-grade error handling and rate limit awareness. Summarized and formatted output for financial data.

What can I use FreshBooks MCP Server for?

Automating invoice generation and delivery for freelance work. Quickly querying financial health via profit and loss reports. Streamlining time tracking entries directly from a chat interface. Managing client contact information and project status updates.

How do I install FreshBooks MCP Server?

Install FreshBooks MCP Server by running: pip install mcp-freshbooks

What MCP clients work with FreshBooks MCP Server?

FreshBooks MCP Server works with any MCP-compatible client including Claude Desktop, Claude Code, Cursor, and other editors with MCP support.

Turn this server into reusable context

Keep FreshBooks MCP Server docs, env vars, and workflow notes in Conare so your agent carries them across sessions.

Need the old visual installer? Open Conare IDE.
Open Conare