新增禅道项目管理系统插件,含项目集/产品/项目/执行、需求 (story/epic/requirement)、Bug、任务、测试、计划与发布、反馈工单 八个工作流技能,自动配置 MCP 连接(禅道「个人中心 → 获取凭证」 自助生成 14 天 Token)。 MCP Server 是团队自建的 zentao-mcp 网桥(部署在 pm.ops.yixiong-tech.com/mcp),基于开源 openapi-mcp-server 二次开发。 Claude 侧走 userConfig 钥匙链 + 自定义 token 头;Codex 侧受限于官方 插件格式只支持 bearer_token_env_var,走 Authorization: Bearer——网桥 那边已经加了 preferred_header/bearer_mode 配置项统一归一化处理,两条 路径都验证过连通。 三轮审查(静态字段对照 openapi.json、跨文件一致性、真实端点实测) 修正过程中发现的问题,技能文档里引用的工具名全部跟服务器真实注册 的 118 个工具核对过。 同步更新:.claude-plugin/marketplace.json、.agents/plugins/marketplace.json、 README.md、CLAUDE.md 的插件索引与说明;README 补充「获取凭证」操作 截图(已脱敏)。 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016pFx6jnym6kRWRQ5JyDUNv
3.5 KiB
name, description
| name | description |
|---|---|
| zentao-plan | 禅道产品计划、版本(build)、发布(release)管理。当用户说「排个产品计划」「打个包」「建个版本」「发布上线」时使用。 |
禅道产品计划 / 版本 / 发布
前置:先读 zentao-shared(尤其"路径参数不出现在 inputSchema 里"一节)。
三者关系
productplan 产品计划(做什么、什么时候做)
build 版本/构建(某次打包产出,挂在执行下)
release 发布(把某个/某几个 build 正式对外发布)
三者是独立管理的实体,不是严格的父子层级——release 通过 build 字段关联具体的构建,
build 通过 executionID 关联执行、system 关联应用,productplan 只挂产品,不关联
执行/构建。
产品计划(productplan)
get_products_productID_productplans(productID, ...)
get_productplans_planID(planID) 详情——注意参数叫 planID,不是 productplanID
post_productplans({ payload: { productID, title, parent?, begin?, end?, branchID?, desc? } })
put_productplans_productplanID({ productplanID, payload: {...} }) # 改用的是 productplanID
delete_productplans_productplanID({ productplanID })
详情接口和改/删接口的路径参数名不一样(planID vs productplanID),照抄各自工具
名对应的字面参数名。productID/title 必填,parent 可以挂一个父计划形成层级。
版本 / 构建(build)
get_projects_projectID_builds(projectID, ...)
get_executions_executionID_builds(executionID, ...)
post_builds({ payload: { executionID, product, name, system, builder, date,
scmPath?, filePath?, desc? } })
put_builds_buildID({ buildID, payload: {...} })
delete_builds_buildID({ buildID })
必填字段比较多:executionID(注意是 executionID 不是 execution)、product
(注意是 product 不是 productID)、name、system(所属应用,需要先有
zentao-misc 里的应用 ID)、builder(构建者)、date(打包日期)——字段名在不同
实体间不统一是这套 API 的通病(zentao-task 也提过 name/title、executionID/execution
的不一致),创建前对照该工具自己的 inputSchema 逐个字段确认,不要照抄其他实体的字段名。
没有单条版本详情接口,从列表里过滤。
发布(release)
get_products_productID_releases(productID, ...)
post_releases({ payload: { productID, system, name, build, date, status?, desc? } })
put_releases_releasID({ releasID, payload: {...} }) # 注意参数叫 releasID,不是 releaseID
delete_releases_releasID({ releasID })
必填:productID/system(所属应用)/name(应用版本号)/build(包含的构建,是字符
串数组,可以关联多个构建,不是单个 ID)/date(计划发布日期)。
status 受限枚举:wait 未开始 | normal 已发布 | fail 发布失败 | terminate 停止维护
——不像 bug/task 有专门的状态流转端点,发布状态直接在创建/修改时传 status 字段设置,
改状态就是 put_releases_releasID({ releasID, payload: { status: "normal" } })。
没有单条发布详情接口,从 get_products_productID_releases 列表里过滤。
参数名注意:路径参数字面拼写是 releasID(缺一个 e),跟 testcase 的 testcasID
是同一类官方 API 拼写坑,照抄不要纠正。