harness-mcp

vistaarjuneja/harness-mcp

3.3

If you are the rightful owner of harness-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

The Harness MCP Server is a Model Context Protocol server that integrates with Harness APIs for advanced automation and interaction.

Tools
  1. get_pipeline

    Get details of a specific pipeline

  2. list_pipelines

    List pipelines in a repository

  3. get_execution

    Get details of a specific pipeline execution

  4. list_executions

    List pipeline executions

  5. fetch_execution_url

    Fetch the execution URL for a pipeline execution

  6. get_pull_request

    Get details of a specific pull request

  7. list_pull_requests

    List pull requests in a repository

  8. get_pull_request_checks

    Get status checks for a specific pull request

  9. create_pull_request

    Create a new pull request

  10. get_repository

    Get details of a specific repository

  11. list_repositories

    List repositories

  12. download_execution_logs

    Download logs for a pipeline execution

Harness MCP Server

The Harness MCP Server is a Model Context Protocol (MCP) server that provides seamless integration with Harness APIs, enabling advanced automation and interaction capabilities for developers and tools.

Components

Tools

The server implements several toolsets:

Pipelines Toolset
  • get_pipeline: Get details of a specific pipeline
  • list_pipelines: List pipelines in a repository
  • get_execution: Get details of a specific pipeline execution
  • list_executions: List pipeline executions
  • fetch_execution_url: Fetch the execution URL for a pipeline execution
Pull Requests Toolset
  • get_pull_request: Get details of a specific pull request
  • list_pull_requests: List pull requests in a repository
  • get_pull_request_checks: Get status checks for a specific pull request
  • create_pull_request: Create a new pull request
Repositories Toolset
  • get_repository: Get details of a specific repository
  • list_repositories: List repositories
Logs Toolset
  • download_execution_logs: Download logs for a pipeline execution

Prerequisites

  1. You will need to have Go 1.23 or later installed on your system.
  2. A Harness API key for authentication.

Quickstart

Build from source

  1. Clone the repository:
git clone https://github.com/vistaarjuneja/harness-mcp.git
cd harness-mcp
  1. Build the binary:
go build -o cmd/harness-mcp-server/harness-mcp-server ./cmd/harness-mcp-server
  1. Run the server:
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

Claude Desktop Configuration

On MacOS: ~/Library/Application\ Support/Claude/claude_desktop_config.json
On 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_ACCOUNT_ID": "<YOUR_ACCOUNT_ID>",
        "HARNESS_ORG_ID": "<YOUR_ORG_ID>",
        "HARNESS_PROJECT_ID": "<YOUR_PROJECT_ID>"
      }
    }
  }
}

Usage with Claude Code

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

Usage with Windsurf

To use the Harness MCP Server with Windsurf:

  1. Add the server configuration to your Windsurf config file:
{
  "mcpServers": {
    "harness": {
      "command": "/path/to/harness-mcp-server",
      "args": ["stdio"],
      "env": {
        "HARNESS_API_KEY": "<YOUR_API_KEY>",
        "HARNESS_ACCOUNT_ID": "<YOUR_ACCOUNT_ID>",
        "HARNESS_ORG_ID": "<YOUR_ORG_ID>",
        "HARNESS_PROJECT_ID": "<YOUR_PROJECT_ID>",
        "HARNESS_BASE_URL": "<YOUR_BASE_URL>",
      }
    }
  }
}

Development

Command Line Arguments

The Harness MCP Server supports the following command line arguments:

  • --toolsets: Comma-separated list of tool groups to enable (default: "all")
  • --read-only: Run the server in read-only mode
  • --log-file: Path to log file for debugging
  • --log-level: Set the logging level (debug, info, warn, error)
  • --version: Show version information
  • --help: Show help message
  • --base-url: Base URL for Harness (default: "https://app.harness.io")

Environment Variables

Environment variables are prefixed with HARNESS_:

  • HARNESS_API_KEY: Harness API key (required)
  • HARNESS_ACCOUNT_ID: Harness account ID (required)
  • HARNESS_ORG_ID: Harness organization ID (optional, but required for some operations)
  • HARNESS_PROJECT_ID: Harness project ID (optional, but required for some operations)
  • HARNESS_TOOLSETS: Comma-separated list of toolsets to enable (default: "all")
  • HARNESS_READ_ONLY: Set to "true" to run in read-only mode
  • HARNESS_LOG_FILE: Path to log file
  • HARNESS_LOG_LEVEL: Set the logging level (debug, info, warn, error)
  • HARNESS_BASE_URL: Base URL for Harness (default: "https://app.harness.io")

Authentication

The server uses a Harness API key for authentication. This can be set via the HARNESS_API_KEY environment variable.

Debugging

Since MCP servers run over stdio, debugging can be challenging. For the best debugging experience, we strongly recommend using the MCP Inspector.

You can launch the MCP Inspector with this command:

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

Upon launching, the Inspector will display a URL that you can access in your browser to begin debugging.

To do

Add Docker image for easier use