使用说明
项目简介
Apache Airflow MCP Server 是一个基于 Model Context Protocol (MCP) 的服务器实现,旨在为 LLM 客户端提供与 Apache Airflow 交互的标准接口。通过此服务器,LLM 可以调用预定义的工具来管理和监控 Airflow 的工作流(DAGs),例如查看 DAG 列表、触发 DAG 运行、查看任务状态等。该项目通过桥接 Airflow 的 REST API 并将其适配到 MCP 协议,使得 LLM 能够以统一的方式访问 Airflow 的功能。
主要功能点
- DAG 管理 (部分实现):
- 列出 DAGs
- 获取 DAG 详情
- 暂停/取消暂停 DAG
- 未实现:更新/删除 DAG
- DAG 运行 (部分实现):
- 列出 DAG 运行
- 创建 DAG 运行 (触发 DAG)
- 未实现:获取/更新/删除 DAG 运行详情
- 任务管理 (部分实现):
- 列出 DAG 任务
- 获取任务实例详情
- 列出任务实例
- 未实现:获取任务详情/更新任务实例
- 系统信息:
- 获取导入错误信息
- 获取健康状态
- 获取 Airflow 版本
- 传输协议: 支持 Stdio 和 SSE
安装步骤
- 克隆仓库: 将仓库 'https://github.com/yangkyeongmo/mcp-server-apache-airflow' 克隆到本地。
git clone https://github.com/yangkyeongmo/mcp-server-apache-airflow cd mcp-server-apache-airflow - 设置环境变量: 根据您的 Airflow 环境,设置以下环境变量。您需要替换 '<your-airflow-host>'、'<your-airflow-username>' 和 '<your-airflow-password>' 为您的实际 Airflow 地址、用户名和密码。
注意: 'AIRFLOW_HOST' 需要包含协议 (例如 'https://') 并且不以斜杠 '/' 结尾。export AIRFLOW_HOST=https://<your-airflow-host> export AIRFLOW_USERNAME=<your-airflow-username> export AIRFLOW_PASSWORD=<your-airflow-password>
服务器配置
为了让 MCP 客户端(例如 Claude Desktop)连接到此 MCP 服务器,您需要在客户端的配置文件中添加服务器配置信息。以下是 'claude_desktop_config.json' 的配置示例,您需要根据您的实际情况进行调整。
使用 'uvx' 启动 (假设 'uvx' 可用):
{ "mcpServers": { "airflow-mcp-server": { // MCP 服务器名称,可以自定义 "command": "uvx", // 启动命令,这里假设使用 uvx 运行 "args": ["mcp-server-apache-airflow"], // 启动参数,这里假设仓库根目录名为 mcp-server-apache-airflow "env": { // 环境变量 "AIRFLOW_HOST": "https://<your-airflow-host>", // 您的 Airflow 主机地址,需要替换为实际地址 "AIRFLOW_USERNAME": "<your-airflow-username>", // 您的 Airflow 用户名,需要替换为实际用户名 "AIRFLOW_PASSWORD": "<your-airflow-password>" // 您的 Airflow 密码,需要替换为实际密码 } } } }
使用 'uv' 启动 (更明确指定路径):
{ "mcpServers": { "airflow-mcp-server": { // MCP 服务器名称,可以自定义 "command": "uv", // 启动命令,这里使用 uv "args": [ "--directory", // 指定工作目录 "/path/to/mcp-server-apache-airflow", // 替换为仓库在您本地的实际路径 "run", // uv 的 run 子命令 "mcp-server-apache-airflow" // 运行 mcp-server-apache-airflow 应用 ], "env": { // 环境变量 "AIRFLOW_HOST": "https://<your-airflow-host>", // 您的 Airflow 主机地址,需要替换为实际地址 "AIRFLOW_USERNAME": "<your-airflow-username>", // 您的 Airflow 用户名,需要替换为实际用户名 "AIRFLOW_PASSWORD": "<your-airflow-password>" // 您的 Airflow 密码,需要替换为实际密码 } } } }
请务必将 '/path/to/mcp-server-apache-airflow' 替换为您克隆仓库的实际本地路径。
手动运行 (开发/调试): 如果您想手动运行服务器,可以使用以下命令:
python src/server.py --transport stdio
或使用 SSE 传输协议并指定端口:
python src/server.py --transport sse --port 8001
在手动运行时,请确保已设置好环境变量 'AIRFLOW_HOST', 'AIRFLOW_USERNAME', 和 'AIRFLOW_PASSWORD'。
基本使用方法
配置完成后,MCP 客户端将能够连接到此服务器。LLM 可以通过调用服务器提供的 "工具 (Tools)" 来与 Airflow 交互。例如,可以调用 'list_dags' 工具来获取 DAG 列表,或调用 'trigger_dag' 工具来触发特定的 DAG 运行。具体的工具及其参数定义可以在 'src/server.py' 文件中的 'list_tools' 函数中查看。
注意: 由于该项目功能实现状态为部分完成,部分 Airflow API 功能尚未作为 MCP 工具实现。请参考 Feature Implementation Status 表格了解具体支持的功能。
信息
分类
开发者工具