{"_id":"@bossforce.ai/mcp-xero","name":"@bossforce.ai/mcp-xero","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@bossforce.ai/mcp-xero","version":"0.1.0","type":"module","repository":{"type":"git","url":"git+https://github.com/bossforce-ai/bossforce-tools.git","directory":"mcps/accounting-finance/xero"},"publishConfig":{"access":"public"},"bin":{"bossforce-mcp-xero":"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-xero@0.1.0","description":"MCP server for the Xero **Accounting API**. List and create invoices and contacts in a Xero organisation. Authenticated with OAuth2 using the refresh-token grant; the server exchanges a refresh token for short-lived access tokens and sends the organisatio","bugs":{"url":"https://github.com/bossforce-ai/bossforce-tools/issues"},"homepage":"https://github.com/bossforce-ai/bossforce-tools#readme","_integrity":"sha512-YwD6zMoquZ+keQv2fQsGe1s88iJfLDPJfgjUrgqTVfd/Mt9HhNEJ6CaX8CXftDmlqVaE6X+W75rHvrM2FB6GUQ==","_resolved":"C:\\Users\\user\\AppData\\Local\\Temp\\7f540290f8cf711f73eedc12c5102ab4\\bossforce.ai-mcp-xero-0.1.0.tgz","_from":"file:bossforce.ai-mcp-xero-0.1.0.tgz","_nodeVersion":"22.18.0","_npmVersion":"10.9.3","dist":{"integrity":"sha512-YwD6zMoquZ+keQv2fQsGe1s88iJfLDPJfgjUrgqTVfd/Mt9HhNEJ6CaX8CXftDmlqVaE6X+W75rHvrM2FB6GUQ==","shasum":"776b7e03217a628e7639d9fda0f465ace26c2d6d","tarball":"https://registry.npmjs.org/@bossforce.ai/mcp-xero/-/mcp-xero-0.1.0.tgz","fileCount":26,"unpackedSize":31103,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDv6vyvYCPeysxY4VeAc2+rsmrEj+lVrOcNYgYpJ4N/8wIhAPwEF+7lRjMuaPbmxIqIm6v6rqv2sQW8Cdb1okRkd5yQ"}]},"_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-xero_0.1.0_1781069206897_0.25302352336407674"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-10T05:26:46.778Z","0.1.0":"2026-06-10T05:26:47.029Z","modified":"2026-06-10T05:26:47.217Z"},"maintainers":[{"name":"bossforce.ai","email":"bossforce.ai@gmail.com"}],"description":"MCP server for the Xero **Accounting API**. List and create invoices and contacts in a Xero organisation. Authenticated with OAuth2 using the refresh-token grant; the server exchanges a refresh token for short-lived access tokens and sends the organisatio","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/xero"},"bugs":{"url":"https://github.com/bossforce-ai/bossforce-tools/issues"},"readme":"# @bossforce.ai/mcp-xero\n\nMCP server for the Xero **Accounting API**. List and create invoices and\ncontacts in a Xero organisation. Authenticated with OAuth2 using the\nrefresh-token grant; the server exchanges a refresh token for short-lived access\ntokens and sends the organisation (tenant) id on every call.\n\n## Credentials\n\n| Env                  | How to obtain                                                                                |\n| -------------------- | -------------------------------------------------------------------------------------------- |\n| `XERO_CLIENT_ID`     | Client id of the Xero app (provided by the platform as the OAuth `client_id`).               |\n| `XERO_CLIENT_SECRET` | Client secret of the Xero app (the OAuth `client_secret`).                                   |\n| `XERO_REFRESH_TOKEN` | Obtained automatically when you authorize access. Exchanged for access tokens.               |\n| `XERO_TENANT_ID`     | The Xero organisation (tenant) id. Sent as the required `xero-tenant-id` header. 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://identity.xero.com/connect/token` (`grant_type=refresh_token`, with the\napp authenticated via HTTP Basic `base64(client_id:client_secret)` and the body\nform-encoded), caches the returned `access_token`, and re-fetches once on a\n`401`. The Accounting API base is `https://api.xero.com/api.xro/2.0`; every\nrequest sends the `xero-tenant-id` header and `Accept: application/json`.\n\n## Tools\n\n| Tool             | Arguments                                             | Returns                      |\n| ---------------- | ----------------------------------------------------- | ---------------------------- |\n| `list_invoices`  | `where?`, `order?`                                    | the `Invoices` array         |\n| `list_contacts`  | `where?`, `order?`                                    | the `Contacts` array         |\n| `create_contact` | `name`, `email_address?`, `first_name?`, `last_name?` | the created `Contacts` array |\n| `create_invoice` | `type`, `contact_id`, `line_items`                    | the created `Invoices` array |\n\n`create_invoice` uses `type` `ACCREC` for a sales invoice or `ACCPAY` for a\nbill, and references an existing contact by its `ContactID`. Responses are\nXero's native JSON payloads, returned as `structuredContent`.\n\n## Develop\n\n```bash\npnpm --filter @bossforce.ai/mcp-xero build\npnpm --filter @bossforce.ai/mcp-xero test\n```\n","readmeFilename":"README.md","_rev":"1-516c384d463067f006f323775166f881"}