airflow-mcp-server: An MCP Server for controlling Airflow について
airflow-mcp-server は、API を通じて Apache Airflow 3 を操作する MCP サーバーです。AI アシスタントから Airflow インスタンスを確認または管理したい場合に利用します。読み取り専用のセーフモードも用意されています。
主な機能
- 01API による Airflow 3 の操作
- 02--safe モードで読み取り専用の操作に制限
- 03stdio と HTTP トランスポートに対応
- 04ローカルの Markdown ファイルを読み取り専用リソースとして公開
活用シーン
- 01アシスタントによる DAG とタスク状態の読み取り専用の確認
- 02制限付きモードでの Airflow インスタンスの点検
- 03エージェントへのローカルドキュメントの提供
MCP 対応
MCP サーバーとして動作し、Airflow 関連のツールを MCP クライアントに提供します。ローカルの Markdown ファイルを読み取り専用の MCP リソースとして公開することもできます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
uvx airflow-mcp-serverAIRFLOW_BASE_URLThe base URL for the Airflow API (e.g., http://localhost:8080)AUTH_TOKENシークレットThe JWT authentication token for Airflow API accessローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
airflow-mcp-server:Airflow 3 を操作する MCP サーバー
mcp-name: io.github.abhishekbhakat/airflow-mcp-server
MCPHub 認定
この MCP サーバーは MCPHub による認定を受けています。この認定により、airflow-mcp-server が Model Context Protocol の実装に関するベストプラクティスに従っていることが保証されます。
Glama で見つける
概要
Airflow API を介して Airflow を操作するための Model Context Protocol サーバーです。
デモ動画
https://github.com/user-attachments/assets/f3e60fff-8680-4dd9-b08e-fa7db655a705
セットアップ
Claude Desktop での使用
Stdio トランスポート(デフォルト)
{
"mcpServers": {
"airflow-mcp-server": {
"command": "uvx",
"args": [
"airflow-mcp-server",
"--base-url",
"http://localhost:8080",
"--auth-token",
"<jwt_token>"
]
}
}
}
一般的な MCP クライアントでの IDE ごとの設定例については、CONFIG.md を参照してください。
HTTP トランスポート
{
"mcpServers": {
"airflow-mcp-server-http": {
"command": "uvx",
"args": [
"airflow-mcp-server",
"--http",
"--port",
"3000",
"--base-url",
"http://localhost:8080",
"--auth-token",
"<jwt_token>"
]
}
}
}
注:
base_urlには Airflow のルート URL(例:http://localhost:8080)を設定してください。- ベース URL に
/api/v2を含めないでください。サーバーは${base_url}/openapi.jsonから OpenAPI 仕様を自動的に取得します。- 認証に必要なのは JWT トークンのみです。Airflow 3.0 では Cookie 認証とベーシック認証はサポートされなくなりました。
トランスポートのオプション
サーバーは複数のトランスポートプロトコルをサポートしています。
Stdio トランスポート(デフォルト)
プロセス間で直接通信するための標準入出力トランスポートです。
airflow-mcp-server --safe --base-url http://localhost:8080 --auth-token <jwt>
HTTP トランスポート
拡張性とウェブ互換性を高めるために、Streamable HTTP を使用します。
airflow-mcp-server --safe --http --port 3000 --base-url http://localhost:8080 --auth-token <jwt>
注: SSE トランスポートは非推奨です。双方向通信に優れ、FastMCP が推奨する方式であるため、新しいデプロイでは
--httpを使用してください。
動作モード
サーバーは 2 つの動作モードをサポートしています。
- セーフモード(
--safe):読み取り専用の操作(GET リクエスト)のみを許可します。Airflow インスタンスへの変更を防ぎたい場合に便利です。 - アンセーフモード(
--unsafe):変更を含むすべての操作を許可します。デフォルトのモードです。
セーフモードで起動するには:
airflow-mcp-server --safe
アンセーフモードで明示的に起動するには(デフォルトのモードですが):
airflow-mcp-server --unsafe
ツールの検出モード
サーバーは 2 種類のツール検出方法をサポートしています。
- 階層型検出(デフォルト):ツールはカテゴリー(DAG、タスク、接続など)ごとに整理されます。まずカテゴリーを参照し、次に特定のツールを選択します。大規模な API でも管理しやすくなります。
- 静的ツール(
--static-tools):すべてのツールをすぐに利用できます。プログラムからのアクセスに適していますが、数が多く圧倒される場合があります。
静的ツールを使用するには:
airflow-mcp-server --static-tools
コマンドラインオプション
Usage: airflow-mcp-server [OPTIONS]
MCP server for Airflow
Options:
-v, --verbose Increase verbosity
-s, --safe Use only read-only tools
-u, --unsafe Use all tools (default)
--static-tools Use static tools instead of hierarchical discovery
--base-url TEXT Airflow API base URL
--auth-token TEXT Authentication token (JWT)
--http Use HTTP (Streamable HTTP) transport instead of stdio
--sse Use Server-Sent Events transport (deprecated, use --http
instead)
--port INTEGER Port to run HTTP/SSE server on (default: 3000)
--host TEXT Host to bind HTTP/SSE server to (default: localhost)
--help Show this message and exit.
リソースの使用
エージェントがローカルドキュメントを参照できるようにする場合は、Markdown ガイドが格納されたフォルダーをサーバーに指定してください。
airflow-mcp-server --base-url http://localhost:8080 --auth-token <jwt> --resources-dir ~/airflow-resources
- トップレベルにある
.md/.markdownファイルはすべて、MCP クライアントから参照できる読み取り専用リソース(file:///<slug>)になります。 - 各ファイルに最初の
# Headingがある場合は、それがリソースのタイトルとして使用されます。ない場合は、ファイル名(拡張子を除く)が使用されます。 - 環境変数で設定する場合は、
AIRFLOW_MCP_RESOURCES_DIR=/path/to/docsを設定してください。 - リソース一覧を更新するには、ディスク上のファイルを更新して、サーバーを再起動してください。
注意事項
認証
- Airflow 3.0 でサポートされているのは JWT 認証のみです。有効な
AUTH_TOKENを指定する必要があります。
ページ制限
デフォルトは 100 件ですが、airflow.cfg ファイルの [api] セクションにある maximum_page_limit オプションで変更できます。
トランスポートの選択
- プロセス間で直接通信する場合は stdio トランスポートを使用してください(デフォルト)。
- ウェブ環境へのデプロイ、複数のクライアントの利用、または拡張性が必要な場合は HTTP トランスポートを使用してください。
- HTTP トランスポートが推奨されているため、非推奨の SSE トランスポートは使用しないでください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。