dagster-mono-mcp
Supports Cloudflare Access authentication to secure communication with Dagster instances protected by Cloudflare Zero Trust.
Enables executing raw GraphQL queries against a Dagster instance to retrieve and manage information about jobs, runs, and event logs.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@dagster-mono-mcpshow me the last 5 failed runs"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
dagster-mono-mcp
A single-tool MCP server for Dagster. One tool, five actions, minimal token overhead.
Dagster has an official MCP server, but I couldn't get it working easily. This is a minimal alternative that covers the actions you actually need when debugging pipelines with an LLM: listing runs, inspecting run details, reading logs, and raw GraphQL for everything else.
Supports Cloudflare Access for Dagster instances behind Zero Trust — an easy, free way to secure your Dagster instance.
Install
Claude Code
Project-scoped (.mcp.json in your project root):
{
"mcpServers": {
"dagster": {
"command": "npx",
"args": ["-y", "github:pjatx/dagster-mono-mcp"],
"env": {
"DAGSTER_GRAPHQL_URL": "https://dagster.example.com/graphql",
"CF_ACCESS_CLIENT_ID": "your-client-id",
"CF_ACCESS_CLIENT_SECRET": "your-client-secret"
}
}
}
}Global (~/.claude.json — available in all projects):
{
"mcpServers": {
"dagster": {
"command": "npx",
"args": ["-y", "github:pjatx/dagster-mono-mcp"],
"env": {
"DAGSTER_GRAPHQL_URL": "https://dagster.example.com/graphql"
}
}
}
}Cursor
Add to .cursor/mcp.json in your project root:
{
"mcpServers": {
"dagster": {
"command": "npx",
"args": ["-y", "github:pjatx/dagster-mono-mcp"],
"env": {
"DAGSTER_GRAPHQL_URL": "https://dagster.example.com/graphql",
"CF_ACCESS_CLIENT_ID": "your-client-id",
"CF_ACCESS_CLIENT_SECRET": "your-client-secret"
}
}
}
}Windsurf
Add to ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"dagster": {
"command": "npx",
"args": ["-y", "github:pjatx/dagster-mono-mcp"],
"env": {
"DAGSTER_GRAPHQL_URL": "https://dagster.example.com/graphql",
"CF_ACCESS_CLIENT_ID": "your-client-id",
"CF_ACCESS_CLIENT_SECRET": "your-client-secret"
}
}
}
}Environment Variables
Variable | Default | Required |
|
| No |
| — | No (required if behind CF Access) |
| — | No (required if behind CF Access) |
Usage
Single tool dagster with action dispatch:
List runs
{"action": "runs"}
{"action": "runs", "status": "FAILURE"}
{"action": "runs", "job": "my_job", "limit": 5}Run details
{"action": "run", "id": "<run-id>"}Event logs
{"action": "logs", "id": "<run-id>"}
{"action": "logs", "id": "<run-id>", "limit": 100}Raw GraphQL
{"action": "graphql", "query": "{ version }"}
{"action": "graphql", "query": "query($id: ID!) { runOrError(runId: $id) { __typename } }", "variables": {"id": "abc123"}}Help
{"action": "help"}Returns full documentation including available statuses, all parameters, and example queries.
Design
This project follows the mono-tool pattern: one MCP tool with action dispatch instead of many small tools. Fewer tools means less token overhead for the LLM and simpler tool selection — the model doesn't have to choose between a dozen similar-sounding tools. Inspired by Cloudflare's Code Mode post on rethinking how LLMs interact with MCP servers.
Development
npm install
npm run build # esbuild bundle -> dist/index.js
npm start # run the MCP server (stdio transport)License
MIT
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Tools
Latest Blog Posts
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/pjatx/dagster-mono-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server