airflow-mcp-server
Allows inspection and operation of Apache Airflow over its REST API, providing tools for managing DAGs, DAG runs, task instances, logs, pools, and import errors.
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., "@airflow-mcp-serverwhat's the health of my Airflow instance?"
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.
airflow-mcp-server
An MCP server that lets Claude inspect and operate Apache Airflow over its REST API. It exposes safe, curated tools (read + a few guarded writes) rather than mirroring the whole API.
Targets Airflow 2 (stable REST API /api/v1). Airflow 3 is intentionally
out of scope.
Runs as a local stdio server: each user runs it on their own machine with their own Airflow credentials, which keeps Airflow RBAC intact.
Status
Working read and write tools against Airflow 2; not yet published.
Read: get_airflow_version, get_airflow_health, list_pools,
list_dags, get_dag, list_dag_runs, get_dag_run, list_task_instances,
get_task_instance, get_task_logs, list_import_errors.
Write (refused when AIRFLOW_MCP_READ_ONLY=true): trigger_dag_run,
set_dag_paused, clear_task_instances (supports dry_run to preview).
Related MCP server: MCP Server for Apache Airflow
Configuration
All settings come from AIRFLOW_MCP_* environment variables (prefixed to avoid
clashing with Airflow's own env). See .env.example.
Variable | Required | Default | Notes |
| yes | - | e.g. |
| one auth method | - | Basic auth |
| one auth method | - | Bearer token; wins over basic auth |
| no |
|
|
| no |
| |
| no |
| seconds |
Use with Claude
Until published to PyPI, point your MCP client at the local checkout:
{
"mcpServers": {
"airflow": {
"command": "uv",
"args": ["run", "--directory", "C:\\path\\to\\airflow-mcp-server", "airflow-mcp-server"],
"env": {
"AIRFLOW_MCP_BASE_URL": "http://localhost:8080",
"AIRFLOW_MCP_USERNAME": "airflow",
"AIRFLOW_MCP_PASSWORD": "airflow"
}
}
}
}Once published, this simplifies to "command": "uvx", "args": ["airflow-mcp-server"].
Development
uv sync # install deps
uv run pytest # unit tests (mocked, no network)
uv run pytest -m e2e # opt-in live test; needs a .env pointing at a real Airflow 2
uv run airflow-mcp-server # run the server (expects an MCP client on stdio)Roadmap
Foundation + connectivity (version, health). done
Read tools: DAGs, DAG runs, task instances, logs, import errors, pools. done
Safe writes: trigger DAG, pause/unpause, clear/retry tasks (gated by read-only). done
Packaging metadata and LICENSE. done
Publish to PyPI. pending
License
MIT - see LICENSE.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
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