{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.chrischall/freshbooks-mcp","description":"FreshBooks invoicing for Claude — invoices, clients, estimates, and payments","repository":{"url":"https://github.com/chrischall/freshbooks-mcp","source":"github"},"version":"1.2.1","packages":[{"registryType":"npm","identifier":"@chrischall/freshbooks-mcp","version":"1.2.1","transport":{"type":"stdio"},"environmentVariables":[{"description":"OAuth client ID from my.freshbooks.com/#/developer","format":"string","name":"FRESHBOOKS_CLIENT_ID"},{"description":"OAuth client secret","format":"string","isSecret":true,"name":"FRESHBOOKS_CLIENT_SECRET"},{"description":"Optional for local sign-in, which saves tokens privately. Required for hosted or legacy environment-token setup.","format":"string","isSecret":true,"name":"FRESHBOOKS_REFRESH_TOKEN"},{"description":"Registered redirect URI; required on refresh calls too (default https://localhost)","format":"string","name":"FRESHBOOKS_REDIRECT_URI"},{"description":"Path for the rotating-refresh-token store (default ~/.freshbooks-mcp/session.json)","format":"string","name":"FRESHBOOKS_TOKEN_STORE"},{"description":"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.","format":"string","name":"FRESHBOOKS_BUSINESS_ID"},{"description":"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 are refused until the pairing is confirmed this way).","format":"string","name":"FRESHBOOKS_ACCOUNT_ID"},{"description":"Per-request deadline for API calls, in milliseconds (default 30000)","format":"string","name":"FRESHBOOKS_REQUEST_TIMEOUT_MS"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-10-09T23:24:55.905126Z","publishedAt":"2026-10-09T23:24:55.905126Z","updatedAt":"2026-10-09T23:24:55.905126Z","isLatest":true}}}
