Skip to main content

ZenTao MCP Server (V1.0)

禅道(ZenTao)V1.0 REST API 的 MCP(Model Context Protocol)服务器,覆盖官方 V1.0 API 手册全部 97 个接口,让 Claude 等 AI 助手直接查询与操作禅道的项目、需求、任务、Bug、用例等数据。

简介

  • 全量覆盖:Token、部门、用户、项目集、产品、产品计划、发布、需求、项目、版本、执行、任务、Bug、用例、测试单、反馈、工单 —— 17 个模块 97 个接口
  • 规范驱动docs/zentao-v1-openapi.json 由脚本从官方 API 手册第 2 章自动生成(可重复执行),FastMCP 据此自动注册全部工具
  • 自动登录:配置禅道账号密码后,服务端自动获取/续期 Token,MCP 客户端零配置接入;也可回退为客户端 Token 头透传
  • Streamable HTTP:以 HTTP 服务方式部署,支持远程与多客户端共享

技术栈:Python ≥3.10、FastMCP 3.x、httpx。

快速开始

1. 安装

git clone <本仓库地址> && cd zentao-mcp-v1.0
uv venv && uv pip install --python .venv/bin/python -e . --group dev
# 或 pip: python -m venv .venv && .venv/bin/pip install -e .

2. 配置

复制 config.example.yamlconfig.yaml(已被 .gitignore 排除),填写:

base_url: "http://您的禅道域名/api.php/v1"   # 必填
account: "您的禅道账号"                       # 自动登录(推荐)
password: "您的禅道密码"

注意:spec_path 默认为相对当前工作目录的 docs/zentao-v1-openapi.json,请从仓库根目录启动;也可在配置或环境变量(ZENTAO_MCP_SPEC_PATH)中指定绝对路径。

所有配置项均可用环境变量覆盖:ZENTAO_MCP_BASE_URL / ZENTAO_MCP_ACCOUNT / ZENTAO_MCP_PASSWORD / ZENTAO_MCP_HOST / ZENTAO_MCP_PORT 等。

3. 运行

cp config.example.yaml config.yaml  # 编辑后
.venv/bin/python -m zentao_mcp --config config.yaml
# 默认监听 0.0.0.0:9091,MCP 端点 http://127.0.0.1:9091/mcp

客户端接入

自动登录模式(推荐)——客户端只需 URL:

{
  "mcpServers": {
    "zentao-v1": {
      "url": "http://127.0.0.1:9091/mcp"
    }
  }
}

Token 透传模式(未配置账号密码时;先用 get_token 工具或 curl -X POST {base_url}/tokens 获取 Token):

{
  "mcpServers": {
    "zentao-v1": {
      "url": "http://127.0.0.1:9091/mcp",
      "headers": { "token": "您的Token" }
    }
  }
}

Docker 部署

docker build -t zentao-mcp-v1 .
docker run -d -p 9091:9091 \
  -e ZENTAO_MCP_BASE_URL=http://您的禅道域名/api.php/v1 \
  -e ZENTAO_MCP_ACCOUNT=您的账号 \
  -e ZENTAO_MCP_PASSWORD=您的密码 \
  zentao-mcp-v1

工具清单(97 个)

Token 认证(Token,1 个)

工具名 说明
get_token 获取Token(POST /tokens)

部门(Dept,2 个)

工具名 说明
get_dept_list 获取部门列表(GET /departments)
get_dept_detail 获取部门详情(GET /departments/id)

用户(User,6 个)

工具名 说明
get_my_profile 获取我的个人信息(GET /user)
get_user_list 获取用户列表(GET /users)
get_user_detail 获取用户信息(GET /users/id)
update_user 修改用户信息(PUT /users/id)
delete_user 删除用户(DELETE /users/id)
create_user 创建用户(POST /users)

项目集(Program,5 个)

工具名 说明
get_program_list 获取项目集列表(GET /programs)
update_program 修改项目集(PUT /programs/id)
get_program_detail 获取项目集详情(GET /programs/id)
delete_program 删除项目集(DELETE /programs/id)
create_program 创建项目集(POST /programs)

产品(Product,5 个)

工具名 说明
get_product_list 获取产品列表(GET /products)
create_product 创建产品(POST /products)
get_product_detail 获取产品详情(GET /products/id)
update_product 编辑产品(PUT /product/id)
delete_product 删除产品(DELETE /products/id)

产品计划(Productplan,9 个)

工具名 说明
get_product_plan_list 获取产品计划列表(GET /products/id/plans)
create_plan 创建计划(POST /products/id/plans)
get_plan_detail 获取计划详情(GET /productplans/id)
update_plan 修改计划(PUT /productplans/id)
delete_plan 删除计划(DELETE /productsplan/id)
link_plan_stories 产品计划关联需求(None )
unlink_plan_stories 产品计划取消关联需求(None )
link_plan_bugs 产品计划关联Bug(None )
unlink_plan_bugs 产品计划取消关联Bug(None )

发布(Release,2 个)

工具名 说明
get_product_release_list 获取产品发布列表(GET /products/id/releases)
get_project_release_list 获取项目发布列表(GET /projects/id/releases)

需求(Story,9 个)

工具名 说明
get_product_story_list 获取产品需求列表(GET /products/id/stories)
get_project_story_list 获取项目需求列表(GET /projects/id/stories)
get_execution_story_list 获取执行需求列表(GET /executions/id/stories)
create_story 创建需求(None )
get_story_detail 获取需求详情(GET /stories/id)
change_story 变更需求(None )
update_story_fields 修改需求其他字段(None )
delete_story 删除需求(DELETE /stories/id)
close_story 关闭需求(None )

项目(Project,5 个)

工具名 说明
get_project_list 获取项目列表(GET /projects)
create_project 创建项目(POST /projects)
get_project_detail 获取项目详情(GET /projects/id)
update_project 修改项目(PUT /projects/id)
delete_project 删除项目(DELETE /projects/id)

版本(Build,6 个)

工具名 说明
get_project_build_list 获取项目版本列表(GET /projects/id/builds)
get_execution_build_list 获取执行版本列表(GET /executions/id/builds)
create_build 创建版本(None )
get_build_detail 获取版本详情(GET /builds/id)
update_build 修改版本(None )
delete_build 删除版本(DELETE /builds/id)

执行(Execution,5 个)

工具名 说明
get_project_execution_list 获取项目的执行列表(GET /projects/id/executions)
create_execution 创建执行(None )
get_execution_detail 查看执行详情(GET /executions/id)
update_execution 修改执行(None )
delete_execution 删除执行(DELETE /executions/id)

任务(Task,12 个)

工具名 说明
get_execution_task_list 获取执行任务列表(GET /executions/id/tasks)
close_task 关闭任务(None )
create_task_effort 添加任务日志(None )
get_task_effort_list 获取任务日志列表(None )
create_task 创建任务(None )
get_task_detail 获取任务详情(GET /tasks/id)
update_task 修改任务(None )
delete_task 删除任务(DELETE /tasks/id)
start_task 开始任务(None )
pause_task 暂停任务(None )
resume_task 继续任务(None )
finish_task 完成任务(None )

Bug(Bug,9 个)

工具名 说明
get_product_bug_list 获取产品Bug列表(GET /products/id/bugs)
create_bug 创建Bug(None )
get_bug_detail 获取Bug详情(GET /bugs/id)
update_bug 修改Bug(None )
delete_bug 删除Bug(DELETE /bugs/id)
confirm_bug 确认Bug(None )
close_bug 关闭Bug(None )
activate_bug 激活Bug(None )
resolve_bug 解决Bug(None )

用例(Testcase,6 个)

工具名 说明
get_product_testcase_list 获取产品用例列表(GET /products/id/testcases)
create_testcase 创建用例(None )
get_testcase_detail 获取用例详情(GET /testcases/id)
update_testcase 修改用例(None )
delete_testcase 删除用例(DELETE /testcases/id)
run_testcase 执行用例(None )

测试单(Testtask,3 个)

工具名 说明
get_testtask_list 获取测试单列表(GET /testtasks)
get_project_testtask_list 获取项目的测试单(GET /projects/id/testtasks)
get_testtask_detail 获取测试单详情(GET /testtasks/id)

反馈(Feedback,7 个)

工具名 说明
create_feedback 创建反馈(None )
assign_feedback 指派反馈(None )
close_feedback 关闭反馈(None )
delete_feedback 删除反馈(DELETE /feedbacks/id)
update_feedback 修改反馈(None )
get_feedback_detail 获取反馈详情(GET /feedbacks/id)
get_feedback_list 获取反馈列表(GET /feedbacks)

工单(Ticket,5 个)

工具名 说明
get_ticket_list 获取工单列表(GET /tickets)
get_ticket_detail 获取工单详情(GET /tickets/id)
update_ticket 修改工单(None )
create_ticket 创建工单(None )
delete_ticket 删除工单(DELETE /tickets/id)

开发者指南

make test    # 全量测试
make cover   # 覆盖率
make spec    # 重新抓取官方文档并生成规范(幂等,缓存在 scripts/fixtures/raw/)
  • 规范生成流水线:scripts/fetch_pages.py(抓取 97 页)→ parse_page.py(HTML 解析)→ schema_builder.py(JSON Schema 组装)→ generate_spec.py(生成 + 校验)。清单(页面 ID ↔ 工具名映射)在 scripts/page_manifest.pypython scripts/page_manifest.py 可对照线上手册目录核验。
  • 解析中间产物 docs/endpoints.json 含每页告警记录,供人工审查文档不一致处。

兼容性说明

  • 目标 API:禅道 V1.0 REST API(api.php/v1),适用于仍提供 V1 接口的禅道版本
  • 规范中响应 schema 以官方文档字段表为准,仅供描述,不做运行时强校验(官方文档表格与真实响应存在少量类型差异,透传场景以上游响应为真相)
  • 官方文档个别页面存在笔误(如"关闭任务"页面标题误标"继续任务"、/productsplan/id 拼写等),本项目的清单已按实际路径修正

License

MIT

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

zentao_mcp_v1-1.0.1.tar.gz (55.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

zentao_mcp_v1-1.0.1-py3-none-any.whl (50.0 kB view details)

Uploaded Python 3

File details

Details for the file zentao_mcp_v1-1.0.1.tar.gz.

File metadata

  • Download URL: zentao_mcp_v1-1.0.1.tar.gz
  • Upload date:
  • Size: 55.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.12.6

File hashes

Hashes for zentao_mcp_v1-1.0.1.tar.gz
Algorithm Hash digest
SHA256 d4b9948e100faf733bbb8313653f44b274f51420ea3d78857f370608d3080593
MD5 a3541c0c1be521b9e551770ec2ae5b42
BLAKE2b-256 90b84aa505d99be3fddd648727e27fcd70be577ab24973c2537fbc9ee078a932

See more details on using hashes here.

File details

Details for the file zentao_mcp_v1-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: zentao_mcp_v1-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 50.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.12.6

File hashes

Hashes for zentao_mcp_v1-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 62be9bb7776cab12b4ef8d0112c5f2e150e3d4349dec7c53dbf6990c4ed09374
MD5 3eeed57793a3dbb7fd61587907d1a2de
BLAKE2b-256 edbe28dee591d49b8003934db7dc4ce8dfa0ffd34f2bb696ac5acb5dca71e8ce

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

1.0.1 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page