SuperAPI AI Directory

mcp-server-apache-airflow

Connect to Apache Airflow.

Open website

About this tool

Purpose

mcp-server-apache-airflow is a Model Context Protocol (MCP) server implementation used to connect Apache Airflow to MCP clients, enabling clients to interact with Airflow in a standardized way. It achieves this by wrapping Apache Airflow's REST API and uses the official Apache Airflow client library (apache-airflow-client) to ensure compatibility and maintainability.

Main capabilities

  • Provides an MCP server that acts as a bridge between MCP clients and Airflow.
  • Depends on the official apache-airflow-client; this client library is automatically installed when installing this package.
  • Supports two authentication methods: Basic Authentication (default) and JWT Token Authentication. If both a JWT token and basic authentication credentials are provided, the JWT token takes precedence. Airflow's authentication endpoint can be used to obtain a JWT token.
  • The API groups to use can be selected via the --apis flag; by default, all APIs are used.
  • Supports read-only mode: enabled via the --read-only flag or the READ_ONLY=true environment variable, exposing only tools that perform read operations (GET requests) and excluding tools that create, update, or delete resources. The tools listed in read-only mode include: listing DAGs, DAG runs, tasks, variables, connections, etc.; getting details of specific resources; reading configuration and monitoring information; testing connections (non-destructive). Write operations such as creating, updating, and deleting DAGs, variables, and connections, and triggering DAG runs are unavailable in read-only mode.
  • Read-only mode can be combined with API group selection.

Usage

Environment variables

Environment variables must be set to configure authentication. Basic Authentication (default) or JWT Token Authentication can be used.

Working with Claude Desktop

Add the configuration to claude_desktop_config.json. The documentation provides a basic authentication configuration example and a read-only mode configuration example (recommended for security). It also provides an alternative configuration using uv, requiring /path/to/mcp-server-apache-airflow to be replaced with the path to the actual cloned repository.

Selecting API groups

Set the API groups to use via the --apis flag; by default, all APIs are used. The documentation lists the allowed values.

Read-only mode

Use the command-line flag --read-only or the environment variable READ_ONLY=true. In read-only mode, only read-only tools are exposed.

Manual execution

The server can be run manually: make run accepts the following options: --port (SSE listening port, default 8000), --transport (transport type: stdio/sse/http, default stdio). The sse server can also be run directly, accepting the same parameters. The service can also be started directly using uv.

Installation via Smithery

Apache Airflow MCP Server can be automatically installed for Claude Desktop via Smithery.

Development environment setup

Clone the repository, install development dependencies, and create a .env file (optional for development). Note: environment variables are not required to run tests; AIRFLOW_HOST defaults to using http://localhost:8080 Used for development and testing. The project uses pytest for testing.

Continuous Integration

The project includes a GitHub Actions workflow (.github/workflows/test.yml), which automatically runs tests on Python 3.10, 3.11, and 3.12, performs lint checks using ruff, and runs on every push to the main branch and on pull requests. The CI pipeline ensures code quality and compatibility across supported Python versions.

Applicable Scenarios

Applicable to scenarios where interaction with Apache Airflow is needed through an MCP client in a standardized way, such as querying Airflow's DAGs, tasks, variables, connections, and other status or configuration information in Claude Desktop, or safely reading and monitoring Airflow in read-only mode.

Limitations

  • In read-only mode, write operations such as create, update, delete, and triggering DAG runs cannot be performed.
  • Authentication requires configuring environment variables (Basic Authentication or JWT Token); normal use may be impossible without providing authentication information.
  • The selection of specific API groups is restricted by the allowed values of --apis.
  • Detailed information such as the implementation status of specific features, fees or pricing, and platform compatibility is not explicitly provided in the official text.

Contributing

Contributions are welcome; Pull Requests can be submitted. When project.version in pyproject.toml is updated, the package is automatically deployed to PyPI. Version management follows semver. Please include a version update in the PR to apply changes to the core logic.