MCP Server for Apache Airflow

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Integrations

  • Allows interaction with Apache Airflow through a Model Context Protocol server that wraps Airflow's REST API. Supports DAG management (listing, viewing details, pausing/unpausing), DAG runs (listing, creating), task management (listing tasks and task instances), and system information (health status, version, import errors).

Flujo de aire de Apache del servidor mcp

Implementación de un servidor del Protocolo de Contexto de Modelo (MCP) para Apache Airflow, que permite una integración fluida con clientes MCP. Este proyecto proporciona una forma estandarizada de interactuar con Apache Airflow mediante el Protocolo de Contexto de Modelo.

Acerca de

Este proyecto implementa un servidor de Protocolo de Contexto de Modelo que encapsula la API REST de Apache Airflow, lo que permite a los clientes MCP interactuar con Airflow de forma estandarizada. Utiliza la biblioteca de cliente oficial de Apache Airflow para garantizar la compatibilidad y el mantenimiento.

Estado de implementación de la función

CaracterísticaRuta de la APIEstado
Gestión de DAG
Lista de DAG/api/v1/dags
Obtener detalles de DAG/api/v1/dags/{dag_id}
Pausa DAG/api/v1/dags/{dag_id}
Reanudar DAG/api/v1/dags/{dag_id}
Actualizar DAG/api/v1/dags/{dag_id}
Eliminar DAG/api/v1/dags/{dag_id}
Obtener fuente DAG/api/v1/dagSources/{file_token}
Parchear varios DAG/api/v1/dags
Analizar archivo DAG/api/v1/dagSources/{file_token}/reparse
DAG se ejecuta
Lista de ejecuciones de DAG/api/v1/dags/{dag_id}/dagRuns
Crear ejecución de DAG/api/v1/dags/{dag_id}/dagRuns
Obtener detalles de la ejecución de DAG/api/v1/dags/{dag_id}/dagRuns/{dag_run_id}
Actualizar la ejecución de DAG/api/v1/dags/{dag_id}/dagRuns/{dag_run_id}
Eliminar ejecución de DAG/api/v1/dags/{dag_id}/dagRuns/{dag_run_id}
Obtener lotes de ejecuciones DAG/api/v1/dags/~/dagRuns/list
Ejecución de DAG clara/api/v1/dags/{dag_id}/dagRuns/{dag_run_id}/clear
Establecer nota de ejecución de DAG/api/v1/dags/{dag_id}/dagRuns/{dag_run_id}/setNote
Obtener eventos del conjunto de datos ascendente/api/v1/dags/{dag_id}/dagRuns/{dag_run_id}/upstreamDatasetEvents
Tareas
Lista de tareas de DAG/api/v1/dags/{dag_id}/tasks
Obtener detalles de la tarea/api/v1/dags/{dag_id}/tasks/{task_id}
Obtener instancia de tarea/api/v1/dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances/{task_id}
Lista de instancias de tareas/api/v1/dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances
Actualizar instancia de tarea/api/v1/dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances/{task_id}
Borrar instancias de tareas/api/v1/dags/{dag_id}/clearTaskInstances
Establecer el estado de las instancias de tarea/api/v1/dags/{dag_id}/updateTaskInstancesState
Variables
Variables de lista/api/v1/variables
Crear variable/api/v1/variables
Obtener variable/api/v1/variables/{variable_key}
Actualizar variable/api/v1/variables/{variable_key}
Eliminar variable/api/v1/variables/{variable_key}
Conexiones
Conexiones de lista/api/v1/connections
Crear conexión/api/v1/connections
Obtener conexión/api/v1/connections/{connection_id}
Actualizar conexión/api/v1/connections/{connection_id}
Eliminar conexión/api/v1/connections/{connection_id}
Conexión de prueba/api/v1/connections/test
Quinielas
Lista de grupos/api/v1/pools
Crear grupo/api/v1/pools
Obtener piscina/api/v1/pools/{pool_name}
Grupo de actualizaciones/api/v1/pools/{pool_name}
Eliminar grupo/api/v1/pools/{pool_name}
XComs
Lista de XComs/api/v1/dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances/{task_id}/xcomEntries
Obtenga la entrada a XCom/api/v1/dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances/{task_id}/xcomEntries/{xcom_key}
Conjuntos de datos
Lista de conjuntos de datos/api/v1/datasets
Obtener conjunto de datos/api/v1/datasets/{uri}
Obtener eventos del conjunto de datos/api/v1/datasetEvents
Crear evento de conjunto de datos/api/v1/datasetEvents
Obtener evento en cola del conjunto de datos DAG/api/v1/dags/{dag_id}/dagRuns/queued/datasetEvents/{uri}
Obtener eventos en cola del conjunto de datos DAG/api/v1/dags/{dag_id}/dagRuns/queued/datasetEvents
Eliminar evento en cola del conjunto de datos DAG/api/v1/dags/{dag_id}/dagRuns/queued/datasetEvents/{uri}
Eliminar eventos en cola del conjunto de datos DAG/api/v1/dags/{dag_id}/dagRuns/queued/datasetEvents
Obtener eventos en cola del conjunto de datos/api/v1/datasets/{uri}/dagRuns/queued/datasetEvents
Eliminar eventos en cola del conjunto de datos/api/v1/datasets/{uri}/dagRuns/queued/datasetEvents
Escucha
Obtenga salud/api/v1/health
Estadísticas de DAG
Obtener estadísticas de DAG/api/v1/dags/statistics
Configuración
Obtener configuración/api/v1/config
Complementos
Obtener complementos/api/v1/plugins
Proveedores
Proveedores de listas/api/v1/providers
Registros de eventos
Lista de registros de eventos/api/v1/eventLogs
Obtener registro de eventos/api/v1/eventLogs/{event_log_id}
Sistema
Obtener errores de importación/api/v1/importErrors
Obtener detalles del error de importación/api/v1/importErrors/{import_error_id}
Obtener el estado de salud/api/v1/health
Obtener versión/api/v1/version

Configuración

Dependencias

Este proyecto depende de la biblioteca cliente oficial de Apache Airflow ( apache-airflow-client ). Se instalará automáticamente al instalar este paquete.

Variables de entorno

Establezca las siguientes variables de entorno:

AIRFLOW_HOST=<your-airflow-host> AIRFLOW_USERNAME=<your-airflow-username> AIRFLOW_PASSWORD=<your-airflow-password>

Uso con Claude Desktop

Añade a tu claude_desktop_config.json :

{ "mcpServers": { "mcp-server-apache-airflow": { "command": "uvx", "args": ["mcp-server-apache-airflow"], "env": { "AIRFLOW_HOST": "https://your-airflow-host", "AIRFLOW_USERNAME": "your-username", "AIRFLOW_PASSWORD": "your-password" } } } }

Configuración alternativa usando uv :

{ "mcpServers": { "mcp-server-apache-airflow": { "command": "uv", "args": [ "--directory", "/path/to/mcp-server-apache-airflow", "run", "mcp-server-apache-airflow" ], "env": { "AIRFLOW_HOST": "https://your-airflow-host", "AIRFLOW_USERNAME": "your-username", "AIRFLOW_PASSWORD": "your-password" } } } }

Reemplace /path/to/mcp-server-apache-airflow con la ruta real donde ha clonado el repositorio.

Selección de los grupos de API

Puede seleccionar los grupos de API que desea utilizar configurando el indicador --apis .

uv run mcp-server-apache-airflow --apis "dag,dagrun"

El valor predeterminado es utilizar todas las API.

Los valores permitidos son:

  • configuración
  • conexiones
  • trozo de cuero
  • dagrun
  • datos estadísticos
  • conjunto de datos
  • registro de eventos
  • error de importación
  • escucha
  • complemento
  • piscina
  • proveedor
  • instancia de tarea
  • variable
  • xcom

Ejecución manual

También puedes ejecutar el servidor manualmente:

make run

make run acepta las siguientes opciones:

Opciones:

  • --port : Puerto para escuchar SSE (predeterminado: 8000)
  • --transport : Tipo de transporte (stdio/sse, predeterminado: stdio)

O bien, puede ejecutar directamente el servidor sse, que acepta los mismos parámetros:

make run-sse

Instalación mediante herrería

Para instalar Apache Airflow MCP Server para Claude Desktop automáticamente a través de Smithery :

npx -y @smithery/cli install @yangkyeongmo/mcp-server-apache-airflow --client claude

Contribuyendo

¡Agradecemos sus contribuciones! No dude en enviar una solicitud de incorporación de cambios.

Licencia

Licencia MIT

You must be authenticated.

A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

Proporciona una forma estandarizada para que los clientes MCP interactúen con la API REST de Apache Airflow, respaldando operaciones como la administración de DAG y el monitoreo del estado del sistema Airflow.

  1. About
    1. Feature Implementation Status
      1. Setup
        1. Dependencies
        2. Environment Variables
        3. Usage with Claude Desktop
        4. Selecting the API groups
        5. Manual Execution
        6. Installing via Smithery
      2. Contributing
        1. License
          ID: e99b6vx9lw