Skip to content

Latest commit

 

History

History
1080 lines (859 loc) · 14.1 KB

File metadata and controls

1080 lines (859 loc) · 14.1 KB

Airflow MCP Client Configuration Reference

This document aggregates MCP client configuration snippets modelled after the Context7 examples. Every section shows a stdio-first setup and, where supported, an HTTP transport alternative using the streamable HTTP endpoint exposed by airflow-mcp-server.

Prerequisites

  • Airflow 3 instance reachable at http://localhost:8080 (adjust to your environment)
  • JWT auth token with the desired Airflow permissions
  • uv installed for launching the server via uvx

Launch Commands

Start the MCP server in stdio mode (ideal when the client spawns the process):

uvx airflow-mcp-server --base-url http://localhost:8080 --auth-token <jwt_token>

Start the server in HTTP mode before connecting remote-capable clients:

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

The HTTP examples assume the server is available at http://127.0.0.1:3000/mcp.


Cursor

Stdio

~/.cursor/mcp.json

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

HTTP

{
  "mcpServers": {
    "airflow": {
      "server": {
        "url": "http://127.0.0.1:3000/mcp"
      }
    }
  }
}

Cursor’s remote configuration nests connection details under a server key; omit the older type field which is no longer recognized.


Claude Code

Stdio

claude mcp add airflow -- uvx airflow-mcp-server --base-url http://localhost:8080 --auth-token <jwt_token>

HTTP

claude mcp add --transport http airflow http://127.0.0.1:3000/mcp

Amp

Stdio

amp mcp add airflow --command uvx --args "airflow-mcp-server" "--base-url" "http://localhost:8080" "--auth-token" "<jwt_token>"

HTTP

amp mcp add airflow http://127.0.0.1:3000/mcp

Windsurf

Stdio

~/.windsurf/mcp.json

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

HTTP

{
  "mcpServers": {
    "airflow": {
      "serverUrl": "http://127.0.0.1:3000/mcp"
    }
  }
}

VS Code / VS Code Insiders

Stdio

settings.json

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

HTTP

"mcp": {
  "servers": {
    "airflow": {
      "type": "http",
      "url": "http://127.0.0.1:3000/mcp"
    }
  }
}

Cline

Stdio

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

HTTP

{
  "mcpServers": {
    "airflow": {
      "url": "http://127.0.0.1:3000/mcp"
    }
  }
}

Zed

Stdio

settings.json

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

HTTP

{
  "context_servers": {
    "Airflow MCP": {
      "source": "remote",
      "serverUrl": "http://127.0.0.1:3000/mcp"
    }
  }
}

Augment Code

Stdio (UI command)

npx -y airflow-mcp-server --base-url http://localhost:8080 --auth-token <jwt_token>

or settings.json entry:

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

HTTP

Augment currently relies on command-launch configurations. Run the HTTP server separately and use stdio until native HTTP support is available.


Roo Code

Stdio

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

HTTP

{
  "mcpServers": {
    "airflow": {
      "type": "streamable-http",
      "url": "http://127.0.0.1:3000/mcp"
    }
  }
}

Gemini CLI

Stdio

~/.gemini/settings.json

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

HTTP

{
  "mcpServers": {
    "airflow": {
      "httpUrl": "http://127.0.0.1:3000/mcp"
    }
  }
}

Claude Desktop

Stdio

Add to claude_desktop_config.json:

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

HTTP

Within Settings → Connectors:

{
  "name": "Airflow MCP",
  "url": "http://127.0.0.1:3000/mcp"
}

Opencode

Stdio

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

HTTP

{
  "mcp": {
    "airflow": {
      "type": "remote",
      "url": "http://127.0.0.1:3000/mcp"
    }
  }
}

JetBrains IDEs / Junie

Stdio

Settings → Tools → AI Assistant → Model Context Protocol:

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

HTTP

{
  "mcpServers": {
    "airflow": {
      "url": "http://127.0.0.1:3000/mcp",
      "type": "http"
    }
  }
}

Kiro

Stdio

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

HTTP

{
  "mcpServers": {
    "Airflow MCP": {
      "url": "http://127.0.0.1:3000/mcp",
      "type": "http"
    }
  }
}

Trae

Stdio

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

HTTP

{
  "mcpServers": {
    "airflow": {
      "url": "http://127.0.0.1:3000/mcp"
    }
  }
}

Bun

Stdio

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

HTTP

Use Bun to launch the HTTP server:

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

Deno

Stdio

{
  "mcpServers": {
    "airflow": {
      "command": "deno",
      "args": [
        "run",
        "--allow-env",
        "--allow-net",
        "npm:airflow-mcp-server",
        "--base-url",
        "http://localhost:8080",
        "--auth-token",
        "<jwt_token>"
      ]
    }
  }
}

HTTP

deno run --allow-env --allow-net npm:airflow-mcp-server --http --port 3000 --base-url http://localhost:8080 --auth-token <jwt_token>

Docker

Stdio

Run interactively:

docker run -i --rm ghcr.io/abhishekbhakat/airflow-mcp-server --base-url http://host.docker.internal:8080 --auth-token <jwt_token>

HTTP

docker run -i --rm -p 3000:3000 ghcr.io/abhishekbhakat/airflow-mcp-server --http --port 3000 --base-url http://host.docker.internal:8080 --auth-token <jwt_token>

MCP Bundles (.mcpb)

Stdio

Include in bundle manifest:

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

HTTP

Reference the HTTP endpoint in the bundle metadata if supported by the client.


Windows Notes

Stdio

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

HTTP

{
  "mcpServers": {
    "airflow": {
      "url": "http://127.0.0.1:3000/mcp"
    }
  }
}

Amazon Q Developer CLI

Stdio

~/.aws/amazonq/mcp.json

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

HTTP

{
  "mcpServers": {
    "airflow": {
      "url": "http://127.0.0.1:3000/mcp"
    }
  }
}

Warp

Stdio

Settings → AI → Manage MCP servers:

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

HTTP

{
  "Airflow": {
    "url": "http://127.0.0.1:3000/mcp"
  }
}

Copilot Coding Agent

Stdio

Repository → Settings → Copilot → Coding Agent → MCP configuration:

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

HTTP

{
  "mcpServers": {
    "airflow": {
      "type": "http",
      "url": "http://127.0.0.1:3000/mcp",
      "tools": ["tools/list", "tools/call"]
    }
  }
}

LM Studio

Stdio

mcp.json

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

HTTP

{
  "mcpServers": {
    "Airflow": {
      "url": "http://127.0.0.1:3000/mcp"
    }
  }
}

Visual Studio 2022

Stdio

mcp.json

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

HTTP

{
  "inputs": [],
  "servers": {
    "airflow": {
      "type": "http",
      "url": "http://127.0.0.1:3000/mcp"
    }
  }
}

Crush

Stdio

crush.json

{
  "$schema": "https://charm.land/crush.json",
  "mcp": {
    "airflow": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "airflow-mcp-server",
        "--base-url",
        "http://localhost:8080",
        "--auth-token",
        "<jwt_token>"
      ]
    }
  }
}

HTTP

{
  "$schema": "https://charm.land/crush.json",
  "mcp": {
    "airflow": {
      "type": "http",
      "url": "http://127.0.0.1:3000/mcp"
    }
  }
}

BoltAI

Stdio

Settings → Plugins:

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

HTTP

{
  "mcpServers": {
    "airflow": {
      "url": "http://127.0.0.1:3000/mcp"
    }
  }
}

Rovo Dev CLI

Stdio

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

HTTP

{
  "mcpServers": {
    "airflow": {
      "url": "http://127.0.0.1:3000/mcp"
    }
  }
}

Zencoder

Stdio

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

HTTP

Configure the MCP entry to use the remote server:

{
  "url": "http://127.0.0.1:3000/mcp"
}

Qodo Gen

Stdio

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

HTTP

{
  "mcpServers": {
    "airflow": {
      "url": "http://127.0.0.1:3000/mcp"
    }
  }
}

Perplexity Desktop

Stdio

Settings → Connectors → Advanced:

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

HTTP

Perplexity Desktop currently expects command-based integrations. Run the server in HTTP mode separately; remote configuration will appear once direct URL support is available.


Troubleshooting

  • If a client requires explicit environment variables, set AIRFLOW_BASE_URL and AUTH_TOKEN instead of CLI flags.
  • Some Windows environments need fully qualified paths to uvx or Python. Adjust commands accordingly.
  • For remote HTTP access from another machine, replace 127.0.0.1 with the bound host/IP and ensure the port is exposed.