← 返回公开榜单
mc

yangkyeongmo/mcp-server-apache-airflow

(No description)

本周新增
8 星
近 3 周倍数
—
距上次推送
249 天
距上次发布
274 天
许可证
MIT

星标增长

每根柱子是这个周期记录下来的 star 增长:优先取逐个 stargazer 到达时间分桶的到达数,还没被 stargazer 扫描覆盖的仓库改用该周期的 star 净增;两个写者都没记录的周期画成虚线空档,而不是当成 0。柱高按各自窗口的峰值归一,两张图不共用坐标轴。指向任意一根柱子, tooltip 里是该周期的九项指标:当前值与周期内的净增。

指向或点击一根柱子,看当天的九项指标。

12/1712/301/111/242/62/193/33/16

2026 年 1 月 18 日 新增 12 个星标; 2026 年 2 月 1 日 新增 6 个星标; 2026 年 2 月 14 日 新增 4 个星标; 2026 年 2 月 17 日 新增 2 个星标; 2026 年 2 月 21 日 新增 2 个星标; 2026 年 3 月 16 日 新增 8 个星标

窗口内最高的一天是 2026 年 1 月 18 日,新增 12 个星标。

证据时间轴

  1. 第 2026 年第 7 周发布 1 次

    累计 7 个 release

README
该仓库存储的文档,若已生成中文翻译则一并显示

MseeP.ai 安全评估徽章

mcp-server-apache-airflow

smithery badge

一个用于 Apache Airflow 的模型上下文协议(MCP)服务器实现,可无缝集成 MCP 客户端。该项目提供了一种标准化的方式来通过模型上下文协议与 Apache Airflow 进行交互。

Apache Airflow MCP 服务器

关于

该项目实现了一个 模型上下文协议 服务器,该服务器封装了 Apache Airflow 的 REST API,允许 MCP 客户端以标准化的方式与 Airflow 进行交互。它使用官方的 Apache Airflow 客户端库以确保兼容性和可维护性。

功能实现状态

功能API 路径状态
DAG 管理
列出 DAGs/api/v1/dags✅
获取 DAG 详情/api/v1/dags/{dag_id}✅
暂停 DAG/api/v1/dags/{dag_id}✅
恢复 DAG/api/v1/dags/{dag_id}✅
更新 DAG/api/v1/dags/{dag_id}✅
删除 DAG/api/v1/dags/{dag_id}✅
获取 DAG 源/api/v1/dagSources/{file_token}✅
批量修补 DAG/api/v1/dags✅
重新解析 DAG 文件/api/v1/dagSources/{file_token}/reparse✅
DAG 运行
列出 DAG 运行/api/v1/dags/{dag_id}/dagRuns✅
创建 DAG 运行/api/v1/dags/{dag_id}/dagRuns✅
获取 DAG 运行详情/api/v1/dags/{dag_id}/dagRuns/{dag_run_id}✅
更新 DAG 运行/api/v1/dags/{dag_id}/dagRuns/{dag_run_id}✅
删除 DAG 运行/api/v1/dags/{dag_id}/dagRuns/{dag_run_id}✅
批量获取 DAG 运行/api/v1/dags/~/dagRuns/list✅
清除 DAG 运行/api/v1/dags/{dag_id}/dagRuns/{dag_run_id}/clear✅
设置 DAG 运行备注/api/v1/dags/{dag_id}/dagRuns/{dag_run_id}/setNote✅
获取上游数据集事件/api/v1/dags/{dag_id}/dagRuns/{dag_run_id}/upstreamDatasetEvents✅
任务
列出 DAG 任务/api/v1/dags/{dag_id}/tasks✅
获取任务详情/api/v1/dags/{dag_id}/tasks/{task_id}✅
获取任务实例/api/v1/dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances/{task_id}✅
列出任务实例/api/v1/dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances✅
更新任务实例/api/v1/dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances/{task_id}✅
清除任务实例/api/v1/dags/{dag_id}/clearTaskInstances✅
设置任务实例状态/api/v1/dags/{dag_id}/updateTaskInstancesState✅
变量
列出变量/api/v1/variables✅
创建变量/api/v1/variables✅
获取变量/api/v1/variables/{variable_key}✅
更新变量/api/v1/variables/{variable_key}✅
删除变量/api/v1/variables/{variable_key}✅
连接
列出连接/api/v1/connections✅
创建连接/api/v1/connections✅
获取连接/api/v1/connections/{connection_id}✅
更新连接/api/v1/connections/{connection_id}✅
删除连接/api/v1/connections/{connection_id}✅
测试连接/api/v1/connections/test✅
池
列出池/api/v1/pools✅
创建池/api/v1/pools✅
获取池/api/v1/pools/{pool_name}✅
更新池/api/v1/pools/{pool_name}✅
删除池/api/v1/pools/{pool_name}✅
XComs
列出 XComs/api/v1/dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances/{task_id}/xcomEntries✅
获取 XCom 条目/api/v1/dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances/{task_id}/xcomEntries/{xcom_key}✅
数据集
列出数据集/api/v1/datasets✅
获取数据集/api/v1/datasets/{uri}✅
获取数据集事件/api/v1/datasetEvents✅
创建数据集事件/api/v1/datasetEvents✅
获取 DAG 数据集排队事件/api/v1/dags/{dag_id}/dagRuns/queued/datasetEvents/{uri}✅
获取 DAG 数据集排队事件/api/v1/dags/{dag_id}/dagRuns/queued/datasetEvents✅
删除 DAG 数据集排队事件/api/v1/dags/{dag_id}/dagRuns/queued/datasetEvents/{uri}✅
删除 DAG 数据集排队事件/api/v1/dags/{dag_id}/dagRuns/queued/datasetEvents✅
获取数据集排队事件/api/v1/datasets/{uri}/dagRuns/queued/datasetEvents✅
删除数据集排队事件/api/v1/datasets/{uri}/dagRuns/queued/datasetEvents✅
监控
获取健康状态/api/v1/health✅
DAG 统计
获取 DAG 统计/api/v1/dags/statistics✅
配置
获取配置/api/v1/config✅
插件
获取插件/api/v1/plugins✅
提供者
列出提供者/api/v1/providers✅
事件日志
列出事件日志/api/v1/eventLogs✅
获取事件日志/api/v1/eventLogs/{event_log_id}✅
系统
获取导入错误/api/v1/importErrors✅
获取导入错误详情/api/v1/importErrors/{import_error_id}✅
获取健康状态/api/v1/health✅
获取版本/api/v1/version✅

设置

依赖项

该项目依赖于官方的 Apache Airflow 客户端库(apache-airflow-client)。在安装此包时,它将自动安装。

环境变量

设置以下环境变量:

AIRFLOW_HOST=<your-airflow-host>        # 可选,默认为 http://localhost:8080
AIRFLOW_USERNAME=<your-airflow-username>
AIRFLOW_PASSWORD=<your-airflow-password>
AIRFLOW_API_VERSION=v1                  # 可选,默认为 v1

与 Claude Desktop 一起使用

将以下内容添加到您的 claude_desktop_config.json:

{
  "mcpServers": {
    "mcp-server-apache-airflow": {
      "command": "uvx",
      "args": ["mcp-server-apache-airflow"],
      "env": {
        "AIRFLOW_HOST": "https://your-airflow-host",
        "AIRFLOW_USERNAME": "your-username",
        "AIRFLOW_PASSWORD": "your-password"
      }
    }
  }
}

对于只读模式(推荐用于安全目的):

{
  "mcpServers": {
    "mcp-server-apache-airflow": {
      "command": "uvx",
      "args": ["mcp-server-apache-airflow", "--read-only"],
      "env": {
        "AIRFLOW_HOST": "https://your-airflow-host",
        "AIRFLOW_USERNAME": "your-username",
        "AIRFLOW_PASSWORD": "your-password"
      }
    }
  }
}

使用 uv 的替代配置:

{
  "mcpServers": {
    "mcp-server-apache-airflow": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/mcp-server-apache-airflow",
        "run",
        "mcp-server-apache-airflow"
      ],
      "env": {
        "AIRFLOW_HOST": "https://your-airflow-host",
        "AIRFLOW_USERNAME": "your-username",
        "AIRFLOW_PASSWORD": "your-password"
      }
    }
  }
}

将 /path/to/mcp-server-apache-airflow 替换为您克隆存储库的实际路径。

选择 API 组

您可以通过设置 --apis 标志来选择您想要使用的 API 组。

uv run mcp-server-apache-airflow --apis "dag,dagrun"

默认情况下会使用所有 API。

允许的值是:

  • config
  • connections
  • dag
  • dagrun
  • dagstats
  • dataset
  • eventlog
  • importerror
  • monitoring
  • plugin
  • pool
  • provider
  • taskinstance
  • variable
  • xcom

只读模式

您可以通过使用 --read-only 标志以只读模式运行服务器。这将仅暴露执行读操作(GET 请求)的工具,并排除任何创建、更新或删除资源的工具。

uv run mcp-server-apache-airflow --read-only

在只读模式下,服务器将仅暴露以下工具:

  • 列出 DAGs、DAG 运行、任务、变量、连接等
  • 获取特定资源的详情
  • 读取配置和监控信息
  • 测试连接(非破坏性)

只读模式下不可用的写操作包括创建、更新、删除 DAGs、变量、连接、触发 DAG 运行等。

您可以结合只读模式与 API 组选择:

uv run mcp-server-apache-airflow --read-only --apis "dag,variable"

手动执行

您也可以手动运行服务器:

make run

make run 接受以下选项:

选项:

  • --port: 用于 SSE 的监听端口(默认:8000)
  • --transport: 传输类型(stdio/sse,默认:stdio)

或者,您可以直接运行 sse 服务器,它接受相同的参数:

make run-sse

通过 Smithery 安装

要通过 Smithery 自动安装 Apache Airflow MCP 服务器,请执行以下命令:

npx -y @smithery/cli install @yangkyeongmo/mcp-server-apache-airflow --client claude

开发

设置开发环境

  1. 克隆存储库:
git clone https://github.com/yangkyeongmo/mcp-server-apache-airflow.git
cd mcp-server-apache-airflow
  1. 安装开发依赖项:
uv sync --dev
  1. 创建 .env 文件用于环境变量(开发可选):
touch .env

注意:运行测试不需要环境变量。开发测试的 AIRFLOW_HOST 默认为 http://localhost:8080。

运行测试

该项目使用 pytest 进行测试,提供以下命令:

# 运行所有测试
make test

代码质量

# 运行代码检查
make lint

# 运行代码格式化
make format

持续集成

该项目包含一个 GitHub Actions 工作流(.github/workflows/test.yml),该工作流自动执行:

  • 在 Python 3.10、3.11 和 3.12 上运行测试
  • 使用 ruff 执行代码检查
  • 在每次推送和 main 分支的拉取请求上运行

CI 管道确保在合并任何更改之前,代码质量和跨支持的 Python 版本的兼容性。

贡献

欢迎贡献!请随时提交 Pull Request。

当项目版本 project.version 在 pyproject.toml 中更新时,包将自动部署到 PyPI。 请遵循 semver 进行版本控制。

请确保在 PR 中包含版本更新,以便将更改应用到核心逻辑。

许可证

MIT 许可证

页面上的每个数字都来自记录下来的 stargazer 到达时间,没有评分公式,也没有 AI 判定。 任何结论都可以用 /api/v1/repos/{id}/stats 里的原始增量自己重算。