Exposes an Apache Airflow instance to agents as MCP tools for working with its workflows.
Setup
Choose your client, copy the config, then fill in any required environment variables.
claude mcp add airflow --env AIRFLOW_BASE_URL='<AIRFLOW_BASE_URL>' --env AUTH_TOKEN='<AUTH_TOKEN>' -- uvx airflow-mcp-server~/.codex/config.toml
[mcp_servers.airflow]
command = "uvx"
args = ["airflow-mcp-server"]
env = { AIRFLOW_BASE_URL = "<AIRFLOW_BASE_URL>", AUTH_TOKEN = "<AUTH_TOKEN>" }
# codex mcp add airflow --env AIRFLOW_BASE_URL='<AIRFLOW_BASE_URL>' --env AUTH_TOKEN='<AUTH_TOKEN>' -- uvx airflow-mcp-server~/.cursor/mcp.json
{
"mcpServers": {
"airflow": {
"command": "uvx",
"args": [
"airflow-mcp-server"
],
"env": {
"AIRFLOW_BASE_URL": "<AIRFLOW_BASE_URL>",
"AUTH_TOKEN": "<AUTH_TOKEN>"
}
}
}
}.vscode/mcp.json
{
"servers": {
"airflow": {
"type": "stdio",
"command": "uvx",
"args": [
"airflow-mcp-server"
],
"env": {
"AIRFLOW_BASE_URL": "<AIRFLOW_BASE_URL>",
"AUTH_TOKEN": "<AUTH_TOKEN>"
}
}
}
}~/.gemini/settings.json
{
"mcpServers": {
"airflow": {
"command": "uvx",
"args": [
"airflow-mcp-server"
],
"env": {
"AIRFLOW_BASE_URL": "<AIRFLOW_BASE_URL>",
"AUTH_TOKEN": "<AUTH_TOKEN>"
}
}
}
}claude_desktop_config.json
{
"mcpServers": {
"airflow": {
"command": "uvx",
"args": [
"airflow-mcp-server"
],
"env": {
"AIRFLOW_BASE_URL": "<AIRFLOW_BASE_URL>",
"AUTH_TOKEN": "<AUTH_TOKEN>"
}
}
}
}.trae/mcp.json
{
"mcpServers": {
"airflow": {
"command": "uvx",
"args": [
"airflow-mcp-server"
],
"env": {
"AIRFLOW_BASE_URL": "<AIRFLOW_BASE_URL>",
"AUTH_TOKEN": "<AUTH_TOKEN>"
}
}
}
}Environment variables
AIRFLOW_BASE_URLAUTH_TOKEN
Replace the placeholders with your own credentials and keep them out of version control.