Airflow MCP Server

Controle o Apache Airflow via sua API usando autenticação JWT.

Documentação

airflow-mcp-server: Um servidor MCP para controlar o Airflow 3

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

Certificação MCPHub

Este servidor MCP é certificado pela MCPHub. Esta certificação garante que o airflow-mcp-server segue as melhores práticas para a implementação do Model Context Protocol.

Encontre no Glama

Visão Geral

Um servidor Model Context Protocol para controlar o Airflow por meio das APIs do Airflow.

Vídeo de Demonstração

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

Configuração

Uso com o Claude Desktop

Transporte Stdio (Padrão)

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

Consulte CONFIG.md para exemplos de configuração específicos de IDE em 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>"
            ]
        }
    }
}

Observação:

  • Defina base_url como a URL raiz do Airflow (por exemplo, http://localhost:8080).
  • Não inclua /api/v2 na URL base. O servidor buscará automaticamente a especificação OpenAPI em ${base_url}/openapi.json.
  • Apenas o token JWT é necessário para autenticação. Cookie e autenticação básica não são mais suportados no Airflow 3.0.

Opções de Transporte

O servidor suporta múltiplos protocolos de transporte:

Transporte Stdio (Padrão)

Transporte de entrada/saída padrão para comunicação direta de processos:

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

Transporte HTTP

Usa HTTP Streamable para melhor escalabilidade e compatibilidade web:

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

Observação: O transporte SSE está obsoleto. Use --http para novas implantações, pois ele fornece melhor comunicação bidirecional e é a abordagem recomendada pelo FastMCP.

Modos de Operação

O servidor suporta dois modos de operação:

  • Modo Seguro (--safe): Permite apenas operações somente leitura (requisições GET). Isso é útil quando você deseja evitar qualquer modificação na sua instância do Airflow.
  • Modo Não Seguro (--unsafe): Permite todas as operações, incluindo modificações. Este é o modo padrão.

Para iniciar no modo seguro:

airflow-mcp-server --safe

Para iniciar explicitamente no modo não seguro (embora este seja o padrão):

airflow-mcp-server --unsafe

Modos de Descoberta de Ferramentas

O servidor suporta duas abordagens de descoberta de ferramentas:

  • Descoberta Hierárquica (padrão): As ferramentas são organizadas por categorias (DAGs, Tarefas, Conexões, etc.). Navegue pelas categorias primeiro e depois selecione ferramentas específicas. Mais gerenciável para APIs grandes.
  • Ferramentas Estáticas (--static-tools): Todas as ferramentas disponíveis imediatamente. Melhor para acesso programático, mas pode ser avassalador.

Para usar ferramentas estáticas:

airflow-mcp-server --static-tools

Opções de Linha de Comando

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.

Usando Recursos

Aponte o servidor para uma pasta de guias Markdown sempre que quiser que os agentes consultem documentação local:

airflow-mcp-server --base-url http://localhost:8080 --auth-token <jwt> --resources-dir ~/airflow-resources
  • Cada arquivo .md/.markdown de nível superior se torna um recurso somente leitura (file:///<slug>) visível no seu cliente MCP.
  • O primeiro # Heading em cada arquivo (se presente) é usado como título do recurso; caso contrário, o nome do arquivo é usado.
  • Defina AIRFLOW_MCP_RESOURCES_DIR=/path/to/docs se preferir configuração baseada em ambiente.
  • Atualize os arquivos no disco e reinicie o servidor para atualizar a lista de recursos.

Considerações

Autenticação

  • Apenas autenticação JWT é suportada no Airflow 3.0. Você deve fornecer um AUTH_TOKEN válido.

Limite de Página

O padrão é 100 itens, mas você pode alterá-lo usando a opção maximum_page_limit na seção [api] do arquivo airflow.cfg.

Seleção de Transporte

  • Use o transporte stdio para comunicação direta de processos (padrão)
  • Use o transporte HTTP para implantações web, múltiplos clientes ou quando precisar de melhor escalabilidade
  • Evite o transporte SSE, pois está obsoleto em favor do transporte HTTP