mcpField
M
MCP FreshBooks

MCP FreshBooks

Local
github.com/AlexlaGuardiaFinance3Updated 30w ago

About MCP FreshBooks

MCP FreshBooks connects accounting workflows in FreshBooks to MCP clients. It covers billing, expenses, time tracking, reports, and higher-level workflows, with OAuth2 token refresh.

Key features

  1. 01Manage invoices, clients, estimates, and expenses
  2. 02Record payments, time entries, and projects
  3. 03Generate five financial reports
  4. 04Convert estimates and invoice unbilled time
  5. 05Authenticate with OAuth2 and refresh tokens

Use cases

  1. 01Review overdue invoices and outstanding amounts
  2. 02Turn an estimate into an invoice
  3. 03Find unbilled time and create an invoice
  4. 04Check profit and loss or tax summaries

MCP support

An MCP server that exposes FreshBooks accounting operations and workflow tools to MCP clients.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

No install method listed yet

We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.

Repository

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

mcp-freshbooks

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

Features

  • 53 tools covering the full FreshBooks accounting workflow
  • Smart workflow tools — convert estimates to invoices, invoice unbilled time, find overdue clients, get full client summaries
  • 5 financial reports — P&L, tax summary, accounts aging, balance sheet, payments collected
  • 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

CategoryToolsCount
Authfreshbooks_authenticate, freshbooks_authenticate_with_code, freshbooks_whoami3
Invoiceslist_invoices, get_invoice, create_invoice, update_invoice, send_invoice, delete_invoice6
Recurringlist_recurring_invoices, create_recurring_invoice, update_recurring_invoice3
Clientslist_clients, get_client, create_client, update_client, delete_client5
Estimateslist_estimates, get_estimate, create_estimate, update_estimate, send_estimate5
Expenseslist_expenses, get_expense, create_expense, update_expense, delete_expense5
Paymentslist_payments, get_payment, create_payment3
Time Trackinglist_time_entries, get_time_entry, create_time_entry, update_time_entry, delete_time_entry5
Projectslist_projects, get_project, create_project, update_project4
Reportsget_profit_loss, get_tax_summary, get_accounts_aging, get_balance_sheet, get_payments_collected5
Itemslist_items, create_item2
Categorieslist_expense_categories1
Taxeslist_taxes1
Workflowsconvert_estimate_to_invoice, get_overdue_invoices, get_unbilled_time, invoice_from_time, client_summary5

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

Who owes me money?

Use get_overdue_invoices to see all past-due clients and total outstanding

Convert a proposal to an invoice:

Use convert_estimate_to_invoice to turn estimate 456 into a ready-to-send invoice

Find unbilled work:

Use get_unbilled_time to find time entries not yet on any invoice

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 47 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

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.