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 |
| OAuth2 flow + identity |
Invoices |
| Full invoice lifecycle |
Clients |
| Client management |
Expenses |
| Expense tracking |
Payments |
| Payment recording |
Time Tracking |
| Time entry management |
Projects |
| Project management |
Estimates |
| Estimate creation |
Reports |
| Profit & loss, tax summary, payments collected |
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
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 itCheck 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 25 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