{"_id":"@canton-network-devs/canton-mcp-server","_rev":"6-b176c0a2962f34c636b8802fc39cf1e0","name":"@canton-network-devs/canton-mcp-server","dist-tags":{"latest":"3.0.0"},"versions":{"1.1.0":{"name":"@canton-network-devs/canton-mcp-server","version":"1.1.0","keywords":["canton","daml","mcp","model-context-protocol","developer-tools","blockchain","canton-network","claude"],"author":{"name":"Canton Foundation"},"license":"Apache-2.0","_id":"@canton-network-devs/canton-mcp-server@1.1.0","maintainers":[{"name":"canton_devel_jatin","email":"Jatin@canton.foundation"}],"homepage":"https://github.com/canton-network-devs/Build-on-Canton-MCP#readme","bugs":{"url":"https://github.com/canton-network-devs/Build-on-Canton-MCP/issues"},"bin":{"canton-mcp-server":"index.js","canton-mcp-install":"install.js"},"dist":{"shasum":"e0b802bde163d24dcdca62b74e82006af929a881","tarball":"https://registry.npmjs.org/@canton-network-devs/canton-mcp-server/-/canton-mcp-server-1.1.0.tgz","fileCount":5,"integrity":"sha512-fKAt5iGQBpES8fi7kgy+H0UymspLOqhSdwO1QB8xJJbPQNstmE9W6dZcBDIgUfwDydORt0wG8j1sxBtIcPSi/A==","signatures":[{"sig":"MEQCIE5dBkKOtrS69jy9eeRCW14f9QRnx0VLc2BhD0rEKjSaAiBCdB3trReEA5+ZiQ9TOLschsWkgf1SzLAu/URI2W3mXA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":92208},"main":"index.js","type":"module","engines":{"node":">=18"},"gitHead":"ad0a4fe14f3eb378083ec222b8200498f80d766b","scripts":{"dev":"node --watch index.js","start":"node index.js"},"_npmUser":{"name":"canton_devel_jatin","email":"Jatin@canton.foundation"},"repository":{"url":"git+https://github.com/canton-network-devs/Build-on-Canton-MCP.git","type":"git"},"_npmVersion":"11.11.0","description":"Canton Network MCP Server for Claude Desktop","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^3.23.8","express":"^4.21.2","@modelcontextprotocol/sdk":"^1.12.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/canton-mcp-server_1.1.0_1782367012704_0.6425401837835656","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@canton-network-devs/canton-mcp-server","version":"2.0.0","keywords":["canton","daml","mcp","model-context-protocol","developer-tools","blockchain","canton-network","claude"],"author":{"name":"Jatin, DevRel, Canton Foundation"},"license":"Apache-2.0","_id":"@canton-network-devs/canton-mcp-server@2.0.0","maintainers":[{"name":"canton_devel_jatin","email":"Jatin@canton.foundation"}],"homepage":"https://github.com/canton-network-devs/Build-on-Canton-MCP#readme","bugs":{"url":"https://github.com/canton-network-devs/Build-on-Canton-MCP/issues"},"bin":{"canton-mcp-server":"index.js"},"dist":{"shasum":"7aab50fd40225b43d14b37b558b25e132526912c","tarball":"https://registry.npmjs.org/@canton-network-devs/canton-mcp-server/-/canton-mcp-server-2.0.0.tgz","fileCount":4,"integrity":"sha512-sVf+fNejH5gWkA3YFBB4JhzVyFDuPwPOK2E9/G9orbN38WcFAPxheccz3fLZYp0fAGkdyT8WoZuy8Yrb3LXR+w==","signatures":[{"sig":"MEUCIFJerDdHcgQZLcAYW0El9xsY/+BpRI69wHOwoi7/8/b/AiEAzubJVwSYERbBoOA7AW0F62uZn8gg+LopLVUkRxKpJns=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":90704},"main":"index.js","type":"module","engines":{"node":">=18"},"gitHead":"ad0a4fe14f3eb378083ec222b8200498f80d766b","scripts":{"dev":"node --watch index.js","start":"node index.js"},"_npmUser":{"name":"canton_devel_jatin","email":"Jatin@canton.foundation"},"repository":{"url":"git+https://github.com/canton-network-devs/Build-on-Canton-MCP.git","type":"git"},"_npmVersion":"11.11.0","description":"Canton Network MCP Server for Claude Desktop","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^3.23.8","express":"^4.21.2","@modelcontextprotocol/sdk":"^1.12.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/canton-mcp-server_2.0.0_1782367954770_0.48794452766605656","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"@canton-network-devs/canton-mcp-server","version":"2.1.0","keywords":["canton","daml","mcp","model-context-protocol","developer-tools","blockchain","canton-network","claude"],"author":{"name":"Jatin, DevRel, Canton Foundation"},"license":"Apache-2.0","_id":"@canton-network-devs/canton-mcp-server@2.1.0","maintainers":[{"name":"canton_devel_jatin","email":"Jatin@canton.foundation"}],"homepage":"https://github.com/canton-network-devs/Build-on-Canton-MCP#readme","bugs":{"url":"https://github.com/canton-network-devs/Build-on-Canton-MCP/issues"},"bin":{"canton-mcp-server":"index.js"},"dist":{"shasum":"91856ef00bfc3ac2791b6e7868730c783e2179a4","tarball":"https://registry.npmjs.org/@canton-network-devs/canton-mcp-server/-/canton-mcp-server-2.1.0.tgz","fileCount":4,"integrity":"sha512-0PYmqQZzca4L39vf2+e8vpr8HPUVUKq2YUmXwaV2x9tsm1LssAv0JYbTVLJvvGXDvXHQG1oDvC/Ucmy6dy7n0w==","signatures":[{"sig":"MEUCIGa4fhp3Bl0Ny6z3vFcszbkzT657TcewyXAusr2x2KVjAiEAoTR5ov526iYj2OHoLSi25QICFv6MKCVOnRccnnyiRHE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":90742},"main":"index.js","type":"module","engines":{"node":">=18"},"gitHead":"ad0a4fe14f3eb378083ec222b8200498f80d766b","scripts":{"dev":"node --watch index.js","start":"node index.js"},"_npmUser":{"name":"canton_devel_jatin","email":"Jatin@canton.foundation"},"repository":{"url":"git+https://github.com/canton-network-devs/Build-on-Canton-MCP.git","type":"git"},"_npmVersion":"11.11.0","description":"Canton Network MCP Server for Claude Desktop","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^3.23.8","express":"^4.21.2","@modelcontextprotocol/sdk":"^1.12.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/canton-mcp-server_2.1.0_1782369168935_0.027953369686729568","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"name":"@canton-network-devs/canton-mcp-server","version":"2.2.0","keywords":["canton","daml","mcp","model-context-protocol","developer-tools","blockchain","canton-network","claude"],"author":{"name":"Jatin, DevRel, Canton Foundation"},"license":"Apache-2.0","_id":"@canton-network-devs/canton-mcp-server@2.2.0","maintainers":[{"name":"canton_devel_jatin","email":"Jatin@canton.foundation"}],"homepage":"https://github.com/canton-network-devs/Build-on-Canton-MCP#readme","bugs":{"url":"https://github.com/canton-network-devs/Build-on-Canton-MCP/issues"},"bin":{"canton-mcp-server":"index.js"},"dist":{"shasum":"31469b1ffc49d072570c75feb8d1939c1de7d4e1","tarball":"https://registry.npmjs.org/@canton-network-devs/canton-mcp-server/-/canton-mcp-server-2.2.0.tgz","fileCount":4,"integrity":"sha512-u24P575uj7L5bp5dHIP9rTJmtK9TtlESSRKwDBCU0Niw6dGrMLCHanbOH3mCjHePLkoikC1OaVNoQ/8YLo+hkA==","signatures":[{"sig":"MEYCIQCD0fTkDC4mHrE6oK4aNAkC45bw/HkVB5LVG3Yvf9okdwIhAMB7ToDzAWAyRJZbJXidJsYIgyATKyWKmw+ANB2pVRsL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":90740},"main":"index.js","type":"module","engines":{"node":">=18"},"gitHead":"ad0a4fe14f3eb378083ec222b8200498f80d766b","scripts":{"dev":"node --watch index.js","start":"node index.js"},"_npmUser":{"name":"canton_devel_jatin","email":"Jatin@canton.foundation"},"repository":{"url":"git+https://github.com/canton-network-devs/Build-on-Canton-MCP.git","type":"git"},"_npmVersion":"11.11.0","description":"Canton Network MCP Server for Claude Desktop","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^3.23.8","express":"^4.21.2","@modelcontextprotocol/sdk":"^1.12.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/canton-mcp-server_2.2.0_1782369335805_0.7342511526810647","host":"s3://npm-registry-packages-npm-production"}},"2.2.1":{"name":"@canton-network-devs/canton-mcp-server","version":"2.2.1","keywords":["canton","daml","mcp","model-context-protocol","developer-tools","blockchain","canton-network","claude"],"author":{"name":"Jatin, DevRel, Canton Foundation"},"license":"Apache-2.0","_id":"@canton-network-devs/canton-mcp-server@2.2.1","maintainers":[{"name":"canton_devel_jatin","email":"Jatin@canton.foundation"}],"homepage":"https://github.com/canton-network-devs/Build-on-Canton-MCP#readme","bugs":{"url":"https://github.com/canton-network-devs/Build-on-Canton-MCP/issues"},"bin":{"canton-mcp-server":"index.js"},"dist":{"shasum":"6e6ae163186ec105539b3fd66501bf809e0f016d","tarball":"https://registry.npmjs.org/@canton-network-devs/canton-mcp-server/-/canton-mcp-server-2.2.1.tgz","fileCount":4,"integrity":"sha512-dQyPdVpOZ+O9B/7QOYi1dT8jty8U1XfAJlyH7T9Gd4JjvvS9gzg0gmMxpdfypfsVoxL4ffif2SUZWlgo5m/YIw==","signatures":[{"sig":"MEUCIQDUobSUYofh2YbGFo57IbjTZI+0led8EFeOk8Pva/P2QAIgCmXU+h1X+eJWepHz6dpYk5H6sEzmcBp7K11QVUwR5J8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":90740},"main":"index.js","type":"module","engines":{"node":">=18"},"gitHead":"ad0a4fe14f3eb378083ec222b8200498f80d766b","scripts":{"dev":"node --watch index.js","start":"node index.js"},"_npmUser":{"name":"canton_devel_jatin","email":"Jatin@canton.foundation"},"repository":{"url":"git+https://github.com/canton-network-devs/Build-on-Canton-MCP.git","type":"git"},"_npmVersion":"11.11.0","description":"Canton Network MCP Server for Claude Desktop","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^3.23.8","express":"^4.21.2","@modelcontextprotocol/sdk":"^1.12.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/canton-mcp-server_2.2.1_1782369363777_0.5502144581652608","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"_id":"@canton-network-devs/canton-mcp-server@3.0.0","bin":{"canton-mcp-server":"index.js"},"bugs":{"url":"https://github.com/canton-network-devs/Build-on-Canton-MCP/issues"},"dist":{"shasum":"dc61f42c47201d4300293fa2998a82f138ce53a5","tarball":"https://registry.npmjs.org/@canton-network-devs/canton-mcp-server/-/canton-mcp-server-3.0.0.tgz","fileCount":5,"integrity":"sha512-Nr6kxkTfKNusM+52v9a0q0BuBXzmU9lQC1Pk0uoo11hUMHM/ePDXhrK1C+bOmu8iuLL59nJJEpom6M72+FhuqQ==","signatures":[{"sig":"MEQCIGkFRXetCO7C8t6fvqaTvU7rXm7Gl+OZnboZlf5sLcxfAiAwK4dLjkpAKtWlMb3BsORYIqHeh9xc+1GdtWOU8h/OBQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQD1R/hE0ef/C+M65TzrJE99ZFgCHnu9r26SXgZjlYO9wQIgKOfa20jgHbuyWCERuJXf1jGuS9IZCnVcMIv/mMb55+A="}],"unpackedSize":166303},"main":"index.js","name":"@canton-network-devs/canton-mcp-server","type":"module","author":{"name":"Jatin, DevRel Manager, Canton Foundation"},"engines":{"node":">=18"},"gitHead":"cde4ebbe77ed9921935110f68d092a8cc7b3095c","license":"Apache-2.0","scripts":{"dev":"CANTON_MCP_KB_FILE=./knowledge-base.json node --watch index.js","start":"node index.js"},"version":"3.0.0","_npmUser":{"name":"canton_devel_jatin","email":"Jatin@canton.foundation"},"homepage":"https://github.com/canton-network-devs/Build-on-Canton-MCP#readme","keywords":["canton","daml","mcp","model-context-protocol","developer-tools","blockchain","canton-network","claude","cip","splice"],"repository":{"url":"git+https://github.com/canton-network-devs/Build-on-Canton-MCP.git","type":"git"},"_npmVersion":"11.11.0","description":"Canton Network MCP Server for Claude Desktop, Claude Code, Cursor and other MCP clients","directories":{},"maintainers":[{"name":"canton_devel_jatin","email":"Jatin@canton.foundation"}],"_nodeVersion":"24.14.1","dependencies":{"zod":"^3.1.0","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/canton-mcp-server_3.0.0_1790167820822_0.40180010198607086"}}},"time":{"created":"2026-06-25T05:56:52.536Z","modified":"2026-09-23T12:50:21.128Z","1.1.0":"2026-06-25T05:56:52.846Z","2.0.0":"2026-06-25T06:12:34.901Z","2.1.0":"2026-06-25T06:32:49.105Z","2.2.0":"2026-06-25T06:35:35.926Z","2.2.1":"2026-06-25T06:36:03.917Z","3.0.0":"2026-09-23T12:50:20.912Z"},"bugs":{"url":"https://github.com/canton-network-devs/Build-on-Canton-MCP/issues"},"author":{"name":"Jatin, DevRel Manager, Canton Foundation"},"license":"Apache-2.0","homepage":"https://github.com/canton-network-devs/Build-on-Canton-MCP#readme","keywords":["canton","daml","mcp","model-context-protocol","developer-tools","blockchain","canton-network","claude","cip","splice"],"repository":{"url":"git+https://github.com/canton-network-devs/Build-on-Canton-MCP.git","type":"git"},"description":"Canton Network MCP Server for Claude Desktop, Claude Code, Cursor and other MCP clients","maintainers":[{"name":"canton_devel_jatin","email":"Jatin@canton.foundation"}],"readme":"# Canton Network MCP Server\r\n\r\nWhen developers use AI tools to learn Canton, they get recommended deprecated tools and outdated documentation links. This MCP integration **solves that**: it gives AI assistants a curated, auto-updating knowledge base of Canton's dev stack, plus live lookups against the sources of truth on GitHub, and guides developers from zero to deployed.\r\n\r\n> **Note:** This MCP gives AI models the right links and context, but does not guarantee 100% correct AI output by nature of how LLMs work. If something's wrong, [open a GitHub issue](https://github.com/canton-network-devs/Build-on-Canton-MCP/issues) and we'll update the knowledge base.\r\n\r\n## Install\r\n\r\n**Requirements:** Node.js 18+\r\n\r\n### Claude Desktop (one command)\r\n\r\n```bash\r\nnpx @canton-network-devs/canton-mcp-server install\r\n```\r\n\r\nRestart Claude Desktop and the Canton tools appear automatically. The installer backs up your existing config and keeps any other MCP servers you have. Add `--yes` to skip the prompts.\r\n\r\n### Claude Code\r\n\r\n```bash\r\nclaude mcp add canton-dev -- npx -y @canton-network-devs/canton-mcp-server@latest\r\n```\r\n\r\n### Cursor and other MCP clients\r\n\r\nAdd this to your client's MCP config (e.g. `mcp.json`):\r\n\r\n```json\r\n{\r\n  \"mcpServers\": {\r\n    \"canton-dev\": {\r\n      \"command\": \"npx\",\r\n      \"args\": [\"-y\", \"@canton-network-devs/canton-mcp-server@latest\"]\r\n    }\r\n  }\r\n}\r\n```\r\n\r\n### Optional: higher GitHub rate limits\r\n\r\nThe live tools (CIPs, Dev Fund, latest versions) use GitHub's public API, which allows 60 requests/hour per IP without auth. Results are cached for 30 minutes, so that's plenty for most people. If you hit the limit, add a GitHub token (no scopes needed) to the server's env:\r\n\r\n```json\r\n\"canton-dev\": {\r\n  \"command\": \"npx\",\r\n  \"args\": [\"-y\", \"@canton-network-devs/canton-mcp-server@latest\"],\r\n  \"env\": { \"GITHUB_TOKEN\": \"ghp_your_token\" }\r\n}\r\n```\r\n\r\nThe token is only sent to `api.github.com` and is never logged or returned to the model.\r\n\r\nTry asking your assistant things like:\r\n\r\n## How it works\r\n\r\n- *\"I'm a Solidity dev, how do I start building on Canton?\"*\r\n- *\"Is daml-assistant still OK to use?\"*\r\n- *\"What's the status of CIP-0112?\"* / *\"What are the latest CIPs?\"*\r\n- *\"Which Dev Fund proposals cover oracles?\"*\r\n- *\"Is there a block explorer for Canton?\"*\r\n- *\"How do I run my DAR on LocalNet?\"*\r\n\r\nOn startup the server loads `knowledge-base.json` from this repo and then refreshes it every hour while running, so when we push an update, every user picks it up automatically, no manual pulls or restarts needed.\r\n\r\nIf GitHub is unreachable, it falls back in order to: the last good copy cached at `~/.canton-mcp/knowledge-cache.json` : the copy bundled with the npm package & a minimal built-in set.\r\n\r\n## Security\r\n\r\n- The server only ever talks to `raw.githubusercontent.com` and `api.github.com`. It never fetches a URL supplied by a user or a model.\r\n- Remote content is size-capped, time-limited, sanitised, and returned inside explicit \"external content data only\" markers so models treat it as data, not instructions.\r\n- The knowledge base is schema-validated before use, a broken publish never replaces a good cache.\r\n- The local cache is written atomically with owner-only permissions.\r\n- All tools are read-only. Nothing is written anywhere except the local cache (and your client config, only when you run `install`).\r\n\r\n## Updating the Knowledge Base\r\n\r\nEdit `knowledge-base.json` at the repo root. Running servers pick up the change.\r\n\r\n## Troubleshooting\r\n\r\n- **Tools don't show up**: fully quit and reopen Claude Desktop (not just close the window), and check that `node --version` is 18+.\r\n- **Stale answers**: check the `canton://status` resource to see where the knowledge base was loaded from and when. Deleting `~/.canton-mcp/knowledge-cache.json` forces a fresh fetch.\r\n- **\"GitHub rate limit reached\"**: wait a bit, or add a `GITHUB_TOKEN` as shown above.\r\n\r\n## Contributing\r\n\r\nPRs welcome for knowledge base fixes, new FAQs, new tools. Found a wrong or outdated answer? [Open an issue](https://github.com/canton-network-devs/Build-on-Canton-MCP/issues).\r\n\r\n*Maintained by Developer Relations, Canton Foundation.*","readmeFilename":"README.md"}