Purpose
mcp-airflow is an MCP server for managing Airflow through Apache Airflow's REST API. It exposes Airflow REST API operations as tools for MCP clients to call.
Main capabilities
- List DAGs
- Inspect runs and task instances
- Trigger runs
- Inspect failed DAGs
- Inspect scheduler health
Usage
The project is built on the MCP Python SDK's FastMCP API and is an open-source package. The maintainers do not operate a publicly hosted Airflow endpoint through this repository.
Authentication schemes
The client automatically selects the authentication scheme based on the Airflow version:
- Airflow 3.x (JWT): Uses AIRFLOW_USERNAME / AIRFLOW_PASSWORD to obtain a JWT token from the /auth/token endpoint, sends it as a Bearer token, and refreshes it automatically. AIRFLOW_BASE_URL must point to /api/v2.
- Airflow 2.x (Basic Authentication): If the JWT flow is unavailable, the client falls back to HTTP Basic Authentication using the same username/password. AIRFLOW_BASE_URL must point to /api/v1.
Configuration
Set environment variables (or create a .env file from .env.example).
Running
The server can be run, or added to an MCP client configuration (for example, Claude Desktop).
Applicable scenarios
Suitable for development or operations scenarios that require remote management of Apache Airflow workflows through MCP clients (such as Claude Desktop).
Limitations
The documentation does not provide specific environment variable names, run commands, MCP client configuration examples, supported Airflow version ranges, or other detailed information. For more on supported processes, architecture, operational guidance, and security boundaries, see docs/index.md. The roadmap and delivery status are in GitHub Issues and pull requests.