内容
# 读取它MCP
MCP(模型上下文协议)服务器,封装了 **Cypress 或 JUnit** 测试 → QA摘要 → **Xray Jira** 工作流程,来自 [**读取它**](https://github.com/Daniel-Rodrigues-Nokia/read-it):从标题和摘要中创建Xray问题,分配它,链接到父票据,并将其转换为已关闭。它旨在从 **Visual Studio Code** 中与Copilot / 代理功能和匹配的 **技能** 一起使用,以便模型首先总结测试,然后调用工具。
**技能:** **前端** 团队使用 **`SKILL-CYPRESS.md`** ; **后端** 团队使用 **`SKILL-JUNIT.md`** (两者都位于此存储库的 `skill/` 下)。
## 与读取它的关系
此存储库是 [读取它](https://github.com/Daniel-Rodrigues-Nokia/read-it) 的MCP导向的 sibling 。使用读取它进行CLI导向的工作流程和环境设置详细信息;当您希望在编辑器中将相同的Jira行为公开为单个MCP工具时,请使用此服务器。
## 先决条件
- **Jira / Xray** :与 **读取它CLI相同的`read-it.env`文件** - 相同的磁盘路径和相同的变量。如果读取它已经在您的机器上运行,您不需要第二个环境文件或重复的机密来使用此MCP服务器。参见 [配置](#配置)。
- **VS Code** :启用MCP支持,并有一种方法来编辑您的MCP服务器列表(例如 **设置 → MCP** 或您的团队使用的 `mcp.json` 片段,用于stdio服务器)。
## 下载和运行
从 [发行页面](https://github.com/Daniel-Rodrigues-Nokia/read-it-mcp/releases) 下载最新版本。
## 1. 安装可执行文件
发行资产 **`sum-ts-mcp.zip`** 包含捆绑的入口点 **`index.js`** (和一个小的 `package.json` 与其相邻)。解压后,将这些文件移动到您控制的目录中,并保持该布局 - 例如 `${HOME}/bin/sum-ts-mcp/` 。在下一步中,MCP服务器的 `参数` 必须指向 **相同目录中的`index.js`** (使用完整路径)。
## 2. 在VS Code中注册服务器
添加一个 **stdio** 服务器,其 `参数` 使用步骤1中的路径。使用您愿意为此服务器运行的 **Node** 二进制文件(例如,您与nvm一起使用的相同版本)。
示例(调整 `命令` 和 `参数` 中的路径以适应您的机器):
```json
{
"servers": {
"summary-cypress-tests": {
"type": "stdio",
"command": "${env:HOME}/.nvm/versions/node/v22.14.0/bin/node",
"args": ["${env:HOME}/bin/sum-ts-mcp/index.js"],
"cwd": "${workspaceFolder}",
"dev": {
"debug": {
"type": "node"
}
}
}
},
"inputs": []
}
```
注意:
- **`命令`** :`node` 的完整路径。
- **`参数`** :第一个元素是 `index.js` 在您选择的目录中的完整路径。
- **`cwd`** : `${workspaceFolder}` 将服务器根目录设置为打开的存储库;如果您需要固定目录,请更改。
如果您保留两个解压目录 - 一个用于Cypress导向的构建,另一个用于JUnit导向的构建 - 每个目录都有自己的 `index.js` ,您可以注册第二个服务器条目(例如 `summary-junit-tests` )。
在保存后重启或重新加载VS Code中的MCP连接。
## 3. 将技能添加到您的项目中
将与您的堆栈匹配的技能文件从此存储库复制到您的 **目标项目的** 技能树中,以便代理知道如何在调用MCP工具之前总结测试。
| 团队 | 堆栈 | 从此仓库复制 | 典型目的地(您的可能不同) |
| ------------ | ------- | ------------------------ | ---------------------------------------- |
| **前端** | Cypress | `skill/SKILL-CYPRESS.md` | 例如 `<your-project>/.github/skills/cypress-xray-from-test/SKILL. |
| **后端** | JUnit | `skill/SKILL-JUNIT.md` | 例如 `<your-project>/.github/skills/junit-xray-from-test/SKILL.md` |
保持前面的文字与您编辑器中的发现一致,例如:
- Cypress技能:`name: cypress-xray-from-test`
- JUnit技能:`name: junit-xray-from-test`
每个技能都命名它期望的MCP服务器( **`summary-cypress-tests`** 与 **`summary-junit-tests`** )。将 `mcp.json` 中的服务器 **键** 与技能中使用的标识符对齐,或调整其中一侧以使其匹配。
## 4. 用法
启动服务器并呈现适当的技能后,您可以使用自然语言提示。例如:
> 获取此测试 **BP-13046** 并总结它。原始票据是 **BP-13655** 。
- **测试参考** (此处为 `BP-13046` ):您的技能如何描述定位测试(标题中的票据密钥,文件路径,JUnit的方法名称等)。
- **原始/父票据** ( `BP-13655` ):映射到Jira中用于链接的 `fromTicket` 参数。
技能指示代理 **首先完成QA摘要** ,然后仅调用一次MCP工具 **`complete_xray_workflow_from_summary`** ,并带有 `title` 、 `summary` 和 `fromTicket` 。
## 配置
此MCP服务器加载与 [读取它](https://github.com/Daniel-Rodrigues-Nokia/read-it) 相同的 `read-it.env` 凭证文件:相同的文件名,相同的目录约定(在Linux上,通常为 **`~/.config/read-it.env`** ,即OS用户配置目录加上 `read-it.env` ,如 [读取它中所述](https://github.com/Daniel-Rodrigues-Nokia/read-it#configuration))。任何已经设置读取它的人都可以使用此MCP版本,而无需创建或维护单独的环境文件。
该文件中的变量与读取它中的变量相同:
- `JIRA_URL`
- `JIRA_PROJECT`
- `JIRA_EPIC`
- `JIRA_USER`
- `JIRA_API_KEY`