mcpField
A
airflow

airflow

本地服务
github.com/us-all云与基础设施216 周前更新

关于 airflow

@us-all/airflow-mcp 是通过 REST API 操作 Airflow 3.x 的 MCP 服务,侧重读取 DAG、运行记录、任务和日志;写入操作需显式开启环境变量。

主要功能

  1. 01列出 DAG 和近期运行记录
  2. 02查看任务实例与日志
  3. 03汇总 DAG 健康指标
  4. 04通过写入门控触发运行和清除任务
  5. 05JWT 身份验证与令牌刷新

适用场景

  1. 01调查失败的 DAG 运行
  2. 02检查 DAG 成功率和持续时间
  3. 03启用写入后触发运行或重新运行任务

MCP 相关

该服务将 Airflow REST API 操作作为 MCP 工具提供,并包含两个 DAG 故障排查提示词。默认使用 stdio,也可选择 Streamable HTTP 传输。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"us-all-airflow": {
"command": "npx",
"args": [
"-y",
"@us-all/airflow-mcp"
],
"env": {
"AIRFLOW_API_URL": "<AIRFLOW_API_URL>",
"AIRFLOW_USERNAME": "<AIRFLOW_USERNAME>",
"AIRFLOW_PASSWORD": "<AIRFLOW_PASSWORD>",
"AIRFLOW_ALLOW_WRITE": "<AIRFLOW_ALLOW_WRITE>",
"AIRFLOW_TOOLS": "<AIRFLOW_TOOLS>",
"AIRFLOW_DISABLE": "<AIRFLOW_DISABLE>"
}
}
}
}
启动命令npx -y @us-all/airflow-mcp
需要配置的环境变量
AIRFLOW_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+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@us-all/airflow-mcp1.4.1

工具

17

收录的工具列表 · 更新于 2 周前

参数类型必填说明
tagstring否筛选带有此标签的 DAG
limitinteger否
searchstring否按 dag_id 子串匹配(不区分大小写)
onlyActiveboolean否筛除已暂停的 DAG(Airflow 3.x:is_paused=false)
extractFieldsstring否从响应中提取并投影字段的逗号分隔点路径(例如 '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。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。