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 |
Capabilities
Features and capabilities supported by this server
| 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
- 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