harness-mcp-v2 3.2.16 → 3.2.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +58 -41
- package/build/data/schemas/v0/pipeline.d.ts.map +1 -1
- package/build/data/schemas/v0/pipeline.js +418 -3
- package/build/data/schemas/v0/pipeline.js.map +1 -1
- package/build/data/schemas/v0/template.d.ts.map +1 -1
- package/build/data/schemas/v0/template.js +434 -3
- package/build/data/schemas/v0/template.js.map +1 -1
- package/build/data/schemas/v1/pipeline.d.ts.map +1 -1
- package/build/data/schemas/v1/pipeline.js +113 -5
- package/build/data/schemas/v1/pipeline.js.map +1 -1
- package/build/data/schemas/v1/template.d.ts.map +1 -1
- package/build/data/schemas/v1/template.js +113 -5
- package/build/data/schemas/v1/template.js.map +1 -1
- package/build/registry/enum-utils.d.ts +22 -0
- package/build/registry/enum-utils.d.ts.map +1 -0
- package/build/registry/enum-utils.js +47 -0
- package/build/registry/enum-utils.js.map +1 -0
- package/build/registry/extractors.d.ts +32 -0
- package/build/registry/extractors.d.ts.map +1 -1
- package/build/registry/extractors.js +61 -0
- package/build/registry/extractors.js.map +1 -1
- package/build/registry/index.d.ts.map +1 -1
- package/build/registry/index.js +6 -0
- package/build/registry/index.js.map +1 -1
- package/build/registry/toolsets/ai-evals.d.ts.map +1 -1
- package/build/registry/toolsets/ai-evals.js +80 -8
- package/build/registry/toolsets/ai-evals.js.map +1 -1
- package/build/registry/toolsets/chaos-descriptions.d.ts +46 -0
- package/build/registry/toolsets/chaos-descriptions.d.ts.map +1 -1
- package/build/registry/toolsets/chaos-descriptions.js +61 -0
- package/build/registry/toolsets/chaos-descriptions.js.map +1 -1
- package/build/registry/toolsets/chaos.d.ts.map +1 -1
- package/build/registry/toolsets/chaos.js +388 -2
- package/build/registry/toolsets/chaos.js.map +1 -1
- package/build/registry/toolsets/evidence-vault.d.ts +15 -0
- package/build/registry/toolsets/evidence-vault.d.ts.map +1 -0
- package/build/registry/toolsets/evidence-vault.js +296 -0
- package/build/registry/toolsets/evidence-vault.js.map +1 -0
- package/build/registry/toolsets/iacm.d.ts.map +1 -1
- package/build/registry/toolsets/iacm.js +1 -0
- package/build/registry/toolsets/iacm.js.map +1 -1
- package/build/registry/toolsets/pipelines.d.ts.map +1 -1
- package/build/registry/toolsets/pipelines.js +45 -15
- package/build/registry/toolsets/pipelines.js.map +1 -1
- package/build/registry/toolsets/pull-requests.d.ts.map +1 -1
- package/build/registry/toolsets/pull-requests.js +5 -5
- package/build/registry/toolsets/pull-requests.js.map +1 -1
- package/build/registry/toolsets/scs.d.ts +7 -0
- package/build/registry/toolsets/scs.d.ts.map +1 -1
- package/build/registry/toolsets/scs.js +43 -7
- package/build/registry/toolsets/scs.js.map +1 -1
- package/build/registry/toolsets/sto.d.ts.map +1 -1
- package/build/registry/toolsets/sto.js +3 -1
- package/build/registry/toolsets/sto.js.map +1 -1
- package/build/registry/toolsets/templates.d.ts.map +1 -1
- package/build/registry/toolsets/templates.js +143 -4
- package/build/registry/toolsets/templates.js.map +1 -1
- package/build/registry/types.d.ts +1 -1
- package/build/registry/types.d.ts.map +1 -1
- package/build/tools/harness-list.js +1 -1
- package/build/tools/harness-list.js.map +1 -1
- package/build/tools/harness-update.js +4 -5
- package/build/tools/harness-update.js.map +1 -1
- package/npm-shrinkwrap.json +12 -12
- package/package.json +5 -5
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
[](https://mcptoplist.com/server/glama%2Fharness%2Fmcp-server)
|
|
4
4
|
|
|
5
|
-
An MCP (Model Context Protocol) server that gives AI agents full access to the Harness.io platform through 11 consolidated tools and
|
|
5
|
+
An MCP (Model Context Protocol) server that gives AI agents full access to the Harness.io platform through 11 consolidated tools and 220 resource types.
|
|
6
6
|
|
|
7
7
|
## Why Use This MCP Server
|
|
8
8
|
|
|
@@ -10,8 +10,8 @@ Most MCP servers map one tool per API endpoint. For a platform as broad as Harne
|
|
|
10
10
|
|
|
11
11
|
This server is built differently:
|
|
12
12
|
|
|
13
|
-
- **11 tools,
|
|
14
|
-
- **Full platform coverage.**
|
|
13
|
+
- **11 tools, 220 resource types.** A registry-based dispatch system routes `harness_list`, `harness_get`, `harness_create`, etc. to any Harness resource — pipelines, services, environments, orgs, projects, feature flags, cost data, and more. The LLM picks from 11 tools instead of hundreds.
|
|
14
|
+
- **Full platform coverage.** 38 default toolsets spanning CI/CD, GitOps, Feature Flags, Cloud Cost Management, Security Testing, Chaos Engineering, Database DevOps, Internal Developer Portal, Software Supply Chain, Infrastructure as Code Management, Governance, Service Overrides, Knowledge Graph, and more. Opt-in Ansible coverage is available when you need inventory and playbook data.
|
|
15
15
|
- **Multi-project workflows out of the box.** Agents discover organizations and projects dynamically — no hardcoded env vars needed. Ask "show failed executions across all projects" and the agent can navigate the full account hierarchy.
|
|
16
16
|
- **34 prompt templates.** Pre-built prompts for common workflows: build & deploy apps end-to-end, debug failed pipelines, review DORA metrics, triage vulnerabilities, optimize cloud costs, audit access control, plan feature flag rollouts, review pull requests, approve pending pipelines, and more.
|
|
17
17
|
- **Works everywhere.** Stdio transport for local clients (Claude Desktop, Cursor, Devin Desktop), HTTP transport for remote/shared deployments, Docker and Kubernetes ready.
|
|
@@ -132,7 +132,7 @@ Operational constraints in HTTP mode:
|
|
|
132
132
|
- `POST /mcp` without `mcp-session-id` must be an `initialize` request.
|
|
133
133
|
- `POST /mcp`, `GET /mcp`, and `DELETE /mcp` for existing sessions require the `mcp-session-id` header.
|
|
134
134
|
- `GET /mcp` is used for SSE notifications (progress updates and elicitation prompts).
|
|
135
|
-
- Idle sessions are reaped after `MCP_SESSION_TTL_MS` milliseconds once no request or SSE stream is active (default `
|
|
135
|
+
- Idle sessions are reaped after `MCP_SESSION_TTL_MS` milliseconds once no request or SSE stream is active (default `1800000`, or 30 minutes).
|
|
136
136
|
- `GET /health` is the only non-MCP endpoint.
|
|
137
137
|
- Request body size is capped by `HARNESS_MAX_BODY_SIZE_MB` (default `10` MB).
|
|
138
138
|
- Set `x-harness-pipeline-version: 0` or `1` on the `initialize` request to select V0 or V1 pipeline resources for that HTTP session.
|
|
@@ -555,7 +555,9 @@ The server automatically loads environment variables from a `.env` file in the p
|
|
|
555
555
|
| `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 |
|
|
556
556
|
| `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 |
|
|
557
557
|
| `HARNESS_MCP_ALLOW_UNAUTHENTICATED_HTTP` | No | `false` | Explicitly allow unauthenticated HTTP transport on non-loopback binds. Use only behind another authenticated control |
|
|
558
|
+
| `HARNESS_MCP_TRUST_PROXY` | No | `0` | Number of reverse proxy / load balancer hops to trust for client IP resolution (Express `trust proxy`). Set to the proxy count in front of the server so per-IP rate limiting keys on the real client rather than the proxy socket peer |
|
|
558
559
|
| `HARNESS_MCP_LOG_FILE` | No | `~/.claude/harness-mcp.log` | File used for stdio disconnect/crash diagnostics when stderr may no longer be available |
|
|
560
|
+
| `HARNESS_LOG_UNSAFE_BODIES` | No | `false` | Include raw request/response bodies in logs. Off by default since bodies can contain secrets; enable only for local debugging |
|
|
559
561
|
| `HARNESS_AUDIT_FILE` | No | -- | Append audit events to a newline-delimited JSON file for durable local collection |
|
|
560
562
|
| `HARNESS_AUDIT_WEBHOOK_URL` | No | -- | HTTPS endpoint that receives batched audit events. HTTP URLs require `HARNESS_ALLOW_HTTP=true` for local development |
|
|
561
563
|
| `HARNESS_AUDIT_WEBHOOK_TOKEN` | No | -- | Optional bearer token sent to the audit webhook |
|
|
@@ -566,6 +568,7 @@ The server automatically loads environment variables from a `.env` file in the p
|
|
|
566
568
|
| `HARNESS_SEARCH_SERVICE_URL` | No | -- | Base URL of the remote search service when `HARNESS_SEARCH_PROVIDER=remote` (e.g. `http://search-svc:8080`). Required when using the `remote` provider |
|
|
567
569
|
| `HARNESS_SEARCH_SERVICE_HEADERS` | No | -- | JSON object of headers sent with every request to the remote search service. Supports any auth scheme: `{"Authorization":"Bearer tok"}`, `{"x-api-key":"key"}`, or multiple internal service-to-service headers |
|
|
568
570
|
| `HARNESS_HF_CACHE_DIR` | No | `/tmp/hf-cache` | Directory for the `@huggingface/transformers` model cache used by the `local` search provider. The Docker image pre-bakes the model into `/app/.cache/hf` to avoid runtime downloads. Set to a persistent volume path in production deployments |
|
|
571
|
+
| `HARNESS_DIAGNOSE_LOG_FETCH_CONCURRENCY` | No | `3` | Max concurrent log-blob downloads issued by `harness_diagnose` when fetching logs for failed steps. Increase only if diagnose latency is dominated by log-fetch wall-clock and the pod has memory headroom |
|
|
569
572
|
|
|
570
573
|
|
|
571
574
|
### Semantic Search
|
|
@@ -1199,7 +1202,7 @@ Harness pipelines can be stored in three ways:
|
|
|
1199
1202
|
|
|
1200
1203
|
## Resource Types
|
|
1201
1204
|
|
|
1202
|
-
|
|
1205
|
+
220 resource types organized across 38 toolsets. Each resource type supports a subset of CRUD operations and optional execute actions.
|
|
1203
1206
|
|
|
1204
1207
|
### Platform
|
|
1205
1208
|
|
|
@@ -1509,38 +1512,40 @@ Use `harness_execute(resource_type="pull_request", action="close", ...)` for an
|
|
|
1509
1512
|
### Chaos Engineering
|
|
1510
1513
|
|
|
1511
1514
|
|
|
1512
|
-
| Resource Type | List | Get | Create | Update | Delete | Execute Actions
|
|
1513
|
-
|
|
1514
|
-
| `chaos_experiment` | x | x | x | | x | `run`, `stop`
|
|
1515
|
-
| `chaos_experiment_run` | | x | | | |
|
|
1516
|
-
| `chaos_experiment_variable` | x | | | | |
|
|
1517
|
-
| `chaos_component_variable` | | x | | | |
|
|
1518
|
-
| `chaos_input_set` | x | x | x | x | x |
|
|
1519
|
-
| `chaos_experiment_template` | x | x | | | x | `create_from_template`
|
|
1520
|
-
| `chaos_probe` | x | x | x | | x | `enable`, `verify`
|
|
1521
|
-
| `chaos_probe_in_run` | x | | | | |
|
|
1522
|
-
| `chaos_probe_template` | x | x | | | x |
|
|
1523
|
-
| `chaos_infrastructure` | x | | | | |
|
|
1524
|
-
| `chaos_k8s_infrastructure` | x | x | | | | `check_health`
|
|
1525
|
-
| `chaos_environment` | x | | | | |
|
|
1526
|
-
| `chaos_hub` | x | x | x | x | x |
|
|
1527
|
-
| `chaos_hub_fault` | x | | | | |
|
|
1528
|
-
| `chaos_fault` | x | x | | | x |
|
|
1529
|
-
| `chaos_fault_template` | x | x | | | x |
|
|
1530
|
-
| `chaos_fault_experiment_run` | x | | | | |
|
|
1531
|
-
| `chaos_action` | x | x | | | x |
|
|
1532
|
-
| `chaos_action_template` | x | x | | | x |
|
|
1533
|
-
| `chaos_loadtest` | x | x | x | | x | `run`, `stop`
|
|
1534
|
-
| `chaos_application_map` | x | x | | | |
|
|
1535
|
-
| `discovered_namespace` | x | | | | |
|
|
1536
|
-
| `discovered_service` | x | | | | |
|
|
1537
|
-
| `discovered_network_map` | x | | | | |
|
|
1538
|
-
| `chaos_guard_condition` | x | x | | | x |
|
|
1539
|
-
| `chaos_guard_rule` | x | x | | | x | `enable`
|
|
1540
|
-
| `chaos_recommendation` | x | x | | | |
|
|
1541
|
-
| `chaos_risk` | x | x | | | |
|
|
1542
|
-
| `chaos_dr_test` | x | | x | | |
|
|
1543
|
-
|
|
1515
|
+
| Resource Type | List | Get | Create | Update | Delete | Execute Actions |
|
|
1516
|
+
|------------------------------| ---- | --- | ------ | ------ | ------ |----------------------------------------------------------|
|
|
1517
|
+
| `chaos_experiment` | x | x | x | | x | `run`, `stop` |
|
|
1518
|
+
| `chaos_experiment_run` | | x | | | | |
|
|
1519
|
+
| `chaos_experiment_variable` | x | | | | | |
|
|
1520
|
+
| `chaos_component_variable` | | x | | | | |
|
|
1521
|
+
| `chaos_input_set` | x | x | x | x | x | |
|
|
1522
|
+
| `chaos_experiment_template` | x | x | | | x | `create_from_template` |
|
|
1523
|
+
| `chaos_probe` | x | x | x | | x | `enable`, `verify` |
|
|
1524
|
+
| `chaos_probe_in_run` | x | | | | | |
|
|
1525
|
+
| `chaos_probe_template` | x | x | | | x | |
|
|
1526
|
+
| `chaos_infrastructure` | x | | | | | |
|
|
1527
|
+
| `chaos_k8s_infrastructure` | x | x | | | | `check_health` |
|
|
1528
|
+
| `chaos_environment` | x | | | | | |
|
|
1529
|
+
| `chaos_hub` | x | x | x | x | x | |
|
|
1530
|
+
| `chaos_hub_fault` | x | | | | | |
|
|
1531
|
+
| `chaos_fault` | x | x | | | x | |
|
|
1532
|
+
| `chaos_fault_template` | x | x | | | x | |
|
|
1533
|
+
| `chaos_fault_experiment_run` | x | | | | | |
|
|
1534
|
+
| `chaos_action` | x | x | | | x | |
|
|
1535
|
+
| `chaos_action_template` | x | x | | | x | |
|
|
1536
|
+
| `chaos_loadtest` | x | x | x | | x | `run`, `stop` |
|
|
1537
|
+
| `chaos_application_map` | x | x | | | | |
|
|
1538
|
+
| `discovered_namespace` | x | | | | | |
|
|
1539
|
+
| `discovered_service` | x | | | | | |
|
|
1540
|
+
| `discovered_network_map` | x | | | | | |
|
|
1541
|
+
| `chaos_guard_condition` | x | x | | | x | |
|
|
1542
|
+
| `chaos_guard_rule` | x | x | | | x | `enable` |
|
|
1543
|
+
| `chaos_recommendation` | x | x | | | | |
|
|
1544
|
+
| `chaos_risk` | x | x | | | | |
|
|
1545
|
+
| `chaos_dr_test` | x | | x | | | |
|
|
1546
|
+
| `scanned_risk` | x | x | | | | `occurrences`, `summary_by_service` |
|
|
1547
|
+
| `chaos_risk_rule` | x | x | | | | |
|
|
1548
|
+
| `chaos_risk_scan` | x | x | x | x | x | `retry`, `abort`, `report`, `report_download`, `heatmap` |
|
|
1544
1549
|
|
|
1545
1550
|
### Cloud Cost Management (CCM)
|
|
1546
1551
|
|
|
@@ -1598,6 +1603,17 @@ SEI resources are consolidated for token efficiency. Use `metric` or `aspect` pa
|
|
|
1598
1603
|
| `scs_sbom` | | x | | | | |
|
|
1599
1604
|
|
|
1600
1605
|
|
|
1606
|
+
### Evidence Vault
|
|
1607
|
+
|
|
1608
|
+
Evidence Vault stores in-toto attestations (SDLC evidences). List supports account/org/project scope via `resource_scope`. Singular free-text filters (pipeline, artifact alone, gitoid) use `search_term`; an additional Name constraint uses `filters.subject_name`; subject content digest uses `filters.subject_digest`. Get looks up by `gitoid_sha256` and requires `org_id`/`project_id` (from the list row). Download (`harness_execute` action `download`) returns a time-limited `download_url` — always show that link to the user. Requires feature flag `SCS_EVIDENCE_VAULT`.
|
|
1609
|
+
|
|
1610
|
+
|
|
1611
|
+
| Resource Type | List | Get | Create | Update | Delete | Execute Actions |
|
|
1612
|
+
| ------------- | ---- | --- | ------ | ------ | ------ | --------------- |
|
|
1613
|
+
| `attestation` | x | x | | | | `download` |
|
|
1614
|
+
|
|
1615
|
+
|
|
1616
|
+
|
|
1601
1617
|
### Security Testing Orchestration (STO)
|
|
1602
1618
|
|
|
1603
1619
|
|
|
@@ -1743,7 +1759,7 @@ Security exemption execute workflow:
|
|
|
1743
1759
|
|
|
1744
1760
|
## Toolset Filtering
|
|
1745
1761
|
|
|
1746
|
-
By default,
|
|
1762
|
+
By default, 38 of 39 toolsets are enabled. One toolset is opt-in and excluded from the defaults:
|
|
1747
1763
|
|
|
1748
1764
|
- **`ansible`** — Harness Ansible (inventories, playbooks, hosts, activity). Opt-in because it is project-scoped and adds concepts many users do not need.
|
|
1749
1765
|
|
|
@@ -1806,10 +1822,11 @@ Available toolset names:
|
|
|
1806
1822
|
| `pull-requests` | pull_request, pr_reviewer, pr_comment, pr_check, pr_activity |
|
|
1807
1823
|
| `feature-flags` | fme_workspace, fme_environment, fme_feature_flag, fme_feature_flag_definition, fme_rollout_status, fme_rule_based_segment, fme_rule_based_segment_definition, fme_traffic_type, fme_identity, fme_standard_segment, fme_segment_keys |
|
|
1808
1824
|
| `gitops` | gitops_agent, gitops_application, gitops_cluster, gitops_repository, gitops_applicationset, gitops_repo_credential, gitops_app_event, gitops_pod_log, gitops_managed_resource, gitops_resource_action, gitops_dashboard, gitops_app_resource_tree |
|
|
1809
|
-
| `chaos` | chaos_experiment, chaos_experiment_run, chaos_experiment_variable, chaos_component_variable, chaos_input_set, chaos_experiment_template, chaos_probe, chaos_probe_in_run, chaos_probe_template, chaos_infrastructure, chaos_k8s_infrastructure, chaos_environment, chaos_hub, chaos_hub_fault, chaos_fault, chaos_fault_template, chaos_fault_experiment_run, chaos_action, chaos_action_template, chaos_loadtest, chaos_application_map, discovered_namespace, discovered_service, discovered_network_map, chaos_guard_condition, chaos_guard_rule, chaos_recommendation, chaos_risk, chaos_dr_test |
|
|
1825
|
+
| `chaos` | chaos_experiment, chaos_experiment_run, chaos_experiment_variable, chaos_component_variable, chaos_input_set, chaos_experiment_template, chaos_probe, chaos_probe_in_run, chaos_probe_template, chaos_infrastructure, chaos_k8s_infrastructure, chaos_environment, chaos_hub, chaos_hub_fault, chaos_fault, chaos_fault_template, chaos_fault_experiment_run, chaos_action, chaos_action_template, chaos_loadtest, chaos_application_map, discovered_namespace, discovered_service, discovered_network_map, chaos_guard_condition, chaos_guard_rule, chaos_recommendation, chaos_risk, chaos_dr_test, scanned_risk, chaos_risk_rule, chaos_risk_scan |
|
|
1810
1826
|
| `ccm` | cost_perspective, cost_breakdown, cost_timeseries, cost_summary, cost_recommendation, cost_anomaly, cost_anomaly_summary, cost_category, cost_account_overview, cost_filter_value, cost_recommendation_stats, cost_recommendation_detail, cost_commitment |
|
|
1811
1827
|
| `sei` | sei_metric, sei_productivity_metric, sei_dora_metric, sei_team, sei_team_detail, sei_org_tree, sei_org_tree_detail, sei_business_alignment, sei_ai_usage, sei_ai_adoption, sei_ai_impact, sei_ai_raw_metric |
|
|
1812
1828
|
| `scs` | scs_artifact_source, artifact_security, scs_artifact_component, scs_artifact_remediation, scs_chain_of_custody, scs_compliance_result, code_repo_security, scs_sbom |
|
|
1829
|
+
| `evidence-vault` | attestation |
|
|
1813
1830
|
| `sto` | security_issue, security_issue_filter, security_exemption, sast_remediation_diff |
|
|
1814
1831
|
| `dbops` | database_schema, database_instance, database_snapshot_object, database_llm_authoring_pipeline |
|
|
1815
1832
|
| `access_control` | user, user_group, service_account, role, role_assignment, resource_group, permission |
|
|
@@ -1839,8 +1856,8 @@ Available toolset names:
|
|
|
1839
1856
|
|
|
|
1840
1857
|
+--------v---------+
|
|
1841
1858
|
| Registry | <-- Declarative resource definitions
|
|
1842
|
-
|
|
|
1843
|
-
|
|
|
1859
|
+
| 38 Toolsets | (data files, not code)
|
|
1860
|
+
| 220 Resource Types|
|
|
1844
1861
|
+--------+---------+
|
|
1845
1862
|
|
|
|
1846
1863
|
+--------v---------+
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../../../src/data/schemas/v0/pipeline.ts"],"names":[],"mappings":"AAGA,QAAA,MAAM,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,
|
|
1
|
+
{"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../../../src/data/schemas/v0/pipeline.ts"],"names":[],"mappings":"AAGA,QAAA,MAAM,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAk1vH/B,CAAC;AACF,eAAe,MAAM,CAAC"}
|