airflow-mcp-server: An MCP Server for controlling Airflow
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
Jump to
- 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:
- Download and install Highlight from highlightai.com/download
- Navigate to the plugins tab and select "Add Custom Plugin"
-
Configure the plugin with the settings below
Plugin Name
airflow-mcp-server: An MCP Server for controlling AirflowCommand (node, npx, python, etc.)Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.
- 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_)
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.

