{"_id":"@bossforce.ai/mcp-quickbooks","name":"@bossforce.ai/mcp-quickbooks","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@bossforce.ai/mcp-quickbooks","version":"0.1.0","type":"module","repository":{"type":"git","url":"git+https://github.com/bossforce-ai/bossforce-tools.git","directory":"mcps/accounting-finance/quickbooks"},"publishConfig":{"access":"public"},"bin":{"bossforce-mcp-quickbooks":"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-quickbooks@0.1.0","description":"MCP server for the **QuickBooks Online Accounting API**. Run queries and read the company profile, and create customers and invoices. Authenticated with OAuth2 using the refresh-token grant; the server exchanges a refresh token for short-lived access toke","bugs":{"url":"https://github.com/bossforce-ai/bossforce-tools/issues"},"homepage":"https://github.com/bossforce-ai/bossforce-tools#readme","_integrity":"sha512-Op41Itu8SML7Y7pZTlYW5SvX9GBWP4HdT9DJ2W59wieoSQUyXcDRUmjuoHzcD8afZkjtKo3K9F5y0mT429PuFQ==","_resolved":"C:\\Users\\user\\AppData\\Local\\Temp\\9ac0d077d73efa2fc6d81f2bf9d0c547\\bossforce.ai-mcp-quickbooks-0.1.0.tgz","_from":"file:bossforce.ai-mcp-quickbooks-0.1.0.tgz","_nodeVersion":"22.18.0","_npmVersion":"10.9.3","dist":{"integrity":"sha512-Op41Itu8SML7Y7pZTlYW5SvX9GBWP4HdT9DJ2W59wieoSQUyXcDRUmjuoHzcD8afZkjtKo3K9F5y0mT429PuFQ==","shasum":"1372d7344e01022c4332c3bf3904a75ab028d2ef","tarball":"https://registry.npmjs.org/@bossforce.ai/mcp-quickbooks/-/mcp-quickbooks-0.1.0.tgz","fileCount":26,"unpackedSize":29572,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCmh9Jc2W/qFFl/zxPrKFQVPcvdjPHspitKeknzewfRhwIgWb8YtviiuKAmDzzgExLPRXOeaJeu9nck+32YiNlrvDw="}]},"_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-quickbooks_0.1.0_1781069201610_0.8441925559276375"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-10T05:26:41.411Z","0.1.0":"2026-06-10T05:26:41.743Z","modified":"2026-06-10T05:26:41.968Z"},"maintainers":[{"name":"bossforce.ai","email":"bossforce.ai@gmail.com"}],"description":"MCP server for the **QuickBooks Online Accounting API**. Run queries and read the company profile, and create customers and invoices. Authenticated with OAuth2 using the refresh-token grant; the server exchanges a refresh token for short-lived access toke","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/quickbooks"},"bugs":{"url":"https://github.com/bossforce-ai/bossforce-tools/issues"},"readme":"# @bossforce.ai/mcp-quickbooks\n\nMCP server for the **QuickBooks Online Accounting API**. Run queries and read the\ncompany profile, and create customers and invoices. Authenticated with OAuth2\nusing the refresh-token grant; the server exchanges a refresh token for\nshort-lived access tokens itself.\n\n## Credentials\n\n| Env                        | How to obtain                                                                                        |\n| -------------------------- | ---------------------------------------------------------------------------------------------------- |\n| `QUICKBOOKS_CLIENT_ID`     | Client ID of the QuickBooks app (provided by the platform as the OAuth `client_id`).                 |\n| `QUICKBOOKS_CLIENT_SECRET` | Client Secret of the QuickBooks app (the OAuth `client_secret`).                                     |\n| `QUICKBOOKS_REFRESH_TOKEN` | Obtained automatically when you authorize access. Exchanged for access tokens.                       |\n| `QUICKBOOKS_REALM_ID`      | The company (realm) id that scopes every API call. Returned alongside the authorization. Not secret. |\n| `QUICKBOOKS_ENV`           | Set to `sandbox` to target the QuickBooks sandbox API; defaults to production. Not secret.           |\n\nThe credentials are read lazily, so the server boots and answers `tools/list`\nwithout them; calls fail with an `auth` error until they are set. On the first\ncall the client POSTs the refresh token to\n`https://oauth.platform.intuit.com/oauth2/v1/tokens/bearer`\n(`grant_type=refresh_token`, with `client_id:client_secret` sent as HTTP Basic\nauth and the body form-encoded), caches the returned `access_token`, and\nre-fetches once on a `401`. The API base is\n`https://quickbooks.api.intuit.com/v3/company/{QUICKBOOKS_REALM_ID}`\n(`https://sandbox-quickbooks.api.intuit.com` when `QUICKBOOKS_ENV=sandbox`).\n\n## Tools\n\n| Tool               | Arguments                        | Returns                                      |\n| ------------------ | -------------------------------- | -------------------------------------------- |\n| `run_query`        | `query`                          | a `QueryResponse` with the matching entities |\n| `get_company_info` | _(none)_                         | the company (organization) profile           |\n| `create_customer`  | `display_name`, `fields?`        | the created `Customer` (including its `Id`)  |\n| `create_invoice`   | `customer_id`, `line`, `fields?` | the created `Invoice` (including its `Id`)   |\n\nResponses are QuickBooks' native JSON payloads, returned as `structuredContent`.\n`query` uses the QuickBooks SQL-like query syntax (e.g.\n`SELECT * FROM Customer MAXRESULTS 50`). QuickBooks has no PUT/PATCH; the create\ntools POST a full entity. `fields` uses each entity's field API names.\n\n## Develop\n\n```bash\npnpm --filter @bossforce.ai/mcp-quickbooks build\npnpm --filter @bossforce.ai/mcp-quickbooks test\n```\n\nRegenerate the tools/list snapshot after an intentional signature change:\n\n```bash\nUPDATE_SNAPSHOTS=1 pnpm --filter @bossforce.ai/mcp-quickbooks test\n```\n","readmeFilename":"README.md","_rev":"1-5991edd9f3862f0b96dcf38750e1eec6"}