dagster-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| DAGSTER_URL | No | Base URL of your Dagster instance. Default is http://localhost:3000. | |
| DAGSTER_ENVS | No | JSON object mapping env names to {url, token?, extra_headers?} configs. When set, DAGSTER_URL/DAGSTER_API_TOKEN/DAGSTER_EXTRA_HEADERS are ignored. | |
| DAGSTER_API_TOKEN | No | Dagster Cloud API token (leave empty for self-hosted). | |
| DAGSTER_READ_ONLY | No | When true, only read tools are exposed (no launch/terminate/reload). Set to false to enable write operations. | |
| DAGSTER_DEFAULT_ENV | No | Env name to use when env is not passed to a tool (only used with DAGSTER_ENVS). | |
| DAGSTER_EXTRA_HEADERS | No | JSON object of additional request headers sent to Dagster GraphQL. |
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
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_runsA | List recent pipeline runs. Start here to discover what has been running. Returns runId, status, jobName, startTime, endTime, and tags for each run. Use the returned runId to drill into details with get_run_status, get_run_logs, get_run_stats, or get_run_failure_summary. Filtering:
Typical workflows:
|
| get_run_statusA | Get full details for a single run: status, config, tags, and run lineage. Returns: runId, status, startTime, endTime, jobName, tags, runConfigYaml, rootRunId, parentRunId, resolvedOpSelection. Use rootRunId and parentRunId to understand re-execution chains — if parentRunId is set, this run was re-executed from another run. resolvedOpSelection shows which steps were selected for re-execution. When to use: after get_runs to inspect a specific run, or to check whether a run is a re-execution of a previous one. |
| get_run_logsA | Get structured log events for a run, with optional severity filtering and pagination. Returns events with __typename, timestamp, message, level, and (where applicable) stepKey and error details. Events include step starts/completions, failures, retries, materializations, and run-level events. EngineEvent events also carry metadataEntries — a list of {label, description, value} dicts (e.g. run worker image, k8s pod name, step keys) surfaced by the engine. Parameters:
When to use: to investigate what happened during a run. For a quick failure diagnosis, prefer get_run_failure_summary instead — it returns a consolidated view in a single call. Use get_run_logs when you need the full event stream or want to filter by level. |
| get_run_statsA | Get per-step execution statistics for a run: timing, materializations, and expectations. Returns runId, status, and a stepStats array where each entry has: stepKey, status, startTime, endTime, materializations (with labels), and expectationResults (with success flag and labels). When to use: to find slow steps (compare startTime/endTime), check which steps materialized assets, or verify expectation results. For failed runs, prefer get_run_failure_summary which includes step stats alongside error details and suggestions. |
| get_run_failure_summaryA | Get a consolidated failure diagnosis for a run in a single call. This is the BEST tool to use when investigating a failed or canceled run. It combines status, step stats, and error logs into one response, avoiding the need to call get_run_status + get_run_logs + get_run_stats separately. Returns:
If the run did not fail, returns {message: 'Run did not fail.'}. When to use: always prefer this over get_run_logs for failed runs. Use get_run_logs only when you need the full event stream. |
| get_recent_materializationsA | Get the most recent materializations for an asset, with metadata. Returns a list of materializations, each with: runId, timestamp, assetKey, and metadataEntries (labels, numeric values, text).
When to use: to check when an asset was last materialized, track materialization frequency, or inspect metadata from recent runs. For a broader health view (including staleness and freshness), use get_asset_health instead. |
| get_asset_detailsA | Get detailed metadata for one or more assets: description, lineage, and partitions.
Returns per asset: assetKey, description, groupName, op name, isObservable, isPartitioned, partitionDefinition, dependencyKeys (upstream assets), dependedByKeys (downstream assets), and the latest materialization (runId + timestamp). When to use: to understand an asset's lineage (what it depends on and what depends on it), check if it's partitioned, or get its description. Use search_assets first if you don't know the exact key. |
| search_assetsA | Search and list assets by name prefix or group. Use this to discover assets. Returns per asset: assetKey, groupName, description, isPartitioned, op name.
When to use: to discover available assets before calling get_asset_details or get_asset_health. Use prefix for fuzzy search, group for scoped listing. |
| resolve_asset_selectionA | Resolve Dagster asset-selection syntax into concrete assets without launching a run. Supported syntax:
Returns |
| get_asset_healthA | Get a consolidated health view for a single asset or all assets in a group. This is the BEST tool to assess whether assets are healthy and up-to-date.
Returns per asset:
When to use: to check if critical assets are fresh, find stale assets in a group, or verify that recent materializations succeeded. Prefer this over get_recent_materializations when you need a health assessment rather than raw materialization history. |
| list_jobsA | List all jobs across all code locations. Use this to discover available jobs. Returns per job: repository name, code location name, job name, and description. When to use: as a starting point to explore what jobs exist, or to find the exact job name and repository_location needed for launch_job. |
| list_schedulesA | List all schedules with their status, cron expression, target job, and next tick. Returns per schedule: name, cron expression, status (RUNNING/STOPPED), next_tick timestamp, target job name, repository, and code location. When to use: to check which schedules are active, verify cron timing, or find schedules that are stopped and might need attention. If a schedule is RUNNING but jobs aren't executing, use get_tick_history to inspect recent ticks for errors. |
| list_sensorsA | List all sensors with their status and target jobs. Returns per sensor: name, status (RUNNING/STOPPED), list of target job names, repository, and code location. When to use: to check which sensors are active and what jobs they trigger. If a sensor is RUNNING but not producing runs, use get_tick_history to inspect recent ticks — it will show skipped ticks, errors, or runs launched. |
| get_tick_historyA | Get recent tick history for a schedule or sensor — essential for detecting silent failures.
Returns per tick: tick_id, status (SUCCESS/FAILURE/SKIPPED), timestamp, error message (if failed), and run_ids (runs launched by this tick). When to use: when a schedule or sensor is RUNNING but data is not being produced. Common patterns to look for:
|
| list_code_locationsA | List all code locations and their load status. Returns per location: name, loadStatus (LOADED/LOADING), and either the repositories within it or a PythonError if loading failed. When to use: after a deployment to verify code locations loaded correctly, or when get_instance_status reports code location errors. If a location failed to load, use reload_code_location to retry. |
| get_instance_statusA | Get a global health check of the Dagster instance. START HERE for any monitoring workflow. Returns:
When to use: as the FIRST call in any diagnostic or monitoring flow. If healthy=false, check daemons for unhealthy entries and code_location_errors for loading failures. Follow up with list_code_locations or get_runs as needed. |
| list_backfillsA | List recent asset backfills with their status and partition progress. Returns per backfill: backfillId, status, numPartitions, timestamp, partitionNames, and partitionSetName.
When to use: to monitor in-progress backfills or review recent ones. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/fabdendev/dagster-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server