harness-mcp-v2 3.2.27 → 3.2.29
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 +24 -13
- package/build/data/schemas/v0/pipeline.d.ts.map +1 -1
- package/build/data/schemas/v0/pipeline.js +396 -108
- 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 +479 -108
- 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 +6 -2
- 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 +519 -517
- package/build/data/schemas/v1/template.js.map +1 -1
- package/build/index.js +3 -2
- package/build/index.js.map +1 -1
- package/build/prompts/code-review.js +4 -4
- package/build/prompts/code-review.js.map +1 -1
- package/build/prompts/run-evaluation.d.ts.map +1 -1
- package/build/prompts/run-evaluation.js +18 -10
- package/build/prompts/run-evaluation.js.map +1 -1
- package/build/registry/extractors.d.ts +40 -0
- package/build/registry/extractors.d.ts.map +1 -1
- package/build/registry/extractors.js +139 -0
- package/build/registry/extractors.js.map +1 -1
- package/build/registry/index.d.ts.map +1 -1
- package/build/registry/index.js +10 -3
- package/build/registry/index.js.map +1 -1
- package/build/registry/toolsets/access-control.d.ts.map +1 -1
- package/build/registry/toolsets/access-control.js +199 -36
- package/build/registry/toolsets/access-control.js.map +1 -1
- package/build/registry/toolsets/ai-evals.d.ts +4 -1
- package/build/registry/toolsets/ai-evals.d.ts.map +1 -1
- package/build/registry/toolsets/ai-evals.js +598 -19
- package/build/registry/toolsets/ai-evals.js.map +1 -1
- package/build/registry/toolsets/ccm.d.ts.map +1 -1
- package/build/registry/toolsets/ccm.js +381 -11
- package/build/registry/toolsets/ccm.js.map +1 -1
- package/build/registry/toolsets/chaos-descriptions.d.ts +1 -1
- package/build/registry/toolsets/chaos-descriptions.d.ts.map +1 -1
- package/build/registry/toolsets/chaos-descriptions.js +1 -1
- package/build/registry/toolsets/chaos.js +1 -1
- package/build/registry/toolsets/chaos.js.map +1 -1
- package/build/registry/toolsets/delegates.d.ts.map +1 -1
- package/build/registry/toolsets/delegates.js +114 -44
- package/build/registry/toolsets/delegates.js.map +1 -1
- package/build/registry/toolsets/observability-evaluations.d.ts +10 -0
- package/build/registry/toolsets/observability-evaluations.d.ts.map +1 -0
- package/build/registry/toolsets/observability-evaluations.js +348 -0
- package/build/registry/toolsets/observability-evaluations.js.map +1 -0
- package/build/registry/toolsets/pipelines.d.ts.map +1 -1
- package/build/registry/toolsets/pipelines.js +247 -21
- 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 +63 -20
- package/build/registry/toolsets/pull-requests.js.map +1 -1
- package/build/registry/toolsets/repositories.d.ts +13 -1
- package/build/registry/toolsets/repositories.d.ts.map +1 -1
- package/build/registry/toolsets/repositories.js +261 -5
- package/build/registry/toolsets/repositories.js.map +1 -1
- package/build/registry/toolsets/settings.d.ts +2 -0
- package/build/registry/toolsets/settings.d.ts.map +1 -1
- package/build/registry/toolsets/settings.js +41 -4
- package/build/registry/toolsets/settings.js.map +1 -1
- package/build/registry/types.d.ts +7 -1
- package/build/registry/types.d.ts.map +1 -1
- package/build/tools/diagnose/delegate.d.ts.map +1 -1
- package/build/tools/diagnose/delegate.js +18 -2
- package/build/tools/diagnose/delegate.js.map +1 -1
- package/build/tools/harness-execute.d.ts.map +1 -1
- package/build/tools/harness-execute.js +29 -56
- package/build/tools/harness-execute.js.map +1 -1
- package/build/tools/harness-get.js +1 -1
- package/build/tools/harness-get.js.map +1 -1
- package/build/utils/url-parser.d.ts +6 -0
- package/build/utils/url-parser.d.ts.map +1 -1
- package/build/utils/url-parser.js +51 -2
- package/build/utils/url-parser.js.map +1 -1
- package/npm-shrinkwrap.json +2 -2
- package/package.json +1 -1
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 251 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.** 41 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, Release Management, Governance, Service Overrides, Knowledge Graph, and more. Opt-in Ansible coverage is available when
|
|
13
|
+
- **11 tools, 251 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.** 41 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, Release Management, Governance, Service Overrides, Knowledge Graph, and more. Opt-in Ansible and observability-evaluation coverage is available when needed.
|
|
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
|
- **35 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.
|
|
@@ -938,7 +938,7 @@ For v0 pipelines, use this sequence to reduce execution-time input errors:
|
|
|
938
938
|
- **Constraint:** shorthand expansion is skipped when `inputs.build` is already present (explicit `build` wins).
|
|
939
939
|
3. **Execute the run**
|
|
940
940
|
- `harness_execute(resource_type="pipeline", action="run", resource_id="<pipeline_id>", ...)`
|
|
941
|
-
- For Git-backed pipelines whose YAML should be loaded from a non-default branch, pass `params.pipeline_branch` (sent to Harness as `
|
|
941
|
+
- For Git-backed pipelines whose YAML should be loaded from a non-default branch, pass `params.pipeline_branch` (sent to Harness as `branch`). This explicit definition selector takes precedence over the `params.branch` alias. `inputs.branch` independently selects the CI codebase branch:
|
|
942
942
|
|
|
943
943
|
```json
|
|
944
944
|
{
|
|
@@ -1261,7 +1261,7 @@ Harness pipelines can be stored in three ways:
|
|
|
1261
1261
|
|
|
1262
1262
|
## Resource Types
|
|
1263
1263
|
|
|
1264
|
-
|
|
1264
|
+
251 resource types organized across 41 toolsets. Each resource type supports a subset of CRUD operations and optional execute actions.
|
|
1265
1265
|
|
|
1266
1266
|
### Platform
|
|
1267
1267
|
|
|
@@ -1364,7 +1364,7 @@ Both pipeline YAML resource types are available when the pipelines toolset is en
|
|
|
1364
1364
|
|
|
1365
1365
|
| Resource Type | List | Get | Create | Update | Delete | Execute Actions |
|
|
1366
1366
|
| ---------------- | ---- | --- | ------ | ------ | ------ | ------------------------- |
|
|
1367
|
-
| `delegate` | x |
|
|
1367
|
+
| `delegate` | x | x | | | | |
|
|
1368
1368
|
| `delegate_token` | x | x | x | | x | `revoke`, `get_delegates` |
|
|
1369
1369
|
|
|
1370
1370
|
|
|
@@ -1376,13 +1376,15 @@ Both pipeline YAML resource types are available when the pipelines toolset is en
|
|
|
1376
1376
|
| `repository` | x | x | x | x | | |
|
|
1377
1377
|
| `branch` | x | x | x | | x | |
|
|
1378
1378
|
| `commit` | x | x | x | | | `diff`, `diff_stats` |
|
|
1379
|
-
| `file_content` |
|
|
1379
|
+
| `file_content` | x | x | | | | `blame` |
|
|
1380
1380
|
| `tag` | x | | x | | x | |
|
|
1381
1381
|
| `repo_rule` | x | x | | | | |
|
|
1382
1382
|
| `space_rule` | x | x | | | | |
|
|
1383
1383
|
|
|
1384
1384
|
`commit` creation commits one or more file actions directly through the Harness Code API without cloning. Pass `body.title`, `body.branch`, and `body.actions`; each action is `CREATE`, `UPDATE`, `DELETE`, or `MOVE`, and `UPDATE` requires the current blob SHA.
|
|
1385
1385
|
|
|
1386
|
+
`file_content` list returns every path at a ref; get returns file or directory content (omit or pass empty `path` for the repo root; nested paths keep slashes). Omit `git_ref` to use the repository default branch — do not guess `main`.
|
|
1387
|
+
|
|
1386
1388
|
|
|
1387
1389
|
### Artifact Registries
|
|
1388
1390
|
|
|
@@ -1539,12 +1541,14 @@ IaCM list responses expose `page_count` as the count for the current page only (
|
|
|
1539
1541
|
| -------------- | ---- | --- | ------ | ------ | ------ | --------------- |
|
|
1540
1542
|
| `pull_request` | x | x | x | x | | `close`, `merge` |
|
|
1541
1543
|
| `pr_reviewer` | x | | x | | | `submit_review` |
|
|
1542
|
-
| `pr_comment` |
|
|
1544
|
+
| `pr_comment` | | | x | x | x | |
|
|
1543
1545
|
| `pr_check` | x | | | | | |
|
|
1544
1546
|
| `pr_activity` | x | | | | | |
|
|
1545
1547
|
|
|
1546
1548
|
Use `harness_execute(resource_type="pull_request", action="close", ...)` for an explicit close operation. `harness_update` also accepts `body.state` (`open` or `closed`) and routes state changes to the dedicated Harness Code PR state endpoint; send title/description edits in a separate update call.
|
|
1547
1549
|
|
|
1550
|
+
Use `harness_list(resource_type="pr_activity", filters={type: ["comment", "code-comment"]}, ...)` to read PR comments. Use `pr_comment` for comment write operations.
|
|
1551
|
+
|
|
1548
1552
|
|
|
1549
1553
|
### Release Management
|
|
1550
1554
|
|
|
@@ -1749,6 +1753,10 @@ In single-user/self-hosted mode, legacy-mode auth uses a Bearer token from `HARN
|
|
|
1749
1753
|
| `cost_recommendation_stats` | | x | | | | |
|
|
1750
1754
|
| `cost_recommendation_detail` | | x | | | | |
|
|
1751
1755
|
| `cost_commitment` | | x | | | | |
|
|
1756
|
+
| `ai_budget` | x | x | x | x | x | |
|
|
1757
|
+
| `ai_budget_overview` | | x | | | | |
|
|
1758
|
+
| `ai_budget_consumption` | x | | | | | |
|
|
1759
|
+
| `ai_budget_override_request` | x | x | x | | | `approve`, `reject` |
|
|
1752
1760
|
|
|
1753
1761
|
|
|
1754
1762
|
### Software Engineering Insights (SEI)
|
|
@@ -1824,7 +1832,7 @@ Security exemption execute workflow:
|
|
|
1824
1832
|
| Resource Type | List | Get | Create | Update | Delete | Execute Actions |
|
|
1825
1833
|
| ----------------- | ---- | --- | ------ | ------ | ------ | --------------- |
|
|
1826
1834
|
| `user` | x | x | | | | |
|
|
1827
|
-
| `user_group` | x | x | x |
|
|
1835
|
+
| `user_group` | x | x | x | x | x | |
|
|
1828
1836
|
| `service_account` | x | x | x | | x | |
|
|
1829
1837
|
| `role` | x | x | x | | x | |
|
|
1830
1838
|
| `role_assignment` | x | | x | | | |
|
|
@@ -1943,10 +1951,11 @@ Security exemption execute workflow:
|
|
|
1943
1951
|
|
|
1944
1952
|
## Toolset Filtering
|
|
1945
1953
|
|
|
1946
|
-
By default, 41 of
|
|
1954
|
+
By default, 41 of 45 toolsets are enabled. Four toolsets are opt-in and excluded from the defaults:
|
|
1947
1955
|
|
|
1948
1956
|
- **`ansible`** — Harness Ansible (inventories, playbooks, hosts, activity). Opt-in because it is project-scoped and adds concepts many users do not need.
|
|
1949
1957
|
- **`autonomous_work`** — Development Harness (autonomous work). Opt-in; see toolset description for scope.
|
|
1958
|
+
- **`observability-evaluations`** — Scheduled production-telemetry evaluation rules. Opt-in because it depends on the deployed scoring control plane.
|
|
1950
1959
|
- **`registries-v3`** — Harness Artifact Registry v3 (packages, versions, files, metadata, scans, firewall exceptions). Opt-in until v3 writes land, so agents don't have to disambiguate between v1 registries/artifacts and v3 packages/versions.
|
|
1951
1960
|
|
|
1952
1961
|
### Adding toolsets with `+` prefix
|
|
@@ -2015,6 +2024,7 @@ Available toolset names:
|
|
|
2015
2024
|
| `evidence-vault` | attestation |
|
|
2016
2025
|
| `sto` | security_issue, security_issue_filter, security_exemption, remediation_diff |
|
|
2017
2026
|
| `dbops` | database_schema, database_instance, database_snapshot_object, database_llm_authoring_pipeline |
|
|
2027
|
+
| `autonomous_work` *(opt-in)* | work_item, work_item_resume, work_item_approve, work_timeline, work_budget, work_phase, work_phase_artifact, work_artifact, budget, budget_grant, budget_usage, work_class, work_trigger, capability, risk_evaluator, team, member, member_template, software_component, content_source_connector |
|
|
2018
2028
|
| `access_control` | user, user_group, service_account, role, role_assignment, resource_group, permission |
|
|
2019
2029
|
| `governance` | policy, policy_set, policy_evaluation |
|
|
2020
2030
|
| `freeze` | freeze_window, global_freeze |
|
|
@@ -2023,6 +2033,7 @@ Available toolset names:
|
|
|
2023
2033
|
| `knowledge-graph` | kg_queryable_type_summary, kg_grammar, hql_query |
|
|
2024
2034
|
| `semantic-layer` | kg_type, kg_related_type |
|
|
2025
2035
|
| `ai-evals` | eval_dataset, eval_dataset_item, evaluation, eval_run, eval_run_item, eval_run_by_eval, eval_metric, eval_metric_set, eval_metric_set_entry, eval_suite, eval_suite_evaluation, eval_suite_run, eval_target, eval_annotation, eval_analytics, eval_git_settings, eval_registry_item, eval_git_registration, online_eval |
|
|
2036
|
+
| `observability-evaluations` *(opt-in)* | observability_evaluation_rule |
|
|
2026
2037
|
| `iacm` | iacm_workspace, iacm_variable_set, iacm_resource, iacm_module, iacm_provider, iacm_workspace_costs, iacm_activity_resource_change |
|
|
2027
2038
|
| `ansible` *(opt-in)* | ansible_inventory, ansible_playbook, ansible_host, ansible_host_activity, ansible_activity |
|
|
2028
2039
|
| `registries-v3` *(opt-in)* | package_v3, version_v3, file_v3, registry_metadata_v3, package_metadata_v3, version_metadata_v3, file_metadata_v3, metadata_key_v3, metadata_value_v3, artifact_scan_v3, bulk_scan_evaluation_v3, firewall_exception_v3, firewall_exception_version_v3 |
|
|
@@ -2045,8 +2056,8 @@ Available toolset names:
|
|
|
2045
2056
|
|
|
|
2046
2057
|
+--------v---------+
|
|
2047
2058
|
| Registry | <-- Declarative resource definitions
|
|
2048
|
-
|
|
|
2049
|
-
|
|
|
2059
|
+
| 45 Toolsets (41 default) |
|
|
2060
|
+
| 251 Resource Types|
|
|
2050
2061
|
+--------+---------+
|
|
2051
2062
|
|
|
|
2052
2063
|
+--------v---------+
|
|
@@ -2346,7 +2357,7 @@ The Harness MCP server pairs well with **[Harness Skills](https://github.com/har
|
|
|
2346
2357
|
| `Read-only mode is enabled ... operations are not allowed` | `HARNESS_READ_ONLY=true` blocks create/update/delete/execute | Set `HARNESS_READ_ONLY=false` if write operations are intended |
|
|
2347
2358
|
| Pipeline run fails pre-flight with unresolved required inputs | Provided `inputs` did not cover required runtime placeholders | Fetch `runtime_input_template`, supply missing simple keys, or use `input_set_ids` for structural inputs |
|
|
2348
2359
|
| Pipeline CI shorthand (`branch`, `tag`, `pr_number`, `commit_sha`) did not apply | `inputs.build` was already provided, so shorthand expansion was intentionally skipped | Remove `inputs.build` to use shorthand expansion, or keep full explicit `build` structure |
|
|
2349
|
-
| Pipeline run loaded the wrong YAML revision | The pipeline definition is stored in Git and the run did not specify the desired pipeline branch | Pass `params.pipeline_branch` on the `run` action; this maps to Harness `
|
|
2360
|
+
| Pipeline run loaded the wrong YAML revision | The pipeline definition is stored in Git and the run did not specify the desired pipeline branch | Pass `params.pipeline_branch` on the `run` action; this maps to Harness `branch` |
|
|
2350
2361
|
| `wait: true` returned `_wait.error` | The pipeline trigger succeeded, but server-side polling failed | Recheck the `execution_id` with `harness_get(resource_type="execution", ...)` before deciding whether to rerun |
|
|
2351
2362
|
| `wait: true` returned `execution_timed_out: true` | The execution did not reach a terminal status before `wait_timeout_seconds` | Use the returned `execution_id` to recheck status; wait for a terminal status before running `harness_diagnose` |
|
|
2352
2363
|
| Execution logs are empty or blob downloads return 403 | Harness-hosted log blob URLs require the configured Harness client/auth path, especially for internal or self-managed hosts | Keep `HARNESS_BASE_URL` pointed at the target Harness host and use `harness_get(resource_type="execution_log", ...)` or `harness_diagnose(..., include_logs=true)` rather than bypassing the MCP client |
|
|
@@ -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,CA2h0H/B,CAAC;AACF,eAAe,MAAM,CAAC"}
|