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

by MCP-Mirror

312 downloads
Not rated
GitHub

About

An MCP (Model Context Protocol) server that controls Apache Airflow by interacting with Airflow’s REST APIs. It automatically parses the Airflow OpenAPI specification and supports both read-only and full‑access modes.

Details

Author
MCP-Mirror
Downloads
312
Categories
Search

- Supports Airflow 3.0 and its JWT authentication.
- Safe mode restricts operations to GET requests only.
- Automatically fetches OpenAPI spec from the Airflow base URL.
- Reads Airflow configuration to respect the page limit setting.
- Exposes all Airflow API endpoints as MCP tools with proper descriptions.

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name airflow-mcp-server: An MCP Server for controlling Airflow
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

Install and run the server via uvx with the airflow-mcp-server CLI, providing the Airflow base URL and a JWT token. Optionally set --safe for read‑only operations or --unsafe (default) for all operations. Configure the server in your MCP client (e.g., Claude Desktop) using the mcpServers block.

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

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

McpServers

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

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

Find on Glama

<a href="https://glama.ai/mcp/servers/6gjq9w80xr">

</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

{
    "mcpServers": {
        "airflow-mcp-server": {
            "command": "uvx",
            "args": [
                "airflow-mcp-server",
                "--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.

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

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.

Tasks

- [x] Airflow 3 readiness
- [x] Parse OpenAPI Spec
- [x] Safe/Unsafe mode implementation
- [x] Parse proper description with list_tools.
- [x] Airflow config fetch (_specifically for page limit_)
- [ ] Env variables optional (_env variables might not be ideal for airflow plugins_)

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.