Jira Xray测试提取服务

一个用于从Jira Xray提取测试信息的服务器,支持自定义JSON输出格式并自动保存到本地文件夹。

  • by sajithrw
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 sajithrw/mcp-jira-xray

使用说明

MCP Jira X射线服务器

用于从Jira Xray中提取测试信息的模型上下文协议(MCP)服务器。此服务器使用Xray测试管理连接到Jira实例,并提取与特定票证相关的测试用例。

特性

  • 🔍 提取与任何Jira票证相关的测试
  • 📋 列出与工单关联的测试执行
  • 🎨 可配置的JSON输出格式
  • 💾 自动保存到 extractions 文件夹
  • 🔐 使用Jira API令牌进行安全连接

安装

先决条件

  • Node.js 17或更高版本
  • 带有X射线测试管理的Jira实例
  • Jira API代币

设置

  1. 克隆此存储库或通过npm安装:
git clone <repository-url>
cd mcp-jira-xray
npm install
  1. 运行交互式安装程序:
npm run setup

这将指导您完成:

  • 输入Jira主机URL
  • 提供您的Jira电子邮件
  • 添加API令牌
  • 正在验证连接
  • 配置输出格式

或 手动创建 .env 文件:

cp .env.example .env
# Edit .env with your credentials

获取Jira API代币

  1. 首选 Atlassian帐户设置
  2. 点击“创建API令牌”
  3. 给它一个标签并复制令牌
  4. 在您的 .env 文件

配置

Jira连接

服务器需要三个配置值:

  • JIRA_HOST:您的Jira实例URL(例如。, https://mycompany.atlassian.net)
  • JIRA_EMAIL:您的Jira帐户电子邮件
  • JIRA_API_TOKEN:您的Jira API代币

输出格式

这 OUTPUT_FORMAT 环境变量定义了提取的测试数据的JSON结构。您可以根据需要进行自定义。

默认格式:

{
  "ticketId": "",
  "test": "",
  "testCases": []
}

自定义格式示例:

{
  "ticket": {
    "id": "",
    "name": ""
  },
  "tests": {
    "cases": []
  }
}

服务器将根据这些键填充字段:

  • ticketId → Jira票ID
  • test → 门票摘要
  • testCases → 测试用例描述数组

用法

使用VS代码

好消息! 服务器已在中为此项目配置 .vscode/mcp.json.

快速入门:

  1. 确保你已经跑过了 npm run setup (配置完成)
  2. 打开命令选项板: Cmd/Ctrl + Shift + P
  3. 键入:“MCP:启用”,然后按Enter键
  4. 尝试:“提取测试票PROJ-123”在副驾驶聊天

📖 看 VSCODE-SETUP.md 获取完整的VS Code安装指南

使用克劳德桌面

将此添加到您的Claude Desktop配置文件中:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json 窗户: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "jira-xray": {
      "command": "node",
      "args": ["/absolute/path/to/mcp-jira-xray/build/index.js"]
    }
  }
}

可用工具

1. extract_tests

提取与给定Jira票证相关的所有测试。

参数:

  • ticketId (string):Jira票证ID(例如“PROJ-123”)

例子:

Extract tests for ticket PROJ-123

输出:

  • 测试执行细节
  • 所有带有描述的测试用例
  • 已保存到 extractions/PROJ-123_<timestamp>.json

2. list_test_executions

列出链接到Jira票证的所有测试执行。

参数:

  • ticketId (string):Jira票证ID

例子:

List test executions for PROJ-123

输出:

  • 测试执行密钥列表
  • 测试执行总结
  • 执行状态

输出文件

所有提取的测试数据都保存到 extractions/ 具有以下命名约定的文件夹:

extractions/<TICKET-ID>_<TIMESTAMP>.json

例子: extractions/PROJ-123_2024-01-15T10-30-45-123Z.json

发展

交互式设置

运行安装向导:

npm run setup

验证配置

测试您的Jira连接:

npm run validate

这将:

  • 检查.env配置
  • 测试与Jira的连接
  • 验证身份验证
  • 列出可访问的项目
  • 确认权限

构建

npm run build

这将TypeScript编译为JavaScript build/ 目录。

项目结构

mcp-jira-xray/
├── src/
│   ├── index.ts           # Main MCP server entry point
│   ├── jira-client.ts     # Jira API client
│   ├── config.ts          # Configuration management
│   └── output-handler.ts  # File output handling
├── build/                 # Compiled JavaScript (generated)
├── extractions/           # Output files (generated)
├── .env                   # Environment configuration
├── .env.example           # Example configuration
├── package.json
├── tsconfig.json
└── README.md

故障排除

“缺少必需的环境变量”

确保你的 .env 文件存在并包含所有必需的变量(JIRA_HOST, JIRA_EMAIL, JIRA_API_TOKEN).

“无法获取门票”

  • 验证您的Jira凭据是否正确
  • 检查您的Jira实例中是否存在票证ID
  • 确保您的API令牌具有适当的权限

“X射线API不可用”

服务器尝试多种方法提取测试数据。如果Xray特定的API不可用,它将退回到标准的Jira JQL查询。以下情况可能会发生:

  • Jira实例上未安装Xray
  • 您的帐户没有X射线权限

连接问题

  • 确保您的 JIRA_HOST 包含协议(https://)
  • 检查您的网络是否允许连接到Jira
  • 验证您的API令牌是否有效且未过期

许可证

麻省理工学院

贡献

欢迎投稿!请随时提交问题或拉取请求。

支持

对于问题和疑问:

  • 检查现有的[GitHub问题](/问题)
  • 创建包含详细信息的新问题
  • 包括Jira和Xray版本