{"id":"astronomer-astro-airflow-mcp","name":"astro-airflow-mcp","homepage":"https://astronomer.io","repo_url":"https://github.com/astronomer/astro-airflow-mcp","category":"automation","subcategories":[],"tags":["mcp","fastmcp","python","airflow","agents","workflow-orchestration"],"what_it_does":"astro-airflow-mcp is a Model Context Protocol (MCP) server (FastMCP-based) that exposes Apache Airflow functionality (via Airflow’s REST API) to AI agents. It can run standalone over MCP (stdio/HTTP) or as an Airflow 3.x plugin, and supports multiple Airflow auth styles (bearer token, basic auth, and username/password with OAuth2 token exchange for Airflow 3.x).","use_cases":["Let AI agents inspect Airflow DAGs/tasks/runs and retrieve source/logs for troubleshooting","Agent-driven health checks (imports/warnings/errors, DAG statistics)","Agent-initiated operational actions like triggering or pausing/unpausing DAGs","Centralized agent access to Airflow metadata (providers/plugins/config/assets/variables/pools)"],"not_for":["Highly regulated environments that require strict auditing/least-privilege controls over operational changes","Use cases needing guaranteed idempotency for orchestration actions without additional safeguards","Environments where outbound network access to the Airflow webserver is not allowed"],"best_when":"You want an agent-friendly, typed MCP interface to Airflow metadata and common operational workflows, especially when you already run Apache Airflow and can provide credentials for its REST API.","avoid_when":"You need strict rate-limit/latency guarantees or you cannot provide secure secret handling (e.g., safe credential storage) for agent-originated requests.","alternatives":["Direct Airflow REST API integration (custom tool/connector)","Airflow UI/API wrappers tailored to specific agent tasks","Other MCP servers or connectors for Airflow/Airflow-like schedulers","Using the Astro/Astronomer Airflow tooling directly (where applicable) rather than an MCP layer"],"af_score":62.5,"security_score":58.2,"reliability_score":31.2,"package_type":"mcp_server","discovery_source":["github"],"priority":"high","status":"evaluated","version_evaluated":null,"last_evaluated":"2026-03-30T15:43:13.416180+00:00","interface":{"has_rest_api":false,"has_graphql":false,"has_grpc":false,"has_mcp_server":true,"mcp_server_url":"http://localhost:8000/mcp (HTTP default) or stdio transport (client config)","has_sdk":false,"sdk_languages":[],"openapi_spec_url":null,"webhooks":false},"auth":{"methods":["Bearer token (AIRFLOW_AUTH_TOKEN)","Username/password (AIRFLOW_USERNAME/AIRFLOW_PASSWORD) with OAuth2 token exchange for Airflow 3.x","Basic auth (Airflow 2.x)"],"oauth":true,"scopes":false,"notes":"Auth is delegated to Airflow’s REST API auth mechanisms; the MCP server relays credentials/tokens. README indicates Airflow 3.x uses OAuth2 token exchange for username/password."},"pricing":{"model":null,"free_tier_exists":false,"free_tier_limits":null,"paid_tiers":[],"requires_credit_card":false,"estimated_workload_costs":null,"notes":"Open-source project (Apache-2.0). Costs depend on your Airflow infrastructure and any MCP client usage."},"requirements":{"requires_signup":false,"requires_credit_card":false,"domain_verification":false,"data_residency":[],"compliance":[],"min_contract":null},"agent_readiness":{"af_score":62.5,"security_score":58.2,"reliability_score":31.2,"mcp_server_quality":80.0,"documentation_accuracy":70.0,"error_message_quality":0.0,"error_message_notes":null,"auth_complexity":65.0,"rate_limit_clarity":20.0,"tls_enforcement":70.0,"auth_strength":70.0,"scope_granularity":30.0,"dependency_hygiene":65.0,"secret_handling":55.0,"security_notes":"The tool explicitly mentions excluding connection credentials from list_connections (positive). However, documentation primarily describes how to supply Airflow credentials via environment variables and does not describe fine-grained authorization/scope enforcement, audit logging, CSRF considerations, or explicit transport security requirements for the MCP server itself.","uptime_documented":0.0,"version_stability":45.0,"breaking_changes_history":40.0,"error_recovery":40.0,"idempotency_support":"false","idempotency_notes":"The README lists mutating operations (trigger/pause/unpause) but does not document idempotency behavior.","pagination_style":"none","retry_guidance_documented":false,"known_agent_gotchas":["Mutating tools (e.g., trigger_dag, pause_dag, unpause_dag) can cause real side effects; agents should use explicit confirmation/guardrails.","Large log/task outputs may be truncated/limited by the underlying Airflow REST API responses (not documented here).","Server defaults to HTTP mode but MCP clients may require stdio transport; misconfiguration can prevent connection."]}}