Skip to main content

MCP Server for Airflow

Project description

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

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

Tasks

  • Airflow 3 readiness
  • Parse OpenAPI Spec
  • Safe/Unsafe mode implementation
  • Parse proper description with list_tools
  • Airflow config fetch (specifically for page limit)
  • HTTP/SSE transport support
  • Env variables optional (env variables might not be ideal for airflow plugins)
  • Dynamic resources hosting via MCP Server
  • Sample resources and dags

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

airflow_mcp_server-0.9.1.tar.gz (26.2 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

airflow_mcp_server-0.9.1-py3-none-any.whl (20.7 kB view details)

Uploaded Python 3

File details

Details for the file airflow_mcp_server-0.9.1.tar.gz.

File metadata

  • Download URL: airflow_mcp_server-0.9.1.tar.gz
  • Upload date:
  • Size: 26.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.18

File hashes

Hashes for airflow_mcp_server-0.9.1.tar.gz
Algorithm Hash digest
SHA256 b62a2425cb2a2891d5482d3ef62b89e7f669caab0c3d3cbd157c8c692ffa7d37
MD5 c583e8c1745f4b31d15d8a1d2f094aaa
BLAKE2b-256 ab55f991f494d03a1e02d723c8a72769b898d6f57d83ac4f6e21930d6d617b76

See more details on using hashes here.

File details

Details for the file airflow_mcp_server-0.9.1-py3-none-any.whl.

File metadata

File hashes

Hashes for airflow_mcp_server-0.9.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ef6ad83799715d1d01b5148021509955aacea5a36579fb1266c31f3b361f754a
MD5 05281ec1e9c55e96457d9da81f13737c
BLAKE2b-256 3c3d105185819cf125a8a99a51f22583af5e6663a2a0887cc9955dc6c797dd3b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page