airflow-mcp-server: An MCP Server for controlling Airflow
@abhishekbhakat
MCP Server for Apache Airflow
Overview
What is airflow-mcp-server?
airflow-mcp-server is a Model Context Protocol server that enables AI assistants to control Apache Airflow 3 via Airflow APIs. It connects to an Airflow instance using a JWT token and exposes tools for managing DAGs, tasks, connections, and more.
How to use airflow-mcp-server?
Install via uvx and configure it in your MCP client (e.g., Claude Desktop) with the Airflow base URL and JWT token. Start with airflow-mcp-server --base-url http://localhost:8080 --auth-token <jwt>. Use --safe for read-only mode or --unsafe for full access (default). Choose between stdio (default) or HTTP transport with --http.
Key features of airflow-mcp-server
- Controls Airflow via the Airflow REST API
- Supports safe (read-only) and unsafe (full access) operation modes
- Offers hierarchical tool discovery or static tools
- Provides stdio, HTTP, and deprecated SSE transport options
- Accepts local Markdown files as read-only resources
- Requires only JWT authentication (Airflow 3)
Use cases of airflow-mcp-server
- Querying DAG statuses, task instances, and pipeline runs
- Triggering or pausing DAGs from an AI assistant
- Viewing and managing Airflow connections and variables
- Troubleshooting Airflow runs with natural language commands
- Automating Airflow workflows via chat or agent interfaces
FAQ from airflow-mcp-server
What authentication is required?
Only JWT token authentication is supported. Cookie and basic auth are no longer available in Airflow 3.0. Provide the token via --auth-token.
What transport options are available?
The server supports stdio (default for direct process communication) and HTTP (recommended for web deployments). SSE transport is deprecated.
How does safe mode differ from unsafe mode?
Safe mode (--safe) restricts all tools to read-only GET requests. Unsafe mode (--unsafe, the default) allows all operations including modifications.
How are tools organized?
By default, tools are organized hierarchically by categories (DAGs, Tasks, Connections, etc.). Use --static-tools to list all tools immediately without browsing categories.
Can I provide local documentation as resources?
Yes. Use --resources-dir <path> to point to a folder of Markdown files. Each .md file becomes a read-only resource visible in the MCP client.