Freshbooks MCP Server
by chrischallio.github.chrischall/freshbooks-mcpv1.2.0
FreshBooks invoicing for Claude — invoices, clients, estimates, and payments
context tax
queued
security
queued
cold start
queued
freshness
Active1d ago
Install Freshbooks MCP server
Install in Claude Code
claude mcp add freshbooks-chrischall -e FRESHBOOKS_CLIENT_ID='<freshbooks-client-id>' -e FRESHBOOKS_CLIENT_SECRET='<freshbooks-client-secret>' -e FRESHBOOKS_REFRESH_TOKEN='<freshbooks-refresh-token>' -- npx -y @chrischall/freshbooks-mcpInstall in Cursor
{
"mcpServers": {
"freshbooks-chrischall": {
"command": "npx",
"args": [
"-y",
"@chrischall/freshbooks-mcp"
],
"env": {
"FRESHBOOKS_CLIENT_ID": "<freshbooks-client-id>",
"FRESHBOOKS_CLIENT_SECRET": "<freshbooks-client-secret>",
"FRESHBOOKS_REFRESH_TOKEN": "<freshbooks-refresh-token>"
}
}
}
}Add to ~/.cursor/mcp.json (global) or .cursor/mcp.json (project).
Install in Claude Desktop
{
"mcpServers": {
"freshbooks-chrischall": {
"command": "npx",
"args": [
"-y",
"@chrischall/freshbooks-mcp"
],
"env": {
"FRESHBOOKS_CLIENT_ID": "<freshbooks-client-id>",
"FRESHBOOKS_CLIENT_SECRET": "<freshbooks-client-secret>",
"FRESHBOOKS_REFRESH_TOKEN": "<freshbooks-refresh-token>"
}
}
}
}Settings → Developer → Edit Config (claude_desktop_config.json), then restart.
Install in VS Code
{
"servers": {
"freshbooks-chrischall": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@chrischall/freshbooks-mcp"
],
"env": {
"FRESHBOOKS_CLIENT_ID": "<freshbooks-client-id>",
"FRESHBOOKS_CLIENT_SECRET": "<freshbooks-client-secret>",
"FRESHBOOKS_REFRESH_TOKEN": "<freshbooks-refresh-token>"
}
}
}
}Add to .vscode/mcp.json in your workspace.
Install in Windsurf
{
"mcpServers": {
"freshbooks-chrischall": {
"command": "npx",
"args": [
"-y",
"@chrischall/freshbooks-mcp"
],
"env": {
"FRESHBOOKS_CLIENT_ID": "<freshbooks-client-id>",
"FRESHBOOKS_CLIENT_SECRET": "<freshbooks-client-secret>",
"FRESHBOOKS_REFRESH_TOKEN": "<freshbooks-refresh-token>"
}
}
}
}Add to ~/.codeium/windsurf/mcp_config.json.
Configuration
| Variable | Required | Secret | Description |
|---|---|---|---|
| FRESHBOOKS_CLIENT_ID | yes | — | OAuth client ID from my.freshbooks.com/#/developer |
| FRESHBOOKS_CLIENT_SECRET | yes | yes | OAuth client secret |
| FRESHBOOKS_REFRESH_TOKEN | — | yes | Optional for local sign-in, which saves tokens privately. Required for hosted or legacy environment-token setup. |
| FRESHBOOKS_REDIRECT_URI | — | — | Registered redirect URI; required on refresh calls too (default https://localhost/callback) |
| FRESHBOOKS_TOKEN_STORE | — | — | Path for the rotating-refresh-token store (default ~/.freshbooks-mcp/session.json) |
Freshness
Active — last maintenance signal 1d ago. The newest of the signals below sets the band.
Last commit (default branch)
2026-10-09 · 1d ago · GitHub
Latest release
2026-10-07 · 3d ago · GitHub · v1.2.0
Package published
no data · npm/PyPI
Registry entry updated
2026-10-07 · 3d ago · official registry · v1.2.0
FAQ
›How do I install the Freshbooks MCP server in Claude Code?
Run: claude mcp add freshbooks-chrischall -e FRESHBOOKS_CLIENT_ID='<freshbooks-client-id>' -e FRESHBOOKS_CLIENT_SECRET='<freshbooks-client-secret>' -e FRESHBOOKS_REFRESH_TOKEN='<freshbooks-refresh-token>' -- npx -y @chrischall/freshbooks-mcp. For Cursor, VS Code, Claude Desktop and Windsurf, use the install tabs above.
›Does Freshbooks require an API key?
Yes. It expects FRESHBOOKS_CLIENT_ID, FRESHBOOKS_CLIENT_SECRET, FRESHBOOKS_REFRESH_TOKEN, of which 2 are secrets.
›Can I use Freshbooks as a remote (hosted) MCP server?
No hosted endpoint is published; it runs locally over stdio.
›Is Freshbooks in the official MCP registry?
Yes, as io.github.chrischall/freshbooks-mcp.
Alternatives to Freshbooks
Other ai & llm tools MCP servers.