zentao-mcp

zentao-mcp

Enables natural language management of ZenTao tasks in Claude, including listing executions/tasks, batch creating/updating/closing tasks, and uploading image/video attachments.

Category
Visit Server

README

禅道任务管理 MCP Server

在 Claude Code / Claude Desktop 中用自然语言操作禅道:查看执行和任务、批量创建/更新/关闭任务,支持上传图片和视频附件。

功能一览

工具 说明
zentao_list_executions 列出所有执行/迭代(Sprint)
zentao_list_tasks 列出指定执行下的全部任务(含状态、优先级、负责人)
zentao_list_users 列出所有用户账号(用于填 assignedTo)
zentao_publish_yaml 从 YAML 批量创建 / 更新 / 关闭任务,支持上传图片和视频

安装

要求:Python 3.9+

git clone https://github.com/ruan11223344/zentao-mcp.git
cd zentao-mcp
pip install -r requirements.txt

配置

cp .env.example .env

编辑 .env

ZENTAO_URL=https://your-zentao-server.com
ZENTAO_ACCOUNT=your_account
ZENTAO_PASSWORD=your_password

配置到 Claude Code

~/.claude/settings.jsonmcpServers 中添加:

{
  "mcpServers": {
    "zentao": {
      "command": "python",
      "args": ["/path/to/zentao-mcp/server.py"]
    }
  }
}

也可以不用 .env,直接在配置里写:

{
  "mcpServers": {
    "zentao": {
      "command": "python",
      "args": ["/path/to/zentao-mcp/server.py"],
      "env": {
        "ZENTAO_URL": "https://your-zentao-server.com",
        "ZENTAO_ACCOUNT": "your_account",
        "ZENTAO_PASSWORD": "your_password"
      }
    }
  }
}

使用方法(MCP 工具)

查询执行列表

让 Claude 调用 zentao_list_executions,返回所有迭代的 ID、名称、状态和起止日期:

帮我查下禅道执行列表

查询任务列表

列出执行 #5 的所有任务

查询用户列表

禅道里有哪些用户?

创建任务

YAML 中不填 id 即为创建新任务:

execution: 5
defaults:
  type: devel
  assignedTo: zhangsan
  pri: 2
  estStarted: "2026-03-16"
  deadline: "2026-03-31"
tasks:
  - name: "用户登录功能开发"
    estimate: 8
    desc: |
      <h3>需求</h3>
      <p>实现用户名/密码登录,支持记住密码。</p>

  - name: "首页 Banner 接口"
    estimate: 4
    assignedTo: lisi     # 单独覆盖负责人
    pri: 1

去重保护:同名任务已存在时自动跳过,不会重复创建。加 force: true 可强制创建。


更新任务

YAML 中填写 id 即为更新已有任务:

execution: 5
tasks:
  - id: 123
    name: "用户登录功能开发(更新)"
    pri: 1
    deadline: "2026-03-20"
    desc: |
      <h3>更新说明</h3>
      <p>增加手机号登录支持。</p>

关闭任务

填写 id + close 字段即关闭任务,close 的值作为关闭原因:

execution: 5
tasks:
  - id: 123
    close: "功能已开发完成,测试通过"

  - id: 124
    close: "需求变更,不再实现"

上传图片(嵌入描述)

图片会上传后嵌入到任务描述中:

execution: 5
tasks:
  - name: "UI 还原问题修复"
    desc: "<p>以下为设计稿与实现对比:</p>"
    images:
      - path: ./screenshots/design.png
        label: "设计稿"
      - path: ./screenshots/actual.png
        label: "实际效果"

上传视频(任务附件)

视频会作为文件附件上传到任务,在禅道界面可直接下载:

execution: 5
tasks:
  - id: 123
    videos:
      - ./recordings/bug-demo.mp4

预览(dry_run)

dry_run: true 只预览不执行,用于确认任务内容:

帮我预览以下 YAML,不要实际创建:
execution: 5
tasks:
  - name: "测试任务"
    assignedTo: admin

混合操作(一次 YAML 同时创建/更新/关闭)

execution: 5
defaults:
  assignedTo: zhangsan
  pri: 3
tasks:
  # 创建新任务
  - name: "新功能 A"
    estimate: 6

  # 更新已有任务
  - id: 100
    name: "已有任务(修改名称)"
    pri: 1

  # 关闭任务
  - id: 101
    close: "已完成"

命令行使用(不依赖 Claude)

也可以直接用命令行操作:

# 预览任务(不执行)
python publish.py tasks/my_tasks.yaml

# 执行创建/更新/关闭
python publish.py tasks/my_tasks.yaml --execute

# 覆盖执行 ID
python publish.py tasks/my_tasks.yaml --execute --execution 8

# 强制创建(跳过去重检查)
python publish.py tasks/my_tasks.yaml --execute --force

# 查看执行列表
python publish.py --list-executions

# 查看任务列表
python publish.py --list-tasks 5

# 查看用户列表
python publish.py --list-users

YAML 字段说明

顶层字段

字段 说明
execution 执行/迭代 ID(必填)
defaults 任务默认值,被 tasks 中的字段覆盖
tasks 任务列表

任务字段

字段 说明
id 有则更新,无则创建
name 任务名称
assignedTo 负责人账号
pri 优先级(1=紧急 2=高 3=中 4=低)
estimate 预估工时(小时)
type 类型(devel/design/test/doc 等)
estStarted 预计开始日期(YYYY-MM-DD)
deadline 截止日期(YYYY-MM-DD)
desc 描述(支持 HTML)
images 图片列表(嵌入描述)
videos 视频列表(任务附件)
close 填写则关闭任务(值为关闭原因,需同时填 id)

支持的禅道版本

禅道 17.x 及以上,需开启 API 访问权限。

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured