vault backup: 2026-03-04 16:45:39
This commit is contained in:
@@ -56,18 +56,14 @@ if __name__ == "__main__":
|
|||||||
---
|
---
|
||||||
|
|
||||||
### 1. 项目初始化
|
### 1. 项目初始化
|
||||||
|
|
||||||
首先,你需要安装核心依赖:
|
首先,你需要安装核心依赖:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
npm install @modelcontextprotocol/sdk hono
|
npm install @modelcontextprotocol/sdk hono
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
### 2. Streamable HTTP 服务端完整代码
|
### 2. Streamable HTTP 服务端完整代码
|
||||||
|
|
||||||
这份代码展示了如何创建一个支持现代流式传输的 MCP 服务端,并集成一个 Bilibili 视频查询工具。
|
这份代码展示了如何创建一个支持现代流式传输的 MCP 服务端,并集成一个 Bilibili 视频查询工具。
|
||||||
|
|
||||||
```typescript
|
```typescript
|
||||||
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
||||||
import { HttpServerTransport } from "@modelcontextprotocol/sdk/server/http.js";
|
import { HttpServerTransport } from "@modelcontextprotocol/sdk/server/http.js";
|
||||||
|
|||||||
232
07-Other/AI/AI Agent/WY/WY MCP&Skill.md
Normal file
232
07-Other/AI/AI Agent/WY/WY MCP&Skill.md
Normal file
@@ -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 |
|
||||||
Reference in New Issue
Block a user