harness-mcp-v2 3.2.8 → 3.2.9

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 (39) hide show
  1. package/README.md +3 -2
  2. package/build/data/schemas/v0/pipeline.d.ts.map +1 -1
  3. package/build/data/schemas/v0/pipeline.js +360 -0
  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 +457 -0
  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 +121 -0
  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 +121 -0
  13. package/build/data/schemas/v1/template.js.map +1 -1
  14. package/build/prompts/index.d.ts.map +1 -1
  15. package/build/prompts/index.js +4 -0
  16. package/build/prompts/index.js.map +1 -1
  17. package/build/prompts/summarize-pipeline.d.ts +3 -0
  18. package/build/prompts/summarize-pipeline.d.ts.map +1 -0
  19. package/build/prompts/summarize-pipeline.js +64 -0
  20. package/build/prompts/summarize-pipeline.js.map +1 -0
  21. package/build/registry/toolsets/pipelines.d.ts.map +1 -1
  22. package/build/registry/toolsets/pipelines.js +10 -2
  23. package/build/registry/toolsets/pipelines.js.map +1 -1
  24. package/build/tools/diagnose/pipeline.d.ts.map +1 -1
  25. package/build/tools/diagnose/pipeline.js +17 -0
  26. package/build/tools/diagnose/pipeline.js.map +1 -1
  27. package/build/tools/harness-diagnose.js +1 -1
  28. package/build/tools/harness-diagnose.js.map +1 -1
  29. package/build/tools/harness-execute.d.ts.map +1 -1
  30. package/build/tools/harness-execute.js +56 -4
  31. package/build/tools/harness-execute.js.map +1 -1
  32. package/build/utils/materialize-input-sets.d.ts +12 -0
  33. package/build/utils/materialize-input-sets.d.ts.map +1 -1
  34. package/build/utils/materialize-input-sets.js +8 -2
  35. package/build/utils/materialize-input-sets.js.map +1 -1
  36. package/build/utils/poll-execution.d.ts.map +1 -1
  37. package/build/utils/poll-execution.js +3 -0
  38. package/build/utils/poll-execution.js.map +1 -1
  39. package/package.json +1 -1
package/README.md CHANGED
@@ -11,7 +11,7 @@ This server is built differently:
11
11
  - **11 tools, 212 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.
12
12
  - **Full platform coverage.** 37 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.
13
13
  - **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.
14
- - **32 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.
14
+ - **33 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.
15
15
  - **Works everywhere.** Stdio transport for local clients (Claude Desktop, Cursor, Devin Desktop), HTTP transport for remote/shared deployments, Docker and Kubernetes ready.
16
16
  - **Zero-config start.** Just provide a Harness API key. Account ID is auto-extracted from PAT and SAT tokens, org/project defaults are optional, and toolset filtering lets you expose only what you need.
17
17
  - **Extensible by design.** Adding a new Harness resource means adding a declarative data file — no new tool registration, no schema changes, no prompt updates.
@@ -1673,6 +1673,7 @@ Security exemption execute workflow:
1673
1673
  | ------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- |
1674
1674
  | `build-deploy-app` | End-to-end CI/CD workflow: scan a git repo, generate CI pipeline (build & push Docker image), discover or generate K8s manifests, create CD pipeline, and deploy — with auto-retry on CI failures (up to 5 attempts) and CD failures (up to 3 attempts with user permission). On exhausted retries, provides Harness UI deep links to all created resources for manual investigation. | `repoUrl` (required), `imageName` (required), `projectId` (optional), `namespace` (optional) |
1675
1675
  | `debug-pipeline-failure` | Analyze a failed execution: accepts an execution ID, pipeline ID, or Harness URL. Gets stage/step breakdown, failure details, delegate info, and failed step logs via `harness_diagnose`, then provides root cause analysis and suggested fixes. Automatically follows chained pipeline failures. | `executionId` (optional), `projectId` (optional) |
1676
+ | `summarize-pipeline` | Summarize an entire pipeline execution — all steps, statuses, durations, and logs (not just failures). Uses `harness_diagnose` with `include_logs: true` for the full stage/step tree and selectively fetches additional logs for slowest and key output steps. Provides execution overview, step table, and optimization observations. | `executionId` (optional), `projectId` (optional) |
1676
1677
  | `create-pipeline` | Generate a new pipeline YAML from natural language requirements, reviewing existing resources for context | `description` (required), `projectId` (optional) |
1677
1678
  | `create-agent` | Interactively build a Harness AI agent — check existing agents, gather requirements, generate agent YAML spec using the agent-pipeline schema, confirm with user, then create or update via `harness_create`/`harness_update` | `agent_name` (required), `task_description` (required), `org_id` (optional), `project_id` (optional) |
1678
1679
  | `onboard-service` | Walk through onboarding a new service with environments and a deployment pipeline | `serviceName` (required), `projectId` (optional) |
@@ -2138,7 +2139,7 @@ The Harness MCP server pairs well with **[Harness Skills](https://github.com/har
2138
2139
  | 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 |
2139
2140
  | 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` |
2140
2141
  | `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 |
2141
- | `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 or diagnose the still-running execution |
2142
+ | `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` |
2142
2143
  | 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 |
2143
2144
  | `Operation declined by user` / `Operation cancelled by user` | User declined or cancelled the elicitation confirmation dialog — authoritative | Verify operation details with the user; `confirm: true` does **not** bypass an explicit decline. The user must accept the prompt |
2144
2145
  | `Operation blocked: the client could not surface a usable confirmation prompt` | Client lacks elicitation support, `elicitInput` failed, or returned a degenerate accept | Retry with `confirm: true` for non-interactive automation, or use a client that supports elicitation |
@@ -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,CAi2rH/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,CAyssH/B,CAAC;AACF,eAAe,MAAM,CAAC"}
@@ -466,6 +466,9 @@ const schema = {
466
466
  "type": "string",
467
467
  "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
468
468
  },
469
+ "identities": {
470
+ "$ref": "#/definitions/pipeline/common/IdentitiesConfig"
471
+ },
469
472
  "name": {
470
473
  "type": "string",
471
474
  "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
@@ -83444,6 +83447,18 @@ const schema = {
83444
83447
  }
83445
83448
  ]
83446
83449
  },
83450
+ "skipPipelineVariables": {
83451
+ "oneOf": [
83452
+ {
83453
+ "type": "boolean"
83454
+ },
83455
+ {
83456
+ "type": "string",
83457
+ "pattern": "(<\\+.+>.*)",
83458
+ "minLength": 1
83459
+ }
83460
+ ]
83461
+ },
83447
83462
  "waitForMerge": {
83448
83463
  "oneOf": [
83449
83464
  {
@@ -91702,6 +91717,278 @@ const schema = {
91702
91717
  }
91703
91718
  }
91704
91719
  },
91720
+ "DeployAwsAgentCoreRevisionStepNode": {
91721
+ "title": "DeployAwsAgentCoreRevisionStepNode",
91722
+ "type": "object",
91723
+ "required": [
91724
+ "identifier",
91725
+ "name",
91726
+ "type"
91727
+ ],
91728
+ "properties": {
91729
+ "description": {
91730
+ "type": "string",
91731
+ "desc": "This is the description for DeployAwsAgentCoreRevisionStepNode"
91732
+ },
91733
+ "enforce": {
91734
+ "$ref": "#/definitions/pipeline/common/PolicyConfig"
91735
+ },
91736
+ "failureStrategies": {
91737
+ "oneOf": [
91738
+ {
91739
+ "type": "array",
91740
+ "items": {
91741
+ "$ref": "#/definitions/pipeline/common/FailureStrategyConfig"
91742
+ }
91743
+ },
91744
+ {
91745
+ "type": "string",
91746
+ "pattern": "^<\\+input>$",
91747
+ "minLength": 1
91748
+ }
91749
+ ]
91750
+ },
91751
+ "identifier": {
91752
+ "type": "string",
91753
+ "pattern": "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
91754
+ },
91755
+ "name": {
91756
+ "type": "string",
91757
+ "pattern": "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
91758
+ },
91759
+ "strategy": {
91760
+ "oneOf": [
91761
+ {
91762
+ "$ref": "#/definitions/pipeline/common/StrategyConfig"
91763
+ },
91764
+ {
91765
+ "type": "string",
91766
+ "pattern": "^<\\+input>$",
91767
+ "minLength": 1
91768
+ }
91769
+ ]
91770
+ },
91771
+ "timeout": {
91772
+ "type": "string",
91773
+ "pattern": "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
91774
+ },
91775
+ "type": {
91776
+ "type": "string",
91777
+ "enum": [
91778
+ "DeployAwsAgentCoreRevision"
91779
+ ]
91780
+ },
91781
+ "when": {
91782
+ "oneOf": [
91783
+ {
91784
+ "$ref": "#/definitions/pipeline/common/StepWhenCondition"
91785
+ },
91786
+ {
91787
+ "type": "string",
91788
+ "pattern": "^<\\+input>$",
91789
+ "minLength": 1
91790
+ }
91791
+ ]
91792
+ }
91793
+ },
91794
+ "$schema": "http://json-schema.org/draft-07/schema#",
91795
+ "allOf": [
91796
+ {
91797
+ "if": {
91798
+ "properties": {
91799
+ "type": {
91800
+ "const": "DeployAwsAgentCoreRevision"
91801
+ }
91802
+ }
91803
+ },
91804
+ "then": {
91805
+ "properties": {
91806
+ "spec": {
91807
+ "$ref": "#/definitions/pipeline/steps/cd/DeployAwsAgentCoreRevisionStepInfo"
91808
+ }
91809
+ }
91810
+ }
91811
+ }
91812
+ ]
91813
+ },
91814
+ "DeployAwsAgentCoreRevisionStepInfo": {
91815
+ "title": "DeployAwsAgentCoreRevisionStepInfo",
91816
+ "allOf": [
91817
+ {
91818
+ "$ref": "#/definitions/pipeline/common/StepSpecType"
91819
+ },
91820
+ {
91821
+ "type": "object",
91822
+ "properties": {
91823
+ "connectorRef": {
91824
+ "type": "string"
91825
+ },
91826
+ "delegateSelectors": {
91827
+ "oneOf": [
91828
+ {
91829
+ "type": "array",
91830
+ "items": {
91831
+ "type": "string"
91832
+ }
91833
+ },
91834
+ {
91835
+ "type": "string",
91836
+ "pattern": "(<\\+.+>.*)",
91837
+ "minLength": 1
91838
+ }
91839
+ ]
91840
+ },
91841
+ "image": {
91842
+ "type": "string"
91843
+ },
91844
+ "imagePullPolicy": {
91845
+ "oneOf": [
91846
+ {
91847
+ "type": "string",
91848
+ "enum": [
91849
+ "Always",
91850
+ "Never",
91851
+ "IfNotPresent"
91852
+ ]
91853
+ },
91854
+ {
91855
+ "type": "string",
91856
+ "pattern": "(<\\+.+>.*)",
91857
+ "minLength": 1
91858
+ }
91859
+ ]
91860
+ },
91861
+ "privileged": {
91862
+ "oneOf": [
91863
+ {
91864
+ "type": "boolean"
91865
+ },
91866
+ {
91867
+ "type": "string",
91868
+ "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
91869
+ "minLength": 1
91870
+ }
91871
+ ]
91872
+ },
91873
+ "resources": {
91874
+ "$ref": "#/definitions/pipeline/common/ContainerResource"
91875
+ },
91876
+ "runAsUser": {
91877
+ "oneOf": [
91878
+ {
91879
+ "type": "integer",
91880
+ "format": "int32"
91881
+ },
91882
+ {
91883
+ "type": "string"
91884
+ }
91885
+ ]
91886
+ },
91887
+ "preExecution": {
91888
+ "type": "string"
91889
+ },
91890
+ "waitReady": {
91891
+ "oneOf": [
91892
+ {
91893
+ "type": "boolean"
91894
+ },
91895
+ {
91896
+ "type": "string",
91897
+ "pattern": "(<\\+.+>.*)",
91898
+ "minLength": 1
91899
+ }
91900
+ ]
91901
+ }
91902
+ }
91903
+ }
91904
+ ],
91905
+ "$schema": "http://json-schema.org/draft-07/schema#",
91906
+ "type": "object",
91907
+ "properties": {
91908
+ "connectorRef": {
91909
+ "type": "string"
91910
+ },
91911
+ "delegateSelectors": {
91912
+ "oneOf": [
91913
+ {
91914
+ "type": "array",
91915
+ "items": {
91916
+ "type": "string"
91917
+ }
91918
+ },
91919
+ {
91920
+ "type": "string",
91921
+ "pattern": "(<\\+.+>.*)",
91922
+ "minLength": 1
91923
+ }
91924
+ ]
91925
+ },
91926
+ "image": {
91927
+ "type": "string"
91928
+ },
91929
+ "imagePullPolicy": {
91930
+ "oneOf": [
91931
+ {
91932
+ "type": "string",
91933
+ "enum": [
91934
+ "Always",
91935
+ "Never",
91936
+ "IfNotPresent"
91937
+ ]
91938
+ },
91939
+ {
91940
+ "type": "string",
91941
+ "pattern": "(<\\+.+>.*)",
91942
+ "minLength": 1
91943
+ }
91944
+ ]
91945
+ },
91946
+ "privileged": {
91947
+ "oneOf": [
91948
+ {
91949
+ "type": "boolean"
91950
+ },
91951
+ {
91952
+ "type": "string",
91953
+ "pattern": "^<\\+input>((\\.)((executionInput\\(\\))|(allowedValues|selectOneFrom|selectManyFrom|default|regex)\\(.+?\\)))*$",
91954
+ "minLength": 1
91955
+ }
91956
+ ]
91957
+ },
91958
+ "resources": {
91959
+ "$ref": "#/definitions/pipeline/common/ContainerResource"
91960
+ },
91961
+ "runAsUser": {
91962
+ "oneOf": [
91963
+ {
91964
+ "type": "integer",
91965
+ "format": "int32"
91966
+ },
91967
+ {
91968
+ "type": "string"
91969
+ }
91970
+ ]
91971
+ },
91972
+ "preExecution": {
91973
+ "type": "string"
91974
+ },
91975
+ "waitReady": {
91976
+ "oneOf": [
91977
+ {
91978
+ "type": "boolean"
91979
+ },
91980
+ {
91981
+ "type": "string",
91982
+ "pattern": "(<\\+.+>.*)",
91983
+ "minLength": 1
91984
+ }
91985
+ ]
91986
+ },
91987
+ "description": {
91988
+ "desc": "This is the description for DeployAwsAgentCoreRevisionStepInfo"
91989
+ }
91990
+ }
91991
+ },
91705
91992
  "GoogleCloudRunTrafficShiftStepNode": {
91706
91993
  "title": "GoogleCloudRunTrafficShiftStepNode",
91707
91994
  "type": "object",
@@ -103776,6 +104063,73 @@ const schema = {
103776
104063
  },
103777
104064
  "$schema": "http://json-schema.org/draft-07/schema#"
103778
104065
  },
104066
+ "IdentitiesConfig": {
104067
+ "title": "IdentitiesConfig",
104068
+ "type": "object",
104069
+ "description": "Map of named identities. Each key is a user-defined identity name that doubles as the\nenvironment variable injected into the step, and each value is an IdentitySpec.\nReserved names (HARNESS_*, PATH, HOME, AWS_*/GOOGLE_*/AZURE_*) are not allowed, and a\nstep may declare at most 10 identities.\n",
104070
+ "maxProperties": 10,
104071
+ "propertyNames": {
104072
+ "pattern": "^(?!HARNESS_)(?!AWS_)(?!GOOGLE_)(?!AZURE_)(?!PATH$)(?!HOME$)[A-Za-z_][A-Za-z0-9_]*$"
104073
+ },
104074
+ "additionalProperties": {
104075
+ "$ref": "#/definitions/pipeline/common/IdentitySpec"
104076
+ },
104077
+ "$schema": "http://json-schema.org/draft-07/schema#"
104078
+ },
104079
+ "IdentitySpec": {
104080
+ "title": "IdentitySpec",
104081
+ "type": "object",
104082
+ "description": "Definition of a single named identity that produces an independent OIDC ID_TOKEN.\nThe identity name (the map key under identities) doubles as the environment variable\nthe step receives at runtime.\n",
104083
+ "properties": {
104084
+ "audience": {
104085
+ "description": "Audience (aud) the minted ID_TOKEN is issued for.",
104086
+ "type": "string",
104087
+ "minLength": 1
104088
+ },
104089
+ "subjectTemplate": {
104090
+ "description": "Template for the sub claim. Supports literals and allowlisted Harness expressions\n(e.g. <+account.identifier>, <+pipeline.identifier>, <+step.identifier>).\n",
104091
+ "type": "string"
104092
+ },
104093
+ "customClaims": {
104094
+ "description": "Additional custom claims stamped on this identity's token.",
104095
+ "type": "object",
104096
+ "additionalProperties": {
104097
+ "type": "string"
104098
+ }
104099
+ },
104100
+ "scope": {
104101
+ "description": "Visibility scope of the identity. Step-level entries default to STEP.",
104102
+ "type": "string",
104103
+ "enum": [
104104
+ "STEP",
104105
+ "STAGE",
104106
+ "PIPELINE"
104107
+ ]
104108
+ },
104109
+ "disabled": {
104110
+ "description": "When true, suppresses this identity (not generated, not injected).",
104111
+ "oneOf": [
104112
+ {
104113
+ "type": "boolean"
104114
+ },
104115
+ {
104116
+ "type": "string",
104117
+ "pattern": "^<\\+input>$",
104118
+ "minLength": 1
104119
+ }
104120
+ ]
104121
+ },
104122
+ "tokenMode": {
104123
+ "description": "Token exchange mode for this identity.",
104124
+ "type": "string",
104125
+ "enum": [
104126
+ "STANDARD",
104127
+ "CLIENT_ASSERTION"
104128
+ ]
104129
+ }
104130
+ },
104131
+ "$schema": "http://json-schema.org/draft-07/schema#"
104132
+ },
103779
104133
  "Timeout": {
103780
104134
  "title": "Timeout",
103781
104135
  "type": "string",
@@ -106913,6 +107267,9 @@ const schema = {
106913
107267
  {
106914
107268
  "$ref": "#/definitions/pipeline/steps/cd/RollbackGoogleAgentRuntimeRevisionStepNode"
106915
107269
  },
107270
+ {
107271
+ "$ref": "#/definitions/pipeline/steps/cd/DeployAwsAgentCoreRevisionStepNode"
107272
+ },
106916
107273
  {
106917
107274
  "$ref": "#/definitions/pipeline/steps/cd/GoogleCloudRunTrafficShiftStepNode"
106918
107275
  },
@@ -118963,6 +119320,9 @@ const schema = {
118963
119320
  {
118964
119321
  "$ref": "#/definitions/pipeline/steps/cd/RollbackGoogleAgentRuntimeRevisionStepNode"
118965
119322
  },
119323
+ {
119324
+ "$ref": "#/definitions/pipeline/steps/cd/DeployAwsAgentCoreRevisionStepNode"
119325
+ },
118966
119326
  {
118967
119327
  "$ref": "#/definitions/pipeline/steps/cd/GoogleCloudRunTrafficShiftStepNode"
118968
119328
  },