airflow-dev-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| AIRFLOW_URL | No | Base URL of the cluster, no path. | http://localhost:8080 |
| AIRFLOW_TOKEN | No | Explicit bearer token; skips username/password entirely. | |
| AIRFLOW_TIMEOUT | No | HTTP timeout, in seconds. | 30 |
| AIRFLOW_PASSWORD | No | Password for authentication. | |
| AIRFLOW_USERNAME | No | Username for authentication. | |
| AIRFLOW_AUTH_MODE | No | auto, jwt, or basic. | auto |
| AIRFLOW_API_PREFIX | No | API path prefix. Use /api/v1 for Airflow 2.x. | /api/v2 |
| AIRFLOW_VERIFY_SSL | No | Set false to skip TLS verification (self-signed dev certs). | true |
| AIRFLOW_TOKEN_ENDPOINT | No | Path used to exchange credentials for a JWT. | /auth/token |
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": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| trigger_dagA | Trigger a manual run of a DAG in the dev Airflow cluster. Args:
dag_id: DAG identifier as it appears in Airflow.
conf: Optional dict passed to the run (accessible as Returns:
DagRunSummary for the created run, including |
| get_run_statusA | Get the state of a DAG run and (optionally) its task instances. Args:
dag_id: DAG identifier.
run_id: DAG run identifier returned by Returns:
RunStatus with |
| get_task_logsA | Fetch logs for a single task instance attempt. Args:
dag_id: DAG identifier.
run_id: DAG run identifier.
task_id: Task identifier within the DAG.
try_number: Attempt number (1-indexed). Retried tasks have multiple attempts —
call Returns:
TaskLogResult with |
| list_dagsA | List DAGs registered in the cluster with their paused / import-error flags. Use this to confirm a DAG parsed and registered. Important: a DAG whose file fails
to import at module load does NOT appear here at all — call Args: limit: Max DAGs to return (default 100). offset: Pagination offset. dag_id_pattern: Optional case-insensitive substring filter on dag_id. tags: Optional list of tags; only DAGs carrying one of them are returned. Returns:
DagList with |
| get_import_errorsA | List DAG import errors (parse failures) recorded by the scheduler. The primary debugging tool when a DAG you just wrote isn't showing up: a file that raises at import time is recorded here with its filename and full traceback. Args: limit: Max errors to return (default 100). offset: Pagination offset. Returns:
ImportErrorList with |
| set_dag_pausedA | Pause or unpause a DAG. Locally, newly added DAGs are paused by default, so Args: dag_id: DAG identifier. paused: True to pause, False to unpause. Returns: DagInfo reflecting the updated state. |
| list_dag_runsA | List recent runs of a DAG — useful when you don't already hold a run_id. Args: dag_id: DAG identifier. Pass "~" to list runs across all DAGs. limit: Max runs to return (default 25). offset: Pagination offset. state: Optional filter, e.g. ["running"], ["failed"], ["success", "queued"]. Returns:
DagRunList with |
| clear_task_instancesA | Clear task instances so they re-run — the fast way to re-test a task after a fix. Defaults to a DRY RUN: it reports which task instances would be cleared without touching them. Pass dry_run=False to actually clear; with reset_dag_runs=True the affected run is put back into a running state so cleared tasks re-execute. Args: dag_id: DAG identifier. dag_run_id: Restrict to a single run (recommended). If omitted, the API's other filters apply across runs. task_ids: Restrict to specific task_ids. If omitted, all matching tasks are cleared. only_failed: When True, only clear failed task instances. reset_dag_runs: When True (default), set affected runs back to running so cleared tasks are re-scheduled. dry_run: When True (default), preview only. Set False to actually clear. Returns:
ClearResult with |
| list_variablesA | List Airflow Variables (read-only) — handy when troubleshooting why a task can't find config it expects. Values flagged sensitive by Airflow's secrets masker come back masked. Read-only by design: this tool cannot create or modify variables. Args: limit: Max variables to return (default 100). offset: Pagination offset. Returns:
VariableList with |
| list_connectionsA | List Airflow Connections (read-only) — passwords are never returned by the API. Read-only by design: use it to confirm a connection exists with the expected conn_type / host / schema when a task fails to connect. Args: limit: Max connections to return (default 100). offset: Pagination offset. Returns:
ConnectionList with |
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/BrianLondon/airflow-dev-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server