PluginBench
MCP Server
Stale
MIT

io.github.abhishekbhakat/airflow-mcp-server MCP Server

io.github.abhishekbhakat/airflow-mcp-server

Control Apache Airflow via Claude and Cursor with read/write access to DAGs, tasks, connections, and more.

What is the io.github.abhishekbhakat/airflow-mcp-server MCP server?

The Airflow MCP server is a Model Context Protocol server that enables AI agents like Claude to control and manage Apache Airflow instances through the Airflow REST API. It supports both read-only (safe mode) and full read-write operations, with configurable tool discovery and multiple transport protocols.

This server bridges Claude and Cursor to your Airflow deployment, allowing you to trigger DAG runs, monitor task execution, manage connections, and perform administrative operations programmatically. It's useful for automating Airflow management tasks, debugging workflows, and integrating Airflow operations into AI-assisted development workflows.

How to install io.github.abhishekbhakat/airflow-mcp-server

Copy-paste configuration for popular MCP clients.

transport: stdio
Config generated by PluginBench — verify against the source before use.
Environment / auth
  • AIRFLOW_BASE_URL
    required

    The base URL for the Airflow API (e.g., http://localhost:8080)

  • AUTH_TOKEN
    required
    secret

    The JWT authentication token for Airflow API access

~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "airflow-mcp-server": {
      "command": "uvx",
      "args": [
        "airflow-mcp-server",
        "--safe",
        "--static-tools"
      ],
      "env": {
        "AIRFLOW_BASE_URL": "<YOUR_AIRFLOW_BASE_URL>",
        "AUTH_TOKEN": "<YOUR_AUTH_TOKEN>"
      }
    }
  }
}

Tools & capabilities

Tools this server exposes to the agent.

  • DAG Management — List, trigger, and manage DAGs in your Airflow instance
  • Task Operations — Monitor, retry, and manage individual task executions
  • Connection Management — Create, update, and manage Airflow connections
  • Variable Management — Manage Airflow variables and configuration
  • Pool Management — Manage resource pools for task execution
  • XCom Operations — Access and manage cross-communication data between tasks
  • Log Retrieval — Fetch task and DAG execution logs
  • Health Monitoring — Check Airflow instance health and status

Use cases

  • Trigger and monitor DAG runs from Claude without leaving your chat interface
  • Retrieve task logs and execution history for debugging workflow issues
  • Manage Airflow connections and variables programmatically through natural language
  • Automate routine Airflow administrative tasks like pool and variable updates
  • Monitor Airflow health and get real-time status updates on running tasks

io.github.abhishekbhakat/airflow-mcp-server MCP server FAQ

What is the Airflow MCP server?

It's an MCP server that connects Claude or Cursor to your Apache Airflow instance, allowing you to control DAGs, tasks, connections, and other Airflow resources via the Airflow REST API.

Is it free?

Yes, it's open-source and available on PyPI as 'airflow-mcp-server'.

How do I install it in Claude Desktop?

Add it to your Claude Desktop config.json under mcpServers with the command 'uvx airflow-mcp-server' and pass your Airflow base URL and JWT authentication token as arguments.

What authentication does it require?

Only JWT token authentication is supported for Airflow 3.0. You must provide a valid JWT token via the --auth-token parameter.

Can I use it in read-only mode?

Yes, use the --safe flag to enable read-only mode, which restricts the server to GET requests only.

What transport protocols are supported?

The server supports stdio (default), HTTP/Streamable HTTP, and deprecated SSE transport. HTTP is recommended for web deployments and scalability.

README (reference)

Source of truth, from the repository.

airflow-mcp-server: An MCP Server for controlling Airflow 3

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

MCPHub Certification

This MCP server is certified by MCPHub. This certification ensures that airflow-mcp-server follows best practices for Model Context Protocol implementation.

Find on Glama

<a href="https://glama.ai/mcp/servers/6gjq9w80xr"> <img width="380" height="200" src="https://glama.ai/mcp/servers/6gjq9w80xr/badge" /> </a>

Overview

A Model Context Protocol server for controlling Airflow via Airflow APIs.

Demo Video

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

Setup

Usage with Claude Desktop

Stdio Transport (Default)

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

See CONFIG.md for IDE-specific configuration examples across popular MCP clients.

HTTP Transport

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

Note:

  • Set base_url to the root Airflow URL (e.g., http://localhost:8080).
  • Do not include /api/v2 in the base URL. The server will automatically fetch the OpenAPI spec from ${base_url}/openapi.json.
  • Only JWT token is required for authentication. Cookie and basic auth are no longer supported in Airflow 3.0.

Transport Options

The server supports multiple transport protocols:

Stdio Transport (Default)

Standard input/output transport for direct process communication:

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

HTTP Transport

Uses Streamable HTTP for better scalability and web compatibility:

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

Note: SSE transport is deprecated. Use --http for new deployments as it provides better bidirectional communication and is the recommended approach by FastMCP.

Operation Modes

The server supports two operation modes:

  • Safe Mode (--safe): Only allows read-only operations (GET requests). This is useful when you want to prevent any modifications to your Airflow instance.
  • Unsafe Mode (--unsafe): Allows all operations including modifications. This is the default mode.

To start in safe mode:

airflow-mcp-server --safe

To explicitly start in unsafe mode (though this is default):

airflow-mcp-server --unsafe

Tool Discovery Modes

The server supports two tool discovery approaches:

  • Hierarchical Discovery (default): Tools are organized by categories (DAGs, Tasks, Connections, etc.). Browse categories first, then select specific tools. More manageable for large APIs.
  • Static Tools (--static-tools): All tools available immediately. Better for programmatic access but can be overwhelming.

To use static tools:

airflow-mcp-server --static-tools

Command Line Options

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.

Using Resources

Point the server at a folder of Markdown guides whenever you want agents to reference local documentation:

airflow-mcp-server --base-url http://localhost:8080 --auth-token <jwt> --resources-dir ~/airflow-resources
  • Every top-level .md/.markdown file becomes a read-only resource (file:///<slug>) visible in your MCP client.
  • The first # Heading in each file (if present) is used as the resource title; otherwise the filename stem is used.
  • Set AIRFLOW_MCP_RESOURCES_DIR=/path/to/docs if you prefer environment-based configuration.
  • Update the files on disk and restart the server to refresh the resources list.

Considerations

Authentication

  • Only JWT authentication is supported in Airflow 3.0. You must provide a valid AUTH_TOKEN.

Page Limit

The default is 100 items, but you can change it using maximum_page_limit option in [api] section in the airflow.cfg file.

Transport Selection

  • Use stdio transport for direct process communication (default)
  • Use HTTP transport for web deployments, multiple clients, or when you need better scalability
  • Avoid SSE transport as it's deprecated in favor of HTTP transport

Related MCP servers

MCP server for SWAPI API

0
HTML
View repository →

Read-only MCP server for AgentLoopKit tasks, policies, reports, handoffs, and status.

1
TypeScript
MIT
View repository →

Agent-native catalogue of Baseframe Labs dev tools and MCP servers.

Agent-first MCP. 11 AST adapters, 12 named languages, 51 tools, mission outcomes. Local.

4
TypeScript
MIT
View repository →
TOTokenTrace logo

Local-first AI CLI usage analytics for agents.

0
TypeScript
MIT
View repository →

abm.dev — the account-based marketing API for AI agents: Search, Enrich, and Create across B2B.

1
JavaScript
MIT
View repository →