Skip to main content
Glama
orchestra-hq

Orchestra MCP Server

Official
by orchestra-hq

Orchestra MCP Server

A Model Context Protocol (MCP) server for the Orchestra API. End users can connect directly to Orchestra's hosted MCP endpoint and authenticate with their Orchestra API key.

Quick Start

Use Orchestra's hosted MCP endpoint:

  • URL: https://mcp.getorchestra.io/orchestra

  • Required header: Authorization: Bearer <YOUR_ORCHESTRA_API_KEY>

  • API key location: Orchestra workspace settings

Related MCP server: Airflow MCP

Available Tools

Tool

Auth required

Purpose

Category

whats_broken

Yes

Failing and warning pipeline runs in a window, pre-joined to the task runs that failed inside them, with messages, platform links and duration anomalies.

Triage

diagnose

Yes

Deep dive on one task run: parameters, upstream task statuses, log tail and artifact filenames.

Triage

pipeline_context

Yes

A pipeline's metadata, full definition, integrations, recent run outcomes and median succeeded duration.

Triage

get_pipeline

Yes

Fetch a single pipeline. Provide exactly one selector: pipeline_id, alias, or repository together with yaml_path (GET /pipeline).

Pipelines

list_pipelines

Yes

List pipelines (GET /pipelines).

Pipelines

create_pipeline

Yes

Create a pipeline (POST /pipelines).

Pipelines

update_pipeline

Yes

Update a pipeline by selector (PUT /pipelines).

Pipelines

delete_pipeline

Yes

Delete a pipeline. Provide exactly one selector: pipeline_id, alias, or repository together with yaml_path (DELETE /pipelines). Only runs for a user signed in with OAuth; with an Orchestra API key it is refused.

Pipelines

get_pipeline_data

Yes

Get pipeline data (GET /pipelines/data).

Pipelines

start_pipeline

Yes

Start a pipeline run (POST /pipelines/{pipeline_id_or_alias}/start).

Pipelines

pause_pipeline

Yes

Pause or unpause a pipeline (PUT /pipelines/{pipeline_id_or_alias}/pause).

Pipelines

move_pipeline

Yes

Move a pipeline to a folder (PUT /pipelines/{pipeline_id_or_alias}/folder).

Pipelines

validate_pipeline

No

Validate pipeline schema (POST /pipelines/schema).

Pipelines

migrate_pipeline

Yes

Migrate an Orchestra-backed pipeline to git-backed storage. Identify it with pipeline_id or alias, and omit working_branch when it equals default_branch (PATCH /pipelines/storage-settings).

Pipelines

import_pipeline

Yes

Import a pipeline (POST /pipelines/import).

Pipelines

get_pipeline_run_status

Yes

Get pipeline run status (GET /pipeline_runs/{pipeline_run_id}/status).

Pipeline Runs

list_pipeline_runs

Yes

List pipeline runs with optional filters. status accepts comma-separated values: CREATED, QUEUED, RUNNING, SUCCEEDED, WARNING, FAILED, SKIPPED, CANCELLING, CANCELLED (GET /pipeline_runs).

Pipeline Runs

cancel_pipeline_run

Yes

Cancel a running or queued pipeline run by its ID (POST /pipeline_runs/{pipeline_run_id}/cancel).

Pipeline Runs

get_pipeline_run_lineage_url

No

Build the URL of a pipeline run's lineage graph in the Orchestra UI (derived from ORCHESTRA_ENV).

Pipeline Runs

list_task_runs_for_pipeline_run

Yes

List task runs for a pipeline run (GET /pipeline_runs/{pipeline_run_id}/task_runs).

Task Runs

list_task_runs

Yes

List task runs (GET /task_runs).

Task Runs

list_incidents

Yes

List incidents (GET /incidents).

Incidents

get_incident

Yes

Get an incident (GET /incidents/{incident_id}).

Incidents

update_incident

Yes

Update an incident (PATCH /incidents/{incident_id}).

Incidents

list_incident_events

Yes

List an incident's timeline (GET /incidents/{incident_id}/events).

Incidents

get_incident_external_event

Yes

Get an external event's payload (GET /incidents/{incident_id}/events/{incident_event_id}/external_event).

Incidents

merge_incidents

Yes

Merge incidents (POST /incidents/{incident_id}/merge).

Incidents

unmerge_incidents

Yes

Unmerge incidents (POST /incidents/{incident_id}/unmerge).

Incidents

mute_incident

Yes

Mute an incident (POST /incidents/{incident_id}/mute).

Incidents

unmute_incident

Yes

Unmute an incident (POST /incidents/{incident_id}/unmute).

Incidents

create_incident_comment

Yes

Write to an incident's timeline (POST /incidents/{incident_id}/comments).

Incidents

get_incident_settings

Yes

Get incident settings (GET /incident_settings).

Incident settings

update_incident_settings

Yes

Update incident settings (PATCH /incident_settings).

Incident settings

list_monitors

Yes

List monitors (GET /monitors).

Monitors

create_monitor

Yes

Create a monitor (POST /monitors).

Monitors

reorder_monitors

Yes

Reorder monitors (POST /monitors/reorder).

Monitors

get_monitor

Yes

Get a monitor (GET /monitors/{monitor_id}).

Monitors

update_monitor

Yes

Update a monitor (PUT /monitors/{monitor_id}).

Monitors

delete_monitor

Yes

Delete a monitor (DELETE /monitors/{monitor_id}). Only runs for a user signed in with OAuth; with an Orchestra API key it is refused.

Monitors

list_operations

Yes

List operations (GET /operations).

Operations

list_assets

Yes

List assets (GET /assets).

Assets

get_asset_by_id

Yes

Get an asset (GET /assets/{asset_id}).

Assets

list_task_run_logs

Yes

List task run logs (GET /pipeline_runs/{pipeline_run_id}/task_runs/{task_run_id}/logs).

Logs

download_task_run_log

Yes

Download a task run log (GET /pipeline_runs/{pipeline_run_id}/task_runs/{task_run_id}/logs/download).

Logs

list_task_run_artifacts

Yes

List task run artifacts (GET /pipeline_runs/{pipeline_run_id}/task_runs/{task_run_id}/artifacts).

Artifacts

download_task_run_artifact

Yes

Download a task run artifact (GET /pipeline_runs/{pipeline_run_id}/task_runs/{task_run_id}/artifacts/download).

Artifacts

get_integration

Yes

Get an integration (GET /integrations/{integration}).

Integrations

list_integration_connections

Yes

List integration connections (GET /integrations/connections).

Integration Connections

get_integration_connection

Yes

Get an integration connection (GET /integrations/{integration}/auth/{connection_id}).

Integration Connections

update_integration_connection

Yes

Update an integration connection (PATCH /integrations/{integration}/auth/{connection_id}).

Integration Connections

delete_integration_connection

Yes

Delete an integration connection (DELETE /integrations/{integration}/auth/{connection_id}). Only runs for a user signed in with OAuth; with an Orchestra API key it is refused.

Integration Connections

create_integration_connection

Yes

Create an integration connection (POST /integrations/{integration}/auth).

Integration Connections

list_environments

Yes

List environments (GET /environments).

Environments

create_environment

Yes

Create an environment (POST /environments).

Environments

get_environment

Yes

Get an environment (GET /environments/{environment_id}).

Environments

update_environment

Yes

Update an environment (PATCH /environments/{environment_id}).

Environments

delete_environment

Yes

Delete an environment (DELETE /environments/{environment_id}). Only runs for a user signed in with OAuth; with an Orchestra API key it is refused.

Environments

get_integration_state_for_state_aware

Yes

Get integration state (GET /state/{integration}).

State

list_audit_events

Yes

List audit events (GET /audit_events).

Audit

list_accounts

Yes

List workspaces (GET /accounts).

Accounts

list_agent_avatars

Yes

List agent avatars (GET /agents/avatar-catalog).

Agents

create_agent

Yes

Create an agent (POST /agents).

Agents

list_agents

Yes

List agents (GET /agents).

Agents

get_agent

Yes

Get an agent (GET /agents/{agent_id}).

Agents

update_agent

Yes

Update an agent (PATCH /agents/{agent_id}).

Agents

delete_agent

Yes

Delete an agent (DELETE /agents/{agent_id}). Only runs for a user signed in with OAuth; with an Orchestra API key it is refused.

Agents

list_agent_skills

Yes

List an agent's skills (GET /agents/{agent_id}/skills).

Agents

set_agent_skills

Yes

Set an agent's skills (PUT /agents/{agent_id}/skills).

Agents

list_agent_integrations

Yes

List an agent's integrations (GET /agents/{agent_id}/integrations).

Agents

set_agent_integrations

Yes

Set an agent's integrations (PUT /agents/{agent_id}/integrations).

Agents

get_agent_usage

Yes

Get agent token usage (GET /usage).

Agents

list_agent_sessions

Yes

List agent sessions (GET /sessions).

Agent Sessions

create_agent_session

Yes

Start an agent session (POST /sessions).

Agent Sessions

get_agent_session

Yes

Get an agent session (GET /sessions/{session_id}).

Agent Sessions

send_agent_session_message

Yes

Send a message to an agent session (POST /sessions/{session_id}).

Agent Sessions

get_agent_session_history_messages

Yes

Read an agent session's messages (GET /sessions/{session_id}/history/messages).

Agent Sessions

cancel_agent_session_prompt

Yes

Cancel an agent session prompt (POST /sessions/{session_id}/cancel).

Agent Sessions

list_skills

Yes

List skills (GET /skills).

Skills

create_skill

Yes

Create a skill (POST /skills).

Skills

get_skill

Yes

Get a skill (GET /skills/{skill_id}).

Skills

update_skill

Yes

Update a skill (PATCH /skills/{skill_id}).

Skills

delete_skill

Yes

Delete a skill (DELETE /skills/{skill_id}). Only runs for a user signed in with OAuth; with an Orchestra API key it is refused.

Skills

import_skill

Yes

Import a skill from git (POST /skills/import).

Skills

Cursor

Add this to .cursor/mcp.json (project) or ~/.cursor/mcp.json (global):

{
  "mcpServers": {
    "orchestra": {
      "url": "https://mcp.getorchestra.io/orchestra",
      "headers": {
        "Authorization": "Bearer <YOUR_ORCHESTRA_API_KEY>"
      }
    }
  }
}

Claude Code

Add the hosted server with:

claude mcp add --transport http --header "Authorization: Bearer <YOUR_ORCHESTRA_API_KEY>" orchestra https://mcp.getorchestra.io/orchestra

Other MCP clients

Any MCP client that supports remote HTTP/SSE servers can connect with this shape:

{
  "mcpServers": {
    "orchestra": {
      "url": "https://mcp.getorchestra.io/orchestra",
      "headers": {
        "Authorization": "Bearer <YOUR_ORCHESTRA_API_KEY>"
      }
    }
  }
}

Managing Multiple Workspaces

If you need to connect to multiple Orchestra workspaces, you can set up separate MCP server connections with workspace-specific API keys:

{
  "mcpServers": {
    "orchestra-data-quality-tests": {
      "url": "https://mcp.getorchestra.io/orchestra",
      "headers": {
        "Authorization": "Bearer <DATA_QUALITY_WORKSPACE_API_KEY>"
      }
    },
    "orchestra-sales-integrations": {
      "url": "https://mcp.getorchestra.io/orchestra",
      "headers": {
        "Authorization": "Bearer <SALES_WORKSPACE_API_KEY>"
      }
    }
  }
}

Run Locally

This section discusses how to run the MCP server locally, and is mainly intended for contributors.

Prerequisites

  • Python 3.11 or higher

  • uv package manager

  • Orchestra API key

Install dependencies

# Install uv if you haven't already
curl -LsSf https://astral.sh/uv/install.sh | sh

# Install project dependencies
uv sync

Set API key

export ORCHESTRA_API_KEY="your-orchestra-api-key"

(Optional) Select environment for local runs

For local development, the server defaults to app. You can override it with ORCHESTRA_ENV:

export ORCHESTRA_ENV="dev"

Valid values:

  • app (default)

  • stage

  • dev

(Optional) Disable destructive deletion

The delete tools are registered by default, but only run for a user signed in with OAuth to the hosted endpoint: called with an Orchestra API key, including when running the server locally, they are refused. To hide them, set ORCHESTRA_ENABLE_DELETE to anything other than true (in any case) or 1 before starting the server:

export ORCHESTRA_ENABLE_DELETE="false"

Run the server

python -m orchestramcp.server

The server fetches every Orchestra OpenAPI spec on startup and exposes the operations each API flags for the MCP. Set ORCHESTRA_OPENAPI_URL (Orchestra API), ORCHESTRA_PLATFORM_OPENAPI_URL (Orchestra Platform API) or ORCHESTRA_AGENTS_OPENAPI_URL (Orchestra Agents API) to point at a specific spec (e.g. a local file) instead of the environment default. Startup fails if any spec cannot be fetched, rather than serving a partial set of tools.

(Optional) Accept OAuth access tokens

The hosted Lambda can also accept OAuth 2.1 access tokens issued by Orchestra's authorization server, alongside API keys. Set all three variables to turn it on — with any of them unset, every bearer token is treated as an API key:

export ORCHESTRA_OAUTH_ISSUER="https://app.getorchestra.io"
export ORCHESTRA_OAUTH_JWKS_URI="https://app.getorchestra.io/oauth/jwks.json"
export ORCHESTRA_OAUTH_RESOURCE_URL="https://mcp.getorchestra.io/orchestra"

The issuer is per-environment — swap app for stage or dev — and the rest of its metadata, jwks_uri included, is published at <issuer>/.well-known/oauth-authorization-server.

ORCHESTRA_OAUTH_RESOURCE_URL must be the MCP URL exactly as a user types it into their client, path included: it is published as the resource of the RFC 9728 metadata document, and it is the audience every token is checked against. The authorization server has to serve that same identifier — it mints a token only for a resource it is configured for, and stamps aud with its own spelling of it. Verified tokens are forwarded to the Orchestra API unchanged.

Testing the OAuth flow locally

scripts/local_resource_server.py fronts the real Lambda handler with an HTTP socket, so an MCP client can run the whole flow against the production code path:

ORCHESTRA_ENV=dev \
ORCHESTRA_OAUTH_ISSUER=https://dev.getorchestra.io \
ORCHESTRA_OAUTH_JWKS_URI=https://dev.getorchestra.io/oauth/jwks.json \
ORCHESTRA_OAUTH_RESOURCE_URL=https://mcp-dev.getorchestra.io/orchestra \
    uv run python scripts/local_resource_server.py
claude mcp add --transport http orchestra-local http://127.0.0.1:8788/orchestra

Connecting should take you through discovery, client registration and a consent screen, after which tool calls run as your user rather than as an account-wide API key.

The resource URL is the deployed dev identifier rather than the local address, because it has to be one the authorization server serves and one the Orchestra API accepts as an audience — a token minted for 127.0.0.1 is refused by both. The cost is that the metadata pointer in the 401 names the deployed host, so a client that follows it lands somewhere this server is not; discovery then depends on the client falling back to probing the address it connected to. Testing against a deployed environment avoids that, and is also the only way to exercise the edge routing /orchestra/.well-known/*.

Development

  • Run uv run pytest to run tests.

  • Run uv run ruff check . and uv run ruff format . to check and format code.

PRs to main will trigger CI checks in GitHub, main branch merges release to the dev & stage environments, and Github releases relase to the production environment.

Available Tools

82 tools
cancel_agent_session_promptCancel an agent session promptA

Ask an agent session to stop working on a prompt, named by the promptAcceptedSequenceId its history records for it. This returns once the cancel is queued, and the history records when the prompt stops. Needs a grant to run the session's agent. Returns 404 for a session the caller cannot see, and 403 for one whose agent the caller cannot run. A session started by a user in the Orchestra UI is visible to that user alone, so an API key never sees one. Sessions started for a task run or an incident are visible to everyone in the workspace who can view the agent.

NameRequiredDescriptionDefault
session_idYesAgent session ID.
X-Orchestra-Account-IdNoAct on this account rather than the one the credential resolves to. Omit it to use the credential's own account. An API key is issued to a single account, so it may only name that account; an OAuth token may name any account its grant covers.
promptAcceptedSequenceIdYes

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations: it discloses that the call is asynchronous ("returns once the cancel is queued"), that history records when the prompt actually stops, the authorization prerequisite, and precise 404/403 semantics tied to visibility scopes. This is exactly the behavioral detail an agent needs for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the core action, then layers on async behavior, permissions, and error semantics in a logical order with no filler. It is dense but every sentence carries actionable information, so it is not padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the return-behavior burden and does so (cancel queued vs. history-recorded completion), plus permissions and visibility scoping. An agent has everything needed to call this correctly and interpret the outcome.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 67% and the one undocumented parameter, promptAcceptedSequenceId, is explained in the description as the ID the session's history records for the prompt. session_id and the account-override header are already documented in the schema, so the description fills the remaining gap well.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Ask an agent session to stop working on a prompt") and identifies the exact identifier the operation targets. This clearly distinguishes it from siblings like send_agent_session_message or get_agent_session, though it never names an alternative explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides strong operative context: it explains the grant required to run the session's agent and the visibility rules that determine whether a session is even reachable (404 vs 403). It stops short of explicitly contrasting when to cancel versus send a new message, but the usage conditions are clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cancel_pipeline_runCancel Pipeline RunB
Destructive

Cancel a running or queued pipeline run by its ID.

NameRequiredDescriptionDefault
bodyNo
pipeline_run_idYesPipeline run ID.
X-Orchestra-Account-IdNoAct on this account rather than the one the credential resolves to. Omit it to use the credential's own account. An API key is issued to a single account, so it may only name that account; an OAuth token may name any account its grant covers.

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false and destructiveHint=true, so the mutation risk is covered structurally. The description adds the useful constraint that only running or queued runs are cancellable, but says nothing about reversibility, whether in-flight tasks are killed, idempotency, or the two-phase force retry documented only in the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler or repetition. It is efficient, though the brevity borders on under-specification for a destructive operation rather than true tightness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive, 3-parameter mutation with no output schema, the description omits what happens after the call (resulting run status, whether polling get_pipeline_run_status is needed), the required 'CANCELLING'-then-force sequence, and any permission context. The agent is left to reconstruct the operating procedure from the schema and sibling names alone.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 67% and the schema itself is unusually thorough, spelling out the 'force' semantics (must already be CANCELLING or a 400 results) and account-scoping rules for the header. The description contributes only 'by its ID', which merely restates the required pipeline_run_id, so it neither compensates for nor detracts from the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (cancel), a specific resource (pipeline run), and the qualifying state scope ('running or queued') plus the lookup key (by its ID). That is enough to separate it from delete_pipeline, pause_pipeline, and cancel_agent_session_prompt, though it never names a sibling or boundary explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance beyond the vague state qualifier. It does not say how this differs from pause_pipeline, whether the cancellation is the intended replacement for pause, or when the two-phase force flow applies. The agent must infer all routing decisions from the sibling list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_agentCreate an agentB

Create an agent in the workspace the credential resolves to. Prompts are Markdown, avatarPath is a path from the avatar catalog, gitEnabled needs the workspace's git connection, and llmKeyType picks whose LLM key its sessions use. Secrets are returned masked.

NameRequiredDescriptionDefault
nameYes
secretsNo
avatarPathNo
gitEnabledNo
llmKeyTypeNo
descriptionNo
systemPromptNo
defaultEffortNo
samplePromptsNo
defaultModelIdNo
responsePromptNo
X-Orchestra-Account-IdNoAct on this account rather than the one the credential resolves to. Omit it to use the credential's own account. An API key is issued to a single account, so it may only name that account; an OAuth token may name any account its grant covers.

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only give the safety profile (readOnlyHint=false, destructiveHint=false), so the description earns credit by adding real behavioral context: secrets are returned masked, gitEnabled depends on an existing workspace git connection, avatarPath must resolve against the avatar catalog, and prompts are Markdown. It does not cover duplicate-name behavior, limits, or auth requirements beyond the credential scoping.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The scope statement is front-loaded and the parameter notes are packed into a single dense sentence with no filler. It is appropriately sized, though the second sentence reads as a comma-spliced list that could be marginally tighter.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need not be described, but for a 12-parameter creation tool with near-zero schema descriptions, the description leaves most optional fields (effort, model, sample prompts, response prompt, description) undefined. An agent could call it with only a name, but cannot confidently populate the rest.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 8% across 12 parameters, so the description must carry the burden but covers just four (systemPrompt, avatarPath, gitEnabled, llmKeyType) plus a note on secrets. Nothing is said about name, description, defaultEffort, samplePrompts, defaultModelId, responsePrompt, or the header parameter, all of which the schema leaves undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Create an agent") and scopes it to the workspace the credential resolves to, which separates it from generic create_* siblings. It does not explicitly contrast with update_agent or create_agent_session, so it falls short of full sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use, when-not-to-use, or alternative guidance. The clause about gitEnabled needing the workspace's git connection is a constraint rather than a usage rule, and no sibling (update_agent, list_agents, create_agent_session) is mentioned as an alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_agent_sessionStart an agent sessionA

Start a session with an agent and send it a first prompt. The agent replies asynchronously: this returns once the prompt is queued, and the reply is read from GET /sessions/{session_id}/history/messages. Without incidentId the session is the caller's own, so it needs an OAuth token and an API key gets 400. With incidentId it is the incident's, visible across the workspace, and an incident's open session takes the prompt instead of a new one starting. Needs a grant to run the agent, and to view the incident when incidentId is set.

NameRequiredDescriptionDefault
effortNo
promptYes
agentIdYes
modelIdNo
incidentIdNo
pipelineEditorContextNo
X-Orchestra-Account-IdNoAct on this account rather than the one the credential resolves to. Omit it to use the credential's own account. An API key is issued to a single account, so it may only name that account; an OAuth token may name any account its grant covers.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare readOnlyHint=false and destructiveHint=false, so the description carries the interesting load and does it well: the call is asynchronous and returns once the prompt is queued, with the reply read from GET /sessions/{session_id}/history/messages. It also discloses the auth asymmetry (OAuth vs API key 400), the visibility/session-reuse behavior with incidentId, and the grant requirements for running the agent and viewing the incident.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action, then progressively layers async behavior, auth, and scoping. Nearly every sentence carries non-redundant information, though the closing grant sentence packs two separate permission requirements into one dense clause.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 7-parameter mutation tool with sparse schema documentation and an output schema already covering returns, the description supplies the missing operational context: async contract, where replies are read, credential requirements per mode, session-reuse semantics, and required grants. The only real gap is the tuning parameters (effort, modelId, pipelineEditorContext), which is minor against the overall coverage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 14%, so the description has to compensate, and it does well for incidentId (ownership, workspace visibility, existing-session absorption) and implicitly for agentId/prompt. But effort, modelId, and pipelineEditorContext are undocumented in both schema and description, leaving three parameters semantically opaque.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource pair ("Start a session with an agent and send it a first prompt") and pins the scope with "first prompt," which cleanly separates it from send_agent_session_message for follow-ups. An agent can identify this as the session-creation entry point without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit conditions that select between two modes: without incidentId the session belongs to the caller (OAuth token required, API key gets 400), with incidentId it is incident-scoped and workspace-visible. It also warns that an incident's already-open session absorbs the prompt rather than a new one starting. It stops short of naming a sibling as the alternative for follow-up turns, so 4 rather than 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_environmentCreate an environmentB

Create a new environment with an initial set of variable values. The first environment created for a workspace is automatically marked as the default.

NameRequiredDescriptionDefault
nameYes
valuesYes
X-Orchestra-Account-IdNoAct on this account rather than the one the credential resolves to. Omit it to use the credential's own account. An API key is issued to a single account, so it may only name that account; an OAuth token may name any account its grant covers.

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false and destructiveHint=false, so the write/safe profile is known. The description usefully adds the side effect that the first environment in a workspace becomes the default, but says nothing about name uniqueness, idempotency, or auth requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences with the core action front-loaded and the default-marking behavior following directly. No filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema exists so return values need not be explained, and annotations cover the safety profile. Still, for a create mutation with nested typed values and a low-coverage schema, the description leaves name constraints and value-shape expectations unaddressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 33%: 'name' is undocumented and 'values' only carries a nested type description. The phrase 'initial set of variable values' gestures at what values means but adds no syntax, typing constraints, or name rules to compensate for the coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Create) and resource (environment) plus the initial payload it takes, which is clearer than the bare title. It does not, however, differentiate itself from siblings like update_environment or create_pipeline.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance, prerequisites, or alternative routing (e.g., update_environment for existing environments). The default-marking note is contextual but not a usage rule.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_incident_commentWrite to an incident's timelineA

Append a row to an incident's timeline, returning the event it wrote.

eventType says what the row records - COMMENT_ADDED (the default) for an ordinary comment, or AI_DIAGNOSIS_REQUESTED, AI_DIAGNOSIS_COMPLETED and AI_DIAGNOSIS_FAILED to record the start, result or failure of a diagnosis.

agentSessionId names the Orchestra agent session behind the write. The row is then attributed to Orchestra AI and linked to that session rather than to the API key; an agent takes the id from its ORCHESTRA_AGENT_SESSION_ID environment variable. The AI_DIAGNOSIS_* types require it. A session may write several over its life, but posting the same text twice returns the row already written.

description sets the incident's description alongside an AI_DIAGNOSIS_COMPLETED or AI_DIAGNOSIS_FAILED row, and needs edit permission on the incident. It is not applied over a description a person wrote.

The timeline is append-only: nothing can edit or delete a row once it is there.

NameRequiredDescriptionDefault
commentYes
eventTypeNoWhat the row records. Defaults to COMMENT_ADDED. The AI_DIAGNOSIS_* types require agentSessionId.COMMENT_ADDED
descriptionNoA summary of the cause to set as the incident's description, written in the same call as the diagnosis. Only accepted with AI_DIAGNOSIS_COMPLETED or AI_DIAGNOSIS_FAILED, and not applied over a description a person wrote.
incident_idYesIncident ID.
agentSessionIdNoThe agent session writing this row. Attributes it to Orchestra AI instead of the API key, and links the timeline back to the session. Agents read this from the ORCHESTRA_AGENT_SESSION_ID environment variable.
X-Orchestra-Account-IdNoAct on this account rather than the one the credential resolves to. Omit it to use the credential's own account. An API key is issued to a single account, so it may only name that account; an OAuth token may name any account its grant covers.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations: append-only immutability, idempotent re-post behavior ('posting the same text twice returns the row already written'), edit-permission requirement for description, non-overwrite of human-written descriptions, and attribution to Orchestra AI vs the API key.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the core action, then groups parameter behavior into focused paragraphs; every sentence carries operational detail. Slightly dense in places but no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need not be explained, and the description still notes that the written event is returned. Combined with the mutation semantics and permission notes, an agent has everything needed to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is already 83% (baseline 3), and the description adds meaning the schema lacks — the ORCHESTRA_AGENT_SESSION_ID source, the required coupling of AI_DIAGNOSIS_* to agentSessionId, and the duplicate-suppression behavior on comment text.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource — 'Append a row to an incident's timeline, returning the event it wrote' — which is a narrow, well-scoped operation distinguishable from sibling mutations like update_incident or merge_incidents.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit conditions for each eventType, including that the AI_DIAGNOSIS_* types require agentSessionId and that description is only accepted with COMPLETED/FAILED. It stops short of naming alternative tools or when not to comment at all, but the mode-selection guidance is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_integration_connectionCreate an integration connectionA

Create a connection for an integration in the caller's workspace. parameters must match the integration's authSchema, as returned by Get an integration. Secret parameters are obfuscated in the response. OAuth integrations return a redirectUrl instead and need a user's credential.

NameRequiredDescriptionDefault
parametersYesAuth parameters, keyed by the field names in the integration's authSchema.
integrationYes
callbackPathNo
connectionNameYesDisplay name for the connection.
credentialStoreNoWhere the secrets live. ORCHESTRA stores them encrypted in Orchestra; an external store takes that store's reference parameters instead.ORCHESTRA
validationParamsNoParameters matching the integration's validateSchema. Supplying them runs an extra validation against the provider once the connection authenticates.
X-Orchestra-Account-IdNoAct on this account rather than the one the credential resolves to. Omit it to use the credential's own account. An API key is issued to a single account, so it may only name that account; an OAuth token may name any account its grant covers.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations establish this is a write that is not destructive; the description goes further by disclosing that secret parameters are obfuscated in the response and that OAuth integrations return a `redirectUrl` and need a user's credential. This is genuine behavioral context beyond the annotations, missing only permissions and error behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences, front-loaded with the core action and followed by the two constraints that actually affect a call. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a create tool with an output schema, annotations, and mostly-covered params, the description supplies the key non-obvious behavior (authSchema linkage, secret obfuscation, OAuth branch). A brief note on permissions or name collisions would complete it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 71% schema coverage the schema documents most fields, but the description adds real meaning by tying `parameters` to the integration's `authSchema` and explaining the secret-obfuscation and OAuth/redirectUrl behavior for that field. callbackPath remains undocumented in both places.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Create) and resource (a connection for an integration) with scope (caller's workspace), which cleanly separates it from the get/update/delete connection siblings. It stops short of naming an alternative, but the purpose is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides a concrete prerequisite workflow: `parameters` must match the integration's `authSchema`, as returned by Get an integration, which points the agent at a sibling tool first. It also flags the OAuth branch, though it offers no explicit when-not or duplicate-handling guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_monitorCreate a monitorA

Create a monitor: a rule for which failures to group into one incident, and how that incident alerts. match picks the events it claims, groupBy what makes two of them one incident, and action what happens to it - including mute, which claims the events and raises no incident or alert at all. Left out, order puts the new monitor last, so it only claims events no existing monitor claims.

NameRequiredDescriptionDefault
nameYes
matchYesWhich events a monitor claims: AND across dimensions, OR within a list. At least one dimension has to be given. A monitor matching every dimension by saying nothing would claim every event on the account, which is never what an author means. ``operation_failures_only`` narrows what the dimensions...
orderNo
actionNoWhat happens to the events this monitor claimed. ``mute`` claims them and drops them, with no incident and no alert - the known-broken-thing case.
enabledNo
groupByYes
triggerNo
descriptionNo
X-Orchestra-Account-IdNoAct on this account rather than the one the credential resolves to. Omit it to use the credential's own account. An API key is issued to a single account, so it may only name that account; an OAuth token may name any account its grant covers.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only assert readOnlyHint=false and destructiveHint=false, and the description adds real context beyond that: mute claims events but raises no incident/alert, and omitting order makes the monitor claim only events no existing monitor claims. These are meaningful create-time behaviors not derivable from the annotations, though idempotency and permission requirements are unstated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three dense sentences, front-loaded with the verb and resource, and each clause earns its place by explaining a distinct creation behavior. Slightly clause-heavy but no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation, and annotations cover the safety profile. The main gap is that the counting/threshold nature of a monitor (trigger) is never mentioned in the description, though the schema describes it; overall complete enough for a nested 9-param create tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With only 33% schema coverage across 9 params, the description carries the load and does so for the semantically tricky ones (match, groupBy, action, order, mute), explaining how they interact rather than restating types. It leaves trigger, name, enabled and description to the schema, which largely documents trigger itself.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Uses a specific verb+resource and goes beyond the title by defining what a monitor actually is ('a rule for which failures to group into one incident, and how that incident alerts'), which the sibling list_monitors/get_monitor/update_monitor do not establish. It also surfaces a create-specific default (order puts the new monitor last), so an agent can distinguish creation semantics from the other monitor tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to reach for this tool (you are defining a new grouping/alerting rule) and explains the mute case for suppression, but it never names alternatives such as update_monitor or explicitly states when not to create. Usage is inferable but not spelled out.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_pipelineCreate a pipelineB

Create a new pipeline. The request body includes the pipeline definition as JSON.

Use Validate pipeline schema before creating a pipeline if you want to check the payload without saving it.

NameRequiredDescriptionDefault
dataYesPipeline definition as JSON, matching the pipeline YAML structure (required top-level keys: version, name, pipeline). Validate it with the validate_pipeline tool before submitting.
aliasNo
messageNo
yamlPathNo
publishedYes
repositoryNo
defaultBranchNo
workingBranchNo
messageIsCustomNo
storageProviderNoORCHESTRA
X-Orchestra-Account-IdNoAct on this account rather than the one the credential resolves to. Omit it to use the credential's own account. An API key is issued to a single account, so it may only name that account; an OAuth token may name any account its grant covers.

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false and destructiveHint=false, so the write-but-not-destructive profile is covered by structured data. The description adds only that the body is; it says nothing about permissions, what 'published' vs draft implies, storage-provider side effects, or account scoping, leaving meaningful behavioral gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the action and followed by the one useful prerequisite. No filler and nothing buried.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 11-parameter, nested-object mutation with only 18% schema coverage, the description is too thin; the output schema means return values need not be described, but the input-side gaps remain. An agent could not confidently populate the branch/repository/storage parameters from this definition alone.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 18% across 11 parameters, so the schema does almost none of the work; the description must compensate and largely doesn't. It only clarifies the 'data' payload shape and points at validate_pipeline, leaving alias, message, yamlPath, published, repository, defaultBranch, workingBranch, messageIsCustom, and storageProvider unexplained in both places.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Create a new pipeline') and adds that the body carries a JSON pipeline definition, so the agent knows exactly what it produces. It does not, however, disambiguate from close siblings such as import_pipeline, migrate_pipeline, or update_pipeline, which an agent might reasonably confuse with it.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a concrete conditional next-step: run validate_pipeline (linked as the schema-validation endpoint) first if you want to check the payload without saving. That is real routing guidance, but it only covers validation, not when to prefer create over import_pipeline/migrate_pipeline for an existing definition.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_skillCreate a skillA

Create a skill from a markdown document. The markdown must open with YAML frontmatter holding the skill's name and description. Returns 409 if the workspace already has a skill with that name.

NameRequiredDescriptionDefault
markdownYes
X-Orchestra-Account-IdNoAct on this account rather than the one the credential resolves to. Omit it to use the credential's own account. An API key is issued to a single account, so it may only name that account; an OAuth token may name any account its grant covers.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false and destructiveHint=false, so safety is covered. The description adds genuinely new behavioral context beyond that: the required markdown structure and the 409 failure mode on duplicate names, which an agent cannot infer from the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences with the core purpose front-loaded, then the format requirement, then the failure mode. No filler and nothing redundant with structured fields.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation, and the description covers input format and duplicate-name behavior. The only meaningful gap is that it does not route the agent between create_skill and import_skill for the same task.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 50%, and the required 'markdown' property has no schema description (just type and minLength). The description compensates by specifying the required frontmatter contents, which is real semantic value; the account-id parameter is already well documented in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Create a skill') plus the source medium ('from a markdown document'), which is more informative than restating the title. It does not, however, distinguish itself from the close sibling import_skill, which also creates skills.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description states a format prerequisite (YAML frontmatter with name/description) but gives no when-to-use guidance and never mentions the alternative import_skill or list_skills/update_skill. An agent gets no help choosing among the skill-creation siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_agentDelete an agentA
Destructive

Delete an agent from the workspace the credential resolves to. Agents managed by Orchestra cannot be deleted, and are refused with 403. Only runs for a user signed in with OAuth; with an Orchestra API key it is refused.

NameRequiredDescriptionDefault
agent_idYesThe id of the agent.
X-Orchestra-Account-IdNoAct on this account rather than the one the credential resolves to. Omit it to use the credential's own account. An API key is issued to a single account, so it may only name that account; an OAuth token may name any account its grant covers.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true and readOnlyHint=false, so the safety profile is covered. The description adds real value beyond that: the 403 refusal for Orchestra-managed agents and the credential-type restriction (OAuth only, API key refused). It stops short of saying whether deletion is permanent or what happens to dependent sessions/skills.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no filler, front-loading the core action and scope before the refusal conditions. Every clause carries an actionable constraint.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive, non-returning tool with no output schema, the definition covers scope, refusal conditions, and auth requirements. The main gap is the absence of any statement about permanence or downstream effects, which matters for an irreversible delete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both agent_id and X-Orchestra-Account-Id are fully documented in the schema itself. The description adds nothing about parameter formatting or account-id semantics beyond what the schema already states, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Delete an agent') plus the scope the credential resolves to, which distinguishes it from the many other delete_* siblings. An agent can tell immediately what the call removes and from where.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete preconditions: Orchestra-managed agents are refused with 403, and the call only runs for an OAuth session while an Orchestra API key is refused. It does not name an alternative tool or a when-not-to-use-this-instead-of-X case, but the eligibility rules are explicit enough to route correctly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_environmentDelete an environmentA
Destructive

Delete an environment entirely. The default environment cannot be deleted while other environments still exist. Only runs for a user signed in with OAuth; with an Orchestra API key it is refused.

NameRequiredDescriptionDefault
environment_idYes
X-Orchestra-Account-IdNoAct on this account rather than the one the credential resolves to. Omit it to use the credential's own account. An API key is issued to a single account, so it may only name that account; an OAuth token may name any account its grant covers.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only supply destructiveHint=true; the description adds genuinely new behavior — the deletion is total, the default environment is protected under a stated condition, and API-key credentials are refused outright. It does not say what happens to dependent objects (runs, assets) inside the environment, which is the one remaining behavioral gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the action, then constraints, then auth gating. Every sentence carries a distinct operational fact; nothing is repeated from the title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and destructive annotations already signaling risk, the description covers the critical call-time constraints (auth mode, default-environment protection). The only omission is the return/effect surface after deletion, which is minor for a delete tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 50%, and the description contributes nothing about parameters. environment_id is a self-evident UUID target, and X-Orchestra-Account-Id is already richly documented in the schema, so the baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Delete an environment entirely") with an unmistakable destructive scope. An agent can distinguish it from update_environment, get_environment, and list_environments without inspecting any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit when-not conditions (default environment cannot be deleted while others exist) and a hard auth precondition (OAuth only; refused with an API key). It does not name a sibling alternative, but the failure conditions it documents are exactly what routes an agent correctly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_integration_connectionDelete an integration connectionA
Destructive

Delete an integration connection from the workspace the credential resolves to, along with any asset configurations and agent integration mappings that use it. The default connection cannot be deleted while the integration has other connections. Only runs for a user signed in with OAuth; with an Orchestra API key it is refused.

NameRequiredDescriptionDefault
integrationYes
connection_idYes
X-Orchestra-Account-IdNoAct on this account rather than the one the credential resolves to. Omit it to use the credential's own account. An API key is issued to a single account, so it may only name that account; an OAuth token may name any account its grant covers.

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only say destructiveHint=true; the description goes well beyond by disclosing the cascade (asset configurations and agent integration mappings are destroyed), the default-connection guard, and the auth mode requirement. These are exactly the consequences an agent needs before invoking a destructive tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, both front-loaded with the destructive scope first and the constraints second. No filler, no repetition of the title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive tool with no output schema, it covers consequences, preconditions, and auth mode. It omits failure behavior (e.g., what error surfaces when the default-connection guard trips) and whether the deletion is reversible, which would round it out.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 33%: the enum and connection_id carry no descriptions, while X-Orchestra-Account-Id is fully documented in the schema. The phrase 'the workspace the credential resolves to' adds useful scoping context, but the description never explains what 'integration' vs 'connection_id' select or their expected format.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (delete) and resource (integration connection) plus scope ('from the workspace the credential resolves to') and enumerates the cascade ('asset configurations and agent integration mappings'). An agent can distinguish this from siblings like delete_environment or delete_pipeline without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit blocking conditions: the default connection cannot be deleted while other connections exist, and the call is refused with an API key (OAuth only). It stops short of naming an alternative path (e.g., update_integration_connection or deleting other connections first), so it is clear context plus exclusions rather than full routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_monitorDelete a monitorA
Destructive

Delete a monitor. Incidents it already claimed keep their link to it; new events fall through to the next matching monitor or the built-in grouping rules. Only runs for a user signed in with OAuth; with an Orchestra API key it is refused.

NameRequiredDescriptionDefault
monitor_idYesMonitor ID.
X-Orchestra-Account-IdNoAct on this account rather than the one the credential resolves to. Omit it to use the credential's own account. An API key is issued to a single account, so it may only name that account; an OAuth token may name any account its grant covers.

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare destructiveHint=true and readOnlyHint=false. The description goes well beyond that, disclosing the downstream consequences (claimed incidents retain their link, new events fall through to the next matching monitor or built-in grouping rules) and a hard auth constraint (OAuth-only; refused with an Orchestra API key). This is exactly the extra context an agent needs before a destructive call.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, each earning its place: action first, then side effects, then the auth gate. Nothing is redundant and the critical constraint is not buried.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the return/effect burden and does so: it explains the blast radius of the delete and the credential requirement. For a two-parameter destructive tool with full schema coverage, nothing material is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and both parameters (monitor_id, X-Orchestra-Account-Id) are fully documented in the schema, including the account-scoping nuance. The description adds no parameter-specific meaning, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb+resource ('Delete a monitor') that unambiguously distinguishes it from the other monitor siblings (create_monitor, update_monitor, get_monitor, list_monitors, reorder_monitors). An agent can select it without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives useful context about what deletion entails and its auth requirement, but never states when to choose this over alternatives (e.g., temporarily disabling via update_monitor, or how it relates to reorder_monitors). Usage is implied rather than guided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_pipelineDelete a pipeline by selectorA
Destructive

Delete a pipeline. Provide exactly one selector: pipeline_id, alias, or repository together with yaml_path. Only runs for a user signed in with OAuth; with an Orchestra API key it is refused.

NameRequiredDescriptionDefault
aliasNo
yaml_pathNo
repositoryNo
pipeline_idNo
X-Orchestra-Account-IdNoAct on this account rather than the one the credential resolves to. Omit it to use the credential's own account. An API key is issued to a single account, so it may only name that account; an OAuth token may name any account its grant covers.

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true and readOnlyHint=false, so the safety profile is covered. The description adds genuinely new behavioral context beyond the annotations: the tool is refused under an Orchestra API key and only runs for an OAuth-signed-in user, and it enforces a one-selector rule. It does not say whether deletion is reversible or what happens to dependent runs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, each doing distinct work: the action, the selector rule, and the auth precondition. Front-loaded with the action and no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive tool with no output schema and zero required parameters, the description covers the two things an agent most needs: how to address the target and the credential prerequisite. It omits irreversibility and side effects on pipeline runs, which is the main remaining gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 20% (only X-Orchestra-Account-Id is documented in the schema), so the description carries real weight. It explains that exactly one of pipeline_id, alias, or repository+yaml_path must be supplied and how those selectors pair up, which the schema alone cannot convey since all five properties are optional and nullable with no descriptions. It stops short of format details like the UUID4 requirement for pipeline_id.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Delete) and resource (a pipeline), plus the selector mechanism. It is clear what the tool does, though it does not explicitly distinguish itself from sibling mutation tools such as pause_pipeline or migrate_pipeline.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states the invocation constraint (exactly one selector, and how to combine repository with yaml_path) and the authentication gate, which tells the agent when the call will succeed. It gives no guidance on when to delete versus pause or otherwise retire a pipeline, so usage is only partially framed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_skillDelete a skillA
Destructive

Delete a skill. Skills managed by Orchestra cannot be deleted. Deleting a skill imported from git removes it from Orchestra only; the file in the repository is left as it is. Only runs for a user signed in with OAuth; with an Orchestra API key it is refused.

NameRequiredDescriptionDefault
skill_idYesThe id of the skill.
X-Orchestra-Account-IdNoAct on this account rather than the one the credential resolves to. Omit it to use the credential's own account. An API key is issued to a single account, so it may only name that account; an OAuth token may name any account its grant covers.

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the destructiveHint annotation by disclosing authentication requirements (OAuth only, API key refused) and the precise blast radius of deletion (git-imported skills are removed from Orchestra but the repository file is untouched). This is exactly the side-effect context an agent needs before calling a destructive tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four front-loaded sentences: the action first, then the three constraints that matter. Every sentence carries a distinct rule with no repetition or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive tool with no output schema, the description covers the prerequisites (OAuth), the blocked cases (Orchestra-managed skills), and the resulting state change (repo left intact), which is everything an agent needs to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both skill_id and X-Orchestra-Account-Id are already documented in the schema. The description adds no syntax or format guidance, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Delete a skill') that is unambiguously distinct from create_skill, update_skill, get_skill, and import_skill. It doesn't explicitly name a sibling or contrast its scope, but the destructive verb leaves no ambiguity about intent.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear when-not conditions: skills managed by Orchestra cannot be deleted, and the tool is refused under API-key auth, running only for OAuth sessions. It doesn't name alternative tools for those blocked cases, keeping it short of the top band.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

diagnoseDiagnose Task RunA
Read-only

Deep dive on one failed task run: its status and messages, taskParameters and runParameters, the statuses of the upstream tasks it depends on, the tail of its newest log, and its artifact filenames. Task runs are queryable for 7 days only. Over-long parameter values, the log tail and the artifact list are capped, and the response says which parts were cut. Use download_task_run_log or download_task_run_artifact when the tail is not enough.

NameRequiredDescriptionDefault
account_idNoAct on this account rather than the one the credential resolves to. Omit it to use the credential's own account. An API key is issued to a single account, so it may only name that account; an OAuth token may name any account its grant covers.
task_run_idYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnlyHint annotation, it discloses a retention limit (7 days), truncation caps on parameter values, log tail and artifact list, and — importantly — that the response self-reports which parts were cut. That is a strong, agent-relevant behavioral disclosure that annotations do not provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose, then payload contents, then retention/truncation caveats, then a fallback pointer. Every clause carries information; no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present the description needn't enumerate return structure, yet it still summarizes what comes back, notes retention limits, truncation behavior, and alternative tools. Nothing an agent needs to call or interpret this correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Two parameters at 50% schema coverage. account_id is fully documented in the schema (including API-key vs OAuth scoping), and task_run_id is self-evident from its name, but the description adds nothing about either parameter. Baseline 3 for schema-heavy coverage is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Deep dive on one failed task run') and then enumerates the exact payload — status/messages, taskParameters, runParameters, upstream task statuses, log tail, artifact filenames. This clearly separates it from list_task_runs and get_pipeline_run_status.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly routes to the alternatives ('Use download_task_run_log or download_task_run_artifact when the tail is not enough') and states the eligibility window ('queryable for 7 days only'). When-to-use and when-not-to-use are both present.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

download_task_run_artifactDownload Task Run ArtifactA
Read-only

Download a task run artifact file, returned base64-encoded. Artifacts such as a dbt manifest.json are often tens of MB. At most 3MiB of file content is returned per call; fetch larger files in chunks by passing range_header (e.g. 'bytes=0-3145727') and advancing the range each call.

NameRequiredDescriptionDefault
filenameYes
account_idNoAct on this account rather than the one the credential resolves to. Omit it to use the credential's own account. An API key is issued to a single account, so it may only name that account; an OAuth token may name any account its grant covers.
task_run_idYes
range_headerNo
pipeline_run_idYes

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only supply readOnlyHint=true; the description adds the genuinely non-obvious operational facts: the response is base64-encoded, capped at 3MiB per call, and larger files must be paginated with advancing byte ranges. That is exactly the kind of behavior an agent would otherwise get wrong.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences, front-loaded with purpose then the size constraint and the chunking recipe. No filler and nothing buried.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description correctly supplies the return format and size limit, which is what an agent needs to consume the result. Missing is any hint that filenames come from list_task_run_artifacts and any statement of behavior once the range exceeds the file length.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 20% (account_id is the sole documented param), so the description has to carry weight: it explains range_header's format and gives a concrete example. The three required identifiers (pipeline_run_id, task_run_id, filename) get no explanation, though their names are largely self-describing, so this partially compensates rather than fully.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Download) and resource (task run artifact file) and adds the return encoding (base64), which cleanly separates it from the sibling download_task_run_log without the agent needing to open a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear conditional guidance for range_header: use chunks when the file exceeds 3MiB, with a concrete example range value. It does not, however, point at list_task_run_artifacts as the way to discover valid filenames, so the entry path is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

download_task_run_logDownload Task Run LogA
Read-only

Download a task run log file, returned base64-encoded. At most 3MiB of file content is returned per call; fetch larger files in chunks by passing range_header (e.g. 'bytes=0-3145727') and advancing the range each call.

NameRequiredDescriptionDefault
filenameYes
account_idNoAct on this account rather than the one the credential resolves to. Omit it to use the credential's own account. An API key is issued to a single account, so it may only name that account; an OAuth token may name any account its grant covers.
task_run_idYes
range_headerNo
pipeline_run_idYes

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

readOnlyHint already marks this as a safe read, and the description adds meaningful behavior beyond that: base64 encoding of the payload and a hard 3MiB per-call content cap with a chunking workaround. It does not state whether the log must exist or what happens on an out-of-range request, but the disclosure is well above the annotations alone.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences: the core action plus return format first, then the size constraint and chunking mechanic. No filler, and the most decision-relevant constraint (3MiB cap) is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only download with no output schema, the description covers encoding, size limits, and paging, which is what an agent needs to call it correctly. The gap is provenance of the three required IDs and the distinction from the artifact/log-listing siblings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 20% (just account_id documented), so the description carries real burden and it does explain range_header semantics and syntax with the byte-range example. It says nothing about filename, task_run_id, or pipeline_run_id (three required IDs), leaving those entirely to inference.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Download a task run log file') plus the return encoding ('base64-encoded'), which is a genuine fact the agent needs. It does not, however, distinguish itself from near-neighbor siblings like download_task_run_artifact or list_task_run_logs, so the agent must infer the boundary.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives real operational guidance for the chunking case (3MiB ceiling, advance range_header each call with a concrete example), which is implied usage for large files. It offers no when-to-use guidance relative to list_task_run_logs or download_task_run_artifact, so the routing decision is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_agentGet an agentA
Read-only

Get an agent with its prompts and settings. Secrets are returned masked. Returns 404 if the agent does not exist in the workspace the credential resolves to.

NameRequiredDescriptionDefault
agent_idYesThe id of the agent.
X-Orchestra-Account-IdNoAct on this account rather than the one the credential resolves to. Omit it to use the credential's own account. An API key is issued to a single account, so it may only name that account; an OAuth token may name any account its grant covers.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare readOnlyHint=true; the description adds genuinely useful behavior the annotations don't cover: secrets are returned masked, and a 404 is returned when the agent is absent from the credential's workspace. It doesn't mention rate limits or the shape of the returned prompts/settings, but this is above the annotation baseline.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the core action and followed by masking and error semantics. Every sentence carries distinct information with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Return values are covered by the output schema, and the description adds the masking caveat and the 404 condition, which are the main things an agent needs before calling. Only the lack of alternative-tool routing keeps it from a 5.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, including a detailed explanation of the optional X-Orchestra-Account-Id header and its account-targeting semantics, so the schema carries parameters entirely. The description adds no parameter-level meaning, making the baseline 3 correct.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Get an agent') and adds scope detail ('with its prompts and settings'), which separates it from list_agents. It does not explicitly name a sibling to distinguish from, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied: fetch a single agent by id when you already have the id. There is no explicit when/when-not guidance or routing to alternatives such as list_agents for discovery or get_agent_session for session data.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_agent_sessionGet an agent sessionA
Read-only

Get an agent session by ID. Returns 404 for a session the caller cannot see, and 403 for one whose agent the caller cannot view. A session started by a user in the Orchestra UI is visible to that user alone, so an API key never sees one. Sessions started for a task run or an incident are visible to everyone in the workspace who can view the agent.

NameRequiredDescriptionDefault
session_idYesAgent session ID.
X-Orchestra-Account-IdNoAct on this account rather than the one the credential resolves to. Omit it to use the credential's own account. An API key is issued to a single account, so it may only name that account; an OAuth token may name any account its grant covers.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond readOnlyHint=true, the description discloses concrete failure semantics (404 for invisible sessions, 403 for an unviewable agent) and the full visibility model — UI-started sessions are private to the user and invisible to API keys, while task-run and incident sessions are workspace-visible. That is meaningful behavioral context the annotations cannot carry.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded in the first clause, and the subsequent sentences about 404/403 and visibility each carry distinct information. Slightly long for a simple fetch, but no sentence is redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation, and the description covers the error and permission model an agent needs to interpret failures. What remains unstated — whether the caller should prefer list_agent_sessions for discovery — is minor for a get-by-ID tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so session_id and the X-Orchestra-Account-Id header are already documented, including the account/credential scoping rule. The description adds no parameter-level detail beyond the schema, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Get an agent session by ID'), so the operation is unambiguous. It does not, however, distinguish itself from siblings like list_agent_sessions, get_agent_session_history_messages, or create_agent_session beyond the singular 'by ID' framing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied rather than stated: the caller learns it needs a session ID and that visibility depends on how the session was started, but no alternative tool is named and no explicit when-to-use/when-not guidance is given. The visibility paragraph does function as de facto guidance about when the call will succeed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_agent_session_history_messagesRead an agent session's messagesA
Read-only

Read a page of an agent session's messages, a whole number of complete turns at a time, oldest first. Pass exactly one of before_sequence_id or after_sequence_id. Every message carries a sequenceId of the form <unix-milliseconds>-<counter>, and sequence IDs order as strings. So before_sequence_id set to the current time in milliseconds reads the latest turns, and after_sequence_id=0 reads from the start of the session. Page back with nextBeforeSequenceId while hasPreviousPage is true, and forward with nextAfterSequenceId while hasNextPage is true. A turn still in progress is left out until it completes. Returns 404 for a session the caller cannot see, and 403 for one whose agent the caller cannot view. A session started by a user in the Orchestra UI is visible to that user alone, so an API key never sees one. Sessions started for a task run or an incident are visible to everyone in the workspace who can view the agent.

NameRequiredDescriptionDefault
session_idYesAgent session ID.
turn_limitNoNumber of turns per page. Defaults to 3; maximum 10.
after_sequence_idNoReturn the turns that start after this sequence ID, i.e. page forward in time. Cannot be combined with `before_sequence_id`.
before_sequence_idNoReturn the turns that end before this sequence ID, i.e. page back in time. Cannot be combined with `after_sequence_id`.
X-Orchestra-Account-IdNoAct on this account rather than the one the credential resolves to. Omit it to use the credential's own account. An API key is issued to a single account, so it may only name that account; an OAuth token may name any account its grant covers.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only supply readOnlyHint=true, but the description adds real behavioral context: an in-progress turn is omitted until it completes, 404/403 error semantics, and detailed visibility rules (UI-started sessions are private to the user, so API keys never see them; task-run/incident sessions are workspace-wide). This goes well beyond what annotations provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the purpose, then pagination mechanics, then error/visibility behavior. It is dense but every sentence carries actionable information; no filler, though the pagination walkthrough is long enough to border on verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be spelled out, and the description covers the remaining gaps: pagination direction, cursor construction, incomplete-turn handling, and full authorization/visibility semantics. Nothing an agent needs to call this correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds genuine interpretation not in the schema: sequence IDs are '<unix-ms>-<counter>' and order as strings, which explains why before_sequence_id=current-time reads the newest turns and after_sequence_id=0 starts at the beginning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'Read a page of an agent session's messages', plus the scope (whole complete turns, oldest first). It is unambiguous what the tool returns, though it never names or contrasts a sibling tool (e.g. get_agent_session, list_agent_sessions) to anchor its place in the family.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit operating guidance: pass exactly one of before/after_sequence_id, set before_sequence_id to the current time in ms to read the latest turns, use after_sequence_id=0 to read from the start, and page with nextBeforeSequenceId/nextAfterSequenceId gated on hasPreviousPage/hasNextPage. This is effectively a usage manual for the tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_agent_usageGet agent token usageA
Read-only

Retrieve the input and output tokens spent by agent sessions in the account, summed across every agent and LLM connection, as totals for the period and in consecutive time buckets. A session counts towards the bucket it was created in.

Requires permission to view account settings.

NameRequiredDescriptionDefault
time_toNoEnd of the period as an ISO 8601 datetime with a UTC offset, for example `2026-10-01T00:00:00Z`.
time_fromNoStart of the period as an ISO 8601 datetime with a UTC offset, for example `2026-09-01T00:00:00Z`.
bucket_sizeNoLength of each time bucket in minutes. Defaults to 1440 (one day); minimum 15, maximum 527040 (366 days).
X-Orchestra-Account-IdNoAct on this account rather than the one the credential resolves to. Omit it to use the credential's own account. An API key is issued to a single account, so it may only name that account; an OAuth token may name any account its grant covers.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so safety is covered; the description adds genuinely non-obvious behavior — that a session counts toward the bucket it was created in (aggregation rule), the permission prerequisite, and the request period limits. It omits pagination, rate limits, or whether results are cached/eventually consistent, so it is useful but not exhaustive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the core purpose in one strong sentence, then a scoped Note block for time-window behavior. It is a bit long and the Note partially restates the schema's own time_from/time_to and bucket_size descriptions, which dilutes efficiency slightly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return shape need not be spelled out, and the description still covers aggregation semantics, account scope, permissions, and period limits. An agent has everything needed to call it correctly with no defaults left ambiguous.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, and every parameter is already documented in the schema. The description adds real meaning beyond it by explaining the paired semantics of time_from/time_to (when only one is given the window is 30 days after/before it) and the consecutive-bucket nature of the output, which the schema does not convey.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a precise verb and resource: retrieve input/output tokens spent by agent sessions in the account, summed across every agent and LLM connection, as totals plus time buckets. This is clearly distinguishable from siblings like list_agent_sessions or get_agent, which cover session inventory rather than usage aggregates.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear context for invocation: times are optional, omit both for the last 30 days, one-only yields a 30-day window, max 366 days, and it requires permission to view account settings. It does not, however, name an alternative tool or state when not to use this one, so it stops short of full when/when-not routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_asset_by_idGet an assetB
Read-only

Retrieve a single asset by Orchestra asset ID or external ID.

NameRequiredDescriptionDefault
asset_idYesOrchestra asset ID or external ID.
X-Orchestra-Account-IdNoAct on this account rather than the one the credential resolves to. Omit it to use the credential's own account. An API key is issued to a single account, so it may only name that account; an OAuth token may name any account its grant covers.

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds nothing beyond that: no statement about not-found behavior, whether external IDs are resolved against a specific integration, or any rate/scope constraint. With annotations carrying the burden, this is thin.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler; every clause carries information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need no explanation, and readOnlyHint covers safety. For a simple lookup tool this is largely sufficient, missing only error/not-found semantics that an agent might want before calling.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the account-scoping header is thoroughly documented in the schema itself. The description's mention of 'Orchestra asset ID or external ID' merely restates the asset_id schema description, adding no syntax or format detail. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (retrieve) and resource (a single asset), plus the two identifier forms accepted. The word 'single' implicitly distinguishes it from the sibling list_assets, though no sibling is named explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied: call it when you already have an asset ID. There is no explicit statement of when to prefer this over list_assets or what happens if the ID is unknown, so guidance is only inferable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_environmentGet an environmentA
Read-only

Fetch a single environment by its ID, including its variable values.

NameRequiredDescriptionDefault
environment_idYes
X-Orchestra-Account-IdNoAct on this account rather than the one the credential resolves to. Omit it to use the credential's own account. An API key is issued to a single account, so it may only name that account; an OAuth token may name any account its grant covers.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, and the description goes beyond them by disclosing that variable values are included in the response — meaningful for a tool that may expose secrets/config. It stops short of noting authorization or account-scoping behavior, but adds real value over the annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with zero filler; the resource, identifier, and notable payload detail are all packed in without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need no explanation, and the read-only nature is covered by annotations. The description mentions variable values and the lookup key, which is sufficient for a simple single-fetch tool; only account-scoping nuance is left to the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 50%: the X-Orchestra-Account-Id header is fully documented in the schema, but environment_id carries only a uuid4 format with no description. The phrase 'by its ID' confirms environment_id's role but adds no format or lookup detail beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Fetch) and resource (a single environment) scoped by ID, which implicitly distinguishes it from list_environments. It is clear but never names the sibling it differs from, so an agent must infer the distinction itself.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'By its ID' implies the precondition that an environment_id must be known, which is usable guidance, but there is no explicit when-to-use, when-not-to-use, or reference to list_environments for discovery. Usage is implied rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_incidentGet an incidentA
Read-only

Fetch a single incident, with its merge relationships, summary counts and related resources.

NameRequiredDescriptionDefault
incident_idYesIncident ID.
X-Orchestra-Account-IdNoAct on this account rather than the one the credential resolves to. Omit it to use the credential's own account. An API key is issued to a single account, so it may only name that account; an OAuth token may name any account its grant covers.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the safe-read profile is covered. The description adds that the response eagerly includes merge relationships and related resources, which hints at payload weight, but it says nothing about authorization scope, mutation, or errors beyond what structured data provides.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler; the resource and the notable contents of the response come first. Every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and annotations covering the safety profile, the description need not explain return values, and it doesn't over-reach. It is nearly complete for a simple by-ID getter, losing a point only for the absence of any when-to-use framing relative to the large set of incident siblings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and both parameters (incident_id, X-Orchestra-Account-Id) are documented in the schema itself, including the account-scoping rules. The description adds no parameter meaning beyond that, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('Fetch a single incident') and adds the shape of the payload (merge relationships, summary counts, related resources). The word 'single' implicitly distinguishes it from list_incidents, but it does not explicitly name or contrast any sibling tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: an agent can infer this is the by-ID lookup for one incident versus list_incidents. There is no explicit statement of when to reach for this tool, no prerequisites, and no routing away from merge_incidents, list_incident_events, or update_incident.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_incident_external_eventGet an external event's payloadA
Read-only

Fetch the raw JSON an external system sent for one row of an incident's timeline - a row whose hasExternalEvent is true. Returns 410 once the payload has expired.

NameRequiredDescriptionDefault
incident_idYesIncident ID.
incident_event_idYesTimeline row ID.
X-Orchestra-Account-IdNoAct on this account rather than the one the credential resolves to. Omit it to use the credential's own account. An API key is issued to a single account, so it may only name that account; an OAuth token may name any account its grant covers.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already establishes this as a safe read, so the description's burden is lighter; it still adds real value by disclosing that the payload can expire and then returns 410. It says nothing about permission requirements or payload size, but the expiry disclosure is a meaningful trait not present in the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero filler, with the resource and its scoping constraint front-loaded and the error behavior appended. Every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-shape detail is unnecessary; the description covers purpose, the precondition for a valid call, and the notable failure mode. For a single-row read with a fully documented schema and annotations, nothing material is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds semantics for incident_event_id by narrowing it to rows where hasExternalEvent is true, which the schema's terse 'Timeline row ID.' does not convey. The account-override parameter is left to the schema, which documents it thoroughly.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb (fetch) and resource (the raw JSON an external system sent) scoped to exactly one row of an incident timeline, and adds the discriminator 'a row whose hasExternalEvent is true'. This lets an agent distinguish it from list_incident_events or get_incident without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives a concrete pre-condition for use (the timeline row must have hasExternalEvent true) and states the failure case (410 after expiry), which is clear operational context. It does not, however, name an alternative tool or say what to do when the row lacks an external event, so it stops short of explicit when-not guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_incident_settingsGet incident settingsA
Read-only

Get the workspace's incident settings: whether incidents are on, which failures can raise one, and how incidents alert. A workspace that has never saved its settings gets the defaults.

NameRequiredDescriptionDefault
X-Orchestra-Account-IdNoAct on this account rather than the one the credential resolves to. Omit it to use the credential's own account. An API key is issued to a single account, so it may only name that account; an OAuth token may name any account its grant covers.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds genuine behavioral value beyond that: a workspace that has never saved settings receives defaults rather than an error or null, which tells the agent it can always expect a usable response. It does not discuss permissions or response shape, but the annotation already covers read-only semantics.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences with zero waste; the content enumeration is front-loaded and the defaults caveat follows naturally. Every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so the description need not explain return values, yet it helpfully summarizes the settings categories. Combined with the readOnlyHint annotation and full parameter coverage, the definition is essentially complete; only explicit usage routing is absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the single parameter (X-Orchestra-Account-Id) is fully documented in the schema, including its anyOf/null handling and API-key vs OAuth constraints. The description adds nothing about parameters, so the baseline 3 is correct when the schema does all the work.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb+resource (get the workspace's incident settings) and enumerates exactly what those settings cover: whether incidents are on, which failures raise one, and how they alert. This distinguishes it from siblings like get_incident (a single incident) and update_incident_settings (the mutation counterpart).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the read-only nature of the tool, but there is no explicit when-to-use guidance, no mention of update_incident_settings as the write alternative, and no stated prerequisites. The 'never saved gets the defaults' note is behavioral rather than routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_integrationGet an integrationA
Read-only

Fetch a single integration by its identifier, including its auth and job schemas. Each auth_schema item's name is a connection field, and format: password marks a secret one.

NameRequiredDescriptionDefault
integrationYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

readOnlyHint=true already covers the safety profile, and the description adds genuinely useful context about the returned payload: auth and job schemas are included, and it explains how to interpret auth_schema entries (name = connection field, format: password = secret). It doesn't mention auth requirements or rate limits, but the return-shape interpretation is real added value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences with the core purpose front-loaded and the payload-interpretation tip following immediately. Every sentence earns its place, with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be documented, yet the description still supplies helpful interpretation of auth_schema fields. For a simple single-parameter read tool this is nearly complete; only explicit sibling routing is absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% for the single enum parameter, but the enum values are self-explanatory identifiers. The description only says 'by its identifier' without adding format, casing, or matching rules, so it adds little beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Fetch a single integration by its identifier') and uses 'single' to implicitly separate it from the listing siblings. It does not name a specific sibling to differentiate from, so it falls just short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: the agent can infer this is the tool for retrieving one integration's details rather than a list. There is no explicit when-to-use or when-not-to-use guidance relative to siblings like get_integration_connection or list_integration_connections.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_integration_connectionGet an integration connectionB
Read-only

Fetch a single integration connection in the workspace the credential resolves to, including its auth parameters. Secret auth parameters are obfuscated in the response.

NameRequiredDescriptionDefault
integrationYes
connection_idYes
X-Orchestra-Account-IdNoAct on this account rather than the one the credential resolves to. Omit it to use the credential's own account. An API key is issued to a single account, so it may only name that account; an OAuth token may name any account its grant covers.

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With readOnlyHint=true already covering the safety profile, the description adds genuinely new behavior: the response includes auth parameters, and secret auth parameters are obfuscated. It also discloses the workspace/credential scoping rule, which is not derivable from annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences with no filler; the scope (which connection, which workspace) leads, and the obfuscation caveat follows. Both sentences carry information an agent needs.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-shape detail is unnecessary, and readOnlyHint covers safety. The description handles scoping and the secret-obfuscation caveat well; only error/not-found behavior for a bad connection_id is left unstated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 33% (just X-Orchestra-Account-Id), so the description is expected to compensate for 'integration' and 'connection_id' and does not. It touches account/workspace resolution only tangentially via 'the workspace the credential resolves to', leaving the two required parameters undocumented beyond their names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Fetch') plus resource ('a single integration connection') and scopes it to the credential's workspace. The word 'single' implicitly contrasts with list_integration_connections, but no sibling is named explicitly, so the differentiation is inferred rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description says what it does but never says when to reach for it over list_integration_connections (e.g., when you already hold a connection_id) or how to obtain a valid connection_id. There are no exclusions, prerequisites, or alternative-routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_integration_state_for_state_awareGet integration stateB
Read-only

Fetch the stored state for the given integration in the workspace the credential resolves to.

NameRequiredDescriptionDefault
integrationYes
X-Orchestra-Account-IdNoAct on this account rather than the one the credential resolves to. Omit it to use the credential's own account. An API key is issued to a single account, so it may only name that account; an OAuth token may name any account its grant covers.

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds the useful scoping detail that the workspace is derived from the credential, but says nothing about what 'state' contains, error behavior, or the state-aware concept implied by the tool name.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single tight sentence with the resource and scope front-loaded and no filler. It is efficient, though a clause clarifying 'state' vs 'connection' would have earned its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and readOnlyHint covers safety. Still, the core ambiguity of what 'stored state' means relative to the neighboring integration tools is left unresolved for a tool whose name implies a state-aware special case.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 50%: the integration enum is self-documenting via its value list, and X-Orchestra-Account-Id carries a rich schema description. The description adds no parameter detail beyond echoing the credential/workspace resolution, so it neither compensates for nor extends the schema meaningfully.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (fetch) and resource (stored state for a given integration), scoped to a workspace. It is understandable on its own, but it never distinguishes itself from siblings like get_integration or get_integration_connection, leaving the boundary between 'state', 'connection', and 'integration' unclear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to use this tool versus get_integration or list_integration_connections, no prerequisites, and no exclusions. Usage is only implied by the description's mention of 'stored state'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_monitorGet a monitorC
Read-only

Fetch a single monitor's definition.

NameRequiredDescriptionDefault
monitor_idYesMonitor ID.
X-Orchestra-Account-IdNoAct on this account rather than the one the credential resolves to. Omit it to use the credential's own account. An API key is issued to a single account, so it may only name that account; an OAuth token may name any account its grant covers.

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the safety profile is covered. Beyond that the description adds almost nothing: it doesn't say whether it errors when the monitor is missing, whether the result is cached, or what 'definition' excludes (e.g. runtime status).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single short, front-loaded sentence with no padding — efficient and easy to scan. It is arguably too terse for what it omits, but as a structure it wastes nothing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be explained, and the annotations plus full schema coverage carry most of the load. Still, for a lookup tool it says nothing about failure behavior or account-scoping implications beyond what the schema already states.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with monitor_id and the X-Orchestra-Account-Id scoping/credential semantics fully documented in the schema itself. The description adds no additional parameter meaning, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (fetch) and resource (a monitor's definition), and the word 'single' implicitly distinguishes it from the sibling list_monitors. It does not, however, name or explicitly contrast with any sibling tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance and no explicit alternative is named; the agent must infer from 'single' that list_monitors is the bulk counterpart. There are no prerequisites, exclusions, or conditions stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_pipelineGet a pipeline by selectorA
Read-only

Fetch a single pipeline. Provide exactly one selector: pipeline_id, alias, or repository together with yaml_path.

NameRequiredDescriptionDefault
aliasNoPipeline alias selector.
branchNoPipeline branch selector (used for git-backed pipeline YAML).
commitNoPipeline commit selector (used for git-backed pipeline YAML).
versionNoPipeline version selector (used for versioned pipeline YAML).
yaml_pathNoPipeline YAML path selector. Must be provided together with `repository`.
repositoryNoRepository selector. Must be provided together with `yaml_path`.
pipeline_idNoPipeline ID selector.
X-Orchestra-Account-IdNoAct on this account rather than the one the credential resolves to. Omit it to use the credential's own account. An API key is issued to a single account, so it may only name that account; an OAuth token may name any account its grant covers.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

readOnlyHint=true already covers the safety profile, so the bar is lower, and the description contributes the mutually-exclusive selector constraint that the empty required list does not enforce. It still omits what happens when zero or conflicting selectors are supplied, and whether branch/commit/version can be combined, so it is not fully transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences with the purpose front-loaded and no filler. The second sentence partly repeats parameter names already visible in the schema, which keeps it from being maximally economical.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need no explanation, annotations cover read-only safety, and the schema fully documents parameters; the description adds the missing selector-exclusivity rule. It could still note the failure mode for an invalid selector set or point to the sibling used for data/runs retrieval.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and each selector parameter is documented in the schema, including the repository/yaml_path pairing. The description restates the selector list and adds the exactly-one rule, but supplies no format or semantics beyond what the schema already carries, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

"Fetch a single pipeline" gives a specific verb and resource, and "single" implicitly contrasts with the sibling list_pipelines. It does not, however, distinguish itself from get_pipeline_data or pipeline_context, which an agent would have to disambiguate on its own.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description states the invocation rule (provide exactly one selector) and enumerates the valid selector combinations, which is real usage guidance. It gives no when-to-use vs when-not-to-use guidance relative to siblings like get_pipeline_data or list_pipelines, leaving selection inferred.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_pipeline_dataGet pipeline dataA
Read-only

Fetch the full pipeline definition for a pipeline selected by pipeline_id or alias. Optionally specify a version, branch, or commit to load a specific revision.

NameRequiredDescriptionDefault
aliasNoPipeline alias selector.
branchNoPipeline branch selector (used for git-backed pipeline YAML).
commitNoPipeline commit selector (used for git-backed pipeline YAML).
versionNoPipeline version selector (used for versioned pipeline YAML).
yaml_pathNoPipeline YAML path selector. Must be provided together with `repository`.
repositoryNoRepository selector. Must be provided together with `yaml_path`.
pipeline_idNoPipeline ID selector.
X-Orchestra-Account-IdNoAct on this account rather than the one the credential resolves to. Omit it to use the credential's own account. An API key is issued to a single account, so it may only name that account; an OAuth token may name any account its grant covers.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

readOnlyHint=true already declares this a safe read. The description adds that it returns the full definition and can pin to a specific revision, which is useful, but it says nothing about the git-backed vs versioned YAML distinction or the account-scoping behavior that the schema only hints at. Adequate but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences with the primary selector front-loaded and the optional revision path second. No filler, though the second sentence compresses several distinct selector types into one clause.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need not be explained, and the schema fully documents the parameters. The description is complete for the core flow, with only minor gaps around the yaml_path/repository pair and account-override semantics, which the schema already covers.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all eight selectors. The description repeats the primary ones (pipeline_id, alias, version, branch, commit) without adding format or mutual-exclusion rules, and omits yaml_path/repository pairing entirely. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Fetch the full pipeline definition') and clarifies that selection is by pipeline_id or alias, with optional revision selectors. It partially distinguishes itself from siblings like get_pipeline by emphasizing the full definition plus revision loading, though it never names those siblings explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explains how to select a pipeline and that version/branch/commit load a specific revision, which implies usage. But it gives no guidance on when to prefer this over get_pipeline, list_pipelines, or pipeline_context, and no prerequisites or exclusions are stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_pipeline_run_lineage_urlGet Pipeline Run Lineage URLA
Read-only

Build the URL of a pipeline run's lineage graph in the Orchestra UI.

NameRequiredDescriptionDefault
pipeline_run_idYes

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the description does not need to re-establish safety. It adds that the output is a lineage graph URL, but it does not disclose details like whether the pipeline run must exist or how the URL is formatted. With annotations in place, this is acceptable but minimal.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, direct sentence with no filler. It front-loads the action and target, and every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a low-complexity, single-parameter, read-only tool with an output schema available. The description covers the core purpose sufficiently. The only notable gap is not explaining the provenance or format of pipeline_run_id, but the output schema and annotation coverage compensate for most of what an agent needs.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries responsibility for explaining the single parameter, pipeline_run_id. It does not mention where the ID comes from, what format it expects, or how it is used. The parameter name is self-explanatory, but the description still adds no parameter-level meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb, 'Build', and a clear target, 'the URL of a pipeline run's lineage graph in the Orchestra UI.' This distinguishes it from sibling tools that retrieve statuses, logs, or artifacts, since none of them construct a UI URL.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no explicit guidance about when to use this tool versus alternatives like pipeline_context or get_pipeline_run_status. The intended use is implied, but there are no exclusions, prerequisites, or alternative tool mentions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_pipeline_run_statusGet pipeline run statusB
Read-only

Retrieve status details for a single pipeline run.

NameRequiredDescriptionDefault
pipeline_run_idYesPipeline run ID.
X-Orchestra-Account-IdNoAct on this account rather than the one the credential resolves to. Omit it to use the credential's own account. An API key is issued to a single account, so it may only name that account; an OAuth token may name any account its grant covers.

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, and the description adds no behavioral context beyond that — no mention of what happens if the run ID is unknown, retention windows, or polling semantics. For a trivially safe read tool the annotations carry the safety profile, but the description contributes essentially nothing new.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence that states the purpose up front with no filler; the only extra element is a documentation link, which is cheap and potentially useful. Nothing needs trimming.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described, and both parameters are covered by the schema with annotations covering the safety profile. What is missing is error/edge-case behavior (unknown run ID, permission failure) and how this relates to adjacent per-run tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with pipeline_run_id (uuid4) and X-Orchestra-Account-Id both fully documented in the schema, including the multi-account rules. The description adds no parameter meaning beyond the schema, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb (Retrieve) and a specific resource (status details for a single pipeline run), and the word 'single' implicitly separates it from list_pipeline_runs. It does not, however, differentiate against other per-run siblings such as get_pipeline_run_lineage_url or list_task_runs_for_pipeline_run.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use guidance, no prerequisites (e.g., the run must be complete vs. in-flight), and no exclusions or named alternatives. The only hint is the word 'single', which an agent must infer means 'use this instead of list_pipeline_runs'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_skillGet a skillA
Read-only

Fetch a single skill, including its full markdown.

NameRequiredDescriptionDefault
skill_idYesThe id of the skill.
X-Orchestra-Account-IdNoAct on this account rather than the one the credential resolves to. Omit it to use the credential's own account. An API key is issued to a single account, so it may only name that account; an OAuth token may name any account its grant covers.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint=true annotation already establishes this is a safe read. The description adds the useful detail that the response includes the full markdown body (as opposed to a summary), but says nothing about auth scoping, error behavior, or how it differs from sibling reads beyond content depth.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence that carries the verb, resource, and the one distinguishing payload detail. Nothing is padded or redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple single-record read with 100% schema coverage, an output schema, and a readOnly annotation, the description covers what is needed. It could be richer only by routing to sibling read tools, which is a minor gap for such a simple operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with skill_id and X-Orchestra-Account-Id fully documented in the schema, so the baseline is 3. The description adds no parameter-level meaning beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Fetch a single skill') and adds the notable scope detail that the full `markdown` is included. The word 'single' implicitly distinguishes it from list_skills, though no sibling is named explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: an agent can infer this is for retrieving one skill when it has a skill_id. There is no explicit statement of when to use this versus list_skills or the agent-scoped list_agent_skills, and no exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

import_pipelineImport a pipelineC

Import a Git-backed pipeline definition from a repository into Orchestra.

NameRequiredDescriptionDefault
aliasNo
yamlPathYes
repositoryYes
defaultBranchYes
workingBranchNo
storageProviderYes
X-Orchestra-Account-IdNoAct on this account rather than the one the credential resolves to. Omit it to use the credential's own account. An API key is issued to a single account, so it may only name that account; an OAuth token may name any account its grant covers.

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish readOnlyHint=false and destructiveHint=false, so the mutation nature is known. The description adds that the source is Git-backed, but says nothing about whether an existing pipeline is overwritten, what happens on conflict, which credential/account is required, or whether the import is synchronous.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single tight sentence with the operation front-loaded and no filler. Nothing in it is wasted, though the terseness is also the source of the gaps elsewhere.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, but for a 7-parameter mutation tool with 14% schema coverage the description is far too thin. It omits conflict/overwrite behavior, auth context, and the meaning of nearly all parameters.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 14% (just X-Orchestra-Account-Id), leaving six parameters undocumented. The description only implies the 'repository' parameter via the phrase 'from a repository' and explains none of yamlPath, defaultBranch, workingBranch, storageProvider, or alias.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Import) and resource (a Git-backed pipeline definition) with a clear source (a repository) and destination (Orchestra). It does not, however, differentiate itself from close siblings such as create_pipeline, migrate_pipeline, or validate_pipeline, which an agent must choose between.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description says nothing about when to import rather than create or migrate a pipeline, and gives no prerequisites (e.g. repository access, credential setup). Usage must be inferred entirely from the name and the sibling list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

import_skillImport a skill from gitA

Import a skill from a markdown file in the workspace's connected git repository, with the same frontmatter as a created skill. Skills imported from git are read-only: edit the file in the connected repository instead. Returns 422 if no git provider is connected, 404 if the file is not on the branch.

NameRequiredDescriptionDefault
pathYes
repositoryYes
defaultBranchYes
X-Orchestra-Account-IdNoAct on this account rather than the one the credential resolves to. Omit it to use the credential's own account. An API key is issued to a single account, so it may only name that account; an OAuth token may name any account its grant covers.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only supply readOnlyHint=false and destructiveHint=false, so the description carries real weight. It discloses the post-import immutability constraint ('read-only: edit the file in the connected repository instead') and specific failure codes (422 no git provider, 404 file not on branch), both genuinely useful beyond structured data. It does not contradict the write annotation, since the write is the import itself, not the skill's later mutability.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences: action + source first, then the read-only consequence, then error conditions. Nothing is padding and each sentence carries distinct information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need no explanation, and the description covers the source location, the immutability constraint, and the two most likely failure modes. The residual gap is parameter format detail for path/repository/defaultBranch, which the schema does not supply either.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 25% — the one documented field (X-Orchestra-Account-Id) is fully explained in the schema, while path, repository, and defaultBranch have no descriptions. The prose loosely implies path is a markdown file location and defaultBranch identifies a branch, but adds no format guidance (relative vs absolute path, repo slug vs URL), so it only partially compensates for the gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (import) plus resource (skill) and names the exact source: a markdown file in the workspace's connected git repository. It also implicitly differentiates from create_skill by noting the imported skill carries the same frontmatter as a created one, so an agent can tell the two paths apart.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear operating context: this is the right tool when the skill already lives as a markdown file in the connected git repo, and it explicitly redirects edits to the repository file rather than the tool. It does not compare against create_skill/list_skills alternatives, nor state prerequisites beyond the implicit git connection (which surfaces only as a 422 error code).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_accountsList workspacesA
Read-only

Lists the workspaces this credential can act on. An API key is issued to one workspace, so it lists that workspace alone. An OAuth token lists the workspaces chosen when access was granted, limited to those its user is still a member of.

Pass a returned id to select the workspace on calls that act within one (the X-Orchestra-Account-Id header in the API).

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare readOnlyHint, so the description usefully adds that an API key yields exactly one workspace while an OAuth token yields the granted workspaces still matching the user's membership. It also names the downstream header mechanism (X-Orchestra-Account-Id), which is real behavioral context beyond the annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short paragraphs, scoping behavior front-loaded ahead of the downstream usage note. Every sentence carries information and none is redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value structure needn't be re-explained. Combined with the annotation and the credential-dependent scope plus follow-up usage guidance, an agent has everything needed to call and use this tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero input parameters, so the baseline is 4. The description adds meaningful semantic context by clarifying that a returned id is the selector used on workspace-scoped calls, tying the output back to how it is consumed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('Lists the workspaces this credential can act on') and precisely distinguishes how the result set varies by credential type (API key vs OAuth). No sibling tool lists accounts, and the scope is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explains the when and why clearly through the credential-type behavior and tells the agent what to do with the result ('Pass a returned id to select the workspace...'). There is no explicit comparison to an alternative, though no analogous sibling exists to route away from.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_agent_avatarsList agent avatarsA
Read-only

List the avatars an agent can use: Orchestra's stock avatars and those uploaded to the workspace the credential resolves to. Pass an entry's path as avatar_path when creating or updating an agent. url is a short-lived link to the image, and is omitted for an uploaded avatar that is still being scanned for malware.

NameRequiredDescriptionDefault
X-Orchestra-Account-IdNoAct on this account rather than the one the credential resolves to. Omit it to use the credential's own account. An API key is issued to a single account, so it may only name that account; an OAuth token may name any account its grant covers.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

readOnlyHint=true already tells the agent this is a safe read, and the description adds genuine behavioral detail beyond that: `url` is a short-lived link and is omitted for an uploaded avatar still being scanned for malware. This explains a field that may be unexpectedly absent, which annotations cannot convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences with no filler, front-loading what is listed before covering how to use `path` and the caveat about `url`. Every sentence carries distinct information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be fully spelled out, and the one optional parameter is schema-documented. The description covers the non-obvious gaps (scope, how to reuse `path`, transient `url`), making it sufficient to call the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single parameter (X-Orchestra-Account-Id) is fully documented in the schema; the description says nothing about it. Baseline 3 applies since the schema does the heavy lifting, though the description does clarify the semantics of returned `path`/`url` fields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('List the avatars an agent can use') and immediately narrows scope to two sources: Orchestra's stock avatars and workspace-uploaded ones. No sibling tool in the list deals with avatars, so the agent can place it unambiguously.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives actionable downstream context: 'Pass an entry's `path` as `avatar_path` when creating or updating an agent,' which ties it to create_agent/update_agent workflows. It stops short of explicit when-not-to-use guidance or naming an alternative, but the usage context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_agent_integrationsList an agent's integrationsA
Read-only

List the integration connections an agent can use. Each integration is a connection key of the form <INTEGRATION>_<connection id>, e.g. SNOWFLAKE_my_connection. Returns 404 if the agent does not exist in the workspace the credential resolves to.

NameRequiredDescriptionDefault
pageNoThe page to return, starting at 1.
agent_idYesThe id of the agent.
page_sizeNoResults per page, from 1 to 100.
X-Orchestra-Account-IdNoAct on this account rather than the one the credential resolves to. Omit it to use the credential's own account. An API key is issued to a single account, so it may only name that account; an OAuth token may name any account its grant covers.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

readOnlyHint already establishes the safe-read profile, so the description's value is in the extra detail it supplies: the exact shape of the returned integration key (`<INTEGRATION>_<connection id>`) and the 404 error condition when the agent is absent from the credential's workspace. That is meaningful context beyond the annotations, though nothing is said about pagination or empty results.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences with the core purpose front-loaded and the return-format detail immediately after. No filler or restatement of the title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and read-only annotations covering the safety profile, the description supplies what's missing: key format and the 404 case. Complete enough to call correctly, though it could note paging behavior for large integration lists.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents all four parameters including paging and the account header. The description only tangentially adds meaning by tying the lookup to the workspace the credential resolves to, which mildly reinforces the account-scoping semantics of X-Orchestra-Account-Id.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: listing the integration connections a given agent can use. The "an agent can use" qualifier distinguishes it from the sibling list_integration_connections, but the description never explicitly names that alternative, so a reader must infer the boundary.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance and no named alternatives. The agent is left to guess whether this or list_integration_connections / set_agent_integrations is the right call in a given situation. The 404 note is a behavior, not usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_agentsList agentsA
Read-only

List the agents in the workspace the credential resolves to, including those managed by Orchestra, filtered to the agents the caller may view. Prompts and secrets are not included; get an agent by id for those.

NameRequiredDescriptionDefault
pageNoThe page to return, starting at 1.
searchNoOnly return agents whose name or description contains this text, ignoring case.
page_sizeNoResults per page, from 1 to 100.
orchestra_managedNo`true` returns only agents managed by Orchestra, `false` only the workspace's own. Omit it to return both.
X-Orchestra-Account-IdNoAct on this account rather than the one the credential resolves to. Omit it to use the credential's own account. An API key is issued to a single account, so it may only name that account; an OAuth token may name any account its grant covers.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare readOnlyHint=true; the description adds real context beyond that: results are permission-filtered to what the caller may view, Orchestra-managed agents are included by default, and prompts/secrets are deliberately omitted. It doesn't discuss pagination or result ordering, which is a mild gap for a list tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two compact sentences with no filler; the scope constraint (credential's workspace, visibility filter) is front-loaded and the exclusion/redirect follows immediately.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be explained, and the description covers scope, filtering, and omissions well. The only missing element is paging behavior for a paginated listing, though the schema documents page/page_size adequately.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and every parameter (including the X-Orchestra-Account-Id account override) is already documented in the schema. The description gestures at the orchestra_managed concept ('including those managed by Orchestra') but adds no syntax or format detail beyond the schema, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (list agents) plus precise scope: the workspace the credential resolves to, including Orchestra-managed agents, filtered by caller visibility. It also distinguishes itself from get_agent by naming what that sibling is needed for (prompts and secrets), so an agent can route without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Clear context for when to use this tool and an explicit redirect: 'get an agent by id for those' (prompts/secrets). It also implicitly scopes to viewable agents. It stops short of stating when-not-to-use cases such as preferring list_agent_* sub-resources, so it is strong but not exhaustive.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_agent_sessionsList agent sessionsA
Read-only

List the agent sessions in the workspace the credential resolves to that the caller can see, most recently updated first. A session started by a user in the Orchestra UI is visible to that user alone, so an API key never sees one. Sessions started for a task run or an incident are visible to everyone in the workspace who can view the agent.

NameRequiredDescriptionDefault
qNoOnly return sessions whose name, or whose agent's name, contains this text. Case-insensitive.
pageNoPage number. Must be greater than or equal to 1.
statusNoOnly return sessions in these statuses. Repeat the parameter to match any of several, e.g. `?status=BUSY&status=IDLE`. One of `BUSY`, `EXPIRED`, `FAILED`, `IDLE`, `INITIALISING`, `PENDING`, `STARTUP_ERROR`.
archivedNoReturn only archived sessions instead of only unarchived ones. Defaults to false.
agent_idsNoOnly return sessions of these agents. Repeat the parameter to match any of several, e.g. `?agent_ids=<id>&agent_ids=<id>`.
page_sizeNoNumber of items per page. Defaults to 50; maximum 100.
session_modeNoOnly return sessions started in these modes. Repeat the parameter to match any of several. One of `USER`, `TASK_RUN`, `INCIDENT`.
X-Orchestra-Account-IdNoAct on this account rather than the one the credential resolves to. Omit it to use the credential's own account. An API key is issued to a single account, so it may only name that account; an OAuth token may name any account its grant covers.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes beyond readOnlyHint by explaining the visibility model: user-started sessions are private to the user, API keys never see them, and task-run/incident sessions are workspace-visible. This is valuable behavioral context. Lacks details on pagination, default limits, or response shape, but those are partly covered by schema and output schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two clear sentences that front-load the core action and scope, then explain visibility. Efficient, no wasted words, though the visibility explanation could be slightly more compact.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the essential visibility constraints, which are crucial for an agent to correctly interpret results. With a rich schema and output schema handling parameters and return values, the description is nearly complete for a list tool. Minor gaps remain around pagination defaults, but those are schema-documented.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema documents all 8 parameters thoroughly. The description adds no param-specific info like syntax or format details, which is fine given the baseline of 3 when schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('List the agent sessions'), specifies the scope (the workspace the credential resolves to), and the ordering (most recently updated first). It's clearly distinguishable from siblings like get_agent_session or create_agent_session.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description doesn't explicitly state when to use this tool vs alternatives like get_agent_session (singular) or list_agents. The visibility rules imply usage context, but there is no direct when/when-not guidance or named alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_agent_skillsList an agent's skillsA
Read-only

List the skills attached to an agent, with each skill's name and description. Returns 404 if the agent does not exist in the workspace the credential resolves to.

NameRequiredDescriptionDefault
pageNoThe page to return, starting at 1.
agent_idYesThe id of the agent.
page_sizeNoResults per page, from 1 to 100.
X-Orchestra-Account-IdNoAct on this account rather than the one the credential resolves to. Omit it to use the credential's own account. An API key is issued to a single account, so it may only name that account; an OAuth token may name any account its grant covers.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

readOnlyHint=true already covers the safety profile, so the description's added value is the disclosed failure mode (404 when the agent is absent from the credential's workspace) and the shape of each returned item (name and description). That is useful behavioral context beyond the annotations, though pagination behavior is left unaddressed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no filler: the capability and its returned fields come first, and the error condition second. Every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need no elaboration, and the description still covers scope and the 404 failure mode. The one omission is any mention of pagination semantics for a list endpoint that supports paging, though the schema covers the parameters themselves.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so page, page_size, agent_id and X-Orchestra-Account-Id are all fully documented in the schema. The description adds only an oblique reference to credential/workspace resolution, which is already spelled out on the account-id parameter, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('List the skills attached to an agent') and even names the payload fields, which distinguishes it from the global list_skills and the mutating set_agent_skills. It never names those siblings explicitly, but the scoping to an agent is clear from the wording.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the read use case (fetch an agent's attached skills) and flags the 404 condition for a missing agent, but it gives no explicit when-to-use vs. when-not guidance and does not point to list_skills or set_agent_skills as alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_assetsList assetsB
Read-only

Retrieve a paginated list of assets for the workspace the credential resolves to.

Assets can be filtered by type, integration, integration account, workspace, database, schema, status, or asset ID. By default, results are sorted by created_in_integration in descending order.

NameRequiredDescriptionDefault
pageNoPage number. Must be greater than or equal to 1.
statusNoFilter by status. Comma-separated values are supported where the parameter accepts multiple values.
asset_idsNoFilter by asset IDs. Provide comma-separated UUIDs for multiple values.
page_sizeNoNumber of items per page. Defaults to 50; maximum 100.
asset_typeNoFilter by asset type. Comma-separated values are supported.
integrationNoIntegration identifier.
schema_nameNoFilter by schema name.
sort_columnNoColumn used to sort assets.created_in_integration
workspace_idNoFilter by integration workspace ID.
database_nameNoFilter by database name.
sort_directionNoSort direction.desc
X-Orchestra-Account-IdNoAct on this account rather than the one the credential resolves to. Omit it to use the credential's own account. An API key is issued to a single account, so it may only name that account; an OAuth token may name any account its grant covers.
integration_account_idNoFilter by the account identifier in the integration.

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already declares this is a safe read, so the description's remaining job is add-on context. It usefully contributes pagination behavior and the default sort column/direction, but says nothing about the cross-account X-Orchestra-Account-Id override or result limits, which it could have surfaced.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences: purpose and scope first, then filter dimensions, then default ordering. Every clause carries information and nothing is padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be described, and the read-only annotation covers the safety profile. The description covers scope, filters, and sorting, leaving only the account-override header unmentioned, which is a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents every filter. The description only summarizes the filter categories and the default sort, adding no syntax or format detail beyond what the schema provides. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Retrieve a paginated list of assets') plus the scope ('for the workspace the credential resolves to'). It is clearly distinct from get_asset_by_id by virtue of being a list operation, but no sibling is named explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description enumerates the filterable dimensions and the default sort but gives no when-to-use guidance, no when-not-to-use, and never points to get_asset_by_id for single-asset retrieval. An agent must infer the intended context from the name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_audit_eventsList audit eventsA
Read-only

List the audit trail for the workspace the credential resolves to, newest first: who did what, to which resource, and what changed.

occurred_after is required and sets how far back the trail is read; every other filter narrows within that window.

NameRequiredDescriptionDefault
pageNoPage number. Must be greater than or equal to 1.
actionNoFilter by action. Comma-separated values are supported. One of: ACCOUNT_CREATED, ACCOUNT_DELETED, ACCOUNT_SETTINGS_UPDATED, ACCOUNT_UPDATED, AGENT_CREATED, AGENT_DELETED, AGENT_SESSION_DELETED, AGENT_SESSION_UPDATED, AGENT_UPDATED, API_KEY_ROTATED, ASSET_CREATED, ASSET_DELETED, ASSET_DEPENDENCIES_CR...
actor_idNoOnly events performed by this actor, matched on the recorded actor id.
page_sizeNoNumber of items per page. Defaults to 25; maximum 100.
resource_idNoOnly events on this resource, by its id or YAML name.
resource_typeNoFilter by the type of resource acted on. Comma-separated values are supported. One of: ACCOUNT, AGENT, AGENT_SESSION, API_KEY, ASSET, ENVIRONMENT, GIT_CONNECTION, GROUP, INCIDENT, INTEGRATION_CONNECTION, INTEGRATION_STATE, INVITE, IP_RESTRICTIONS, MONITOR, ORGANISATION, PIPELINE, PIPELINE_RUN, PRODU...
occurred_afterYesOnly events at or after this time, as an ISO 8601 timestamp (e.g. 2026-09-01T00:00:00Z). Required.
occurred_beforeNoOnly events at or before this time, as an ISO 8601 timestamp.
X-Orchestra-Account-IdNoAct on this account rather than the one the credential resolves to. Omit it to use the credential's own account. An API key is issued to a single account, so it may only name that account; an OAuth token may name any account its grant covers.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the safety profile is covered; the description adds real behavioral context on top: results are newest-first, the scope is the credential's workspace, and occurred_after bounds the entire read window. It stops short of describing pagination behavior or the cross-account header's effect, but those are covered elsewhere.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences with zero filler, front-loaded with the resource and scope, then the single most important calling constraint. Every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only, paginated list tool with 100% schema coverage, an output schema, and readOnlyHint annotations, this is nearly complete. The remaining gaps (pagination interaction with the window, cross-account scoping nuance) are documented in the schema rather than the description, which is acceptable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3, but the description adds relational meaning the schema cannot convey: occurred_after defines the read window rather than just another predicate, and every other filter is subordinate to it. That is meaningful semantics beyond the per-field text.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb (List) plus resource (audit trail) plus scope (the workspace the credential resolves to), and it enumerates the semantic content of a record ('who did what, to which resource, and what changed'). This clearly separates it from adjacent read tools like list_incident_events or list_operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states the operational constraint that occurred_after is required and that all other filters narrow within that window, which is genuine usage guidance. However, it never says when to reach for this tool versus a sibling such as list_incident_events, nor does it describe limits or exclusions beyond the required window.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_environmentsList environmentsA
Read-only

List the environments for the workspace the credential resolves to. Returns environment metadata only — fetch a single environment by ID to retrieve its variable values.

NameRequiredDescriptionDefault
X-Orchestra-Account-IdNoAct on this account rather than the one the credential resolves to. Omit it to use the credential's own account. An API key is issued to a single account, so it may only name that account; an OAuth token may name any account its grant covers.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds genuinely useful context beyond that: what is returned (metadata only) and what is deliberately excluded (variable values), which is a real behavioral boundary an agent would otherwise discover only from a failed follow-up call.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with zero filler, and the scope limitation is front-loaded before the pointer to the sibling tool. Every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no prose explanation, and the single parameter is fully covered by the schema. For a simple read-only list tool, nothing an agent needs in order to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the single optional parameter is fully documented in the schema itself, including the account-key vs OAuth-token semantics. The description adds nothing about the X-Orchestra-Account-Id override, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('List') and resource ('environments') plus the scoping constraint ('for the workspace the credential resolves to'), which separates it from unqualified list tools. The second sentence explicitly contrasts it with the get_environment sibling, so an agent can route between the two without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description tells the agent when to use this tool rather than get_environment: list for metadata, fetch by ID for variable values. It does not state exclusions (e.g., pagination limits or when listing is inappropriate), so it stops short of explicit when-not guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_incident_eventsList an incident's timelineA
Read-only

Fetch the timeline for a single incident, newest first. Paginated from the start - a grouped incident accumulates one event per attached failure, so the history runs to hundreds of rows well before anyone triages it.

NameRequiredDescriptionDefault
pageNoPage number. Must be greater than or equal to 1.
page_sizeNoNumber of items per page. Defaults to 25; maximum 100.
incident_idYesIncident ID.
X-Orchestra-Account-IdNoAct on this account rather than the one the credential resolves to. Omit it to use the credential's own account. An API key is issued to a single account, so it may only name that account; an OAuth token may name any account its grant covers.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare readOnlyHint=true; the description goes further by disclosing the sort order, that pagination starts from the beginning, and a genuinely useful scale warning that grouped incidents accumulate one event per attached failure and can reach hundreds of rows. That volume context is exactly what annotations cannot convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the core action and ordering. The second sentence is longer than strictly needed but earns its place by warning about row volume before an agent commits to fetching.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained. Combined with full schema coverage, the description supplies scope, ordering, pagination behavior, and volume context, leaving little an agent would need that isn't covered.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and all four parameters are documented in the schema itself, so the baseline is 3. The description's mention of pagination and newest-first ordering adds only marginal semantic value beyond the documented page/page_size fields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Fetch the timeline for a single incident') plus the ordering ('newest first'), so an agent can tell it apart from get_incident and list_incidents. It doesn't explicitly name a sibling it is not, which keeps it short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied (inspect a single incident's history chronologically), but there is no explicit when-to-use versus get_incident or list_incidents, and no prerequisites or exclusions. Adequate but leaves routing to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_incidentsList incidentsA
Read-only

List incidents for the workspace the credential resolves to, most severe first, with merged children nested under their parent.

Filters apply to top-level incidents only - a child is always returned alongside its parent, so a filtered list still shows the full incident rather than part of one. Use name to filter incidents by a case-insensitive substring match on the incident name. Use sort_column and sort_direction to sort top-level incidents by a single column instead; merged children keep the default order.

NameRequiredDescriptionDefault
nameNoFilter by a case-insensitive substring match on the incident name.
pageNoPage number. Must be greater than or equal to 1.
statusNoFilter by status. Comma-separated values are supported.
severityNoFilter by severity. Comma-separated values are supported.
page_sizeNoNumber of items per page. Defaults to 10; maximum 100.
sort_columnNoColumn used to sort incidents. Defaults to open, most severe first.
sort_directionNoSort direction. Ignored unless `sort_column` is set.desc
include_archivedNoInclude archived incidents. Defaults to false.
X-Orchestra-Account-IdNoAct on this account rather than the one the credential resolves to. Omit it to use the credential's own account. An API key is issued to a single account, so it may only name that account; an OAuth token may name any account its grant covers.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare readOnlyHint=true, so the description carries the rest. It adds real behavioral context: default ordering by severity, nested merged children, and the key invariant that a child is always returned alongside its parent so a filtered list still shows complete incidents. That invariant is the kind of non-obvious trait an agent could not infer from the schema alone.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the core behavior (what is returned and in what order) in the first sentence, then devotes precisely-scoped sentences to filter and sort semantics. No redundant restatement of name/schema fields; every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With a full-coverage input schema, an output schema, and readOnly annotations, the description only needs to supply the semantics the structured fields can't express (ordering, nesting, filter scope), and it does so. Nothing an agent needs to invoke it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3; the description goes beyond it by describing the interaction between `sort_column`/`sort_direction` (single column, children keep default order) and the scoping of filters to top-level incidents. It doesn't restate `page`, `page_size`, `status`, `severity`, or the account header, which the schema already documents.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource (list incidents) plus meaningful scope details: the credential's workspace, most-severe-first ordering, and merged children nested under parents. This distinguishes it from get_incident (single incident) and list_incident_events without needing to open a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly explains how to drive the tool: use `name` for substring filtering, and `sort_column`/`sort_direction` to sort by a single column instead. It also clarifies that filters apply to top-level incidents only. It does not name sibling alternatives (e.g. get_incident) or state when not to use it, keeping it short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_integration_connectionsList integration connectionsA
Read-only

List the integration connections configured for the workspace the credential resolves to. Returns connection metadata only — secret auth parameters are never included in the response. Optionally filter by integration or authStatus.

NameRequiredDescriptionDefault
authStatusNo
integrationNo
X-Orchestra-Account-IdNoAct on this account rather than the one the credential resolves to. Omit it to use the credential's own account. An API key is issued to a single account, so it may only name that account; an OAuth token may name any account its grant covers.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

readOnlyHint=true already tells the agent this is a safe read. The description adds genuinely useful context beyond the annotation: that only connection metadata is returned and secret auth parameters are never included, which matters for a tool exposing connection data. It stops short of describing pagination or result volume.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences: scope first, then the security-relevant return note, then filters. Nothing is redundant and the most important constraint is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return shape needn't be explained, and the description covers scope, filtering, and the key caveat about secret parameters. The only gap is guidance on result size/pagination and sibling selection, which is minor for a straightforward list operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 33%, so only X-Orchestra-Account-Id is documented structurally. The description compensates partially by identifying `integration` and `authStatus` as optional filters, but adds no meaning about their allowed values or filter semantics beyond what the enum lists already convey.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('List the integration connections') scoped to the workspace the credential resolves to. The verb 'list' clearly separates it from the get/create/update/delete_integration_connection siblings, though it does not name them explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description notes the tool is scoped to the credential's workspace and supports optional filtering, which implies when to reach for it. However it never states when to prefer get_integration_connection (single item) or how it differs from list_agent_integrations, leaving the agent to infer the boundary.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_monitorsList monitorsB
Read-only

List the workspace's monitors in evaluation order. Where two monitors claim the same event, the one with the lower order wins.

NameRequiredDescriptionDefault
X-Orchestra-Account-IdNoAct on this account rather than the one the credential resolves to. Omit it to use the credential's own account. An API key is issued to a single account, so it may only name that account; an OAuth token may name any account its grant covers.

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already establishes this is a safe read. The description adds genuinely useful behavior the annotation cannot convey: precedence when monitors claim the same event (lower `order` wins). It does not cover pagination or ordering guarantees beyond that, but the output schema exists to describe returns.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences with the primary purpose front-loaded and the tie-break rule following immediately. No filler or restatement of the title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Annotations cover the safety profile and an output schema exists, so the description needn't explain returns. The evaluation-order/tie-break rule is the key semantic an agent needs for this list tool; only filtering or pagination behavior is left unstated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There is one optional parameter (X-Orchestra-Account-Id) with 100% schema description coverage, so the schema fully documents account selection semantics. The description adds nothing about it, which is the correct baseline when the schema carries the load.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (list) and resource (monitors), plus the meaningful detail that results come in evaluation order. It reads clearly against siblings like get_monitor and reorder_monitors, though it never names them explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use guidance, no exclusions, and no mention of the related siblings (get_monitor, reorder_monitors, update_monitor) that an agent might confuse with this call. Usage is only implied by the verb 'list'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_operationsList operationsA
Read-only

Retrieve a paginated list of task operations for the workspace the credential resolves to.

From 2026-10-01 the default changed from the last 7 days to the last 24 hours. Pass time_from and time_to explicitly to control the window.

Use operation filters to narrow results by operation type, integration, external ID, operation status, or task run ID.

NameRequiredDescriptionDefault
pageNoPage number. Must be greater than or equal to 1.
statusNoFilter by status.
time_toNoEnd of the time window as an ISO 8601 datetime.
page_sizeNoNumber of items per page. Defaults to 50; maximum 100.
time_fromNoStart of the time window as an ISO 8601 datetime.
external_idNoExternal system identifier to filter by.
integrationNoIntegration identifier.
task_run_idNoTask run ID.
operation_typeNoFilter by operation type. Comma-separated values are supported.
X-Orchestra-Account-IdNoAct on this account rather than the one the credential resolves to. Omit it to use the credential's own account. An API key is issued to a single account, so it may only name that account; an OAuth token may name any account its grant covers.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the safety profile is covered. The description does add genuinely useful behavior beyond annotations: the default 24-hour window, the 7-day maximum range per request, the 2023-01-01 floor on time_from, and the 2026-10-01 default change. It does not mention pagination limits or rate limiting, but with annotations carrying safety the added time-window semantics are solid context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The note block is front-loaded with the operation purpose first, then the temporal constraints, then the filter guidance. Every sentence carries real information, though the migration note about the 2026-10-01 default change is slightly redundant with the preceding default-window sentence.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation, and the description covers the subtle temporal windowing rules thoroughly for a 10-parameter list tool. The one gap is the absence of any routing signal relative to the many list_* siblings, which matters given how crowded this tool namespace is.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3, and the description exceeds it by supplying semantics the schema's one-line descriptions lack: the default window when time_from/time_to are omitted, the 7-day cap, the earliest allowable time_from, and confirmation that comma-separated operation_type values are filterable. This meaningfully enriches the two temporal parameters that otherwise look identical in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Retrieve a paginated list of task operations') plus the scoping boundary ('the workspace the credential resolves to'). It does not, however, distinguish this tool from closely named siblings like list_task_runs or list_task_run_artifacts, leaving the agent to infer how 'operations' relate to 'task runs'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains how to narrow results ('Use operation filters to narrow results by operation type, integration, external ID, operation status, or task run ID') and fully details the time-window rules, but it never says when to choose this tool over alternatives such as list_task_runs or list_task_run_logs. Usage is implied rather than routed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_pipeline_runsList Pipeline RunsB
Read-only

List pipeline runs with optional filters. status accepts comma-separated values: CREATED, QUEUED, RUNNING, SUCCEEDED, WARNING, FAILED, SKIPPED, CANCELLING, CANCELLED.

NameRequiredDescriptionDefault
pageNoPage number. Must be greater than or equal to 1.
statusNoFilter by status. Comma-separated values are supported where the parameter accepts multiple values. Valid values: QUEUED, CREATED, RUNNING, SUCCEEDED, WARNING, FAILED, SKIPPED, CANCELLING, CANCELLED.
time_toNoEnd of the time window as an ISO 8601 datetime.
page_sizeNoNumber of items per page. Defaults to 50; maximum 100.
time_fromNoStart of the time window as an ISO 8601 datetime.
environmentsNoFilter by environment IDs. Provide comma-separated UUIDs for multiple values.
pipeline_idsNoFilter by pipeline IDs. Provide comma-separated UUIDs for multiple values.
pipeline_run_idsNoFilter by pipeline run IDs. Provide comma-separated UUIDs for multiple values.
X-Orchestra-Account-IdNoAct on this account rather than the one the credential resolves to. Omit it to use the credential's own account. An API key is issued to a single account, so it may only name that account; an OAuth token may name any account its grant covers.

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

readOnlyHint=true already tells the agent this is a safe read. The description adds the accepted status vocabulary, which is genuinely useful context, but says nothing about pagination behavior, result ordering, or default time-window scoping — details an agent listing runs would want.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences with the core purpose front-loaded and the enum list trailing where it belongs. Slightly redundant with the schema's own enum listing, which is its only real waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present to cover return values, 100% schema coverage on all nine parameters, and annotations covering the safety profile, the description supplies everything else an agent needs to invoke this correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every parameter including page, page_size, time windows, and the account-id header is already documented in the schema. The description's status enumeration largely restates what the schema's status description already provides, adding no new syntax or semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('List pipeline runs') plus the presence of optional filters, so the agent knows exactly what the tool returns. It does not, however, distinguish itself from near-neighbors like list_task_runs, list_task_runs_for_pipeline_run, or get_pipeline_run_status.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'with optional filters' implies a context but never states when to use this tool versus the sibling run-listing or status tools. No when-not conditions, prerequisites, or alternatives are given, so routing must be inferred from the name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_pipelinesList pipelinesA
Read-only

List pipelines for the workspace the credential resolves to.

Always pass page and page_size to receive a paginated response with page, page_size, total, and results fields, sorted by pipeline name. Use name to filter pipelines by a case-insensitive substring match on the pipeline name.

NameRequiredDescriptionDefault
nameNoFilter by a case-insensitive substring match on the pipeline name.
pageNoPage number. Must be greater than or equal to 1.
page_sizeNoNumber of items per page. Defaults to 50; maximum 100.
X-Orchestra-Account-IdNoAct on this account rather than the one the credential resolves to. Omit it to use the credential's own account. An API key is issued to a single account, so it may only name that account; an OAuth token may name any account its grant covers.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds real behavioral context beyond that: passing page/page_size changes the response shape (paginated envelope with page, page_size, total, results), results are sorted by pipeline name, and name matching is case-insensitive substring. That is meaningful disclosure of how the call behaves.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the scope statement followed by the two operational tips. Little waste, though the pagination-field enumeration slightly overlaps with the output schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be re-explained; the description still adds the sorting and paging-shape behavior, which is enough for an agent to call it correctly. Nothing critical is missing, though an explicit pointer away from get_pipeline would round it out.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every parameter including the account-id header is already documented in the schema. The description largely restates schema content (case-insensitive substring, pagination fields) with no extra syntax, defaults, or interaction notes, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (list pipelines) and adds a scope qualifier: the workspace the credential resolves to. It does not explicitly distinguish itself from siblings like get_pipeline or list_pipeline_runs, but the workspace/credential scoping is concrete enough for an agent to recognize it as the enumeration entry point.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives prescriptive guidance on how to call the tool ('Always pass page and page_size') and how to narrow results with `name`, which is useful operational context. However, it never says when to choose this over alternatives such as get_pipeline for a single pipeline, so the when/when-not dimension is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_skillsList skillsA
Read-only

List the skills available in the workspace the credential resolves to, including those managed by Orchestra. Each skill's markdown is omitted; fetch a single skill to read it.

NameRequiredDescriptionDefault
pageNoThe page to return, starting at 1.
searchNoOnly return skills whose name or description contains this text.
page_sizeNoResults per page, from 1 to 100.
sync_statusNoOnly return git-backed skills in these sync states, as a comma-separated list of OK, ERROR, DISCONNECTED.
orchestra_managedNoOnly return skills managed by Orchestra (`true`) or not (`false`).
X-Orchestra-Account-IdNoAct on this account rather than the one the credential resolves to. Omit it to use the credential's own account. An API key is issued to a single account, so it may only name that account; an OAuth token may name any account its grant covers.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With readOnlyHint=true already declaring the safety profile, the description adds real behavioral context beyond annotations: that `markdown` is intentionally stripped from results and that Orchestra-managed skills are included in the set. It does not discuss pagination behavior or result ordering, but those are largely covered by the output schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, both load-bearing: the first establishes scope and contents, the second prevents a wrong expectation about the response body. Nothing is redundant and the scope statement is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, 100% parameter coverage, and readOnlyHint covering safety, the description only needs to add what structured fields cannot: the workspace scope, the Orchestra-managed inclusion, and the omitted `markdown` field. All three are present, leaving nothing essential missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every one of the six parameters (page, search, page_size, sync_status, orchestra_managed, X-Orchestra-Account-Id) is already documented in the schema, including the account-scoping nuances. The description adds no parameter-level detail, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (List) and resource (skills) plus an explicit scope: the workspace the credential resolves to, including Orchestra-managed skills. It also differentiates itself from the single-item sibling by pointing to "fetch a single skill to read it" (get_skill), so an agent can tell the two apart without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear context for when this tool applies (browsing skills in the workspace) and names the alternative path for reading content ("fetch a single skill to read it"). It stops short of explicit when-not guidance or disambiguation against list_agent_skills, which is the closest potential confusion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_task_run_artifactsList task run artifactsA
Read-only

List artifacts linked to a task run, such as dbt manifest.json, run_results.json, catalog.json, semantic_manifest.json, and sources.json files. For dbt v2, dbt docs generate produces index.html, assets.zip, and info_schema.zip instead of catalog.json.

NameRequiredDescriptionDefault
task_run_idYesTask run ID.
pipeline_run_idYesPipeline run ID.
X-Orchestra-Account-IdNoAct on this account rather than the one the credential resolves to. Omit it to use the credential's own account. An API key is issued to a single account, so it may only name that account; an OAuth token may name any account its grant covers.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so safety is covered. The description adds useful context on what artifact types come back and the dbt-v2 variant set, but says nothing about pagination, sorting, empty results, or auth behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the enumeration purpose, with no filler. The second sentence about dbt v2 is a slight tangent but still relevant to interpreting results.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the tool is a simple parameterized list. The description covers what the tool returns and its variant behavior, leaving only minor gaps like pagination.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so task_run_id, pipeline_run_id, and the account header are fully documented in the schema itself. The description adds no syntax, format, or constraint detail beyond what the schema provides, making the baseline 3 appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('List') and resource ('artifacts linked to a task run'), then enumerates concrete artifact examples (manifest.json, run_results.json, catalog.json). An agent can distinguish this enumeration tool from the sibling download_task_run_artifact without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Timing is implied by the name and the artifact listing, but the description never states when to use this versus download_task_run_artifact or when artifacts are unavailable. Usage is inferable but no explicit alternative or exclusion is named.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_task_run_logsList task run logsA
Read-only

List log files linked to a task run. Use the returned filenames with the download endpoint.

NameRequiredDescriptionDefault
task_run_idYesTask run ID.
pipeline_run_idYesPipeline run ID.
X-Orchestra-Account-IdNoAct on this account rather than the one the credential resolves to. Omit it to use the credential's own account. An API key is issued to a single account, so it may only name that account; an OAuth token may name any account its grant covers.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds a small amount of behavioral value by disclosing that the result is a set of filenames rather than log content, but it says nothing about pagination, filtering, ordering, or behavior when a run has no logs. Adequate but thin against the annotation baseline.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, zero filler, with the core action front-loaded and the follow-up workflow hint second. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value explanation is not required, and the description covers the purpose plus the next step in the workflow. It is close to complete for a simple read-only list tool, with only minor gaps (no mention of empty results or ordering).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so task_run_id, pipeline_run_id, and the account-override header are already fully documented in the schema. The description adds no parameter-level meaning beyond what the schema provides, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('List log files linked to a task run'), which is enough to distinguish it from the neighboring list_task_run_artifacts tool. It does not explicitly name that sibling, but the 'log files' scoping is clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The second sentence gives actionable chaining guidance: the returned filenames are meant to be fed to the download endpoint (download_task_run_log). It gives clear context for what to do with the result, though it does not state when this tool should be preferred over siblings or any prerequisites/exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_task_runsList task runsA
Read-only

Retrieve a paginated list of task runs for the workspace the credential resolves to.

From 2026-10-01 the default changed from the last 7 days to the last 24 hours. Pass time_from and time_to explicitly to control the window.

Filter by multiple statuses, integrations, pipeline IDs, or task run IDs using comma-separated values. For example, status=SUCCEEDED,FAILED&integration=HTTP,SNOWFLAKE returns task runs matching either status and either integration.

NameRequiredDescriptionDefault
pageNoPage number. Must be greater than or equal to 1.
statusNoFilter by status. Comma-separated values are supported where the parameter accepts multiple values.
time_toNoEnd of the time window as an ISO 8601 datetime.
page_sizeNoNumber of items per page. Defaults to 50; maximum 100.
time_fromNoStart of the time window as an ISO 8601 datetime.
integrationNoIntegration identifier.
pipeline_idsNoFilter by pipeline IDs. Provide comma-separated UUIDs for multiple values.
task_run_idsNoFilter by task run IDs. Provide comma-separated UUIDs for multiple values.
include_supersededNoInclude superseded task runs, which are the earlier attempts of a task that was retried. Set to false to return only the latest attempt of each task.
X-Orchestra-Account-IdNoAct on this account rather than the one the credential resolves to. Omit it to use the credential's own account. An API key is issued to a single account, so it may only name that account; an OAuth token may name any account its grant covers.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true, so safety profile is clear. The description adds non-obvious operational context beyond the schema: the 24-hour default window, the 7-day max range, the 2023-01-01 floor, and especially the 2026-10-01 default change from 7 days to 24 hours. These are the kind of behavioral traits an agent can't derive from structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose and scope, then a clearly delineated Note for time-window rules and a final example of multi-value filtering. Well-structured; slightly long, but each block carries distinct information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given an output schema exists (so return shape need not be explained) and annotations cover the read-only safety profile, the description fills the remaining gaps: default time window, historical default change, max range, and multi-value filter syntax. An agent has enough to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is already 100%, and the schema documents page_size, include_superseded, time bounds, and ID filters fully. The description adds the comma-separated multi-value semantics for status and integration (useful, since the schema only says 'where the parameter accepts multiple values'), but otherwise mostly restates schema-defined behavior. Baseline 3 is appropriate given the schema already carries the load.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('retrieve a paginated list of task runs') and scopes it to the workspace the credential resolves to. It does not explicitly contrast itself with the sibling 'list_task_runs_for_pipeline_run', so a reader must infer the distinction from context.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly explains when default behavior applies (last 24 hours if no time range is given), the 7-day maximum window when both bounds are set, and the explicit recommendation to pass time_from/time_to to control the window. It does not, however, name when to use this tool instead of the pipeline-run-scoped variant.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_task_runs_for_pipeline_runList task runs for a pipeline runA
Read-only

Retrieve task runs belonging to a single pipeline run. This endpoint uses page_size default 10 and maximum 50.

NameRequiredDescriptionDefault
pageNoPage number. Must be greater than or equal to 1.
page_sizeNoNumber of items per page. Defaults to 10; maximum 50.
pipeline_run_idYesPipeline run ID.
include_supersededNoInclude superseded task runs, which are the earlier attempts of a task that was retried. Set to false to return only the latest attempt of each task.
X-Orchestra-Account-IdNoAct on this account rather than the one the credential resolves to. Omit it to use the credential's own account. An API key is issued to a single account, so it may only name that account; an OAuth token may name any account its grant covers.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already establishes this is a safe read, lowering the disclosure burden. The description's pagination statement (default 10, max 50) largely repeats the page_size schema description rather than adding new behavioral context like ordering or total-count semantics.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences with the core purpose front-loaded and no filler. The second sentence is somewhat redundant with the schema's page_size description, slightly diminishing its value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema covering return shape, read-only annotations, and full parameter documentation, the definition is complete enough to call the tool correctly. It only lacks sibling routing guidance for choosing between this and list_task_runs.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all five parameters, including the non-obvious include_superseded flag and the X-Orchestra-Account-Id header, are already documented in the schema. The description only echoes page_size defaults, adding nothing beyond structured fields, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Retrieve) and resource (task runs) scoped to 'a single pipeline run', which separates it by scope from the sibling list_task_runs. It stops short of naming an alternative explicitly, so it is clear but not maximally differentiating.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'belonging to a single pipeline run' implies when this tool applies versus a broad listing, but there is no explicit when-to-use, when-not-to-use, or named alternative such as list_task_runs. Usage is inferable rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

merge_incidentsMerge incidentsA

Merge the incidents named in the request body into the incident in the path. Merging is one level deep - merging an incident that already has a parent, or naming one that has incidents merged into it, is rejected rather than nesting further.

NameRequiredDescriptionDefault
incidentIdsYes
incident_idYesIncident ID to merge the named incidents into.
X-Orchestra-Account-IdNoAct on this account rather than the one the credential resolves to. Omit it to use the credential's own account. An API key is issued to a single account, so it may only name that account; an OAuth token may name any account its grant covers.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false and destructiveHint=false, so the safety profile is covered. The description adds genuinely useful behavior beyond that: merging is one level deep and certain merges are rejected rather than nested. It stops short of noting that the operation is reversible via unmerge, which would matter for a mutation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the core action and followed by the nesting constraint. No filler, though the second sentence is somewhat dense.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the description covers the tricky semantic (non-nesting merge) plus the account fallback is documented in the schema. The only real gap is the absence of any pointer to unmerge_incidents as the inverse/recovery path.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 67%: incident_id and X-Orchestra-Account-Id carry descriptions, while incidentIds does not. The description frames the array as 'the incidents named in the request body,' implying plurality, but adds no format/count details (e.g., the max of 5) beyond the schema. Baseline 3 fits since the schema does most of the work.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb+resource ('merge the incidents ... into the incident in the path') and clarifies the source/target roles, so the agent can tell it apart from update_incident or list_incidents. However, it never names the most confusable sibling, unmerge_incidents, which would have sharpened the distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states the operational constraint (one-level-deep merging; rejections for nesting) but gives no explicit guidance on when to prefer this over sibling operations such as unmerge_incidents or update_incident. Usage is implied by the merge semantics rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

migrate_pipelineUpdate pipeline storage settingsB

Migrate an Orchestra-backed pipeline to git-backed storage. Identify it with pipeline_id or alias, and omit working_branch when it equals default_branch.

NameRequiredDescriptionDefault
pathYes
aliasNoPipeline alias selector.
repositoryYes
pipeline_idNoPipeline ID selector.
defaultBranchYes
workingBranchNo
storageProviderYes
X-Orchestra-Account-IdNoAct on this account rather than the one the credential resolves to. Omit it to use the credential's own account. An API key is issued to a single account, so it may only name that account; an OAuth token may name any account its grant covers.

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only tell the agent readOnlyHint=false and destructiveHint=false. The description adds no behavioral context beyond the intent: it does not say whether the migration is reversible, whether the pipeline is unavailable while migrating, what happens to existing content, or what permissions/credentials are needed for the target repository.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences with the core action front-loaded and the parameter exceptions trailing. No filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the annotations cover the safety profile. However, for an 8-parameter mutation with only 38% schema coverage, the description omits prerequisites, credential requirements for the target repository, and the effect of the migration.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is low (38%), so the description needs to compensate. It clarifies the selector parameters (pipeline_id/alias) and one non-obvious rule for working_branch vs default_branch, but leaves repository, path, storageProvider, and defaultBranch semantics unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (migrate) and resource (pipeline) plus the direction of the change: Orchestra-backed storage to git-backed storage. This clearly separates it from update_pipeline or create_pipeline, though it does not name a sibling explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives operational guidance on identifying the target ('pipeline_id or alias') and a conditional rule ('omit working_branch when it equals default_branch'), which is real usage help. It does not say when to choose this tool over update_pipeline or the other pipeline-mutating siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mute_incidentMute an incidentA

Silence further alerts on this incident until the account's alert budget next refills. Already muted is a no-op.

NameRequiredDescriptionDefault
incident_idYesIncident ID.
X-Orchestra-Account-IdNoAct on this account rather than the one the credential resolves to. Omit it to use the credential's own account. An API key is issued to a single account, so it may only name that account; an OAuth token may name any account its grant covers.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false and destructiveHint=false, so the safety profile is covered. The description adds genuine behavioral context beyond that: idempotent no-op behavior on repeat calls and a clear temporal boundary (until the account's alert budget next refills). It does not mention auth/permission nuances, but the schema already documents the account-override semantics.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the core action and effect, with zero filler. Every clause (duration, idempotency) earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values needn't be explained, and both parameters are fully documented in the schema. For a simple mute mutation the description is nearly complete, with the only gap being no explicit routing to the mute/unmute/update incident siblings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, including an in-depth explanation of the X-Orchestra-Account-Id override, so the schema carries the parameter burden. The description adds nothing about either parameter, which is acceptable given full coverage but leaves no incremental value; baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Silence further alerts on this incident'), which is clearly a mute action rather than a generic update. It adds the temporal scope (until the alert budget refills) that disambiguates from a permanent change, though it never names the obvious counterpart unmute_incident to sharpen distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance on when to choose this over siblings such as update_incident, merge_incidents, or unmute_incident. The only usage-relevant statement is the idempotency note ('Already muted is a no-op'), which is behavioral rather than a when-to-use routing hint.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pause_pipelinePause or unpause a pipelineA

Pause or unpause a pipeline by alias or pipeline ID. A paused pipeline's schedules, sensors, trigger events, and start_pipeline calls do not start new runs.

NameRequiredDescriptionDefault
pausedYes
pipeline_id_or_aliasYesPipeline ID or alias.
X-Orchestra-Account-IdNoAct on this account rather than the one the credential resolves to. Omit it to use the credential's own account. An API key is issued to a single account, so it may only name that account; an OAuth token may name any account its grant covers.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=false and destructiveHint=false, so the safety profile is covered structurally. The description adds genuinely useful behavioral context beyond that: exactly what a paused state suppresses (schedules, sensors, trigger events, start_pipeline calls), confirming pausing is non-destructive and reversible. It omits any note on permissions or the effect on already-running runs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences: the action and identifier first, then the behavioral consequence. No filler and everything front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described, and the effect of pausing is well covered. The main gap is that the bidirectional behavior of the `paused` flag is left for the agent to infer from the parameter name.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 67% and the schema already documents pipeline_id_or_alias and the account-id header. The description restates the alias/ID acceptance but adds no format or validation detail, and never explains the `paused` boolean semantics (true=pause, false=unpause). Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb pair (pause/unpause) and resource (pipeline) and the identifier it accepts. It is clearly distinguishable from siblings like start_pipeline or cancel_pipeline_run, which involve different operations on the same resource.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when this operation is relevant by explaining what pausing does, but it gives no explicit when-to-use guidance, no exclusions, and does not name alternatives (e.g., cancel_pipeline_run for stopping in-flight runs). Usage must be inferred.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pipeline_contextPipeline ContextA
Read-only

What an agent needs before editing or reasoning about a pipeline: its metadata, its full definition (the pipeline YAML structure as JSON), the integrations its tasks use, its recent run outcomes, and the median duration of its succeeded runs. Takes a pipeline ID or an alias. Run history covers the last 7 days, the widest window the API serves.

NameRequiredDescriptionDefault
account_idNoAct on this account rather than the one the credential resolves to. Omit it to use the credential's own account. An API key is issued to a single account, so it may only name that account; an OAuth token may name any account its grant covers.
pipeline_id_or_aliasYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare readOnlyHint=true, so the description adds meaningful behavioral detail: it discloses the return payload (metadata, YAML as JSON, integrations, run outcomes, median duration) and the data freshness limit (last 7 days, the widest window the API serves). It does not cover auth requirements beyond the schema's account_id note or failure behavior, but the added scope and window information is substantive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences, front-loaded with the purpose and contents, then the parameter form, then the run-window constraint. Every sentence adds information without filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so the description need not explain return structure, and it sufficiently covers what is returned, the accepted identifier form, and the run history window. Minor gaps remain around run-count limits or error behavior, but the definition is complete enough for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 50%: account_id is fully documented in the schema, but the required pipeline_id_or_alias has no schema description. The description compensates by stating 'Takes a pipeline ID or an alias,' which adds the alias option beyond the bare string type.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the resource (a pipeline) and enumerates exactly what the tool returns: metadata, full definition as JSON, integrations, recent run outcomes, and median succeeded-run duration. This composite scope clearly distinguishes it from siblings like get_pipeline or get_pipeline_data, which cover only subsets.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'What an agent needs before editing or reasoning about a pipeline' gives explicit usage context. However, it does not name alternatives or state when not to use this tool versus get_pipeline, get_pipeline_data, or list_pipeline_runs.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

reorder_monitorsReorder monitorsA

Set the evaluation order of the workspace's monitors. monitorIds must name every monitor exactly once; each monitor's order becomes its position in the list.

NameRequiredDescriptionDefault
monitorIdsYes
X-Orchestra-Account-IdNoAct on this account rather than the one the credential resolves to. Omit it to use the credential's own account. An API key is issued to a single account, so it may only name that account; an OAuth token may name any account its grant covers.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false and destructiveHint=false, so the safety profile is covered. The description adds one genuinely useful behavioral fact – that this is a full-list replacement where every monitor must appear exactly once – but does not say what happens to ordering-dependent behavior (e.g., active alerts or in-flight evaluations) after reordering.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences with the core action front-loaded and the call constraint immediately after. No filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described. For a mutation tool whose annotations carry the safety profile, the description supplies the essential calling contract (full-list, exactly-once) plus account scoping via the schema. Nothing critical is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 50%: X-Orchestra-Account-Id is fully documented in the schema, but monitorIds (array of uuid4) has no schema description. The description compensates by explaining the array's semantics – it must contain every monitor exactly once and its index becomes each monitor's order position.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource ('Set the evaluation order of the workspace's monitors'), which clearly separates it from sibling mutations like update_monitor (field edits) and reads like list_monitors. It stops short of explicitly naming an alternative sibling, so it is clear but not fully differentiated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied rather than stated: the reader infers this is for bulk reordering rather than editing a single monitor. The 'must name every monitor exactly once' constraint is a real precondition, but there is no explicit when-to-use/when-not guidance or mention of alternatives such as update_monitor.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

send_agent_session_messageSend a message to an agent sessionA

Send a further prompt to an agent session. The agent replies asynchronously: this returns once the prompt is queued, and the reply is read from GET /sessions/{session_id}/history/messages. Needs a grant to run the session's agent. Returns 404 for a session the caller cannot see, and 403 for one whose agent the caller cannot run. A session started by a user in the Orchestra UI is visible to that user alone, so an API key never sees one. Sessions started for a task run or an incident are visible to everyone in the workspace who can view the agent.

NameRequiredDescriptionDefault
messageYes
session_idYesAgent session ID.
pipelineEditorContextNo
X-Orchestra-Account-IdNoAct on this account rather than the one the credential resolves to. Omit it to use the credential's own account. An API key is issued to a single account, so it may only name that account; an OAuth token may name any account its grant covers.

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only give readOnlyHint=false / destructiveHint=false, but the description adds substantial context: calls return as soon as the prompt is queued (not when the agent replies), a grant to run the session's agent is required, and it enumerates 404 vs 403 semantics. It also documents visibility rules (UI-started sessions are creator-only and invisible to API keys; task-run/incident sessions are workspace-visible), which is exactly the kind of behavioral disclosure annotations cannot carry.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose, then async behavior, permissions, error codes, and visibility in a compact paragraph. Every sentence carries information; it is dense rather than bloated, though slightly long for a single-operation tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, and the description compensates by explaining the return semantics (returns once queued, reply read elsewhere), permission requirements, failure modes (404/403), and visibility constraints. Nothing an agent needs to invoke it correctly appears to be missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 50%, so the description should compensate, but it adds no meaning for the parameters. pipelineEditorContext is undocumented anywhere, and the description never explains the message payload or confirms session_id semantics beyond the ambient word 'session'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'Send a further prompt to an agent session.' The word 'further' distinguishes it from create_agent_session (which starts one) and the reply-reading sibling, so an agent can tell it apart without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explains the asynchronous interaction model and points to where the reply is read (GET /sessions/{session_id}/history/messages), which effectively routes to the history-messages sibling. It states the grant prerequisite. It does not name sibling tools directly or state when NOT to use it, so it falls short of 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_agent_integrationsSet an agent's integrationsA

Replace the integration connections an agent can use with the given list, and return the agent's integrations afterwards. An empty list removes them all. Each integration is a connection key of the form <INTEGRATION>_<connection id>, e.g. SNOWFLAKE_my_connection, and must be a connection in the same workspace; the request is refused with 404 if any is not.

NameRequiredDescriptionDefault
bodyYes
agent_idYesThe id of the agent.
X-Orchestra-Account-IdNoAct on this account rather than the one the credential resolves to. Omit it to use the credential's own account. An API key is issued to a single account, so it may only name that account; an OAuth token may name any account its grant covers.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only say readOnlyHint=false and destructiveHint=false; the description adds genuinely useful behavior beyond them: this is a full replace (not a merge), an empty list removes all integrations, keys must resolve to connections in the same workspace, and the whole request is rejected with 404 if any key is invalid (implying all-or-nothing). It does not state the permission/scope required to mutate an agent's integrations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the action and its replace semantics, followed by the edge case (empty list) and then the key format rule. No filler or restated title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so the description only needs to note that the updated integrations are returned, which it does. For a mutating tool it covers format, scoping, and failure mode well; the remaining gap is required permissions and whether the operation is atomic across all keys.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 67% and the undocumented body.integration is exactly what the description explains: the `<INTEGRATION>_<connection id>` format with a concrete example and the same-workspace constraint. That is real value the schema alone does not carry, though the body array's replace-vs-append semantics could be tied more explicitly to the parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a precise verb+resource ('Replace the integration connections an agent can use with the given list') and pins down the replacement semantics rather than a vague 'update'. It is trivially separable from the read-side sibling list_agent_integrations and from set_agent_skills by resource, so an agent can route without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The operation's behavior is well described (full replacement; empty list clears everything), which implies when to reach for it, but there is no explicit when-to-use vs. alternatives such as list_agent_integrations or get_agent, and no stated prerequisites. Usage is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_agent_skillsSet an agent's skillsA

Replace the skills attached to an agent with the given list: skills not in the list are detached, and an empty list detaches them all. Each skillId must be a skill in the same workspace or one managed by Orchestra, and the request is refused with 404 if any is not; duplicates are ignored. Agents managed by Orchestra cannot have their skills changed.

NameRequiredDescriptionDefault
bodyYes
agent_idYesThe id of the agent.
X-Orchestra-Account-IdNoAct on this account rather than the one the credential resolves to. Omit it to use the credential's own account. An API key is issued to a single account, so it may only name that account; an OAuth token may name any account its grant covers.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only say readOnlyHint=false and destructiveHint=false, so the description carries the real behavioral load and does so: it explains the destructive replace semantics, the empty-list case, duplicate handling, the 404 failure mode, and the managed-agent restriction. That is substantially more than the annotations convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences, front-loaded with the replace semantics before the constraints and error behavior. No filler or restatement of the title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with no output schema and only minimal annotations, the description covers effects, error behavior, and eligibility constraints well. It stops short of indicating what the call returns or whether the operation is idempotent/atomic.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 67% (agent_id and the account-id header are documented in-schema), and the description adds genuine constraint semantics for skillId — workspace/Orchestra membership, 404 refusal, duplicate tolerance — that the schema's bare uuid4 type does not express. The body's array and agent_id parameters get no extra description, keeping this below a 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening clause states a specific verb (replace) plus resource (agent's skills) and defines the replacement scope precisely: omitted skills are detached, empty list detaches all. This is unmistakably distinct from list_agent_skills and set_agent_integrations among the siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear conditions for correct use (skills must belong to the same workspace or be Orchestra-managed; 404 on violation; duplicates ignored) and a hard exclusion (Orchestra-managed agents cannot be changed). It does not, however, name the sibling to use when you only want to add rather than replace, so routing to alternatives is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

start_pipelineStart a pipeline runA

Start a pipeline run. The pipeline can be identified by alias or pipeline ID.

All request body fields are optional. Use branch and commit for Git-backed pipelines, versionNumber for Orchestra-backed published versions, and runInputs for values required by pipeline inputs. The response includes a pipelineRunId you can use to poll run status.

Any other JSON body, such as a webhook sent by another tool, still starts the run, with default options; requestBodyMessage and requestBodyErrors in the response say which happened. Either way the whole body is available to the pipeline's webhook.runInputs as ${{ outputs.payload }}, for example ${{ outputs.payload.connection_id }}, or ${{ outputs.payload['connectionId'] }} for a key with capitals, so task conditions can act on it through ${{ inputs.<name> }}. Bodies over 64 KiB are not kept.

NameRequiredDescriptionDefault
dataNo
branchNo
commitNo
ciRunIdNo
taskIdsNo
runInputsNo
environmentNo
versionNumberNo
retryFromFailedNo
environmentOverridesNo
pipeline_id_or_aliasYesPipeline ID or alias.
continueDownstreamRunNo
X-Orchestra-Account-IdNoAct on this account rather than the one the credential resolves to. Omit it to use the credential's own account. An API key is issued to a single account, so it may only name that account; an OAuth token may name any account its grant covers.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare readOnlyHint=false and destructiveHint=false; the description adds substantial non-obvious behavior: the fallback that any JSON body still starts a run with defaults, how `requestBodyMessage`/`requestBodyErrors` report that, the 64 KiB truncation limit, and the `${{ outputs.payload }}` aliasing available to task conditions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action and identification rule, and the follow-on sentences about body handling and the payload alias each carry distinct, non-redundant information. Slightly dense in the payload-templating sentence but nothing is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values needn't be explained, and annotations cover the safety profile. The description covers the main call paths (Git vs Orchestra vs raw webhook) but leaves a meaningful chunk of the 13-parameter surface undocumented, so it is not fully complete for this complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 15%, so the description carries the burden. It explains `branch`, `commit`, `versionNumber`, and `runInputs` well, but 13 parameters exist and several (`ciRunId`, `taskIds`, `environment`, `environmentOverrides`, `continueDownstreamRun`, `retryFromFailed`, `data`) get no mention, leaving the low-coverage surface only partially compensated.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ("Start a pipeline run") and immediately clarifies the two ways to identify the pipeline (alias or ID). An agent can distinguish it from cancel_pipeline_run, list_pipeline_runs, and get_pipeline_run_status without opening schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear guidance on which body fields to use per pipeline type (`branch`/`commit` for Git-backed, `versionNumber` for Orchestra-backed, `runInputs` for input values) and notes all body fields are optional. It stops short of naming alternative tools or when not to use this one, so not a full 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

unmerge_incidentsUnmerge incidentsA

Detach the incidents named in the request body from the incident in the path, restoring each as a standalone incident. The exact inverse of merge.

NameRequiredDescriptionDefault
incidentIdsYes
incident_idYesIncident ID to detach the named incidents from.
X-Orchestra-Account-IdNoAct on this account rather than the one the credential resolves to. Omit it to use the credential's own account. An API key is issued to a single account, so it may only name that account; an OAuth token may name any account its grant covers.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=false and destructiveHint=false, indicating a non-destructive mutation. The description adds that incidents become standalone, which is useful behavioral context. However, it does not state whether the operation requires specific permissions, what happens if an incident is not part of the given incident_id, or any rate limits, leaving gaps for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences that front-load the action and scope, with the inverse-of-merge statement adding efficient orientation. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be explained. However, for a mutation tool with partial schema coverage and no explicit usage guidance or permission details, the description is minimal but sufficient to call the tool correctly, though it could do more to clarify constraints and outcomes.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 67%, with incident_id and X-Orchestra-Account-Id documented in the schema. The description adds the concept of detaching from a path incident and restoring targets as standalone, but does not clarify the relationship between incidentIds (targets) and incident_id beyond what the schema already indicates, nor does it compensate for the undocumented incidentIds parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (detach) and resource (incidents named in body from incident in path) and clarifies the effect (restore as standalone). It does not explicitly name the sibling merge_incidents, though 'The exact inverse of merge' implicitly references it, which provides some sibling linkage but not by name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the inverse-of-merge framing, which helps an agent understand the operation. However, there is no explicit when-to-use context, no exclusions, and the alternative merge_incidents is not named. Adequate but with clear routing gaps.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

unmute_incidentUnmute an incidentA

Lift this incident's mute early. A no-op if it was never muted, or already lapsed.

NameRequiredDescriptionDefault
incident_idYesIncident ID.
X-Orchestra-Account-IdNoAct on this account rather than the one the credential resolves to. Omit it to use the credential's own account. An API key is issued to a single account, so it may only name that account; an OAuth token may name any account its grant covers.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare non-read-only/non-destructive, and the description adds genuine value beyond them by disclosing idempotent behavior ('A no-op if it was never muted, or already lapsed'), which tells the agent not to fear redundant calls. It stops short of naming auth/permission constraints, so not a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences, zero filler, with the core action and the idempotency caveat front-loaded. Every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need no explanation, and annotations cover the safety profile. Combined with the idempotency note, the description is nearly complete for this simple, single-required-param mutation, missing only usage routing against siblings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already fully documents incident_id and the account-override header. The description adds no parameter-level detail, which is the correct baseline when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb+resource ('Lift this incident's mute early'), making the operation unmistakable and clearly differentiating it from the sibling mute_incident. An agent can tell instantly what this does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the semantics rather than stated: the no-op behavior tells the agent it is safe to call regardless of mute state, but the description never says when to prefer this over update_incident or other incident mutations. Adequate but with a clear gap.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_agentUpdate an agentA

Update the fields given and leave the rest unchanged; send null to clear an optional field. A masked secret value keeps the stored secret. An agent managed by Orchestra accepts only gitEnabled, secrets and llmKeyType, which apply to this workspace alone, and refuses any other field with 403.

NameRequiredDescriptionDefault
nameNo
secretsNo
agent_idYesThe id of the agent.
avatarPathNo
gitEnabledNo
llmKeyTypeNo
descriptionNo
systemPromptNo
defaultEffortNo
samplePromptsNo
defaultModelIdNo
responsePromptNo
X-Orchestra-Account-IdNoAct on this account rather than the one the credential resolves to. Omit it to use the credential's own account. An API key is issued to a single account, so it may only name that account; an OAuth token may name any account its grant covers.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare readOnlyHint=false and destructiveHint=false. The description goes well beyond them: null clears fields, partial updates leave other fields intact, a masked secret keeps the stored value rather than overwriting it, and Orchestra-managed agents accept only gitEnabled/secrets/llmKeyType and reject other fields with a 403. That is exactly the failure-mode context an agent needs for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three dense sentences, each earning its place. The core patch/null rule is front-loaded, the secret-masking rule follows, and the special-case 403 restriction is last where it belongs.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described, and the description covers the non-obvious behaviors of a 13-parameter mutation tool. The residual gap is that most individual fields are undocumented in both the description and schema, which would matter for an agent composing a non-trivial update.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 15% across 13 parameters, so the schema does little work and the description must compensate. It does add real meaning for `secrets` (masked value semantics), `gitEnabled` and `llmKeyType` (Orchestra-managed restrictions) and a universal null-to-clear rule, but eight parameters (name, avatarPath, description, systemPrompt, defaultEffort, samplePrompts, defaultModelId, responsePrompt) get no semantic guidance in either place.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb and resource ('Update the fields given') and immediately defines the update semantics ('leave the rest unchanged'), which is PATCH behavior rather than replacement. Combined with the name and the sibling set (create_agent, get_agent, delete_agent), an agent can distinguish this tool without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear operative conditions: use it to change a subset of fields, send null to clear an optional field, and masked secrets are preserved. It also scopes behavior for Orchestra-managed agents. It stops short of explicitly naming alternatives or stating prerequisites (permissions needed to call it), so it falls short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_environmentUpdate an environmentA

Update an environment's name, default flag, and variable values. Only the fields supplied are changed; omitted fields are left untouched. The supplied values replace the existing values in full — they are not merged. Marking an environment as the default automatically unsets the previous default environment.

NameRequiredDescriptionDefault
nameNo
valuesNo
defaultEnvNo
environment_idYes
X-Orchestra-Account-IdNoAct on this account rather than the one the credential resolves to. Omit it to use the credential's own account. An API key is issued to a single account, so it may only name that account; an OAuth token may name any account its grant covers.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare it is a non-read-only, non-destructive mutation, and the description adds genuinely non-obvious behavior beyond that: values are replaced wholesale rather than merged, and setting the default unsets the prior default. It does not discuss permissions, error behavior, or reversibility, so it falls short of a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences, front-loaded with the operation scope before the edge-case semantics. No filler, no repetition of the title, and each sentence adds a distinct fact.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need no explanation, and annotations already convey the safety profile; the description supplies the mutation semantics an agent needs. Minor gaps remain around null handling for `name` and the account-id header, but nothing critical is missing for a correct call.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 20%, so the description must carry the load, and it does the most important part: it explains the replace-vs-merge semantics of `values` and the side effect of `defaultEnv`, which the schema cannot express. It leaves environment_id and the account-id header undocumented, so it does not fully compensate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Update') and resource ('an environment') and enumerates the mutable fields: name, default flag, and variable values. It is clearly distinguishable from create/get/list_environment siblings by implication, though it never names an alternative explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The clause 'Only the fields supplied are changed; omitted fields are left untouched' implicitly tells the agent when this tool is appropriate (partial edits) versus create_environment, but there is no explicit when-to-use/when-not-to-use statement or prerequisite guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_incidentUpdate an incidentA

Change an incident's status, severity, name, assignee or subscribers. A field left out of the request body keeps its stored value, and sending assignee as null unassigns. An assignee or subscriber must be able to view the incident or be in the account's Slack workspace.

Returns the detail shape - a patch writes timeline rows of its own, so the caller's event count is out of date the moment the change lands.

NameRequiredDescriptionDefault
nameNo
statusNo
assigneeNo
severityNo
descriptionNo
incident_idYesIncident ID.
subscribersNo
X-Orchestra-Account-IdNoAct on this account rather than the one the credential resolves to. Omit it to use the credential's own account. An API key is issued to a single account, so it may only name that account; an OAuth token may name any account its grant covers.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnlyHint=false, destructiveHint=false), it discloses non-obvious behavior: omitted fields retain stored values, null assignee unassigns, assignees/subscribers must be able to view the incident or belong to the workspace, and the patch writes its own timeline rows so the caller's event count goes stale immediately. That side-effect warning is exactly the kind of context annotations cannot carry.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the field scope, then mutation semantics, then permission constraint and side effect. No filler; every clause adds actionable information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need not be explained, and the description still adds the stale-event-count caveat plus the permission prerequisite. It falls short only on the undocumented `description` parameter and the replacement semantics of the subscribers list.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With only 25% schema description coverage, the description does useful work by naming the mutable fields and explaining partial-update and null-unassign semantics. However it omits the `description` parameter entirely and does not clarify null behavior for fields other than `assignee` or how the `subscribers` array (replace vs. append, maxItems 20) is treated.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb+resource ('Change an incident's status, severity, name, assignee or subscribers') and enumerates the mutable fields, so the scope is unambiguous. It does not explicitly differentiate itself from near-neighbors like update_incident_settings, mute_incident, or merge_incidents, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the patch semantics ('a field left out of the request body keeps its stored value'), which tells the agent how to call it, but there is no explicit when-to-use/when-not guidance or named alternative such as update_incident_settings for configuration changes.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_incident_settingsUpdate incident settingsA

Change the workspace's incident settings and return all of them. Settings left out of the body keep their current value.

NameRequiredDescriptionDefault
environmentIdsNoOnly failures from these environments open or join an incident; leave it empty for every environment.
warningsEnabledNo
incidentsEnabledNo
autoResolveOnSuccessNoResolve an open incident once every resource it covers has succeeded again.
maxAlertsPerIncidentNoCap on the number of live alerts sent for a single incident before further updates are rolled into a single rollup notice instead of sent individually. This budget applies to each alert destination.
autoDiagnoseIncidentsNoHave Orchestra's diagnoser investigate incidents as they open and grow.
X-Orchestra-Account-IdNoAct on this account rather than the one the credential resolves to. Omit it to use the credential's own account. An API key is issued to a single account, so it may only name that account; an OAuth token may name any account its grant covers.
groupWarningWithFailedNo
requireAlertConfiguredNo
alertBudgetRefillCadenceNoHow often the budget above comes back. Never means it is spent once per incident and does not return until the incident is resolved.daily
requireDefaultBranchOrPublishedVersionNoOnly raise incidents for runs on a Git-backed pipeline's default branch, or of an Orchestra-backed pipeline's published version.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false and destructiveHint=false, so the mutation/safety profile is covered. The description usefully discloses the merge semantics and that the full settings set is returned, but says nothing about whether omitted fields revert to the schema-declared defaults (false/true/'daily') or truly retain current values — an ambiguity that matters for a settings mutation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, zero filler. The mutation is front-loaded and the partial-update rule follows immediately, so the most decision-relevant fact is not buried.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so not enumerating return fields is fine, and the description confirms all settings are returned. For an 11-parameter mutation with zero required fields, the merge rule is the key missing-risk item and it is present; only the default-vs-retain conflict and lack of sibling routing keep it from a 5.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 64% across 11 parameters, so roughly a third are undocumented in the schema (warningsEnabled, incidentsEnabled, groupWarningWithFailed, requireAlertConfigured are bare). The description only adds the collective 'omitted = unchanged' rule rather than explaining any individual parameter, so it does not fully compensate for the coverage gap — baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (change) and resource (workspace incident settings) and notes the return behavior (all settings). It's clear what the tool does, but it never names its read counterpart get_incident_settings or the related update_incident, so sibling differentiation is left to the reader.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The sentence 'Settings left out of the body keep their current value' gives real guidance on how to call it (partial/PATCH semantics), which matters for a zero-required-parameter tool. However, it never says when to reach for this versus get_incident_settings or update_incident, and gives no exclusions or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_integration_connectionUpdate an integration connectionA

Update one of connectionName, isDefault: true, or parameters with credentialStore on an integration connection. parameters follow the integration's authSchema and re-authenticate the connection; send obfuscated secrets back unchanged to keep them. OAuth integrations return a redirectUrl instead.

NameRequiredDescriptionDefault
isDefaultNo
parametersNo
integrationYes
callbackPathNo
connection_idYes
connectionNameNo
credentialStoreNo
validationParamsNoParameters matching the integration's validateSchema. Supplying them runs an extra validation against the provider once the connection authenticates.
X-Orchestra-Account-IdNoAct on this account rather than the one the credential resolves to. Omit it to use the credential's own account. An API key is issued to a single account, so it may only name that account; an OAuth token may name any account its grant covers.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only say readOnlyHint=false/destructiveHint=false; the description adds real substance: setting parameters re-authenticates the connection, obfuscated secrets must be echoed back unchanged to be preserved, and OAuth integrations respond with a redirectUrl instead of completing inline. That is meaningful mutation/return behavior the annotations do not convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences with the primary update targets front-loaded, followed by the re-auth caveat and the OAuth return case. Dense but no filler; the opening sentence is slightly clipped grammatically but still parses.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return-value detail is largely optional, yet the description still flags the OAuth redirectUrl case. For a 9-parameter mutation tool it covers the operationally critical semantics (re-auth, secret preservation, credential store) and omits only peripheral fields such as callbackPath.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 22%, so the description must compensate. It usefully explains the semantics of connectionName, isDefault, parameters (authSchema-driven, re-auth, secret obfuscation) and credentialStore, but says nothing about callbackPath, integration, or connection_id, leaving several parameters undocumented in both places.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states a specific verb and resource and goes further by enumerating the mutable fields ('connectionName', 'isDefault: true', 'parameters' with 'credentialStore'). It never names a sibling tool (get/create/delete_integration_connection) for contrast, so it stops short of full sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the enumerated cases: rename a connection, flip the default, or change credentials/parameters via re-authentication. There is no explicit statement of when to prefer this tool over create_integration_connection or get_integration_connection, and no prerequisites (e.g., permissions) are stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_monitorUpdate a monitorA

Replace a monitor's definition with the one in the body. A field left out takes its default rather than keeping its stored value, except order, which keeps the monitor's place.

NameRequiredDescriptionDefault
nameYes
matchYesWhich events a monitor claims: AND across dimensions, OR within a list. At least one dimension has to be given. A monitor matching every dimension by saying nothing would claim every event on the account, which is never what an author means. ``operation_failures_only`` narrows what the dimensions...
orderNo
actionNoWhat happens to the events this monitor claimed. ``mute`` claims them and drops them, with no incident and no alert - the known-broken-thing case.
enabledNo
groupByYes
triggerNo
monitor_idYesMonitor ID.
descriptionNo
X-Orchestra-Account-IdNoAct on this account rather than the one the credential resolves to. Omit it to use the credential's own account. An API key is issued to a single account, so it may only name that account; an OAuth token may name any account its grant covers.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare readOnlyHint=false and destructiveHint=false, so the description carries most of the burden — and it delivers the single most important behavior: omitted fields reset to their defaults rather than being preserved, with `order` as the sole exception. That is exactly the detail that prevents an agent from silently wiping configuration. It stops short of disclosing permission requirements, not-found/error behavior, or concurrency, so a 4 rather than a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero filler. The core replacement semantics come first and the default-fallback caveat with its `order` exception follows immediately. Nothing is redundant with the title or schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 10-parameter, deeply nested mutation tool with an output schema (so return values need not be explained), the description covers the decisive gotcha of full-replacement semantics. It leaves auth/permission expectations and failure modes unstated, which is a minor gap given the annotations are silent on them.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With only 40% schema description coverage across 10 parameters, the description must compensate, but it only clarifies one field's semantics (`order` keeps the monitor's place). It says nothing about monitor_id, enabled, description, or the account header, and adds no meaning beyond the schema text for the nested match/action/groupBy/trigger objects.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'Replace a monitor's definition with the one in the body.' The word 'Replace' immediately distinguishes it from the sibling create_monitor/get_monitor/delete_monitor/reorder_monitors, and an agent can tell what the call does without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the replace semantics and by the field-default rule, which tells the caller to supply a complete definition. However, there is no explicit when-to-use guidance naming alternatives (e.g. create_monitor for new monitors), nor any stated prerequisite such as needing an existing monitor_id.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_pipelineUpdate a pipeline by selectorA

Update an existing Orchestra-backed pipeline. Select it with pipeline_id or alias in the request body. Git-backed pipelines cannot be updated through this endpoint.

NameRequiredDescriptionDefault
dataYesPipeline definition as JSON, matching the pipeline YAML structure (required top-level keys: version, name, pipeline). Validate it with the validate_pipeline tool before submitting.
aliasNo
publishedYes
pipelineIdNo
X-Orchestra-Account-IdNoAct on this account rather than the one the credential resolves to. Omit it to use the credential's own account. An API key is issued to a single account, so it may only name that account; an OAuth token may name any account its grant covers.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=false and destructiveHint=false, so safety is partly covered. The description adds the Git-backed exclusion, but does not say whether supplying `data` fully replaces the existing definition, whether changes are reversible, what permissions are needed, or what happens to omitted fields. For a mutation tool this leaves real behavioral questions open.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the action, then the selector, then the exclusion. No padding or restated boilerplate.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need no explanation, and the selector story is mostly told. However, with only 40% schema coverage on a 5-parameter mutation tool, the description does not compensate for undocumented `published` semantics, selector precedence, or whether the update is a full replacement.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 40%, so `alias`, `pipelineId`, and `published` are undocumented in the schema. The description confirms the selector concept but uses `pipeline_id` while the schema property is `pipelineId`, and it never states precedence when both selectors are supplied.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Update) and resource (an existing Orchestra-backed pipeline), and explicitly narrows scope by excluding Git-backed pipelines, which lets an agent distinguish it from sibling pipeline mutations like create_pipeline or migrate_pipeline.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a clear when-not condition ('Git-backed pipelines cannot be updated through this endpoint') and names the selector mechanism. It stops short of routing between alternatives such as migrate_pipeline or import_pipeline when a Git-backed update is needed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_skillUpdate a skillA

Replace a skill's markdown. Its name and description are re-read from the new frontmatter. Skills imported from git are read-only: edit the file in the connected repository instead. Skills managed by Orchestra cannot be changed.

NameRequiredDescriptionDefault
markdownYes
skill_idYesThe id of the skill.
X-Orchestra-Account-IdNoAct on this account rather than the one the credential resolves to. Omit it to use the credential's own account. An API key is issued to a single account, so it may only name that account; an OAuth token may name any account its grant covers.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare readOnlyHint=false and destructiveHint=false; the description adds genuinely new behavioral context, namely that the skill's name and description are re-derived from the new frontmatter (a side effect the caller cannot see from the schema) and the two categories of immutable skills. It stops short of describing auth requirements or whether the prior markdown is recoverable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the action, then side effects, then constraints. No filler and no repetition of schema or annotation content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation, and the mutation's preconditions plus its frontmatter side effect are fully stated. Nothing an agent needs in order to invoke this correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 67% (skill_id and the account-id header are documented in-schema; markdown only has minLength=1). The description compensates for the undocumented parameter by explaining that markdown is the full replacement body whose frontmatter rewrites name and description — meaning beyond the bare string type.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Replace a skill's markdown') and clarifies that this is a whole-body replacement rather than a field patch, with skill_id identifying the target. It does not explicitly differentiate itself from siblings like create_skill, delete_skill, or import_skill, but the operation itself is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Covers all three required pieces: the action context (replacing markdown), explicit exclusions ('Skills imported from git are read-only', 'Skills managed by Orchestra cannot be changed'), and the alternative route ('edit the file in the connected repository instead'). An agent knows when not to call this and what to do instead.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_pipelineValidate PipelineA
Read-only

Validate a full pipeline definition document without creating or updating a pipeline. Use it to check a definition before create_pipeline or update_pipeline.

NameRequiredDescriptionDefault
account_idNoAct on this account rather than the one the credential resolves to. Omit it to use the credential's own account. An API key is issued to a single account, so it may only name that account; an OAuth token may name any account its grant covers.
canonicalizeNoWhen true, a valid response also includes the pipeline serialised in Orchestra's canonical camelCase form under a 'pipeline' key.
pipeline_definitionYesFull pipeline definition document as JSON, matching the pipeline YAML structure, e.g. {"version": "v1", "name": "...", "pipeline": {...task groups...}}. Pass the whole document — version, name and pipeline are required top-level keys; the task groups go under the nested 'pipeline' key. Same document create_pipeline accepts.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, and the description reinforces this by stating no pipeline is created or updated, giving the agent confidence there are no side effects. It does not add further behavioral detail (e.g., error reporting shape or rate limits), but the side-effect disclosure is the key trait for a validation call.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero filler, with the non-mutating scope front-loaded before the routing advice. Every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With a rich input schema, an output schema, and a readOnly annotation, the description supplies what remains: the tool's non-persisting nature and its place relative to create/update. It is essentially complete, though it could note that validation returns diagnostics rather than a persisted object.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all three parameters (account_id, canonicalize, pipeline_definition) are already documented in the schema, including the canonicalization behavior and account-resolution rules. The description adds no per-parameter meaning beyond what the schema provides, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (validate) and resource (full pipeline definition document) and immediately scopes it as non-persisting: 'without creating or updating a pipeline.' This cleanly distinguishes it from the sibling write tools create_pipeline and update_pipeline.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use it: 'to check a definition before create_pipeline or update_pipeline,' naming both alternatives by name. It lacks an explicit when-not condition (e.g., 'do not use to persist changes'), but the routing guidance is clear and actionable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

whats_brokenWhat's BrokenA
Read-only

Start here for 'what is broken' or 'why did last night's run fail'. Returns every failing and warning pipeline run in the window, already joined to the task runs that failed inside it, with each task's message, externalMessage, platformLink and duration-vs-baseline anomalies. Retried attempts are excluded. Windows wider than 168 hours are clamped to that, the widest the API serves. Follow up on a single task run with diagnose.

NameRequiredDescriptionDefault
account_idNoAct on this account rather than the one the credential resolves to. Omit it to use the credential's own account. An API key is issued to a single account, so it may only name that account; an OAuth token may name any account its grant covers.
environmentNo
window_hoursNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare readOnlyHint=true, and the description adds real behavioral substance beyond them: retried attempts are excluded, results include messages, externalMessage, platformLink and duration-vs-baseline anomalies, and over-wide windows are clamped server-side. It does not describe pagination or result-size limits, so it falls short of a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the trigger questions, then the returned payload, then the exclusion rule, then the clamp, then the sibling hand-off. Four tight sentences, each carrying distinct information with no restatement of the name or annotations.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be spelled out, yet the description adds the useful detail about what is joined in. The one gap is the undocumented environment parameter, which neither schema nor description explains.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 33%: account_id is well documented in the schema, environment is undocumented in both places, and window_hours has a default but no schema description. The description compensates for window_hours by explaining the 168-hour clamp, but leaves environment entirely unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with the exact user questions it answers ('what is broken', 'why did last night's run fail') and states a specific resource: every failing and warning pipeline run in the window, joined to failed task runs. It is clearly distinguishable from diagnose, which it names as the single-task-run follow-up.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit entry-point guidance ('Start here') plus an explicit alternative ('Follow up on a single task run with diagnose'). It also states the window boundary condition (wider than 168 hours is clamped), so the agent knows the tool's limits before calling.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 44 tool updatesv2026.10.12-0
    • Addedcancel_agent_session_prompt
    • Addedcreate_agent
    • Addedcreate_agent_session
    • Addedcreate_integration_connection
    • Changedcreate_monitor8 fields changed
      • changedInput schema / properties / action / description
        Previous value: -"What happens to the events this monitor claimed.\n\n``mute`` claims them and sends no alert - the known-broken-thing case. They are still\nrecorded, on incidents the monitor owns, so a mute is silent without being invisible."New value: +"What happens to the events this monitor claimed.\n\n``mute`` claims them and drops them, with no incident and no alert - the\nknown-broken-thing case."
      • changedInput schema / properties / action / properties / assignee / anyOf
        Previous value: -[
        -  {
        -    "format": "uuid4",
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedInput schema / properties / action / properties / subscribers
        Added value: +{
        +  "default": [],
        +  "items": {
        +    "type": "string"
        +  },
        +  "maxItems": 20,
        +  "type": "array"
        +}
      • changedInput schema / properties / groupBy / items / anyOf
        Previous value: -[
        -  {
        -    "description": "What makes two events this monitor claimed one incident.\n\nEvery value but ``MONITOR`` resolves to a typed column that already exists on\n``incident_events``. ``MONITOR`` means \"everything this monitor claims is one\nincident\", which is served by ``monitor_id`` on the incident instead.",
        -    "enum": [
        -      "asset",
        -      "task",
        -      "pipeline",
        -      "connection",
        -      "monitor"
        -    ],
        -    "type": "string"
        -  },
        -  {
        -    "pattern": "^\\$",
        -    "type": "string"
        -  }
        -]New value: +[
        +  {
        +    "description": "What makes two events this monitor claimed one incident.\n\nEvery value but ``MONITOR`` resolves to a typed column that already exists on\n``incident_events``. ``MONITOR`` means \"everything this monitor claims is one\nincident\", which is served by ``monitor_id`` on the incident instead.",
        +    "enum": [
        +      "asset",
        +      "task",
        +      "pipeline",
        +      "connection",
        +      "monitor"
        +    ],
        +    "type": "string"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "description": "A place on an event body to group on. ``label`` is what the incident's name and alert\ncall the value found at ``path``.",
        +    "properties": {
        +      "label": {
        +        "maxLength": 64,
        +        "minLength": 1,
        +        "pattern": "^[a-zA-Z0-9_.:/-]+$",
        +        "type": "string"
        +      },
        +      "path": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "label",
        +      "path"
        +    ],
        +    "type": "object"
        +  }
        +]
      • changedInput schema / properties / match / description
        Previous value: -"Which events a monitor claims: AND across dimensions, OR within a list.\n\nAt least one dimension has to be given. A monitor matching every dimension by saying\nnothing would claim every event on the account, which is never what an author means."New value: +"Which events a monitor claims: AND across dimensions, OR within a list.\n\nAt least one dimension has to be given. A monitor matching every dimension by saying\nnothing would claim every event on the account, which is never what an author means.\n\n``operation_failures_only`` narrows what the dimensions..."
      • changedInput schema / properties / match / properties / integrations / items / enum
        Previous value: -[
        -  "AIRBYTE_CLOUD",
        -  "AIRBYTE_SERVER",
        -  "AIRFLOW",
        -  "ARCH",
        -  "ALTERYX_SERVER",
        -  "ANTHROPIC",
        -  "AWS_EC2",
        -  "AWS_ECS",
        -  "AWS_EMR",
        -  "AWS_EKS",
        -  "AWS_FIREHOSE",
        -  "AWS_GLUE",
        -  "AWS_LAMBDA",
        -  "AWS_RDS",
        -  "AWS_REDSHIFT",
        -  "AWS_S3",
        -  "AWS_BEDROCK",
        -  "AWS_SAGEMAKER",
        -  "AWS_SECRETS_MANAGER",
        -  "AWS_SES",
        -  "AWS_STEP_FUNCTIONS",
        -  "AZURE",
        -  "AZURE_CONTAINER_APPS",
        -  "AZURE_DATA_FACTORY",
        -  "AZURE_DATA_LAKE_STORAGE",
        -  "AZURE_KEY_VAULT",
        -  "AZURE_KUBERNETES_SERVICE",
        -  "AZURE_LOGIC_APPS",
        -  "AZURE_SYNAPSE_ANALYTICS",
        -  "AZURE_VM",
        -  "BAUPLAN",
        -  "BOOMI",
        -  "CDATA",
        -  "CENSUS",
        -  "CLICKHOUSE",
        -  "COALESCE",
        -  "COUNT",
        -  "DATADOG",
        -  "DATABRICKS",
        -  "DATAPROC",
        -  "DATAZEN",
        -  "DBT",
        -  "DBT_CORE",
        -  "DLT",
        -  "DOMO",
        -  "DREMIO",
        -  "DUCKDB",
        -  "EMAIL",
        -  "ESTUARY",
        -  "ETLEAP",
        -  "FABRIC",
        -  "FABRIC_SYNAPSE",
        -  "FIVETRAN",
        -  "FORTRA",
        -  "GCP_BIG_QUERY",
        -  "GCP_CLOUD_RUN",
        -  "GCP_CLOUD_FUNCTIONS",
        -  "GCP_CLOUD_STORAGE",
        -  "GCP_DATAFLOW",
        -  "GCP_DATAFORM",
        -  "GCP_DATASTREAM",
        -  "GCP_LOOKER",
        -  "GKE",
        -  "GITHUB_ACTIONS",
        -  "GOOGLE_CLOUD",
        -  "HEVO",
        -  "HEX",
        -  "HIGHTOUCH",
        -  "HTTP",
        -  "HUBSPOT",
        -  "INFORMATICA_IICS",
        -  "INFORMATICA_POWERCENTER",
        -  "KAFKA",
        -  "KEBOOLA",
        -  "KLEENE",
        -  "LIGHTDASH",
        -  "LINUX_SSH",
        -  "MARIADB",
        -  "MATILLION",
        -  "MATILLION_ETL",
        -  "METAPLANE",
        -  "MICROSOFT_TEAMS",
        -  "MICROSTRATEGY",
        -  "MONGODB",
        -  "MOTHERDUCK",
        -  "MYSQL",
        -  "N8N",
        -  "NIMBLE",
        -  "NOTION",
        -  "OMNI",
        -  "OPEN_AI",
        -  "ORCHESTRA",
        -  "PARADIME",
        -  "PAGER_DUTY",
        -  "PINECONE",
        -  "PORTABLE",
        -  "POSTGRES",
        -  "POWER_AUTOMATE",
        -  "POWER_BI",
        -  "PREFECT_CLOUD",
        -  "PYTHON",
        -  "QLIK",
        -  "QLIK_REPLICATE",
        -  "QUICKBOOKS",
        -  "RENDER",
        -  "RIVERY",
        -  "RUDDERSTACK",
        -  "SALESFORCE",
        -  "SAP",
        -  "SFTP",
        -  "SHAREPOINT",
        -  "SIGMA",
        -  "SISENSE",
        -  "SLACK",
        -  "SNOWFLAKE",
        -  "SNOWPLOW",
        -  "SODA",
        -  "SQL_MESH",
        -  "SQL_SERVER",
        -  "STITCH",
        -  "STREAMKAP",
        -  "TABLEAU_CLOUD",
        -  "TALEND_CLOUD",
        -  "THOUGHTSPOT",
        -  "TOBIKO_CLOUD",
        -  "WEAVIATE",
        -  "WEBHOOK",
        -  "WELD",
        -  "WINDOWS_SSH"
        -]New value: +[
        +  "AIRBYTE_CLOUD",
        +  "AIRBYTE_SERVER",
        +  "AIRFLOW",
        +  "ARCH",
        +  "ALTERYX_SERVER",
        +  "ANTHROPIC",
        +  "AWS_EC2",
        +  "AWS_ECS",
        +  "AWS_EMR",
        +  "AWS_EKS",
        +  "AWS_FIREHOSE",
        +  "AWS_GLUE",
        +  "AWS_LAMBDA",
        +  "AWS_RDS",
        +  "AWS_REDSHIFT",
        +  "AWS_S3",
        +  "AWS_BATCH",
        +  "AWS_BEDROCK",
        +  "AWS_SAGEMAKER",
        +  "AWS_SECRETS_MANAGER",
        +  "AWS_SES",
        +  "AWS_STEP_FUNCTIONS",
        +  "AZURE",
        +  "AZURE_CONTAINER_APPS",
        +  "AZURE_DATA_FACTORY",
        +  "AZURE_DATA_LAKE_STORAGE",
        +  "AZURE_KEY_VAULT",
        +  "AZURE_KUBERNETES_SERVICE",
        +  "AZURE_LOGIC_APPS",
        +  "AZURE_SYNAPSE_ANALYTICS",
        +  "AZURE_VM",
        +  "BAUPLAN",
        +  "BOOMI",
        +  "CDATA",
        +  "CENSUS",
        +  "CLICKHOUSE",
        +  "COALESCE",
        +  "COUNT",
        +  "DATADOG",
        +  "DATABRICKS",
        +  "DATAPROC",
        +  "DATAZEN",
        +  "DBT",
        +  "DBT_CORE",
        +  "DLT",
        +  "DOMO",
        +  "DREMIO",
        +  "DUCKDB",
        +  "EMAIL",
        +  "ESTUARY",
        +  "ETLEAP",
        +  "FABRIC",
        +  "FABRIC_SYNAPSE",
        +  "FIVETRAN",
        +  "FORTRA",
        +  "GCP_BIG_QUERY",
        +  "GCP_CLOUD_RUN",
        +  "GCP_CLOUD_FUNCTIONS",
        +  "GCP_CLOUD_STORAGE",
        +  "GCP_DATAFLOW",
        +  "GCP_DATAFORM",
        +  "GCP_DATASTREAM",
        +  "GCP_LOOKER",
        +  "GKE",
        +  "GITHUB_ACTIONS",
        +  "GOOGLE_CLOUD",
        +  "HEVO",
        +  "HEX",
        +  "HIGHTOUCH",
        +  "HTTP",
        +  "HUBSPOT",
        +  "INFORMATICA_IICS",
        +  "INFORMATICA_POWERCENTER",
        +  "KAFKA",
        +  "KEBOOLA",
        +  "KLEENE",
        +  "LIGHTDASH",
        +  "LINUX_SSH",
        +  "MARIADB",
        +  "MATILLION",
        +  "MATILLION_ETL",
        +  "METAPLANE",
        +  "MICROSOFT_TEAMS",
        +  "MICROSTRATEGY",
        +  "MONGODB",
        +  "MOTHERDUCK",
        +  "MYSQL",
        +  "N8N",
        +  "NIMBLE",
        +  "NOTION",
        +  "OMNI",
        +  "OPEN_AI",
        +  "ORCHESTRA",
        +  "PARADIME",
        +  "PAGER_DUTY",
        +  "PINECONE",
        +  "PORTABLE",
        +  "POSTGRES",
        +  "POWER_AUTOMATE",
        +  "POWER_BI",
        +  "PREFECT_CLOUD",
        +  "PYTHON",
        +  "QLIK",
        +  "QLIK_REPLICATE",
        +  "QUICKBOOKS",
        +  "RENDER",
        +  "RIVERY",
        +  "RUDDERSTACK",
        +  "SALESFORCE",
        +  "SAP",
        +  "SFTP",
        +  "SHAREPOINT",
        +  "SIGMA",
        +  "SISENSE",
        +  "SLACK",
        +  "SNOWFLAKE",
        +  "SNOWPLOW",
        +  "SODA",
        +  "SQL_MESH",
        +  "SQL_SERVER",
        +  "STITCH",
        +  "STREAMKAP",
        +  "TABLEAU_CLOUD",
        +  "TALEND_CLOUD",
        +  "THOUGHTSPOT",
        +  "TOBIKO_CLOUD",
        +  "TYPESAFE",
        +  "WEAVIATE",
        +  "WEBHOOK",
        +  "WELD",
        +  "WINDOWS_SSH"
        +]
      • addedInput schema / properties / match / properties / operationFailuresOnly
        Added value: +{
        +  "default": false,
        +  "type": "boolean"
        +}
      • addedInput schema / properties / name / maxLength
        Added value: +100
    • Addedcreate_skill
    • Addeddelete_agent
    • Addeddelete_environment
    • Addeddelete_integration_connection
    • Addeddelete_monitor
    • Addeddelete_pipeline
    • Addeddelete_skill
    • Addedget_agent
    • Addedget_agent_session
    • Addedget_agent_session_history_messages
    • Addedget_agent_usage
    • Addedget_incident_settings
    • Addedget_integration
    • Addedget_integration_connection
    • Changedget_integration_state_for_state_aware1 field changed
      • changedInput schema / properties / integration / enum
        Previous value: -[
        -  "AIRBYTE_CLOUD",
        -  "AIRBYTE_SERVER",
        -  "AIRFLOW",
        -  "ARCH",
        -  "ALTERYX_SERVER",
        -  "ANTHROPIC",
        -  "AWS_EC2",
        -  "AWS_ECS",
        -  "AWS_EMR",
        -  "AWS_EKS",
        -  "AWS_FIREHOSE",
        -  "AWS_GLUE",
        -  "AWS_LAMBDA",
        -  "AWS_RDS",
        -  "AWS_REDSHIFT",
        -  "AWS_S3",
        -  "AWS_BEDROCK",
        -  "AWS_SAGEMAKER",
        -  "AWS_SECRETS_MANAGER",
        -  "AWS_SES",
        -  "AWS_STEP_FUNCTIONS",
        -  "AZURE",
        -  "AZURE_CONTAINER_APPS",
        -  "AZURE_DATA_FACTORY",
        -  "AZURE_DATA_LAKE_STORAGE",
        -  "AZURE_KEY_VAULT",
        -  "AZURE_KUBERNETES_SERVICE",
        -  "AZURE_LOGIC_APPS",
        -  "AZURE_SYNAPSE_ANALYTICS",
        -  "AZURE_VM",
        -  "BAUPLAN",
        -  "BOOMI",
        -  "CDATA",
        -  "CENSUS",
        -  "CLICKHOUSE",
        -  "COALESCE",
        -  "COUNT",
        -  "DATADOG",
        -  "DATABRICKS",
        -  "DATAPROC",
        -  "DATAZEN",
        -  "DBT",
        -  "DBT_CORE",
        -  "DLT",
        -  "DOMO",
        -  "DREMIO",
        -  "DUCKDB",
        -  "EMAIL",
        -  "ESTUARY",
        -  "ETLEAP",
        -  "FABRIC",
        -  "FABRIC_SYNAPSE",
        -  "FIVETRAN",
        -  "FORTRA",
        -  "GCP_BIG_QUERY",
        -  "GCP_CLOUD_RUN",
        -  "GCP_CLOUD_FUNCTIONS",
        -  "GCP_CLOUD_STORAGE",
        -  "GCP_DATAFLOW",
        -  "GCP_DATAFORM",
        -  "GCP_DATASTREAM",
        -  "GCP_LOOKER",
        -  "GKE",
        -  "GITHUB_ACTIONS",
        -  "GOOGLE_CLOUD",
        -  "HEVO",
        -  "HEX",
        -  "HIGHTOUCH",
        -  "HTTP",
        -  "HUBSPOT",
        -  "INFORMATICA_IICS",
        -  "INFORMATICA_POWERCENTER",
        -  "KAFKA",
        -  "KEBOOLA",
        -  "KLEENE",
        -  "LIGHTDASH",
        -  "LINUX_SSH",
        -  "MARIADB",
        -  "MATILLION",
        -  "MATILLION_ETL",
        -  "METAPLANE",
        -  "MICROSOFT_TEAMS",
        -  "MICROSTRATEGY",
        -  "MONGODB",
        -  "MOTHERDUCK",
        -  "MYSQL",
        -  "N8N",
        -  "NIMBLE",
        -  "NOTION",
        -  "OMNI",
        -  "OPEN_AI",
        -  "ORCHESTRA",
        -  "PARADIME",
        -  "PAGER_DUTY",
        -  "PINECONE",
        -  "PORTABLE",
        -  "POSTGRES",
        -  "POWER_AUTOMATE",
        -  "POWER_BI",
        -  "PREFECT_CLOUD",
        -  "PYTHON",
        -  "QLIK",
        -  "QLIK_REPLICATE",
        -  "QUICKBOOKS",
        -  "RENDER",
        -  "RIVERY",
        -  "RUDDERSTACK",
        -  "SALESFORCE",
        -  "SAP",
        -  "SFTP",
        -  "SHAREPOINT",
        -  "SIGMA",
        -  "SISENSE",
        -  "SLACK",
        -  "SNOWFLAKE",
        -  "SNOWPLOW",
        -  "SODA",
        -  "SQL_MESH",
        -  "SQL_SERVER",
        -  "STITCH",
        -  "STREAMKAP",
        -  "TABLEAU_CLOUD",
        -  "TALEND_CLOUD",
        -  "THOUGHTSPOT",
        -  "TOBIKO_CLOUD",
        -  "WEAVIATE",
        -  "WEBHOOK",
        -  "WELD",
        -  "WINDOWS_SSH"
        -]New value: +[
        +  "AIRBYTE_CLOUD",
        +  "AIRBYTE_SERVER",
        +  "AIRFLOW",
        +  "ARCH",
        +  "ALTERYX_SERVER",
        +  "ANTHROPIC",
        +  "AWS_EC2",
        +  "AWS_ECS",
        +  "AWS_EMR",
        +  "AWS_EKS",
        +  "AWS_FIREHOSE",
        +  "AWS_GLUE",
        +  "AWS_LAMBDA",
        +  "AWS_RDS",
        +  "AWS_REDSHIFT",
        +  "AWS_S3",
        +  "AWS_BATCH",
        +  "AWS_BEDROCK",
        +  "AWS_SAGEMAKER",
        +  "AWS_SECRETS_MANAGER",
        +  "AWS_SES",
        +  "AWS_STEP_FUNCTIONS",
        +  "AZURE",
        +  "AZURE_CONTAINER_APPS",
        +  "AZURE_DATA_FACTORY",
        +  "AZURE_DATA_LAKE_STORAGE",
        +  "AZURE_KEY_VAULT",
        +  "AZURE_KUBERNETES_SERVICE",
        +  "AZURE_LOGIC_APPS",
        +  "AZURE_SYNAPSE_ANALYTICS",
        +  "AZURE_VM",
        +  "BAUPLAN",
        +  "BOOMI",
        +  "CDATA",
        +  "CENSUS",
        +  "CLICKHOUSE",
        +  "COALESCE",
        +  "COUNT",
        +  "DATADOG",
        +  "DATABRICKS",
        +  "DATAPROC",
        +  "DATAZEN",
        +  "DBT",
        +  "DBT_CORE",
        +  "DLT",
        +  "DOMO",
        +  "DREMIO",
        +  "DUCKDB",
        +  "EMAIL",
        +  "ESTUARY",
        +  "ETLEAP",
        +  "FABRIC",
        +  "FABRIC_SYNAPSE",
        +  "FIVETRAN",
        +  "FORTRA",
        +  "GCP_BIG_QUERY",
        +  "GCP_CLOUD_RUN",
        +  "GCP_CLOUD_FUNCTIONS",
        +  "GCP_CLOUD_STORAGE",
        +  "GCP_DATAFLOW",
        +  "GCP_DATAFORM",
        +  "GCP_DATASTREAM",
        +  "GCP_LOOKER",
        +  "GKE",
        +  "GITHUB_ACTIONS",
        +  "GOOGLE_CLOUD",
        +  "HEVO",
        +  "HEX",
        +  "HIGHTOUCH",
        +  "HTTP",
        +  "HUBSPOT",
        +  "INFORMATICA_IICS",
        +  "INFORMATICA_POWERCENTER",
        +  "KAFKA",
        +  "KEBOOLA",
        +  "KLEENE",
        +  "LIGHTDASH",
        +  "LINUX_SSH",
        +  "MARIADB",
        +  "MATILLION",
        +  "MATILLION_ETL",
        +  "METAPLANE",
        +  "MICROSOFT_TEAMS",
        +  "MICROSTRATEGY",
        +  "MONGODB",
        +  "MOTHERDUCK",
        +  "MYSQL",
        +  "N8N",
        +  "NIMBLE",
        +  "NOTION",
        +  "OMNI",
        +  "OPEN_AI",
        +  "ORCHESTRA",
        +  "PARADIME",
        +  "PAGER_DUTY",
        +  "PINECONE",
        +  "PORTABLE",
        +  "POSTGRES",
        +  "POWER_AUTOMATE",
        +  "POWER_BI",
        +  "PREFECT_CLOUD",
        +  "PYTHON",
        +  "QLIK",
        +  "QLIK_REPLICATE",
        +  "QUICKBOOKS",
        +  "RENDER",
        +  "RIVERY",
        +  "RUDDERSTACK",
        +  "SALESFORCE",
        +  "SAP",
        +  "SFTP",
        +  "SHAREPOINT",
        +  "SIGMA",
        +  "SISENSE",
        +  "SLACK",
        +  "SNOWFLAKE",
        +  "SNOWPLOW",
        +  "SODA",
        +  "SQL_MESH",
        +  "SQL_SERVER",
        +  "STITCH",
        +  "STREAMKAP",
        +  "TABLEAU_CLOUD",
        +  "TALEND_CLOUD",
        +  "THOUGHTSPOT",
        +  "TOBIKO_CLOUD",
        +  "TYPESAFE",
        +  "WEAVIATE",
        +  "WEBHOOK",
        +  "WELD",
        +  "WINDOWS_SSH"
        +]
    • Addedget_skill
    • Addedimport_skill
    • Addedlist_agent_avatars
    • Addedlist_agent_integrations
    • Addedlist_agent_sessions
    • Addedlist_agent_skills
    • Addedlist_agents
    • Changedlist_assets1 field changed
      • changedInput schema / properties / integration / anyOf
        Previous value: -[
        -  {
        -    "enum": [
        -      "AIRBYTE_CLOUD",
        -      "AIRBYTE_SERVER",
        -      "AIRFLOW",
        -      "ARCH",
        -      "ALTERYX_SERVER",
        -      "ANTHROPIC",
        -      "AWS_EC2",
        -      "AWS_ECS",
        -      "AWS_EMR",
        -      "AWS_EKS",
        -      "AWS_FIREHOSE",
        -      "AWS_GLUE",
        -      "AWS_LAMBDA",
        -      "AWS_RDS",
        -      "AWS_REDSHIFT",
        -      "AWS_S3",
        -      "AWS_BEDROCK",
        -      "AWS_SAGEMAKER",
        -      "AWS_SECRETS_MANAGER",
        -      "AWS_SES",
        -      "AWS_STEP_FUNCTIONS",
        -      "AZURE",
        -      "AZURE_CONTAINER_APPS",
        -      "AZURE_DATA_FACTORY",
        -      "AZURE_DATA_LAKE_STORAGE",
        -      "AZURE_KEY_VAULT",
        -      "AZURE_KUBERNETES_SERVICE",
        -      "AZURE_LOGIC_APPS",
        -      "AZURE_SYNAPSE_ANALYTICS",
        -      "AZURE_VM",
        -      "BAUPLAN",
        -      "BOOMI",
        -      "CDATA",
        -      "CENSUS",
        -      "CLICKHOUSE",
        -      "COALESCE",
        -      "COUNT",
        -      "DATADOG",
        -      "DATABRICKS",
        -      "DATAPROC",
        -      "DATAZEN",
        -      "DBT",
        -      "DBT_CORE",
        -      "DLT",
        -      "DOMO",
        -      "DREMIO",
        -      "DUCKDB",
        -      "EMAIL",
        -      "ESTUARY",
        -      "ETLEAP",
        -      "FABRIC",
        -      "FABRIC_SYNAPSE",
        -      "FIVETRAN",
        -      "FORTRA",
        -      "GCP_BIG_QUERY",
        -      "GCP_CLOUD_RUN",
        -      "GCP_CLOUD_FUNCTIONS",
        -      "GCP_CLOUD_STORAGE",
        -      "GCP_DATAFLOW",
        -      "GCP_DATAFORM",
        -      "GCP_DATASTREAM",
        -      "GCP_LOOKER",
        -      "GKE",
        -      "GITHUB_ACTIONS",
        -      "GOOGLE_CLOUD",
        -      "HEVO",
        -      "HEX",
        -      "HIGHTOUCH",
        -      "HTTP",
        -      "HUBSPOT",
        -      "INFORMATICA_IICS",
        -      "INFORMATICA_POWERCENTER",
        -      "KAFKA",
        -      "KEBOOLA",
        -      "KLEENE",
        -      "LIGHTDASH",
        -      "LINUX_SSH",
        -      "MARIADB",
        -      "MATILLION",
        -      "MATILLION_ETL",
        -      "METAPLANE",
        -      "MICROSOFT_TEAMS",
        -      "MICROSTRATEGY",
        -      "MONGODB",
        -      "MOTHERDUCK",
        -      "MYSQL",
        -      "N8N",
        -      "NIMBLE",
        -      "NOTION",
        -      "OMNI",
        -      "OPEN_AI",
        -      "ORCHESTRA",
        -      "PARADIME",
        -      "PAGER_DUTY",
        -      "PINECONE",
        -      "PORTABLE",
        -      "POSTGRES",
        -      "POWER_AUTOMATE",
        -      "POWER_BI",
        -      "PREFECT_CLOUD",
        -      "PYTHON",
        -      "QLIK",
        -      "QLIK_REPLICATE",
        -      "QUICKBOOKS",
        -      "RENDER",
        -      "RIVERY",
        -      "RUDDERSTACK",
        -      "SALESFORCE",
        -      "SAP",
        -      "SFTP",
        -      "SHAREPOINT",
        -      "SIGMA",
        -      "SISENSE",
        -      "SLACK",
        -      "SNOWFLAKE",
        -      "SNOWPLOW",
        -      "SODA",
        -      "SQL_MESH",
        -      "SQL_SERVER",
        -      "STITCH",
        -      "STREAMKAP",
        -      "TABLEAU_CLOUD",
        -      "TALEND_CLOUD",
        -      "THOUGHTSPOT",
        -      "TOBIKO_CLOUD",
        -      "WEAVIATE",
        -      "WEBHOOK",
        -      "WELD",
        -      "WINDOWS_SSH"
        -    ],
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "enum": [
        +      "AIRBYTE_CLOUD",
        +      "AIRBYTE_SERVER",
        +      "AIRFLOW",
        +      "ARCH",
        +      "ALTERYX_SERVER",
        +      "ANTHROPIC",
        +      "AWS_EC2",
        +      "AWS_ECS",
        +      "AWS_EMR",
        +      "AWS_EKS",
        +      "AWS_FIREHOSE",
        +      "AWS_GLUE",
        +      "AWS_LAMBDA",
        +      "AWS_RDS",
        +      "AWS_REDSHIFT",
        +      "AWS_S3",
        +      "AWS_BATCH",
        +      "AWS_BEDROCK",
        +      "AWS_SAGEMAKER",
        +      "AWS_SECRETS_MANAGER",
        +      "AWS_SES",
        +      "AWS_STEP_FUNCTIONS",
        +      "AZURE",
        +      "AZURE_CONTAINER_APPS",
        +      "AZURE_DATA_FACTORY",
        +      "AZURE_DATA_LAKE_STORAGE",
        +      "AZURE_KEY_VAULT",
        +      "AZURE_KUBERNETES_SERVICE",
        +      "AZURE_LOGIC_APPS",
        +      "AZURE_SYNAPSE_ANALYTICS",
        +      "AZURE_VM",
        +      "BAUPLAN",
        +      "BOOMI",
        +      "CDATA",
        +      "CENSUS",
        +      "CLICKHOUSE",
        +      "COALESCE",
        +      "COUNT",
        +      "DATADOG",
        +      "DATABRICKS",
        +      "DATAPROC",
        +      "DATAZEN",
        +      "DBT",
        +      "DBT_CORE",
        +      "DLT",
        +      "DOMO",
        +      "DREMIO",
        +      "DUCKDB",
        +      "EMAIL",
        +      "ESTUARY",
        +      "ETLEAP",
        +      "FABRIC",
        +      "FABRIC_SYNAPSE",
        +      "FIVETRAN",
        +      "FORTRA",
        +      "GCP_BIG_QUERY",
        +      "GCP_CLOUD_RUN",
        +      "GCP_CLOUD_FUNCTIONS",
        +      "GCP_CLOUD_STORAGE",
        +      "GCP_DATAFLOW",
        +      "GCP_DATAFORM",
        +      "GCP_DATASTREAM",
        +      "GCP_LOOKER",
        +      "GKE",
        +      "GITHUB_ACTIONS",
        +      "GOOGLE_CLOUD",
        +      "HEVO",
        +      "HEX",
        +      "HIGHTOUCH",
        +      "HTTP",
        +      "HUBSPOT",
        +      "INFORMATICA_IICS",
        +      "INFORMATICA_POWERCENTER",
        +      "KAFKA",
        +      "KEBOOLA",
        +      "KLEENE",
        +      "LIGHTDASH",
        +      "LINUX_SSH",
        +      "MARIADB",
        +      "MATILLION",
        +      "MATILLION_ETL",
        +      "METAPLANE",
        +      "MICROSOFT_TEAMS",
        +      "MICROSTRATEGY",
        +      "MONGODB",
        +      "MOTHERDUCK",
        +      "MYSQL",
        +      "N8N",
        +      "NIMBLE",
        +      "NOTION",
        +      "OMNI",
        +      "OPEN_AI",
        +      "ORCHESTRA",
        +      "PARADIME",
        +      "PAGER_DUTY",
        +      "PINECONE",
        +      "PORTABLE",
        +      "POSTGRES",
        +      "POWER_AUTOMATE",
        +      "POWER_BI",
        +      "PREFECT_CLOUD",
        +      "PYTHON",
        +      "QLIK",
        +      "QLIK_REPLICATE",
        +      "QUICKBOOKS",
        +      "RENDER",
        +      "RIVERY",
        +      "RUDDERSTACK",
        +      "SALESFORCE",
        +      "SAP",
        +      "SFTP",
        +      "SHAREPOINT",
        +      "SIGMA",
        +      "SISENSE",
        +      "SLACK",
        +      "SNOWFLAKE",
        +      "SNOWPLOW",
        +      "SODA",
        +      "SQL_MESH",
        +      "SQL_SERVER",
        +      "STITCH",
        +      "STREAMKAP",
        +      "TABLEAU_CLOUD",
        +      "TALEND_CLOUD",
        +      "THOUGHTSPOT",
        +      "TOBIKO_CLOUD",
        +      "TYPESAFE",
        +      "WEAVIATE",
        +      "WEBHOOK",
        +      "WELD",
        +      "WINDOWS_SSH"
        +    ],
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
    • Changedlist_audit_events2 fields changed
      • changedInput schema / properties / action / description
        Previous value: -"Filter by action. Comma-separated values are supported. One of: ACCOUNT_CREATED, ACCOUNT_DELETED, ACCOUNT_SETTINGS_UPDATED, ACCOUNT_UPDATED, AGENT_CREATED, AGENT_DELETED, AGENT_UPDATED, API_KEY_ROTATED, ASSET_CREATED, ASSET_DELETED, ASSET_DEPENDENCIES_CREATED, ASSET_UPDATED, ENVIRONMENT_CREATED, ENV..."New value: +"Filter by action. Comma-separated values are supported. One of: ACCOUNT_CREATED, ACCOUNT_DELETED, ACCOUNT_SETTINGS_UPDATED, ACCOUNT_UPDATED, AGENT_CREATED, AGENT_DELETED, AGENT_SESSION_DELETED, AGENT_SESSION_UPDATED, AGENT_UPDATED, API_KEY_ROTATED, ASSET_CREATED, ASSET_DELETED, ASSET_DEPENDENCIES_CR..."
      • changedInput schema / properties / resource_type / description
        Previous value: -"Filter by the type of resource acted on. Comma-separated values are supported. One of: ACCOUNT, AGENT, API_KEY, ASSET, ENVIRONMENT, GIT_CONNECTION, GROUP, INCIDENT, INTEGRATION_CONNECTION, INTEGRATION_STATE, INVITE, IP_RESTRICTIONS, MONITOR, ORGANISATION, PIPELINE, PIPELINE_RUN, PRODUCT, SKILL, TASK..."New value: +"Filter by the type of resource acted on. Comma-separated values are supported. One of: ACCOUNT, AGENT, AGENT_SESSION, API_KEY, ASSET, ENVIRONMENT, GIT_CONNECTION, GROUP, INCIDENT, INTEGRATION_CONNECTION, INTEGRATION_STATE, INVITE, IP_RESTRICTIONS, MONITOR, ORGANISATION, PIPELINE, PIPELINE_RUN, PRODU..."
    • Changedlist_incidents2 fields changed
      • addedInput schema / properties / sort_column
        Added value: +{
        +  "anyOf": [
        +    {
        +      "enum": [
        +        "severity",
        +        "name",
        +        "created_at",
        +        "updated_at"
        +      ],
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "Column used to sort incidents. Defaults to open, most severe first."
        +}
      • addedInput schema / properties / sort_direction
        Added value: +{
        +  "default": "desc",
        +  "description": "Sort direction. Ignored unless `sort_column` is set.",
        +  "enum": [
        +    "asc",
        +    "desc"
        +  ],
        +  "type": "string"
        +}
    • Changedlist_integration_connections1 field changed
      • changedInput schema / properties / integration / anyOf
        Previous value: -[
        -  {
        -    "enum": [
        -      "AIRBYTE_CLOUD",
        -      "AIRBYTE_SERVER",
        -      "AIRFLOW",
        -      "ARCH",
        -      "ALTERYX_SERVER",
        -      "ANTHROPIC",
        -      "AWS_EC2",
        -      "AWS_ECS",
        -      "AWS_EMR",
        -      "AWS_EKS",
        -      "AWS_FIREHOSE",
        -      "AWS_GLUE",
        -      "AWS_LAMBDA",
        -      "AWS_RDS",
        -      "AWS_REDSHIFT",
        -      "AWS_S3",
        -      "AWS_BEDROCK",
        -      "AWS_SAGEMAKER",
        -      "AWS_SECRETS_MANAGER",
        -      "AWS_SES",
        -      "AWS_STEP_FUNCTIONS",
        -      "AZURE",
        -      "AZURE_CONTAINER_APPS",
        -      "AZURE_DATA_FACTORY",
        -      "AZURE_DATA_LAKE_STORAGE",
        -      "AZURE_KEY_VAULT",
        -      "AZURE_KUBERNETES_SERVICE",
        -      "AZURE_LOGIC_APPS",
        -      "AZURE_SYNAPSE_ANALYTICS",
        -      "AZURE_VM",
        -      "BAUPLAN",
        -      "BOOMI",
        -      "CDATA",
        -      "CENSUS",
        -      "CLICKHOUSE",
        -      "COALESCE",
        -      "COUNT",
        -      "DATADOG",
        -      "DATABRICKS",
        -      "DATAPROC",
        -      "DATAZEN",
        -      "DBT",
        -      "DBT_CORE",
        -      "DLT",
        -      "DOMO",
        -      "DREMIO",
        -      "DUCKDB",
        -      "EMAIL",
        -      "ESTUARY",
        -      "ETLEAP",
        -      "FABRIC",
        -      "FABRIC_SYNAPSE",
        -      "FIVETRAN",
        -      "FORTRA",
        -      "GCP_BIG_QUERY",
        -      "GCP_CLOUD_RUN",
        -      "GCP_CLOUD_FUNCTIONS",
        -      "GCP_CLOUD_STORAGE",
        -      "GCP_DATAFLOW",
        -      "GCP_DATAFORM",
        -      "GCP_DATASTREAM",
        -      "GCP_LOOKER",
        -      "GKE",
        -      "GITHUB_ACTIONS",
        -      "GOOGLE_CLOUD",
        -      "HEVO",
        -      "HEX",
        -      "HIGHTOUCH",
        -      "HTTP",
        -      "HUBSPOT",
        -      "INFORMATICA_IICS",
        -      "INFORMATICA_POWERCENTER",
        -      "KAFKA",
        -      "KEBOOLA",
        -      "KLEENE",
        -      "LIGHTDASH",
        -      "LINUX_SSH",
        -      "MARIADB",
        -      "MATILLION",
        -      "MATILLION_ETL",
        -      "METAPLANE",
        -      "MICROSOFT_TEAMS",
        -      "MICROSTRATEGY",
        -      "MONGODB",
        -      "MOTHERDUCK",
        -      "MYSQL",
        -      "N8N",
        -      "NIMBLE",
        -      "NOTION",
        -      "OMNI",
        -      "OPEN_AI",
        -      "ORCHESTRA",
        -      "PARADIME",
        -      "PAGER_DUTY",
        -      "PINECONE",
        -      "PORTABLE",
        -      "POSTGRES",
        -      "POWER_AUTOMATE",
        -      "POWER_BI",
        -      "PREFECT_CLOUD",
        -      "PYTHON",
        -      "QLIK",
        -      "QLIK_REPLICATE",
        -      "QUICKBOOKS",
        -      "RENDER",
        -      "RIVERY",
        -      "RUDDERSTACK",
        -      "SALESFORCE",
        -      "SAP",
        -      "SFTP",
        -      "SHAREPOINT",
        -      "SIGMA",
        -      "SISENSE",
        -      "SLACK",
        -      "SNOWFLAKE",
        -      "SNOWPLOW",
        -      "SODA",
        -      "SQL_MESH",
        -      "SQL_SERVER",
        -      "STITCH",
        -      "STREAMKAP",
        -      "TABLEAU_CLOUD",
        -      "TALEND_CLOUD",
        -      "THOUGHTSPOT",
        -      "TOBIKO_CLOUD",
        -      "WEAVIATE",
        -      "WEBHOOK",
        -      "WELD",
        -      "WINDOWS_SSH"
        -    ],
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "enum": [
        +      "AIRBYTE_CLOUD",
        +      "AIRBYTE_SERVER",
        +      "AIRFLOW",
        +      "ARCH",
        +      "ALTERYX_SERVER",
        +      "ANTHROPIC",
        +      "AWS_EC2",
        +      "AWS_ECS",
        +      "AWS_EMR",
        +      "AWS_EKS",
        +      "AWS_FIREHOSE",
        +      "AWS_GLUE",
        +      "AWS_LAMBDA",
        +      "AWS_RDS",
        +      "AWS_REDSHIFT",
        +      "AWS_S3",
        +      "AWS_BATCH",
        +      "AWS_BEDROCK",
        +      "AWS_SAGEMAKER",
        +      "AWS_SECRETS_MANAGER",
        +      "AWS_SES",
        +      "AWS_STEP_FUNCTIONS",
        +      "AZURE",
        +      "AZURE_CONTAINER_APPS",
        +      "AZURE_DATA_FACTORY",
        +      "AZURE_DATA_LAKE_STORAGE",
        +      "AZURE_KEY_VAULT",
        +      "AZURE_KUBERNETES_SERVICE",
        +      "AZURE_LOGIC_APPS",
        +      "AZURE_SYNAPSE_ANALYTICS",
        +      "AZURE_VM",
        +      "BAUPLAN",
        +      "BOOMI",
        +      "CDATA",
        +      "CENSUS",
        +      "CLICKHOUSE",
        +      "COALESCE",
        +      "COUNT",
        +      "DATADOG",
        +      "DATABRICKS",
        +      "DATAPROC",
        +      "DATAZEN",
        +      "DBT",
        +      "DBT_CORE",
        +      "DLT",
        +      "DOMO",
        +      "DREMIO",
        +      "DUCKDB",
        +      "EMAIL",
        +      "ESTUARY",
        +      "ETLEAP",
        +      "FABRIC",
        +      "FABRIC_SYNAPSE",
        +      "FIVETRAN",
        +      "FORTRA",
        +      "GCP_BIG_QUERY",
        +      "GCP_CLOUD_RUN",
        +      "GCP_CLOUD_FUNCTIONS",
        +      "GCP_CLOUD_STORAGE",
        +      "GCP_DATAFLOW",
        +      "GCP_DATAFORM",
        +      "GCP_DATASTREAM",
        +      "GCP_LOOKER",
        +      "GKE",
        +      "GITHUB_ACTIONS",
        +      "GOOGLE_CLOUD",
        +      "HEVO",
        +      "HEX",
        +      "HIGHTOUCH",
        +      "HTTP",
        +      "HUBSPOT",
        +      "INFORMATICA_IICS",
        +      "INFORMATICA_POWERCENTER",
        +      "KAFKA",
        +      "KEBOOLA",
        +      "KLEENE",
        +      "LIGHTDASH",
        +      "LINUX_SSH",
        +      "MARIADB",
        +      "MATILLION",
        +      "MATILLION_ETL",
        +      "METAPLANE",
        +      "MICROSOFT_TEAMS",
        +      "MICROSTRATEGY",
        +      "MONGODB",
        +      "MOTHERDUCK",
        +      "MYSQL",
        +      "N8N",
        +      "NIMBLE",
        +      "NOTION",
        +      "OMNI",
        +      "OPEN_AI",
        +      "ORCHESTRA",
        +      "PARADIME",
        +      "PAGER_DUTY",
        +      "PINECONE",
        +      "PORTABLE",
        +      "POSTGRES",
        +      "POWER_AUTOMATE",
        +      "POWER_BI",
        +      "PREFECT_CLOUD",
        +      "PYTHON",
        +      "QLIK",
        +      "QLIK_REPLICATE",
        +      "QUICKBOOKS",
        +      "RENDER",
        +      "RIVERY",
        +      "RUDDERSTACK",
        +      "SALESFORCE",
        +      "SAP",
        +      "SFTP",
        +      "SHAREPOINT",
        +      "SIGMA",
        +      "SISENSE",
        +      "SLACK",
        +      "SNOWFLAKE",
        +      "SNOWPLOW",
        +      "SODA",
        +      "SQL_MESH",
        +      "SQL_SERVER",
        +      "STITCH",
        +      "STREAMKAP",
        +      "TABLEAU_CLOUD",
        +      "TALEND_CLOUD",
        +      "THOUGHTSPOT",
        +      "TOBIKO_CLOUD",
        +      "TYPESAFE",
        +      "WEAVIATE",
        +      "WEBHOOK",
        +      "WELD",
        +      "WINDOWS_SSH"
        +    ],
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
    • Changedlist_operations1 field changed
      • changedInput schema / properties / integration / anyOf
        Previous value: -[
        -  {
        -    "enum": [
        -      "AIRBYTE_CLOUD",
        -      "AIRBYTE_SERVER",
        -      "AIRFLOW",
        -      "ARCH",
        -      "ALTERYX_SERVER",
        -      "ANTHROPIC",
        -      "AWS_EC2",
        -      "AWS_ECS",
        -      "AWS_EMR",
        -      "AWS_EKS",
        -      "AWS_FIREHOSE",
        -      "AWS_GLUE",
        -      "AWS_LAMBDA",
        -      "AWS_RDS",
        -      "AWS_REDSHIFT",
        -      "AWS_S3",
        -      "AWS_BEDROCK",
        -      "AWS_SAGEMAKER",
        -      "AWS_SECRETS_MANAGER",
        -      "AWS_SES",
        -      "AWS_STEP_FUNCTIONS",
        -      "AZURE",
        -      "AZURE_CONTAINER_APPS",
        -      "AZURE_DATA_FACTORY",
        -      "AZURE_DATA_LAKE_STORAGE",
        -      "AZURE_KEY_VAULT",
        -      "AZURE_KUBERNETES_SERVICE",
        -      "AZURE_LOGIC_APPS",
        -      "AZURE_SYNAPSE_ANALYTICS",
        -      "AZURE_VM",
        -      "BAUPLAN",
        -      "BOOMI",
        -      "CDATA",
        -      "CENSUS",
        -      "CLICKHOUSE",
        -      "COALESCE",
        -      "COUNT",
        -      "DATADOG",
        -      "DATABRICKS",
        -      "DATAPROC",
        -      "DATAZEN",
        -      "DBT",
        -      "DBT_CORE",
        -      "DLT",
        -      "DOMO",
        -      "DREMIO",
        -      "DUCKDB",
        -      "EMAIL",
        -      "ESTUARY",
        -      "ETLEAP",
        -      "FABRIC",
        -      "FABRIC_SYNAPSE",
        -      "FIVETRAN",
        -      "FORTRA",
        -      "GCP_BIG_QUERY",
        -      "GCP_CLOUD_RUN",
        -      "GCP_CLOUD_FUNCTIONS",
        -      "GCP_CLOUD_STORAGE",
        -      "GCP_DATAFLOW",
        -      "GCP_DATAFORM",
        -      "GCP_DATASTREAM",
        -      "GCP_LOOKER",
        -      "GKE",
        -      "GITHUB_ACTIONS",
        -      "GOOGLE_CLOUD",
        -      "HEVO",
        -      "HEX",
        -      "HIGHTOUCH",
        -      "HTTP",
        -      "HUBSPOT",
        -      "INFORMATICA_IICS",
        -      "INFORMATICA_POWERCENTER",
        -      "KAFKA",
        -      "KEBOOLA",
        -      "KLEENE",
        -      "LIGHTDASH",
        -      "LINUX_SSH",
        -      "MARIADB",
        -      "MATILLION",
        -      "MATILLION_ETL",
        -      "METAPLANE",
        -      "MICROSOFT_TEAMS",
        -      "MICROSTRATEGY",
        -      "MONGODB",
        -      "MOTHERDUCK",
        -      "MYSQL",
        -      "N8N",
        -      "NIMBLE",
        -      "NOTION",
        -      "OMNI",
        -      "OPEN_AI",
        -      "ORCHESTRA",
        -      "PARADIME",
        -      "PAGER_DUTY",
        -      "PINECONE",
        -      "PORTABLE",
        -      "POSTGRES",
        -      "POWER_AUTOMATE",
        -      "POWER_BI",
        -      "PREFECT_CLOUD",
        -      "PYTHON",
        -      "QLIK",
        -      "QLIK_REPLICATE",
        -      "QUICKBOOKS",
        -      "RENDER",
        -      "RIVERY",
        -      "RUDDERSTACK",
        -      "SALESFORCE",
        -      "SAP",
        -      "SFTP",
        -      "SHAREPOINT",
        -      "SIGMA",
        -      "SISENSE",
        -      "SLACK",
        -      "SNOWFLAKE",
        -      "SNOWPLOW",
        -      "SODA",
        -      "SQL_MESH",
        -      "SQL_SERVER",
        -      "STITCH",
        -      "STREAMKAP",
        -      "TABLEAU_CLOUD",
        -      "TALEND_CLOUD",
        -      "THOUGHTSPOT",
        -      "TOBIKO_CLOUD",
        -      "WEAVIATE",
        -      "WEBHOOK",
        -      "WELD",
        -      "WINDOWS_SSH"
        -    ],
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "enum": [
        +      "AIRBYTE_CLOUD",
        +      "AIRBYTE_SERVER",
        +      "AIRFLOW",
        +      "ARCH",
        +      "ALTERYX_SERVER",
        +      "ANTHROPIC",
        +      "AWS_EC2",
        +      "AWS_ECS",
        +      "AWS_EMR",
        +      "AWS_EKS",
        +      "AWS_FIREHOSE",
        +      "AWS_GLUE",
        +      "AWS_LAMBDA",
        +      "AWS_RDS",
        +      "AWS_REDSHIFT",
        +      "AWS_S3",
        +      "AWS_BATCH",
        +      "AWS_BEDROCK",
        +      "AWS_SAGEMAKER",
        +      "AWS_SECRETS_MANAGER",
        +      "AWS_SES",
        +      "AWS_STEP_FUNCTIONS",
        +      "AZURE",
        +      "AZURE_CONTAINER_APPS",
        +      "AZURE_DATA_FACTORY",
        +      "AZURE_DATA_LAKE_STORAGE",
        +      "AZURE_KEY_VAULT",
        +      "AZURE_KUBERNETES_SERVICE",
        +      "AZURE_LOGIC_APPS",
        +      "AZURE_SYNAPSE_ANALYTICS",
        +      "AZURE_VM",
        +      "BAUPLAN",
        +      "BOOMI",
        +      "CDATA",
        +      "CENSUS",
        +      "CLICKHOUSE",
        +      "COALESCE",
        +      "COUNT",
        +      "DATADOG",
        +      "DATABRICKS",
        +      "DATAPROC",
        +      "DATAZEN",
        +      "DBT",
        +      "DBT_CORE",
        +      "DLT",
        +      "DOMO",
        +      "DREMIO",
        +      "DUCKDB",
        +      "EMAIL",
        +      "ESTUARY",
        +      "ETLEAP",
        +      "FABRIC",
        +      "FABRIC_SYNAPSE",
        +      "FIVETRAN",
        +      "FORTRA",
        +      "GCP_BIG_QUERY",
        +      "GCP_CLOUD_RUN",
        +      "GCP_CLOUD_FUNCTIONS",
        +      "GCP_CLOUD_STORAGE",
        +      "GCP_DATAFLOW",
        +      "GCP_DATAFORM",
        +      "GCP_DATASTREAM",
        +      "GCP_LOOKER",
        +      "GKE",
        +      "GITHUB_ACTIONS",
        +      "GOOGLE_CLOUD",
        +      "HEVO",
        +      "HEX",
        +      "HIGHTOUCH",
        +      "HTTP",
        +      "HUBSPOT",
        +      "INFORMATICA_IICS",
        +      "INFORMATICA_POWERCENTER",
        +      "KAFKA",
        +      "KEBOOLA",
        +      "KLEENE",
        +      "LIGHTDASH",
        +      "LINUX_SSH",
        +      "MARIADB",
        +      "MATILLION",
        +      "MATILLION_ETL",
        +      "METAPLANE",
        +      "MICROSOFT_TEAMS",
        +      "MICROSTRATEGY",
        +      "MONGODB",
        +      "MOTHERDUCK",
        +      "MYSQL",
        +      "N8N",
        +      "NIMBLE",
        +      "NOTION",
        +      "OMNI",
        +      "OPEN_AI",
        +      "ORCHESTRA",
        +      "PARADIME",
        +      "PAGER_DUTY",
        +      "PINECONE",
        +      "PORTABLE",
        +      "POSTGRES",
        +      "POWER_AUTOMATE",
        +      "POWER_BI",
        +      "PREFECT_CLOUD",
        +      "PYTHON",
        +      "QLIK",
        +      "QLIK_REPLICATE",
        +      "QUICKBOOKS",
        +      "RENDER",
        +      "RIVERY",
        +      "RUDDERSTACK",
        +      "SALESFORCE",
        +      "SAP",
        +      "SFTP",
        +      "SHAREPOINT",
        +      "SIGMA",
        +      "SISENSE",
        +      "SLACK",
        +      "SNOWFLAKE",
        +      "SNOWPLOW",
        +      "SODA",
        +      "SQL_MESH",
        +      "SQL_SERVER",
        +      "STITCH",
        +      "STREAMKAP",
        +      "TABLEAU_CLOUD",
        +      "TALEND_CLOUD",
        +      "THOUGHTSPOT",
        +      "TOBIKO_CLOUD",
        +      "TYPESAFE",
        +      "WEAVIATE",
        +      "WEBHOOK",
        +      "WELD",
        +      "WINDOWS_SSH"
        +    ],
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
    • Changedlist_pipeline_runs1 field changed
      • changedInput schema / properties / status / description
        Previous value: -"Filter by status. Comma-separated values are supported where the parameter accepts multiple values."New value: +"Filter by status. Comma-separated values are supported where the parameter accepts multiple values. Valid values: QUEUED, CREATED, RUNNING, SUCCEEDED, WARNING, FAILED, SKIPPED, CANCELLING, CANCELLED."
    • Addedlist_skills
    • Addedsend_agent_session_message
    • Addedset_agent_integrations
    • Addedset_agent_skills
    • Changedstart_pipeline12 fields changed
      • removedInput schema / properties / body
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "additionalProperties": false,
        -      "description": "Full webhook request body for triggering a pipeline run.",
        -      "properties": {
        -        "branch": {
        -          "anyOf": [
        -            {
        -              "type": "string"
        -            },
        -            {
        -              "type": "null"
        -            }
        -          ]
        -        },
        -        "ciRunId": {
        -          "anyOf": [
        -            {
        -              "type": "string"
        -            },
        -            {
        -              "type": "null"
        -            }
        -          ]
        -        },
        -        "commit": {
        -          "anyOf": [
        -            {
        -              "type": "string"
        -            },
        -            {
        -              "type": "null"
        -            }
        -          ]
        -        },
        -        "continueDownstreamRun": {
        -          "anyOf": [
        -            {
        -              "type": "boolean"
        -            },
        -            {
        -              "type": "null"
        -            }
        -          ]
        -        },
        -        "data": {
        -          "default": [],
        -          "items": {
        -            "anyOf": [
        -              {
        -                "additionalProperties": false,
        -                "description": "Webhook payload for Airflow DAG run completion notifications.",
        -                "properties": {
        -                  "dagId": {
        -                    "type": "string"
        -                  },
        -                  "dagRunId": {
        -                    "type": "string"
        -                  },
        -                  "integration": {
        -                    "const": "AIRFLOW",
        -                    "type": "string"
        -                  }
        -                },
        -                "required": [
        -                  "integration",
        -                  "dagId",
        -                  "dagRunId"
        -                ],
        -                "type": "object"
        -              }
        -            ]
        -          },
        -          "type": "array"
        -        },
        -        "environment": {
        -          "anyOf": [
        -            {
        -              "type": "string"
        -            },
        -            {
        -              "type": "null"
        -            }
        -          ]
        -        },
        -        "environmentOverrides": {
        -          "anyOf": [
        -            {
        -              "additionalProperties": {
        -                "description": "A typed environment variable value.",
        -                "properties": {
        -                  "type": {
        -                    "enum": [
        -                      "string",
        -                      "int",
        -                      "bool",
        -                      "integration_credential",
        -                      "dict",
        -                      "list"
        -                    ],
        -                    "type": "string"
        -                  },
        -                  "value": {
        -                    "anyOf": [
        -                      {
        -                        "type": "string"
        -                      },
        -                      {
        -                        "type": "boolean"
        -                      },
        -                      {
        -                        "type": "integer"
        -                      },
        -                      {
        -                        "type": "number"
        -                      },
        -                      {
        -                        "additionalProperties": true,
        -                        "type": "object"
        -                      },
        -                      {
        -                        "items": {},
        -                        "type": "array"
        -                      }
        -                    ]
        -                  }
        -                },
        -                "required": [
        -                  "type",
        -                  "value"
        -                ],
        -                "type": "object"
        -              },
        -              "type": "object"
        -            },
        -            {
        -              "type": "null"
        -            }
        -          ]
        -        },
        -        "retryFromFailed": {
        -          "default": false,
        -          "type": "boolean"
        -        },
        -        "runInputs": {
        -          "anyOf": [
        -            {
        -              "additionalProperties": true,
        -              "type": "object"
        -            },
        -            {
        -              "type": "null"
        -            }
        -          ]
        -        },
        -        "taskIds": {
        -          "anyOf": [
        -            {
        -              "items": {
        -                "type": "string"
        -              },
        -              "type": "array"
        -            },
        -            {
        -              "type": "null"
        -            }
        -          ]
        -        },
        -        "versionNumber": {
        -          "anyOf": [
        -            {
        -              "type": "integer"
        -            },
        -            {
        -              "type": "null"
        -            }
        -          ]
        -        }
        -      },
        -      "type": "object"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ]
        -}
      • addedInput schema / properties / branch
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedInput schema / properties / ciRunId
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedInput schema / properties / commit
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedInput schema / properties / continueDownstreamRun
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "boolean"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedInput schema / properties / data
        Added value: +{
        +  "default": [],
        +  "items": {
        +    "anyOf": [
        +      {
        +        "additionalProperties": false,
        +        "description": "Webhook payload for Airflow DAG run completion notifications.",
        +        "properties": {
        +          "dagId": {
        +            "type": "string"
        +          },
        +          "dagRunId": {
        +            "type": "string"
        +          },
        +          "integration": {
        +            "const": "AIRFLOW",
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "integration",
        +          "dagId",
        +          "dagRunId"
        +        ],
        +        "type": "object"
        +      }
        +    ]
        +  },
        +  "type": "array"
        +}
      • addedInput schema / properties / environment
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedInput schema / properties / environmentOverrides
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": {
        +        "description": "A typed environment variable value.",
        +        "properties": {
        +          "type": {
        +            "enum": [
        +              "string",
        +              "int",
        +              "bool",
        +              "integration_credential",
        +              "dict",
        +              "list"
        +            ],
        +            "type": "string"
        +          },
        +          "value": {
        +            "anyOf": [
        +              {
        +                "type": "string"
        +              },
        +              {
        +                "type": "boolean"
        +              },
        +              {
        +                "type": "integer"
        +              },
        +              {
        +                "type": "number"
        +              },
        +              {
        +                "additionalProperties": true,
        +                "type": "object"
        +              },
        +              {
        +                "items": {},
        +                "type": "array"
        +              }
        +            ]
        +          }
        +        },
        +        "required": [
        +          "type",
        +          "value"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedInput schema / properties / retryFromFailed
        Added value: +{
        +  "default": false,
        +  "type": "boolean"
        +}
      • addedInput schema / properties / runInputs
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedInput schema / properties / taskIds
        Added value: +{
        +  "anyOf": [
        +    {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedInput schema / properties / versionNumber
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
    • Addedupdate_agent
    • Changedupdate_incident3 fields changed
      • addedInput schema / properties / assignee
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • changedInput schema / properties / name / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "maxLength": 60,
        +    "minLength": 1,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedInput schema / properties / subscribers
        Added value: +{
        +  "anyOf": [
        +    {
        +      "items": {
        +        "type": "string"
        +      },
        +      "maxItems": 20,
        +      "type": "array"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
    • Addedupdate_incident_settings
    • Addedupdate_integration_connection
    • Changedupdate_monitor8 fields changed
      • changedInput schema / properties / action / description
        Previous value: -"What happens to the events this monitor claimed.\n\n``mute`` claims them and sends no alert - the known-broken-thing case. They are still\nrecorded, on incidents the monitor owns, so a mute is silent without being invisible."New value: +"What happens to the events this monitor claimed.\n\n``mute`` claims them and drops them, with no incident and no alert - the\nknown-broken-thing case."
      • changedInput schema / properties / action / properties / assignee / anyOf
        Previous value: -[
        -  {
        -    "format": "uuid4",
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedInput schema / properties / action / properties / subscribers
        Added value: +{
        +  "default": [],
        +  "items": {
        +    "type": "string"
        +  },
        +  "maxItems": 20,
        +  "type": "array"
        +}
      • changedInput schema / properties / groupBy / items / anyOf
        Previous value: -[
        -  {
        -    "description": "What makes two events this monitor claimed one incident.\n\nEvery value but ``MONITOR`` resolves to a typed column that already exists on\n``incident_events``. ``MONITOR`` means \"everything this monitor claims is one\nincident\", which is served by ``monitor_id`` on the incident instead.",
        -    "enum": [
        -      "asset",
        -      "task",
        -      "pipeline",
        -      "connection",
        -      "monitor"
        -    ],
        -    "type": "string"
        -  },
        -  {
        -    "pattern": "^\\$",
        -    "type": "string"
        -  }
        -]New value: +[
        +  {
        +    "description": "What makes two events this monitor claimed one incident.\n\nEvery value but ``MONITOR`` resolves to a typed column that already exists on\n``incident_events``. ``MONITOR`` means \"everything this monitor claims is one\nincident\", which is served by ``monitor_id`` on the incident instead.",
        +    "enum": [
        +      "asset",
        +      "task",
        +      "pipeline",
        +      "connection",
        +      "monitor"
        +    ],
        +    "type": "string"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "description": "A place on an event body to group on. ``label`` is what the incident's name and alert\ncall the value found at ``path``.",
        +    "properties": {
        +      "label": {
        +        "maxLength": 64,
        +        "minLength": 1,
        +        "pattern": "^[a-zA-Z0-9_.:/-]+$",
        +        "type": "string"
        +      },
        +      "path": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "label",
        +      "path"
        +    ],
        +    "type": "object"
        +  }
        +]
      • changedInput schema / properties / match / description
        Previous value: -"Which events a monitor claims: AND across dimensions, OR within a list.\n\nAt least one dimension has to be given. A monitor matching every dimension by saying\nnothing would claim every event on the account, which is never what an author means."New value: +"Which events a monitor claims: AND across dimensions, OR within a list.\n\nAt least one dimension has to be given. A monitor matching every dimension by saying\nnothing would claim every event on the account, which is never what an author means.\n\n``operation_failures_only`` narrows what the dimensions..."
      • changedInput schema / properties / match / properties / integrations / items / enum
        Previous value: -[
        -  "AIRBYTE_CLOUD",
        -  "AIRBYTE_SERVER",
        -  "AIRFLOW",
        -  "ARCH",
        -  "ALTERYX_SERVER",
        -  "ANTHROPIC",
        -  "AWS_EC2",
        -  "AWS_ECS",
        -  "AWS_EMR",
        -  "AWS_EKS",
        -  "AWS_FIREHOSE",
        -  "AWS_GLUE",
        -  "AWS_LAMBDA",
        -  "AWS_RDS",
        -  "AWS_REDSHIFT",
        -  "AWS_S3",
        -  "AWS_BEDROCK",
        -  "AWS_SAGEMAKER",
        -  "AWS_SECRETS_MANAGER",
        -  "AWS_SES",
        -  "AWS_STEP_FUNCTIONS",
        -  "AZURE",
        -  "AZURE_CONTAINER_APPS",
        -  "AZURE_DATA_FACTORY",
        -  "AZURE_DATA_LAKE_STORAGE",
        -  "AZURE_KEY_VAULT",
        -  "AZURE_KUBERNETES_SERVICE",
        -  "AZURE_LOGIC_APPS",
        -  "AZURE_SYNAPSE_ANALYTICS",
        -  "AZURE_VM",
        -  "BAUPLAN",
        -  "BOOMI",
        -  "CDATA",
        -  "CENSUS",
        -  "CLICKHOUSE",
        -  "COALESCE",
        -  "COUNT",
        -  "DATADOG",
        -  "DATABRICKS",
        -  "DATAPROC",
        -  "DATAZEN",
        -  "DBT",
        -  "DBT_CORE",
        -  "DLT",
        -  "DOMO",
        -  "DREMIO",
        -  "DUCKDB",
        -  "EMAIL",
        -  "ESTUARY",
        -  "ETLEAP",
        -  "FABRIC",
        -  "FABRIC_SYNAPSE",
        -  "FIVETRAN",
        -  "FORTRA",
        -  "GCP_BIG_QUERY",
        -  "GCP_CLOUD_RUN",
        -  "GCP_CLOUD_FUNCTIONS",
        -  "GCP_CLOUD_STORAGE",
        -  "GCP_DATAFLOW",
        -  "GCP_DATAFORM",
        -  "GCP_DATASTREAM",
        -  "GCP_LOOKER",
        -  "GKE",
        -  "GITHUB_ACTIONS",
        -  "GOOGLE_CLOUD",
        -  "HEVO",
        -  "HEX",
        -  "HIGHTOUCH",
        -  "HTTP",
        -  "HUBSPOT",
        -  "INFORMATICA_IICS",
        -  "INFORMATICA_POWERCENTER",
        -  "KAFKA",
        -  "KEBOOLA",
        -  "KLEENE",
        -  "LIGHTDASH",
        -  "LINUX_SSH",
        -  "MARIADB",
        -  "MATILLION",
        -  "MATILLION_ETL",
        -  "METAPLANE",
        -  "MICROSOFT_TEAMS",
        -  "MICROSTRATEGY",
        -  "MONGODB",
        -  "MOTHERDUCK",
        -  "MYSQL",
        -  "N8N",
        -  "NIMBLE",
        -  "NOTION",
        -  "OMNI",
        -  "OPEN_AI",
        -  "ORCHESTRA",
        -  "PARADIME",
        -  "PAGER_DUTY",
        -  "PINECONE",
        -  "PORTABLE",
        -  "POSTGRES",
        -  "POWER_AUTOMATE",
        -  "POWER_BI",
        -  "PREFECT_CLOUD",
        -  "PYTHON",
        -  "QLIK",
        -  "QLIK_REPLICATE",
        -  "QUICKBOOKS",
        -  "RENDER",
        -  "RIVERY",
        -  "RUDDERSTACK",
        -  "SALESFORCE",
        -  "SAP",
        -  "SFTP",
        -  "SHAREPOINT",
        -  "SIGMA",
        -  "SISENSE",
        -  "SLACK",
        -  "SNOWFLAKE",
        -  "SNOWPLOW",
        -  "SODA",
        -  "SQL_MESH",
        -  "SQL_SERVER",
        -  "STITCH",
        -  "STREAMKAP",
        -  "TABLEAU_CLOUD",
        -  "TALEND_CLOUD",
        -  "THOUGHTSPOT",
        -  "TOBIKO_CLOUD",
        -  "WEAVIATE",
        -  "WEBHOOK",
        -  "WELD",
        -  "WINDOWS_SSH"
        -]New value: +[
        +  "AIRBYTE_CLOUD",
        +  "AIRBYTE_SERVER",
        +  "AIRFLOW",
        +  "ARCH",
        +  "ALTERYX_SERVER",
        +  "ANTHROPIC",
        +  "AWS_EC2",
        +  "AWS_ECS",
        +  "AWS_EMR",
        +  "AWS_EKS",
        +  "AWS_FIREHOSE",
        +  "AWS_GLUE",
        +  "AWS_LAMBDA",
        +  "AWS_RDS",
        +  "AWS_REDSHIFT",
        +  "AWS_S3",
        +  "AWS_BATCH",
        +  "AWS_BEDROCK",
        +  "AWS_SAGEMAKER",
        +  "AWS_SECRETS_MANAGER",
        +  "AWS_SES",
        +  "AWS_STEP_FUNCTIONS",
        +  "AZURE",
        +  "AZURE_CONTAINER_APPS",
        +  "AZURE_DATA_FACTORY",
        +  "AZURE_DATA_LAKE_STORAGE",
        +  "AZURE_KEY_VAULT",
        +  "AZURE_KUBERNETES_SERVICE",
        +  "AZURE_LOGIC_APPS",
        +  "AZURE_SYNAPSE_ANALYTICS",
        +  "AZURE_VM",
        +  "BAUPLAN",
        +  "BOOMI",
        +  "CDATA",
        +  "CENSUS",
        +  "CLICKHOUSE",
        +  "COALESCE",
        +  "COUNT",
        +  "DATADOG",
        +  "DATABRICKS",
        +  "DATAPROC",
        +  "DATAZEN",
        +  "DBT",
        +  "DBT_CORE",
        +  "DLT",
        +  "DOMO",
        +  "DREMIO",
        +  "DUCKDB",
        +  "EMAIL",
        +  "ESTUARY",
        +  "ETLEAP",
        +  "FABRIC",
        +  "FABRIC_SYNAPSE",
        +  "FIVETRAN",
        +  "FORTRA",
        +  "GCP_BIG_QUERY",
        +  "GCP_CLOUD_RUN",
        +  "GCP_CLOUD_FUNCTIONS",
        +  "GCP_CLOUD_STORAGE",
        +  "GCP_DATAFLOW",
        +  "GCP_DATAFORM",
        +  "GCP_DATASTREAM",
        +  "GCP_LOOKER",
        +  "GKE",
        +  "GITHUB_ACTIONS",
        +  "GOOGLE_CLOUD",
        +  "HEVO",
        +  "HEX",
        +  "HIGHTOUCH",
        +  "HTTP",
        +  "HUBSPOT",
        +  "INFORMATICA_IICS",
        +  "INFORMATICA_POWERCENTER",
        +  "KAFKA",
        +  "KEBOOLA",
        +  "KLEENE",
        +  "LIGHTDASH",
        +  "LINUX_SSH",
        +  "MARIADB",
        +  "MATILLION",
        +  "MATILLION_ETL",
        +  "METAPLANE",
        +  "MICROSOFT_TEAMS",
        +  "MICROSTRATEGY",
        +  "MONGODB",
        +  "MOTHERDUCK",
        +  "MYSQL",
        +  "N8N",
        +  "NIMBLE",
        +  "NOTION",
        +  "OMNI",
        +  "OPEN_AI",
        +  "ORCHESTRA",
        +  "PARADIME",
        +  "PAGER_DUTY",
        +  "PINECONE",
        +  "PORTABLE",
        +  "POSTGRES",
        +  "POWER_AUTOMATE",
        +  "POWER_BI",
        +  "PREFECT_CLOUD",
        +  "PYTHON",
        +  "QLIK",
        +  "QLIK_REPLICATE",
        +  "QUICKBOOKS",
        +  "RENDER",
        +  "RIVERY",
        +  "RUDDERSTACK",
        +  "SALESFORCE",
        +  "SAP",
        +  "SFTP",
        +  "SHAREPOINT",
        +  "SIGMA",
        +  "SISENSE",
        +  "SLACK",
        +  "SNOWFLAKE",
        +  "SNOWPLOW",
        +  "SODA",
        +  "SQL_MESH",
        +  "SQL_SERVER",
        +  "STITCH",
        +  "STREAMKAP",
        +  "TABLEAU_CLOUD",
        +  "TALEND_CLOUD",
        +  "THOUGHTSPOT",
        +  "TOBIKO_CLOUD",
        +  "TYPESAFE",
        +  "WEAVIATE",
        +  "WEBHOOK",
        +  "WELD",
        +  "WINDOWS_SSH"
        +]
      • addedInput schema / properties / match / properties / operationFailuresOnly
        Added value: +{
        +  "default": false,
        +  "type": "boolean"
        +}
      • addedInput schema / properties / name / maxLength
        Added value: +100
    • Addedupdate_skill
  2. 4 tool updatesv0.1.2
    • Changedcreate_monitor5 fields changed
      • addedInput schema / properties / groupBy / items / anyOf
        Added value: +[
        +  {
        +    "description": "What makes two events this monitor claimed one incident.\n\nEvery value but ``MONITOR`` resolves to a typed column that already exists on\n``incident_events``. ``MONITOR`` means \"everything this monitor claims is one\nincident\", which is served by ``monitor_id`` on the incident instead.",
        +    "enum": [
        +      "asset",
        +      "task",
        +      "pipeline",
        +      "connection",
        +      "monitor"
        +    ],
        +    "type": "string"
        +  },
        +  {
        +    "pattern": "^\\$",
        +    "type": "string"
        +  }
        +]
      • removedInput schema / properties / groupBy / items / description
        Removed value: -"What makes two events this monitor claimed one incident.\n\nEvery value but ``MONITOR`` resolves to a typed column that already exists on\n``incident_events``. ``MONITOR`` means \"everything this monitor claims is one\nincident\", which is served by ``monitor_id`` on the incident instead."
      • removedInput schema / properties / groupBy / items / enum
        Removed value: -[
        -  "asset",
        -  "task",
        -  "pipeline",
        -  "connection",
        -  "monitor"
        -]
      • removedInput schema / properties / groupBy / items / type
        Removed value: -"string"
      • addedInput schema / properties / groupBy / maxItems
        Added value: +32
    • Addedget_incident_external_event
    • Changedupdate_monitor5 fields changed
      • addedInput schema / properties / groupBy / items / anyOf
        Added value: +[
        +  {
        +    "description": "What makes two events this monitor claimed one incident.\n\nEvery value but ``MONITOR`` resolves to a typed column that already exists on\n``incident_events``. ``MONITOR`` means \"everything this monitor claims is one\nincident\", which is served by ``monitor_id`` on the incident instead.",
        +    "enum": [
        +      "asset",
        +      "task",
        +      "pipeline",
        +      "connection",
        +      "monitor"
        +    ],
        +    "type": "string"
        +  },
        +  {
        +    "pattern": "^\\$",
        +    "type": "string"
        +  }
        +]
      • removedInput schema / properties / groupBy / items / description
        Removed value: -"What makes two events this monitor claimed one incident.\n\nEvery value but ``MONITOR`` resolves to a typed column that already exists on\n``incident_events``. ``MONITOR`` means \"everything this monitor claims is one\nincident\", which is served by ``monitor_id`` on the incident instead."
      • removedInput schema / properties / groupBy / items / enum
        Removed value: -[
        -  "asset",
        -  "task",
        -  "pipeline",
        -  "connection",
        -  "monitor"
        -]
      • removedInput schema / properties / groupBy / items / type
        Removed value: -"string"
      • addedInput schema / properties / groupBy / maxItems
        Added value: +32
    • Changedvalidate_pipeline5 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties / account_id
        Added value: +{
        +  "anyOf": [
        +    {
        +      "format": "uuid4",
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Act on this account rather than the one the credential resolves to. Omit it to use the credential's own account. An API key is issued to a single account, so it may only name that account; an OAuth token may name any account its grant covers."
        +}
      • addedInput schema / properties / pipeline_definition / additionalProperties
        Added value: +true
      • removedInput schema / properties / pipeline_definition / title
        Removed value: -"Pipeline Definition"
      • addedInput schema / properties / pipeline_definition / type
        Added value: +"object"
  3. 12 tool updatesv0.1.1
    • Changedcreate_incident_comment1 field changed
      • addedInput schema / properties / description
        Added value: +{
        +  "anyOf": [
        +    {
        +      "maxLength": 500,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "A summary of the cause to set as the incident's description, written in the same call as the diagnosis. Only accepted with AI_DIAGNOSIS_COMPLETED or AI_DIAGNOSIS_FAILED, and not applied over a description a person wrote."
        +}
    • Changedcreate_monitor6 fields changed
      • changedInput schema / properties / match / properties / integrations / items / enum
        Previous value: -[
        -  "AIRBYTE_CLOUD",
        -  "AIRBYTE_SERVER",
        -  "AIRFLOW",
        -  "ARCH",
        -  "ALTERYX_SERVER",
        -  "ANTHROPIC",
        -  "AWS_EC2",
        -  "AWS_ECS",
        -  "AWS_EMR",
        -  "AWS_EKS",
        -  "AWS_FIREHOSE",
        -  "AWS_GLUE",
        -  "AWS_LAMBDA",
        -  "AWS_RDS",
        -  "AWS_REDSHIFT",
        -  "AWS_S3",
        -  "AWS_BEDROCK",
        -  "AWS_SAGEMAKER",
        -  "AWS_SECRETS_MANAGER",
        -  "AWS_SES",
        -  "AWS_STEP_FUNCTIONS",
        -  "AZURE",
        -  "AZURE_CONTAINER_APPS",
        -  "AZURE_DATA_FACTORY",
        -  "AZURE_DATA_LAKE_STORAGE",
        -  "AZURE_KEY_VAULT",
        -  "AZURE_KUBERNETES_SERVICE",
        -  "AZURE_LOGIC_APPS",
        -  "AZURE_SYNAPSE_ANALYTICS",
        -  "AZURE_VM",
        -  "BAUPLAN",
        -  "BOOMI",
        -  "CDATA",
        -  "CENSUS",
        -  "CLICKHOUSE",
        -  "COALESCE",
        -  "COUNT",
        -  "DATADOG",
        -  "DATABRICKS",
        -  "DATAPROC",
        -  "DATAZEN",
        -  "DBT",
        -  "DBT_CORE",
        -  "DLT",
        -  "DOMO",
        -  "DREMIO",
        -  "DUCKDB",
        -  "EMAIL",
        -  "ESTUARY",
        -  "ETLEAP",
        -  "FABRIC",
        -  "FABRIC_SYNAPSE",
        -  "FIVETRAN",
        -  "FORTRA",
        -  "GCP_BIG_QUERY",
        -  "GCP_CLOUD_RUN",
        -  "GCP_CLOUD_FUNCTIONS",
        -  "GCP_CLOUD_STORAGE",
        -  "GCP_DATAFLOW",
        -  "GCP_DATAFORM",
        -  "GCP_DATASTREAM",
        -  "GCP_LOOKER",
        -  "GKE",
        -  "GITHUB_ACTIONS",
        -  "GOOGLE_CLOUD",
        -  "HEVO",
        -  "HEX",
        -  "HIGHTOUCH",
        -  "HTTP",
        -  "HUBSPOT",
        -  "INFORMATICA_IICS",
        -  "INFORMATICA_POWERCENTER",
        -  "KAFKA",
        -  "KEBOOLA",
        -  "KLEENE",
        -  "LIGHTDASH",
        -  "LINUX_SSH",
        -  "MATILLION",
        -  "MATILLION_ETL",
        -  "METAPLANE",
        -  "MICROSOFT_TEAMS",
        -  "MICROSTRATEGY",
        -  "MONGODB",
        -  "MOTHERDUCK",
        -  "MYSQL",
        -  "N8N",
        -  "NIMBLE",
        -  "NOTION",
        -  "OMNI",
        -  "OPEN_AI",
        -  "ORCHESTRA",
        -  "PARADIME",
        -  "PAGER_DUTY",
        -  "PINECONE",
        -  "PORTABLE",
        -  "POSTGRES",
        -  "POWER_AUTOMATE",
        -  "POWER_BI",
        -  "PREFECT_CLOUD",
        -  "PYTHON",
        -  "QLIK",
        -  "QLIK_REPLICATE",
        -  "QUICKBOOKS",
        -  "RENDER",
        -  "RIVERY",
        -  "RUDDERSTACK",
        -  "SALESFORCE",
        -  "SAP",
        -  "SFTP",
        -  "SHAREPOINT",
        -  "SIGMA",
        -  "SISENSE",
        -  "SLACK",
        -  "SNOWFLAKE",
        -  "SNOWPLOW",
        -  "SODA",
        -  "SQL_MESH",
        -  "SQL_SERVER",
        -  "STITCH",
        -  "STREAMKAP",
        -  "TABLEAU_CLOUD",
        -  "TALEND_CLOUD",
        -  "THOUGHTSPOT",
        -  "TOBIKO_CLOUD",
        -  "WEAVIATE",
        -  "WEBHOOK",
        -  "WELD",
        -  "WINDOWS_SSH"
        -]New value: +[
        +  "AIRBYTE_CLOUD",
        +  "AIRBYTE_SERVER",
        +  "AIRFLOW",
        +  "ARCH",
        +  "ALTERYX_SERVER",
        +  "ANTHROPIC",
        +  "AWS_EC2",
        +  "AWS_ECS",
        +  "AWS_EMR",
        +  "AWS_EKS",
        +  "AWS_FIREHOSE",
        +  "AWS_GLUE",
        +  "AWS_LAMBDA",
        +  "AWS_RDS",
        +  "AWS_REDSHIFT",
        +  "AWS_S3",
        +  "AWS_BEDROCK",
        +  "AWS_SAGEMAKER",
        +  "AWS_SECRETS_MANAGER",
        +  "AWS_SES",
        +  "AWS_STEP_FUNCTIONS",
        +  "AZURE",
        +  "AZURE_CONTAINER_APPS",
        +  "AZURE_DATA_FACTORY",
        +  "AZURE_DATA_LAKE_STORAGE",
        +  "AZURE_KEY_VAULT",
        +  "AZURE_KUBERNETES_SERVICE",
        +  "AZURE_LOGIC_APPS",
        +  "AZURE_SYNAPSE_ANALYTICS",
        +  "AZURE_VM",
        +  "BAUPLAN",
        +  "BOOMI",
        +  "CDATA",
        +  "CENSUS",
        +  "CLICKHOUSE",
        +  "COALESCE",
        +  "COUNT",
        +  "DATADOG",
        +  "DATABRICKS",
        +  "DATAPROC",
        +  "DATAZEN",
        +  "DBT",
        +  "DBT_CORE",
        +  "DLT",
        +  "DOMO",
        +  "DREMIO",
        +  "DUCKDB",
        +  "EMAIL",
        +  "ESTUARY",
        +  "ETLEAP",
        +  "FABRIC",
        +  "FABRIC_SYNAPSE",
        +  "FIVETRAN",
        +  "FORTRA",
        +  "GCP_BIG_QUERY",
        +  "GCP_CLOUD_RUN",
        +  "GCP_CLOUD_FUNCTIONS",
        +  "GCP_CLOUD_STORAGE",
        +  "GCP_DATAFLOW",
        +  "GCP_DATAFORM",
        +  "GCP_DATASTREAM",
        +  "GCP_LOOKER",
        +  "GKE",
        +  "GITHUB_ACTIONS",
        +  "GOOGLE_CLOUD",
        +  "HEVO",
        +  "HEX",
        +  "HIGHTOUCH",
        +  "HTTP",
        +  "HUBSPOT",
        +  "INFORMATICA_IICS",
        +  "INFORMATICA_POWERCENTER",
        +  "KAFKA",
        +  "KEBOOLA",
        +  "KLEENE",
        +  "LIGHTDASH",
        +  "LINUX_SSH",
        +  "MARIADB",
        +  "MATILLION",
        +  "MATILLION_ETL",
        +  "METAPLANE",
        +  "MICROSOFT_TEAMS",
        +  "MICROSTRATEGY",
        +  "MONGODB",
        +  "MOTHERDUCK",
        +  "MYSQL",
        +  "N8N",
        +  "NIMBLE",
        +  "NOTION",
        +  "OMNI",
        +  "OPEN_AI",
        +  "ORCHESTRA",
        +  "PARADIME",
        +  "PAGER_DUTY",
        +  "PINECONE",
        +  "PORTABLE",
        +  "POSTGRES",
        +  "POWER_AUTOMATE",
        +  "POWER_BI",
        +  "PREFECT_CLOUD",
        +  "PYTHON",
        +  "QLIK",
        +  "QLIK_REPLICATE",
        +  "QUICKBOOKS",
        +  "RENDER",
        +  "RIVERY",
        +  "RUDDERSTACK",
        +  "SALESFORCE",
        +  "SAP",
        +  "SFTP",
        +  "SHAREPOINT",
        +  "SIGMA",
        +  "SISENSE",
        +  "SLACK",
        +  "SNOWFLAKE",
        +  "SNOWPLOW",
        +  "SODA",
        +  "SQL_MESH",
        +  "SQL_SERVER",
        +  "STITCH",
        +  "STREAMKAP",
        +  "TABLEAU_CLOUD",
        +  "TALEND_CLOUD",
        +  "THOUGHTSPOT",
        +  "TOBIKO_CLOUD",
        +  "WEAVIATE",
        +  "WEBHOOK",
        +  "WELD",
        +  "WINDOWS_SSH"
        +]
      • addedInput schema / properties / match / properties / labels
        Added value: +{
        +  "additionalProperties": {
        +    "items": {
        +      "additionalProperties": false,
        +      "description": "One place on an event body a label is read from, and the values that match there.",
        +      "properties": {
        +        "path": {
        +          "type": "string"
        +        },
        +        "values": {
        +          "items": {
        +            "type": "string"
        +          },
        +          "minItems": 1,
        +          "type": "array"
        +        }
        +      },
        +      "required": [
        +        "path",
        +        "values"
        +      ],
        +      "type": "object"
        +    },
        +    "minItems": 1,
        +    "type": "array"
        +  },
        +  "maxProperties": 32,
        +  "propertyNames": {
        +    "maxLength": 64,
        +    "minLength": 1,
        +    "pattern": "^[a-zA-Z0-9_.:/-]+$",
        +    "type": "string"
        +  },
        +  "type": "object"
        +}
      • addedInput schema / properties / order / anyOf
        Added value: +[
        +  {
        +    "type": "integer"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedInput schema / properties / order / default
        Removed value: -0
      • removedInput schema / properties / order / type
        Removed value: -"integer"
      • removedInput schema / properties / window
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "format": "duration",
        -      "gt": "PT0S",
        -      "type": "string"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ]
        -}
    • Changeddiagnose1 field changed
      • addedInput schema / properties / account_id
        Added value: +{
        +  "anyOf": [
        +    {
        +      "format": "uuid4",
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Act on this account rather than the one the credential resolves to. Omit it to use the credential's own account. An API key is issued to a single account, so it may only name that account; an OAuth token may name any account its grant covers."
        +}
    • Changeddownload_task_run_artifact1 field changed
      • addedInput schema / properties / account_id
        Added value: +{
        +  "anyOf": [
        +    {
        +      "format": "uuid4",
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Act on this account rather than the one the credential resolves to. Omit it to use the credential's own account. An API key is issued to a single account, so it may only name that account; an OAuth token may name any account its grant covers."
        +}
    • Changeddownload_task_run_log1 field changed
      • addedInput schema / properties / account_id
        Added value: +{
        +  "anyOf": [
        +    {
        +      "format": "uuid4",
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Act on this account rather than the one the credential resolves to. Omit it to use the credential's own account. An API key is issued to a single account, so it may only name that account; an OAuth token may name any account its grant covers."
        +}
    • Changedget_integration_state_for_state_aware1 field changed
      • changedInput schema / properties / integration / enum
        Previous value: -[
        -  "AIRBYTE_CLOUD",
        -  "AIRBYTE_SERVER",
        -  "AIRFLOW",
        -  "ARCH",
        -  "ALTERYX_SERVER",
        -  "ANTHROPIC",
        -  "AWS_EC2",
        -  "AWS_ECS",
        -  "AWS_EMR",
        -  "AWS_EKS",
        -  "AWS_FIREHOSE",
        -  "AWS_GLUE",
        -  "AWS_LAMBDA",
        -  "AWS_RDS",
        -  "AWS_REDSHIFT",
        -  "AWS_S3",
        -  "AWS_BEDROCK",
        -  "AWS_SAGEMAKER",
        -  "AWS_SECRETS_MANAGER",
        -  "AWS_SES",
        -  "AWS_STEP_FUNCTIONS",
        -  "AZURE",
        -  "AZURE_CONTAINER_APPS",
        -  "AZURE_DATA_FACTORY",
        -  "AZURE_DATA_LAKE_STORAGE",
        -  "AZURE_KEY_VAULT",
        -  "AZURE_KUBERNETES_SERVICE",
        -  "AZURE_LOGIC_APPS",
        -  "AZURE_SYNAPSE_ANALYTICS",
        -  "AZURE_VM",
        -  "BAUPLAN",
        -  "BOOMI",
        -  "CDATA",
        -  "CENSUS",
        -  "CLICKHOUSE",
        -  "COALESCE",
        -  "COUNT",
        -  "DATADOG",
        -  "DATABRICKS",
        -  "DATAPROC",
        -  "DATAZEN",
        -  "DBT",
        -  "DBT_CORE",
        -  "DLT",
        -  "DOMO",
        -  "DREMIO",
        -  "DUCKDB",
        -  "EMAIL",
        -  "ESTUARY",
        -  "ETLEAP",
        -  "FABRIC",
        -  "FABRIC_SYNAPSE",
        -  "FIVETRAN",
        -  "FORTRA",
        -  "GCP_BIG_QUERY",
        -  "GCP_CLOUD_RUN",
        -  "GCP_CLOUD_FUNCTIONS",
        -  "GCP_CLOUD_STORAGE",
        -  "GCP_DATAFLOW",
        -  "GCP_DATAFORM",
        -  "GCP_DATASTREAM",
        -  "GCP_LOOKER",
        -  "GKE",
        -  "GITHUB_ACTIONS",
        -  "GOOGLE_CLOUD",
        -  "HEVO",
        -  "HEX",
        -  "HIGHTOUCH",
        -  "HTTP",
        -  "HUBSPOT",
        -  "INFORMATICA_IICS",
        -  "INFORMATICA_POWERCENTER",
        -  "KAFKA",
        -  "KEBOOLA",
        -  "KLEENE",
        -  "LIGHTDASH",
        -  "LINUX_SSH",
        -  "MATILLION",
        -  "MATILLION_ETL",
        -  "METAPLANE",
        -  "MICROSOFT_TEAMS",
        -  "MICROSTRATEGY",
        -  "MONGODB",
        -  "MOTHERDUCK",
        -  "MYSQL",
        -  "N8N",
        -  "NIMBLE",
        -  "NOTION",
        -  "OMNI",
        -  "OPEN_AI",
        -  "ORCHESTRA",
        -  "PARADIME",
        -  "PAGER_DUTY",
        -  "PINECONE",
        -  "PORTABLE",
        -  "POSTGRES",
        -  "POWER_AUTOMATE",
        -  "POWER_BI",
        -  "PREFECT_CLOUD",
        -  "PYTHON",
        -  "QLIK",
        -  "QLIK_REPLICATE",
        -  "QUICKBOOKS",
        -  "RENDER",
        -  "RIVERY",
        -  "RUDDERSTACK",
        -  "SALESFORCE",
        -  "SAP",
        -  "SFTP",
        -  "SHAREPOINT",
        -  "SIGMA",
        -  "SISENSE",
        -  "SLACK",
        -  "SNOWFLAKE",
        -  "SNOWPLOW",
        -  "SODA",
        -  "SQL_MESH",
        -  "SQL_SERVER",
        -  "STITCH",
        -  "STREAMKAP",
        -  "TABLEAU_CLOUD",
        -  "TALEND_CLOUD",
        -  "THOUGHTSPOT",
        -  "TOBIKO_CLOUD",
        -  "WEAVIATE",
        -  "WEBHOOK",
        -  "WELD",
        -  "WINDOWS_SSH"
        -]New value: +[
        +  "AIRBYTE_CLOUD",
        +  "AIRBYTE_SERVER",
        +  "AIRFLOW",
        +  "ARCH",
        +  "ALTERYX_SERVER",
        +  "ANTHROPIC",
        +  "AWS_EC2",
        +  "AWS_ECS",
        +  "AWS_EMR",
        +  "AWS_EKS",
        +  "AWS_FIREHOSE",
        +  "AWS_GLUE",
        +  "AWS_LAMBDA",
        +  "AWS_RDS",
        +  "AWS_REDSHIFT",
        +  "AWS_S3",
        +  "AWS_BEDROCK",
        +  "AWS_SAGEMAKER",
        +  "AWS_SECRETS_MANAGER",
        +  "AWS_SES",
        +  "AWS_STEP_FUNCTIONS",
        +  "AZURE",
        +  "AZURE_CONTAINER_APPS",
        +  "AZURE_DATA_FACTORY",
        +  "AZURE_DATA_LAKE_STORAGE",
        +  "AZURE_KEY_VAULT",
        +  "AZURE_KUBERNETES_SERVICE",
        +  "AZURE_LOGIC_APPS",
        +  "AZURE_SYNAPSE_ANALYTICS",
        +  "AZURE_VM",
        +  "BAUPLAN",
        +  "BOOMI",
        +  "CDATA",
        +  "CENSUS",
        +  "CLICKHOUSE",
        +  "COALESCE",
        +  "COUNT",
        +  "DATADOG",
        +  "DATABRICKS",
        +  "DATAPROC",
        +  "DATAZEN",
        +  "DBT",
        +  "DBT_CORE",
        +  "DLT",
        +  "DOMO",
        +  "DREMIO",
        +  "DUCKDB",
        +  "EMAIL",
        +  "ESTUARY",
        +  "ETLEAP",
        +  "FABRIC",
        +  "FABRIC_SYNAPSE",
        +  "FIVETRAN",
        +  "FORTRA",
        +  "GCP_BIG_QUERY",
        +  "GCP_CLOUD_RUN",
        +  "GCP_CLOUD_FUNCTIONS",
        +  "GCP_CLOUD_STORAGE",
        +  "GCP_DATAFLOW",
        +  "GCP_DATAFORM",
        +  "GCP_DATASTREAM",
        +  "GCP_LOOKER",
        +  "GKE",
        +  "GITHUB_ACTIONS",
        +  "GOOGLE_CLOUD",
        +  "HEVO",
        +  "HEX",
        +  "HIGHTOUCH",
        +  "HTTP",
        +  "HUBSPOT",
        +  "INFORMATICA_IICS",
        +  "INFORMATICA_POWERCENTER",
        +  "KAFKA",
        +  "KEBOOLA",
        +  "KLEENE",
        +  "LIGHTDASH",
        +  "LINUX_SSH",
        +  "MARIADB",
        +  "MATILLION",
        +  "MATILLION_ETL",
        +  "METAPLANE",
        +  "MICROSOFT_TEAMS",
        +  "MICROSTRATEGY",
        +  "MONGODB",
        +  "MOTHERDUCK",
        +  "MYSQL",
        +  "N8N",
        +  "NIMBLE",
        +  "NOTION",
        +  "OMNI",
        +  "OPEN_AI",
        +  "ORCHESTRA",
        +  "PARADIME",
        +  "PAGER_DUTY",
        +  "PINECONE",
        +  "PORTABLE",
        +  "POSTGRES",
        +  "POWER_AUTOMATE",
        +  "POWER_BI",
        +  "PREFECT_CLOUD",
        +  "PYTHON",
        +  "QLIK",
        +  "QLIK_REPLICATE",
        +  "QUICKBOOKS",
        +  "RENDER",
        +  "RIVERY",
        +  "RUDDERSTACK",
        +  "SALESFORCE",
        +  "SAP",
        +  "SFTP",
        +  "SHAREPOINT",
        +  "SIGMA",
        +  "SISENSE",
        +  "SLACK",
        +  "SNOWFLAKE",
        +  "SNOWPLOW",
        +  "SODA",
        +  "SQL_MESH",
        +  "SQL_SERVER",
        +  "STITCH",
        +  "STREAMKAP",
        +  "TABLEAU_CLOUD",
        +  "TALEND_CLOUD",
        +  "THOUGHTSPOT",
        +  "TOBIKO_CLOUD",
        +  "WEAVIATE",
        +  "WEBHOOK",
        +  "WELD",
        +  "WINDOWS_SSH"
        +]
    • Changedlist_assets1 field changed
      • changedInput schema / properties / integration / anyOf
        Previous value: -[
        -  {
        -    "enum": [
        -      "AIRBYTE_CLOUD",
        -      "AIRBYTE_SERVER",
        -      "AIRFLOW",
        -      "ARCH",
        -      "ALTERYX_SERVER",
        -      "ANTHROPIC",
        -      "AWS_EC2",
        -      "AWS_ECS",
        -      "AWS_EMR",
        -      "AWS_EKS",
        -      "AWS_FIREHOSE",
        -      "AWS_GLUE",
        -      "AWS_LAMBDA",
        -      "AWS_RDS",
        -      "AWS_REDSHIFT",
        -      "AWS_S3",
        -      "AWS_BEDROCK",
        -      "AWS_SAGEMAKER",
        -      "AWS_SECRETS_MANAGER",
        -      "AWS_SES",
        -      "AWS_STEP_FUNCTIONS",
        -      "AZURE",
        -      "AZURE_CONTAINER_APPS",
        -      "AZURE_DATA_FACTORY",
        -      "AZURE_DATA_LAKE_STORAGE",
        -      "AZURE_KEY_VAULT",
        -      "AZURE_KUBERNETES_SERVICE",
        -      "AZURE_LOGIC_APPS",
        -      "AZURE_SYNAPSE_ANALYTICS",
        -      "AZURE_VM",
        -      "BAUPLAN",
        -      "BOOMI",
        -      "CDATA",
        -      "CENSUS",
        -      "CLICKHOUSE",
        -      "COALESCE",
        -      "COUNT",
        -      "DATADOG",
        -      "DATABRICKS",
        -      "DATAPROC",
        -      "DATAZEN",
        -      "DBT",
        -      "DBT_CORE",
        -      "DLT",
        -      "DOMO",
        -      "DREMIO",
        -      "DUCKDB",
        -      "EMAIL",
        -      "ESTUARY",
        -      "ETLEAP",
        -      "FABRIC",
        -      "FABRIC_SYNAPSE",
        -      "FIVETRAN",
        -      "FORTRA",
        -      "GCP_BIG_QUERY",
        -      "GCP_CLOUD_RUN",
        -      "GCP_CLOUD_FUNCTIONS",
        -      "GCP_CLOUD_STORAGE",
        -      "GCP_DATAFLOW",
        -      "GCP_DATAFORM",
        -      "GCP_DATASTREAM",
        -      "GCP_LOOKER",
        -      "GKE",
        -      "GITHUB_ACTIONS",
        -      "GOOGLE_CLOUD",
        -      "HEVO",
        -      "HEX",
        -      "HIGHTOUCH",
        -      "HTTP",
        -      "HUBSPOT",
        -      "INFORMATICA_IICS",
        -      "INFORMATICA_POWERCENTER",
        -      "KAFKA",
        -      "KEBOOLA",
        -      "KLEENE",
        -      "LIGHTDASH",
        -      "LINUX_SSH",
        -      "MATILLION",
        -      "MATILLION_ETL",
        -      "METAPLANE",
        -      "MICROSOFT_TEAMS",
        -      "MICROSTRATEGY",
        -      "MONGODB",
        -      "MOTHERDUCK",
        -      "MYSQL",
        -      "N8N",
        -      "NIMBLE",
        -      "NOTION",
        -      "OMNI",
        -      "OPEN_AI",
        -      "ORCHESTRA",
        -      "PARADIME",
        -      "PAGER_DUTY",
        -      "PINECONE",
        -      "PORTABLE",
        -      "POSTGRES",
        -      "POWER_AUTOMATE",
        -      "POWER_BI",
        -      "PREFECT_CLOUD",
        -      "PYTHON",
        -      "QLIK",
        -      "QLIK_REPLICATE",
        -      "QUICKBOOKS",
        -      "RENDER",
        -      "RIVERY",
        -      "RUDDERSTACK",
        -      "SALESFORCE",
        -      "SAP",
        -      "SFTP",
        -      "SHAREPOINT",
        -      "SIGMA",
        -      "SISENSE",
        -      "SLACK",
        -      "SNOWFLAKE",
        -      "SNOWPLOW",
        -      "SODA",
        -      "SQL_MESH",
        -      "SQL_SERVER",
        -      "STITCH",
        -      "STREAMKAP",
        -      "TABLEAU_CLOUD",
        -      "TALEND_CLOUD",
        -      "THOUGHTSPOT",
        -      "TOBIKO_CLOUD",
        -      "WEAVIATE",
        -      "WEBHOOK",
        -      "WELD",
        -      "WINDOWS_SSH"
        -    ],
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "enum": [
        +      "AIRBYTE_CLOUD",
        +      "AIRBYTE_SERVER",
        +      "AIRFLOW",
        +      "ARCH",
        +      "ALTERYX_SERVER",
        +      "ANTHROPIC",
        +      "AWS_EC2",
        +      "AWS_ECS",
        +      "AWS_EMR",
        +      "AWS_EKS",
        +      "AWS_FIREHOSE",
        +      "AWS_GLUE",
        +      "AWS_LAMBDA",
        +      "AWS_RDS",
        +      "AWS_REDSHIFT",
        +      "AWS_S3",
        +      "AWS_BEDROCK",
        +      "AWS_SAGEMAKER",
        +      "AWS_SECRETS_MANAGER",
        +      "AWS_SES",
        +      "AWS_STEP_FUNCTIONS",
        +      "AZURE",
        +      "AZURE_CONTAINER_APPS",
        +      "AZURE_DATA_FACTORY",
        +      "AZURE_DATA_LAKE_STORAGE",
        +      "AZURE_KEY_VAULT",
        +      "AZURE_KUBERNETES_SERVICE",
        +      "AZURE_LOGIC_APPS",
        +      "AZURE_SYNAPSE_ANALYTICS",
        +      "AZURE_VM",
        +      "BAUPLAN",
        +      "BOOMI",
        +      "CDATA",
        +      "CENSUS",
        +      "CLICKHOUSE",
        +      "COALESCE",
        +      "COUNT",
        +      "DATADOG",
        +      "DATABRICKS",
        +      "DATAPROC",
        +      "DATAZEN",
        +      "DBT",
        +      "DBT_CORE",
        +      "DLT",
        +      "DOMO",
        +      "DREMIO",
        +      "DUCKDB",
        +      "EMAIL",
        +      "ESTUARY",
        +      "ETLEAP",
        +      "FABRIC",
        +      "FABRIC_SYNAPSE",
        +      "FIVETRAN",
        +      "FORTRA",
        +      "GCP_BIG_QUERY",
        +      "GCP_CLOUD_RUN",
        +      "GCP_CLOUD_FUNCTIONS",
        +      "GCP_CLOUD_STORAGE",
        +      "GCP_DATAFLOW",
        +      "GCP_DATAFORM",
        +      "GCP_DATASTREAM",
        +      "GCP_LOOKER",
        +      "GKE",
        +      "GITHUB_ACTIONS",
        +      "GOOGLE_CLOUD",
        +      "HEVO",
        +      "HEX",
        +      "HIGHTOUCH",
        +      "HTTP",
        +      "HUBSPOT",
        +      "INFORMATICA_IICS",
        +      "INFORMATICA_POWERCENTER",
        +      "KAFKA",
        +      "KEBOOLA",
        +      "KLEENE",
        +      "LIGHTDASH",
        +      "LINUX_SSH",
        +      "MARIADB",
        +      "MATILLION",
        +      "MATILLION_ETL",
        +      "METAPLANE",
        +      "MICROSOFT_TEAMS",
        +      "MICROSTRATEGY",
        +      "MONGODB",
        +      "MOTHERDUCK",
        +      "MYSQL",
        +      "N8N",
        +      "NIMBLE",
        +      "NOTION",
        +      "OMNI",
        +      "OPEN_AI",
        +      "ORCHESTRA",
        +      "PARADIME",
        +      "PAGER_DUTY",
        +      "PINECONE",
        +      "PORTABLE",
        +      "POSTGRES",
        +      "POWER_AUTOMATE",
        +      "POWER_BI",
        +      "PREFECT_CLOUD",
        +      "PYTHON",
        +      "QLIK",
        +      "QLIK_REPLICATE",
        +      "QUICKBOOKS",
        +      "RENDER",
        +      "RIVERY",
        +      "RUDDERSTACK",
        +      "SALESFORCE",
        +      "SAP",
        +      "SFTP",
        +      "SHAREPOINT",
        +      "SIGMA",
        +      "SISENSE",
        +      "SLACK",
        +      "SNOWFLAKE",
        +      "SNOWPLOW",
        +      "SODA",
        +      "SQL_MESH",
        +      "SQL_SERVER",
        +      "STITCH",
        +      "STREAMKAP",
        +      "TABLEAU_CLOUD",
        +      "TALEND_CLOUD",
        +      "THOUGHTSPOT",
        +      "TOBIKO_CLOUD",
        +      "WEAVIATE",
        +      "WEBHOOK",
        +      "WELD",
        +      "WINDOWS_SSH"
        +    ],
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
    • Changedlist_integration_connections1 field changed
      • changedInput schema / properties / integration / anyOf
        Previous value: -[
        -  {
        -    "enum": [
        -      "AIRBYTE_CLOUD",
        -      "AIRBYTE_SERVER",
        -      "AIRFLOW",
        -      "ARCH",
        -      "ALTERYX_SERVER",
        -      "ANTHROPIC",
        -      "AWS_EC2",
        -      "AWS_ECS",
        -      "AWS_EMR",
        -      "AWS_EKS",
        -      "AWS_FIREHOSE",
        -      "AWS_GLUE",
        -      "AWS_LAMBDA",
        -      "AWS_RDS",
        -      "AWS_REDSHIFT",
        -      "AWS_S3",
        -      "AWS_BEDROCK",
        -      "AWS_SAGEMAKER",
        -      "AWS_SECRETS_MANAGER",
        -      "AWS_SES",
        -      "AWS_STEP_FUNCTIONS",
        -      "AZURE",
        -      "AZURE_CONTAINER_APPS",
        -      "AZURE_DATA_FACTORY",
        -      "AZURE_DATA_LAKE_STORAGE",
        -      "AZURE_KEY_VAULT",
        -      "AZURE_KUBERNETES_SERVICE",
        -      "AZURE_LOGIC_APPS",
        -      "AZURE_SYNAPSE_ANALYTICS",
        -      "AZURE_VM",
        -      "BAUPLAN",
        -      "BOOMI",
        -      "CDATA",
        -      "CENSUS",
        -      "CLICKHOUSE",
        -      "COALESCE",
        -      "COUNT",
        -      "DATADOG",
        -      "DATABRICKS",
        -      "DATAPROC",
        -      "DATAZEN",
        -      "DBT",
        -      "DBT_CORE",
        -      "DLT",
        -      "DOMO",
        -      "DREMIO",
        -      "DUCKDB",
        -      "EMAIL",
        -      "ESTUARY",
        -      "ETLEAP",
        -      "FABRIC",
        -      "FABRIC_SYNAPSE",
        -      "FIVETRAN",
        -      "FORTRA",
        -      "GCP_BIG_QUERY",
        -      "GCP_CLOUD_RUN",
        -      "GCP_CLOUD_FUNCTIONS",
        -      "GCP_CLOUD_STORAGE",
        -      "GCP_DATAFLOW",
        -      "GCP_DATAFORM",
        -      "GCP_DATASTREAM",
        -      "GCP_LOOKER",
        -      "GKE",
        -      "GITHUB_ACTIONS",
        -      "GOOGLE_CLOUD",
        -      "HEVO",
        -      "HEX",
        -      "HIGHTOUCH",
        -      "HTTP",
        -      "HUBSPOT",
        -      "INFORMATICA_IICS",
        -      "INFORMATICA_POWERCENTER",
        -      "KAFKA",
        -      "KEBOOLA",
        -      "KLEENE",
        -      "LIGHTDASH",
        -      "LINUX_SSH",
        -      "MATILLION",
        -      "MATILLION_ETL",
        -      "METAPLANE",
        -      "MICROSOFT_TEAMS",
        -      "MICROSTRATEGY",
        -      "MONGODB",
        -      "MOTHERDUCK",
        -      "MYSQL",
        -      "N8N",
        -      "NIMBLE",
        -      "NOTION",
        -      "OMNI",
        -      "OPEN_AI",
        -      "ORCHESTRA",
        -      "PARADIME",
        -      "PAGER_DUTY",
        -      "PINECONE",
        -      "PORTABLE",
        -      "POSTGRES",
        -      "POWER_AUTOMATE",
        -      "POWER_BI",
        -      "PREFECT_CLOUD",
        -      "PYTHON",
        -      "QLIK",
        -      "QLIK_REPLICATE",
        -      "QUICKBOOKS",
        -      "RENDER",
        -      "RIVERY",
        -      "RUDDERSTACK",
        -      "SALESFORCE",
        -      "SAP",
        -      "SFTP",
        -      "SHAREPOINT",
        -      "SIGMA",
        -      "SISENSE",
        -      "SLACK",
        -      "SNOWFLAKE",
        -      "SNOWPLOW",
        -      "SODA",
        -      "SQL_MESH",
        -      "SQL_SERVER",
        -      "STITCH",
        -      "STREAMKAP",
        -      "TABLEAU_CLOUD",
        -      "TALEND_CLOUD",
        -      "THOUGHTSPOT",
        -      "TOBIKO_CLOUD",
        -      "WEAVIATE",
        -      "WEBHOOK",
        -      "WELD",
        -      "WINDOWS_SSH"
        -    ],
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "enum": [
        +      "AIRBYTE_CLOUD",
        +      "AIRBYTE_SERVER",
        +      "AIRFLOW",
        +      "ARCH",
        +      "ALTERYX_SERVER",
        +      "ANTHROPIC",
        +      "AWS_EC2",
        +      "AWS_ECS",
        +      "AWS_EMR",
        +      "AWS_EKS",
        +      "AWS_FIREHOSE",
        +      "AWS_GLUE",
        +      "AWS_LAMBDA",
        +      "AWS_RDS",
        +      "AWS_REDSHIFT",
        +      "AWS_S3",
        +      "AWS_BEDROCK",
        +      "AWS_SAGEMAKER",
        +      "AWS_SECRETS_MANAGER",
        +      "AWS_SES",
        +      "AWS_STEP_FUNCTIONS",
        +      "AZURE",
        +      "AZURE_CONTAINER_APPS",
        +      "AZURE_DATA_FACTORY",
        +      "AZURE_DATA_LAKE_STORAGE",
        +      "AZURE_KEY_VAULT",
        +      "AZURE_KUBERNETES_SERVICE",
        +      "AZURE_LOGIC_APPS",
        +      "AZURE_SYNAPSE_ANALYTICS",
        +      "AZURE_VM",
        +      "BAUPLAN",
        +      "BOOMI",
        +      "CDATA",
        +      "CENSUS",
        +      "CLICKHOUSE",
        +      "COALESCE",
        +      "COUNT",
        +      "DATADOG",
        +      "DATABRICKS",
        +      "DATAPROC",
        +      "DATAZEN",
        +      "DBT",
        +      "DBT_CORE",
        +      "DLT",
        +      "DOMO",
        +      "DREMIO",
        +      "DUCKDB",
        +      "EMAIL",
        +      "ESTUARY",
        +      "ETLEAP",
        +      "FABRIC",
        +      "FABRIC_SYNAPSE",
        +      "FIVETRAN",
        +      "FORTRA",
        +      "GCP_BIG_QUERY",
        +      "GCP_CLOUD_RUN",
        +      "GCP_CLOUD_FUNCTIONS",
        +      "GCP_CLOUD_STORAGE",
        +      "GCP_DATAFLOW",
        +      "GCP_DATAFORM",
        +      "GCP_DATASTREAM",
        +      "GCP_LOOKER",
        +      "GKE",
        +      "GITHUB_ACTIONS",
        +      "GOOGLE_CLOUD",
        +      "HEVO",
        +      "HEX",
        +      "HIGHTOUCH",
        +      "HTTP",
        +      "HUBSPOT",
        +      "INFORMATICA_IICS",
        +      "INFORMATICA_POWERCENTER",
        +      "KAFKA",
        +      "KEBOOLA",
        +      "KLEENE",
        +      "LIGHTDASH",
        +      "LINUX_SSH",
        +      "MARIADB",
        +      "MATILLION",
        +      "MATILLION_ETL",
        +      "METAPLANE",
        +      "MICROSOFT_TEAMS",
        +      "MICROSTRATEGY",
        +      "MONGODB",
        +      "MOTHERDUCK",
        +      "MYSQL",
        +      "N8N",
        +      "NIMBLE",
        +      "NOTION",
        +      "OMNI",
        +      "OPEN_AI",
        +      "ORCHESTRA",
        +      "PARADIME",
        +      "PAGER_DUTY",
        +      "PINECONE",
        +      "PORTABLE",
        +      "POSTGRES",
        +      "POWER_AUTOMATE",
        +      "POWER_BI",
        +      "PREFECT_CLOUD",
        +      "PYTHON",
        +      "QLIK",
        +      "QLIK_REPLICATE",
        +      "QUICKBOOKS",
        +      "RENDER",
        +      "RIVERY",
        +      "RUDDERSTACK",
        +      "SALESFORCE",
        +      "SAP",
        +      "SFTP",
        +      "SHAREPOINT",
        +      "SIGMA",
        +      "SISENSE",
        +      "SLACK",
        +      "SNOWFLAKE",
        +      "SNOWPLOW",
        +      "SODA",
        +      "SQL_MESH",
        +      "SQL_SERVER",
        +      "STITCH",
        +      "STREAMKAP",
        +      "TABLEAU_CLOUD",
        +      "TALEND_CLOUD",
        +      "THOUGHTSPOT",
        +      "TOBIKO_CLOUD",
        +      "WEAVIATE",
        +      "WEBHOOK",
        +      "WELD",
        +      "WINDOWS_SSH"
        +    ],
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
    • Changedlist_operations1 field changed
      • changedInput schema / properties / integration / anyOf
        Previous value: -[
        -  {
        -    "enum": [
        -      "AIRBYTE_CLOUD",
        -      "AIRBYTE_SERVER",
        -      "AIRFLOW",
        -      "ARCH",
        -      "ALTERYX_SERVER",
        -      "ANTHROPIC",
        -      "AWS_EC2",
        -      "AWS_ECS",
        -      "AWS_EMR",
        -      "AWS_EKS",
        -      "AWS_FIREHOSE",
        -      "AWS_GLUE",
        -      "AWS_LAMBDA",
        -      "AWS_RDS",
        -      "AWS_REDSHIFT",
        -      "AWS_S3",
        -      "AWS_BEDROCK",
        -      "AWS_SAGEMAKER",
        -      "AWS_SECRETS_MANAGER",
        -      "AWS_SES",
        -      "AWS_STEP_FUNCTIONS",
        -      "AZURE",
        -      "AZURE_CONTAINER_APPS",
        -      "AZURE_DATA_FACTORY",
        -      "AZURE_DATA_LAKE_STORAGE",
        -      "AZURE_KEY_VAULT",
        -      "AZURE_KUBERNETES_SERVICE",
        -      "AZURE_LOGIC_APPS",
        -      "AZURE_SYNAPSE_ANALYTICS",
        -      "AZURE_VM",
        -      "BAUPLAN",
        -      "BOOMI",
        -      "CDATA",
        -      "CENSUS",
        -      "CLICKHOUSE",
        -      "COALESCE",
        -      "COUNT",
        -      "DATADOG",
        -      "DATABRICKS",
        -      "DATAPROC",
        -      "DATAZEN",
        -      "DBT",
        -      "DBT_CORE",
        -      "DLT",
        -      "DOMO",
        -      "DREMIO",
        -      "DUCKDB",
        -      "EMAIL",
        -      "ESTUARY",
        -      "ETLEAP",
        -      "FABRIC",
        -      "FABRIC_SYNAPSE",
        -      "FIVETRAN",
        -      "FORTRA",
        -      "GCP_BIG_QUERY",
        -      "GCP_CLOUD_RUN",
        -      "GCP_CLOUD_FUNCTIONS",
        -      "GCP_CLOUD_STORAGE",
        -      "GCP_DATAFLOW",
        -      "GCP_DATAFORM",
        -      "GCP_DATASTREAM",
        -      "GCP_LOOKER",
        -      "GKE",
        -      "GITHUB_ACTIONS",
        -      "GOOGLE_CLOUD",
        -      "HEVO",
        -      "HEX",
        -      "HIGHTOUCH",
        -      "HTTP",
        -      "HUBSPOT",
        -      "INFORMATICA_IICS",
        -      "INFORMATICA_POWERCENTER",
        -      "KAFKA",
        -      "KEBOOLA",
        -      "KLEENE",
        -      "LIGHTDASH",
        -      "LINUX_SSH",
        -      "MATILLION",
        -      "MATILLION_ETL",
        -      "METAPLANE",
        -      "MICROSOFT_TEAMS",
        -      "MICROSTRATEGY",
        -      "MONGODB",
        -      "MOTHERDUCK",
        -      "MYSQL",
        -      "N8N",
        -      "NIMBLE",
        -      "NOTION",
        -      "OMNI",
        -      "OPEN_AI",
        -      "ORCHESTRA",
        -      "PARADIME",
        -      "PAGER_DUTY",
        -      "PINECONE",
        -      "PORTABLE",
        -      "POSTGRES",
        -      "POWER_AUTOMATE",
        -      "POWER_BI",
        -      "PREFECT_CLOUD",
        -      "PYTHON",
        -      "QLIK",
        -      "QLIK_REPLICATE",
        -      "QUICKBOOKS",
        -      "RENDER",
        -      "RIVERY",
        -      "RUDDERSTACK",
        -      "SALESFORCE",
        -      "SAP",
        -      "SFTP",
        -      "SHAREPOINT",
        -      "SIGMA",
        -      "SISENSE",
        -      "SLACK",
        -      "SNOWFLAKE",
        -      "SNOWPLOW",
        -      "SODA",
        -      "SQL_MESH",
        -      "SQL_SERVER",
        -      "STITCH",
        -      "STREAMKAP",
        -      "TABLEAU_CLOUD",
        -      "TALEND_CLOUD",
        -      "THOUGHTSPOT",
        -      "TOBIKO_CLOUD",
        -      "WEAVIATE",
        -      "WEBHOOK",
        -      "WELD",
        -      "WINDOWS_SSH"
        -    ],
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "enum": [
        +      "AIRBYTE_CLOUD",
        +      "AIRBYTE_SERVER",
        +      "AIRFLOW",
        +      "ARCH",
        +      "ALTERYX_SERVER",
        +      "ANTHROPIC",
        +      "AWS_EC2",
        +      "AWS_ECS",
        +      "AWS_EMR",
        +      "AWS_EKS",
        +      "AWS_FIREHOSE",
        +      "AWS_GLUE",
        +      "AWS_LAMBDA",
        +      "AWS_RDS",
        +      "AWS_REDSHIFT",
        +      "AWS_S3",
        +      "AWS_BEDROCK",
        +      "AWS_SAGEMAKER",
        +      "AWS_SECRETS_MANAGER",
        +      "AWS_SES",
        +      "AWS_STEP_FUNCTIONS",
        +      "AZURE",
        +      "AZURE_CONTAINER_APPS",
        +      "AZURE_DATA_FACTORY",
        +      "AZURE_DATA_LAKE_STORAGE",
        +      "AZURE_KEY_VAULT",
        +      "AZURE_KUBERNETES_SERVICE",
        +      "AZURE_LOGIC_APPS",
        +      "AZURE_SYNAPSE_ANALYTICS",
        +      "AZURE_VM",
        +      "BAUPLAN",
        +      "BOOMI",
        +      "CDATA",
        +      "CENSUS",
        +      "CLICKHOUSE",
        +      "COALESCE",
        +      "COUNT",
        +      "DATADOG",
        +      "DATABRICKS",
        +      "DATAPROC",
        +      "DATAZEN",
        +      "DBT",
        +      "DBT_CORE",
        +      "DLT",
        +      "DOMO",
        +      "DREMIO",
        +      "DUCKDB",
        +      "EMAIL",
        +      "ESTUARY",
        +      "ETLEAP",
        +      "FABRIC",
        +      "FABRIC_SYNAPSE",
        +      "FIVETRAN",
        +      "FORTRA",
        +      "GCP_BIG_QUERY",
        +      "GCP_CLOUD_RUN",
        +      "GCP_CLOUD_FUNCTIONS",
        +      "GCP_CLOUD_STORAGE",
        +      "GCP_DATAFLOW",
        +      "GCP_DATAFORM",
        +      "GCP_DATASTREAM",
        +      "GCP_LOOKER",
        +      "GKE",
        +      "GITHUB_ACTIONS",
        +      "GOOGLE_CLOUD",
        +      "HEVO",
        +      "HEX",
        +      "HIGHTOUCH",
        +      "HTTP",
        +      "HUBSPOT",
        +      "INFORMATICA_IICS",
        +      "INFORMATICA_POWERCENTER",
        +      "KAFKA",
        +      "KEBOOLA",
        +      "KLEENE",
        +      "LIGHTDASH",
        +      "LINUX_SSH",
        +      "MARIADB",
        +      "MATILLION",
        +      "MATILLION_ETL",
        +      "METAPLANE",
        +      "MICROSOFT_TEAMS",
        +      "MICROSTRATEGY",
        +      "MONGODB",
        +      "MOTHERDUCK",
        +      "MYSQL",
        +      "N8N",
        +      "NIMBLE",
        +      "NOTION",
        +      "OMNI",
        +      "OPEN_AI",
        +      "ORCHESTRA",
        +      "PARADIME",
        +      "PAGER_DUTY",
        +      "PINECONE",
        +      "PORTABLE",
        +      "POSTGRES",
        +      "POWER_AUTOMATE",
        +      "POWER_BI",
        +      "PREFECT_CLOUD",
        +      "PYTHON",
        +      "QLIK",
        +      "QLIK_REPLICATE",
        +      "QUICKBOOKS",
        +      "RENDER",
        +      "RIVERY",
        +      "RUDDERSTACK",
        +      "SALESFORCE",
        +      "SAP",
        +      "SFTP",
        +      "SHAREPOINT",
        +      "SIGMA",
        +      "SISENSE",
        +      "SLACK",
        +      "SNOWFLAKE",
        +      "SNOWPLOW",
        +      "SODA",
        +      "SQL_MESH",
        +      "SQL_SERVER",
        +      "STITCH",
        +      "STREAMKAP",
        +      "TABLEAU_CLOUD",
        +      "TALEND_CLOUD",
        +      "THOUGHTSPOT",
        +      "TOBIKO_CLOUD",
        +      "WEAVIATE",
        +      "WEBHOOK",
        +      "WELD",
        +      "WINDOWS_SSH"
        +    ],
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
    • Changedpipeline_context1 field changed
      • addedInput schema / properties / account_id
        Added value: +{
        +  "anyOf": [
        +    {
        +      "format": "uuid4",
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Act on this account rather than the one the credential resolves to. Omit it to use the credential's own account. An API key is issued to a single account, so it may only name that account; an OAuth token may name any account its grant covers."
        +}
    • Changedupdate_monitor6 fields changed
      • changedInput schema / properties / match / properties / integrations / items / enum
        Previous value: -[
        -  "AIRBYTE_CLOUD",
        -  "AIRBYTE_SERVER",
        -  "AIRFLOW",
        -  "ARCH",
        -  "ALTERYX_SERVER",
        -  "ANTHROPIC",
        -  "AWS_EC2",
        -  "AWS_ECS",
        -  "AWS_EMR",
        -  "AWS_EKS",
        -  "AWS_FIREHOSE",
        -  "AWS_GLUE",
        -  "AWS_LAMBDA",
        -  "AWS_RDS",
        -  "AWS_REDSHIFT",
        -  "AWS_S3",
        -  "AWS_BEDROCK",
        -  "AWS_SAGEMAKER",
        -  "AWS_SECRETS_MANAGER",
        -  "AWS_SES",
        -  "AWS_STEP_FUNCTIONS",
        -  "AZURE",
        -  "AZURE_CONTAINER_APPS",
        -  "AZURE_DATA_FACTORY",
        -  "AZURE_DATA_LAKE_STORAGE",
        -  "AZURE_KEY_VAULT",
        -  "AZURE_KUBERNETES_SERVICE",
        -  "AZURE_LOGIC_APPS",
        -  "AZURE_SYNAPSE_ANALYTICS",
        -  "AZURE_VM",
        -  "BAUPLAN",
        -  "BOOMI",
        -  "CDATA",
        -  "CENSUS",
        -  "CLICKHOUSE",
        -  "COALESCE",
        -  "COUNT",
        -  "DATADOG",
        -  "DATABRICKS",
        -  "DATAPROC",
        -  "DATAZEN",
        -  "DBT",
        -  "DBT_CORE",
        -  "DLT",
        -  "DOMO",
        -  "DREMIO",
        -  "DUCKDB",
        -  "EMAIL",
        -  "ESTUARY",
        -  "ETLEAP",
        -  "FABRIC",
        -  "FABRIC_SYNAPSE",
        -  "FIVETRAN",
        -  "FORTRA",
        -  "GCP_BIG_QUERY",
        -  "GCP_CLOUD_RUN",
        -  "GCP_CLOUD_FUNCTIONS",
        -  "GCP_CLOUD_STORAGE",
        -  "GCP_DATAFLOW",
        -  "GCP_DATAFORM",
        -  "GCP_DATASTREAM",
        -  "GCP_LOOKER",
        -  "GKE",
        -  "GITHUB_ACTIONS",
        -  "GOOGLE_CLOUD",
        -  "HEVO",
        -  "HEX",
        -  "HIGHTOUCH",
        -  "HTTP",
        -  "HUBSPOT",
        -  "INFORMATICA_IICS",
        -  "INFORMATICA_POWERCENTER",
        -  "KAFKA",
        -  "KEBOOLA",
        -  "KLEENE",
        -  "LIGHTDASH",
        -  "LINUX_SSH",
        -  "MATILLION",
        -  "MATILLION_ETL",
        -  "METAPLANE",
        -  "MICROSOFT_TEAMS",
        -  "MICROSTRATEGY",
        -  "MONGODB",
        -  "MOTHERDUCK",
        -  "MYSQL",
        -  "N8N",
        -  "NIMBLE",
        -  "NOTION",
        -  "OMNI",
        -  "OPEN_AI",
        -  "ORCHESTRA",
        -  "PARADIME",
        -  "PAGER_DUTY",
        -  "PINECONE",
        -  "PORTABLE",
        -  "POSTGRES",
        -  "POWER_AUTOMATE",
        -  "POWER_BI",
        -  "PREFECT_CLOUD",
        -  "PYTHON",
        -  "QLIK",
        -  "QLIK_REPLICATE",
        -  "QUICKBOOKS",
        -  "RENDER",
        -  "RIVERY",
        -  "RUDDERSTACK",
        -  "SALESFORCE",
        -  "SAP",
        -  "SFTP",
        -  "SHAREPOINT",
        -  "SIGMA",
        -  "SISENSE",
        -  "SLACK",
        -  "SNOWFLAKE",
        -  "SNOWPLOW",
        -  "SODA",
        -  "SQL_MESH",
        -  "SQL_SERVER",
        -  "STITCH",
        -  "STREAMKAP",
        -  "TABLEAU_CLOUD",
        -  "TALEND_CLOUD",
        -  "THOUGHTSPOT",
        -  "TOBIKO_CLOUD",
        -  "WEAVIATE",
        -  "WEBHOOK",
        -  "WELD",
        -  "WINDOWS_SSH"
        -]New value: +[
        +  "AIRBYTE_CLOUD",
        +  "AIRBYTE_SERVER",
        +  "AIRFLOW",
        +  "ARCH",
        +  "ALTERYX_SERVER",
        +  "ANTHROPIC",
        +  "AWS_EC2",
        +  "AWS_ECS",
        +  "AWS_EMR",
        +  "AWS_EKS",
        +  "AWS_FIREHOSE",
        +  "AWS_GLUE",
        +  "AWS_LAMBDA",
        +  "AWS_RDS",
        +  "AWS_REDSHIFT",
        +  "AWS_S3",
        +  "AWS_BEDROCK",
        +  "AWS_SAGEMAKER",
        +  "AWS_SECRETS_MANAGER",
        +  "AWS_SES",
        +  "AWS_STEP_FUNCTIONS",
        +  "AZURE",
        +  "AZURE_CONTAINER_APPS",
        +  "AZURE_DATA_FACTORY",
        +  "AZURE_DATA_LAKE_STORAGE",
        +  "AZURE_KEY_VAULT",
        +  "AZURE_KUBERNETES_SERVICE",
        +  "AZURE_LOGIC_APPS",
        +  "AZURE_SYNAPSE_ANALYTICS",
        +  "AZURE_VM",
        +  "BAUPLAN",
        +  "BOOMI",
        +  "CDATA",
        +  "CENSUS",
        +  "CLICKHOUSE",
        +  "COALESCE",
        +  "COUNT",
        +  "DATADOG",
        +  "DATABRICKS",
        +  "DATAPROC",
        +  "DATAZEN",
        +  "DBT",
        +  "DBT_CORE",
        +  "DLT",
        +  "DOMO",
        +  "DREMIO",
        +  "DUCKDB",
        +  "EMAIL",
        +  "ESTUARY",
        +  "ETLEAP",
        +  "FABRIC",
        +  "FABRIC_SYNAPSE",
        +  "FIVETRAN",
        +  "FORTRA",
        +  "GCP_BIG_QUERY",
        +  "GCP_CLOUD_RUN",
        +  "GCP_CLOUD_FUNCTIONS",
        +  "GCP_CLOUD_STORAGE",
        +  "GCP_DATAFLOW",
        +  "GCP_DATAFORM",
        +  "GCP_DATASTREAM",
        +  "GCP_LOOKER",
        +  "GKE",
        +  "GITHUB_ACTIONS",
        +  "GOOGLE_CLOUD",
        +  "HEVO",
        +  "HEX",
        +  "HIGHTOUCH",
        +  "HTTP",
        +  "HUBSPOT",
        +  "INFORMATICA_IICS",
        +  "INFORMATICA_POWERCENTER",
        +  "KAFKA",
        +  "KEBOOLA",
        +  "KLEENE",
        +  "LIGHTDASH",
        +  "LINUX_SSH",
        +  "MARIADB",
        +  "MATILLION",
        +  "MATILLION_ETL",
        +  "METAPLANE",
        +  "MICROSOFT_TEAMS",
        +  "MICROSTRATEGY",
        +  "MONGODB",
        +  "MOTHERDUCK",
        +  "MYSQL",
        +  "N8N",
        +  "NIMBLE",
        +  "NOTION",
        +  "OMNI",
        +  "OPEN_AI",
        +  "ORCHESTRA",
        +  "PARADIME",
        +  "PAGER_DUTY",
        +  "PINECONE",
        +  "PORTABLE",
        +  "POSTGRES",
        +  "POWER_AUTOMATE",
        +  "POWER_BI",
        +  "PREFECT_CLOUD",
        +  "PYTHON",
        +  "QLIK",
        +  "QLIK_REPLICATE",
        +  "QUICKBOOKS",
        +  "RENDER",
        +  "RIVERY",
        +  "RUDDERSTACK",
        +  "SALESFORCE",
        +  "SAP",
        +  "SFTP",
        +  "SHAREPOINT",
        +  "SIGMA",
        +  "SISENSE",
        +  "SLACK",
        +  "SNOWFLAKE",
        +  "SNOWPLOW",
        +  "SODA",
        +  "SQL_MESH",
        +  "SQL_SERVER",
        +  "STITCH",
        +  "STREAMKAP",
        +  "TABLEAU_CLOUD",
        +  "TALEND_CLOUD",
        +  "THOUGHTSPOT",
        +  "TOBIKO_CLOUD",
        +  "WEAVIATE",
        +  "WEBHOOK",
        +  "WELD",
        +  "WINDOWS_SSH"
        +]
      • addedInput schema / properties / match / properties / labels
        Added value: +{
        +  "additionalProperties": {
        +    "items": {
        +      "additionalProperties": false,
        +      "description": "One place on an event body a label is read from, and the values that match there.",
        +      "properties": {
        +        "path": {
        +          "type": "string"
        +        },
        +        "values": {
        +          "items": {
        +            "type": "string"
        +          },
        +          "minItems": 1,
        +          "type": "array"
        +        }
        +      },
        +      "required": [
        +        "path",
        +        "values"
        +      ],
        +      "type": "object"
        +    },
        +    "minItems": 1,
        +    "type": "array"
        +  },
        +  "maxProperties": 32,
        +  "propertyNames": {
        +    "maxLength": 64,
        +    "minLength": 1,
        +    "pattern": "^[a-zA-Z0-9_.:/-]+$",
        +    "type": "string"
        +  },
        +  "type": "object"
        +}
      • addedInput schema / properties / order / anyOf
        Added value: +[
        +  {
        +    "type": "integer"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedInput schema / properties / order / default
        Removed value: -0
      • removedInput schema / properties / order / type
        Removed value: -"integer"
      • removedInput schema / properties / window
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "format": "duration",
        -      "gt": "PT0S",
        -      "type": "string"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ]
        -}
    • Changedwhats_broken1 field changed
      • addedInput schema / properties / account_id
        Added value: +{
        +  "anyOf": [
        +    {
        +      "format": "uuid4",
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Act on this account rather than the one the credential resolves to. Omit it to use the credential's own account. An API key is issued to a single account, so it may only name that account; an OAuth token may name any account its grant covers."
        +}
  4. 48 tool updatesv0.1.0
    • First observedcancel_pipeline_run
    • First observedcreate_environment
    • First observedcreate_incident_comment
    • First observedcreate_monitor
    • First observedcreate_pipeline
    • First observeddiagnose
    • First observeddownload_task_run_artifact
    • First observeddownload_task_run_log
    • First observedget_asset_by_id
    • First observedget_environment
    • First observedget_incident
    • First observedget_integration_state_for_state_aware
    • First observedget_monitor
    • First observedget_pipeline
    • First observedget_pipeline_data
    • First observedget_pipeline_run_lineage_url
    • First observedget_pipeline_run_status
    • First observedimport_pipeline
    • First observedlist_accounts
    • First observedlist_assets
    • First observedlist_audit_events
    • First observedlist_environments
    • First observedlist_incident_events
    • First observedlist_incidents
    • First observedlist_integration_connections
    • First observedlist_monitors
    • First observedlist_operations
    • First observedlist_pipeline_runs
    • First observedlist_pipelines
    • First observedlist_task_run_artifacts
    • First observedlist_task_run_logs
    • First observedlist_task_runs
    • First observedlist_task_runs_for_pipeline_run
    • First observedmerge_incidents
    • First observedmigrate_pipeline
    • First observedmute_incident
    • First observedpause_pipeline
    • First observedpipeline_context
    • First observedreorder_monitors
    • First observedstart_pipeline
    • First observedunmerge_incidents
    • First observedunmute_incident
    • First observedupdate_environment
    • First observedupdate_incident
    • First observedupdate_monitor
    • First observedupdate_pipeline
    • First observedvalidate_pipeline
    • First observedwhats_broken

TDQS

B3.4/5.0

Scored across 82 tools

Disambiguation3/5

The set covers many domains with mostly distinct purposes, but several retrieval tools overlap (e.g., get_pipeline vs get_pipeline_data vs pipeline_context; list_task_runs vs list_task_runs_for_pipeline_run; list_skills vs list_agent_skills). Detailed descriptions help, but an agent still faces some misselection risk.

Naming Consistency4/5

Nearly all names use snake_case and a verb_noun pattern (list_*, get_*, create_*, update_*, delete_*). A few exceptions (whats_broken, diagnose, pipeline_context) break the pattern, but the convention is mostly consistent.

Tool Count1/5

82 tools is far beyond the typical 3-15 range and exceeds even the 25+ 'too many' threshold. Even for a broad platform API, this volume makes navigation and selection burdensome.

Completeness4/5

The surface covers CRUD for pipelines, agents, skills, environments, monitors, incidents, and integrations, plus runs, logs, artifacts, and audit events. Minor gaps remain (e.g., no generic get_task_run for successful runs, no retry/rerun operation), but core workflows are well covered.

Maintenance

ActivityActive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables users to interact with Apache Airflow orchestration platform through natural language to query pipeline statuses, troubleshoot DAG failures, trigger DAGs, and analyze configurations.
    11
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Enables interaction with an Airbyte instance through natural language, supporting workspaces, sources, destinations, connections, jobs, logs, tags, streams, and connector definitions.
    36
    46 PyPI
    5
    Apache 2.0
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables natural language interaction with Apache Airflow for querying DAGs, monitoring execution, and troubleshooting failures.
    42 PyPI
    1
    MIT