返回市场
MCP服务器

MCP服务器

作者:harness20 星标更新:2025-11-21

项目介绍

Harness MCP Server

Harness MCP Server 是一个 模型上下文协议 (MCP) 服务器,它提供了与 Harness API 的无缝集成,使开发者和工具能够实现高级自动化和交互能力。

目录

组件

工具集

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

默认工具集

默认工具集包含了来自各种服务的基本工具:

工具集名称:default

  • get_connector_details: 获取特定连接器的详细信息
  • list_connector_catalogue: 列出 Harness 连接器目录
  • list_connectors: 列出连接器并提供过滤选项
  • list_pipelines: 列出仓库中的流水线
  • get_pipeline: 获取特定流水线的详细信息
  • get_execution: 获取特定流水线执行的详细信息
  • list_executions: 列出流水线执行
  • fetch_execution_url: 获取流水线执行的执行 URL
  • list_dashboards: 列出所有可用的 Harness 仪表板
  • get_dashboard_data: 从特定的 Harness 仪表板中检索数据

流水线工具集

工具集名称: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: 创建新的拉取请求

服务工具集

工具集名称:services

  • get_service: 获取特定服务的详细信息
  • list_services: 列出服务

环境工具集

工具集名称:environments

  • get_environment: 获取特定环境的详细信息
  • list_environments: 列出环境
  • move_environment_configs: 将环境 YAML 从内联移动到远程

基础设施工具集

工具集名称:infrastructure

  • list_infrastructures: 列出基础设施定义
  • move_infrastructure_configs: 在内联和远程之间移动基础设施 YAML

连接器工具集

工具集名称:connectors

  • list_connector_catalogue: 列出 Harness 连接器目录
  • get_connector_details: 获取特定连接器的详细信息
  • list_connectors: 列出连接器并提供过滤选项

仓库工具集

工具集名称: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: 列出所有可用的 Harness 仪表板
  • get_dashboard_data: 从特定的 Harness 仪表板中检索数据

云成本管理工具集

工具集名称:ccm

  • get_ccm_overview: 获取特定账户的成本概览。
  • list_ccm_cost_categories: 列出指定账户的所有成本类别名称。
  • list_ccm_cost_categories_detail: 列出指定账户的所有成本类别详细信息。
  • get_ccm_cost_category: 根据 Id 获取指定账户的成本类别详细信息。
  • list_ccm_perspectives_detail: 列出指定账户的所有视角。
  • get_ccm_perspective: 根据 Id 获取指定账户的视角。
  • get_last_period_cost_ccm_perspective: 获取指定账户内给定期间和视角的成本。
  • get_last_twelve_months_cost_ccm_perspective: 获取指定账户内过去 12 个月的每月成本细分。
  • create_ccm_perspective: 为指定账户创建视角。
  • update_ccm_perspective: 更新指定账户的视角。
  • delete_ccm_perspective: 删除指定账户的视角。
  • ccm_perspective_grid: 查询 Harness 云成本管理中的详细成本视角数据。
  • ccm_perspective_time_series: 查询 Harness 云成本管理中的详细成本视角数据,并按时间分组。
  • ccm_perspective_summary_with_budget: 查询 Harness 云成本管理中的成本视角摘要,包括按时间分组的详细成本和预算数据。
  • `cc[...]
  • get_ccm_metadata: 获取关于可用云连接器、成本数据源、默认视角和货币偏好的元数据。
  • ccm_perspective_recommendations: 返回每月成本、节省额以及 Harness 云成本管理中特定视角的开放建议列表。
  • ccm_perspective_filter_values: 返回成本视角的有效过滤值,允许在 Harness 云成本管理中动态发现高级查询的有效选项。
  • list_ccm_recommendations: 返回 Harness 云成本管理中的可筛选成本优化建议列表。
  • list_ccm_recommendations_by_resource_type: 返回给定账户内按资源类型聚合的云成本优化建议统计信息。
  • get_ccm_recommendations_stats: 返回给定账户内的云成本优化建议总体统计信息。
  • update_ccm_recommendation_state: 在 Harness 云成本管理中标记建议为已应用/打开/忽略。
  • override_ccm_recommendation_savings: 在 Harness 云成本管理中覆盖建议的节省金额。
  • create_jira_ticket_for_ccm_recommendation: 为 Harness 云成本管理中的建议创建 Jira 工单。
  • create_service_now_ticket_for_ccm_recommendation: 为 Harness 云成本管理中的建议创建 Service Now 工单。
  • get_ec2_recommendation_detail: 返回给定建议标识符的 ECS 建议详细信息。
  • get_azure_vm_recommendation_detail: 返回给定建议标识符的 Azure VM 建议详细信息。
  • get_ecs_service_recommendation_detail: 返回给定建议标识符的 ECS 服务建议详细信息。
  • get_node_pool_recommendation_detail: 返回给定建议标识符的节点池建议详细信息。
  • get_workload_recommendation_detail: 返回给定建议标识符的工作负载建议详细信息。
  • list_jira_projects: 返回可用于为 Harness 云成本管理中的建议创建工单的 Jira 项目列表。
  • list_jira_issue_types: 返回可用于为 Harness 云成本管理中的建议创建工单的 Jira 问题类型列表。
  • get_ccm_anomalies_summary: 返回指定账户的成本异常摘要。
  • list_ccm_anomalies: 返回指定账户的成本异常列表。
  • list_ccm_ignored_anomalies: 返回指定账户的忽略成本异常列表。
  • get_ccm_anomalies_for_perspective: 返回指定视角和账户的成本异常。
  • list_all_ccm_anomalies: 返回指定账户的所有成本异常列表。
  • list_filter_values_ccm_anomalies: 返回指定账户内所有指定异常的唯一值列表。
  • report_ccm_anomaly_feedback: 报告指定账户内异常的反馈。
  • get_ccm_commitment_coverage: 获取账户的承诺覆盖率信息。
  • get_ccm_commitment_savings: 获取账户的承诺节省信息。
  • get_ccm_commitment_utilisation: 获取账户的承诺利用率信息,按预留实例和节省计划逐日细分。
  • get_ccm_estimated_savings: 获取云账户的估算节省信息。
  • get_ccm_commitment_ec2_analysis: 获取账户的 AWS EC2 承诺分析,包括预留实例/节省计划支出、利用率细分、当前节省、年度化估算节省和 ESR。

数据库操作工具集

工具集名称:dbops

  • get_database_schema_info: 获取数据库模式的元数据,包括其标识符、实例标识符和数据库类型。

混沌工程工具集

工具集名称:chaos

  • chaos_experiments_list: 列出所有匹配范围和过滤器的混沌实验。
  • chaos_experiment_describe: 获取特定混沌实验的详细信息。
  • chaos_experiment_run: 运行特定的混沌实验。
  • chaos_experiment_run_result: 获取特定混沌实验运行的结果。
  • chaos_probes_list: 列出所有匹配范围和过滤器的混沌探测。
  • chaos_probe_describe: 获取特定混沌探测的详细信息。
  • chaos_create_experiment_from_template: 从模板创建新的混沌实验。
  • chaos_experiment_template_list: 列出所有匹配范围和过滤器的混沌实验模板。
  • chaos_experiment_variables_list: 列出特定混沌实验的所有变量。

供应链安全 (SCS) 工具集

工具集名称:scs

  • list_artifact_sources: 列出特定组织和项目中 Harness SCS 中的所有软件包来源。
  • list_artifacts_per_source: 列出特定软件包来源中的所有软件包。
  • get_artifact_overview: 获取特定软件包的元数据、安全发现、SBOM 和合规状态。
  • get_artifact_chain_of_custody: 获取特定软件包的完整保管链(事件历史)。
  • fetch_compliance_results_by_artifact: 获取特定软件包的合规结果。
  • get_code_repository_overview: 获取代码存储库的漏洞、SBOM、合规问题和策略违规概述。
  • list_scs_code_repos: 列出 Harness SCS 扫描的所有代码存储库。

安全测试编排 (STO) 工具集

工具集名称:sto

  • get_all_security_issues: 列出并筛选 Harness STO 中的安全问题,按目标、流水线、工具、严重性、豁免状态和类型进行筛选。
  • global_exemptions: 列出 Harness STO 中的所有全局豁免。
  • promote_exemption: 将特定豁免提升为全局豁免。
  • approve_exemption: 批准特定豁免。

日志工具集

工具集名称:logs

  • download_execution_logs: 下载流水线执行的日志

模板工具集

工具集名称:templates

  • list_templates: 列出给定范围内的模板
  • intelligent_template_search: 根据自然语言描述找到最相关的模板。

内部开发者门户工具集

工具集名称:idp

  • get_entity: 获取 Harness IDP 目录中特定实体的详细信息
  • list_entities: 列出 Harness 内部开发者门户目录中的实体
  • get_scorecard: 获取 Harness IDP 目录中特定实体的详细信息
  • list_scorecards: 列出 Harness 内部开发者门户目录中的评分卡
  • get_score_summary: 获取 Harness 内部开发者门户目录中评分卡的评分摘要。
  • get_scores: 获取 Harness 内部开发者门户目录中评分卡的评分。

审计跟踪工具集

工具集名称:audit

  • list_user_audits: 获取指定用户的完整审计跟踪。

特性管理和实验 (FME) 工具集

工具集名称:fme

  • list_fme_workspaces: 列出所有 FME 工作区
  • list_fme_environments: 列出特定工作区的环境
  • list_fme_feature_flags: 列出特定工作区的特性标志
  • get_fme_feature_flag_definition: 获取特定环境中的特定特性标志定义

前提条件

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

快速开始

Makefile 使用

此项目提供了一个 Makefile 来简化常见的开发任务。主要目标如下:

  • make build – 构建带有嵌入版本信息的 mcp-server 二进制文件。
  • make init – 设置 git 钩子和子模块以进行预提交检查。
  • make dep – 下载 Go 模块依赖项。
  • make tools – 安装构建所需的工具(如果有指定)。
  • make format – 使用 goimports 和 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 镜像

标准 I/O 模式

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

docker run -i --rm \
  -e HARNESS_API_KEY=your_api_key \
  -e HARNESS_BASE_URL=your_base_url \
  -e HARNESS_LOG_FILE=harness-mcp.log \
  harness/mcp-server stdio

可选环境变量:

  1. HARNESS_DEFAULT_ORG_ID
  2. HARNESS_DEFAULT_PROJECT_ID
  3. HARNESS_LOG_FILE (默认:harness-mcp.log)

HTTP 模式

要作为 HTTP 服务器本地运行 MCP 服务器,必须设置以下环境变量:

  1. HARNESS_BASE_URL
  2. HARNESS_API_KEY

使用以下命令构建 Docker 镜像:

docker build -t harness-mcp-server .

运行 Docker 镜像:

docker run -p 8080:8080 -e HARNESS_BASE_URL=https://app.harness.io -e HARNESS_API_KEY=<PAT> -e HARNESS_LOG_FILE=harness-mcp.log harness-mcp-server http-server

在本地 Kubernetes