12 KiB
12 KiB
前言
易协作
- 相关网址
- Redmine MCP Server (易协作)
- Auth & Token
- https://console-auth.nie.netease.com/mymessage/mymessage
- https://sa.nie.netease.com/docs/auth/%E8%BF%90%E7%BB%B4%E6%94%AF%E6%92%91/Auth/06-%E7%94%A8%E6%88%B7%E6%89%8B%E5%86%8C/04%E5%BC%80%E5%8F%91%E8%80%85%E5%B7%A5%E5%85%B7/API%20%E6%96%87%E6%A1%A3/02%20Auth%20API%20v2%20%E6%96%87%E6%A1%A3.md#%E8%83%8C%E6%99%AF
Redmine MCP Server (易协作)
易协作工单管理的 MCP (Model Context Protocol) Server 实现,提供工单查询、详情查看、工单更新、项目管理等功能。
功能特性
🔧 工具 (Tools)
- query_issues: 搜索/查询易协作工单,支持多种过滤条件(状态、指派人、时间范围、自定义字段等)
- get_issue_detail: 获取单个工单的完整详情,包括描述内容和图片
- update_issue: 更新/修改工单信息(状态、指派人、主题、描述、备注等),支持人名、邮箱前缀等多种指派人格式
- get_user_projects: 获取用户有权限访问的易协作项目列表
📚 资源 (Resources)
- redmine://config: 服务器配置信息
- redmine://hosts: 所有易协作实例及有权限的项目列表
🗂️ 资源模板 (Resource Templates)
- redmine://host/{host_name}: 获取指定易协作实例的详细信息
- redmine://host/{host_name}/{project_name}: 获取指定项目的详细信息(版本、状态、跟踪标签等)
- redmine://project/{project_name}: 获取默认实例中项目的详细信息(需配置默认实例)
💬 提示 (Prompts)
- issue_analysis: 易协作工单助手,支持状态、优先级、指派人、趋势分析
使用方式
StreamableHTTP (推荐)
{
"mcpServers": {
"redmine-mcp-server": {
"type": "streamableHttp",
"url": "https://mcp.netease.com/servers/redmine-mcp-server/mcp/"
}
}
}
指定默认易协作实例(可选)
如果有多个易协作实例,可通过 redmine-host 参数指定默认实例,后续调用工具时可省略 redmine_host 参数:
{
"mcpServers": {
"redmine-mcp-server": {
"type": "streamableHttp",
"url": "https://mcp.netease.com/servers/redmine-mcp-server/mcp/",
"headers": {
"redmine-host": "dap-v4.pm.netease.com"
}
}
}
}
认证与鉴权
认证方式
- 通过请求头
X-Access-Token提供用户Token(若在 Codemaker 中使用,无需自行设置) - 系统会验证Token的有效性并获取用户信息
- Auth 文档(使用 Auth Key 换取 Token):https://g.126.fm/04nIr8l
- Auth 平台:https://console-auth.nie.netease.com/mymessage/mymessage
鉴权规则
- 用户只能访问其有权限的易协作实例和项目
- 权限判断基于用户邮箱是否在项目成员列表中
工具详细说明
query_issues - 查询工单
搜索/查询易协作工单信息,支持丰富的过滤条件。 参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
redmine_host |
string | 视配置 | 易协作实例域名,已配置默认实例时可省略 |
project |
string | 是 | 项目名称 |
filters |
object | 否 | 过滤条件,详见过滤器说明 |
page |
integer | 否 | 页码,默认 1 |
per_page |
integer | 否 | 每页条数,默认 20,最大 100 |
支持的过滤器:
| 过滤器字段 | 操作符 | 说明 |
|---|---|---|
issues_id |
=, ! |
工单ID,支持多个ID |
subject |
~, =, ! |
主题关键词 |
status |
=, !, o, c |
状态名称 |
assigned_to_id |
=, ! |
指派人(邮箱前缀或 me) |
assigned_to_name |
=, ! |
指派人中文名称 |
tracker_id |
=, ! |
跟踪标签(名称或ID) |
fixed_version_id |
=, !, o, c |
目标版本(名称或ID) |
updated_on |
><, >=, <= |
更新时间 |
created_on |
><, >=, <= |
创建时间 |
start_date |
><, >=, <= |
开始日期 |
due_date |
><, >=, <= |
截止日期 |
done_ratio |
=, !, >=, <= |
完成度 (0-100) |
estimated_hours |
=, !, >=, <= |
预估工时 |
cf |
对象 | 自定义字段,键为字段ID |
操作符说明: ~ 模糊匹配,= 等于,! 不等于,o 开放状态,c 关闭状态,>< 范围,>= 大于等于,<= 小于等于
过滤器示例:
{
"subject": {"op": "~", "value": ["bug"]},
"status": {"op": "=", "value": ["开发中"]},
"assigned_to_id": {"op": "=", "value": ["me"]}
}
get_issue_detail - 获取工单详情
获取单个易协作工单的完整详情,包括基本信息、自定义字段、描述内容及图片。 参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
redmine_host |
string | 视配置 | 易协作实例域名 |
issue_id |
integer | 是 | 工单ID(如 #12278,传参时传数字 12278) |
update_issue - 更新工单
更新/修改易协作工单信息。更新成功后会返回更新后的工单详情。 系统会自动获取工单所属项目用于API安全校验,无需手动指定项目。 参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
redmine_host |
string | 视配置 | 易协作实例域名 |
issue_id |
integer | 是 | 工单ID |
status |
string | 否 | 工单状态名称,如: 新建/开发中/已解决/关闭 |
subject |
string | 否 | 工单主题 |
description |
string | 否 | 工单描述 |
notes |
string | 否 | 工单备注/说明,追加到工单评论中 |
assigned_to_mail |
string | 否 | 指派人,支持多种格式(见下方说明) |
tracker |
string | 否 | 跟踪标签名称,如: BUG/任务/需求 |
version |
string | 否 | 目标版本号名称 |
start_date |
string | 否 | 开始日期,格式: YYYY-MM-DD |
due_date |
string | 否 | 完成日期,格式: YYYY-MM-DD |
estimated_hours |
number | 否 | 预估工作量(小时) |
author_mail |
string | 否 | 提单作者,格式同指派人 |
follows |
string/array | 否 | 跟进QA,支持单个字符串(逗号分隔多人)或数组 |
watcher_user_ids |
array | 否 | 跟踪者用户ID列表,如: [386, 387] |
custom_field |
object | 否 | 自定义字段,格式: {"字段ID": "值"} |
指派人格式兼容(assigned_to_mail / author_mail / follows):
| 输入格式 | 示例 | 处理方式 |
|---|---|---|
| 完整邮箱 | lien02@corp.netease.com |
直接使用 |
| 邮箱前缀 | lien02 |
自动补全为 lien02@corp.netease.com |
| 中文名 | 李恩 |
从项目成员缓存中匹配对应邮箱 |
| 首字母+中文名 | L李恩 |
去除首字母前缀后按中文名匹配 |
更新示例:
{
"issue_id": 1509,
"status": "开发中",
"assigned_to_mail": "李恩",
"notes": "已开始开发"
}
get_user_projects - 获取项目列表
获取当前用户有权限访问的所有易协作项目列表,按实例分组返回。 参数: 无
主要功能
工单查询
支持多种过滤条件:
- 主题关键词搜索
- 状态筛选(新建/开发中/关闭等)
- 指派人筛选(支持邮箱前缀、中文名、
me) - 跟踪标签/目标版本筛选(支持名称和ID)
- 时间范围筛选(创建/更新/开始/截止日期)
- 自定义字段筛选
工单详情
- 查看工单完整信息(基本字段、自定义字段)
- 支持描述内容中的图片展示
- 显示跟踪者、关注者等协作信息
工单更新
- 修改工单状态、指派人、主题、描述等字段
- 添加备注/评论
- 修改目标版本、跟踪标签、日期、工时等
- 设置跟进QA、跟踪者、自定义字段
- 指派人支持中文名/邮箱前缀/完整邮箱等多种输入格式
- 更新成功后自动返回更新后的工单详情
项目管理
- 获取用户有权限的项目列表
- 查看项目元数据(状态、跟踪标签、版本等)
- 支持多实例管理
数据缓存
- 自动数据更新机制
- 本地缓存提升性能
- 实时流式日志输出
工具
| 工具名称 | 工具描述 | 工具参数 |
|---|---|---|
| query_issues | 搜索/查询获取易协作工单信息 | #redmine_host #project #filterspageper_page |
| get_user_projects | 获取用户有权限访问的易协作项目列表 | 暂无参数 |
| get_issue_detail | 获取单个易协作工单详情 | redmine_hostissue_id |
| update_issue | 更新/修改易协作工单信息,支持修改状态、指派人、主题、描述、备注等字段 | redmine_hostissue_idstatussubjectdescriptionnotes+10 更多 |
资源
| 资源名称 | URI | 描述 | MIME类型 |
|---|---|---|---|
| 服务器配置 | redmine://config |
获取易协作 MCP 服务器的配置信息 | application/json |
| 易协作实例-项目列表 | redmine://hosts |
获取所有易协作实例列表及有权限的项目列表 | application/json |
模版资源
| 模板名称 | URI模板 | 描述 | MIME类型 |
|---|---|---|---|
| 易协作实例详情 | redmine://host/{host_name} |
获取指定易协作实例的详细信息 | application/json |
| 易协作项目详情 | redmine://host/{host_name}/{project_name} |
获取指定易协作实例中特定项目的详细信息,包括项目可用的版本、状态和跟踪标签 | application/json |
提示
| issue_analysis | 易协作工单助手 | #redmine_host #project #analysis_type |