MCP server
by astronomer
astro-airflow-mcp: AI assistant access to Apache Airflow REST API for DAG management, task monitoring, logs, and diagnos
Connects AI assistants to Apache Airflow's REST API to manage workflows, monitor tasks, and diagnose system issues. Provides comprehensive Airflow operations through conversational interface.
astro-airflow-mcp is an official MCP server published by astronomer that provides AI assistants with tools and capabilities via the Model Context Protocol. astro-airflow-mcp: AI assistant access to Apache Airflow REST API for DAG management, task monitoring, logs, and diagnos It is categorized under developer tools.
You can install astro-airflow-mcp in your AI client of choice. Use the install panel on this page to get one-click setup for Cursor, Claude Desktop, VS Code, and other MCP-compatible clients. This server runs locally on your machine via the stdio transport.
Apache-2.0
astro-airflow-mcp is released under the Apache-2.0 license. This is a permissive open-source license, meaning you can freely use, modify, and distribute the software.
Add new capabilities to Claude beyond text generation
Example
Access external data sources, execute code, interact with tools and services
Transform Claude from chatbot to action-taking agent
Provide Claude with access to relevant context and data
Example
Load project documentation, access knowledge bases, query databases
Get more accurate, context-aware responses
Automate multi-step workflows combining AI and external tools
Example
Research → Summarize → Create document → Send notification
Complete complex tasks end-to-end without manual steps
Share your MCP server with the developer community
astro-airflow-mcp is among the better-indexed MCP projects we tried; the explainx.ai summary tracks the official description.
I recommend astro-airflow-mcp for teams standardizing on MCP; the explainx.ai page compares cleanly with sibling servers.
astro-airflow-mcp reduced integration guesswork — categories and install configs on the listing matched the upstream repo.
Strong directory entry: astro-airflow-mcp surfaces stars and publisher context so we could sanity-check maintenance before adopting.
Useful MCP listing: astro-airflow-mcp is the kind of server we cite when onboarding engineers to host + tool permissions.
astro-airflow-mcp is among the better-indexed MCP projects we tried; the explainx.ai summary tracks the official description.
astro-airflow-mcp is among the better-indexed MCP projects we tried; the explainx.ai summary tracks the official description.
We evaluated astro-airflow-mcp against two servers with overlapping tools; this profile had the clearer scope statement.
We evaluated astro-airflow-mcp against two servers with overlapping tools; this profile had the clearer scope statement.
Useful MCP listing: astro-airflow-mcp is the kind of server we cite when onboarding engineers to host + tool permissions.
showing 1-10 of 25
[!WARNING] This project has been relocated to the Astronomer agents monorepo.
A Model Context Protocol (MCP) server for Apache Airflow that provides AI assistants with access to Airflow's REST API. Built with FastMCP.
<a href="https://insiders.vscode.dev/redirect?url=vscode://ms-vscode.vscode-mcp/install?%7B%22name%22%3A%22astro-airflow-mcp%22%2C%22command%22%3A%22uvx%22%2C%22args%22%3A%5B%22astro-airflow-mcp%22%2C%22--transport%22%2C%22stdio%22%5D%7D"><img src="https://img.shields.io/badge/VS_Code-Install_Server-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white" alt="Install in VS Code" height="32"></a> <a href="https://cursor.com/en-US/install-mcp?name=astro-airflow-mcp&config=eyJjb21tYW5kIjoidXZ4IiwiYXJncyI6WyJhc3Ryby1haXJmbG93LW1jcCIsIi0tdHJhbnNwb3J0Iiwic3RkaW8iXX0"><img src="https://cursor.com/deeplink/mcp-install-dark.svg" alt="Add to Cursor" height="32"></a>
<details> <summary>Manual configuration</summary>Add to your MCP settings (Cursor: ~/.cursor/mcp.json, VS Code: .vscode/mcp.json):
{
"mcpServers": {
"airflow": {
"command": "uvx",
"args": ["astro-airflow-mcp", "--transport", "stdio"]
}
}
}
</details>
claude mcp add airflow -- uvx astro-airflow-mcp --transport stdio
</details>
<details>
<summary>Gemini CLI</summary>
gemini mcp add airflow -- uvx astro-airflow-mcp --transport stdio
</details>
<details>
<summary>Codex CLI</summary>
codex mcp add airflow -- uvx astro-airflow-mcp --transport stdio
</details>
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"airflow": {
"command": "uvx",
"args": ["astro-airflow-mcp", "--transport", "stdio"]
}
}
}
</details>
Add to your MCP configuration file:
{
"mcpServers": {
"airflow": {
"command": "uvx",
"args": ["astro-airflow-mcp", "--transport", "stdio"]
}
}
}
Or connect to a running HTTP server: "url": "http://localhost:8000/mcp"
Note: No installation required -
uvxruns directly from PyPI. The--transport stdioflag is required because the server defaults to HTTP mode.
By default, the server connects to http://localhost:8080 (Astro CLI default). Set environment variables for custom Airflow instances:
| Variable | Description |
|---|---|
AIRFLOW_API_URL | Airflow webserver URL |
AIRFLOW_USERNAME | Username (Airflow 3.x uses OAuth2 token exchange) |
AIRFLOW_PASSWORD | Password |
AIRFLOW_AUTH_TOKEN | Bearer token (alternative to username/password) |
Example with auth (Claude Code):
claude mcp add airflow -e AIRFLOW_API_URL=https://your-airflow.example.com -e AIRFLOW_USERNAME=admin -e AIRFLOW_PASSWORD=admin -- uvx astro-airflow-mcp --transport stdio
explore_dag: Get comprehensive DAG information in one calldiagnose_dag_run: Debug failed DAG runs with task instance detailsget_system_health: System overview with health, errors, and warnings| Tool | Description |
|---|---|
explore_dag | Get comprehensive DAG info: metadata, tasks, recent runs, source code |
diagnose_dag_run | Debug a DAG run: run details, failed task instances, logs |
get_system_health | System overview: health status, import errors, warnings, DAG stats |
| Tool | Description |
|---|---|
list_dags | Get all DAGs and their metadata |
get_dag_details | Get detailed info about a specific DAG |
get_dag_source | Get the source code of a DAG |
get_dag_stats | Get DAG run statistics (Airflow 3.x only) |
list_dag_warnings | Get DAG import warnings |
list_import_errors | Get import errors from DAG files that failed to parse |
list_dag_runs | Get DAG run history |
get_dag_run | Get specific DAG run details |
trigger_dag | Trigger a new DAG run (start a workflow execution) |
pause_dag | Pause a DAG to prevent new scheduled runs |
unpause_dag | Unpause a DAG to resume scheduled runs |
list_tasks | Get all tasks in a DAG |
get_task | Get details about a specific task |
get_task_instance | Get task instance execution details |
get_task_logs | Get logs for a specific task instance execution |
list_pools | Get all resource pools |
get_pool | Get details about a specific pool |
list_variables | Get all Airflow variables |
get_variable | Get a specific variable by key |
list_connections | Get all connections (credentials excluded for security) |
list_assets | Get assets/datasets (unified naming across versions) |
list_plugins | Get installed Airflow plugins |
list_providers | Get installed provider packages |
get_airflow_config | Get Airflow configuration |
get_airflow_version | Get Airflow version information |
| Resource URI | Description |
|---|---|
airflow://version | Airflow version information |
airflow://providers | Installed provider packages |
airflow://plugins | Installed Airflow plugins |
airflow://config | Airflow configuration |
| Prompt | Description |
|---|---|
troubleshoot_failed_dag | Guided workflow for diagnosing DAG failures |
daily_health_check | Morning health check routine |
onboard_new_dag | Guide for understanding a new DAG |
For HTTP-based integrations or connecting multiple clients to one server:
# Run server (HTTP mode is default)
uvx astro-airflow-mcp --airflow-url https://my-airflow.example.com --username admin --password admin
Connect MCP clients to: http://localhost:8000/mcp
Install into your Airflow 3.x environment to expose MCP at http://your-airflow:8080/mcp/v1:
# Add to your Astro project
echo astro-airflow-mcp >> requirements.txt
| Flag | Environment Variable | Default | Description |
|---|---|---|---|
--transport | MCP_TRANSPORT | stdio | Transport mode (stdio or http) |
--host | MCP_HOST | localhost | Host to bind to (HTTP mode only) |
--port | MCP_PORT | 8000 | Port to bind to (HTTP mode only) |
--airflow-url | AIRFLOW_API_URL | Auto-discovered or http://localhost:8080 | Airflow webserver URL |
--airflow-project-dir | AIRFLOW_PROJECT_DIR | $PWD | Astro project directory for auto-discovering Airflow URL from .astro/config.yaml |
--auth-token | AIRFLOW_AUTH_TOKEN | None | Bearer token for authentication |
--username | AIRFLOW_USERNAME | None | Username for authentication (Airflow 3.x uses OAuth2 token exchange) |
--password | AIRFLOW_PASSWORD | None | Password for authentication |
The server is built using FastMCP with an adapter pattern for Airflow version compatibility:
adapters/): Version-specific API implementations
AirflowAdapter (base): Abstract interface for all Airflow API operationsAirflowV2Adapter: Airflow 2.x API (/api/v1) with basic authAirflowV3Adapter: Airflow 3.x API (/api/v2) with OAuth2 token exchangemodels.py): Pydantic models for type-safe API responsesPrerequisites
Time Estimate
15-60 minutes depending on server complexity
Steps
Troubleshooting
✓ Do
✗ Don't
💡 Pro Tips
Architecture
Model Context Protocol standardizes how AI hosts (Claude, Cursor) communicate with external tools and data sources through server implementations.
Protocols
Compatibility
✓ Use when
Use when you need Claude to access external data, execute actions, or integrate with tools. Best for extending AI capabilities beyond conversation.
✗ Avoid when
Avoid when native integrations exist (use official APIs directly), for real-time critical systems, or when security/compliance requires zero external dependencies.