Astronomer Airflow MCP 服务端

使用说明

  • 项目简介

    • 该仓库实现了一个基于 MCP 的 Airflow 后端服务端,能够向 LLM 客户端提供对 Airflow 资源、工具和提示模板的访问。服务端通过 JSON-RPC 规范与客户端通信,具备会话管理、能力声明以及对多种传输协议的支持,便于在数据工程和数据分析场景中实现对 Airflow 的对话式控制与查询。
  • 主要功能点

    • 资源管理与数据访问:暴露 Airflow 相关的资源信息(如 DAG、任务、变量、连接等)以便推断和查询。
    • 工具注册与执行:提供对 Airflow 操作的工具入口,允许 LLM 调用外部功能(如列出 DAG、触发任务、获取日志等)。
    • Prompt 模板定义与渲染:内置与 Airflow 相关的 Prompt 模板,帮助塑造 LLM 与 Airflow 的交互模式。
    • MCP 支持与协议实现:通过 MCP 框架实现的服务端,遵循 JSON-RPC 风格的请求/响应与通知。
    • 会话管理与能力声明:服务器端维护会话状态和能力,支持可扩展的鉴权与适配器策略。
    • 多传输协议支持:内置对标准输入/输出(stdio)、Server-Sent Events、WebSocket 等传输形式的适配能力。
  • 安装步骤

    • 确保使用 Python 3.x 环境和合适的网络环境。
    • 安装并部署 MCP 服务器相关依赖(通常通过 PyPI 包安装,或在本地开发环境中直接运行源码),确保依赖完整。
    • 根据需要配置 Airflow 的访问地址、认证方式等,确保服务器能够正确连接 Airflow 实例。
  • 服务器配置(MCP 客户端需要的连接信息,JSON 格式)

    • 说明:MCP 客户端需要提供服务器启动命令及参数,用于与 MCP 服务器建立连接。以下示例仅为参考,请按实际环境配置。
    • 示例配置(JSON): { "airflow-mcp-server": { "name": "Airflow MCP Server", "command": "uvx", "args": ["astro-airflow-mcp", "--transport", "stdio"] } // 如需使用其他传输方式,请相应调整 transport 参数,例如 "--transport", "websocket" }
    • 参数说明:
      • name: 服务器名称,用于标识该 MCP 服务实例。
      • command: 启动命令,一般为 MCP 服务器入口命令的执行程序(此处为 uvx 的调用目标)。
      • args: 启动参数,指定传输模式等配置。
  • 基本使用方法

    • 启动服务器:使用客户端配置的启动命令与参数来运行 MCP 服务器。
    • 客户端交互:通过 MCP 客户端向服务器发送标准化的 JSON-RPC 请求,读取资源、调用工具、获取 Prompts 等。
    • 会话与鉴权:根据配置选择直接 Bearer Token、用户名/密码等方式进行鉴权,服务端负责会话管理和能力声明。
    • 集成要点:若与数据源(如 Airflow_instance)断开,需要确保正确的 Airflow API 地址、端口、鉴权方式等配置,并在需要时更新 Token 管理策略。
  • 备注

    • 该实现提供了对 Airflow 的全面封装,适合与大模型、代码代理等系统进行深度集成,便于在数据工作流编排、数据治理等场景中实现对 Airflow 的对话式控制与查询。实际部署时,请结合具体运行环境和安全策略进行配置与测试。

服务器信息