freshbooks mcp for VS Code
io.github.chrischall/freshbooks-mcp
FreshBooks invoicing for Claude — invoices, clients, estimates, and payments
client:VS Code
transport:stdio
runtime:npm
Install freshbooks mcp in VS Code
.vscode/mcp.json
{
"inputs": [
{
"type": "promptString",
"id": "freshbooks-client-id",
"description": "FRESHBOOKS_CLIENT_ID",
"password": true
},
{
"type": "promptString",
"id": "freshbooks-client-secret",
"description": "FRESHBOOKS_CLIENT_SECRET",
"password": true
},
{
"type": "promptString",
"id": "freshbooks-refresh-token",
"description": "FRESHBOOKS_REFRESH_TOKEN",
"password": true
},
{
"type": "promptString",
"id": "freshbooks-redirect-uri",
"description": "FRESHBOOKS_REDIRECT_URI",
"password": true
},
{
"type": "promptString",
"id": "freshbooks-token-store",
"description": "FRESHBOOKS_TOKEN_STORE",
"password": true
},
{
"type": "promptString",
"id": "freshbooks-business-id",
"description": "FRESHBOOKS_BUSINESS_ID",
"password": true
},
{
"type": "promptString",
"id": "freshbooks-account-id",
"description": "FRESHBOOKS_ACCOUNT_ID",
"password": true
},
{
"type": "promptString",
"id": "freshbooks-request-timeout-ms",
"description": "FRESHBOOKS_REQUEST_TIMEOUT_MS",
"password": true
}
],
"servers": {
"freshbooks-mcp": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@chrischall/freshbooks-mcp"
],
"env": {
"FRESHBOOKS_CLIENT_ID": "${input:freshbooks-client-id}",
"FRESHBOOKS_CLIENT_SECRET": "${input:freshbooks-client-secret}",
"FRESHBOOKS_REFRESH_TOKEN": "${input:freshbooks-refresh-token}",
"FRESHBOOKS_REDIRECT_URI": "${input:freshbooks-redirect-uri}",
"FRESHBOOKS_TOKEN_STORE": "${input:freshbooks-token-store}",
"FRESHBOOKS_BUSINESS_ID": "${input:freshbooks-business-id}",
"FRESHBOOKS_ACCOUNT_ID": "${input:freshbooks-account-id}",
"FRESHBOOKS_REQUEST_TIMEOUT_MS": "${input:freshbooks-request-timeout-ms}"
}
}
}
}
VS Code prompts for each input the first time the server starts, so no secret is written to the file. VS Code docs