{"_id":"@centry-digital/bukku-mcp","_rev":"6-13a6e3f1ee54cee75971b43e73397df2","name":"@centry-digital/bukku-mcp","dist-tags":{"latest":"2.0.3"},"versions":{"1.1.0":{"name":"@centry-digital/bukku-mcp","version":"1.1.0","keywords":["mcp","bukku","accounting","claude","anthropic","api","bookkeeping","invoicing"],"author":{"name":"Centry Digital"},"license":"MIT","_id":"@centry-digital/bukku-mcp@1.1.0","maintainers":[{"name":"ylchow","email":"yl@centry.digital"}],"homepage":"https://github.com/centry-digital/bukku-mcp","bugs":{"url":"https://github.com/centry-digital/bukku-mcp/issues"},"bin":{"bukku-mcp":"build/index.js"},"dist":{"shasum":"40f9691dfa5ad6ee7b90f830ad1ada8507597e4b","tarball":"https://registry.npmjs.org/@centry-digital/bukku-mcp/-/bukku-mcp-1.1.0.tgz","fileCount":97,"integrity":"sha512-0Kdvb8QYUSUepP/9OV9BI2nbgOAEgBa5DgR+kwZZAcKnyqlq65H8I0lOajywGpatpljEG6z0HQSGh8jSbu17Zw==","signatures":[{"sig":"MEUCIDE8WMU2qK9cV1QluF6kkNdKx3Dd2Yskm+ql29oJgXDvAiEA+a1jay4WaexXyzDOmy2S9N6siI1sPihytr6ag54H5k0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":141823},"main":"build/index.js","type":"module","types":"./build/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"76d13992dc82e8a1d9785788199aa6d44d9fc852","scripts":{"test":"node --test --experimental-strip-types 'src/**/*.test.ts'","build":"tsc","start":"node build/index.js","prepack":"npm run build","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ylchow","email":"yl@centry.digital"},"repository":{"url":"git+https://github.com/centry-digital/bukku-mcp.git","type":"git"},"_npmVersion":"11.6.0","description":"Bukku accounting API tools for Claude via Model Context Protocol","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"^4.3.6","@modelcontextprotocol/sdk":"^1.26.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^25.2.1"},"_npmOperationalInternal":{"tmp":"tmp/bukku-mcp_1.1.0_1770699765649_0.03460302551942296","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@centry-digital/bukku-mcp","version":"1.1.1","keywords":["mcp","bukku","accounting","claude","anthropic","api","bookkeeping","invoicing"],"author":{"name":"Centry Digital"},"license":"MIT","_id":"@centry-digital/bukku-mcp@1.1.1","maintainers":[{"name":"ylchow","email":"yl@centry.digital"}],"homepage":"https://github.com/centry-digital/bukku-mcp","bugs":{"url":"https://github.com/centry-digital/bukku-mcp/issues"},"bin":{"bukku-mcp":"build/index.js"},"dist":{"shasum":"435f02f7f2e143e6c8dadb62d0fdbd2d95f4ed9d","tarball":"https://registry.npmjs.org/@centry-digital/bukku-mcp/-/bukku-mcp-1.1.1.tgz","fileCount":95,"integrity":"sha512-vZQUnWNUCeFOoeALJ7JV/Xg7AlYJ97c3pKd5v99dNJdQKFOyehRIHkRW/PaOum56YFKZ2rYKM1+FdbNK10564g==","signatures":[{"sig":"MEQCIFMK31fZamQ94SO6N8/YNi2/c1vXxBZUt2vWPWaX0zqNAiA+oQG3SQGzDo8tUVgEFzy9nz7jKSLC1v4nWaHyKLasVg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@centry-digital%2fbukku-mcp@1.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":135902},"main":"build/index.js","type":"module","types":"./build/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"b878dfddfd32e35a67f78231489190f3b9761000","scripts":{"test":"node --test --experimental-strip-types 'src/**/*.test.ts'","build":"tsc","start":"node build/index.js","prepack":"npm run build","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:066d137e-d001-4f65-a5a4-90e164705eab"}},"repository":{"url":"git+https://github.com/centry-digital/bukku-mcp.git","type":"git"},"_npmVersion":"11.9.0","description":"Bukku accounting API tools for Claude via Model Context Protocol","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"^4.3.6","@modelcontextprotocol/sdk":"^1.26.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^25.2.1"},"_npmOperationalInternal":{"tmp":"tmp/bukku-mcp_1.1.1_1770703768157_0.5878229343170795","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@centry-digital/bukku-mcp","version":"2.0.0","keywords":["mcp","bukku","accounting","claude","anthropic","api","bookkeeping","invoicing"],"author":{"name":"Centry Digital"},"license":"MIT","_id":"@centry-digital/bukku-mcp@2.0.0","maintainers":[{"name":"ylchow","email":"yl@centry.digital"}],"homepage":"https://github.com/centry-digital/bukku","bugs":{"url":"https://github.com/centry-digital/bukku/issues"},"bin":{"bukku-mcp":"build/index.js"},"dist":{"shasum":"8da62fdf9d5afa7a2a67d3b385447a858369d25a","tarball":"https://registry.npmjs.org/@centry-digital/bukku-mcp/-/bukku-mcp-2.0.0.tgz","fileCount":37,"integrity":"sha512-T8++2Z/m7dMyL6Mkzz4uAmDJZzkve1HKBAHhmmYIfa07obZ1V6TYnaYcQurqsABhLduR9Bii1iO0DsajTNFNkA==","signatures":[{"sig":"MEYCIQDbEM9R5qc64RXzJPJz/m207PUCrNYgaiDlEueGJN3nlgIhAOcZ7nvbc+ABn57MxffVcsvRzD/m/PLGMGmCF3ZZh0fc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@centry-digital%2fbukku-mcp@2.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":126639},"main":"build/index.js","type":"module","types":"./build/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"3f5f543c5be4ea9eb0fecf6064712b0136e1d977","scripts":{"build":"tsc --build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:68caf945-70d9-41bf-9fbb-475dc6c82f8a"}},"repository":{"url":"git+https://github.com/centry-digital/bukku.git","type":"git"},"_npmVersion":"11.11.1","description":"Bukku accounting API tools for Claude via Model Context Protocol","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^4.3.6","@modelcontextprotocol/sdk":"^1.26.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/bukku-mcp_2.0.0_1773667672775_0.6165870573125039","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"@centry-digital/bukku-mcp","version":"2.0.1","keywords":["mcp","bukku","accounting","claude","anthropic","api","bookkeeping","invoicing"],"author":{"name":"Centry Digital"},"license":"MIT","_id":"@centry-digital/bukku-mcp@2.0.1","maintainers":[{"name":"ylchow","email":"yl@centry.digital"}],"homepage":"https://github.com/centry-digital/bukku","bugs":{"url":"https://github.com/centry-digital/bukku/issues"},"bin":{"bukku-mcp":"build/index.js"},"dist":{"shasum":"a9a9f86ec8e670917aa3b669d952ba2debf098d2","tarball":"https://registry.npmjs.org/@centry-digital/bukku-mcp/-/bukku-mcp-2.0.1.tgz","fileCount":38,"integrity":"sha512-WdIFF/opHNvoK5K5lQ8R+q2BCywtPt1YDFlljmarXhz6nbpjyQLS/XwVthgggfY0M2m2GFFX3yJCQr95wSyfFw==","signatures":[{"sig":"MEQCICgN4dAwd/P/YoQAn3u0aCMW5MZLEodJEp5+u3/0sGzeAiAfOYU6tSbH2HDiKgIgdH9MfHnoShq2/0S82LR16AQOxA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@centry-digital%2fbukku-mcp@2.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":130917},"main":"build/index.js","type":"module","types":"./build/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"4574ad7eaf67f67113064e80e0d4103ef4ebcfa3","scripts":{"build":"tsc --build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:68caf945-70d9-41bf-9fbb-475dc6c82f8a"}},"repository":{"url":"git+https://github.com/centry-digital/bukku.git","type":"git"},"_npmVersion":"11.11.1","description":"Bukku accounting API tools for Claude via Model Context Protocol","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^4.3.6","@modelcontextprotocol/sdk":"^1.26.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/bukku-mcp_2.0.1_1773668225151_0.34799099222299534","host":"s3://npm-registry-packages-npm-production"}},"2.0.2":{"name":"@centry-digital/bukku-mcp","version":"2.0.2","keywords":["mcp","bukku","accounting","claude","anthropic","api","bookkeeping","invoicing"],"author":{"name":"Centry Digital"},"license":"MIT","_id":"@centry-digital/bukku-mcp@2.0.2","maintainers":[{"name":"ylchow","email":"yl@centry.digital"}],"homepage":"https://github.com/centry-digital/bukku","bugs":{"url":"https://github.com/centry-digital/bukku/issues"},"bin":{"bukku-mcp":"build/index.js"},"dist":{"shasum":"94283b60afe0121f8a57176d7d11c34dc0b8b7f9","tarball":"https://registry.npmjs.org/@centry-digital/bukku-mcp/-/bukku-mcp-2.0.2.tgz","fileCount":38,"integrity":"sha512-4m9JtsECP5nkIjHvDkljNIFBwyRTDQb+/iW2VmJlubkGST7+LvNM4GxDynY6jajvZQrWNrK4pdAyZMP5PvqMCg==","signatures":[{"sig":"MEQCIDQELqxth5mDjaQ114oRoDVxUaxcWgzxeBgGU7bm0grPAiARfZT6DiiTNWV/tq6NUbXO7G5au8d3VUNlzyvWOG7+KA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@centry-digital%2fbukku-mcp@2.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":131088},"main":"build/index.js","type":"module","types":"./build/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"99c6789820ad8f20bd4ddb54d9d5533e271e1e9e","scripts":{"build":"tsc --build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:68caf945-70d9-41bf-9fbb-475dc6c82f8a"}},"repository":{"url":"git+https://github.com/centry-digital/bukku.git","type":"git"},"_npmVersion":"11.11.1","description":"Bukku accounting API tools for Claude via Model Context Protocol","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^4.3.6","@modelcontextprotocol/sdk":"^1.26.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/bukku-mcp_2.0.2_1773668390915_0.5531157700160632","host":"s3://npm-registry-packages-npm-production"}},"2.0.3":{"name":"@centry-digital/bukku-mcp","version":"2.0.3","description":"Bukku accounting API tools for Claude via Model Context Protocol","type":"module","main":"build/index.js","bin":{"bukku-mcp":"build/index.js"},"scripts":{"build":"tsc --build"},"keywords":["mcp","bukku","accounting","claude","anthropic","api","bookkeeping","invoicing"],"author":{"name":"Centry Digital"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/centry-digital/bukku.git"},"homepage":"https://github.com/centry-digital/bukku","bugs":{"url":"https://github.com/centry-digital/bukku/issues"},"engines":{"node":">=20.0.0"},"publishConfig":{"access":"public"},"dependencies":{"@modelcontextprotocol/sdk":"^1.26.0","zod":"^4.3.6"},"gitHead":"94c1a5c1668f451ef9b067b4d9d1fa73162a9401","types":"./build/index.d.ts","_id":"@centry-digital/bukku-mcp@2.0.3","_nodeVersion":"22.22.1","_npmVersion":"11.11.1","dist":{"integrity":"sha512-Ghvz6iWRuWlYQUN3RNhKaVhVR2vg+xZl+XOhbRqjKVuzNDJAqq0a49osHP0SntXMSfkOuCg3vblHnhmT+godbw==","shasum":"a0fe174d9681d62fd0e7d9139d4ec5ec87aca835","tarball":"https://registry.npmjs.org/@centry-digital/bukku-mcp/-/bukku-mcp-2.0.3.tgz","fileCount":38,"unpackedSize":131088,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@centry-digital%2fbukku-mcp@2.0.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIFdxSvYEl8m3FAUfUQQTQpwxFwqsna1PU+J02MMQl9YYAiAGSCgjE7aSVKTv5p2BgCIwDZw8y3qlfOKKoQd3S7r95Q=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:68caf945-70d9-41bf-9fbb-475dc6c82f8a"}},"directories":{},"maintainers":[{"name":"ylchow","email":"yl@centry.digital"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/bukku-mcp_2.0.3_1773668548822_0.5405625043577973"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-10T05:02:45.538Z","modified":"2026-03-16T13:42:29.241Z","1.1.0":"2026-02-10T05:02:45.796Z","1.1.1":"2026-02-10T06:09:28.315Z","2.0.0":"2026-03-16T13:27:52.913Z","2.0.1":"2026-03-16T13:37:05.299Z","2.0.2":"2026-03-16T13:39:51.067Z","2.0.3":"2026-03-16T13:42:28.965Z"},"bugs":{"url":"https://github.com/centry-digital/bukku/issues"},"author":{"name":"Centry Digital"},"license":"MIT","homepage":"https://github.com/centry-digital/bukku","keywords":["mcp","bukku","accounting","claude","anthropic","api","bookkeeping","invoicing"],"repository":{"type":"git","url":"git+https://github.com/centry-digital/bukku.git"},"description":"Bukku accounting API tools for Claude via Model Context Protocol","maintainers":[{"name":"ylchow","email":"yl@centry.digital"}],"readme":"# Bukku MCP Server\n\n[![npm version](https://img.shields.io/npm/v/@centry-digital/bukku-mcp)](https://www.npmjs.com/package/@centry-digital/bukku-mcp)\n\nAn [MCP (Model Context Protocol)](https://modelcontextprotocol.io) server that connects AI assistants to [Bukku](https://bukku.my), a Malaysian accounting platform. This gives your AI the ability to read, create, and manage your accounting data — invoices, bills, payments, contacts, products, and more.\n\n## What can it do?\n\nWith this MCP server connected, you can ask your AI things like:\n\n- \"List my unpaid sales invoices\"\n- \"Create an invoice for RM 5,000 to Acme Corp for consulting services\"\n- \"Show me all purchase bills from last month\"\n- \"Record a bank transfer of RM 10,000 from Maybank to CIMB\"\n- \"Create a new contact for my supplier\"\n- \"Upload this receipt and attach it to the purchase bill\"\n\nThe server exposes **169 tools** covering the full Bukku API:\n\n| Category | Tools | What you can do |\n|----------|-------|-----------------|\n| **Sales** | 42 | Quotes, orders, delivery orders, invoices, credit notes, payments, refunds |\n| **Purchases** | 36 | Purchase orders, bills, credit notes, goods received notes, payments, refunds |\n| **Banking** | 18 | Money in, money out, bank transfers |\n| **Contacts** | 12 | Customers, suppliers, contact groups |\n| **Products** | 18 | Products, product bundles, product groups |\n| **Accounting** | 13 | Journal entries, chart of accounts |\n| **Files** | 3 | Upload and manage file attachments |\n| **Organisation** | 17 | Locations, tags, tag groups |\n| **Reference Data** | 10 | Tax codes, currencies, payment methods, terms, and more |\n\n## Quick Start\n\n### Prerequisites\n\n- [Node.js](https://nodejs.org) v20 or later\n- A [Bukku](https://bukku.my) account with API access enabled\n- An AI client that supports MCP (e.g. [Claude Desktop](https://claude.ai/download), [Claude Code](https://docs.anthropic.com/en/docs/claude-code))\n\n### Step 1: Get your Bukku API token\n\n1. Log into your Bukku account\n2. Go to **Control Panel > Integrations > API Access**\n3. Generate a new API token (or copy your existing one)\n4. Note your company subdomain — e.g. `mycompany` from `mycompany.bukku.my`\n\n### Step 2: Add to your AI client\n\n**Claude Desktop** — open your config file:\n- **macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`\n- **Windows:** `%APPDATA%\\Claude\\claude_desktop_config.json`\n\n```json\n{\n  \"mcpServers\": {\n    \"bukku\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@centry-digital/bukku-mcp\"],\n      \"env\": {\n        \"BUKKU_API_TOKEN\": \"your-token-here\",\n        \"BUKKU_COMPANY_SUBDOMAIN\": \"your-subdomain\"\n      }\n    }\n  }\n}\n```\n\n**Claude Code** — add to your project or home `.claude/settings.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"bukku\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@centry-digital/bukku-mcp\"],\n      \"env\": {\n        \"BUKKU_API_TOKEN\": \"your-token-here\",\n        \"BUKKU_COMPANY_SUBDOMAIN\": \"your-subdomain\"\n      }\n    }\n  }\n}\n```\n\n### Step 3: Restart your AI client\n\nQuit and reopen your AI client. You're ready to go.\n\n## Installation\n\n### npx (recommended)\n\nNo installation needed — downloads and runs the latest version:\n\n```bash\nnpx @centry-digital/bukku-mcp\n```\n\n### npm global install\n\n```bash\nnpm install -g @centry-digital/bukku-mcp\n```\n\nThen use `bukku-mcp` as the command in your AI client config instead of `npx`.\n\n## Configuration\n\n| Variable | Required | Description |\n|----------|----------|-------------|\n| `BUKKU_API_TOKEN` | Yes | Your Bukku API token from Control Panel > Integrations > API Access |\n| `BUKKU_COMPANY_SUBDOMAIN` | Yes | Your company subdomain (e.g. `mycompany` from `mycompany.bukku.my`) |\n\n## Troubleshooting\n\n**\"Configuration Error\" on startup**\n- Check that both `BUKKU_API_TOKEN` and `BUKKU_COMPANY_SUBDOMAIN` are set in your client config\n\n**\"Token validation failed\"**\n- Your API token may be invalid or expired — regenerate at Control Panel > Integrations > API Access\n\n**Server doesn't appear in your AI client**\n- Verify JSON syntax is correct (no trailing commas)\n- Restart your AI client after editing the config\n- Check Node.js v20+ is installed: `node --version`\n\n## Uninstalling\n\nIf you installed globally:\n\n```bash\nnpm uninstall -g @centry-digital/bukku-mcp\n```\n\nThen remove the `bukku` entry from your AI client's MCP config file.\n\n## Related\n\n- [GitHub repository](https://github.com/centry-digital/bukku)\n\n## License\n\nMIT\n","readmeFilename":"README.md"}