helix.mcp

使用说明(Markdown 格式):

  • 项目简介

    • 该仓库实现了一个基于 MCP 的后端服务器,用于向大型语言模型(LLM)客户端以标准化的方式提供 Helix 与 Azure DevOps 的上下文信息和功能。通过 MCP 服务器,LLM 可以读取资源、调用工具、获取并渲染提示模板等,便于诊断和分析持续集成失败等场景。
    • 服务器端核心由 HelixTool.Mcp(MCP HTTP 服务器)与 HelixTool.Core 提供的服务组合实现,内部注册了两组 MCP 工具:
      • HelixMcpTools:围绕 Helix API 提供状态、日志、文件、下载、搜索、测试结果、批量状态等工具。
      • AzdoMcpTools:围绕 Azure DevOps API 提供构建详情、列表、时间线、日志、变更、测试运行/结果、工件、附件等工具。
    • 服务器还包含对令牌认证、API 速缓存、以及跨进程缓存等功能,确保在多人/多实例场景下的性能与隔离性。
  • 主要功能点

    • MCP 工具注册与暴露:Helix 与 AzDO 的工具以 MCP Server Tool 的形式暴露,返回结构化的 JSON 内容,便于 LLM 直接消费。
    • 资源与缓存管理:通过本地 SQLite 缓存实现跨进程缓存,支持 TTL、LRU、以及按 token 隔离缓存数据。
    • 令牌与鉴权:支持通过环境变量和请求头提供 Helix/AzDO 的访问令牌,HTTP MCP 服务端支持按需开启 API Key 保护。
    • 安全性设计:对文件路径、缓存键等进行严格的清洗与校验,确保不会产生路径穿越、注入等风险。
    • 多传输协议:默认使用 stdio 传输,支持 HTTP 传输以便远程/共享服务接入。
    • 易用性设计:CLI 和 MCP 模式均可工作,CLI 提供 hlx mcp 启动 MCP 服务器;MCP 客户端配置示例可在下文 JSON 配置中查看。
  • 安装步骤

    • 克隆仓库后在根目录执行 dotnet build 构建解决方案。
    • 直接通过 CLI 启动 MCP 服务器(默认情况下 hlx mcp 即是 MCP 模式);
    • 也可单独运行 HelixTool.Mcp 项下的程序以在 HTTP 端口启动 MCP 服务器。
  • 服务器配置(MCP 客户端所需配置信息,JSON 描述,供客户端读取,不包含代码)

    • server 名称:hlx
    • command:dotnet
    • args:dnx --yes lewing.helix.mcp
    • 说明:以 stdio 方式启动 MCP 服务,若需要远程访问,可改用 HTTP 传输;若 Helix 访问令牌需要限制访问,请在 env 中设置 HELIX_ACCESS_TOKEN,或在 server 配置中添加 env 字段。
    • 额外选项(可选):env: HELIX_ACCESS_TOKEN、AZDO_TOKEN 等环境变量,用于 Helix/AzDO 的鉴权;若需要对 API 请求进行额外保护,可启用 HLX_API_KEY 并在请求头中提供 X-Api-Key。
  • 基本使用方法

    • 启动服务器
      • 通过 hlx mcp 启动 stdio MCP 服务器,或在需要对外暴露时使用 HTTP MCP 服务器。
    • 客户端连接
      • 使用 MCP 客户端连接 hlx(名称为 hlx,类型为 stdio 或 http),并按 MCP 标准发送 JSON-RPC 风格请求(读取资源、执行工具、获取提示等)。
    • 常用操作
      • 使用 Helix/MCP 工具执行查询(如:获取 Helix 任务状态、读取日志、获取 TRX 测试结果等),或者通过 AzDO 工具获取 Azure DevOps 的构建、测试、工件等信息。
      • 使用缓存提升跨进程多客户端的响应速度,确保同一缓存目录下的不同客户端令牌隔离。
    • 安全与运维
      • 如需对外暴露,在服务启动时配置 HLX_API_KEY,以实现基于头部 X-Api-Key 的 API KEY 认证。
      • 监控缓存大小与 TTL 策略,必要时通过 HLX_CACHE_MAX_SIZE_MB 调整最大缓存容量。
  • 结论性使用要点

    • 该仓库包含完整的 MCP 服务器实现、工具注册、令牌访问、缓存、以及对 Helix/AzDO API 的封装与适配,具备可运行的服务器端代码及明确的功能分工,符合 MCP 服务器实现的核心要求。
    • 它不仅提供示例工具,还实现了跨进程缓存、HTTP/stdio 传输、以及安全性考虑,适合作为对接 LLM 客户端的后端服务。
  • 参考性配置与扩展

    • 根据部署场景,可以将 HTTP MCP 服务器作为远程服务暴露,MCP 客户端可通过 http 连接获取 Helix/AzDO 的结构化数据。
    • 如需扩展工具,只需在 HelixMcpTools.cs、AzdoMcpTools.cs 中新增方法并标注 McpServerToolType,即可将新工具暴露给 MCP 客户端。

服务器信息