mcp-freshbooks
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
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