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
- 用命令行启动 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 策略、以及可扩展的新工具、数据源和传输协议。
-
关键词 Helix, Azure DevOps, 缓存, 模型上下文协议, 结构化数据
-
分类ID 6