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.
Files changed (79) hide show
  1. package/README.md +24 -13
  2. package/build/data/schemas/v0/pipeline.d.ts.map +1 -1
  3. package/build/data/schemas/v0/pipeline.js +396 -108
  4. package/build/data/schemas/v0/pipeline.js.map +1 -1
  5. package/build/data/schemas/v0/template.d.ts.map +1 -1
  6. package/build/data/schemas/v0/template.js +479 -108
  7. package/build/data/schemas/v0/template.js.map +1 -1
  8. package/build/data/schemas/v1/pipeline.d.ts.map +1 -1
  9. package/build/data/schemas/v1/pipeline.js +6 -2
  10. package/build/data/schemas/v1/pipeline.js.map +1 -1
  11. package/build/data/schemas/v1/template.d.ts.map +1 -1
  12. package/build/data/schemas/v1/template.js +519 -517
  13. package/build/data/schemas/v1/template.js.map +1 -1
  14. package/build/index.js +3 -2
  15. package/build/index.js.map +1 -1
  16. package/build/prompts/code-review.js +4 -4
  17. package/build/prompts/code-review.js.map +1 -1
  18. package/build/prompts/run-evaluation.d.ts.map +1 -1
  19. package/build/prompts/run-evaluation.js +18 -10
  20. package/build/prompts/run-evaluation.js.map +1 -1
  21. package/build/registry/extractors.d.ts +40 -0
  22. package/build/registry/extractors.d.ts.map +1 -1
  23. package/build/registry/extractors.js +139 -0
  24. package/build/registry/extractors.js.map +1 -1
  25. package/build/registry/index.d.ts.map +1 -1
  26. package/build/registry/index.js +10 -3
  27. package/build/registry/index.js.map +1 -1
  28. package/build/registry/toolsets/access-control.d.ts.map +1 -1
  29. package/build/registry/toolsets/access-control.js +199 -36
  30. package/build/registry/toolsets/access-control.js.map +1 -1
  31. package/build/registry/toolsets/ai-evals.d.ts +4 -1
  32. package/build/registry/toolsets/ai-evals.d.ts.map +1 -1
  33. package/build/registry/toolsets/ai-evals.js +598 -19
  34. package/build/registry/toolsets/ai-evals.js.map +1 -1
  35. package/build/registry/toolsets/ccm.d.ts.map +1 -1
  36. package/build/registry/toolsets/ccm.js +381 -11
  37. package/build/registry/toolsets/ccm.js.map +1 -1
  38. package/build/registry/toolsets/chaos-descriptions.d.ts +1 -1
  39. package/build/registry/toolsets/chaos-descriptions.d.ts.map +1 -1
  40. package/build/registry/toolsets/chaos-descriptions.js +1 -1
  41. package/build/registry/toolsets/chaos.js +1 -1
  42. package/build/registry/toolsets/chaos.js.map +1 -1
  43. package/build/registry/toolsets/delegates.d.ts.map +1 -1
  44. package/build/registry/toolsets/delegates.js +114 -44
  45. package/build/registry/toolsets/delegates.js.map +1 -1
  46. package/build/registry/toolsets/observability-evaluations.d.ts +10 -0
  47. package/build/registry/toolsets/observability-evaluations.d.ts.map +1 -0
  48. package/build/registry/toolsets/observability-evaluations.js +348 -0
  49. package/build/registry/toolsets/observability-evaluations.js.map +1 -0
  50. package/build/registry/toolsets/pipelines.d.ts.map +1 -1
  51. package/build/registry/toolsets/pipelines.js +247 -21
  52. package/build/registry/toolsets/pipelines.js.map +1 -1
  53. package/build/registry/toolsets/pull-requests.d.ts.map +1 -1
  54. package/build/registry/toolsets/pull-requests.js +63 -20
  55. package/build/registry/toolsets/pull-requests.js.map +1 -1
  56. package/build/registry/toolsets/repositories.d.ts +13 -1
  57. package/build/registry/toolsets/repositories.d.ts.map +1 -1
  58. package/build/registry/toolsets/repositories.js +261 -5
  59. package/build/registry/toolsets/repositories.js.map +1 -1
  60. package/build/registry/toolsets/settings.d.ts +2 -0
  61. package/build/registry/toolsets/settings.d.ts.map +1 -1
  62. package/build/registry/toolsets/settings.js +41 -4
  63. package/build/registry/toolsets/settings.js.map +1 -1
  64. package/build/registry/types.d.ts +7 -1
  65. package/build/registry/types.d.ts.map +1 -1
  66. package/build/tools/diagnose/delegate.d.ts.map +1 -1
  67. package/build/tools/diagnose/delegate.js +18 -2
  68. package/build/tools/diagnose/delegate.js.map +1 -1
  69. package/build/tools/harness-execute.d.ts.map +1 -1
  70. package/build/tools/harness-execute.js +29 -56
  71. package/build/tools/harness-execute.js.map +1 -1
  72. package/build/tools/harness-get.js +1 -1
  73. package/build/tools/harness-get.js.map +1 -1
  74. package/build/utils/url-parser.d.ts +6 -0
  75. package/build/utils/url-parser.d.ts.map +1 -1
  76. package/build/utils/url-parser.js +51 -2
  77. package/build/utils/url-parser.js.map +1 -1
  78. package/npm-shrinkwrap.json +2 -2
  79. package/package.json +1 -1
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  [![MCP Toplist](https://mcptoplist.com/badge/glama%2Fharness%2Fmcp-server.svg)](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 247 resource types.
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, 247 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 coverage is available when you need inventory and playbook data.
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 `pipelineBranchName`):
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
- 247 resource types organized across 41 toolsets. Each resource type supports a subset of CRUD operations and optional execute actions.
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` | | x | | | | `blame` |
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` | x | | x | | | |
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 | | 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 44 toolsets are enabled. Three toolsets are opt-in and excluded from the defaults:
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
- | 41 Toolsets | (data files, not code)
2049
- | 247 Resource Types|
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 `pipelineBranchName` |
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,CA2vzH/B,CAAC;AACF,eAAe,MAAM,CAAC"}
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"}