Airflow MCP Server

Controla Apache Airflow a través de su API usando autenticación JWT.

Documentación

airflow-mcp-server: Un servidor MCP para controlar Airflow 3

mcp-name: io.github.abhishekbhakat/airflow-mcp-server

Certificación MCPHub

Este servidor MCP está certificado por MCPHub. Esta certificación garantiza que airflow-mcp-server sigue las mejores prácticas para la implementación del Protocolo de Contexto de Modelo.

Encuéntralo en Glama

Descripción general

Un servidor de Protocolo de Contexto de Modelo para controlar Airflow mediante las APIs de Airflow.

Video de demostración

https://github.com/user-attachments/assets/f3e60fff-8680-4dd9-b08e-fa7db655a705

Configuración

Uso con Claude Desktop

Transporte Stdio (predeterminado)

{
    "mcpServers": {
        "airflow-mcp-server": {
            "command": "uvx",
            "args": [
                "airflow-mcp-server",
                "--base-url",
                "http://localhost:8080",
                "--auth-token",
                "<jwt_token>"
            ]
        }
    }
}

Consulta CONFIG.md para ver ejemplos de configuración específicos de IDE en clientes MCP populares.

Transporte HTTP

{
    "mcpServers": {
        "airflow-mcp-server-http": {
            "command": "uvx",
            "args": [
                "airflow-mcp-server",
                "--http",
                "--port",
                "3000",
                "--base-url",
                "http://localhost:8080",
                "--auth-token",
                "<jwt_token>"
            ]
        }
    }
}

Nota:

  • Establece base_url a la URL raíz de Airflow (por ejemplo, http://localhost:8080).
  • No incluyas /api/v2 en la URL base. El servidor obtendrá automáticamente la especificación OpenAPI desde ${base_url}/openapi.json.
  • Solo se requiere el token JWT para la autenticación. La autenticación por cookie y básica ya no se admite en Airflow 3.0.

Opciones de transporte

El servidor admite múltiples protocolos de transporte:

Transporte Stdio (predeterminado)

Transporte de entrada/salida estándar para comunicación directa de procesos:

airflow-mcp-server --safe --base-url http://localhost:8080 --auth-token <jwt>

Transporte HTTP

Utiliza HTTP Streamable para una mejor escalabilidad y compatibilidad web:

airflow-mcp-server --safe --http --port 3000 --base-url http://localhost:8080 --auth-token <jwt>

Nota: El transporte SSE está obsoleto. Usa --http para nuevas implementaciones, ya que proporciona una mejor comunicación bidireccional y es el enfoque recomendado por FastMCP.

Modos de operación

El servidor admite dos modos de operación:

  • Modo seguro (--safe): Solo permite operaciones de solo lectura (solicitudes GET). Esto es útil cuando deseas evitar cualquier modificación en tu instancia de Airflow.
  • Modo no seguro (--unsafe): Permite todas las operaciones, incluidas las modificaciones. Este es el modo predeterminado.

Para iniciar en modo seguro:

airflow-mcp-server --safe

Para iniciar explícitamente en modo no seguro (aunque es el predeterminado):

airflow-mcp-server --unsafe

Modos de descubrimiento de herramientas

El servidor admite dos enfoques de descubrimiento de herramientas:

  • Descubrimiento jerárquico (predeterminado): Las herramientas se organizan por categorías (DAGs, Tareas, Conexiones, etc.). Primero navega por las categorías y luego selecciona herramientas específicas. Más manejable para APIs grandes.
  • Herramientas estáticas (--static-tools): Todas las herramientas disponibles de inmediato. Mejor para acceso programático, pero puede ser abrumador.

Para usar herramientas estáticas:

airflow-mcp-server --static-tools

Opciones de línea de comandos

Usage: airflow-mcp-server [OPTIONS]

  MCP server for Airflow

Options:
  -v, --verbose      Increase verbosity
  -s, --safe         Use only read-only tools
  -u, --unsafe       Use all tools (default)
  --static-tools     Use static tools instead of hierarchical discovery
  --base-url TEXT    Airflow API base URL
  --auth-token TEXT  Authentication token (JWT)
  --http             Use HTTP (Streamable HTTP) transport instead of stdio
  --sse              Use Server-Sent Events transport (deprecated, use --http
                     instead)
  --port INTEGER     Port to run HTTP/SSE server on (default: 3000)
  --host TEXT        Host to bind HTTP/SSE server to (default: localhost)
  --help             Show this message and exit.

Uso de recursos

Apunta el servidor a una carpeta de guías en Markdown cuando quieras que los agentes consulten documentación local:

airflow-mcp-server --base-url http://localhost:8080 --auth-token <jwt> --resources-dir ~/airflow-resources
  • Cada archivo .md/.markdown de nivel superior se convierte en un recurso de solo lectura (file:///<slug>) visible en tu cliente MCP.
  • El primer # Heading en cada archivo (si está presente) se usa como título del recurso; de lo contrario, se usa el nombre del archivo sin extensión.
  • Establece AIRFLOW_MCP_RESOURCES_DIR=/path/to/docs si prefieres la configuración basada en variables de entorno.
  • Actualiza los archivos en el disco y reinicia el servidor para actualizar la lista de recursos.

Consideraciones

Autenticación

  • Solo se admite la autenticación JWT en Airflow 3.0. Debes proporcionar un AUTH_TOKEN válido.

Límite de página

El valor predeterminado es 100 elementos, pero puedes cambiarlo usando la opción maximum_page_limit en la sección [api] del archivo airflow.cfg.

Selección de transporte

  • Usa el transporte stdio para comunicación directa de procesos (predeterminado)
  • Usa el transporte HTTP para implementaciones web, múltiples clientes o cuando necesites una mejor escalabilidad
  • Evita el transporte SSE, ya que está obsoleto en favor del transporte HTTP