airflow-mcp-server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| AIRFLOW_MCP_TIMEOUT | No | Timeout in seconds for API requests. | 30 |
| AIRFLOW_MCP_BASE_URL | Yes | Base URL of the Airflow instance (e.g. http://localhost:8080, no /api suffix). Required. | |
| AIRFLOW_MCP_PASSWORD | No | Password for basic auth. Used with AIRFLOW_MCP_USERNAME. | |
| AIRFLOW_MCP_USERNAME | No | Username for basic auth. Used with AIRFLOW_MCP_PASSWORD. | |
| AIRFLOW_MCP_API_TOKEN | No | Bearer token for authentication. Wins over basic auth if both are provided. | |
| AIRFLOW_MCP_READ_ONLY | No | Set to 'true' to disable all write tools. | false |
| AIRFLOW_MCP_VERIFY_SSL | No | Whether to verify SSL certificates. | true |
Capabilities
Features and capabilities supported by this server
| 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 |
|---|---|
| list_dag_runsB | List runs of a DAG, most recent first. |
| get_dag_runA | Get a single DAG run by dag_id and dag_run_id. |
| list_dagsA | List DAGs with their pause state, schedule, owners, and tags. |
| get_dagB | Get a single DAG's details by dag_id. |
| list_import_errorsA | List DAG import errors (parse failures), with filename and stack trace. The quickest way to find why a DAG is missing from the list or broken. |
| get_task_logsA | Read the log for one task attempt. Task logs can be large, so by default only the trailing portion is returned (where the error and traceback usually are). |
| get_airflow_versionA | Return the Airflow version reported by the API. Handy for confirming connectivity and which Airflow major version is in use. |
| get_airflow_healthA | Return Airflow component health: metadatabase, scheduler, triggerer, dag-processor. |
| list_poolsA | List worker pools with their slot usage (occupied/running/queued/open). |
| list_task_instancesA | List task instances in a DAG run, with their states and timings. |
| get_task_instanceB | Get a single task instance by dag_id, dag_run_id, and task_id. |
| trigger_dag_runB | Trigger a new run of a DAG. |
| set_dag_pausedA | Pause or unpause a DAG. |
| clear_task_instancesA | Clear task instances so they re-run (retry). Clearing resets task state and the scheduler re-runs them, so it is
destructive - it can re-execute work. Use |
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
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/ssasuoirafen/airflow-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server