Harness MCP Server 2.0
- 适用对象
- 需要将 Harness 平台能力对接给大语言模型(LLM)的开发者/团队,构建统一的上下文服务层,以便 LLM 调用资源、执行工具、获取提示模板等能力。
- 核心功能要点
- 资源管理(Resources):通过 MCP 工具对 Harness 平台的资源进行列、获取、创建、更新、删除等操作。
- 工具注册与执行(Tools):提供 10 种通用工具集,集中路由不同资源类型的操控请求,避免端点数量爆炸。
- 提示模板(Prompts):内置 26+ 提示模板,支持 DevOps、FinOps、DevSecOps、GitOps 等工作流场景。
- MCP 兼容与传输:实现对 MCP 协议的 JSON-RPC 请求/响应处理,支持 stdio、HTTP(无状态会话)等传输模式,并兼容各种网关。
- 会话与权限:集成会话管理、能力声明、节流与重试策略,并对写操作启用 elicitation(人机交互确认)以增强安全性。
- 安装与运行方式(Quick Start)
- 快速运行(无需安装,推荐)
- npx harness-mcp-v2
- 以 Harness API Key 启动:HARNESS_API_KEY=pat.xxx.xxx.xxx npx harness-mcp-v2
- 以 HTTP 传输模式暴露远端端点:HARNESS_API_KEY=pat.xxx.xxx.xxx npx harness-mcp-v2 http --port 8080
- 全局安装
- npm install -g harness-mcp-v2
- harness-mcp-v2
- 从源码构建
- git clone https://github.com/thisrohangupta/harness-mcp-v2.git
- cd harness-mcp-v2
- pnpm install
- pnpm build
- pnpm start # Stdio transport
- pnpm start:http # HTTP transport
- pnpm inspect # MCP Inspector 调试
- 快速运行(无需安装,推荐)
- 重要运行时配置
- 环境变量
- HARNESS_API_KEY:Harness 的个人访问令牌或服务账户令牌,必须提供(用于访问 Harness REST API)。
- HARNESS_ACCOUNT_ID:账户ID,若 API Key 不是 PAT 形式需显式设置。
- HARNESS_BASE_URL: Harness 服务的基地址,默认 https://app.harness.io。
- HARNESS_DEFAULT_ORG_ID、HARNESS_DEFAULT_PROJECT_ID:默认的组织/项目作用域,可选,LLM 可通过 harness_list/harness_get 等动态发现。
- HARNESS_TOOLSETS、HARNESS_READ_ONLY、HARNESS_MAX_BODY_SIZE_MB 等:工具集筛选、只读模式、HTTP 请求体大小等。
- 客户端配置(示例说明,客户端无需执行以下代码)
- MCP 客户端通常需要一个配置对象,包含 server 名称、启动命令及参数等信息,以便将 MCP 服务器接入到客户端。以下为可选的配置说明(非代码片段,仅用于理解):
- server_name: harness-mcp-v2
- command: npx
- args: ["harness-mcp-v2"]
- 注释:
- server_name 描述要连接的 MCP 服务器名称,便于在多服务器场景中区分。
- command 与 args 指定启动该 MCP 服务器的命令和参数,客户端据此启动并建立连接。
- 还可在环境变量中配置 HARNESS_API_KEY 等认证信息,以及 HARNESS_BASE_URL、ORG/PROJECT 的默认作用域等。
- MCP 客户端通常需要一个配置对象,包含 server 名称、启动命令及参数等信息,以便将 MCP 服务器接入到客户端。以下为可选的配置说明(非代码片段,仅用于理解):
- 环境变量
- 基本使用方式
- 启动后,客户端通过 MCP 传输(stdio/http)与服务器交互,发送 JSON-RPC 请求,接收 JSON-RPC 响应或通知。
- 通过 Harness 提供的 10 种通用工具,以 resource_type/operation 进行资源操作;通过 prompt/diagnose 等工具模板,进行工作流场景的交互式诊断与规划。
- 如需安全性增强,可开启 HTTP 网关(MCP Gateway/Portkey 等)对多服务器进行统一鉴权与审计。
- 部署与扩展
- 服务器侧实现了完整的工具注册、资源注册、提示模板注册,支持按 toolsets 过滤加载,以及对资源类型进行描述、搜索和摘要输出。
- 可以通过修改 registry/toolsets 及 prompts 目录下的 YAML/TS 数据来扩展新的资源类型、工具集和提示模板,无需改动核心服务器逻辑。
- HTTP 模式为无状态,利于无服务器化部署;Stdio 适合本地调试和 Claude Desktop 等本地客户端。
- 使用注意事项
- 写操作(create/update/delete/execute)会通过 MCP elicitation 进行确认,需客户端支持相应能力。
- HTTP 模式有请求大小和速率限制,请按配置调整 HARNESS_MAX_BODY_SIZE_MB、HARNESS_RATE_LIMIT_RPS 等。
- 资源与工具的命名尽量遵循 registry 与 toolsets 的约定,以确保 LLM 的提示与调用的一致性。