使用说明

项目简介

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

安装步骤

  1. 克隆仓库: 将仓库 'https://github.com/yangkyeongmo/mcp-server-apache-airflow' 克隆到本地。
    git clone https://github.com/yangkyeongmo/mcp-server-apache-airflow
    cd mcp-server-apache-airflow
  2. 设置环境变量: 根据您的 Airflow 环境,设置以下环境变量。您需要替换 '<your-airflow-host>'、'<your-airflow-username>' 和 '<your-airflow-password>' 为您的实际 Airflow 地址、用户名和密码。
    export AIRFLOW_HOST=https://<your-airflow-host>
    export AIRFLOW_USERNAME=<your-airflow-username>
    export AIRFLOW_PASSWORD=<your-airflow-password>
    注意: 'AIRFLOW_HOST' 需要包含协议 (例如 'https://') 并且不以斜杠 '/' 结尾。

服务器配置

为了让 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 表格了解具体支持的功能。

信息

分类

开发者工具