zentao-rest-v1-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@zentao-rest-v1-mcp Show all my pending tasks"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
zentao-rest-v1-mcp
面向禅道开源版的 MCP 服务。优先使用 REST v1,只有明确的 REST v1 路由不兼容时才回退 Legacy Session API。
特性
支持禅道 REST v1 Token 认证。
支持任务、Bug、需求、测试用例和测试单的查询与操作。
支持创建任务、更新任务、开始任务、完成任务、关闭任务和解决 Bug。
写入操作遵循“写入一次、写后回读”,避免重复提交。
读取接口在明确不兼容时回退 Legacy;认证失败、参数错误和写入结果不明时不自动切换通道。
支持
ZENTAO_TIMEOUT_MS和ZENTAO_SESSION_TTL_MS配置。
Related MCP server: ZenTao MCP Server
系统要求
Node.js
>=18.0.0禅道开源版实例,已启用对应 REST API 能力
安装
npm install -g zentao-rest-v1-mcpMCP 配置
{
"mcpServers": {
"zentao-rest-v1": {
"command": "zentao-rest-v1-mcp",
"args": [],
"env": {
"ZENTAO_URL": "https://your-zentao.example/zentao",
"ZENTAO_USERNAME": "your-account",
"ZENTAO_PASSWORD": "your-password",
"ZENTAO_TIMEOUT_MS": "30000",
"ZENTAO_SESSION_TTL_MS": "3000000"
}
}
}
}也可以直接运行本地构建产物:
node dist/index.js核心工具
读取:
getBugDetail、getTaskDetail、getMyBugs、getMyTasks、getStoryDetail任务:
createTask、updateTask、startTask、finishTask、closeTaskBug:
updateBug、resolveBug测试:
createTestCase、runTestCase
任务完成流程必须遵循:
wait → startTask → doing → finishTask → done → closeTask → closed完成任务时必须提交实际开始时间 realStarted 和不早于它的实际完成时间 finishedDate,不能只提交日期。
本地开发
pnpm install --frozen-lockfile
pnpm run build
pnpm run test:smoke配置说明
ZENTAO_URL:禅道站点地址,通常包含/zentao部署路径。ZENTAO_USERNAME:禅道账号。ZENTAO_PASSWORD:禅道密码,仅通过环境变量传入,不写入源码和日志。ZENTAO_TIMEOUT_MS:请求超时时间,默认30000毫秒。ZENTAO_SESSION_TTL_MS:Token 本地缓存时间,默认3000000毫秒。
许可证
MIT。原始 Legacy MCP 实现及其许可证声明保留在本包中。
相关链接
Available Tools
52 toolsanalyzeBugPriorityD
Inputs: bugId (required).
analyzeStoryComplexityD
Inputs: storyId (required).
analyzeTaskWorkloadD
Inputs: taskId (required).
batchResolveBugsD
Inputs: bugIds (required), resolution (required).
batchUpdateTasksD
Inputs: update (required), taskIds (required).
closeTaskD
Inputs: taskId (required), comment.
createTaskD
Inputs: name (required), type (required), executionId (required), pri, +8 more.
createTaskFromBugD
Inputs: bugId (required), desc, estimate, taskName, +1 more.
createTaskFromStoryD
Inputs: storyId (required), taskName (required), desc, estimate, +1 more.
createTestCaseD
Inputs: testCase (required).
exportBugD
Inputs: bugId (required), exportPath (required).
exportItemsD
Inputs: type (required), exportPath (required), id, url, +8 more.
exportModuleItemsAsMarkdownD
Inputs: url (required), exportPath (required).
exportStoriesBySearchD
Inputs: exportPath (required), limit, status, endDate, +4 more.
exportStoryD
Inputs: storyId (required), exportPath (required).
finishTaskD
Inputs: taskId (required), update.
formatTaskAsMarkdownD
Inputs: taskId (required).
generateBugSummaryD
Inputs: bugId (required), format.
generateCodePromptFromStoryD
Inputs: storyId (required).
generateCodeReviewChecklistD
Inputs: entityId (required), entityType (required).
generateStorySummaryD
Inputs: storyId (required), format.
generateTestPromptFromBugD
Inputs: bugId (required).
getBugDetailD
Inputs: bugId (required), downloadImages.
getBugRelatedStoryD
Inputs: bugId (required).
getConfigD
Inputs: no named parameters.
getDevelopmentContextD
Inputs: entityId (required), entityType (required), format.
getModuleItemsD
Inputs: url (required), exportPath (required).
getMyBugsD
Inputs: status, productId.
getMyBugStatisticsD
Inputs: no named parameters.
getMyTasksD
Inputs: status.
getMyTaskStatisticsD
Inputs: no named parameters.
getNextActionSuggestionsD
Inputs: entityId (required), entityType (required).
getProductBugsD
Inputs: productId (required), status, moduleId.
getProductsD
Inputs: no named parameters.
getProductStoriesD
Inputs: productId (required), status, moduleId.
getProductTestCasesD
Inputs: productId (required), status, moduleId.
getStoryDetailD
Inputs: storyId (required), downloadImages.
getStoryRelatedBugsD
Inputs: storyId (required).
getStoryTestCasesD
Inputs: storyId (required).
getTaskDetailD
Inputs: taskId (required).
getTestCaseDetailD
Inputs: caseId (required).
getTestTaskDetailD
Inputs: taskId (required).
getTestTaskResultsD
Inputs: taskId (required).
getTestTasksD
Inputs: productId.
initZentaoD
Inputs: no named parameters.
resolveBugD
Inputs: bugId (required), resolution (required).
runTestCaseD
Inputs: taskId (required), testRun (required).
searchStoriesD
Inputs: keyword (required), limit, status, endDate, +3 more.
searchStoriesByProductNameD
Inputs: keyword (required), productName (required), limit, status.
startTaskD
Inputs: taskId (required), update (required).
updateBugD
Inputs: bugId (required), update (required).
updateTaskD
Inputs: taskId (required), update (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 52 tools
Most tools have fairly clear resource/action targets, but several overlap conceptually: multiple export tools, multiple get-task/get-bug variants, and generic helpers like initZentao/getConfig are easy to confuse. Without descriptions, an agent could struggle to choose between related tools like exportItems, exportModuleItemsAsMarkdown, and exportStoriesBySearch.
The tools mostly follow a camelCase verb_noun pattern such as getTaskDetail, createTestCase, and resolveBug. Minor inconsistencies exist in singular/plural usage and entity-relationship naming, e.g. getStoryRelatedBugs vs getBugRelatedStory, but the overall convention is predictable and readable.
With 52 tools, the surface is far too large for an MCP server, exceeding the 50+ threshold for an extreme mismatch. Many tools are auxiliary helpers, export variants, and analysis/generation utilities that inflate the set beyond a focused CRUD interface. This will overwhelm agents and make tool selection expensive and error-prone.
Task and bug lifecycles are reasonably covered with create, read, update, and state transitions, while test cases and stories have meaningful read/run/export support. However, there are notable gaps: no story update/create/delete, no test case update/delete, and no product detail or project management tools. The presence of many generate/analyze/format helpers does not fully compensate for missing core lifecycle operations.
Maintenance
Related MCP Connectors
Search and read Zammad tickets, customers and organizations; add notes, replies and ticket updates.
Read and update tickets, deals, tasks, and contacts in 18 Cores Tracker.
Manage ONES projects, issues, tests, work hours, and Wiki knowledge.
Read and edit your Tasks boards: create and update tasks, comment, and track time.
Related MCP Servers
- FlicenseBqualityNot gradedmaintenanceEnables interaction with ZenTao project management system through RESTful API v1. Supports bug tracking, project/product management, and automated token authentication for seamless integration.1018 npm2-
- FlicenseAqualityBmaintenanceEnables interaction with ZenTao project management system through RESTful APIs. Supports listing products, managing bugs, viewing statistics, and filtering personal bug assignments through natural language.426 npm16-
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to manage Zentao bugs, requirements, and test cases through natural language interactions. It supports querying, creating, and updating various Zentao data entities including products, projects, and executions.11 npm12MIT
- AlicenseBqualityDmaintenanceEnables interaction with ZenTao project management software through its REST API. Supports bug tracking, product management, and issue resolution with secure authentication for streamlined development workflows.725 npm1ISC