关于 airflow
@us-all/airflow-mcp 是通过 REST API 操作 Airflow 3.x 的 MCP 服务,侧重读取 DAG、运行记录、任务和日志;写入操作需显式开启环境变量。
主要功能
- 01列出 DAG 和近期运行记录
- 02查看任务实例与日志
- 03汇总 DAG 健康指标
- 04通过写入门控触发运行和清除任务
- 05JWT 身份验证与令牌刷新
适用场景
- 01调查失败的 DAG 运行
- 02检查 DAG 成功率和持续时间
- 03启用写入后触发运行或重新运行任务
MCP 相关
该服务将 Airflow REST API 操作作为 MCP 工具提供,并包含两个 DAG 故障排查提示词。默认使用 stdio,也可选择 Streamable HTTP 传输。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
npx -y @us-all/airflow-mcpAIRFLOW_API_URLAirflow host base, e.g. 'http://airflow.example.com:8080'. Server prepends /api/v2 internally; trailing /api/v1 or /api/v2 is stripped if supplied.AIRFLOW_USERNAMEAirflow username (used to mint a JWT via SimpleAuthManager /auth/token).AIRFLOW_PASSWORD密钥Airflow password (used to mint a JWT via SimpleAuthManager /auth/token).AIRFLOW_ALLOW_WRITESet to 'true' to enable trigger-dag and clear-task tools. Default read-only.AIRFLOW_TOOLSComma-separated category allowlist (airflow,meta).AIRFLOW_DISABLEComma-separated category disablelist.本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
17收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| tag | string | 否 | 筛选带有此标签的 DAG |
| limit | integer | 否 | |
| search | string | 否 | 按 dag_id 子串匹配(不区分大小写) |
| onlyActive | boolean | 否 | 筛除已暂停的 DAG(Airflow 3.x:is_paused=false) |
| extractFields | string | 否 | 从响应中提取并投影字段的逗号分隔点路径(例如 'id,name,owner.name,columns.*.name')。使用 `*` 作为数组/对象的通配符。用反引号括住包含点的字段名。可大幅减少大型实体的响应令牌数。 |
详细介绍
@us-all/airflow-mcp
Airflow MCP 服务——读取 DAG、运行记录、任务实例和日志尾部;触发和清除操作受写入权限控制。基于
@us-all/mcp-toolkit构建。
专为 Airflow 3.x REST API(/api/v2)打造的 MCP。默认只读;airflow-trigger-dag 和 airflow-clear-task 需设置 AIRFLOW_ALLOW_WRITE=true 才能使用。通过 SimpleAuthManager 使用 JWT 进行身份验证——提供 AIRFLOW_USERNAME + AIRFLOW_PASSWORD,服务器会自动签发并刷新令牌。
如需更深入的 dbt 集成(解析 manifest、运行结果历史记录、源数据新鲜度、按列统计测试覆盖率、血缘遍历、自定义 DQ 结果表),请同时安装配套的 @us-all/dbt-mcp。
airflow+meta类别中有 7 个工具- 提供 2 个用于 DAG 排查工作流的 MCP 提示词
- 提供 1 个聚合工具,可替代“列出运行记录 → 获取任务实例”的组合操作
安装
pnpm add -D @us-all/airflow-mcp
运行
AIRFLOW_API_URL=http://airflow.example.com:8080 \
AIRFLOW_USERNAME=admin AIRFLOW_PASSWORD=... \
npx @us-all/airflow-mcp
只需传入主机基址——服务器会在内部添加 /api/v2。如果传入的地址末尾带有 /api/v1 或 /api/v2,服务器会将其移除。JWT 令牌会在整个会话期间缓存,并在到期前 1 分钟刷新。
服务器使用 MCP stdio 协议;可将其接入 Claude Desktop、Cursor 或任意 MCP 客户端。设置 MCP_TRANSPORT=http 可启用 Streamable HTTP 传输(Bearer 身份验证、/health 端点)。
工具
airflow(6 个工具 + 1 个聚合工具)
| 工具 | 描述 |
|---|---|
airflow-list-dags | 列出启用的 DAG,支持按标签和搜索条件筛选 |
airflow-list-runs | 列出某个 DAG 的近期运行记录(支持按状态筛选,按时间从新到旧排序) |
airflow-get-task-instances | 获取特定 DAG 运行记录中的任务实例 |
airflow-get-task-logs | 获取单个任务实例日志的尾部内容(最后 N kB) |
airflow-trigger-dag | 触发一次新的运行(需写入权限) |
airflow-clear-task | 清除指定的任务实例 → 重新运行(需写入权限) |
dag-health-rollup | 聚合 DAG 健康状况:成功率 + 平均耗时 + 最近一次失败的运行记录 + 失败任务 |
meta
search-tools — 使用自然语言发现工具。
提示词
| 提示词 | 适用场景 |
|---|---|
dag-failure-triage | “DAG X 为什么失败了?”——获取运行记录、定位故障、输出日志并提出修复建议 |
dag-schedule-audit | “扫描所有 DAG,找出成功率低和运行卡住的情况” |
环境变量
| 环境变量 | 必需 | 说明 |
|---|---|---|
AIRFLOW_API_URL | 是 | Airflow 主机基址,例如 http://airflow.example.com:8080。如果末尾带有 /api/v1 或 /api/v2,会将其移除 |
AIRFLOW_USERNAME | 是 | 用于通过 SimpleAuthManager /auth/token 签发 JWT 的用户名 |
AIRFLOW_PASSWORD | 是 | 用于签发 JWT 的密码(机密) |
AIRFLOW_ALLOW_WRITE | 否 | 设置为 true 可启用 airflow-trigger-dag / airflow-clear-task |
AIRFLOW_TOOLS / AIRFLOW_DISABLE | 否 | 类别开关 |
已测试的 Schema
- Airflow 3.0–3.2
/api/v2(已针对 3.2.1 验证;截至 2026-05,这是当前 Airflow 版本)。v0.2+ 不支持 Airflow 2.x,因为 basic auth +/api/v1已被移除;对于 Airflow 2.x 部署,请固定使用@us-all/[email protected]。
配套服务
如需解析 dbt 工件、获取运行结果历史记录和 DQ 结果表,请同时安装 @us-all/dbt-mcp。
构建
pnpm install
pnpm run build # tsc → dist/
pnpm test # vitest
pnpm run smoke # spawns dist/index.js, calls initialize + tools/list (set env first)
许可证
MIT — 详见 LICENSE。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。