airflow-mcp-server
https://github.com/abhishekbhakat/airflow-mcp-server
abhishekbhakat
Tools
get_version
get_version
get_connections
get_connections
post_connection
post_connection
get_connection
get_connection
patch_connection
patch_connection
delete_connection
delete_connection
test_connection
test_connection
get_dags
get_dags
delete_dag
delete_dag
patch_dags
patch_dags
get_dag
get_dag
patch_dag
patch_dag
post_clear_task_instances
post_clear_task_instances
set_task_instance_note
set_task_instance_note
set_mapped_task_instance_note
set_mapped_task_instance_note
get_task_instance_dependencies
get_task_instance_dependencies
get_mapped_task_instance_dependencies
get_mapped_task_instance_dependencies
post_set_task_instances_state
post_set_task_instances_state
get_dag_runs
get_dag_runs
post_dag_run
post_dag_run
get_dag_runs_batch
get_dag_runs_batch
get_dag_run
get_dag_run
delete_dag_run
delete_dag_run
update_dag_run_state
update_dag_run_state
clear_dag_run
clear_dag_run
get_upstream_dataset_events
get_upstream_dataset_events
set_dag_run_note
set_dag_run_note
get_dag_dataset_queued_event
get_dag_dataset_queued_event
delete_dag_dataset_queued_event
delete_dag_dataset_queued_event
get_dag_dataset_queued_events
get_dag_dataset_queued_events
delete_dag_dataset_queued_events
delete_dag_dataset_queued_events
reparse_dag_file
reparse_dag_file
get_dataset_queued_events
get_dataset_queued_events
delete_dataset_queued_events
delete_dataset_queued_events
get_event_logs
get_event_logs
get_event_log
get_event_log
get_import_errors
get_import_errors
get_import_error
get_import_error
get_pools
get_pools
post_pool
post_pool
get_pool
get_pool
patch_pool
patch_pool
delete_pool
delete_pool
get_providers
get_providers
get_task_instances
get_task_instances
get_task_instance
get_task_instance
patch_task_instance
patch_task_instance
get_mapped_task_instance
get_mapped_task_instance
patch_mapped_task_instance
patch_mapped_task_instance
get_mapped_task_instances
get_mapped_task_instances
get_task_instances_batch
get_task_instances_batch
get_task_instance_try_details
get_task_instance_try_details
get_task_instance_tries
get_task_instance_tries
get_mapped_task_instance_tries
get_mapped_task_instance_tries
get_mapped_task_instance_try_details
get_mapped_task_instance_try_details
get_variables
get_variables
post_variables
post_variables
get_variable
get_variable
patch_variable
patch_variable
delete_variable
delete_variable
get_xcom_entries
get_xcom_entries
get_xcom_entry
get_xcom_entry
get_extra_links
get_extra_links
get_log
get_log
get_dag_details
get_dag_details
get_tasks
get_tasks
get_task
get_task
get_dag_stats
get_dag_stats
get_dag_source
get_dag_source
get_dag_warnings
get_dag_warnings
get_datasets
get_datasets
get_dataset
get_dataset
get_dataset_events
get_dataset_events
create_dataset_event
create_dataset_event
get_config
get_config
get_value
get_value
get_health
get_health
get_plugins
get_plugins
get_roles
get_roles
post_role
post_role
get_role
get_role
patch_role
patch_role
delete_role
delete_role
get_permissions
get_permissions
get_users
get_users
post_user
post_user
get_user
get_user
patch_user
patch_user
delete_user
delete_user
README
airflow-mcp-server: An MCP Server for controlling Airflow
Find on Glama
<a href="https://glama.ai/mcp/servers/6gjq9w80xr"> <img width="380" height="200" src="https://glama.ai/mcp/servers/6gjq9w80xr/badge" /> </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"
],
"env": {
"AIRFLOW_BASE_URL": "http://<host:port>/api/v1",
// Either use AUTH_TOKEN for basic auth
"AUTH_TOKEN": "<base64_encoded_username_password>",
// Or use COOKIE for cookie-based auth
"COOKIE": "<session_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 APIAUTH_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
- [x] First API
- [x] Parse OpenAPI Spec
- [x] Safe/Unsafe mode implementation
- [x] 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)
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
MCP Package Docs Server
Facilitates LLMs to efficiently access and fetch structured documentation for packages in Go, Python, and NPM, enhancing software development with multi-language support and performance optimization.
Claude Code MCP
An implementation of Claude Code as a Model Context Protocol server that enables using Claude's software engineering capabilities (code generation, editing, reviewing, and file operations) through the standardized MCP interface.
@kazuph/mcp-taskmanager
Model Context Protocol server for Task Management. This allows Claude Desktop (or any MCP client) to manage and execute tasks in a queue-based system.
Linear MCP Server
Enables interaction with Linear's API for managing issues, teams, and projects programmatically through the Model Context Protocol.
mermaid-mcp-server
A Model Context Protocol (MCP) server that converts Mermaid diagrams to PNG images.
Jira-Context-MCP
MCP server to provide Jira Tickets information to AI coding agents like Cursor

Linear MCP Server
A Model Context Protocol server that integrates with Linear's issue tracking system, allowing LLMs to create, update, search, and comment on Linear issues through natural language interactions.

Sequential Thinking MCP Server
This server facilitates structured problem-solving by breaking down complex issues into sequential steps, supporting revisions, and enabling multiple solution paths through full MCP integration.