helix.mcp — Helix 与 AzDO 的 MCP 服务器实现

使用说明(简明易懂的步骤与要点)

  • 项目简介

    • 该仓库实现了一个基于 Model Context Protocol (MCP) 的后端服务器,用于向 LLM 客户端提供可结构化的上下文数据、可调用的工具,以及可定制的交互模板。核心设计包括对 Helix 和 AzDO 的 API 进行封装、注册 MCP 工具、以及对资源、工具、以及会话的缓存与鉴权支持。
  • 主要功能点

    • 资源与数据访问:通过 Helix/AzDO 的 API 封装提供结构化数据,便于 LLM 代理进行决策和分析。
    • 工具注册与执行:提供多组 MCP 工具(如 helix_, azdo_),支持对 Helix/AzDO 的操作调用。
    • Prompts/模板渲染:理论上支持以模板化方式渲染与返回提示内容,便于自定义对话模式。
    • JSON-RPC 交互:在 MCP 客户端与服务端之间以标准的 MCP 请求/响应进行通信,格式化输出为结构化 JSON。
    • 跨进程缓存:使用本地 SQLite 实现缓存,支持多进程共享缓存并具备 token 隔离、TTL 和缓存清理策略。
    • 传输协议支持:同时提供 StdIO 和 HTTP 两种传输模式,便于本地开发与远程部署。
    • 安全与鉴权:支持通过 HLX_API_KEY (X-Api-Key) 和 Helix 令牌进行请求鉴权,确保客户端访问隔离与授权管控。
    • 认证与会话:对 Helix 令牌、AzDO 令牌的解析与传递进行环境变量与请求头的解析,确保在多场景下的安全访问。
  • 安装步骤

    • 需要 .NET 10 SDK。
    • 直接通过编译运行,示例命令包括:
      • 用命令行启动 MCP 服务器(本地开发模式):
        • hlx mcp(已经在 CLI 中实现,默认开启 stdio MCP)
        • 或以 HTTP 服务方式运行:dotnet run --project src/HelixTool.Mcp
    • 构建与运行的常用方式(请根据本地环境选择):
      • 克隆仓库后进入项目根目录,执行 dotnet build
      • 使用 CLI 启动:hlx mcp(若本地工具已安装)
      • 也可直接以 HTTP 方式运行:dotnet run --project src/HelixTool.Mcp
  • 服务器配置(MCP 客户端需要的配置信息)

    • 配置示例(JSON,直接给出文字描述,不包含代码块)
    • key 概要:
      • server 名称:hlx
      • 启动命令与参数:通过 stdio 方式连接本地 MCP 服务,默认会使用 hlx mcp 模式启动服务器
    • 配置要点说明:
      • type:stdio
      • command: dotnet
      • args: ["dnx", "--yes", "lewing.helix.mcp"](若使用全局工具,请按实际命令替换)
      • 如需要远程访问的 HTTP 传输,可额外使用 type: http,url 指定服务地址
      • 如需鉴权,可在 env 中设置 HLX_API_KEY 或 HELIX_ACCESS_TOKEN 以实现请求级别鉴权
    • 备注
      • MCP 客户端的配置本质上是告诉客户端如何与服务器建立连接(stdio 或 http),具体的服务器实现、工具集合和 API 均已在仓库代码中实现,无需额外修改即可启动并使用。
  • 基本使用方法(对开发者/运维的快速使用指引)

    • 启动服务器后,客户端通过 MCP 协议向 Helix/AzDO 工具进行请求,获得结构化的资源、工具和提示数据。
    • 常见工作流包括:
      • 通过 Helix/MCP 工具获取 Helix 状态、日志、文件、以及 TRX 结果等结构化信息,便于 LLM 代理做推断与分析。
      • 通过 AzDO/MCP 工具获取 Azure DevOps 的构建、时间线、测试结果、工件等数据,同样以结构化形式返回。
    • 安全性相关:
      • 如果需要对 MCP 客户端进行 API Key 级别的访问控制,可在启动时配置 HLX_API_KEY,并让客户端在请求头中携带 X-Api-Key 以通过中间件验证。
      • Helix/AzDO 访问的令牌通过环境变量(如 HELIX_ACCESS_TOKEN、AZDO_TOKEN)或客户端配置传入,确保跨进程缓存的鉴权隔离。
    • 典型用法场景:
      • LLM 代理调用 helix_status、helix_logs、helix_files、helix_download、helix_find_files、helix_test_results 等工具获取结构化数据。
      • AzDO 相关工具 azdo_build、azdo_builds、azdo_timeline、azdo_log、azdo_changes、azdo_test_runs、azdo_test_results、azdo_artifacts、azdo_test_attachments 等提供的结果用于后续推理。
  • 运行与验证

    • 代码中包含了充分的单元测试覆盖 MCP 相关的核心行为(MCP 工具注册、资源读取、缓存策略、Token 解析、405 等边界情况等),确保 MCP 服务器端实现的稳定性、并发性和安全性。
    • 测试覆盖了多方面场景:从标准工具调用、到跨进程缓存、到安全性(URL 验证、缓存键的 sanitization 等),以及 AzDO/AH Helix 的具体工具实现。
  • 结果输出与可扩展性

    • MCP 服务器端基于 Model Context Protocol,输出 JSON 结构化响应,便于 LLM 进行解析和推理。
    • 设计支持跨进程缓存、按 token 隔离缓存目录、TTL 策略、以及可扩展的新工具、数据源和传输协议。
  1. 关键词 Helix, Azure DevOps, 缓存, 模型上下文协议, 结构化数据

  2. 分类ID 6

服务器信息