返回市场
X光-MCP服务器

X光-MCP服务器

作者:c4m3lblue-star2 星标更新:2025-10-24

项目介绍

Xray MCP 服务器

模型上下文协议(MCP)服务器用于将Xray Cloud API与Claude Code和其他MCP客户端集成。

功能

此MCP服务器提供了使用官方GraphQL API管理Xray Cloud中的测试用例和测试执行的工具:

测试用例(测试管理)

  • create_test_case: 创建新的测试用例(使用GraphQL突变createTest
  • get_test_case: 获取特定测试用例的详细信息(使用GraphQL查询getTests
  • delete_test_case: 删除测试用例(使用GraphQL突变deleteTest
  • search_test_cases: 使用JQL(Jira查询语言)搜索测试用例
  • get_project_test_cases: 获取项目的所有测试用例
  • update_test_case: ⚠️ 不直接支持 - 使用Jira REST API更新标准字段

测试执行(测试自动化及CI/CD)

  • create_test_execution: 创建新的测试执行以运行测试
  • get_test_execution: 获取测试执行的详细信息及其所有测试运行
  • search_test_executions: 使用JQL搜索测试执行
  • get_project_test_executions: 获取项目的全部测试执行
  • update_test_run_status: 更新测试运行的状态(通过、失败等)

测试计划(测试组织)

  • create_test_plan: 创建新的测试计划以组织测试
  • get_test_plan: 获取特定测试计划的详细信息及其所有测试
  • search_test_plans: 使用JQL搜索测试计划
  • get_project_test_plans: 获取项目的全部测试计划
  • add_tests_to_test_plan: 将测试添加到现有测试计划中
  • remove_tests_from_test_plan: 从测试计划中移除测试

测试集(测试分组)

  • create_test_set: 创建新的测试集以分组测试
  • get_test_set: 获取特定测试集的详细信息及其所有测试
  • search_test_sets: 使用JQL搜索测试集
  • get_project_test_sets: 获取项目的全部测试集
  • add_tests_to_test_set: 将测试添加到现有测试集中
  • remove_tests_from_test_set: 从测试集中移除测试

先决条件

  • Node.js 18或更高版本
  • Xray Cloud API凭证(客户端ID和客户端密钥)

测试

该项目包括全面的测试覆盖:

  • 单元测试:快速测试,模拟API响应(无需凭证)
  • 集成测试:端到端测试,使用真实的Xray Cloud API
# 运行单元测试
npm run test:unit

# 运行集成测试(需要凭证)
npm run test:integration

# 运行所有测试
npm test

有关详细的测试文档,请参阅TESTING.md

安装

  1. 克隆或下载此仓库
  2. 安装依赖项:
npm install
  1. 构建项目:
npm run build

如何获取API凭证

  1. 访问 https://xray.cloud.getxray.app/
  2. 导航至 设置API密钥
  3. 单击 创建API密钥
  4. 复制生成的客户端ID和客户端密钥

使用方法

在Claude Code中的配置

要将此MCP服务器与Claude Code一起使用,请在您的MCP配置文件(通常在macOS上的~/Library/Application Support/Claude/claude_desktop_config.json)中添加以下配置:

{
  "mcpServers": {
    "xray": {
      "command": "node",
      "args": ["/path/to/xray-mcp/dist/index.js"],
      "env": {
        "XRAY_CLIENT_ID": "your_client_id",
        "XRAY_CLIENT_SECRET": "your_client_secret"
      }
    }
  }
}

重要提示: 替换:

  • /path/to/xray-mcp 为项目的绝对路径(例如,/Users/manuel/repositories/xray-mcp
  • your_client_idxray_client_secret 为您自己的Xray Cloud凭证

本地测试

要在开发模式下测试服务器:

# 设置环境变量
export XRAY_CLIENT_ID="your_client_id"
export XRAY_CLIENT_SECRET="your_client_secret"

# 运行服务器
npm run dev

使用示例

测试用例

创建一个测试用例

{
  "projectKey": "ABC",
  "summary": "验证登录功能",
  "description": "测试用户能否使用有效凭据登录",
  "testType": "手动",
  "labels": ["登录", "身份验证"],
  "priority": "高"
}

搜索测试用例

{
  "jql": "项目 = ABC AND 标签 = 自动化",
  "maxResults": 20
}

获取项目测试用例

{
  "projectKey": "ABC",
  "maxResults": 50
}

测试执行

创建一个测试执行

{
  "projectKey": "ABC",
  "summary": "冲刺23回归测试",
  "description": "冲刺23的回归测试",
  "testIssueIds": ["10001", "10002", "10003"],
  "testEnvironments": ["Chrome", "Firefox"]
}

获取一个测试执行

{
  "testExecutionKey": "ABC-456"
}

更新测试运行状态

{
  "testRunId": "5acc7ab0a3fe1b6fcdc3c737",
  "status": "通过"
}

搜索最近的测试执行

{
  "jql": "项目 = ABC AND 创建时间 >= -7d",
  "maxResults": 20
}

项目结构

xray-mcp/
├── src/
│   ├── index.ts           # 主MCP服务器
│   └── xray-client.ts     # Xray Cloud API客户端
├── dist/                  # 编译后的文件(构建后生成)
├── .env.example           # 环境变量模板
├── .gitignore
├── package.json
├── tsconfig.json
└── README.md

Xray Cloud API

此服务器使用以下Xray Cloud API:

  • 认证POST /api/v1/authenticate(令牌有效期24小时)
  • GraphQL端点POST /api/v2/graphql
    • 测试查询getTests - 使用JQL检索测试
    • 测试突变createTest, deleteTest - 创建/删除测试
    • 测试执行查询getTestExecutions - 使用JQL检索执行
    • 测试执行突变createTestExecution, updateTestRunStatus - 管理执行和结果
    • 测试计划查询getTestPlans - 使用JQL检索测试计划
    • 测试计划突变createTestPlan, addTestsToTestPlan, removeTestsFromTestPlan - 管理测试计划
    • 测试集查询getTestSets - 使用JQL检索测试集
    • 测试集突变createTestSet, addTestsToTestSet, removeTestsFromTestSet - 管理测试集

完整的API文档,请访问:

使用场景

CI/CD集成

使用此MCP服务器来:

  1. 在CI/CD管道中自动创建测试执行
  2. 根据自动化测试结果更新测试运行状态
  3. 跨不同环境跟踪测试执行
  4. 为冲刺评审生成测试执行报告

测试管理

使用此MCP服务器来:

  1. 创建和组织测试用例
  2. 使用复杂的JQL查询搜索测试
  3. 管理手动测试执行
  4. 跟踪测试状态随时间的变化

许可证

ISC

支持

对于Xray Cloud API的问题或疑问,请参考官方文档: