Harness MCP服务端

Harness MCP服务端是一个基于模型上下文协议(MCP)的服务器,提供与Harness API的无缝集成,支持开发者进行高级自动化和交互操作。

  • by abhishek-singh0710
  • Go
  • 本地部署
  • 更新于
在 GitHub 查看 abhishek-singh0710/temporary-mcp-server

使用说明

利用MCP服务器

线束MCP服务器是一个 模型上下文协议(MCP) 服务器,提供与Harness API的无缝集成,为开发人员和工具提供高级自动化和交互功能。

组件

工具

服务器实现了几个工具集:

管道工具集

工具集名称: pipelines

  • get_pipeline:获取特定管道的详细信息
  • list_pipelines:列出存储库中的管道
  • get_execution:获取特定管道执行的详细信息
  • list_executions:列出管道执行
  • fetch_execution_url:获取管道执行的执行URL

拉取请求工具集

工具集名称: pullrequests

  • get_pull_request:获取特定拉取请求的详细信息
  • list_pull_requests:在存储库中列出拉取请求
  • get_pull_request_checks:获取特定拉取请求的状态检查
  • get_pull_request_activities:获取特定拉取请求的活动和评论
  • create_pull_request:创建新的pull请求

存储库工具集

工具集名称: repositories

  • get_repository:获取特定存储库的详细信息
  • list_repositories:列出存储库

注册表工具集

工具集名称: registries

  • get_registry:在Harness工件注册表中获取特定注册表的详细信息
  • list_artifact_files:列出Harness工件注册表中特定工件版本的文件
  • list_artifact_versions:在Harness工件注册表中列出工件版本
  • list_artifacts:在Harness工件注册表中列出工件
  • list_registries:列出Harness工件注册表中的注册表

仪表板工具集

工具集名称: dashboards

  • list_dashboards:列出所有可用的线束仪表板
  • get_dashboard_data:从特定的线束仪表板检索数据

云成本管理工具集

工具集名称: cloudcostmanagement

  • get_ccm_overview:检索特定账户的成本概览。
  • list_ccm_cost_categories:列出指定帐户的所有成本类别名称。
  • list_ccm_cost_categories_detail:列出指定帐户的所有成本类别详细信息。
  • get_ccm_cost_category:按Id检索指定帐户的成本类别详细信息。

日志工具集

工具集名称: logs

  • download_execution_logs:下载管道执行日志

先决条件

  1. 您需要在系统上安装Go 1.23或更高版本。
  2. 用于身份验证的Harness API密钥。

快速启动

Makefile使用情况

该项目提供了 Makefile 简化常见的开发任务。主要目标是:

  • make build –构建嵌入版本信息的mcp服务器二进制文件。
  • make init –设置git钩子和子模块进行预提交检查。
  • make dep –下载Go模块依赖项。
  • make tools –安装构建所需的工具(如果指定了)。
  • make format –使用goimport和gci格式化Go代码。

您可以从项目根目录运行这些命令中的任何一个。例如:

make build
make format

从源代码构建

  1. 克隆存储库:
git clone https://github.com/harness/mcp-server.git
cd mcp-server
  1. 构建二进制文件:
go build -o cmd/harness-mcp-server/harness-mcp-server ./cmd/harness-mcp-server
  1. 运行服务器:
HARNESS_API_KEY=your_api_key HARNESS_DEFAULT_ORG_ID=your_org_id HARNESS_DEFAULT_PROJECT_ID=your_project_id ./cmd/harness-mcp-server/harness-mcp-server stdio

使用Docker镜像

或者,您可以使用预构建的Docker镜像:

docker run -i --rm \
  -e HARNESS_API_KEY=your_api_key \
  -e HARNESS_DEFAULT_ORG_ID=your_org_id \
  -e HARNESS_DEFAULT_PROJECT_ID=your_project_id \
  -e HARNESS_BASE_URL=your_base_url \
  harness/mcp-server stdio

Claude桌面配置

在MacOS上: ~/Library/Application\ Support/Claude/claude_desktop_config.json
在Windows上: %APPDATA%/Claude/claude_desktop_config.json

Server Configuration
{
  "mcpServers": {
    "harness": {
      "command": "/path/to/harness-mcp-server",
      "args": ["stdio"],
      "env": {
        "HARNESS_API_KEY": "<YOUR_API_KEY>",
        "HARNESS_DEFAULT_ORG_ID": "<YOUR_ORG_ID>",
        "HARNESS_DEFAULT_PROJECT_ID": "<YOUR_PROJECT_ID>"
      }
    }
  }
}

使用Claude代码

HARNESS_API_KEY=your_api_key HARNESS_ACCOUNT_ID=your_account_id HARNESS_ORG_ID=your_org_id HARNESS_PROJECT_ID=your_project_id ./cmd/harness-mcp-server/harness-mcp-server stdio

与Windsurf一起使用

要将线束MCP服务器与Windsurf一起使用:

  1. 将服务器配置添加到Windsurf配置文件中:

使用本地二进制

{
  "mcpServers": {
    "harness": {
      "command": "/path/to/harness-mcp-server",
      "args": ["stdio"],
      "env": {
        "HARNESS_API_KEY": "<YOUR_API_KEY>",
        "HARNESS_DEFAULT_ORG_ID": "<YOUR_ORG_ID>",
        "HARNESS_DEFAULT_PROJECT_ID": "<YOUR_PROJECT_ID>",
        "HARNESS_BASE_URL": "<YOUR_BASE_URL>"
      }
    }
  }
}

使用Docker镜像

{
  "mcpServers": {
    "harness": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "HARNESS_API_KEY",
        "-e",
        "HARNESS_DEFAULT_ORG_ID",
        "-e",
        "HARNESS_DEFAULT_PROJECT_ID",
        "-e",
        "HARNESS_BASE_URL",
        "harness/mcp-server",
        "stdio"
      ],
      "env": {
        "HARNESS_API_KEY": "<YOUR_API_KEY>",
        "HARNESS_DEFAULT_ORG_ID": "<YOUR_ORG_ID>",
        "HARNESS_DEFAULT_PROJECT_ID": "<YOUR_PROJECT_ID>",
        "HARNESS_BASE_URL": "<YOUR_BASE_URL>"
      }
    }
  }
}

使用Amazon Q Developer CLI

要将Harness MCP服务器与Amazon Q Developer CLI一起使用,请执行以下操作:

  1. 将服务器配置添加到您的Amazon Q配置文件中: ~/.aws/amazonq/mcp.json

使用本地二进制

{
  "mcpServers": {
    "harness": {
      "command": "/path/to/harness-mcp-server",
      "args": ["stdio"],
      "env": {
        "HARNESS_API_KEY": "<YOUR_API_KEY>",
        "HARNESS_DEFAULT_ORG_ID": "<YOUR_ORG_ID>",
        "HARNESS_DEFAULT_PROJECT_ID": "<YOUR_PROJECT_ID>",
        "HARNESS_BASE_URL": "<YOUR_BASE_URL>"
      }
    }
  }
}

光标配置

{
  "mcpServers": {
    "harness": {
      "command": "/path/to/harness-mcp-server",
      "args": ["stdio"],
      "env": {
        "HARNESS_API_KEY": "your_api_key",
        "HARNESS_DEFAULT_ORG_ID": "your_org_id",
        "HARNESS_DEFAULT_PROJECT_ID": "your_project_id",
        "HARNESS_BASE_URL": "<if-needed>"
      }
    }
  }
}

光标MCP指南

VS代码配置

{
  "mcp": {
    "servers": {
      "harness": {
        "command": "docker",
        "args": [
          "run",
          "-i",
          "--rm",
          "-e",
          "HARNESS_API_KEY",
          "-e",
          "HARNESS_DEFAULT_ORG_ID",
          "-e",
          "HARNESS_DEFAULT_PROJECT_ID",
          "-e",
          "HARNESS_BASE_URL",
          "harness/mcp-server",
          "stdio"
        ],
        "env": {
          "HARNESS_API_KEY": "<YOUR_API_KEY>",
          "HARNESS_DEFAULT_ORG_ID": "<YOUR_ORG_ID>",
          "HARNESS_DEFAULT_PROJECT_ID": "<YOUR_PROJECT_ID>",
          "HARNESS_BASE_URL": "<YOUR_BASE_URL>"
        }
      }
    }
  }
}

VS代码MCP指南

发展

命令行参数

线束MCP服务器支持以下命令行参数:

  • --toolsets:以逗号分隔的要启用的工具组列表(默认值:“全部”)
  • --read-only:以只读模式运行服务器
  • --log-file:调试日志文件的路径
  • --log-level:设置日志记录级别(调试、信息、警告、错误)
  • --version:显示版本信息
  • --help:显示帮助消息
  • --base-url:线束的基本URL(默认值:“https://app.harness.io")

环境变量

环境变量前缀为 HARNESS_:

  • HARNESS_API_KEY:Harness API密钥(必需)-帐户ID自动从API密钥中提取
  • HARNESS_DEFAULT_ORG_ID:默认线束组织ID(可选,如果未指定,如果该操作需要,则需要在请求中传递)
  • HARNESS_DEFAULT_PROJECT_ID:默认线束项目ID(可选,如果未指定,如果该操作需要,则需要在请求中传递)
  • HARNESS_TOOLSETS:以逗号分隔的要启用的工具集列表(默认值:“全部”)
  • HARNESS_READ_ONLY:设置为“true”以只读模式运行
  • HARNESS_LOG_FILE:日志文件的路径
  • HARNESS_LOG_LEVEL:设置日志记录级别(调试、信息、警告、错误)
  • HARNESS_BASE_URL:线束的基本URL(默认值:“https://app.harness.io")

认证

服务器使用Harness API密钥进行身份验证。这可以通过以下方式设置 HARNESS_API_KEY 环境变量。

调试

由于MCP服务器在stdio上运行,调试可能具有挑战性。为了获得最佳的调试体验,我们强烈建议使用 MCP检查员.

您可以使用以下命令启动MCP检查器:

npx @modelcontextprotocol/inspector /path/to/harness-mcp-server stdio

启动后,检查器将显示一个URL,您可以在浏览器中访问该URL以开始调试。