{"_id":"@cqsjjb/zentao-bug-fix","_rev":"3-f093e4ef36b5cb722b1ddac7bb6d59fa","name":"@cqsjjb/zentao-bug-fix","dist-tags":{"latest":"1.0.2"},"versions":{"1.0.0":{"name":"@cqsjjb/zentao-bug-fix","version":"1.0.0","keywords":["zentao","bug","mcp","model-context-protocol","cursor","parser","禅道"],"author":{"name":"cqsjjb"},"license":"MIT","_id":"@cqsjjb/zentao-bug-fix@1.0.0","maintainers":[{"name":"cqjjb","email":"995934055@qq.com"}],"homepage":"https://github.com/cqsjjb/zentao-bug-fix#readme","bugs":{"url":"https://github.com/cqsjjb/zentao-bug-fix/issues"},"bin":{"zentao-bug-fix":"mcp-server.js"},"dist":{"shasum":"c4190bcd6239c05a418b8908d18a5d2b078ef865","tarball":"https://registry.npmjs.org/@cqsjjb/zentao-bug-fix/-/zentao-bug-fix-1.0.0.tgz","fileCount":7,"integrity":"sha512-4hKRpd2itA1MJsfPfODa9GvxQx/e+T6fEibfFwwyA8eZzZsUuzUTQKxxlW6XA5uT0/10A9knCeYDAqbHE+b2cg==","signatures":[{"sig":"MEUCIE1pR6trGccPVGLnoILcI062fpeWVNaC0h6b2quo7kHEAiEAvcdHvkO5pq9gMT1G/0bLl6oNi5V/Za0+puwHoBs7uNI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":25626},"main":"mcp-server.js","engines":{"node":">=14.0.0"},"gitHead":"ad4b667ba03b74fe72151ebbc951b4921c87e99d","scripts":{"test":"node zentao-parser.js","start":"node mcp-server.js"},"_npmUser":{"name":"cqjjb","email":"995934055@qq.com"},"repository":{"url":"git+https://github.com/cqsjjb/zentao-bug-fix.git","type":"git"},"_npmVersion":"10.9.0","description":"禅道Bug解析 MCP 工具 - 在 Cursor Chat 中解析和展示禅道Bug详情","directories":{},"_nodeVersion":"22.12.0","dependencies":{"cheerio":"^1.2.0","@modelcontextprotocol/sdk":"^1.27.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/zentao-bug-fix_1.0.0_1773396347907_0.8897691537052579","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@cqsjjb/zentao-bug-fix","version":"1.0.1","keywords":["zentao","bug","mcp","model-context-protocol","cursor","parser","禅道"],"author":{"name":"cqsjjb"},"license":"MIT","_id":"@cqsjjb/zentao-bug-fix@1.0.1","maintainers":[{"name":"cqjjb","email":"995934055@qq.com"}],"homepage":"https://github.com/cqsjjb/zentao-bug-fix#readme","bugs":{"url":"https://github.com/cqsjjb/zentao-bug-fix/issues"},"bin":{"zentao-bug-fix":"mcp-server.js"},"dist":{"shasum":"7c50f3ae0c5e4c124a5629674de5d7b5622c0536","tarball":"https://registry.npmjs.org/@cqsjjb/zentao-bug-fix/-/zentao-bug-fix-1.0.1.tgz","fileCount":7,"integrity":"sha512-TfToU3IKDkJ36EZMqDJYMkRodORAXciPqD3TaZFFrcMo6y+OVz9xtGt/iGPpaEfn4kEC3FO5Oep3bcNybs3BnQ==","signatures":[{"sig":"MEYCIQD9j8lPQEk2lgRZNrpknznLt+WHBRNTSlUxhuZAsXjB8QIhANYkGOGIg0t9K14/hKZr8cUiKB7VbW4/BcajeYYQk1Kh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29523},"main":"mcp-server.js","engines":{"node":">=14.0.0"},"gitHead":"ad4b667ba03b74fe72151ebbc951b4921c87e99d","scripts":{"test":"node zentao-parser.js","start":"node mcp-server.js"},"_npmUser":{"name":"cqjjb","email":"995934055@qq.com"},"repository":{"url":"git+https://github.com/cqsjjb/zentao-bug-fix.git","type":"git"},"_npmVersion":"10.9.0","description":"禅道Bug解析 MCP 工具 - 在 Cursor Chat 中解析和展示禅道Bug详情","directories":{},"_nodeVersion":"22.12.0","dependencies":{"cheerio":"^1.2.0","@modelcontextprotocol/sdk":"^1.27.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/zentao-bug-fix_1.0.1_1773469418050_0.237521584309053","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@cqsjjb/zentao-bug-fix","version":"1.0.2","description":"禅道Bug解析 MCP 工具 - 在 Cursor Chat 中解析和展示禅道Bug详情","main":"mcp-server.js","bin":{"zentao-bug-fix":"mcp-server.js"},"keywords":["zentao","bug","mcp","model-context-protocol","cursor","parser","禅道"],"author":{"name":"cqsjjb"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/cqsjjb/zentao-bug-fix.git"},"engines":{"node":">=14.0.0"},"scripts":{"test":"node zentao-parser.js","start":"node mcp-server.js"},"dependencies":{"@modelcontextprotocol/sdk":"^1.27.1","cheerio":"^1.2.0"},"publishConfig":{"access":"public"},"_id":"@cqsjjb/zentao-bug-fix@1.0.2","gitHead":"855906df4ad99fdbd9b429ea7a4015dbc9366881","bugs":{"url":"https://github.com/cqsjjb/zentao-bug-fix/issues"},"homepage":"https://github.com/cqsjjb/zentao-bug-fix#readme","_nodeVersion":"22.12.0","_npmVersion":"10.9.0","dist":{"integrity":"sha512-AhowOypszdElWFeI59mGwxLYEh/usVpj8VGqhoNjNoBBgIiy2IJ2DuBLc5tDPPt5qj+M7oq3Q5lKD4Rs4gxhJw==","shasum":"cd045af17445616d349a0a67167003f5722ab8a5","tarball":"https://registry.npmjs.org/@cqsjjb/zentao-bug-fix/-/zentao-bug-fix-1.0.2.tgz","fileCount":7,"unpackedSize":33115,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQC0dovH/LJu6bVTt3haAlkGKriMOAkqCf9D+qRmwhg9hAIgIG3wgyPbskjYn4AqdjIWdDFfBOmwvubOm7E8F+e3qiA="}]},"_npmUser":{"name":"cqjjb","email":"995934055@qq.com"},"directories":{},"maintainers":[{"name":"cqjjb","email":"995934055@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/zentao-bug-fix_1.0.2_1773470185774_0.7629569844593684"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-13T10:05:47.692Z","modified":"2026-03-14T06:36:26.062Z","1.0.0":"2026-03-13T10:05:48.076Z","1.0.1":"2026-03-14T06:23:38.214Z","1.0.2":"2026-03-14T06:36:25.925Z"},"bugs":{"url":"https://github.com/cqsjjb/zentao-bug-fix/issues"},"author":{"name":"cqsjjb"},"license":"MIT","homepage":"https://github.com/cqsjjb/zentao-bug-fix#readme","keywords":["zentao","bug","mcp","model-context-protocol","cursor","parser","禅道"],"repository":{"type":"git","url":"git+https://github.com/cqsjjb/zentao-bug-fix.git"},"description":"禅道Bug解析 MCP 工具 - 在 Cursor Chat 中解析和展示禅道Bug详情","maintainers":[{"name":"cqjjb","email":"995934055@qq.com"}],"readme":"# 禅道Bug解析 MCP 工具\r\n\r\n这是一个基于 Model Context Protocol (MCP) 的禅道Bug详情解析工具，可以在 Cursor Chat 中直接调用，解析并展示禅道Bug的详细信息，包括图片。\r\n\r\n## 功能特性\r\n\r\n- ✅ 解析禅道Bug页面的详细信息\r\n- ✅ 提取Bug标题、步骤、结果、期望等结构化内容\r\n- ✅ 自动提取并展示Bug中的图片\r\n- ✅ 解析基本信息表格数据\r\n- ✅ 支持自定义Cookie和超时设置\r\n\r\n## 安装步骤\r\n\r\n### 1. 安装包\r\n\r\n```bash\r\nnpm install -g @cqsjjb/zentao-bug-fix\r\n```\r\n\r\n或者作为项目依赖安装：\r\n\r\n```bash\r\nnpm install @cqsjjb/zentao-bug-fix\r\n```\r\n\r\n### 2. 配置 Cursor MCP 服务器\r\n\r\n在 Cursor 中配置 MCP 服务器，有两种方式：\r\n\r\n#### 方式一：全局配置（推荐，适用于全局安装）\r\n\r\n编辑 Cursor 的全局配置文件：`~/.cursor/mcp.json`（Windows: `C:\\Users\\<用户名>\\.cursor\\mcp.json`）\r\n\r\n**如果使用全局安装**，使用以下配置：\r\n\r\n```json\r\n{\r\n  \"mcpServers\": {\r\n    \"zentao-bug-fix\": {\r\n      \"command\": \"node\",\r\n      \"args\": [\"<全局node_modules路径>/@cqsjjb/zentao-bug-fix/mcp-server.js\"],\r\n      \"env\": {}\r\n    }\r\n  }\r\n}\r\n```\r\n\r\n**Windows 示例**：\r\n```json\r\n{\r\n  \"mcpServers\": {\r\n    \"zentao-bug-fix\": {\r\n      \"command\": \"node\",\r\n      \"args\": [\"C:\\\\Users\\\\<用户名>\\\\AppData\\\\Roaming\\\\npm\\\\node_modules\\\\@cqsjjb\\\\zentao-bug-fix\\\\mcp-server.js\"],\r\n      \"env\": {}\r\n    }\r\n  }\r\n}\r\n```\r\n\r\n**macOS/Linux 示例**：\r\n```json\r\n{\r\n  \"mcpServers\": {\r\n    \"zentao-bug-fix\": {\r\n      \"command\": \"node\",\r\n      \"args\": [\"/usr/local/lib/node_modules/@cqsjjb/zentao-bug-fix/mcp-server.js\"],\r\n      \"env\": {}\r\n    }\r\n  }\r\n}\r\n```\r\n\r\n#### 方式二：项目配置（适用于项目依赖安装）\r\n\r\n在项目根目录创建 `.cursor/mcp.json` 文件：\r\n\r\n```json\r\n{\r\n  \"mcpServers\": {\r\n    \"zentao-bug-fix\": {\r\n      \"command\": \"node\",\r\n      \"args\": [\"./node_modules/@cqsjjb/zentao-bug-fix/mcp-server.js\"],\r\n      \"env\": {}\r\n    }\r\n  }\r\n}\r\n```\r\n\r\n#### 方式三：使用 npx（无需安装，推荐）\r\n\r\n使用 `npx` 可以直接运行包，无需先安装。在 Cursor 的全局配置文件 `~/.cursor/mcp.json`（Windows: `C:\\Users\\<用户名>\\.cursor\\mcp.json`）中添加：\r\n\r\n```json\r\n{\r\n  \"mcpServers\": {\r\n    \"zentao-bug-fix\": {\r\n      \"command\": \"npx\",\r\n      \"args\": [\"-y\", \"@cqsjjb/zentao-bug-fix\"],\r\n      \"env\": {}\r\n    }\r\n  }\r\n}\r\n```\r\n\r\n**优势**：\r\n- ✅ 无需手动安装包\r\n- ✅ 自动使用最新版本\r\n- ✅ `-y` 参数自动确认安装提示\r\n\r\n**提示**：可以使用 `npm list -g @cqsjjb/zentao-bug-fix` 或 `npm list @cqsjjb/zentao-bug-fix` 查找实际安装路径。\r\n\r\n### 3. 重启 Cursor\r\n\r\n配置完成后，重启 Cursor IDE 以使配置生效。\r\n\r\n## 使用方法\r\n\r\n在 Cursor Chat 中，你可以直接使用以下命令：\r\n\r\n```\r\n使用zentao工具修复这个 http://192.168.1.252/zentao/bug-view-33360.html bug\r\n```\r\n\r\n或者：\r\n\r\n```\r\n获取这个bug的详情：http://192.168.1.252/zentao/bug-view-33360.html\r\n```\r\n\r\n工具会自动：\r\n1. 解析Bug URL\r\n2. 获取Bug页面内容\r\n3. 提取结构化信息（标题、步骤、结果、期望）\r\n4. 提取并展示所有相关图片\r\n5. 返回格式化的结果到聊天界面\r\n\r\n## 工具参数\r\n\r\n工具支持以下参数：\r\n\r\n- `bugUrl` (必需): 禅道Bug页面的完整URL\r\n- `cookie` (可选): 自定义Cookie字符串，用于身份验证\r\n- `timeout` (可选): 请求超时时间（毫秒），默认10000\r\n\r\n## 返回数据格式\r\n\r\n工具返回的数据包含以下结构：\r\n\r\n```json\r\n{\r\n  \"pageTitle\": {\r\n    \"Bug标题\": \"xxx\",\r\n    \"Bug编号\": \"xxx\"\r\n  },\r\n  \"legendBasicInfo\": {\r\n    \"所属产品\": \"xxx\",\r\n    \"所属模块\": \"xxx\",\r\n    \"Bug状态\": \"xxx\"\r\n  },\r\n  \"detail\": {\r\n    \"title\": \"Bug详情\",\r\n    \"content\": {\r\n      \"steps\": \"步骤内容\",\r\n      \"result\": \"结果内容\",\r\n      \"expected\": \"期望内容\",\r\n      \"images\": [\r\n        {\r\n          \"src\": \"图片URL\",\r\n          \"alt\": \"图片描述\"\r\n        }\r\n      ]\r\n    }\r\n  }\r\n}\r\n```\r\n\r\n## 项目结构\r\n\r\n```\r\nzentao-bug-fix/\r\n├── zentao-parser.js     # Bug解析核心函数\r\n├── mcp-server.js        # MCP服务器实现\r\n├── package.json         # 项目依赖\r\n├── mcp.json.example     # MCP配置示例\r\n└── README.md           # 本文件\r\n```\r\n\r\n## 开发说明\r\n\r\n### 核心文件\r\n\r\n- `zentao-parser.js`: 包含 `fetchBugDetail` 函数，负责HTTP请求和HTML解析\r\n- `mcp-server.js`: MCP服务器实现，将 `fetchBugDetail` 封装为MCP工具\r\n\r\n### 自定义Cookie\r\n\r\n如果需要使用不同的Cookie，可以通过以下方式配置：\r\n1. 设置环境变量 `ZENTAO_COOKIE`\r\n2. 在调用工具时传入 `cookie` 参数\r\n3. 修改 `zentao-parser.js` 中的默认Cookie值\r\n\r\n## 故障排除\r\n\r\n### 工具未出现在 Cursor 中\r\n\r\n1. 检查 `mcp.json` 配置文件路径是否正确\r\n2. 确认 `mcp-server.js` 文件路径在配置中正确\r\n3. 重启 Cursor IDE\r\n4. 检查 Node.js 是否已安装并在 PATH 中\r\n\r\n### 请求失败\r\n\r\n1. 检查网络连接\r\n2. 确认Bug URL是否正确\r\n3. 检查Cookie是否有效（如果使用默认Cookie）\r\n4. 查看错误信息中的详细提示\r\n\r\n### 图片无法显示\r\n\r\n1. 确认图片URL是否可访问\r\n2. 检查网络连接\r\n3. 确认图片URL是否需要身份验证\r\n\r\n## 许可证\r\n\r\nMIT\r\n","readmeFilename":"README.md"}