harness-mcp-v2 0.9.2 → 0.9.4
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 +456 -348
- package/build/config.d.ts +8 -8
- package/build/config.d.ts.map +1 -1
- package/build/config.js +11 -8
- package/build/config.js.map +1 -1
- package/build/data/schemas/index.d.ts +10 -14
- package/build/data/schemas/index.d.ts.map +1 -1
- package/build/data/schemas/index.js +24 -9
- package/build/data/schemas/index.js.map +1 -1
- package/build/data/schemas/local/agent-pipeline.d.ts +8 -0
- package/build/data/schemas/local/agent-pipeline.d.ts.map +1 -0
- package/build/data/schemas/local/agent-pipeline.js +4945 -0
- package/build/data/schemas/local/agent-pipeline.js.map +1 -0
- package/build/data/schemas/v0/pipeline.d.ts +3 -0
- package/build/data/schemas/v0/pipeline.d.ts.map +1 -0
- package/build/data/schemas/v0/pipeline.js +114344 -0
- package/build/data/schemas/v0/pipeline.js.map +1 -0
- package/build/data/schemas/v0/template.d.ts +3 -0
- package/build/data/schemas/v0/template.d.ts.map +1 -0
- package/build/data/schemas/v0/template.js +142351 -0
- package/build/data/schemas/v0/template.js.map +1 -0
- package/build/data/schemas/v0/trigger.d.ts +3 -0
- package/build/data/schemas/v0/trigger.d.ts.map +1 -0
- package/build/data/schemas/v0/trigger.js +4080 -0
- package/build/data/schemas/v0/trigger.js.map +1 -0
- package/build/data/schemas/v1/infra.d.ts +3 -0
- package/build/data/schemas/v1/infra.d.ts.map +1 -0
- package/build/data/schemas/v1/infra.js +1005 -0
- package/build/data/schemas/v1/infra.js.map +1 -0
- package/build/data/schemas/v1/inputSet.d.ts +3 -0
- package/build/data/schemas/v1/inputSet.d.ts.map +1 -0
- package/build/data/schemas/v1/inputSet.js +46 -0
- package/build/data/schemas/v1/inputSet.js.map +1 -0
- package/build/data/schemas/v1/overlayInputSet.d.ts +3 -0
- package/build/data/schemas/v1/overlayInputSet.d.ts.map +1 -0
- package/build/data/schemas/v1/overlayInputSet.js +43 -0
- package/build/data/schemas/v1/overlayInputSet.js.map +1 -0
- package/build/data/schemas/v1/pipeline.d.ts +3 -0
- package/build/data/schemas/v1/pipeline.d.ts.map +1 -0
- package/build/data/schemas/v1/pipeline.js +5227 -0
- package/build/data/schemas/v1/pipeline.js.map +1 -0
- package/build/data/schemas/v1/service.d.ts +3 -0
- package/build/data/schemas/v1/service.d.ts.map +1 -0
- package/build/data/schemas/v1/service.js +1386 -0
- package/build/data/schemas/v1/service.js.map +1 -0
- package/build/data/schemas/v1/template.d.ts +3 -0
- package/build/data/schemas/v1/template.d.ts.map +1 -0
- package/build/data/schemas/v1/template.js +5845 -0
- package/build/data/schemas/v1/template.js.map +1 -0
- package/build/data/schemas/v1/trigger.d.ts +3 -0
- package/build/data/schemas/v1/trigger.d.ts.map +1 -0
- package/build/data/schemas/v1/trigger.js +3390 -0
- package/build/data/schemas/v1/trigger.js.map +1 -0
- package/build/index.js +3 -3
- package/build/index.js.map +1 -1
- package/build/prompts/add-metric.d.ts +3 -0
- package/build/prompts/add-metric.d.ts.map +1 -0
- package/build/prompts/add-metric.js +56 -0
- package/build/prompts/add-metric.js.map +1 -0
- package/build/prompts/create-agent.d.ts.map +1 -1
- package/build/prompts/create-agent.js +119 -475
- package/build/prompts/create-agent.js.map +1 -1
- package/build/prompts/create-eval-suite.d.ts +3 -0
- package/build/prompts/create-eval-suite.d.ts.map +1 -0
- package/build/prompts/create-eval-suite.js +49 -0
- package/build/prompts/create-eval-suite.js.map +1 -0
- package/build/prompts/index.d.ts.map +1 -1
- package/build/prompts/index.js +8 -0
- package/build/prompts/index.js.map +1 -1
- package/build/prompts/run-evaluation.d.ts +3 -0
- package/build/prompts/run-evaluation.d.ts.map +1 -0
- package/build/prompts/run-evaluation.js +49 -0
- package/build/prompts/run-evaluation.js.map +1 -0
- package/build/registry/extractors.d.ts +14 -0
- package/build/registry/extractors.d.ts.map +1 -1
- package/build/registry/extractors.js +17 -0
- package/build/registry/extractors.js.map +1 -1
- package/build/registry/index.d.ts +11 -0
- package/build/registry/index.d.ts.map +1 -1
- package/build/registry/index.js +52 -5
- package/build/registry/index.js.map +1 -1
- package/build/registry/toolsets/agents.d.ts +3 -0
- package/build/registry/toolsets/agents.d.ts.map +1 -0
- package/build/registry/toolsets/agents.js +106 -0
- package/build/registry/toolsets/agents.js.map +1 -0
- package/build/registry/toolsets/ai-evals.d.ts +8 -0
- package/build/registry/toolsets/ai-evals.d.ts.map +1 -0
- package/build/registry/toolsets/ai-evals.js +1528 -0
- package/build/registry/toolsets/ai-evals.js.map +1 -0
- package/build/registry/toolsets/governance.d.ts.map +1 -1
- package/build/registry/toolsets/governance.js +23 -13
- package/build/registry/toolsets/governance.js.map +1 -1
- package/build/registry/toolsets/scs.d.ts.map +1 -1
- package/build/registry/toolsets/scs.js +2 -1
- package/build/registry/toolsets/scs.js.map +1 -1
- package/build/registry/types.d.ts +8 -1
- package/build/registry/types.d.ts.map +1 -1
- package/build/resources/pipeline-yaml.d.ts.map +1 -1
- package/build/resources/pipeline-yaml.js +1 -2
- package/build/resources/pipeline-yaml.js.map +1 -1
- package/build/tools/harness-diagnose.js +2 -2
- package/build/tools/harness-diagnose.js.map +1 -1
- package/build/tools/harness-list.js +1 -1
- package/build/tools/harness-list.js.map +1 -1
- package/build/tools/harness-schema.d.ts.map +1 -1
- package/build/tools/harness-schema.js +12 -4
- package/build/tools/harness-schema.js.map +1 -1
- package/build/tools/harness-status.js +1 -1
- package/build/tools/harness-status.js.map +1 -1
- package/build/utils/response-formatter.d.ts +2 -2
- package/build/utils/response-formatter.d.ts.map +1 -1
- package/build/utils/response-formatter.js +4 -4
- package/build/utils/response-formatter.js.map +1 -1
- package/build/utils/svg/render-png.d.ts +6 -1
- package/build/utils/svg/render-png.d.ts.map +1 -1
- package/build/utils/svg/render-png.js +7 -4
- package/build/utils/svg/render-png.js.map +1 -1
- package/package.json +5 -1
package/README.md
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
## Harness MCP Server 2.0
|
|
2
2
|
|
|
3
|
-
An MCP (Model Context Protocol) server that gives AI agents full access to the Harness.io platform through 10 consolidated tools and
|
|
4
|
-
|
|
3
|
+
An MCP (Model Context Protocol) server that gives AI agents full access to the Harness.io platform through 10 consolidated tools and 163 resource types.
|
|
5
4
|
|
|
6
5
|
## Why Use This MCP Server
|
|
7
6
|
|
|
@@ -9,8 +8,8 @@ Most MCP servers map one tool per API endpoint. For a platform as broad as Harne
|
|
|
9
8
|
|
|
10
9
|
This server is built differently:
|
|
11
10
|
|
|
12
|
-
- **10 tools,
|
|
13
|
-
- **Full platform coverage.**
|
|
11
|
+
- **10 tools, 163 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 10 tools instead of hundreds.
|
|
12
|
+
- **Full platform coverage.** 31 toolsets spanning CI/CD, GitOps, Feature Flags, Cloud Cost Management, Security Testing, Chaos Engineering, Internal Developer Portal, Software Supply Chain, Governance, Service Overrides, Visualizations, and more. Not just pipelines — the entire Harness platform.
|
|
14
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.
|
|
15
14
|
- **27 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.
|
|
16
15
|
- **Works everywhere.** Stdio transport for local clients (Claude Desktop, Cursor, Windsurf), HTTP transport for remote/shared deployments, Docker and Kubernetes ready.
|
|
@@ -83,6 +82,18 @@ pnpm start:http # HTTP transport
|
|
|
83
82
|
pnpm inspect # Test with MCP Inspector
|
|
84
83
|
```
|
|
85
84
|
|
|
85
|
+
### Anthropic MCP Directory bundle
|
|
86
|
+
|
|
87
|
+
The MCPB bundle manifest lives in [`mcp-directory/`](mcp-directory/), and the bundle icon is tracked at [`icon.png`](icon.png) in the repository root. Copy `mcp-directory/manifest.json` to the bundle root after `pnpm build` so the generated archive contains root-level `manifest.json`, `icon.png`, `build/`, `package.json`, and production `node_modules/`.
|
|
88
|
+
|
|
89
|
+
To keep the archive small, build MCPB packages from a staging directory:
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
pnpm prepare:mcpb
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
The staged package is written to `dist/mcpb/` with production dependencies installed using npm's flat layout.
|
|
96
|
+
|
|
86
97
|
### CLI Usage
|
|
87
98
|
|
|
88
99
|
```bash
|
|
@@ -100,13 +111,15 @@ Transport defaults to `stdio` if not specified. Use `http` for remote/shared dep
|
|
|
100
111
|
|
|
101
112
|
When running in HTTP mode, the server exposes:
|
|
102
113
|
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
|
106
|
-
| `/mcp`
|
|
107
|
-
| `/mcp`
|
|
108
|
-
| `/mcp`
|
|
109
|
-
| `/
|
|
114
|
+
|
|
115
|
+
| Endpoint | Method | Description |
|
|
116
|
+
| --------- | --------- | ---------------------------------------------------------------- |
|
|
117
|
+
| `/mcp` | `POST` | MCP JSON-RPC endpoint (initialize + session requests) |
|
|
118
|
+
| `/mcp` | `GET` | SSE stream for server-initiated messages (progress, elicitation) |
|
|
119
|
+
| `/mcp` | `DELETE` | Terminate an active MCP session |
|
|
120
|
+
| `/mcp` | `OPTIONS` | CORS preflight |
|
|
121
|
+
| `/health` | `GET` | Health check — returns `{ "status": "ok", "sessions": <count> }` |
|
|
122
|
+
|
|
110
123
|
|
|
111
124
|
The HTTP transport runs in **session-based mode**. A new MCP session is created on `initialize`, the server returns an `mcp-session-id` header, and subsequent requests for that session must include the same header.
|
|
112
125
|
|
|
@@ -206,14 +219,14 @@ Harness also supports a hosted MCP endpoint for accounts that have the managed s
|
|
|
206
219
|
> ```
|
|
207
220
|
>
|
|
208
221
|
> Find your paths with `which npx` and `which node` in a terminal, then make sure the directory containing `node` is included in the `PATH` value above. Common locations:
|
|
222
|
+
>
|
|
209
223
|
> - **Homebrew (macOS):** `/opt/homebrew/bin/npx`
|
|
210
224
|
> - **nvm:** `~/.nvm/versions/node/v20.x.x/bin/npx` (run `nvm which current` to find the exact path)
|
|
211
225
|
> - **System Node:** `/usr/local/bin/npx`
|
|
212
226
|
|
|
213
227
|
#### Claude Desktop (`claude_desktop_config.json`)
|
|
214
228
|
|
|
215
|
-
|
|
216
|
-
<summary>npx (zero install)</summary>
|
|
229
|
+
npx (zero install)
|
|
217
230
|
|
|
218
231
|
```json
|
|
219
232
|
{
|
|
@@ -229,10 +242,9 @@ Harness also supports a hosted MCP endpoint for accounts that have the managed s
|
|
|
229
242
|
}
|
|
230
243
|
```
|
|
231
244
|
|
|
232
|
-
</details>
|
|
233
245
|
|
|
234
|
-
|
|
235
|
-
|
|
246
|
+
|
|
247
|
+
node (local install)
|
|
236
248
|
|
|
237
249
|
```bash
|
|
238
250
|
npm install -g harness-mcp-v2
|
|
@@ -251,35 +263,32 @@ npm install -g harness-mcp-v2
|
|
|
251
263
|
}
|
|
252
264
|
```
|
|
253
265
|
|
|
254
|
-
|
|
266
|
+
|
|
255
267
|
|
|
256
268
|
#### Claude Code (via `claude mcp add`)
|
|
257
269
|
|
|
258
|
-
|
|
259
|
-
<summary>npx (zero install)</summary>
|
|
270
|
+
npx (zero install)
|
|
260
271
|
|
|
261
272
|
```bash
|
|
262
273
|
claude mcp add harness -- npx harness-mcp-v2
|
|
263
274
|
```
|
|
264
275
|
|
|
265
|
-
</details>
|
|
266
276
|
|
|
267
|
-
|
|
268
|
-
|
|
277
|
+
|
|
278
|
+
node (local install)
|
|
269
279
|
|
|
270
280
|
```bash
|
|
271
281
|
npm install -g harness-mcp-v2
|
|
272
282
|
claude mcp add harness -- harness-mcp-v2
|
|
273
283
|
```
|
|
274
284
|
|
|
275
|
-
|
|
285
|
+
|
|
276
286
|
|
|
277
287
|
Then set `HARNESS_API_KEY` in your environment or `.env` file.
|
|
278
288
|
|
|
279
289
|
#### Cursor (`.cursor/mcp.json`)
|
|
280
290
|
|
|
281
|
-
|
|
282
|
-
<summary>npx (zero install)</summary>
|
|
291
|
+
npx (zero install)
|
|
283
292
|
|
|
284
293
|
```json
|
|
285
294
|
{
|
|
@@ -295,10 +304,9 @@ Then set `HARNESS_API_KEY` in your environment or `.env` file.
|
|
|
295
304
|
}
|
|
296
305
|
```
|
|
297
306
|
|
|
298
|
-
</details>
|
|
299
307
|
|
|
300
|
-
|
|
301
|
-
|
|
308
|
+
|
|
309
|
+
node (local install)
|
|
302
310
|
|
|
303
311
|
```bash
|
|
304
312
|
npm install -g harness-mcp-v2
|
|
@@ -317,12 +325,11 @@ npm install -g harness-mcp-v2
|
|
|
317
325
|
}
|
|
318
326
|
```
|
|
319
327
|
|
|
320
|
-
|
|
328
|
+
|
|
321
329
|
|
|
322
330
|
#### Windsurf (`~/.windsurf/mcp.json`)
|
|
323
331
|
|
|
324
|
-
|
|
325
|
-
<summary>npx (zero install)</summary>
|
|
332
|
+
npx (zero install)
|
|
326
333
|
|
|
327
334
|
```json
|
|
328
335
|
{
|
|
@@ -338,10 +345,9 @@ npm install -g harness-mcp-v2
|
|
|
338
345
|
}
|
|
339
346
|
```
|
|
340
347
|
|
|
341
|
-
</details>
|
|
342
348
|
|
|
343
|
-
|
|
344
|
-
|
|
349
|
+
|
|
350
|
+
node (local install)
|
|
345
351
|
|
|
346
352
|
```bash
|
|
347
353
|
npm install -g harness-mcp-v2
|
|
@@ -360,10 +366,9 @@ npm install -g harness-mcp-v2
|
|
|
360
366
|
}
|
|
361
367
|
```
|
|
362
368
|
|
|
363
|
-
</details>
|
|
364
369
|
|
|
365
|
-
|
|
366
|
-
|
|
370
|
+
|
|
371
|
+
Using a local build from source?
|
|
367
372
|
|
|
368
373
|
Replace the command with the path to your built `index.js`:
|
|
369
374
|
|
|
@@ -374,13 +379,14 @@ Replace the command with the path to your built `index.js`:
|
|
|
374
379
|
}
|
|
375
380
|
```
|
|
376
381
|
|
|
377
|
-
|
|
382
|
+
|
|
378
383
|
|
|
379
384
|
### MCP Gateway
|
|
380
385
|
|
|
381
386
|
The Harness MCP server is fully compatible with MCP Gateways — reverse proxies that provide centralized authentication, governance, tool routing, and observability across multiple MCP servers. Since the server implements the standard MCP protocol with both stdio and HTTP transports, it works behind any MCP-compliant gateway with no code changes.
|
|
382
387
|
|
|
383
388
|
**Why use a gateway?**
|
|
389
|
+
|
|
384
390
|
- Centralized credential management — no API keys in agent configs
|
|
385
391
|
- Governance & audit logging for all tool calls across teams
|
|
386
392
|
- Single endpoint for agents instead of N connections to N MCP servers
|
|
@@ -512,7 +518,7 @@ The server automatically loads environment variables from a `.env` file in the p
|
|
|
512
518
|
| `HARNESS_MAX_BODY_SIZE_MB` | No | `10` | Max HTTP request body size in MB for `http` transport |
|
|
513
519
|
| `HARNESS_RATE_LIMIT_RPS` | No | `10` | Client-side request throttle (requests per second) to Harness APIs |
|
|
514
520
|
| `LOG_LEVEL` | No | `info` | Log verbosity: `debug`, `info`, `warn`, `error` |
|
|
515
|
-
| `HARNESS_TOOLSETS` | No | *(all)* | Comma-separated list
|
|
521
|
+
| `HARNESS_TOOLSETS` | No | *(all)* | Comma-separated toolset list. Supports `+name` to add opt-in toolsets and `-name` to remove defaults (see [Toolset Filtering](#toolset-filtering)) |
|
|
516
522
|
| `HARNESS_READ_ONLY` | No | `false` | Block all mutating operations (create, update, delete, execute). Only list and get are allowed. Useful for shared/demo environments |
|
|
517
523
|
| `HARNESS_SKIP_ELICITATION` | No | `false` | Skip all elicitation confirmation prompts. When `true`, write and delete operations proceed without user approval — enabling fully autonomous agent workflows. See [Elicitation](#elicitation) |
|
|
518
524
|
| `HARNESS_ALLOW_HTTP` | No | `false` | Allow non-HTTPS `HARNESS_BASE_URL`. By default, the server enforces HTTPS for security. Set to `true` only for local development against a non-TLS Harness instance |
|
|
@@ -536,19 +542,21 @@ The server exposes 11 MCP tools. Most API tools accept `org_id` and `project_id`
|
|
|
536
542
|
|
|
537
543
|
**URL support:** Most API-facing tools accept a `url` parameter — paste a Harness UI URL and the server auto-extracts org, project, resource type, resource ID, pipeline ID, and execution ID. `harness_describe` does not accept `url`.
|
|
538
544
|
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
|
542
|
-
| `
|
|
543
|
-
| `
|
|
544
|
-
| `
|
|
545
|
-
| `
|
|
546
|
-
| `
|
|
547
|
-
| `
|
|
548
|
-
| `
|
|
549
|
-
| `
|
|
545
|
+
|
|
546
|
+
| Tool | Description |
|
|
547
|
+
| ------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
548
|
+
| `harness_describe` | Discover available resource types, operations, and fields. No API call — returns local registry metadata. |
|
|
549
|
+
| `harness_schema` | Fetch exact JSON Schema definitions for creating/updating resources. Supports deep drilling via `path` parameter. |
|
|
550
|
+
| `harness_list` | List resources of a given type with filtering, search, and pagination. |
|
|
551
|
+
| `harness_get` | Get a single resource by its identifier. |
|
|
552
|
+
| `harness_create` | Create a new resource. Supports inline and remote (Git-backed) pipelines. Prompts for user confirmation via [elicitation](#elicitation). |
|
|
553
|
+
| `harness_update` | Update an existing resource. Supports inline and remote (Git-backed) pipelines. Prompts for user confirmation via [elicitation](#elicitation). |
|
|
554
|
+
| `harness_delete` | Delete a resource. Prompts for user confirmation via [elicitation](#elicitation). Destructive. |
|
|
555
|
+
| `harness_execute` | Execute an action on a resource (run/retry pipeline, import pipeline from Git, toggle flag, sync app). Prompts for user confirmation via [elicitation](#elicitation). For pipeline runs, use the runtime-input workflow below (supports `branch`/`tag`/`pr_number`/`commit_sha` shorthand expansion). |
|
|
556
|
+
| `harness_search` | Search across multiple resource types in parallel with a single query. |
|
|
550
557
|
| `harness_diagnose` | Diagnose `pipeline`, `connector`, `delegate`, and `gitops_application` resources (aliases: `execution` -> `pipeline`, `gitops_app` -> `gitops_application`). For pipelines, returns stage/step timing and failure details; for connectors/delegates/GitOps apps, returns targeted health and troubleshooting signals. |
|
|
551
|
-
| `harness_status`
|
|
558
|
+
| `harness_status` | Get a real-time project health dashboard — recent executions, failure rates, and deep links. |
|
|
559
|
+
|
|
552
560
|
|
|
553
561
|
### Tool Examples
|
|
554
562
|
|
|
@@ -674,25 +682,25 @@ The server exposes 11 MCP tools. Most API tools accept `org_id` and `project_id`
|
|
|
674
682
|
Use this sequence to reduce execution-time input errors:
|
|
675
683
|
|
|
676
684
|
1. **Discover required runtime inputs**
|
|
677
|
-
|
|
678
|
-
|
|
685
|
+
- `harness_get(resource_type="runtime_input_template", resource_id="<pipeline_id>")`
|
|
686
|
+
- The returned template shows `<+input>` placeholders that need values.
|
|
679
687
|
2. **Choose input strategy**
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
688
|
+
- **Simple variables:** pass flat key-value `inputs` (for example `{"branch":"main","env":"prod"}`).
|
|
689
|
+
- **Complex/structural inputs:** use `input_set_ids` (CI codebase/build blocks and nested template inputs are best handled this way).
|
|
690
|
+
- **CI codebase shorthand keys (pipeline run only):**
|
|
691
|
+
|
|
692
|
+
| Shorthand key | Expanded structure |
|
|
693
|
+
| ------------- | ------------------------------------------------------ |
|
|
694
|
+
| `branch` | `build.type=branch`, `build.spec.branch=<value>` |
|
|
695
|
+
| `tag` | `build.type=tag`, `build.spec.tag=<value>` |
|
|
696
|
+
| `pr_number` | `build.type=PR`, `build.spec.number=<value>` |
|
|
697
|
+
| `commit_sha` | `build.type=commitSha`, `build.spec.commitSha=<value>` |
|
|
698
|
+
|
|
699
|
+
- **Constraint:** shorthand expansion is skipped when `inputs.build` is already present (explicit `build` wins).
|
|
692
700
|
3. **Execute the run**
|
|
693
|
-
|
|
701
|
+
- `harness_execute(resource_type="pipeline", action="run", resource_id="<pipeline_id>", ...)`
|
|
694
702
|
4. **Optional: combine both**
|
|
695
|
-
|
|
703
|
+
- Use `input_set_ids` for the base shape and `inputs` for simple overrides.
|
|
696
704
|
|
|
697
705
|
If required fields are unresolved, the tool returns a pre-flight error with expected keys and suggested input sets. You can inspect available shorthand mappings with `harness_describe(resource_type="pipeline")` (`executeActions.run.inputShorthands`).
|
|
698
706
|
|
|
@@ -720,11 +728,13 @@ If required fields are unresolved, the tool returns a pre-flight error with expe
|
|
|
720
728
|
|
|
721
729
|
Harness pipelines can be stored in three ways:
|
|
722
730
|
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
|
731
|
+
|
|
732
|
+
| Mode | Description | When to use |
|
|
733
|
+
| ------------------------- | ------------------------------------------------------- | ------------------------------------------------------------------ |
|
|
734
|
+
| **Inline** | Pipeline YAML stored in Harness | Default. Simplest setup, no Git required. |
|
|
726
735
|
| **Remote (External Git)** | Pipeline YAML stored in GitHub, GitLab, Bitbucket, etc. | Teams using Git-backed pipeline-as-code with an external provider. |
|
|
727
|
-
| **Remote (Harness Code)** | Pipeline YAML stored in a Harness Code repository
|
|
736
|
+
| **Remote (Harness Code)** | Pipeline YAML stored in a Harness Code repository | Teams using Harness's built-in Git hosting. |
|
|
737
|
+
|
|
728
738
|
|
|
729
739
|
**Create an inline pipeline (default):**
|
|
730
740
|
|
|
@@ -911,370 +921,469 @@ Harness pipelines can be stored in three ways:
|
|
|
911
921
|
|
|
912
922
|
## Resource Types
|
|
913
923
|
|
|
914
|
-
|
|
924
|
+
163 resource types organized across 31 toolsets. Each resource type supports a subset of CRUD operations and optional execute actions.
|
|
915
925
|
|
|
916
926
|
### Platform
|
|
917
927
|
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
|
921
|
-
| `
|
|
928
|
+
|
|
929
|
+
| Resource Type | List | Get | Create | Update | Delete | Execute Actions |
|
|
930
|
+
| -------------- | ---- | --- | ------ | ------ | ------ | --------------- |
|
|
931
|
+
| `organization` | x | x | x | x | x | |
|
|
932
|
+
| `project` | x | x | x | x | x | |
|
|
933
|
+
|
|
922
934
|
|
|
923
935
|
### Pipelines
|
|
924
936
|
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
|
928
|
-
| `
|
|
929
|
-
| `
|
|
930
|
-
| `
|
|
931
|
-
| `
|
|
932
|
-
| `
|
|
933
|
-
| `
|
|
934
|
-
| `
|
|
937
|
+
|
|
938
|
+
| Resource Type | List | Get | Create | Update | Delete | Execute Actions |
|
|
939
|
+
| ------------------------- | ---- | --- | ------ | ------ | ------ | ------------------- |
|
|
940
|
+
| `pipeline` | x | x | x | x | x | `run`, `retry` |
|
|
941
|
+
| `pipeline_v1` **(Alpha)** | x | x | x | x | x | `run` |
|
|
942
|
+
| `execution` | x | x | | | | `interrupt` |
|
|
943
|
+
| `trigger` | x | x | x | x | x | |
|
|
944
|
+
| `pipeline_summary` | | x | | | | |
|
|
945
|
+
| `input_set` | x | x | x | x | x | |
|
|
946
|
+
| `runtime_input_template` | | x | | | | |
|
|
947
|
+
| `approval_instance` | x | | | | | `approve`, `reject` |
|
|
948
|
+
|
|
935
949
|
|
|
936
950
|
### AI Agents
|
|
937
951
|
|
|
952
|
+
|
|
938
953
|
| Resource Type | List | Get | Create | Update | Delete | Execute Actions |
|
|
939
|
-
|
|
940
|
-
| `agent`
|
|
941
|
-
| `agent_run`
|
|
954
|
+
| ------------- | ---- | --- | ------ | ------ | ------ | --------------- |
|
|
955
|
+
| `agent` | x | x | x | x | x | |
|
|
956
|
+
| `agent_run` | x | | | | | |
|
|
957
|
+
|
|
942
958
|
|
|
943
959
|
### Services
|
|
944
960
|
|
|
961
|
+
|
|
945
962
|
| Resource Type | List | Get | Create | Update | Delete | Execute Actions |
|
|
946
|
-
|
|
947
|
-
| `service`
|
|
963
|
+
| ------------- | ---- | --- | ------ | ------ | ------ | --------------- |
|
|
964
|
+
| `service` | x | x | x | x | x | |
|
|
965
|
+
|
|
948
966
|
|
|
949
967
|
### Environments
|
|
950
968
|
|
|
969
|
+
|
|
951
970
|
| Resource Type | List | Get | Create | Update | Delete | Execute Actions |
|
|
952
|
-
|
|
953
|
-
| `environment` | x
|
|
971
|
+
| ------------- | ---- | --- | ------ | ------ | ------ | --------------- |
|
|
972
|
+
| `environment` | x | x | x | x | x | `move_configs` |
|
|
973
|
+
|
|
954
974
|
|
|
955
975
|
### Connectors
|
|
956
976
|
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
|
960
|
-
| `
|
|
977
|
+
|
|
978
|
+
| Resource Type | List | Get | Create | Update | Delete | Execute Actions |
|
|
979
|
+
| --------------------- | ---- | --- | ------ | ------ | ------ | ----------------- |
|
|
980
|
+
| `connector` | x | x | x | x | x | `test_connection` |
|
|
981
|
+
| `connector_catalogue` | x | | | | | |
|
|
982
|
+
|
|
961
983
|
|
|
962
984
|
### Infrastructure
|
|
963
985
|
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
|
986
|
+
|
|
987
|
+
| Resource Type | List | Get | Create | Update | Delete | Execute Actions |
|
|
988
|
+
| ---------------- | ---- | --- | ------ | ------ | ------ | --------------- |
|
|
989
|
+
| `infrastructure` | x | x | x | x | x | `move_configs` |
|
|
990
|
+
|
|
967
991
|
|
|
968
992
|
### Secrets
|
|
969
993
|
|
|
994
|
+
|
|
970
995
|
| Resource Type | List | Get | Create | Update | Delete | Execute Actions |
|
|
971
|
-
|
|
972
|
-
| `secret`
|
|
996
|
+
| ------------- | ---- | --- | ------ | ------ | ------ | --------------- |
|
|
997
|
+
| `secret` | x | x | | | | |
|
|
998
|
+
|
|
973
999
|
|
|
974
1000
|
### Execution Logs
|
|
975
1001
|
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
|
1002
|
+
|
|
1003
|
+
| Resource Type | List | Get | Create | Update | Delete | Execute Actions |
|
|
1004
|
+
| --------------- | ---- | --- | ------ | ------ | ------ | --------------- |
|
|
1005
|
+
| `execution_log` | | x | | | | |
|
|
1006
|
+
|
|
979
1007
|
|
|
980
1008
|
### Audit Trail
|
|
981
1009
|
|
|
1010
|
+
|
|
982
1011
|
| Resource Type | List | Get | Create | Update | Delete | Execute Actions |
|
|
983
|
-
|
|
984
|
-
| `audit_event` | x
|
|
1012
|
+
| ------------- | ---- | --- | ------ | ------ | ------ | --------------- |
|
|
1013
|
+
| `audit_event` | x | x | | | | |
|
|
1014
|
+
|
|
985
1015
|
|
|
986
1016
|
### Delegates
|
|
987
1017
|
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
|
991
|
-
| `
|
|
1018
|
+
|
|
1019
|
+
| Resource Type | List | Get | Create | Update | Delete | Execute Actions |
|
|
1020
|
+
| ---------------- | ---- | --- | ------ | ------ | ------ | ------------------------- |
|
|
1021
|
+
| `delegate` | x | | | | | |
|
|
1022
|
+
| `delegate_token` | x | x | x | | x | `revoke`, `get_delegates` |
|
|
1023
|
+
|
|
992
1024
|
|
|
993
1025
|
### Code Repositories
|
|
994
1026
|
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
|
998
|
-
| `
|
|
999
|
-
| `
|
|
1000
|
-
| `
|
|
1001
|
-
| `
|
|
1002
|
-
| `
|
|
1003
|
-
| `
|
|
1027
|
+
|
|
1028
|
+
| Resource Type | List | Get | Create | Update | Delete | Execute Actions |
|
|
1029
|
+
| -------------- | ---- | --- | ------ | ------ | ------ | -------------------- |
|
|
1030
|
+
| `repository` | x | x | x | x | | |
|
|
1031
|
+
| `branch` | x | x | x | | x | |
|
|
1032
|
+
| `commit` | x | x | | | | `diff`, `diff_stats` |
|
|
1033
|
+
| `file_content` | | x | | | | `blame` |
|
|
1034
|
+
| `tag` | x | | x | | x | |
|
|
1035
|
+
| `repo_rule` | x | x | | | | |
|
|
1036
|
+
| `space_rule` | x | x | | | | |
|
|
1037
|
+
|
|
1004
1038
|
|
|
1005
1039
|
### Artifact Registries
|
|
1006
1040
|
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
|
1010
|
-
| `
|
|
1011
|
-
| `
|
|
1012
|
-
| `
|
|
1041
|
+
|
|
1042
|
+
| Resource Type | List | Get | Create | Update | Delete | Execute Actions |
|
|
1043
|
+
| ------------------ | ---- | --- | ------ | ------ | ------ | --------------- |
|
|
1044
|
+
| `registry` | x | x | | | | |
|
|
1045
|
+
| `artifact` | x | | | | | |
|
|
1046
|
+
| `artifact_version` | x | | | | | |
|
|
1047
|
+
| `artifact_file` | x | | | | | |
|
|
1048
|
+
|
|
1013
1049
|
|
|
1014
1050
|
### Templates
|
|
1015
1051
|
|
|
1052
|
+
|
|
1016
1053
|
| Resource Type | List | Get | Create | Update | Delete | Execute Actions |
|
|
1017
|
-
|
|
1018
|
-
| `template`
|
|
1054
|
+
| ------------- | ---- | --- | ------ | ------ | ------ | --------------- |
|
|
1055
|
+
| `template` | x | x | x | x | x | |
|
|
1056
|
+
|
|
1019
1057
|
|
|
1020
1058
|
### Dashboards
|
|
1021
1059
|
|
|
1022
|
-
|
|
1023
|
-
|
|
1024
|
-
|
|
|
1025
|
-
| `
|
|
1060
|
+
|
|
1061
|
+
| Resource Type | List | Get | Create | Update | Delete | Execute Actions |
|
|
1062
|
+
| ---------------- | ---- | --- | ------ | ------ | ------ | --------------- |
|
|
1063
|
+
| `dashboard` | x | x | | | | |
|
|
1064
|
+
| `dashboard_data` | | x | | | | |
|
|
1065
|
+
|
|
1026
1066
|
|
|
1027
1067
|
### Internal Developer Portal (IDP)
|
|
1028
1068
|
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
|
|
|
1032
|
-
| `
|
|
1033
|
-
| `
|
|
1034
|
-
| `
|
|
1035
|
-
| `
|
|
1036
|
-
| `
|
|
1037
|
-
| `
|
|
1038
|
-
| `
|
|
1069
|
+
|
|
1070
|
+
| Resource Type | List | Get | Create | Update | Delete | Execute Actions |
|
|
1071
|
+
| ----------------------- | ---- | --- | ------ | ------ | ------ | --------------- |
|
|
1072
|
+
| `idp_entity` | x | x | | | | |
|
|
1073
|
+
| `scorecard` | x | x | | | | |
|
|
1074
|
+
| `scorecard_check` | x | x | | | | |
|
|
1075
|
+
| `scorecard_stats` | | x | | | | |
|
|
1076
|
+
| `scorecard_check_stats` | | x | | | | |
|
|
1077
|
+
| `idp_score` | x | x | | | | |
|
|
1078
|
+
| `idp_workflow` | x | | | | | `execute` |
|
|
1079
|
+
| `idp_tech_doc` | x | | | | | |
|
|
1080
|
+
|
|
1039
1081
|
|
|
1040
1082
|
### Pull Requests
|
|
1041
1083
|
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
|
|
|
1045
|
-
| `
|
|
1046
|
-
| `
|
|
1047
|
-
| `
|
|
1048
|
-
| `
|
|
1084
|
+
|
|
1085
|
+
| Resource Type | List | Get | Create | Update | Delete | Execute Actions |
|
|
1086
|
+
| -------------- | ---- | --- | ------ | ------ | ------ | --------------- |
|
|
1087
|
+
| `pull_request` | x | x | x | x | | `merge` |
|
|
1088
|
+
| `pr_reviewer` | x | | x | | | `submit_review` |
|
|
1089
|
+
| `pr_comment` | x | | x | | | |
|
|
1090
|
+
| `pr_check` | x | | | | | |
|
|
1091
|
+
| `pr_activity` | x | | | | | |
|
|
1092
|
+
|
|
1049
1093
|
|
|
1050
1094
|
### Feature Flags
|
|
1051
1095
|
|
|
1052
|
-
|
|
1053
|
-
|
|
1054
|
-
|
|
|
1055
|
-
| `
|
|
1056
|
-
| `
|
|
1057
|
-
| `
|
|
1058
|
-
| `
|
|
1059
|
-
| `
|
|
1060
|
-
| `
|
|
1061
|
-
| `
|
|
1062
|
-
|
|
1063
|
-
|
|
1096
|
+
|
|
1097
|
+
| Resource Type | List | Get | Create | Update | Delete | Execute Actions |
|
|
1098
|
+
| ----------------------------------- | ---- | --- | ------ | ------ | ------ | ----------------------------------------- |
|
|
1099
|
+
| `fme_workspace` | x | | | | | |
|
|
1100
|
+
| `fme_environment` | x | | | | | |
|
|
1101
|
+
| `fme_feature_flag` | x | x | x | x | x | `kill`, `restore`, `archive`, `unarchive` |
|
|
1102
|
+
| `fme_feature_flag_definition` | | x | | | | |
|
|
1103
|
+
| `fme_rollout_status` | x | | | | | |
|
|
1104
|
+
| `fme_rule_based_segment` | x | x | x | | x | |
|
|
1105
|
+
| `fme_rule_based_segment_definition` | x | | | x | | `enable`, `disable`, `change_request` |
|
|
1106
|
+
| `feature_flag` | x | x | x | | x | `toggle` |
|
|
1107
|
+
|
|
1108
|
+
|
|
1109
|
+
**FME (Split.io) resources** — `fme_`* resources use the Split.io API (`api.split.io`) and are scoped by workspace ID rather than org/project. Auth uses `HARNESS_API_KEY` as a Bearer token. `fme_feature_flag` supports full lifecycle management: create (requires `traffic_type_id`), list, get, update metadata, delete, and kill/restore/archive/unarchive execute actions. `fme_rule_based_segment` provides CRUD for targeting segments, while `fme_rule_based_segment_definition` manages environment-specific segment rules with enable/disable and change request approval flows. Use `feature_flag` for the Harness CF admin API which supports environment-specific definitions, create, delete, and toggle.
|
|
1064
1110
|
|
|
1065
1111
|
### GitOps
|
|
1066
1112
|
|
|
1067
|
-
|
|
1068
|
-
|
|
1069
|
-
|
|
|
1070
|
-
| `
|
|
1071
|
-
| `
|
|
1072
|
-
| `
|
|
1073
|
-
| `
|
|
1074
|
-
| `
|
|
1075
|
-
| `
|
|
1076
|
-
| `
|
|
1077
|
-
| `
|
|
1078
|
-
| `
|
|
1079
|
-
| `
|
|
1080
|
-
| `
|
|
1113
|
+
|
|
1114
|
+
| Resource Type | List | Get | Create | Update | Delete | Execute Actions |
|
|
1115
|
+
| -------------------------- | ---- | --- | ------ | ------ | ------ | --------------- |
|
|
1116
|
+
| `gitops_agent` | x | x | | | | |
|
|
1117
|
+
| `gitops_application` | x | x | | | | `sync` |
|
|
1118
|
+
| `gitops_cluster` | x | x | | | | |
|
|
1119
|
+
| `gitops_repository` | x | x | | | | |
|
|
1120
|
+
| `gitops_applicationset` | x | x | | | | |
|
|
1121
|
+
| `gitops_repo_credential` | x | x | | | | |
|
|
1122
|
+
| `gitops_app_event` | x | | | | | |
|
|
1123
|
+
| `gitops_pod_log` | | x | | | | |
|
|
1124
|
+
| `gitops_managed_resource` | x | | | | | |
|
|
1125
|
+
| `gitops_resource_action` | x | | | | | |
|
|
1126
|
+
| `gitops_dashboard` | | x | | | | |
|
|
1127
|
+
| `gitops_app_resource_tree` | | x | | | | |
|
|
1128
|
+
|
|
1081
1129
|
|
|
1082
1130
|
### Chaos Engineering
|
|
1083
1131
|
|
|
1084
|
-
|
|
1085
|
-
|
|
1086
|
-
|
|
|
1087
|
-
| `
|
|
1088
|
-
| `
|
|
1089
|
-
| `
|
|
1090
|
-
| `
|
|
1091
|
-
| `
|
|
1092
|
-
| `
|
|
1093
|
-
| `
|
|
1094
|
-
| `
|
|
1095
|
-
| `
|
|
1096
|
-
| `
|
|
1097
|
-
| `
|
|
1098
|
-
| `
|
|
1099
|
-
| `
|
|
1100
|
-
| `
|
|
1132
|
+
|
|
1133
|
+
| Resource Type | List | Get | Create | Update | Delete | Execute Actions |
|
|
1134
|
+
| --------------------------- | ---- | --- | ------ | ------ | ------ | ---------------------- |
|
|
1135
|
+
| `chaos_experiment` | x | x | | | | `run` |
|
|
1136
|
+
| `chaos_probe` | x | x | | | | `enable`, `verify` |
|
|
1137
|
+
| `chaos_experiment_template` | x | | | | | `create_from_template` |
|
|
1138
|
+
| `chaos_infrastructure` | x | | | | | |
|
|
1139
|
+
| `chaos_experiment_variable` | x | | | | | |
|
|
1140
|
+
| `chaos_experiment_run` | x | x | | | | |
|
|
1141
|
+
| `chaos_loadtest` | x | x | x | | x | `run`, `stop` |
|
|
1142
|
+
| `chaos_k8s_infrastructure` | x | x | | | | `check_health` |
|
|
1143
|
+
| `chaos_hub` | x | x | | | | |
|
|
1144
|
+
| `chaos_fault` | x | x | | | | |
|
|
1145
|
+
| `chaos_network_map` | x | x | | | | |
|
|
1146
|
+
| `chaos_guard_condition` | x | x | | | | |
|
|
1147
|
+
| `chaos_guard_rule` | x | x | | | | |
|
|
1148
|
+
| `chaos_recommendation` | x | x | | | | |
|
|
1149
|
+
| `chaos_risk` | x | x | | | | |
|
|
1150
|
+
|
|
1101
1151
|
|
|
1102
1152
|
### Cloud Cost Management (CCM)
|
|
1103
1153
|
|
|
1104
|
-
|
|
1105
|
-
|
|
1106
|
-
|
|
|
1107
|
-
| `
|
|
1108
|
-
| `
|
|
1109
|
-
| `
|
|
1110
|
-
| `
|
|
1111
|
-
| `
|
|
1112
|
-
| `
|
|
1113
|
-
| `
|
|
1114
|
-
| `
|
|
1115
|
-
| `
|
|
1116
|
-
| `
|
|
1117
|
-
| `
|
|
1118
|
-
| `
|
|
1154
|
+
|
|
1155
|
+
| Resource Type | List | Get | Create | Update | Delete | Execute Actions |
|
|
1156
|
+
| ---------------------------- | ---- | --- | ------ | ------ | ------ | ------------------------------------------------------------------------------ |
|
|
1157
|
+
| `cost_perspective` | x | x | x | x | x | |
|
|
1158
|
+
| `cost_breakdown` | x | | | | | |
|
|
1159
|
+
| `cost_timeseries` | x | | | | | |
|
|
1160
|
+
| `cost_summary` | x | x | | | | |
|
|
1161
|
+
| `cost_recommendation` | x | x | | | | `update_state`, `override_savings`, `create_jira_ticket`, `create_snow_ticket` |
|
|
1162
|
+
| `cost_anomaly` | x | | | | | |
|
|
1163
|
+
| `cost_anomaly_summary` | | x | | | | |
|
|
1164
|
+
| `cost_category` | x | x | | | | |
|
|
1165
|
+
| `cost_account_overview` | | x | | | | |
|
|
1166
|
+
| `cost_filter_value` | x | | | | | |
|
|
1167
|
+
| `cost_recommendation_stats` | | x | | | | |
|
|
1168
|
+
| `cost_recommendation_detail` | | x | | | | |
|
|
1169
|
+
| `cost_commitment` | | x | | | | |
|
|
1170
|
+
|
|
1119
1171
|
|
|
1120
1172
|
### Software Engineering Insights (SEI)
|
|
1121
1173
|
|
|
1122
1174
|
SEI resources are consolidated for token efficiency. Use `metric` or `aspect` params for DORA, team/org-tree details, and AI insights.
|
|
1123
1175
|
|
|
1124
|
-
|
|
1125
|
-
|
|
1126
|
-
|
|
|
1127
|
-
| `
|
|
1128
|
-
| `
|
|
1129
|
-
| `
|
|
1130
|
-
| `
|
|
1131
|
-
| `
|
|
1132
|
-
| `
|
|
1133
|
-
| `
|
|
1134
|
-
| `
|
|
1135
|
-
| `
|
|
1136
|
-
| `
|
|
1137
|
-
| `
|
|
1176
|
+
|
|
1177
|
+
| Resource Type | List | Get | Create | Update | Delete | Execute Actions |
|
|
1178
|
+
| ------------------------- | ---- | --- | ------ | ------ | ------ | -------------------------------------------------------------------------------------------------------- |
|
|
1179
|
+
| `sei_metric` | x | | | | | |
|
|
1180
|
+
| `sei_productivity_metric` | | x | | | | |
|
|
1181
|
+
| `sei_dora_metric` | | x | | | | Pass `metric`: deployment_frequency, change_failure_rate, mttr, lead_time, or *_drilldown |
|
|
1182
|
+
| `sei_team` | x | x | | | | |
|
|
1183
|
+
| `sei_team_detail` | x | | | | | Pass `aspect`: integrations, developers, integration_filters |
|
|
1184
|
+
| `sei_org_tree` | x | x | | | | |
|
|
1185
|
+
| `sei_org_tree_detail` | x | x | | | | Pass `aspect`: efficiency_profile, productivity_profile, business_alignment_profile, integrations, teams |
|
|
1186
|
+
| `sei_business_alignment` | x | x | | | | Pass `aspect`: feature_metrics, feature_summary, drilldown for get |
|
|
1187
|
+
| `sei_ai_usage` | x | x | | | | Pass `aspect`: metrics, breakdown, summary, top_languages |
|
|
1188
|
+
| `sei_ai_adoption` | x | x | | | | Pass `aspect`: metrics, breakdown, summary |
|
|
1189
|
+
| `sei_ai_impact` | | x | | | | Pass `aspect`: pr_velocity, rework |
|
|
1190
|
+
| `sei_ai_raw_metric` | x | | | | | |
|
|
1191
|
+
|
|
1138
1192
|
|
|
1139
1193
|
### Software Supply Chain Assurance (SCS)
|
|
1140
1194
|
|
|
1141
|
-
|
|
1142
|
-
|
|
1143
|
-
|
|
|
1144
|
-
| `
|
|
1145
|
-
| `
|
|
1146
|
-
| `
|
|
1147
|
-
| `
|
|
1148
|
-
| `
|
|
1149
|
-
| `
|
|
1150
|
-
| `
|
|
1195
|
+
|
|
1196
|
+
| Resource Type | List | Get | Create | Update | Delete | Execute Actions |
|
|
1197
|
+
| -------------------------- | ---- | --- | ------ | ------ | ------ | --------------- |
|
|
1198
|
+
| `scs_artifact_source` | x | | | | | |
|
|
1199
|
+
| `artifact_security` | x | x | | | | |
|
|
1200
|
+
| `scs_artifact_component` | x | | | | | |
|
|
1201
|
+
| `scs_artifact_remediation` | | x | | | | |
|
|
1202
|
+
| `scs_chain_of_custody` | | x | | | | |
|
|
1203
|
+
| `scs_compliance_result` | x | | | | | |
|
|
1204
|
+
| `code_repo_security` | x | x | | | | |
|
|
1205
|
+
| `scs_sbom` | | x | | | | |
|
|
1206
|
+
|
|
1151
1207
|
|
|
1152
1208
|
### Security Testing Orchestration (STO)
|
|
1153
1209
|
|
|
1154
|
-
|
|
1155
|
-
|
|
1156
|
-
|
|
|
1157
|
-
| `
|
|
1158
|
-
| `
|
|
1210
|
+
|
|
1211
|
+
| Resource Type | List | Get | Create | Update | Delete | Execute Actions |
|
|
1212
|
+
| ----------------------- | ---- | --- | ------ | ------ | ------ | ------------------------------ |
|
|
1213
|
+
| `security_issue` | x | | | | | |
|
|
1214
|
+
| `security_issue_filter` | x | | | | | |
|
|
1215
|
+
| `security_exemption` | x | | | | | `approve`, `reject`, `promote` |
|
|
1216
|
+
|
|
1159
1217
|
|
|
1160
1218
|
### Access Control
|
|
1161
1219
|
|
|
1162
|
-
|
|
1163
|
-
|
|
1164
|
-
|
|
|
1165
|
-
| `
|
|
1166
|
-
| `
|
|
1167
|
-
| `
|
|
1168
|
-
| `
|
|
1169
|
-
| `
|
|
1170
|
-
| `
|
|
1220
|
+
|
|
1221
|
+
| Resource Type | List | Get | Create | Update | Delete | Execute Actions |
|
|
1222
|
+
| ----------------- | ---- | --- | ------ | ------ | ------ | --------------- |
|
|
1223
|
+
| `user` | x | x | | | | |
|
|
1224
|
+
| `user_group` | x | x | x | | x | |
|
|
1225
|
+
| `service_account` | x | x | x | | x | |
|
|
1226
|
+
| `role` | x | x | x | | x | |
|
|
1227
|
+
| `role_assignment` | x | | x | | | |
|
|
1228
|
+
| `resource_group` | x | x | x | | x | |
|
|
1229
|
+
| `permission` | x | | | | | |
|
|
1230
|
+
|
|
1171
1231
|
|
|
1172
1232
|
### Governance
|
|
1173
1233
|
|
|
1174
|
-
|
|
1175
|
-
|
|
1176
|
-
|
|
|
1177
|
-
| `
|
|
1178
|
-
| `
|
|
1234
|
+
|
|
1235
|
+
| Resource Type | List | Get | Create | Update | Delete | Execute Actions |
|
|
1236
|
+
| ------------------- | ---- | --- | ------ | ------ | ------ | --------------- |
|
|
1237
|
+
| `policy` | x | x | x | x | x | |
|
|
1238
|
+
| `policy_set` | x | x | x | x | x | |
|
|
1239
|
+
| `policy_evaluation` | x | x | | | | |
|
|
1240
|
+
|
|
1179
1241
|
|
|
1180
1242
|
### Deployment Freeze
|
|
1181
1243
|
|
|
1182
|
-
|
|
1183
|
-
|
|
1184
|
-
|
|
|
1185
|
-
| `
|
|
1244
|
+
|
|
1245
|
+
| Resource Type | List | Get | Create | Update | Delete | Execute Actions |
|
|
1246
|
+
| --------------- | ---- | --- | ------ | ------ | ------ | --------------- |
|
|
1247
|
+
| `freeze_window` | x | x | x | x | x | `toggle_status` |
|
|
1248
|
+
| `global_freeze` | | x | | | | `manage` |
|
|
1249
|
+
|
|
1186
1250
|
|
|
1187
1251
|
### Service Overrides
|
|
1188
1252
|
|
|
1189
|
-
|
|
1190
|
-
|
|
1191
|
-
|
|
|
1253
|
+
|
|
1254
|
+
| Resource Type | List | Get | Create | Update | Delete | Execute Actions |
|
|
1255
|
+
| ------------------ | ---- | --- | ------ | ------ | ------ | --------------- |
|
|
1256
|
+
| `service_override` | x | x | x | x | x | |
|
|
1257
|
+
|
|
1192
1258
|
|
|
1193
1259
|
### Settings
|
|
1194
1260
|
|
|
1261
|
+
|
|
1195
1262
|
| Resource Type | List | Get | Create | Update | Delete | Execute Actions |
|
|
1196
|
-
|
|
1197
|
-
| `setting`
|
|
1263
|
+
| ------------- | ---- | --- | ------ | ------ | ------ | --------------- |
|
|
1264
|
+
| `setting` | x | | | | | |
|
|
1265
|
+
|
|
1198
1266
|
|
|
1199
1267
|
### Visualizations
|
|
1200
1268
|
|
|
1201
1269
|
Inline PNG chart visualizations rendered from Harness data. These are metadata-only resource types with no API operations — they exist so the LLM can discover available chart types via `harness_describe`. Use `include_visual=true` on supported tools (`harness_diagnose`, `harness_list`, `harness_status`) to generate charts.
|
|
1202
1270
|
|
|
1203
|
-
|
|
1204
|
-
|
|
1205
|
-
|
|
|
1206
|
-
| `
|
|
1207
|
-
| `
|
|
1208
|
-
| `
|
|
1209
|
-
| `
|
|
1210
|
-
| `
|
|
1211
|
-
| `
|
|
1271
|
+
|
|
1272
|
+
| Resource Type | Description | How to Generate |
|
|
1273
|
+
| ------------------------- | --------------------------------------------------- | ----------------------------------------------------- |
|
|
1274
|
+
| `visual_timeline` | Gantt chart of pipeline stage execution over time | `harness_diagnose` with `visual_type: "timeline"` |
|
|
1275
|
+
| `visual_stage_flow` | DAG flowchart of pipeline stages and steps | `harness_diagnose` with `visual_type: "flow"` |
|
|
1276
|
+
| `visual_health_dashboard` | Project health overview with status indicators | `harness_status` with `include_visual: true` |
|
|
1277
|
+
| `visual_pie_chart` | Donut chart of execution status breakdown | `harness_list` with `visual_type: "pie"` |
|
|
1278
|
+
| `visual_bar_chart` | Bar chart of execution counts by pipeline | `harness_list` with `visual_type: "bar"` |
|
|
1279
|
+
| `visual_timeseries` | Daily execution trend over 30 days | `harness_list` with `visual_type: "timeseries"` |
|
|
1280
|
+
| `visual_architecture` | Pipeline YAML architecture diagram (stages → steps) | `harness_diagnose` with `visual_type: "architecture"` |
|
|
1281
|
+
|
|
1212
1282
|
|
|
1213
1283
|
## MCP Prompts
|
|
1214
1284
|
|
|
1215
1285
|
### DevOps
|
|
1216
1286
|
|
|
1217
|
-
|
|
1218
|
-
|
|
1219
|
-
|
|
|
1220
|
-
| `
|
|
1221
|
-
| `
|
|
1222
|
-
| `create-
|
|
1223
|
-
| `
|
|
1224
|
-
| `
|
|
1225
|
-
| `
|
|
1226
|
-
| `
|
|
1227
|
-
| `
|
|
1228
|
-
| `
|
|
1229
|
-
| `
|
|
1230
|
-
| `
|
|
1231
|
-
| `
|
|
1287
|
+
|
|
1288
|
+
| Prompt | Description | Parameters |
|
|
1289
|
+
| ------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- |
|
|
1290
|
+
| `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) |
|
|
1291
|
+
| `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) |
|
|
1292
|
+
| `create-pipeline` | Generate a new pipeline YAML from natural language requirements, reviewing existing resources for context | `description` (required), `projectId` (optional) |
|
|
1293
|
+
| `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) |
|
|
1294
|
+
| `onboard-service` | Walk through onboarding a new service with environments and a deployment pipeline | `serviceName` (required), `projectId` (optional) |
|
|
1295
|
+
| `dora-metrics-review` | Review DORA metrics (deployment frequency, change failure rate, MTTR, lead time) with Elite/High/Medium/Low classification and improvement recommendations | `teamRefId` (optional), `dateStart` (optional), `dateEnd` (optional) |
|
|
1296
|
+
| `setup-gitops-application` | Guide through onboarding a GitOps application — verify agent, cluster, repo, and create the application | `agentId` (required), `projectId` (optional) |
|
|
1297
|
+
| `chaos-resilience-test` | Design a chaos experiment to test service resilience with fault injection, probes, and expected outcomes | `serviceName` (required), `projectId` (optional) |
|
|
1298
|
+
| `feature-flag-rollout` | Plan and execute a progressive feature flag rollout across environments with safety gates | `flagIdentifier` (required), `projectId` (optional) |
|
|
1299
|
+
| `migrate-pipeline-to-template` | Analyze an existing pipeline and extract reusable stage/step templates from it | `pipelineId` (required), `projectId` (optional) |
|
|
1300
|
+
| `delegate-health-check` | Check delegate connectivity, health, token status, and troubleshoot infrastructure issues | `projectId` (optional) |
|
|
1301
|
+
| `developer-portal-scorecard` | Review IDP scorecards for services and identify gaps to improve developer experience | `projectId` (optional) |
|
|
1302
|
+
| `pending-approvals` | Find pipeline executions waiting for approval, show details, and offer to approve or reject | `projectId` (optional), `orgId` (optional), `pipelineId` (optional) |
|
|
1303
|
+
|
|
1232
1304
|
|
|
1233
1305
|
### FinOps
|
|
1234
1306
|
|
|
1235
|
-
|
|
1236
|
-
|
|
1237
|
-
|
|
|
1238
|
-
| `
|
|
1239
|
-
| `
|
|
1240
|
-
| `
|
|
1241
|
-
| `
|
|
1307
|
+
|
|
1308
|
+
| Prompt | Description | Parameters |
|
|
1309
|
+
| ------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------- |
|
|
1310
|
+
| `optimize-costs` | Analyze cloud cost data, surface recommendations and anomalies, prioritized by potential savings | `projectId` (optional) |
|
|
1311
|
+
| `cloud-cost-breakdown` | Deep-dive into cloud costs by service, environment, or cluster with trend analysis and anomaly detection | `perspectiveId` (optional), `projectId` (optional) |
|
|
1312
|
+
| `commitment-utilization-review` | Analyze reserved instance and savings plan utilization to find waste and optimize commitments | `projectId` (optional) |
|
|
1313
|
+
| `cost-anomaly-investigation` | Investigate cost anomalies — determine root cause, impacted resources, and remediation | `projectId` (optional) |
|
|
1314
|
+
| `rightsizing-recommendations` | Review and prioritize rightsizing recommendations, optionally create Jira or ServiceNow tickets | `projectId` (optional), `minSavings` (optional) |
|
|
1315
|
+
|
|
1242
1316
|
|
|
1243
1317
|
### DevSecOps
|
|
1244
1318
|
|
|
1245
|
-
|
|
1246
|
-
|
|
1247
|
-
|
|
|
1248
|
-
| `
|
|
1249
|
-
| `
|
|
1250
|
-
| `
|
|
1251
|
-
| `
|
|
1252
|
-
| `
|
|
1319
|
+
|
|
1320
|
+
| Prompt | Description | Parameters |
|
|
1321
|
+
| --------------------------- | ------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------- |
|
|
1322
|
+
| `security-review` | Review security issues across Harness resources and suggest remediations by severity | `projectId` (optional), `severity` (optional, default: `critical,high`) |
|
|
1323
|
+
| `vulnerability-triage` | Triage security vulnerabilities across pipelines and artifacts, prioritize by severity and exploitability | `projectId` (optional), `severity` (optional) |
|
|
1324
|
+
| `sbom-compliance-check` | Audit SBOM and compliance posture for artifacts — license risks, policy violations, component vulnerabilities | `artifactId` (optional), `projectId` (optional) |
|
|
1325
|
+
| `supply-chain-audit` | End-to-end software supply chain security audit — provenance, chain of custody, policy compliance | `projectId` (optional) |
|
|
1326
|
+
| `security-exemption-review` | Review pending security exemptions and make batch approval or rejection decisions | `projectId` (optional) |
|
|
1327
|
+
| `access-control-audit` | Audit user permissions, over-privileged accounts, and role assignments to enforce least-privilege | `projectId` (optional), `orgId` (optional) |
|
|
1328
|
+
|
|
1253
1329
|
|
|
1254
1330
|
### Harness Code
|
|
1255
1331
|
|
|
1256
|
-
|
|
1257
|
-
|
|
1258
|
-
|
|
|
1259
|
-
| `
|
|
1260
|
-
| `
|
|
1332
|
+
|
|
1333
|
+
| Prompt | Description | Parameters |
|
|
1334
|
+
| ---------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- |
|
|
1335
|
+
| `code-review` | Review a pull request — analyze diff, commits, checks, and comments to provide structured feedback on bugs, security, performance, and style | `repoId` (required), `prNumber` (required), `projectId` (optional) |
|
|
1336
|
+
| `pr-summary` | Auto-generate a PR title and description from the commit history and diff of a branch | `repoId` (required), `sourceBranch` (required), `targetBranch` (optional, default: main), `projectId` (optional) |
|
|
1337
|
+
| `branch-cleanup` | Analyze branches in a repository and recommend stale or merged branches to delete | `repoId` (required), `projectId` (optional) |
|
|
1338
|
+
|
|
1261
1339
|
|
|
1262
1340
|
## MCP Resources
|
|
1263
1341
|
|
|
1264
|
-
|
|
1265
|
-
|
|
1266
|
-
|
|
|
1267
|
-
| `pipeline:///{
|
|
1268
|
-
| `
|
|
1269
|
-
| `
|
|
1270
|
-
| `schema:///
|
|
1271
|
-
| `schema:///
|
|
1272
|
-
| `schema:///
|
|
1273
|
-
| `schema:///
|
|
1342
|
+
|
|
1343
|
+
| Resource URI | Description | MIME Type |
|
|
1344
|
+
| ---------------------------------------------- | ---------------------------------------------------------------- | ------------------------- |
|
|
1345
|
+
| `pipeline:///{pipelineId}` | Pipeline YAML definition | `application/x-yaml` |
|
|
1346
|
+
| `pipeline:///{orgId}/{projectId}/{pipelineId}` | Pipeline YAML (with explicit scope) | `application/x-yaml` |
|
|
1347
|
+
| `executions:///recent` | Last 10 pipeline execution summaries | `application/json` |
|
|
1348
|
+
| `schema:///pipeline` | Harness pipeline JSON Schema | `application/schema+json` |
|
|
1349
|
+
| `schema:///template` | Harness template JSON Schema | `application/schema+json` |
|
|
1350
|
+
| `schema:///trigger` | Harness trigger JSON Schema | `application/schema+json` |
|
|
1351
|
+
| `schema:///pipeline_v1` **(Alpha)** | Harness V1 pipeline JSON Schema (simplified stages/steps format) | `application/schema+json` |
|
|
1352
|
+
| `schema:///agent-pipeline` | Harness AI agent pipeline JSON Schema | `application/schema+json` |
|
|
1353
|
+
|
|
1274
1354
|
|
|
1275
1355
|
## Toolset Filtering
|
|
1276
1356
|
|
|
1277
|
-
By default,
|
|
1357
|
+
By default, 30 of 31 toolsets are enabled. One toolset (`ai-evals`) is opt-in — excluded by default to avoid polluting the resource list for users who don't need it.
|
|
1358
|
+
|
|
1359
|
+
### Enabling opt-in toolsets
|
|
1360
|
+
|
|
1361
|
+
Use the `+` prefix to add opt-in toolsets to the defaults:
|
|
1362
|
+
|
|
1363
|
+
```bash
|
|
1364
|
+
# Enable ai-evals alongside all defaults
|
|
1365
|
+
HARNESS_TOOLSETS=+ai-evals
|
|
1366
|
+
```
|
|
1367
|
+
|
|
1368
|
+
### Removing default toolsets
|
|
1369
|
+
|
|
1370
|
+
Use the `-` prefix to exclude toolsets you don't need:
|
|
1371
|
+
|
|
1372
|
+
```bash
|
|
1373
|
+
# Remove chaos and ccm from defaults
|
|
1374
|
+
HARNESS_TOOLSETS=-chaos,-ccm
|
|
1375
|
+
```
|
|
1376
|
+
|
|
1377
|
+
### Combining + and -
|
|
1378
|
+
|
|
1379
|
+
```bash
|
|
1380
|
+
# Add ai-evals, remove chaos
|
|
1381
|
+
HARNESS_TOOLSETS=+ai-evals,-chaos
|
|
1382
|
+
```
|
|
1383
|
+
|
|
1384
|
+
### Explicit allowlist
|
|
1385
|
+
|
|
1386
|
+
An explicit comma-separated list (no prefixes) replaces the defaults entirely. Only the listed toolsets are enabled:
|
|
1278
1387
|
|
|
1279
1388
|
```bash
|
|
1280
1389
|
# Only expose pipelines, services, and connectors
|
|
@@ -1287,7 +1396,7 @@ Available toolset names:
|
|
|
1287
1396
|
|---------|---------------|
|
|
1288
1397
|
| `platform` | organization, project |
|
|
1289
1398
|
| `pipelines` | pipeline, pipeline_v1, execution, trigger, pipeline_summary, input_set, approval_instance |
|
|
1290
|
-
| `
|
|
1399
|
+
| `agents` | agent, agent_run |
|
|
1291
1400
|
| `services` | service |
|
|
1292
1401
|
| `environments` | environment |
|
|
1293
1402
|
| `connectors` | connector, connector_catalogue |
|
|
@@ -1315,6 +1424,7 @@ Available toolset names:
|
|
|
1315
1424
|
| `overrides` | service_override |
|
|
1316
1425
|
| `settings` | setting |
|
|
1317
1426
|
| `visualizations` | visual_timeline, visual_stage_flow, visual_health_dashboard, visual_pie_chart, visual_bar_chart, visual_timeseries, visual_architecture |
|
|
1427
|
+
| `ai-evals` **(opt-in)** | 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_model, eval_annotation, eval_analytics, eval_git_settings, eval_registry_item |
|
|
1318
1428
|
|
|
1319
1429
|
## Architecture
|
|
1320
1430
|
|
|
@@ -1331,8 +1441,8 @@ Available toolset names:
|
|
|
1331
1441
|
|
|
|
1332
1442
|
+--------v---------+
|
|
1333
1443
|
| Registry | <-- Declarative resource definitions
|
|
1334
|
-
|
|
|
1335
|
-
|
|
|
1444
|
+
| 31 Toolsets | (data files, not code)
|
|
1445
|
+
| 163 Resource Types|
|
|
1336
1446
|
+--------+---------+
|
|
1337
1447
|
|
|
|
1338
1448
|
+--------v---------+
|
|
@@ -1347,15 +1457,10 @@ Available toolset names:
|
|
|
1347
1457
|
### How It Works
|
|
1348
1458
|
|
|
1349
1459
|
1. **Tools** are generic verbs: `harness_list`, `harness_get`, etc. They accept a `resource_type` parameter that routes to the correct API endpoint.
|
|
1350
|
-
|
|
1351
1460
|
2. **The Registry** maps each `resource_type` to a `ResourceDefinition` — a declarative data structure specifying the HTTP method, URL path, path/query parameter mappings, and response extraction logic.
|
|
1352
|
-
|
|
1353
1461
|
3. **Dispatch** resolves the resource definition, builds the HTTP request (path substitution, query params, scope injection), calls the Harness API through `HarnessClient`, and extracts the relevant response data.
|
|
1354
|
-
|
|
1355
1462
|
4. **Toolset filtering** (`HARNESS_TOOLSETS`) controls which resource definitions are loaded into the registry at startup.
|
|
1356
|
-
|
|
1357
1463
|
5. **Deep links** are automatically appended to responses, providing direct Harness UI URLs for every resource.
|
|
1358
|
-
|
|
1359
1464
|
6. **Compact mode** strips verbose metadata from list results, keeping only actionable fields (identity, status, type, timestamps, deep links) to minimize token usage.
|
|
1360
1465
|
|
|
1361
1466
|
### Adding a New Resource Type
|
|
@@ -1517,13 +1622,15 @@ Write tools (`harness_create`, `harness_update`, `harness_delete`, `harness_exec
|
|
|
1517
1622
|
|
|
1518
1623
|
**Client support:**
|
|
1519
1624
|
|
|
1520
|
-
|
|
1521
|
-
|
|
1522
|
-
|
|
|
1523
|
-
|
|
|
1524
|
-
|
|
|
1525
|
-
|
|
|
1526
|
-
|
|
|
1625
|
+
|
|
1626
|
+
| Client | Elicitation Support |
|
|
1627
|
+
| ----------------- | ------------------- |
|
|
1628
|
+
| Cursor | Yes |
|
|
1629
|
+
| VS Code (Copilot) | Yes |
|
|
1630
|
+
| Claude Desktop | Not yet |
|
|
1631
|
+
| Windsurf | Not yet |
|
|
1632
|
+
| MCP Inspector | Yes |
|
|
1633
|
+
|
|
1527
1634
|
|
|
1528
1635
|
Elicitation behavior varies by operation severity when client support is missing:
|
|
1529
1636
|
For clients that don't support elicitation:
|
|
@@ -1568,7 +1675,6 @@ When enabled, **all** write and delete operations proceed without user confirmat
|
|
|
1568
1675
|
- **CORS restricted to same-origin.** The HTTP transport only allows same-origin requests, preventing CSRF attacks from malicious websites targeting the MCP server on localhost.
|
|
1569
1676
|
- **HTTP rate limiting.** The HTTP transport enforces 60 requests per minute per IP to prevent request flooding.
|
|
1570
1677
|
- **API rate limiting.** The Harness API client enforces a 10 requests/second limit to avoid hitting upstream rate limits.
|
|
1571
|
-
|
|
1572
1678
|
- **Pagination bounds enforced.** List queries are capped at 10,000 items total and 100 per page to prevent memory exhaustion.
|
|
1573
1679
|
- **Retries with backoff.** Transient failures (HTTP 429, 5xx) are retried with exponential backoff and jitter.
|
|
1574
1680
|
- **Localhost binding.** The HTTP transport binds to `127.0.0.1` by default — not accessible from the network.
|
|
@@ -1580,24 +1686,26 @@ The Harness MCP server pairs well with **[Harness Skills](https://github.com/har
|
|
|
1580
1686
|
|
|
1581
1687
|
## Troubleshooting & Common Pitfalls
|
|
1582
1688
|
|
|
1583
|
-
|
|
1584
|
-
|
|
1585
|
-
|
|
|
1586
|
-
| `
|
|
1587
|
-
| `
|
|
1588
|
-
|
|
|
1589
|
-
| HTTP `
|
|
1590
|
-
| HTTP `
|
|
1591
|
-
| HTTP `
|
|
1592
|
-
| `
|
|
1593
|
-
| `
|
|
1594
|
-
| `
|
|
1595
|
-
|
|
|
1596
|
-
| Pipeline
|
|
1597
|
-
| `
|
|
1598
|
-
| `
|
|
1599
|
-
| `
|
|
1689
|
+
|
|
1690
|
+
| Symptom | Likely Cause | What to Do |
|
|
1691
|
+
| -------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
|
|
1692
|
+
| `HARNESS_ACCOUNT_ID is required when the API key is not a PAT...` | API key is not in PAT format (`pat.<accountId>.<tokenId>.<secret>`) so account ID cannot be inferred | Set `HARNESS_ACCOUNT_ID` explicitly |
|
|
1693
|
+
| `Unknown transport: "..."` on startup | Unsupported CLI transport arg | Use `stdio` or `http` only |
|
|
1694
|
+
| `Invalid HARNESS_TOOLSETS: ...` on startup | One or more toolset names are not recognized | Use only names from [Toolset Filtering](#toolset-filtering) (exact match) |
|
|
1695
|
+
| HTTP `mcp-session-id header is required...` | A session request was sent without session header | Send `initialize` first, then include `mcp-session-id` on `POST/GET/DELETE /mcp` |
|
|
1696
|
+
| HTTP `Session not found...` | Session expired (30 min idle TTL) or already closed | Re-run `initialize` to create a new session, then retry with new header |
|
|
1697
|
+
| HTTP `405 Method Not Allowed` on `/mcp` | Unsupported method for MCP endpoint | Use `POST`, `GET`, `DELETE`, or `OPTIONS` only |
|
|
1698
|
+
| HTTP `Invalid request` | Invalid JSON body or request body exceeded `HARNESS_MAX_BODY_SIZE_MB` | Validate JSON payload size/shape; increase `HARNESS_MAX_BODY_SIZE_MB` if needed |
|
|
1699
|
+
| `Unknown resource_type "..."` from tools | Resource type is misspelled or filtered out via `HARNESS_TOOLSETS` | Call `harness_describe` (with optional `search_term`) to discover valid types |
|
|
1700
|
+
| `Missing required field "... for path parameter ..."` | A project/org scoped call is missing identifiers | Set `HARNESS_ORG`/`HARNESS_PROJECT` or pass `org_id`/`project_id` per tool call |
|
|
1701
|
+
| `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 |
|
|
1702
|
+
| 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 |
|
|
1703
|
+
| 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 |
|
|
1704
|
+
| `Operation declined by user` | User declined the elicitation confirmation dialog | The user chose not to proceed — verify the operation details and retry if intended |
|
|
1705
|
+
| `body.template_yaml (or body.yaml) is required` for template create/update | Template APIs expect full YAML payload | Provide full `template_yaml` string in `body`; for deletes, pass `version_label` to delete one version (omit to delete all versions) |
|
|
1706
|
+
| `HARNESS_BASE_URL must use HTTPS` on startup | `HARNESS_BASE_URL` is set to an HTTP URL | Use HTTPS, or set `HARNESS_ALLOW_HTTP=true` for local development |
|
|
1707
|
+
|
|
1600
1708
|
|
|
1601
1709
|
## License
|
|
1602
1710
|
|
|
1603
|
-
MIT
|
|
1711
|
+
MIT
|