{"_id":"@bossforce.ai/mcp-freshbooks","name":"@bossforce.ai/mcp-freshbooks","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@bossforce.ai/mcp-freshbooks","version":"0.1.0","type":"module","repository":{"type":"git","url":"git+https://github.com/bossforce-ai/bossforce-tools.git","directory":"mcps/accounting-finance/freshbooks"},"publishConfig":{"access":"public"},"bin":{"bossforce-mcp-freshbooks":"dist/bin.js"},"dependencies":{"zod":"^4.4.3","@bossforce.ai/mcp-core":"0.3.0"},"devDependencies":{"@bossforce.ai/mcp-testkit":"0.0.0"},"scripts":{"build":"tsc -p tsconfig.json","test":"node --test \"dist/*.test.js\""},"_id":"@bossforce.ai/mcp-freshbooks@0.1.0","description":"MCP server for the **FreshBooks** accounting API. Lists and creates invoices and clients for a single connected account. A good fit for billing customers and keeping the client list in sync.","bugs":{"url":"https://github.com/bossforce-ai/bossforce-tools/issues"},"homepage":"https://github.com/bossforce-ai/bossforce-tools#readme","_integrity":"sha512-/ijBsSCMDs+dQlgdEQMuq/iNp0cQHAs2Fu1twDHzb5zEJW6ynabR2DZyQP0FmB7OWRw8ZNo+boPt7JL6HtxNMQ==","_resolved":"C:\\Users\\user\\AppData\\Local\\Temp\\552ecc3df9ce5494a1a68051136dca5c\\bossforce.ai-mcp-freshbooks-0.1.0.tgz","_from":"file:bossforce.ai-mcp-freshbooks-0.1.0.tgz","_nodeVersion":"22.18.0","_npmVersion":"10.9.3","dist":{"integrity":"sha512-/ijBsSCMDs+dQlgdEQMuq/iNp0cQHAs2Fu1twDHzb5zEJW6ynabR2DZyQP0FmB7OWRw8ZNo+boPt7JL6HtxNMQ==","shasum":"37af1eb6af8f29c44774ec35dfc7ac8b6df32479","tarball":"https://registry.npmjs.org/@bossforce.ai/mcp-freshbooks/-/mcp-freshbooks-0.1.0.tgz","fileCount":26,"unpackedSize":33182,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDuCOsjcCAbTsgaKuY+aoojX6Kd2y40VZs1R7J6Xcb/xQIhAKRJ54P8/COi7zyVMad2tioKOAt4GfNc65qnyG3ac6UW"}]},"_npmUser":{"name":"bossforce.ai","email":"bossforce.ai@gmail.com"},"directories":{},"maintainers":[{"name":"bossforce.ai","email":"bossforce.ai@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp-freshbooks_0.1.0_1781069197943_0.8757152314601151"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-10T05:26:37.680Z","0.1.0":"2026-06-10T05:26:38.279Z","modified":"2026-06-10T05:26:38.542Z"},"maintainers":[{"name":"bossforce.ai","email":"bossforce.ai@gmail.com"}],"description":"MCP server for the **FreshBooks** accounting API. Lists and creates invoices and clients for a single connected account. A good fit for billing customers and keeping the client list in sync.","homepage":"https://github.com/bossforce-ai/bossforce-tools#readme","repository":{"type":"git","url":"git+https://github.com/bossforce-ai/bossforce-tools.git","directory":"mcps/accounting-finance/freshbooks"},"bugs":{"url":"https://github.com/bossforce-ai/bossforce-tools/issues"},"readme":"# @bossforce.ai/mcp-freshbooks\n\nMCP server for the **FreshBooks** accounting API. Lists and creates invoices and\nclients for a single connected account. A good fit for billing customers and\nkeeping the client list in sync.\n\n## Credentials\n\nOAuth2 (refresh-token grant). The platform performs the FreshBooks authorization\nand provides the refresh token; the server exchanges it for short-lived (12h)\naccess tokens itself.\n\n| Env                        | Secret | How to obtain                                                                                                          |\n| -------------------------- | ------ | ---------------------------------------------------------------------------------------------------------------------- |\n| `FRESHBOOKS_CLIENT_ID`     | env    | OAuth app client id (provided to the server as `client_id`).                                                           |\n| `FRESHBOOKS_CLIENT_SECRET` | env    | OAuth app client secret (provided to the server as `client_secret`).                                                   |\n| `FRESHBOOKS_REFRESH_TOKEN` | yes    | Obtained automatically when you authorize FreshBooks access.                                                           |\n| `FRESHBOOKS_ACCOUNT_ID`    | no     | The account id the server acts on. Found in the FreshBooks URL or via the identity (`/auth/api/v1/users/me`) endpoint. |\n| `FRESHBOOKS_REDIRECT_URI`  | no     | Optional. Sent with the refresh grant when set, to match the registered redirect URI.                                  |\n\nScopes: `user:profile:read`, `user:invoices:read`, `user:invoices:write`,\n`user:clients:read`, `user:clients:write`. FreshBooks refresh tokens are\nsingle-use — each refresh returns a new pair, so the platform rotates the stored\ntoken. Credentials are read lazily, so the server boots and answers `tools/list`\nwithout them; calls fail with an `auth` error until they are set.\n\n## Tools\n\n| Tool             | Arguments                                                           | Returns                                  |\n| ---------------- | ------------------------------------------------------------------- | ---------------------------------------- |\n| `list_invoices`  | `page?`, `per_page?`, `search?`                                     | `{ response: { result: { invoices } } }` |\n| `list_clients`   | `page?`, `per_page?`, `search?`                                     | `{ response: { result: { clients } } }`  |\n| `create_client`  | `fname?`, `lname?`, `organization?`, `email?`, `fields?`            | `{ response: { result: { client } } }`   |\n| `create_invoice` | `customerid`, `create_date?`, `currency_code?`, `lines?`, `fields?` | `{ response: { result: { invoice } } }`  |\n\nAll calls are scoped to `FRESHBOOKS_ACCOUNT_ID`. Responses are FreshBooks' native\npayloads (nested under `response.result`), returned as `structuredContent`. Pass\nFreshBooks-specific filters via `search` (e.g. `{ \"customerid\": 123 }`) and any\nextra body fields via `fields`.\n\n## Develop\n\n```bash\npnpm --filter @bossforce.ai/mcp-freshbooks build\npnpm --filter @bossforce.ai/mcp-freshbooks test\n```\n\nRegenerate the tools/list snapshot after an intentional signature change:\n\n```bash\nUPDATE_SNAPSHOTS=1 pnpm --filter @bossforce.ai/mcp-freshbooks test\n```\n","readmeFilename":"README.md","_rev":"1-d55948da43391b2d07735550f6fd9fea"}