FreshBooks MCP Server
This server connects to FreshBooks accounting, providing 92 tools for comprehensive financial and project management via AI clients. Key capabilities include:
Authentication Management: Check status, get OAuth authorization URL, exchange authorization codes, and revoke tokens.
Invoices (6 tools): List, retrieve, create, update, delete, and generate shareable payment links.
Clients (5 tools): List, retrieve, create, update, and delete client records.
Time Tracking (9 tools): List, retrieve, create, update, and delete time entries; manage a running timer (start, stop, discard).
Projects (5 tools): List, retrieve, create, update, and delete projects.
Expenses (5 tools): List, retrieve, create, update, and delete expenses.
Payments (5 tools): List, retrieve, record, update, and delete invoice payments.
Bills (10 tools): List, retrieve, create, update, delete, and archive bills; manage bill payments (list, retrieve, record, update, delete).
Vendors (5 tools): List, retrieve, create, update, and delete vendors.
Reports (3 read-only tools): Profit & loss, payments collected, and tax summary.
Additional Functionality: Credit notes, expense categories, items, journal entries, other income, payment options, services, tasks, user information, and webhooks (callbacks).
41 tools are read-only; write operations include a confirmation step. The server can be used hosted or self-hosted and supports multiple MCP clients (Claude, ChatGPT, Cursor, etc.).
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@FreshBooks MCP Servercreate an invoice for Acme Corp for $1,500"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
FreshBooks MCP by Good Samaritan Software
Manage your FreshBooks in plain English from Claude or ChatGPT. FreshBooks MCP is a fully hosted service — no local install, no API keys to manage, one OAuth sign-in to your FreshBooks account. 41 of the 92 tools are read-only by default; write operations surface a confirmation step in your AI client before any data changes.
Get started → · Documentation · Pricing — from $29/mo
Currently available in the United States. International waitlist available at the link above.
What you can do
92 tools spanning invoices, clients, expenses, time tracking, projects, payments, vendors, bills, and reports — with 41 read-only tools for safe lookups and 51 write tools for full account management.
Example prompts:
"Show me all unpaid invoices over $500"
"Create an invoice for Acme Corp for $1,500 due in 30 days"
"What's my profit and loss for this year?"
"Log 2 hours on the Website Redesign project"
"Start a timer for this client meeting"
"Record a $45 office supplies expense"
"List all vendors I've paid this quarter"
Related MCP server: mcp-freshbooks
Quick Start — Hosted Service (Recommended)
The fastest path: subscribe, connect FreshBooks, paste your config into your AI client.
Claude (Desktop, Code, Web)
Go to freshbooks.goodsamsoftware.com, create an account, and connect your FreshBooks account. Copy your API key from the dashboard.
Add to your Claude Desktop config (
claude_desktop_config.json) or Claude Code project config (.mcp.json):
{
"mcpServers": {
"freshbooks": {
"command": "npx",
"args": ["mcp-remote", "https://freshbooks.goodsamsoftware.com/api/mcp", "--header", "Authorization:Bearer YOUR_API_KEY"]
}
}
}ChatGPT
In ChatGPT, go to Settings → Connectors → Add connector.
Enter the MCP server URL:
https://freshbooks.goodsamsoftware.com/api/mcpComplete the OAuth flow to connect your FreshBooks account.
Other MCP Clients (Cursor, Windsurf, Continue, Cline, etc.)
Use the same mcp-remote configuration shown above, substituting your client's config location.
Available Tools (92 total)
Invoices (6 tools)
Tool | Read-only | Description |
| ✓ | List invoices with filters |
| ✓ | Get invoice by ID |
| ✓ | Get shareable payment link |
| Create invoice | |
| Update invoice | |
| Delete invoice |
Clients (5 tools)
Tool | Read-only | Description |
| ✓ | List clients |
| ✓ | Get client by ID |
| Create client | |
| Update client | |
| Delete client |
Time Tracking (9 tools)
Tool | Read-only | Description |
| ✓ | List time entries with filters |
| ✓ | Get time entry by ID |
| ✓ | Get running timer |
| Create time entry | |
| Update time entry | |
| Delete time entry | |
| Start a timer | |
| Stop timer and save entry | |
| Discard running timer |
Projects (5 tools)
Tool | Read-only | Description |
| ✓ | List projects |
| ✓ | Get project by ID |
| Create project | |
| Update project | |
| Delete project |
Expenses (5 tools)
Tool | Read-only | Description |
| ✓ | List expenses |
| ✓ | Get expense by ID |
| Create expense | |
| Update expense | |
| Delete expense |
Payments (5 tools)
Tool | Read-only | Description |
| ✓ | List invoice payments |
| ✓ | Get payment by ID |
| Record payment | |
| Update payment | |
| Delete payment |
Bills (10 tools)
Tool | Read-only | Description |
| ✓ | List bills |
| ✓ | Get bill by ID |
| ✓ | List bill payments |
| ✓ | Get bill payment by ID |
| Create bill | |
| Archive bill | |
| Delete bill | |
| Record bill payment | |
| Update bill payment | |
| Delete bill payment |
Vendors (5 tools)
Tool | Read-only | Description |
| ✓ | List vendors |
| ✓ | Get vendor by ID |
| Create vendor | |
| Update vendor | |
| Delete vendor |
Reports (3 tools — all read-only)
Tool | Description |
| Profit & loss report |
| Payments collected report |
| Tax summary report |
Additional Tools
Category | Count | Read-only | Description |
Credit Notes | 5 | 2 | Create and manage credit notes |
Expense Categories | 2 | 2 | Browse expense categories |
Items | 4 | 2 | Product/service catalog |
Journal Entries | 2 | 1 | Manual accounting entries |
Other Income | 5 | 2 | Non-invoice income tracking |
Payment Options | 3 | 2 | Payment gateway settings |
Services | 5 | 3 | Billable service types incl. rate get/set |
Tasks | 5 | 2 | Project task management |
User | 1 | 1 | Current user info |
Callbacks | 7 | 2 | Webhook management |
Self-Hosted Setup
You can also run the MCP server locally with your own FreshBooks OAuth application. This is optional — most users should use the hosted service above.
Note: FreshBooks requires HTTPS for all OAuth callback URLs, including localhost. See Local HTTPS Setup below.
1. Get FreshBooks Credentials
Create a new application
Set redirect URI to:
https://freshbooks.goodsamsoftware.com/callbackNote your Client ID and Client Secret
2. Install and Configure
npm install @goodsamsoftware/freshbooks-mcpAdd to your Claude Desktop config:
{
"mcpServers": {
"freshbooks": {
"command": "npx",
"args": ["@goodsamsoftware/freshbooks-mcp"],
"env": {
"FRESHBOOKS_CLIENT_ID": "your-client-id",
"FRESHBOOKS_CLIENT_SECRET": "your-client-secret",
"FRESHBOOKS_REDIRECT_URI": "https://freshbooks.goodsamsoftware.com/callback"
}
}
}
}3. Authenticate
Ask Claude: "Connect me to FreshBooks"
Claude will guide you through OAuth. After authorizing, copy the code from the hosted callback page and paste it back to Claude.
Environment Variables
Variable | Required | Description |
| Yes | OAuth client ID |
| Yes | OAuth client secret |
| Yes | OAuth redirect URI |
| No | Path for token storage |
| No | Logging level (debug, info, warn, error) |
Advanced: Local HTTPS Setup
For a local callback URL, set up trusted certificates with mkcert:
Windows: winget install FiloSottile.mkcert
macOS: brew install mkcert
Linux: See mkcert installation
mkcert -install
mkdir certs
mkcert -key-file certs/localhost-key.pem -cert-file certs/localhost.pem localhost 127.0.0.1 ::1Then set your redirect URI to https://localhost:3000/callback in FreshBooks.
Development
npm install # Install dependencies
npm run dev # Run in development mode
npm test # Run tests
npm run test:coverage # Run with coverage report
npm run typecheck # Type check
npm run build # Build for productionTesting
1,613 tests across 93 test files
100% code coverage requirement
Mock factories for all FreshBooks entities
Architecture
src/
├── server.ts # MCP server entry point
├── auth/ # OAuth2 authentication
├── client/ # FreshBooks SDK wrapper
├── errors/ # Error normalization
├── tools/ # MCP tool implementations (22 categories)
│ ├── time-entry/ # Time tracking
│ ├── timer/ # Timer management
│ ├── invoice/ # Invoicing
│ ├── client/ # Client management
│ ├── project/ # Projects
│ ├── expense/ # Expenses
│ ├── bill/ # Bills
│ └── ... # 15 more categories
└── config/ # ConfigurationDocumentation
API Reference - Complete tool documentation
Authentication Setup - OAuth configuration
Examples - Workflow examples
License
MIT License — see LICENSE for details.
Credits
Maintenance
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/Good-Samaritan-Software-LLC/freshbooks-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server