airflow-plugins – Airflow 插件开发 Skill

3周前更新 8 0 0 0

airflow-plugins 是帮助 AI Agent 编写和审核 Apache Airflow 插件与 Provider 的 Skill,适用于扩展 Airflow 连接、Hook、Operator 及传感器等集成组件的开发场景。

Skill 安装

多 Agent 安装
npx skills add https://github.com/astronomer/agents --skill airflow-plugins

使用 npx skills 快速安装,支持将 Skill 添加到多个兼容的 AI Agent。

Skill 调研报告

Skill 详细介绍

astronomer/agents 是 Astronomer 维护的 AI Agent Skills 集合仓库,airflow-plugins 是其中面向 Apache Airflow 插件开发的 Skill。它本质上是一套给 AI Agent 读取的指令、工作流和代码规范集合,不是一个可以独立运行的程序,也不是 Airflow 本身的一部分。

它的核心用途是:当你在 AI Agent 中开发、审查、调试或迁移 Airflow 自定义插件时,让 Agent 按照 Airflow 插件机制的正确约定来生成代码和给出建议,而不是给出泛泛的 Python 代码。

它主要解决的问题

Airflow 插件开发有一些容易踩坑的地方,普通 Agent 在没有专项指令时经常写错:

– 插件目录结构和入口点(entry points)配置不符合当前 Airflow 版本要求
– 混用旧版 AirflowPlugin 类写法与新版 plugin 模块级入口写法
– Operators、Hooks、Sensors、Macros、Blueprints 的注册方式写错
– 插件与 Airflow 版本之间的兼容性判断不准
– 不知道自定义插件应该放在哪个目录、如何被 Airflow 发现

这个 Skill 会让 Agent 在这些具体环节上按规则输出。

典型任务

– 生成一个自定义 Airflow Operator、Hook 或 Sensor 插件骨架
– 把一个旧的 Airflow 1.x 风格插件改写成 2.x 风格
– 检查已有插件项目结构是否符合 Airflow 插件规范
– 排查插件没被 Airflow 加载的问题
– 编写插件相关的单元测试

适合谁

– 正在用 Airflow 搭建数据管道的工程师
– 需要为内部平台编写自定义算子、连接器、扩展 UI 的团队
– 维护较老 Airflow 插件、准备升级版本的人

不适合什么

– 只想学 Airflow DAG 编写、不涉及插件开发的用户
– 不使用 Airflow 的场景
– 把 Airflow 本身当作托管服务使用、不打算写自定义插件的用户

需要特别说明:这个 Skill 本身不联网、不连接你的 Airflow 实例。它只在 Agent 生成/审查代码和建议时起作用。真正部署、运行、调度插件仍然由 Airflow 和你的运行环境完成。

Skill 安全评估

总体判断:astronomer/agents#airflow-plugins 来自 Astronomer 官方仓库,属于以指令和代码规范为主的 Skill,通常不包含独立可执行程序,从来源可信度看风险较低。但它会引导 Agent 生成 Airflow 插件代码,这部分代码最终会在你的环境里被执行。

主要安全关注点

– 来源可信度:Astronomer 是 Airflow 背后的商业公司之一,仓库为官方组织所属。仍建议安装前确认仓库地址与当前官方来源一致,避免第三方镜像或改名版本。
– Shell 与文件写入:如果 Agent 被允许自动执行 Shell、自动写入文件,它可能直接在你的项目里创建或修改插件目录。这会真实改动代码。建议在不需要自动落盘时关闭 Agent 的自动执行权限,由你手动确认后再运行。
– Airflow 插件本身的风险属性:Airflow 插件的权限边界通常较大,可以注册 Operator、Hook、UI 蓝图(Blueprint)、菜单项,甚至执行任意 Python。这是 Airflow 插件机制本身的特性,不是这个 Skill 引入的,但 Agent 生成的插件代码同样具备这些能力,需要人工审查后再部署。
– 供应链风险:插件代码可能引入第三方依赖、连接器或公共 PyPI 包。安装依赖前应确认包名和来源。
– 凭证风险:Airflow Hooks 经常涉及数据库、云服务、API 的凭证。如果 Agent 被要求生成带连接信息的示例,注意不要在生成的代码里硬编码连接串、Token 或密码,应使用 Airflow Connections 或环境变量。

降低风险的建议

1. 仅把它当作“生成和审查代码的助手”,生成结果由人工 review 后再合入项目。
2. 限制 Agent 的自动 Shell 与自动写入权限,改为手动执行和手动落盘。
3. 生成的插件在非生产 Airflow 环境中先验证,再上生产。
4. 让 Agent 使用 Airflow Connections / Secrets Backend 引用凭证,不要在代码中写死。
5. 不要因为来源可信就跳过代码审查。

没有公开信息表明该 Skill 存在已知的安全漏洞,也无法据此判断它“绝对安全”。权重放在“来源可信 + 需人工审查生成代码”这一层即可。

Skill 使用要求

一、Agent / 客户端

该 Skill 属于 Astronomer 的 agents 仓库体系。官方没有公布完整的第三方 Agent 兼容列表。基于 Agent Skill 的通用加载方式,可作如下判断:

– Claude Code:作者与生态中此类 Skill 的常见使用环境,通常优先在这里使用。
– Codex、Cursor、Trae、OpenClaw、WorkBuddy:如果对应 Agent 当前版本支持加载外部 Skill 或自定义指令,一般可以尝试放入并调用;不同 Agent 的 Skill 加载机制和兼容程度不同,实际以对应版本说明为准。

对于是否“官方支持”,请以该 Skill 当前官方说明为准,不要默认所有 Agent 都原生支持。

二、运行环境 / 依赖

如下为通常与该 Skill 使用场景相关的环境项:

| 项目 | 要求 |
|—|—|
| Agent | Claude Code 优先,其他支持 Skill 机制的 Agent 可尝试 |
| Python | 官方未在 Skill 层面统一规定版本;请按你使用的 Airflow 版本的 Python 要求为准 |
| Apache Airflow | 只有在需要实际运行/测试生成插件时才需要,版本以你的部署为准 |
| 网络 | 安装 Skill 时可能需要;本地生成代码阶段通常不需要 |
| Git | 视你的安装方式而定 |

Skill 自身不是可执行程序,多数情况下不需要额外的 CLI 或包管理器。

三、权限

– 文件读取:可选。用于读取已有插件代码进行审查。
– 文件写入:可选。只有在希望 Agent 直接生成并落盘插件文件时开启。
– Shell:可选。只有在希望 Agent 运行 Airflow 相关命令或测试时开启。
– 网络:通常非必需。除非任务涉及查询最新 Airflow 版本文档。
– 浏览器 / Docker:通常非必需。

四、账号 / API Key

– Skill 自身不需要账号或 API Key。
– 但如果 Agent 帮你生成的 Airflow 插件要连接外部系统(数据库、云平台、SaaS API),对应插件确实会需要 Airflow Connection、Token 或密钥。这部分由你的 Airflow 环境和目标服务决定,不是 Skill 本身的要求。

最小使用条件

1. 一个能加载 Skill 的 AI Agent 环境
2. 明确你要开发的插件类型(Operator / Hook / Sensor / 其他)
3. 说明你使用的 Airflow 版本
4. 如需审查已有代码,提供插件目录或文件

Skill 安装、使用与卸载教程

一、安装

LemonAIKit 的 Skill 详情页已经提供针对该 Skill 的安装指令,直接复制本页面的安装指令,粘贴到你的 AI Agent 或终端中执行即可。

如果你不清楚当前 Agent 如何安装这个 Skill,可以直接在 Agent 里提问:

如何安装 astronomer/agents#airflow-plugins?

如何在 Claude Code 中安装 astronomer/agents#airflow-plugins?

如何在 Cursor 中安装 astronomer/agents#airflow-plugins?

让当前 Agent 根据自己的 Skill 加载与管理机制,给出对应安装步骤,比手动拼装命令更稳妥。

如果该 Skill 存在官方特别说明的安装条件,按其当前官方文档补充即可;没有官方依据的额外步骤不要自行添加。

二、安装后如何使用

安装后不需要特殊触发命令,直接在与 Airflow 插件相关的任务里引用它即可。把需求说清楚,包括 Airflow 版本、插件类型和期望行为。

自然语言示例:

使用 airflow-plugins,帮我写一个自定义 Operator,用来从 S3 拉取 Parquet 文件并写入内部 API。

使用 airflow-plugins,检查当前这个插件目录是否符合 Airflow 2 的插件结构,指出问题并给出修改意见。

使用 airflow-plugins,把我这份 Airflow 1.10 风格的插件改写为新版 Airflow 插件写法,保留原有功能。

三、卸载

不同 Agent 的 Skill 安装位置和管理方式不同,没有统一的卸载命令。常用做法:

– 使用对应 Agent 或 Skill 管理器提供的删除方式移除该 Skill
– 直接询问当前 Agent:

如何卸载 astronomer/agents#airflow-plugins?

由 Agent 按自己的加载机制指导移除,通常比手动寻找目录更可靠。

常见问题

1. 安装后 Agent 好像没有识别这个 Skill,怎么办?

先确认 Skill 已经放在当前 Agent 实际扫描的 Skill 目录或注册位置,而不是仅下载到本地。不同 Agent 的加载机制不同,建议直接问当前 Agent:“如何安装 astronomer/agents#airflow-plugins?”按它给出的实际路径检查。还要确认是否需要重启会话或重新加载。

2. 这个 Skill 会修改我现有的 Airflow 项目吗?

取决于你给 Agent 的权限。如果开启了自动文件写入或自动 Shell,Agent 可能直接在项目里生成或改动文件。如果只想先看建议,可以关闭自动执行权限,让 Agent 只输出代码和修改方案,由你手动应用。

3. 生成的插件会自动在哪个 Airflow 版本上运行?

不会自动运行。这个 Skill 生成的只是代码和建议,插件在哪个 Airflow 版本上生效,仍由你的实际部署决定。把 Airflow 版本在提问时说明,能让生成结果更贴合。官方未在 Skill 层面对所有版本的兼容性做统一保证。

4. 它和普通的 Python 编码 Skill 有什么区别?

普通 Python Skill 给的是通用 Python 建议;这个 Skill 重点在 Airflow 的插件机制——入口点、插件目录结构、Operators/Hooks/Sensors 的注册方式、版本差异等。如果你的任务不涉及这些,它不会比通用 Skill 更有优势。

5. 中国大陆使用有额外网络要求吗?

Skill 本身通常不要求持续联网。安装阶段访问 GitHub 等来源时,可能受本地网络环境影响;生成代码阶段一般不需要联网。若安装遇到网络问题,按你所在环境的常规方式处理即可。

6. 可以同时安装到 Claude Code 和 Cursor 吗?

可以。Skill 一般是按 Agent 各自安装的。但需要在每个 Agent 中分别安装和配置,安装位置和加载方式可能不同,具体按对应 Agent 的做法处理。

7. 官方是否支持 Codex、Trae、OpenClaw、WorkBuddy?

官方没有公布针对这些 Agent 的完整兼容列表。在这些环境中,如果支持 Skill 或自定义指令加载,一般可以尝试;是否完全兼容以对应 Agent 当前版本说明为准。

Skill 更新日志

版本列表
astro-airflow-mcp-0.9.1 最新
补丁版本:修复了在 FastMCP 3.4.3+ 下插件 `/mcp/v1/` 端点上的 `421 Misdirected Request` 问题,并将 `fastmcp` 固定在有界范围内。 ## 自 0.9.0 以来的修复 ### 修复来自 FastMCP 主机守卫的 `421 Misdirected Request`(#241) FastMCP 3.4.3 默认启用了 `HostOriginGuardMiddleware`:它只接受回环 `Host` 头(`127.0.0.1`/`localhost`/`::1`)以及 ASGI `scope["server"]` 主机,对其他任何内容返回 `421 Misdirected Request`。在插件模式下,MCP 应用嵌入在 Airflow webserver 中,并通过 Deployment 自己的主机名访问,因此在未固定版本、解析到 fastmcp 3.4.3 的安装中,对 `/mcp/v1/` 的每个请求都被以 421 拒绝。 - 插件现在保持守卫**启用**,但将 `allowed_hosts` 限定为 Deployment 的主机名,从 `AIRFLOW__WEBSERVER__BASE_URL` 环境变量读取(该变量在插件导入时存在,不同于 Airflow 的 `conf`)。DNS 重绑定保护保持开启,而不是被关闭。 - `ASTRO_MCP_ALLOWED_HOSTS`(逗号分隔)可为自定义域名覆盖允许列表;仅当无法推导出主机名时(非 Astro 嵌入),插件才回退到禁用守卫。 - 独立模式(`mcp.run`)不变——它保持 FastMCP 的默认回环保护,这正是本地绑定服务器所需的。 - 固定 `fastmcp>=3.4.3,<4`,使行为确定,不会在下次 FastMCP 默认值翻转时悄然改变。 ## 安装 ``` uvx --from 'astro-airflow-mcp==0.9.1' af ``` ## 升级说明 如果你曾固定 `fastmcp<3.4.3` 作为临时变通方案,升级到 0.9.1 后可以移除该固定。
astro-airflow-mcp-0.9.0
次要版本:现在每个 MCP 工具都返回结构化的、可供 agent 操作的错误,并带有 MCP 安全注解,此外 `af runs list` 新增了结束日期过滤器。 ## 自 0.8.2 以来的新内容 ### 结构化工具错误 + MCP 安全注解(#221) 工具此前将所有失败都简化为裸的 `str(e)`——agent 无法区分错误的 `dag_id`(修正参数并重试)与 Airflow 不可达(停止并上报),因为两者都返回相同的不透明字符串。 - **错误即数据。** 现在每个工具都返回 `error`、`error_type`、`hint`、`retryable` 标志,以及回显的标识参数(例如 `dag_id`)。`retryable` 将调用方可修复的问题(错误参数、400/404/429)与硬性阻塞(认证、5xx、只读、不可达)区分开,因此 agent 知道修正后的重试是否有帮助。对 `ReadOnlyError`、`NotFoundError`、Astro 认证错误、`httpx` 状态码、超时和传输错误进行分类。 - **所有 34 个工具上的安全注解。** 27 个读取操作标记为只读 + 幂等;7 个写入操作带有准确的提示——`delete_dag_run` 破坏性 + 非幂等,`clear_*` 破坏性 + 幂等,`pause`/`unpause` 幂等,`trigger*` 非幂等。客户端可以在调用*之前*对写入进行门控,补充现有的 `AF_READ_ONLY` 守卫(后者仅在模型决定调用*之后*才拒绝)。默认谨慎:只有当工具明确选择加入时,才会被宣传为“安全”。 - **凭据卫生。** `normalize_airflow_url` 现在会从 netloc 中剥离 `user:password@`(主机/端口/IPv6 原样保留),因此凭据不会泄漏到日志或错误消息中嵌入的 URL 里。 向后兼容——`str(e)` 始终保留在 `error` 内,因此任何 grep 旧裸字符串响应的消费者仍可正常工作;新消费者则获得结构化字段。 ### `af runs list` 的 `--end-date-gte` / `--end-date-lte` 过滤器(#233) 按运行*结束*时间过滤运行,与现有的 `--start-date-*` 过滤器对应——适用于“过去 N 分钟内哪些运行完成了以及它们如何结束”的恢复扫描。ISO 8601 时间戳;`--dag-id` 可选。关闭 #225。 ```bash # 在某个时间窗口内完成、并结合状态的运行 af runs list --end-date-gte 2026-06-10T15:00:00Z --state failed ``` ## 安装 ``` uvx --from 'astro-airflow-mcp==0.9.0' af ``` ## 升级说明 可直接替换 0.8.2——仅新增,无破坏性变更。结构化错误负载是旧字符串的超集(`str(e)` 保留在 `error` 中),因此现有消费者不受影响;新消费者可以读取结构化字段。
astro-airflow-mcp-0.8.2
补丁版本:修复当环境中设置了 `ASTRO_API_TOKEN` 时,`af instance discover` 静默报告“No instances discovered”的问题。 ## 自 0.8.1 以来的修复 - **解析 astro CLI 表格输出时跳过前导行**(#213):当设置了 `ASTRO_API_TOKEN` 时,astro CLI 会在 stdout 前加上 `Using an Astro API Token`。af 表格解析器将该行当作表头行,导致每个 `astro deployment list` 行都塌缩为名为 `using_an_astro_api_token` 的单列,并丢弃每个 deployment——discover 会静默返回零个实例。解析器现在从顶部逐行遍历,并选择第一个边界检测出 2+ 列的行作为真正的表头,因此 astro CLI 输出的任何单行前导都会被自动跳过。 ## 安装 ``` uvx --from 'astro-airflow-mcp==0.8.2' af ``` ## 升级说明 可直接替换 0.8.1。无配置或 CLI 变更。任何在 shell 中设置了 `ASTRO_API_TOKEN` 时遇到 `No instances discovered` 的人,现在都能正确看到 deployments。
astro-airflow-mcp-0.8.1
补丁版本:修复针对 webserver URL 带有 `?orgId=…` 查询字符串的 Astro deployments 的版本检测。 ## 自 0.8.0 以来的修复 - **从 Airflow URL 中剥离查询字符串 / 片段**(#210):Astro 发现有时返回 `webserver_url=https://host/dep?orgId=org_…`。由于 API URL 是通过字符串拼接构建的(`f"{airflow_url}/api/v2/version"`),结果是 `https://host/dep?orgId=org_…/api/v2/version`,API 路径被吞入查询字符串,破坏了版本检测以及随后的每次 API 调用。新的 `normalize_airflow_url()` 辅助函数会剥离查询、片段和尾部斜杠,应用于四个边界:`discovery/astro_cli.py`(在源头)、`adapters/base.py`(适配器构造函数)、`adapters/airflow_v3.py`(令牌交换)和 `adapters/__init__.py`(`detect_version`)。 - **更好的版本检测错误**:`detect_version` 现在收集每个探测的失败,并在 `RuntimeError` 消息中呈现它们(`Probes: /api/v2: HTTP 404; /api/v1: HTTP 502; ...`),而不是通用的“Failed to detect Airflow version”。还捕获了此前静默漏过的 `200 但非 JSON 正文` 情况。 ## 安装 ``` uvx --from 'astro-airflow-mcp==0.8.1' af ``` ## 升级说明 可直接替换 0.8.0。无配置或 CLI 变更。已将 `?orgId=…` 烘焙进其存储的 `airflow_url` 的现有用户不再需要重新运行 `af discover`——该值在读取时会被规范化。
astro-airflow-mcp-0.8.0
分层配置版本。`af` 现在跨全局、项目共享和项目本地文件读取和写入配置(镜像 `git config` 的 system/global/local 模型),并与 astro-cli 在 `~/.astro/` 共享配置主目录。 ## 自 0.7.0 以来的新内容 - **分层配置**(#207):三个作用域与 astro-cli 的配置树共置 - 全局:`~/.astro/config.yaml`(每用户) - 项目共享:`/.astro/config.yaml`(已提交;团队共享) - 项目本地:`/.astro/config.local.yaml`(gitignored;每开发者当前实例) - `` 通过从 cwd 向上查找 `.astro/` 找到。项目内的写入路由:`add` / `discover` → 项目共享,`use` → 项目本地。用 `--global` / `--project` / `--local` 覆盖。`AF_CONFIG=` 完全绕过分层。 - 读取优先级:项目本地 > 项目共享 > 全局。较窄作用域中的同名实例会遮蔽。 - **默认全局路径移动**从 `~/.af/config.yaml` 到 `~/.astro/config.yaml`。旧路径作为一次性只读回退被尊重(并在 stderr 给出弃用提示)。运行 `af migrate` 进行显式迁移并保留 `.bak`。 - **新命令**: - `af migrate`:幂等。报告 `migrated` / `already-migrated` / `nothing-to-migrate`。 - `af instance show `:`git config --show-origin` 风格的查找,报告实例来自哪个文件。 - **`af instance list`** 现在包含作用域和来源列,并用 `*` 标记当前实例。 - **`save()` 与外部顶层键合并**(`project`、`cloud`、`contexts`、`telemetry.notice_shown`),因此 `af` 和 astro-cli 可以共存于同一文件。往返时保留文件模式;新文件以 0600 写入。 - **Skill**:在 `astro dev init` 时停止固定 Airflow 版本(#206)。修复了一个幻觉,即模型尽管 CLI 默认使用最新版,却传递 `--airflow-version 3.1.0`。 ## 安装 ``` uvx --from 'astro-airflow-mcp==0.8.0' af ``` ## 升级说明 - 现有 `~/.af/config.yaml` 用户:不会出问题。`af` 将其作为回退读取。方便时运行 `af migrate`。它会合并到 `~/.astro/config.yaml`,保留那里已有的任何 astro-cli 内容,并将旧文件重命名为 `.bak`。 - 在 astro 项目内,`af instance add` 现在默认写入 `.astro/config.yaml`(已提交)。凭据优先使用 `${ENV_VAR}` 插值或 `astro_pat`,或传递 `--local` 用于 gitignored 机密,或 `--global` 用于个人配置。 - `AF_CONFIG=` 和 `AF_CONFIG=/dev/null` 语义不变。
astro-airflow-mcp-0.7.0
PAT 认证重写的稳定版本(#204)加上 OSError 后续修复(#205) ## 自 0.6.4 以来的新内容 - `af instance discover astro` 现在通过 Auth0 刷新令牌交换复用用户的 `astro login` 会话,而不是铸造永久 `DEPLOYMENT_ADMIN` 令牌。发现的 deployments 使用 `auth.kind = astro_pat`,且从不将令牌写入 af 的配置 - 现有的 `kind = token` 和 `kind = basic` 实例保持不变地继续工作(向后兼容) - 401 重试路径,带一次强制刷新,去抖动为每 60 秒一次 - 轮换的刷新令牌在 flock 下持久化回 `~/.astro/config.yaml`,以免 astro CLI 自己的会话中断 - `astro_context` 在发现时始终固定(避免 `astro context switch` 后的跨租户令牌泄漏) - 朴素的 `expiresin` 字符串锚定到 UTC(纵深防御) - `_read_yaml` 捕获 `FileNotFoundError`、`NotADirectoryError`、`IsADirectoryError`,因此非文件的 `ASTRO_HOME` 路径会呈现干净的“run astro login”错误,而不是被掩盖的版本检测失败 ## 验证 - 490 个单元测试通过;CI 在所有矩阵条目上全绿(py3.10/11/12,AF2/AF3 集成) - 完整破坏测试组(约 30 个场景)针对 0.7.0a1 和 0.7.0a2 运行干净 - 使用 otto agent 针对 AF3 云 deployment 和本地 AF2 独立实例进行端到端测试 - 所有测试中未铸造任何 deployment 令牌 ## 安装 ``` uvx --from 'astro-airflow-mcp==0.7.0' af ``` ## 升级说明 - 如果你现有的 af 配置带有由旧 `af instance discover astro` 铸造的 deployment 令牌,它们继续工作。你可以不管它们,或重新运行 discover(如果传递 `--overwrite`,它会覆盖为 PAT 支持的实例) - 留在你的 astro deployments 中的现有 `af-discover-*` 令牌现在是孤儿。方便时在 astro UI 中撤销它们
astro-airflow-mcp-0.7.0a2
后续 alpha 版本,在 0.7.0a1 之上捆绑了来自 #205 的 OSError 修复 ## 自 0.7.0a1 以来的新内容 - `_read_yaml` 现在捕获表示“无可读 astro 配置”的特定 OSError 形态(`FileNotFoundError`、`NotADirectoryError`、`IsADirectoryError`),而不是泄漏到 `detect_version` 成为被掩盖的“Failed to detect Airflow version”(#205) - `PermissionError` 和其他意外 OS 错误会传播,因此它们会清晰呈现,而不是死路于“run astro login” ## 安装 ``` uvx --from 'astro-airflow-mcp==0.7.0a2' af ```
astro-airflow-mcp-0.7.0a1
PAT 认证重写(PR #204)的 alpha 版本,用于在 otto 中测试,然后再提升为 0.7.0 稳定版 ## 新内容 - `af instance discover astro` 现在通过 Auth0 刷新令牌交换复用用户的 `astro login` 会话,而不是铸造永久 `DEPLOYMENT_ADMIN` 令牌 - 实例配置中新增 `auth.kind = astro_pat`;现有的 `token` / `basic` 实例保持不变地继续工作 - 401 重试路径,带一次强制刷新,去抖动为每 60 秒一次 - 轮换的刷新令牌在 flock 下持久化回 ~/.astro/config.yaml,以免 astro CLI 自己的会话中断 - 朴素的 `expiresin` 字符串锚定到 UTC(针对手工编辑的纵深防御) ## 安装 ``` uvx --from 'astro-airflow-mcp==0.7.0a1' af ``` ## 为什么是 alpha 切一个 alpha 以使用 otto 的包装器(通过 uvx 固定 af)进行端到端验证,然后再提升为 0.7.0
astro-airflow-mcp-0.6.4
## 变更内容 * 在 `runs trigger-wait` 中检测暂停的 DAG,作者 @jlaneve,见 https://github.com/astronomer/agents/pull/190 * af CLI:将空的 AIRFLOW_API_URL 视为显式无操作,作者 @jlaneve,见 https://github.com/astronomer/agents/pull/191 * af CLI:当 AF_CONFIG 指向非普通文件时不要崩溃,作者 @kaxil,见 https://github.com/astronomer/agents/pull/193 * 修复 list_dag_runs(MCP 工具 + af CLI)返回最旧运行在前的问题,作者 @JoaVirtudes19,见 https://github.com/astronomer/agents/pull/192 ## 新贡献者 * @JoaVirtudes19 在 #192 中做出首次贡献 **完整变更日志**:https://github.com/astronomer/agents/compare/astro-airflow-mcp-0.6.3...astro-airflow-mcp-0.6.4
astro-airflow-mcp-0.6.3
## 变更内容 * 扩展插件模式文档,包含 Astro 认证、角色和故障排除,作者 @tayloramurphy,见 https://github.com/astronomer/agents/pull/184 * 为 MCP 服务器添加 Airflow 2.x 插件模式支持,作者 @kaxil,见 https://github.com/astronomer/agents/pull/186 **完整变更日志**:https://github.com/astronomer/agents/compare/astro-airflow-mcp-0.6.2...astro-airflow-mcp-0.6.3
astro-airflow-mcp-0.6.2
## 变更内容 * 修复远程部署的 Airflow MCP 插件模式,作者 @kaxil,见 https://github.com/astronomer/agents/pull/183 **完整变更日志**:https://github.com/astronomer/agents/compare/astro-airflow-mcp-0.6.1...astro-airflow-mcp-0.6.2
astro-airflow-mcp-0.6.1
## Bug 修复 - 修复当配置文件包含不同实例的凭据时的环境变量认证(#181) - 修复:从 TERMINAL_DAG_RUN_STATES 中移除 upstream_failed(#166)
astro-airflow-mcp-0.6.0
## 新内容 ### `af registry` — 查询 Airflow Provider Registry(#145) 四个新的 CLI 命令,可直接从终端浏览 [Airflow Provider Registry](https://airflow.apache.org/registry)——无需运行中的 Airflow 实例: - `af registry providers` — 列出所有 providers(id、name、version、lifecycle) - `af registry modules ` — 列出 operators、hooks、sensors 和 transfers - `af registry parameters ` — 显示 provider 类的构造函数参数 - `af registry connections ` — 显示连接类型及其字段 支持 `--version` 以固定到特定 provider 发布版,结果本地缓存(最新版 1 小时,版本化快照 30 天)。使用 `--no-cache` 绕过。 ```bash af registry modules amazon | jq '.modules[] | select(.type == "hook") | .name' af registry parameters ftp | jq '.classes | keys[]' ``` ### 改进 - 为 `list_dag_runs` MCP 工具添加 `dag_id` 过滤器(#163) - 澄清 `get_dag_stats` 要求 `dag_ids` 为列表(#162) ### 修复 - 使发现令牌名称用户特定以避免冲突(#156) - 修复 airflow-adapter skill frontmatter(#147) **完整变更日志**:https://github.com/astronomer/agents/compare/astro-airflow-mcp-0.5.1...astro-airflow-mcp-0.6.0
astro-airflow-mcp-0.5.1
## 变更内容 * 改进 agent 检测,作者 @schnie,见 https://github.com/astronomer/agents/pull/141 * 分离 agent 和 ci_system 属性,作者 @schnie,见 https://github.com/astronomer/agents/pull/142 **完整变更日志**:https://github.com/astronomer/agents/compare/astro-airflow-mcp-0.5.0...astro-airflow-mcp-0.5.1
astro-airflow-mcp-0.5.0
## 变更内容 * fix:运行 --plugin-dir 时加载 hooks,作者 @milton-li,见 https://github.com/astronomer/agents/pull/102 * 确保 airflow mcp 包高效使用 uvx 缓存,作者 @schnie,见 https://github.com/astronomer/agents/pull/100 * fix:从 skill 参考文件中移除 doctoc 目录,作者 @kaxil,见 https://github.com/astronomer/agents/pull/107 * 基于早期用户反馈改进 authoring-dags skill,作者 @tayloramurphy,见 https://github.com/astronomer/agents/pull/104 * 添加 `af` CLI 遥测,作者 @schnie,见 https://github.com/astronomer/agents/pull/106 * 在 skills 中使用 `af` cli,作者 @milton-li,见 https://github.com/astronomer/agents/pull/108 * docs:在 README 中添加缺失的 skills,作者 @tayloramurphy,见 https://github.com/astronomer/agents/pull/112 * 重构 skill hooks 并扁平化 analyzing-data 脚本,作者 @milton-li,见 https://github.com/astronomer/agents/pull/113 * docs:在 Airflow 2→3 迁移中添加共享工具导入破坏性变更,作者 @tayloramurphy,见 https://github.com/astronomer/agents/pull/111 * 将 init skill 重命名为 warehouse-init,作者 @kaxil,见 https://github.com/astronomer/agents/pull/114 * 添加 BigQuery 作业标签支持并修复 location 参数 bug,作者 @kaxil,见 https://github.com/astronomer/agents/pull/118 * 添加 Snowflake query_tag 支持,作者 @kaxil,见 https://github.com/astronomer/agents/pull/119 * 添加 Postgres application_name 支持,作者 @kaxil,见 https://github.com/astronomer/agents/pull/120 * 修复 `cosmos-dbt-core/SKILL.md`,作者 @tatiana,见 https://github.com/astronomer/agents/pull/122 * 进一步改进 Cosmos skills,作者 @tatiana,见 https://github.com/astronomer/agents/pull/123 * feat:添加部署管理 agents,作者 @kh3dron,见 https://github.com/astronomer/agents/pull/121 * fix:为自签名证书添加 SSL 证书验证绕过,作者 @kaxil,见 https://github.com/astronomer/agents/pull/126 * 触发前自动取消暂停 DAG,作者 @josh-fell,见 https://github.com/astronomer/agents/pull/127 * docs:澄清 Snowflake 账户标识符格式,作者 @josh-fell,见 https://github.com/astronomer/agents/pull/130 * 移除写入键,作者 @schnie,见 https://github.com/astronomer/agents/pull/128 * feat:添加 `af runs delete` 和 `af runs clear` 命令,作者 @tayloramurphy,见 https://github.com/astronomer/agents/pull/129 * 迁移到 prek.toml 配置进行静态检查,作者 @josh-fell,见 https://github.com/astronomer/agents/pull/131 * 为 MCP 工具调用添加遥测跟踪,作者 @schnie,见 https://github.com/astronomer/agents/pull/134 * 将遥测配置移入 config.yaml,作者 @schnie,见 https://github.com/astronomer/agents/pull/135 * 从 mypy 迁移到 ty 进行类型检查,作者 @josh-fell,见 https://github.com/astronomer/agents/pull/133 * 处理 Copilot 关于类型安全的反馈,作者 @kaxil,见 https://github.com/astronomer/agents/pull/139 * 实现 AF_READ_ONLY 模式以阻止写操作,作者 @igorastronomer,见 https://github.com/astronomer/agents/pull/138 ## 新贡献者 * @tatiana 在 https://github.com/astronomer/agents/pull/122 中做出首次贡献 * @kh3dron 在 https://github.com/astronomer/agents/pull/121 中做出首次贡献 **完整变更日志**:https://github.com/astronomer/agents/compare/plugin-0.2.0...astro-airflow-mcp-0.5.0
plugin-0.2.0
## Claude 插件发布 自初始发布以来的首次版本号提升,反映累积的变更: ### 新 Skills - Cosmos 集成 - Airflow HITL(Human-in-the-Loop) - 血缘注解 - 最佳实践 - Airflow 2-3 迁移 - 以及更多... ### 改进 - 用于 skill 建议的 hook 改进 - 用于 Astro deployments 的 `af` CLI 集成 - 多数据库支持(Snowflake、BigQuery 等) ### 安装 ```bash claude plugin marketplace add astronomer/agents claude plugin install data@astronomer ``` 或更新现有安装: ```bash claude plugin marketplace update astronomer/agents ```
astro-airflow-mcp-0.4.1
## 变更内容 * feat(skills):更新 testing-dags 以使用 af CLI,作者 @kaxil,见 https://github.com/astronomer/agents/pull/75 * refactor(cli):用子命令替换 `af api` 标志,作者 @kaxil,见 https://github.com/astronomer/agents/pull/76 * 添加血缘注解和 OpenLineage extractor skills,作者 @jlaneve,见 https://github.com/astronomer/agents/pull/66 * 在根 README 中添加 af CLI 文档,作者 @schnie,见 https://github.com/astronomer/agents/pull/78 * feat(cli):为 list 命令添加过滤选项,作者 @jlaneve,见 https://github.com/astronomer/agents/pull/79 * docs:添加社区健康文件,作者 @jlaneve,见 https://github.com/astronomer/agents/pull/80 * docs:添加 CODE_OF_CONDUCT.md,作者 @jlaneve,见 https://github.com/astronomer/agents/pull/81 * 在 README 中添加路线图部分,作者 @tayloramurphy,见 https://github.com/astronomer/agents/pull/74 * 添加 `af instance discover` 命令以自动发现 Astro deployments,作者 @schnie,见 https://github.com/astronomer/agents/pull/63 * Skill:Airflow HITL,作者 @igorastronomer,见 https://github.com/astronomer/agents/pull/95 * Skill:更新 airflow 2-3 迁移 skill,作者 @igorastronomer,见 https://github.com/astronomer/agents/pull/99 * Skill:Cosmos,作者 @igorastronomer,见 https://github.com/astronomer/agents/pull/96 ## 新贡献者 * @igorastronomer 在 https://github.com/astronomer/agents/pull/95 中做出首次贡献 **完整变更日志**:https://github.com/astronomer/agents/compare/astro-airflow-mcp-0.4.0...astro-airflow-mcp-0.4.1
astro-airflow-mcp-0.4.0
## 变更内容 * 更好地支持 airflow skill,作者 @schnie,见 https://github.com/astronomer/agents/pull/65 * fix:为 uvx af CLI 使用 @latest 后缀以防止陈旧版本问题,作者 @jlaneve,见 https://github.com/astronomer/agents/pull/68 * fix:配置加载失败时发出警告而不是静默回退,作者 @jlaneve,见 https://github.com/astronomer/agents/pull/70 * feat(cli):添加 `af api` 命令以直接访问 Airflow REST API,作者 @kaxil,见 https://github.com/astronomer/agents/pull/73 **完整变更日志**:https://github.com/astronomer/agents/compare/astro-airflow-mcp-0.3.0...astro-airflow-mcp-0.4.0
astro-airflow-mcp-0.3.0
## 变更内容 * 将 astro-dwh-mcp 切换为来自 git 标签的动态版本控制,作者 @schnie,见 https://github.com/astronomer/agents/pull/46 * 提升 MCP 服务器版本标签,作者 @schnie,见 https://github.com/astronomer/agents/pull/47 * feat:airflow mcp skill 和 hook,作者 @milton-li,见 https://github.com/astronomer/agents/pull/45 * 添加 Cursor hooks 兼容性,作者 @kaxil,见 https://github.com/astronomer/agents/pull/50 * 添加 clear_task_instances MCP 工具以重试失败任务,作者 @petedejoy,见 https://github.com/astronomer/agents/pull/51 * 按域将 server.py 拆分为模块化工具文件,作者 @jlaneve,见 https://github.com/astronomer/agents/pull/52 * 更新 pre-commit hooks,作者 @jedcunningham,见 https://github.com/astronomer/agents/pull/55 * 修复 skill hook 路径以解析到正确目录,作者 @josh-fell,见 https://github.com/astronomer/agents/pull/56 * 为 analyzing-data skill 添加多数据库支持,作者 @kaxil,见 https://github.com/astronomer/agents/pull/57 * 为 analyzing-data skill 添加多数据库文档,作者 @kaxil,见 https://github.com/astronomer/agents/pull/58 * 将配置路径从 `~/.astro/ai/config/` 重命名为 `~/.astro/agents/`,作者 @kaxil,见 https://github.com/astronomer/agents/pull/59 * 通过 SQLAlchemy 连接器添加 Redshift 支持,作者 @kaxil,见 https://github.com/astronomer/agents/pull/60 * 使用统一方言注册表重构 SQLAlchemy 连接器,作者 @kaxil,见 https://github.com/astronomer/agents/pull/61 * 添加 Airflow API Skill,作者 @schnie,见 https://github.com/astronomer/agents/pull/53 * 添加 CLI 命令并修复 CI 构建,作者 @schnie,见 https://github.com/astronomer/agents/pull/62 ## 新贡献者 * @petedejoy 在 https://github.com/astronomer/agents/pull/51 中做出首次贡献 * @jedcunningham 在 https://github.com/astronomer/agents/pull/55 中做出首次贡献 **完整变更日志**:https://github.com/astronomer/agents/compare/astro-airflow-mcp-0.2.3...astro-airflow-mcp-0.3.0
astro-airflow-mcp-0.2.3
该版本暂未提供更新说明。

暂无评论

none
暂无评论...