Orchestra MCP Server
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ORCHESTRA_ENV | No | Environment for local runs. Valid values: app, stage, dev. | app |
| ORCHESTRA_API_KEY | Yes | Your Orchestra API key for authentication. | |
| ORCHESTRA_ENABLE_DELETE | No | Set to 'true', 'TRUE', or '1' to enable the delete_pipeline tool. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| whats_brokenA | 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. |
| diagnoseA | 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. |
| pipeline_contextA | 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. |
| get_pipeline_run_lineage_urlA | Build the URL of a pipeline run's lineage graph in the Orchestra UI. |
| validate_pipelineA | Validate a full pipeline definition document without creating or updating a pipeline. Use it to check a definition before create_pipeline or update_pipeline. |
| download_task_run_logA | 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. |
| download_task_run_artifactA | 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. |
| list_assetsA | 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 |
| get_asset_by_idB | Retrieve a single asset by Orchestra asset ID or external ID. |
| list_audit_eventsA | List the audit trail for the workspace the credential resolves to, newest first: who did what, to which resource, and what changed.
|
| list_environmentsA | 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. |
| create_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. |
| get_environmentA | Fetch a single environment by its ID, including its variable values. |
| update_environmentA | Update an environment's name, default flag, and variable values. Only the fields supplied are changed; omitted fields are left untouched. The supplied |
| list_incidentsA | 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 |
| get_incidentA | Fetch a single incident, with its merge relationships, summary counts and related resources. |
| update_incidentA | Change an incident's status, severity or name. A field left out of the request body keeps its stored value. 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. |
| list_incident_eventsA | 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. |
| get_incident_external_eventA | Fetch the raw JSON an external system sent for one row of an incident's timeline - a row whose externalEventPath is set. Returns 410 once the payload has expired. |
| merge_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. |
| unmerge_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. |
| mute_incidentA | Silence further alerts on this incident until the account's alert budget next refills. Already muted is a no-op. |
| unmute_incidentA | Lift this incident's mute early. A no-op if it was never muted, or already lapsed. |
| create_incident_commentA | Append a row to an incident's timeline, returning the event it wrote.
The timeline is append-only: nothing can edit or delete a row once it is there. |
| list_integration_connectionsA | 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 |
| list_monitorsB | List the workspace's monitors in evaluation order. Where two monitors claim the same event, the one with the lower |
| create_monitorA | Create a monitor: a rule for which failures to group into one incident, and how that incident alerts. |
| reorder_monitorsA | Set the evaluation order of the workspace's monitors. |
| get_monitorC | Fetch a single monitor's definition. |
| update_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 |
| list_operationsA | 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 Use operation filters to narrow results by operation type, integration, external ID, operation status, or task run ID. |
| list_task_runs_for_pipeline_runA | Retrieve task runs belonging to a single pipeline run. This endpoint uses |
| list_task_run_artifactsB | List artifacts linked to a task run, such as dbt |
| list_task_run_logsA | List log files linked to a task run. Use the returned filenames with the download endpoint. |
| get_pipeline_run_statusB | Retrieve status details for a single pipeline run. |
| list_pipeline_runsA | List pipeline runs with optional filters. status accepts comma-separated values: CREATED, RUNNING, SUCCEEDED, WARNING, FAILED, CANCELLING, CANCELLED. |
| cancel_pipeline_runC | Cancel a running pipeline run by its ID. |
| get_pipelineA | Fetch a single pipeline. Provide exactly one selector: pipeline_id, alias, or repository together with yaml_path. |
| list_pipelinesA | List pipelines for the workspace the credential resolves to. Always pass |
| update_pipelineA | Update an existing Orchestra-backed pipeline. Select it with |
| create_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. |
| get_pipeline_dataA | Fetch the full pipeline definition for a pipeline selected by |
| start_pipelineA | Start a pipeline run. The pipeline can be identified by alias or pipeline ID. All request body fields are optional. Use |
| pause_pipelineA | Pause or unpause a pipeline by alias or pipeline ID. A paused pipeline's schedules, sensors, trigger events, and |
| migrate_pipelineB | 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. |
| import_pipelineC | Import a Git-backed pipeline definition from a repository into Orchestra. |
| get_integration_state_for_state_awareB | Fetch the stored state for the given integration in the workspace the credential resolves to. |
| list_task_runsA | 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 Filter by multiple statuses, integrations, pipeline IDs, or task run IDs using comma-separated values. For example, |
| list_accountsA | 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 |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 49 tools
Most tools have clearly distinct purposes, but the pipeline retrieval trio (get_pipeline, get_pipeline_data, pipeline_context) and the task-run list variants (list_task_runs vs list_task_runs_for_pipeline_run) create some overlap. Descriptions help differentiate, but an agent could still misselect among them.
Predominantly consistent verb_noun pattern (get_, list_, create_, update_, etc.), with a few outliers like whats_broken, pipeline_context, and diagnose that break the pattern. Overall the naming is readable and mostly predictable.
49 tools is well above the recommended 3-15 range and is heavy even for a broad orchestration platform. Many tools could be consolidated or omitted, and the sheer count risks overwhelming an agent and increasing selection errors.
Covers core CRUD and lifecycle operations for pipelines, incidents, monitors, environments, and task runs, but lacks delete operations for several resources (e.g., delete_pipeline, delete_monitor, delete_environment) and manual incident creation. Agents can work around most gaps.