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.
The server implements several toolsets:
Toolset Name: pipelines
get_pipeline
: Get details of a specific pipelinelist_pipelines
: List pipelines in a repositoryget_execution
: Get details of a specific pipeline executionlist_executions
: List pipeline executionsfetch_execution_url
: Fetch the execution URL for a pipeline execution
Toolset Name: pullrequests
get_pull_request
: Get details of a specific pull requestlist_pull_requests
: List pull requests in a repositoryget_pull_request_checks
: Get status checks for a specific pull requestcreate_pull_request
: Create a new pull request
Toolset Name: repositories
get_repository
: Get details of a specific repositorylist_repositories
: List repositories
Toolset Name: registries
get_registry
: Get details of a specific registry in Harness artifact registrylist_artifact_files
: List files for a specific artifact version in a Harness artifact registrylist_artifact_versions
: List artifact versions in a Harness artifact registrylist_artifacts
: List artifacts in a Harness artifact registrylist_registries
: List registries in Harness artifact registry
Toolset Name: logs
download_execution_logs
: Download logs for a pipeline execution
- You will need to have Go 1.23 or later installed on your system.
- A Harness API key for authentication.
- Clone the repository:
git clone https://github.com/harness/mcp-server.git
cd mcp-server
- Build the binary:
go build -o cmd/harness-mcp-server/harness-mcp-server ./cmd/harness-mcp-server
- Run the server:
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
Alternatively, you can use the pre-built Docker image:
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
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_DEFAULT_ORG_ID": "<YOUR_ORG_ID>",
"HARNESS_DEFAULT_PROJECT_ID": "<YOUR_PROJECT_ID>"
}
}
}
}
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
To use the Harness MCP Server with Windsurf:
- 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_DEFAULT_ORG_ID": "<YOUR_ORG_ID>",
"HARNESS_DEFAULT_PROJECT_ID": "<YOUR_PROJECT_ID>",
"HARNESS_BASE_URL": "<YOUR_BASE_URL>"
}
}
}
}
{
"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>"
}
}
}
}
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 are prefixed with HARNESS_
:
HARNESS_API_KEY
: Harness API key (required) - Account ID is automatically extracted from the API keyHARNESS_DEFAULT_ORG_ID
: Default Harness organization ID (optional, if not specified it would need to be passed in the request if it's required for that operation)HARNESS_DEFAULT_PROJECT_ID
: Default Harness project ID (optional, if not specified it would need to be passed in the request if it's required for that operation)HARNESS_TOOLSETS
: Comma-separated list of toolsets to enable (default: "all")HARNESS_READ_ONLY
: Set to "true" to run in read-only modeHARNESS_LOG_FILE
: Path to log fileHARNESS_LOG_LEVEL
: Set the logging level (debug, info, warn, error)HARNESS_BASE_URL
: Base URL for Harness (default: "https://app.harness.io")
The server uses a Harness API key for authentication. This can be set via the HARNESS_API_KEY
environment variable.
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.