Harness MCP 服务器端
使用说明(Markdown 格式)
-
项目简介
- Harness MCP 服务器端是一个面向 LLM 客户端的后端框架,遵循 Model Context Protocol(MCP),用于向 LLM 提供上下文信息与外部能力(资源、工具、提示),并通过 JSON-RPC 与客户端交互。该实现具备 HTTP 与 stdio 两种传输方式,支持动态加载工具集和提示、以及会话管理和健康检查等能力。
-
主要功能点
- MCP 核心能力:托管资源(Resources)、注册并执行工具(Tools)、定义和渲染 Prompt 模板(Prompts)。
- 传输模式:支持 HTTP/REST 风格的服务模式以及 stdio 传输模式(通过标准输入输出实现 JSON-RPC 通信)。
- 服务端特性:会话管理、能力声明、健康端点,便于 Kubernetes 等环境健康探针集成。
- 插件化、可扩展:通过 Toolsets 机制加载一组工具,并可与 Harness API 无缝集成(如 pipelines、gitops、secrets、ccm 等)。
- 安全与观测:内置日志格式化、JSON/文本日志、错误处理与健康检查,便于调试和运维。
-
安装步骤
- 在具备 Go 语言环境的系统上构建源码:
- 克隆仓库并进入项目根目录。
- 执行构建命令生成可执行文件,例如适用于你环境的二进制路径。
- 运行方式(示例,不是必须的固定路径):
- stdio 模式:设置 HARNESS_API_KEY、HARNESS_BASE_URL 等环境变量后,执行生成的二进制并传入 stdio 传输模式参数。如需通过 stdio 与 MCP 客户端交互,即可在同一终端或管道中进行通信。
- http-server 模式:设置 HARNESS_API_KEY、HARNESS_BASE_URL、默认组织/项目等参数,启动 HTTP 服务端并监听指定端口与路径。
- 在具备 Go 语言环境的系统上构建源码:
-
服务器配置(给 MCP 客户端的配置示例,服务器端提供 JSON 信息供 MCP 客户端使用)
- server 名称:Harness
- command:/path/to/harness-mcp-server
- args:["stdio"](如需 http 服务则改为 ["http-server"])
- env:
- HARNESS_API_KEY: 替换为你的 Harness API Key
- HARNESS_DEFAULT_ORG_ID: 默认组织标识(可选,如未指定则在请求中提供)
- HARNESS_DEFAULT_PROJECT_ID: 默认项目标识(可选,如未指定则在请求中提供)
- HARNESS_BASE_URL: Harness 服务端地址,通常为 https://app.harness.io 说明:这份配置信息用于 MCP 客户端建立与 MCP 服务器的连接,服务器端本身的实现会读取相应环境变量来进行认证、路由和工具集初始化等工作。MCP 客户端在使用时并不需要包含服务器端代码,仅需要上述配置信息来建立连接。
-
基本使用方法
- 启动服务器后,MCP 客户端(如 Gemini、Windsurf、Claude、VS Code 集成等)可以通过指定的传输方式与服务器建立对话,读取资源、调用工具、获取 Prompts,进行上下文交互。
- 可通过健康端点 /health(HTTP 模式)进行探针检查;在 stdio 模式下,通过 MCP Inspector 等工具进行调试。
- 通过配置的 Toolsets 动态开启或禁用某些工具集,按需扩展能力。