关于 airflow-mcp-server: An MCP Server for controlling Airflow
airflow-mcp-server 是一个用于通过 Airflow API 控制 Apache Airflow 的 MCP 服务。它面向需要让 AI 助手查看或管理 Airflow 实例的用户,并提供只读的安全模式。
主要功能
- 01通过 Airflow API 控制 Airflow 3
- 02--safe 模式仅允许只读操作
- 03支持 stdio 与 HTTP 传输
- 04可通过 --resources-dir 提供本地 Markdown 资源
适用场景
- 01让 AI 助手只读查看 DAG 与任务状态
- 02在受限的只读模式下检查 Airflow 实例
- 03为 agent 提供本地 Airflow 操作文档
MCP 相关
该项目是 MCP 服务,向 MCP 客户端提供 Airflow 相关工具,并可将本地 Markdown 文件作为只读资源暴露。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 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>"
]
}
}
}
请参阅 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 令牌。Airflow 3.0 不再支持 Cookie 和基本身份验证。
传输选项
该服务支持多种传输协议:
Stdio 传输(默认)
用于直接进程通信的标准输入/输出传输:
airflow-mcp-server --safe --base-url http://localhost:8080 --auth-token <jwt>
HTTP 传输
使用 Streamable 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
工具发现模式
该服务支持两种工具发现方式:
- 分层发现(默认):按类别组织工具(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.
使用资源
如果你希望 Agent 参考本地文档,可以将服务指向包含 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 选项进行更改。
传输选择
- 直接进程通信请使用 stdio 传输(默认)
- Web 部署、多个客户端或需要更好的可扩展性时,请使用 HTTP 传输
- 请避免使用 SSE 传输,因为它已弃用,建议改用 HTTP 传输
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。