NestDaddy

Freshbooks Mcp

io.github.chrischall/freshbooks-mcp · v1.3.1

FreshBooks invoicing for Claude — invoices, clients, estimates, and payments

Connect Runs on your machine

Terminal
claude mcp add freshbooks-mcp -e FRESHBOOKS_CLIENT_ID=<FRESHBOOKS_CLIENT_ID> -e FRESHBOOKS_CLIENT_SECRET=<FRESHBOOKS_CLIENT_SECRET> -e FRESHBOOKS_REFRESH_TOKEN=<FRESHBOOKS_REFRESH_TOKEN> -e FRESHBOOKS_REDIRECT_URI=<FRESHBOOKS_REDIRECT_URI> -e FRESHBOOKS_TOKEN_STORE=<FRESHBOOKS_TOKEN_STORE> -e FRESHBOOKS_BUSINESS_ID=<FRESHBOOKS_BUSINESS_ID> -e FRESHBOOKS_ACCOUNT_ID=<FRESHBOOKS_ACCOUNT_ID> -e FRESHBOOKS_REQUEST_TIMEOUT_MS=<FRESHBOOKS_REQUEST_TIMEOUT_MS> -- npx -y @chrischall/[email protected]
claude_desktop_config.json
{
  "mcpServers": {
    "freshbooks-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@chrischall/[email protected]"
      ],
      "env": {
        "FRESHBOOKS_CLIENT_ID": "<FRESHBOOKS_CLIENT_ID>",
        "FRESHBOOKS_CLIENT_SECRET": "<FRESHBOOKS_CLIENT_SECRET>",
        "FRESHBOOKS_REFRESH_TOKEN": "<FRESHBOOKS_REFRESH_TOKEN>",
        "FRESHBOOKS_REDIRECT_URI": "<FRESHBOOKS_REDIRECT_URI>",
        "FRESHBOOKS_TOKEN_STORE": "<FRESHBOOKS_TOKEN_STORE>",
        "FRESHBOOKS_BUSINESS_ID": "<FRESHBOOKS_BUSINESS_ID>",
        "FRESHBOOKS_ACCOUNT_ID": "<FRESHBOOKS_ACCOUNT_ID>",
        "FRESHBOOKS_REQUEST_TIMEOUT_MS": "<FRESHBOOKS_REQUEST_TIMEOUT_MS>"
      }
    }
  }
}
~/.cursor/mcp.json
{
  "mcpServers": {
    "freshbooks-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@chrischall/[email protected]"
      ],
      "env": {
        "FRESHBOOKS_CLIENT_ID": "<FRESHBOOKS_CLIENT_ID>",
        "FRESHBOOKS_CLIENT_SECRET": "<FRESHBOOKS_CLIENT_SECRET>",
        "FRESHBOOKS_REFRESH_TOKEN": "<FRESHBOOKS_REFRESH_TOKEN>",
        "FRESHBOOKS_REDIRECT_URI": "<FRESHBOOKS_REDIRECT_URI>",
        "FRESHBOOKS_TOKEN_STORE": "<FRESHBOOKS_TOKEN_STORE>",
        "FRESHBOOKS_BUSINESS_ID": "<FRESHBOOKS_BUSINESS_ID>",
        "FRESHBOOKS_ACCOUNT_ID": "<FRESHBOOKS_ACCOUNT_ID>",
        "FRESHBOOKS_REQUEST_TIMEOUT_MS": "<FRESHBOOKS_REQUEST_TIMEOUT_MS>"
      }
    }
  }
}
.vscode/mcp.json
{
  "servers": {
    "freshbooks-mcp": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@chrischall/[email protected]"
      ],
      "env": {
        "FRESHBOOKS_CLIENT_ID": "<FRESHBOOKS_CLIENT_ID>",
        "FRESHBOOKS_CLIENT_SECRET": "<FRESHBOOKS_CLIENT_SECRET>",
        "FRESHBOOKS_REFRESH_TOKEN": "<FRESHBOOKS_REFRESH_TOKEN>",
        "FRESHBOOKS_REDIRECT_URI": "<FRESHBOOKS_REDIRECT_URI>",
        "FRESHBOOKS_TOKEN_STORE": "<FRESHBOOKS_TOKEN_STORE>",
        "FRESHBOOKS_BUSINESS_ID": "<FRESHBOOKS_BUSINESS_ID>",
        "FRESHBOOKS_ACCOUNT_ID": "<FRESHBOOKS_ACCOUNT_ID>",
        "FRESHBOOKS_REQUEST_TIMEOUT_MS": "<FRESHBOOKS_REQUEST_TIMEOUT_MS>"
      }
    }
  }
}

Replace the values in angle brackets with your own. Keys stay on your machine; we never see them.

Tools

This server runs locally, so its tools are listed by your MCP client once it starts.

Environment variables

NameDescription
FRESHBOOKS_CLIENT_ID
Optional
OAuth client ID from my.freshbooks.com/#/developer
FRESHBOOKS_CLIENT_SECRET
Optional, secret
OAuth client secret
FRESHBOOKS_REFRESH_TOKEN
Optional, secret
Optional for local sign-in, which saves tokens privately. Required for hosted or legacy environment-token setup.
FRESHBOOKS_REDIRECT_URI
Optional
Registered redirect URI; required on refresh calls too (default https://localhost)
FRESHBOOKS_TOKEN_STORE
Optional
Path for the rotating-refresh-token store (default ~/.freshbooks-mcp/session.json)
FRESHBOOKS_BUSINESS_ID
Optional
The integer businessId to work in when the authenticated identity belongs to several businesses. Without it, reads use the first business FreshBooks lists and writes are refused rather than landing in the wrong books.
FRESHBOOKS_ACCOUNT_ID
Optional
Overrides the account id normally resolved from /auth/api/v1/users/me. Set it explicitly when the authenticated identity belongs to no business membership and resolution fails, or, together with FRESHBOOKS_BUSINESS_ID, when FreshBooks reports no account_id for the chosen business (accounting writes…
FRESHBOOKS_REQUEST_TIMEOUT_MS
Optional
Per-request deadline for API calls, in milliseconds (default 30000)

Details

Package@chrischall/[email protected] (NPM, stdio)
First published4 Nov 2026
Last updated4 Nov 2026
Registry nameio.github.chrischall/freshbooks-mcp

More finance and crypto servers See all

Listing data from the official MCP registry. Status and tools from NestDaddy's daily check. Browse all MCP servers.