mcp-freshbooks
The mcp-freshbooks server is a production-grade MCP server providing comprehensive FreshBooks accounting integration through 53 tools across the following areas:
๐ Authentication & Identity
OAuth2 authentication flow with automatic token refresh
Retrieve current user identity, account ID, and business info
๐งพ Invoice Management
Create, list (with filters by status/customer), view, update, send, and delete invoices
Manage recurring invoices
๐ฅ Client Management
Full CRUD operations on client records with search by name/organization
Get summarized client information
๐ Estimates
Create, list, retrieve, update, and send estimates
Convert estimates directly into invoices
๐ธ Expense Tracking
Create, list, retrieve, update, and delete expenses with category, vendor, and notes
List expense categories
๐ณ Payments
List all payments and record new payments against invoices
Supports Check, Credit, Cash, Bank Transfer, Credit Card, PayPal, ACH, and more
โฑ๏ธ Time Tracking
Create, list, retrieve, update, and delete time entries with project/client association and billable flag
Identify unbilled time for invoicing
๐ Project Management
Create, list, retrieve, and update projects with billing method (hourly/fixed), budget, and due date
๐ Financial Reports
Generate Profit & Loss, Tax Summary, Payments Collected, Accounts Aging, and Balance Sheet reports with optional date ranges
โ๏ธ Smart Workflow Automation
Convert estimates to invoices, find overdue invoices, identify unbilled time, and get client summaries
Manage items/inventory and tax rates
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
Category | Tools | Count |
Auth |
| 3 |
Invoices |
| 6 |
Recurring |
| 3 |
Clients |
| 5 |
Estimates |
| 5 |
Expenses |
| 5 |
Payments |
| 3 |
Time Tracking |
| 5 |
Projects |
| 4 |
Reports |
| 5 |
Items |
| 2 |
Categories |
| 1 |
Taxes |
| 1 |
Workflows |
| 5 |
Quick Start
1. Install
pip install mcp-freshbooksOr from source:
git clone https://github.com/AlexlaGuardia/mcp-freshbooks.git
cd mcp-freshbooks
pip install .2. Get FreshBooks API Credentials
Sign up at freshbooks.com/pages/developer-signup
Create an OAuth app in the developer portal
Set redirect URI to
https://localhost:8555/callbackCopy 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/callback4. 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 outstandingConvert a proposal to an invoice:
Use convert_estimate_to_invoice to turn estimate 456 into a ready-to-send invoiceFind unbilled work:
Use get_unbilled_time to find time entries not yet on any invoiceCheck profitability:
Get the profit and loss report for Q1 2026Track 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 persistenceThe 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
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/AlexlaGuardia/MCP-Freshbooks'
If you have feedback or need assistance with the MCP directory API, please join our Discord server