mcp-server-apache-airflow
A Model Context Protocol (MCP) server implementation for Apache Airflow, enabling seamless integration with MCP clients. This project provides a standardized way to interact with Apache Airflow through the Model Context Protocol.
<a href="https://glama.ai/mcp/servers/e99b6vx9lw"> <img width="380" height="200" src="https://glama.ai/mcp/servers/e99b6vx9lw/badge" alt="Server for Apache Airflow MCP server" /> </a>About
This project implements a Model Context Protocol server that wraps Apache Airflow's REST API, allowing MCP clients to interact with Airflow in a standardized way. It uses the official Apache Airflow client library to ensure compatibility and maintainability.
Feature Implementation Status
| Feature | API Path | Status |
|---|---|---|
| DAG Management | ||
| List DAGs | /api/v1/dags | ✅ |
| Get DAG Details | /api/v1/dags/{dag_id} | ✅ |
| Pause DAG | /api/v1/dags/{dag_id} | ✅ |
| Unpause DAG | /api/v1/dags/{dag_id} | ✅ |
| Update DAG | /api/v1/dags/{dag_id} | ✅ |
| Delete DAG | /api/v1/dags/{dag_id} | ✅ |
| Get DAG Source | /api/v1/dagSources/{file_token} | ✅ |
| Patch Multiple DAGs | /api/v1/dags | ✅ |
| Reparse DAG File | /api/v1/dagSources/{file_token}/reparse | ✅ |
| DAG Runs | ||
| List DAG Runs | /api/v1/dags/{dag_id}/dagRuns | ✅ |
| Create DAG Run | /api/v1/dags/{dag_id}/dagRuns | ✅ |
| Get DAG Run Details | /api/v1/dags/{dag_id}/dagRuns/{dag_run_id} | ✅ |
| Update DAG Run | /api/v1/dags/{dag_id}/dagRuns/{dag_run_id} | ✅ |
| Delete DAG Run | /api/v1/dags/{dag_id}/dagRuns/{dag_run_id} | ✅ |
| Get DAG Runs Batch | /api/v1/dags/~/dagRuns/list | ✅ |
| Clear DAG Run | /api/v1/dags/{dag_id}/dagRuns/{dag_run_id}/clear | ✅ |
| Set DAG Run Note | /api/v1/dags/{dag_id}/dagRuns/{dag_run_id}/setNote | ✅ |
| Get Upstream Dataset Events | /api/v1/dags/{dag_id}/dagRuns/{dag_run_id}/upstreamDatasetEvents | ✅ |
| Tasks | ||
| List DAG Tasks | /api/v1/dags/{dag_id}/tasks | ✅ |
| Get Task Details | /api/v1/dags/{dag_id}/tasks/{task_id} | ✅ |
| Get Task Instance | /api/v1/dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances/{task_id} | ✅ |
| List Task Instances | /api/v1/dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances | ✅ |
| Update Task Instance | /api/v1/dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances/{task_id} | ✅ |
| Get Task Instance Log | /api/v1/dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances/{task_id}/logs/{task_try_number} | ✅ |
| Clear Task Instances | /api/v1/dags/{dag_id}/clearTaskInstances | ✅ |
| Set Task Instances State | /api/v1/dags/{dag_id}/updateTaskInstancesState | ✅ |
| List Task Instance Tries | /api/v1/dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances/{task_id}/tries | ✅ |
| Variables | ||
| List Variables | /api/v1/variables | ✅ |
| Create Variable | /api/v1/variables | ✅ |
| Get Variable | /api/v1/variables/{variable_key} | ✅ |
| Update Variable | /api/v1/variables/{variable_key} | ✅ |
| Delete Variable | /api/v1/variables/{variable_key} | ✅ |
| Connections | ||
| List Connections | /api/v1/connections | ✅ |
| Create Connection | /api/v1/connections | ✅ |
| Get Connection | /api/v1/connections/{connection_id} | ✅ |
| Update Connection | /api/v1/connections/{connection_id} | ✅ |
| Delete Connection | /api/v1/connections/{connection_id} | ✅ |
| Test Connection | /api/v1/connections/test | ✅ |
| Pools | ||
| List Pools | /api/v1/pools | ✅ |
| Create Pool | /api/v1/pools | ✅ |
| Get Pool | /api/v1/pools/{pool_name} | ✅ |
| Update Pool | /api/v1/pools/{pool_name} | ✅ |
| Delete Pool | /api/v1/pools/{pool_name} | ✅ |
| XComs | ||
| List XComs | /api/v1/dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances/{task_id}/xcomEntries | ✅ |
| Get XCom Entry | /api/v1/dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances/{task_id}/xcomEntries/{xcom_key} | ✅ |
| Datasets | ||
| List Datasets | /api/v1/datasets | ✅ |
| Get Dataset | /api/v1/datasets/{uri} | ✅ |
| Get Dataset Events | /api/v1/datasetEvents | ✅ |
| Create Dataset Event | /api/v1/datasetEvents | ✅ |
| Get DAG Dataset Queued Event | /api/v1/dags/{dag_id}/dagRuns/queued/datasetEvents/{uri} | ✅ |
| Get DAG Dataset Queued Events | /api/v1/dags/{dag_id}/dagRuns/queued/datasetEvents | ✅ |
| Delete DAG Dataset Queued Event | /api/v1/dags/{dag_id}/dagRuns/queued/datasetEvents/{uri} | ✅ |
| Delete DAG Dataset Queued Events | /api/v1/dags/{dag_id}/dagRuns/queued/datasetEvents | ✅ |
| Get Dataset Queued Events | /api/v1/datasets/{uri}/dagRuns/queued/datasetEvents | ✅ |
| Delete Dataset Queued Events | /api/v1/datasets/{uri}/dagRuns/queued/datasetEvents | ✅ |
| Monitoring | ||
| Get Health | /api/v1/health | ✅ |
| DAG Stats | ||
| Get DAG Stats | /api/v1/dags/statistics | ✅ |
| Config | ||
| Get Config | /api/v1/config | ✅ |
| Plugins | ||
| Get Plugins | /api/v1/plugins | ✅ |
| Providers | ||
| List Providers | /api/v1/providers | ✅ |
| Event Logs | ||
| List Event Logs | /api/v1/eventLogs | ✅ |
| Get Event Log | /api/v1/eventLogs/{event_log_id} |
…
