diff --git a/07-Other/AI/AI Agent/MCP & Skill.md b/07-Other/AI/AI Agent/MCP & Skill.md index a4ae860..33b2569 100644 --- a/07-Other/AI/AI Agent/MCP & Skill.md +++ b/07-Other/AI/AI Agent/MCP & Skill.md @@ -56,18 +56,14 @@ if __name__ == "__main__": --- ### 1. 项目初始化 - 首先,你需要安装核心依赖: - ```bash npm install @modelcontextprotocol/sdk hono ``` ### 2. Streamable HTTP 服务端完整代码 - 这份代码展示了如何创建一个支持现代流式传输的 MCP 服务端,并集成一个 Bilibili 视频查询工具。 - ```typescript import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js"; import { HttpServerTransport } from "@modelcontextprotocol/sdk/server/http.js"; diff --git a/07-Other/AI/AI Agent/WY/WY MCP&Skill.md b/07-Other/AI/AI Agent/WY/WY MCP&Skill.md new file mode 100644 index 0000000..8899008 --- /dev/null +++ b/07-Other/AI/AI Agent/WY/WY MCP&Skill.md @@ -0,0 +1,232 @@ +# 前言 + +# 易协作 +- 相关网址 + - [Redmine MCP Server (易协作)](https://modelspace.netease.com/mcphub?detail=redmine-mcp-server&namespace=public) + - 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 实现,提供工单查询、详情查看、工单更新、项目管理等功能。 + +## [](https://mcp-ui.netease.com/server/redmine-mcp-server?namespace=public#%E5%8A%9F%E8%83%BD%E7%89%B9%E6%80%A7)功能特性 +### [](https://mcp-ui.netease.com/server/redmine-mcp-server?namespace=public#-%E5%B7%A5%E5%85%B7-tools)🔧 工具 (Tools) +- **query_issues**: 搜索/查询易协作工单,支持多种过滤条件(状态、指派人、时间范围、自定义字段等) +- **get_issue_detail**: 获取单个工单的完整详情,包括描述内容和图片 +- **update_issue**: 更新/修改工单信息(状态、指派人、主题、描述、备注等),支持人名、邮箱前缀等多种指派人格式 +- **get_user_projects**: 获取用户有权限访问的易协作项目列表 + +### [](https://mcp-ui.netease.com/server/redmine-mcp-server?namespace=public#-%E8%B5%84%E6%BA%90-resources)📚 资源 (Resources) +- **redmine://config**: 服务器配置信息 +- **redmine://hosts**: 所有易协作实例及有权限的项目列表 + +### [](https://mcp-ui.netease.com/server/redmine-mcp-server?namespace=public#%EF%B8%8F-%E8%B5%84%E6%BA%90%E6%A8%A1%E6%9D%BF-resource-templates)🗂️ 资源模板 (Resource Templates) +- **redmine://host/{host_name}**: 获取指定易协作实例的详细信息 +- **redmine://host/{host_name}/{project_name}**: 获取指定项目的详细信息(版本、状态、跟踪标签等) +- **redmine://project/{project_name}**: 获取默认实例中项目的详细信息(需配置默认实例) + +### [](https://mcp-ui.netease.com/server/redmine-mcp-server?namespace=public#-%E6%8F%90%E7%A4%BA-prompts)💬 提示 (Prompts) +- **issue_analysis**: 易协作工单助手,支持状态、优先级、指派人、趋势分析 + +## [](https://mcp-ui.netease.com/server/redmine-mcp-server?namespace=public#%E4%BD%BF%E7%94%A8%E6%96%B9%E5%BC%8F)使用方式 +### [](https://mcp-ui.netease.com/server/redmine-mcp-server?namespace=public#streamablehttp-%E6%8E%A8%E8%8D%90)StreamableHTTP (推荐) +```json +{ + "mcpServers": { + "redmine-mcp-server": { + "type": "streamableHttp", + "url": "https://mcp.netease.com/servers/redmine-mcp-server/mcp/" + } + } +} +``` + +#### [](https://mcp-ui.netease.com/server/redmine-mcp-server?namespace=public#%E6%8C%87%E5%AE%9A%E9%BB%98%E8%AE%A4%E6%98%93%E5%8D%8F%E4%BD%9C%E5%AE%9E%E4%BE%8B%E5%8F%AF%E9%80%89)指定默认易协作实例(可选) +如果有多个易协作实例,可通过 `redmine-host` 参数指定默认实例,后续调用工具时可省略 `redmine_host` 参数: +```json +{ + "mcpServers": { + "redmine-mcp-server": { + "type": "streamableHttp", + "url": "https://mcp.netease.com/servers/redmine-mcp-server/mcp/", + "headers": { + "redmine-host": "dap-v4.pm.netease.com" + } + } + } +} +``` + +## [](https://mcp-ui.netease.com/server/redmine-mcp-server?namespace=public#%E8%AE%A4%E8%AF%81%E4%B8%8E%E9%89%B4%E6%9D%83)认证与鉴权 +### [](https://mcp-ui.netease.com/server/redmine-mcp-server?namespace=public#%E8%AE%A4%E8%AF%81%E6%96%B9%E5%BC%8F)认证方式 +- 通过请求头 `X-Access-Token` 提供用户Token(若在 Codemaker 中使用,无需自行设置) +- 系统会验证Token的有效性并获取用户信息 +- Auth 文档(使用 Auth Key 换取 Token):[https://g.126.fm/04nIr8l](https://g.126.fm/04nIr8l) +- Auth 平台:[https://console-auth.nie.netease.com/mymessage/mymessage](https://console-auth.nie.netease.com/mymessage/mymessage) + +### [](https://mcp-ui.netease.com/server/redmine-mcp-server?namespace=public#%E9%89%B4%E6%9D%83%E8%A7%84%E5%88%99)鉴权规则 +- 用户只能访问其有权限的易协作实例和项目 +- 权限判断基于用户邮箱是否在项目成员列表中 + +## [](https://mcp-ui.netease.com/server/redmine-mcp-server?namespace=public#%E5%B7%A5%E5%85%B7%E8%AF%A6%E7%BB%86%E8%AF%B4%E6%98%8E)工具详细说明 +### [](https://mcp-ui.netease.com/server/redmine-mcp-server?namespace=public#query_issues---%E6%9F%A5%E8%AF%A2%E5%B7%A5%E5%8D%95)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` 关闭状态,`><` 范围,`>=` 大于等于,`<=` 小于等于 + +**过滤器示例:** + +```json +{ + "subject": {"op": "~", "value": ["bug"]}, + "status": {"op": "=", "value": ["开发中"]}, + "assigned_to_id": {"op": "=", "value": ["me"]} +} +``` + +### [](https://mcp-ui.netease.com/server/redmine-mcp-server?namespace=public#get_issue_detail---%E8%8E%B7%E5%8F%96%E5%B7%A5%E5%8D%95%E8%AF%A6%E6%83%85)get_issue_detail - 获取工单详情 +获取单个易协作工单的完整详情,包括基本信息、自定义字段、描述内容及图片。 +**参数:** + +|参数|类型|必填|说明| +|---|---|---|---| +|`redmine_host`|string|视配置|易协作实例域名| +|`issue_id`|integer|是|工单ID(如 #12278,传参时传数字 12278)| + +### [](https://mcp-ui.netease.com/server/redmine-mcp-server?namespace=public#update_issue---%E6%9B%B4%E6%96%B0%E5%B7%A5%E5%8D%95)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李恩`|去除首字母前缀后按中文名匹配| + +**更新示例:** +```json +{ + "issue_id": 1509, + "status": "开发中", + "assigned_to_mail": "李恩", + "notes": "已开始开发" +} +``` + +### [](https://mcp-ui.netease.com/server/redmine-mcp-server?namespace=public#get_user_projects---%E8%8E%B7%E5%8F%96%E9%A1%B9%E7%9B%AE%E5%88%97%E8%A1%A8)get_user_projects - 获取项目列表 +获取当前用户有权限访问的所有易协作项目列表,按实例分组返回。 +**参数:** 无 + + +## [](https://mcp-ui.netease.com/server/redmine-mcp-server?namespace=public#%E4%B8%BB%E8%A6%81%E5%8A%9F%E8%83%BD)主要功能 + +### [](https://mcp-ui.netease.com/server/redmine-mcp-server?namespace=public#%E5%B7%A5%E5%8D%95%E6%9F%A5%E8%AF%A2)工单查询 +支持多种过滤条件: +- 主题关键词搜索 +- 状态筛选(新建/开发中/关闭等) +- 指派人筛选(支持邮箱前缀、中文名、`me`) +- 跟踪标签/目标版本筛选(支持名称和ID) +- 时间范围筛选(创建/更新/开始/截止日期) +- 自定义字段筛选 + +### [](https://mcp-ui.netease.com/server/redmine-mcp-server?namespace=public#%E5%B7%A5%E5%8D%95%E8%AF%A6%E6%83%85)工单详情 +- 查看工单完整信息(基本字段、自定义字段) +- 支持描述内容中的图片展示 +- 显示跟踪者、关注者等协作信息 + +### [](https://mcp-ui.netease.com/server/redmine-mcp-server?namespace=public#%E5%B7%A5%E5%8D%95%E6%9B%B4%E6%96%B0)工单更新 +- 修改工单状态、指派人、主题、描述等字段 +- 添加备注/评论 +- 修改目标版本、跟踪标签、日期、工时等 +- 设置跟进QA、跟踪者、自定义字段 +- 指派人支持中文名/邮箱前缀/完整邮箱等多种输入格式 +- 更新成功后自动返回更新后的工单详情 + +### [](https://mcp-ui.netease.com/server/redmine-mcp-server?namespace=public#%E9%A1%B9%E7%9B%AE%E7%AE%A1%E7%90%86)项目管理 +- 获取用户有权限的项目列表 +- 查看项目元数据(状态、跟踪标签、版本等) +- 支持多实例管理 + +### [](https://mcp-ui.netease.com/server/redmine-mcp-server?namespace=public#%E6%95%B0%E6%8D%AE%E7%BC%93%E5%AD%98)数据缓存 +- 自动数据更新机制 +- 本地缓存提升性能 +- 实时流式日志输出 + +## 工具 + +| 工具名称 | 工具描述 | 工具参数 | +| ----------------- | ----------------------------------- | --------------------------------------------------------- | +| query_issues | 搜索/查询获取易协作工单信息 | #redmine_host #project #filterspageper_page | +| get_user_projects | 获取用户有权限访问的易协作项目列表 | 暂无参数 | +| get_issue_detail | 获取单个易协作工单详情 | redmine_host*issue_id* | +| update_issue | 更新/修改易协作工单信息,支持修改状态、指派人、主题、描述、备注等字段 | redmine_host*issue_id*statussubjectdescriptionnotes+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 | \ No newline at end of file