Harness MCP Server
Officialby harness
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| LOG_LEVEL | No | Log verbosity: debug, info, warn, error. | info |
| HARNESS_ORG | No | Organization ID. Used when org_id is not specified per tool call. If omitted, org_id must be provided explicitly. Agents can also discover orgs dynamically via harness_list(resource_type="organization"). | |
| HARNESS_API_KEY | No | Harness personal access token or service account token. Required in single-user mode. Must NOT be set in multi-user mode. | |
| HARNESS_PROJECT | No | Project ID. Used when project_id is not specified per tool call. Agents can also discover projects dynamically via harness_list(resource_type="project"). | |
| HARNESS_BASE_URL | No | Harness API/UI base URL for local stdio or self-hosted HTTP deployments. Set this to environments such as https://harness0.harness.io when running the server yourself. It does not affect the managed https://mcp.harness.io/mcp hosted endpoint. | https://app.harness.io |
| HARNESS_MCP_MODE | No | Deployment mode: single-user (API key in config, used for all sessions) or multi-user (HTTP only, per-session credentials via x-harness-api-key and optional x-harness-account-id headers) | single-user |
| HARNESS_TOOLSETS | No | Comma-separated toolset list. Empty loads default toolsets. Supports +name to explicitly include opt-in toolsets and -name to remove defaults. | |
| HARNESS_READ_ONLY | No | Block all mutating operations (create, update, delete, execute). Only list and get are allowed. | false |
| HARNESS_ACCOUNT_ID | No | Harness account identifier. Auto-extracted from PAT/SAT tokens in single-user mode; multi-user sessions can provide their own via x-harness-account-id when the API key does not embed one. | |
| HARNESS_ALLOW_HTTP | No | Allow non-HTTPS HARNESS_BASE_URL. Set to true only for local development against a non-TLS Harness instance. | false |
| HARNESS_AUDIT_FILE | No | Append audit events to a newline-delimited JSON file in addition to stderr. | |
| HARNESS_MAX_RETRIES | No | Retry count for transient failures (429, 5xx). | 3 |
| HARNESS_MCP_LOG_FILE | No | File used for stdio disconnect/crash diagnostics when stderr may no longer be available. | ~/.claude/harness-mcp.log |
| HARNESS_API_TIMEOUT_MS | No | HTTP request timeout in milliseconds. | 30000 |
| HARNESS_MCP_AUTH_TOKEN | No | Bearer token required on /mcp HTTP routes when set. Required by default when HTTP transport binds to a non-loopback host. | |
| HARNESS_RATE_LIMIT_RPS | No | Client-side request throttle (requests per second) to Harness APIs. | 10 |
| HARNESS_MAX_BODY_SIZE_MB | No | Max HTTP request body size in MB for http transport. | 10 |
| HARNESS_PIPELINE_VERSION | No | (Alpha) Pipeline YAML version. 0 loads the pipeline resource type and excludes pipeline_v1; 1 loads pipeline_v1 and excludes pipeline. | 0 |
| HARNESS_SKIP_ELICITATION | No | Deprecated — use HARNESS_AUTO_APPROVE_RISK=all instead. Kept for backward compatibility. | false |
| HARNESS_AUDIT_WEBHOOK_URL | No | HTTPS endpoint that receives batched audit events. HTTP URLs require HARNESS_ALLOW_HTTP=true for local development. | |
| HARNESS_AUTO_APPROVE_RISK | No | Risk-based auto-approve threshold for autonomous workflows. Values: none, low_write, medium_write, high_write, all. | none |
| HARNESS_MCP_ALLOWED_HOSTS | No | Comma-separated hostnames allowed by HTTP transport Host-header validation. mcp.harness.io is allowed by default for localhost binds; add proxy/custom domains here. | |
| HARNESS_AUDIT_WEBHOOK_TOKEN | No | Optional bearer token sent to the audit webhook. | |
| OTEL_EXPORTER_OTLP_ENDPOINT | No | Enables OpenTelemetry audit spans when the optional OpenTelemetry packages are installed. | |
| HARNESS_AUDIT_WEBHOOK_FLUSH_MS | No | Max time to hold audit events before webhook flush. | 5000 |
| HARNESS_AUDIT_WEBHOOK_BATCH_SIZE | No | Number of audit events to batch before webhook flush. | 10 |
| HARNESS_MCP_ALLOW_UNAUTHENTICATED_HTTP | No | Explicitly allow unauthenticated HTTP transport on non-loopback binds. Use only behind another authenticated control. | false |
Capabilities
Server capabilities have not been inspected yet.
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
No tools | |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/harness/mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server