P

airflow-mcp-server

...
Created 2/9/2025byabhishekbhakat

Categories

airflowapache-airflowapillmmcp-server

Language:

Python

Stars:

9

Forks:

3

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

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

{
  "mcpServers": {
    "airflow-mcp-server": {
      "command": "uvx",
      "args": [
        "airflow-mcp-server"
      ],
      "env": {
        "AIRFLOW_BASE_URL": "http:///api/v1",
        // Either use AUTH_TOKEN for basic auth
        "AUTH_TOKEN": "",
        // Or use COOKIE for cookie-based auth
        "COOKIE": ""
      }
    }
  }
}

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

The MCP Server expects environment variables to be set:

  • AIRFLOW_BASE_URL: The base URL of the Airflow API
  • AUTH_TOKEN: The token to use for basic auth (This should be base64 encoded username:password) (Optional if COOKIE is provided)
  • COOKIE: The session cookie to use for authentication (Optional if AUTH_TOKEN is provided)
  • OPENAPI_SPEC: The path to the OpenAPI spec file (Optional) (defaults to latest stable release)

Authentication

The server supports two authentication methods:

            - **Basic Auth**: Using base64 encoded username:password via `AUTH_TOKEN` environment variable
  • Cookie: Using session cookie via COOKIE environment variable

At least one of these authentication methods must be provided.

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

  • First API
  • Parse OpenAPI Spec
  • Safe/Unsafe mode implementation
  • Allow session auth
  • Parse proper description with list_tools.
  • Airflow config fetch (specifically for page limit)
  • Env variables optional (env variables might not be ideal for airflow plugins)
Last updated: 3/19/2025

Publisher info

abhishekbhakat's avatar

Airflow Engineer at @astronomer

@astronomer
India
11
followers
12
following
113
repos

More MCP servers built with Python

Rodin MCP Server

Generate 3D models with Hyper3D Rodin's 3D generation AI

By DeemosTech
mcp-server-webcrawl

Bridge the gap between your web crawler and AI language models using Model Context Protocol (MCP). With mcp-server-webcrawl, your AI client filters and analyzes web content under your direction or autonomously, extracting insights from your web content. Support for WARC, wget, InterroBot, Katana, and SiteOne crawlers is available out of the gate. The server includes a full-text search interface with boolean support, resource filtering by type, HTTP status, and more.

By pragmar
armor-crypto-mcp

Armor Model Context Protocol (MCP) gives developers full access to the blockchain functionality of Armor Wallet. This includes cross-chain swaps, token data, bridging, wallet management, limit orders, staking, and many other features. With the Armor MCP, developers can integrate a complete suite of crypto tools available to their AI Agents quickly and easily for fast, reliable AI Agent development.

By Armor wallet