返回市场
airflow工作流服务器

airflow工作流服务器

作者:abhishekbhakat28 星标更新:2025-10-15

项目介绍

airflow-mcp-server: 用于控制Airflow 3的MCP服务器

mcp-name: io.github.abhishekbhakat/airflow-mcp-server

MCPHub认证

此MCP服务器已由MCPHub认证。该认证确保airflow-mcp-server遵循模型上下文协议的最佳实践。

在Glama上查找

<a href="https://glama.ai/mcp/servers/6gjq9w80xr"> <img width="380" height="200" src="https://gips0.baidu.com/it/u=1769471646,4025970950&fm=3081&app=3081&f=PNG?w=760&h=400" /> </a>

概述

一个模型上下文协议服务器,通过Airflow API来控制Airflow。

演示视频

https://github.com/user-attachments/assets/f3e60fff-8680-4dd9-b08e-fa7db655a705

设置

与Claude Desktop一起使用

标准IO传输(默认)

{
    "mcpServers": {
        "airflow-mcp-server": {
            "command": "uvx",
            "args": [
                "airflow-mcp-server",
                "--base-url",
                "http://localhost:8080",
                "--auth-token",
                "<jwt_token>"
            ]
        }
    }
}

参见CONFIG.md以获取流行MCP客户端特定IDE配置示例。

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令牌进行身份验证。Cookie和基本身份验证在Airflow 3.0中不再支持。

传输选项

服务器支持多种传输协议:

标准IO传输(默认)

标准输入/输出传输用于直接进程通信:

airflow-mcp-server --safe --base-url http://localhost:8080 --auth-token <jwt>

HTTP传输

使用流式HTTP以获得更好的可扩展性和Web兼容性:

airflow-mcp-server --safe --http --port 3000 --base-url http://localhost:8080 --auth-token <jwt>

注意: SSE传输已被弃用。对于新部署,请使用--http,因为它提供了更好的双向通信,并且是FastMCP推荐的方法。

运行模式

服务器支持两种运行模式:

  • 安全模式--safe):仅允许只读操作(GET请求)。当你希望防止对Airflow实例的任何修改时,这很有用。
  • 不安全模式--unsafe):允许所有操作,包括修改。这是默认模式。

要启动安全模式:

airflow-mcp-server --safe

要明确启动不安全模式(尽管这是默认模式):

airflow-mcp-server --unsafe

工具发现模式

服务器支持两种工具发现方法:

  • 分层发现(默认):工具按类别组织(DAGs、Tasks、Connections等)。首先浏览类别,然后选择具体工具。对于大型API来说更易于管理。
  • 静态工具--static-tools):所有工具立即可用。更适合程序化访问,但可能会让人感到不知所措。

要使用静态工具:

airflow-mcp-server --static-tools

命令行选项

用法:airflow-mcp-server [选项]

  Airflow的MCP服务器

选项:
  -v, --verbose      增加详细程度
  -s, --safe         使用只读工具
  -u, --unsafe       使用所有工具(默认)
  --static-tools     使用静态工具而不是分层发现
  --base-url TEXT    Airflow API的基础URL
  --auth-token TEXT  身份验证令牌(JWT)
  --http             使用HTTP(流式HTTP)传输而不是标准IO
  --sse              使用服务器发送事件传输(已弃用,建议使用--http)
  --port INTEGER     运行HTTP/SSE服务器的端口(默认:3000)
  --host TEXT        绑定HTTP/SSE服务器的主机(默认:localhost)
  --help             显示此消息并退出。

使用资源

当希望代理引用本地文档时,指向Markdown指南文件夹:

airflow-mcp-server --base-url http://localhost:8080 --auth-token <jwt> --resources-dir ~/airflow-resources
  • 每个顶级的.md/.markdown文件都会成为一个只读资源(file:///<slug>),在你的MCP客户端中可见。
  • 每个文件中的第一个# Heading(如果存在)将作为资源标题;否则将使用文件名的主干部分。
  • 如果你偏好基于环境的配置,可以设置AIRFLOW_MCP_RESOURCES_DIR=/path/to/docs
  • 更新磁盘上的文件并重启服务器以刷新资源列表。

考虑事项

身份验证

  • Airflow 3.0仅支持JWT身份验证。你必须提供有效的AUTH_TOKEN

页面限制

默认情况下为100项,但你可以通过在airflow.cfg文件的[api]部分中更改maximum_page_limit选项来改变它。

传输选择

  • 使用标准IO传输进行直接进程通信(默认)
  • 使用HTTP传输进行Web部署、多个客户端或需要更好可扩展性的情况
  • 避免使用SSE传输,因为它已被弃用,建议使用HTTP传输