Skip to main content

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

Project description

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mcp_freshbooks-0.1.0.tar.gz (10.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mcp_freshbooks-0.1.0-py3-none-any.whl (12.4 kB view details)

Uploaded Python 3

File details

Details for the file mcp_freshbooks-0.1.0.tar.gz.

File metadata

  • Download URL: mcp_freshbooks-0.1.0.tar.gz
  • Upload date:
  • Size: 10.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for mcp_freshbooks-0.1.0.tar.gz
Algorithm Hash digest
SHA256 9c460d58df7635e1622c81e1caa6750ec43100f53f71c23e6c6cb0555c54c4db
MD5 58af296e5b610becbdac614fabeaeb12
BLAKE2b-256 985be585a0b09b9cd7ce838c04dd1672a3177cfc7f9c8053abb785b9ae9f6e2e

See more details on using hashes here.

File details

Details for the file mcp_freshbooks-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: mcp_freshbooks-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 12.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for mcp_freshbooks-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c242dcdb1f2b8fd3504c4de71916242e3c4549f01d2d2c99c270383b92ee1bd1
MD5 f7f749c3c9484f5373ee5143d19a52e4
BLAKE2b-256 242f0934f0c13a15be0e8b7002fee5c0278b5a581011c2d6b8d293c64ab6b1a9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page