{"_id":"@dannyvan/zentao-mcp","_rev":"4-c636f96ed1308f3516a453538675e7de","name":"@dannyvan/zentao-mcp","dist-tags":{"latest":"0.1.3"},"versions":{"0.1.0":{"name":"@dannyvan/zentao-mcp","version":"0.1.0","keywords":["mcp","zentao","bug"],"license":"MIT","_id":"@dannyvan/zentao-mcp@0.1.0","maintainers":[{"name":"dannyvan","email":"xiaokang.fan@gmail.com"}],"homepage":"https://github.com/dannyvan/zentao-mcp#readme","bugs":{"url":"https://github.com/dannyvan/zentao-mcp/issues"},"bin":{"zentao-mcp":"dist/index.js"},"dist":{"shasum":"f8d5528930b8cefe870cf7d0d11d8df04be32997","tarball":"https://registry.npmjs.org/@dannyvan/zentao-mcp/-/zentao-mcp-0.1.0.tgz","fileCount":21,"integrity":"sha512-41SH3VvVQrncwnQWkjLmJ5Cby5bDQrKZP2Py0r4M1N2Xq5W1EhFew8ZRu8HLKzO+XCWs5+AIpqItQ7uFUP02Zg==","signatures":[{"sig":"MEQCIDtNqod4NpvXzs+puKJWOz0Gd/LLfsi7dLeudX+g3MFVAiB9TwPc1LkcDQYCCWLyTdci6NkSOe4rmh2U7Kd9OBiacA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":64906},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"2903385f193d4da1fbc732b1f69595a2c6d069ad","scripts":{"build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"dannyvan","email":"xiaokang.fan@gmail.com"},"repository":{"url":"git+https://github.com/dannyvan/zentao-mcp.git","type":"git"},"_npmVersion":"11.17.0","description":"禅道 MCP + CLI，直连 REST API v1。只做 Bug，写操作默认 dry-run。","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^3.23.8","axios":"^1.7.9","@modelcontextprotocol/sdk":"^1.6.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.2","@types/node":"^22.10.0"},"_npmOperationalInternal":{"tmp":"tmp/zentao-mcp_0.1.0_1788926394710_0.8396084786520448","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@dannyvan/zentao-mcp","version":"0.1.1","keywords":["mcp","zentao","bug"],"license":"MIT","_id":"@dannyvan/zentao-mcp@0.1.1","maintainers":[{"name":"dannyvan","email":"xiaokang.fan@gmail.com"}],"homepage":"https://github.com/dannyvan/zentao-mcp#readme","bugs":{"url":"https://github.com/dannyvan/zentao-mcp/issues"},"bin":{"zentao-mcp":"dist/index.js"},"dist":{"shasum":"4d52be1b76e75c843abdfc1ff05e73a67c55adfe","tarball":"https://registry.npmjs.org/@dannyvan/zentao-mcp/-/zentao-mcp-0.1.1.tgz","fileCount":25,"integrity":"sha512-7Q/Z39Gxvjjae2qJxXRlUpRYmNU94P2K4Ipu6OmMvbeRPzPMXrbKoPlpDmMVHMOuu7UzdF8NCUdBtmpRKbXfFQ==","signatures":[{"sig":"MEYCIQDKLDIl+YAwyBrTppncXcDkBL5z6AzuD8DJlJVdfuZungIhAKWlUcm/kCO+xOwyDkYnZp16znM5492uGbXTMTOKKUQF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":68900},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"bedf02fd33a611f46e75d0ac104799aa7f94cc93","scripts":{"build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"dannyvan","email":"xiaokang.fan@gmail.com"},"repository":{"url":"git+https://github.com/dannyvan/zentao-mcp.git","type":"git"},"_npmVersion":"11.17.0","description":"禅道 MCP + CLI，直连 REST API v1。只做 Bug，写操作默认 dry-run。","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^3.23.8","axios":"^1.7.9","@modelcontextprotocol/sdk":"^1.6.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.2","@types/node":"^22.10.0"},"_npmOperationalInternal":{"tmp":"tmp/zentao-mcp_0.1.1_1788931427456_0.21474376289603425","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@dannyvan/zentao-mcp","version":"0.1.2","keywords":["mcp","zentao","bug"],"license":"MIT","_id":"@dannyvan/zentao-mcp@0.1.2","maintainers":[{"name":"dannyvan","email":"xiaokang.fan@gmail.com"}],"homepage":"https://github.com/dannyvan/zentao-mcp#readme","bugs":{"url":"https://github.com/dannyvan/zentao-mcp/issues"},"bin":{"zentao-mcp":"dist/index.js"},"dist":{"shasum":"a11b50834c2a14d5e8ea3ab9e37b1a7895f508cf","tarball":"https://registry.npmjs.org/@dannyvan/zentao-mcp/-/zentao-mcp-0.1.2.tgz","fileCount":25,"integrity":"sha512-tfsEeP/CGStFH97/SAayRv2WjTEaB0pWShAa+1+nWmKj3X+0+6eEU7LJw6d4W/pPhWM564Trb6Tjl4F2pVJIsA==","signatures":[{"sig":"MEYCIQDZP4VY/nXi1MtA/kZiLeQ7gHU9QF9OvEyVZK/1qQQFDQIhAMFR+WxU510Uug0itVgwHl+KKG7TApljH7b0N2HgGg+C","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":70053},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"28af10dfc630383b7af23997dd8d95117f0fcdde","scripts":{"build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"dannyvan","email":"xiaokang.fan@gmail.com"},"repository":{"url":"git+https://github.com/dannyvan/zentao-mcp.git","type":"git"},"_npmVersion":"11.17.0","description":"禅道 MCP + CLI，直连 REST API v1。只做 Bug，写操作默认 dry-run。","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^3.23.8","axios":"^1.7.9","@modelcontextprotocol/sdk":"^1.6.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.2","@types/node":"^22.10.0"},"_npmOperationalInternal":{"tmp":"tmp/zentao-mcp_0.1.2_1788931820610_0.07191076508078331","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@dannyvan/zentao-mcp","version":"0.1.3","description":"禅道 MCP + CLI，直连 REST API v1。只做 Bug，写操作默认 dry-run。","type":"module","main":"dist/index.js","bin":{"zentao-mcp":"bin/zentao-mcp"},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/dannyvan/zentao-mcp.git"},"bugs":{"url":"https://github.com/dannyvan/zentao-mcp/issues"},"homepage":"https://github.com/dannyvan/zentao-mcp#readme","license":"MIT","keywords":["mcp","zentao","bug"],"scripts":{"build":"tsc","start":"node dist/index.js","pretest":"npm run build","test":"node test-npx.mjs","prepare":"node scripts/link-local-bin.mjs","prepublishOnly":"npm run build"},"engines":{"node":">=18"},"dependencies":{"@modelcontextprotocol/sdk":"^1.6.1","axios":"^1.7.9","zod":"^3.23.8"},"devDependencies":{"@types/node":"^22.10.0","typescript":"^5.7.2"},"gitHead":"3fd7c09ca95df45f0263d2aff96a32f7cfa28b5a","types":"./dist/index.d.ts","_id":"@dannyvan/zentao-mcp@0.1.3","_nodeVersion":"24.19.0","_npmVersion":"11.17.0","dist":{"integrity":"sha512-Ofb0untOs5FJCwiHhkDVrFBD3HKDCSzLJcvoToXk5SA+mJ67w1L/IA98mdKQkkxzfFu+yB1x/X41My8uIsHkBQ==","shasum":"5a7dae2698bbce24f1d3f63571eed53293ab889b","tarball":"https://registry.npmjs.org/@dannyvan/zentao-mcp/-/zentao-mcp-0.1.3.tgz","fileCount":27,"unpackedSize":70954,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCICJ8Cz+0T7PiC64xVp+dkIBeB1gANnTaWHLWTutRPLL7AiBPrXSW5BPDTgjPDJXN7D/3vavFHM1WdLIpWzMzpP3TvQ=="}]},"_npmUser":{"name":"dannyvan","email":"xiaokang.fan@gmail.com"},"directories":{},"maintainers":[{"name":"dannyvan","email":"xiaokang.fan@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/zentao-mcp_0.1.3_1788934066471_0.6128609908996148"},"_hasShrinkwrap":false}},"time":{"created":"2026-09-09T03:59:54.493Z","modified":"2026-09-09T06:07:46.788Z","0.1.0":"2026-09-09T03:59:54.853Z","0.1.1":"2026-09-09T05:23:47.614Z","0.1.2":"2026-09-09T05:30:20.831Z","0.1.3":"2026-09-09T06:07:46.624Z"},"bugs":{"url":"https://github.com/dannyvan/zentao-mcp/issues"},"license":"MIT","homepage":"https://github.com/dannyvan/zentao-mcp#readme","keywords":["mcp","zentao","bug"],"repository":{"type":"git","url":"git+https://github.com/dannyvan/zentao-mcp.git"},"description":"禅道 MCP + CLI，直连 REST API v1。只做 Bug，写操作默认 dry-run。","maintainers":[{"name":"dannyvan","email":"xiaokang.fan@gmail.com"}],"readme":"# @dannyvan/zentao-mcp\n\n禅道（ZenTao）**MCP + CLI**，直连 REST API（`api.php/v1`）。只做 Bug：读详情 / 列表 / 搜索，写评论与状态流转。写操作默认 dry-run。\n\n不必 clone。MCP 启动时会带上用法（`instructions`）。\n\n## 安装\n\nMCP：\n\n```bash\nnpx -y @dannyvan/zentao-mcp\n```\n\n把 skill 装到本机 agent（识别已安装的工具，并询问装哪几家，与得到大脑 `npx skills add iswalle/getnote-cli` 相同）：\n\n```bash\nnpx -y @dannyvan/zentao-mcp install-skill\n# 等同于：npx skills add dannyvan/zentao-mcp -g\n```\n\n发布到 npm 之前，可在本仓 `npm install && npm run build` 后用 `node dist/index.js`。\n\n## 认证\n\n| 变量 | 说明 |\n|---|---|\n| `ZENTAO_URL` | **必填**，禅道地址（不含 `/api.php/v1`） |\n| `ZENTAO_ACCOUNT` + `ZENTAO_PASSWORD` | 推荐：自动换取并刷新 token |\n| `ZENTAO_TOKEN` | 或直接给现成 token（会过期） |\n\n## MCP\n\n```json\n{\n  \"mcpServers\": {\n    \"zentao\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@dannyvan/zentao-mcp\"],\n      \"env\": {\n        \"ZENTAO_URL\": \"https://<禅道域名>/zentao\",\n        \"ZENTAO_ACCOUNT\": \"<账号>\",\n        \"ZENTAO_PASSWORD\": \"<密码>\"\n      }\n    }\n  }\n}\n```\n\n**Tools**\n\n- 读：`zentao_get_bug` / `zentao_list_bugs` / `zentao_search_bugs`\n- 写：`zentao_comment_bug`（v1 不支持，会报错）/ `resolve` `close` `activate` `confirm` `assign`（默认 dry-run，带 `confirm=true` 才提交）\n\n`zentao_list_bugs` 的 `total` 禅道可能不准，以翻页实际列出为准。\n\n## CLI\n\n```bash\nnpx -y @dannyvan/zentao-mcp skill\nnpx -y @dannyvan/zentao-mcp help\nnpx -y @dannyvan/zentao-mcp get-bug 123\nnpx -y @dannyvan/zentao-mcp list-bugs --product 1 --limit 50\nnpx -y @dannyvan/zentao-mcp assign-bug 123 --assigned-to someone\nnpx -y @dannyvan/zentao-mcp assign-bug 123 --assigned-to someone --confirm\n```\n\n无参数或 `serve` 时走 MCP stdio。输出 JSON；出错写 stderr，退出码非 0。\n\n## 安全\n\n- 写操作默认 dry-run（MCP：`confirm=true`；CLI：`--confirm`）\n- 批量改状态请串行逐条，不要并行\n- 写操作在禅道可见\n","readmeFilename":"README.md"}