返回市场
mcp-模型流水线

mcp-模型流水线

作者:zenml-io36 星标更新:2025-10-21

项目介绍

ZenML 的 MCP 服务器

信任评分

该项目实现了一个用于与 ZenML API 交互的 模型上下文协议 (MCP) 服务器。

ZenML MCP 服务器

什么是 MCP?

模型上下文协议 (MCP) 是一个开放协议,标准化了应用程序如何向大型语言模型 (LLMs) 提供上下文。它就像“AI 应用程序的 USB-C 接口”——提供了一种标准化的方法来连接 AI 模型到不同的数据源和工具。

MCP 遵循客户端-服务器架构,其中:

  • MCP 主机:想要通过 MCP 访问数据的应用程序,如 Claude Desktop 或 IDE。
  • MCP 客户端:维护与服务器一对一连接的协议客户端。
  • MCP 服务器:轻量级程序,通过标准化协议暴露特定功能。
  • 本地数据源:您的计算机文件、数据库和服务,MCP 服务器可以安全访问。
  • 远程服务:可以通过互联网访问的外部系统,MCP 服务器可以连接到这些系统。

什么是 ZenML?

ZenML 是一个开源平台,用于构建和管理机器学习和人工智能管道。它提供了一个统一的界面来管理数据、模型和实验。

更多详情,请参阅 ZenML 网站我们的文档

功能

该服务器提供了 MCP 工具,以访问 ZenML 服务器的核心读取功能,提供了一种获取实时信息的方式:

  • 用户
  • 堆栈
  • 管道
  • 管道运行
  • 管道步骤
  • 服务
  • 堆栈组件
  • 风味
  • 管道运行模板
  • 时间表
  • 艺术品(关于数据艺术品的元数据,而不是数据本身)
  • 服务连接器
  • 步骤代码
  • 步骤日志(如果步骤是在基于云的堆栈上运行的)

它还允许您触发新的管道运行(如果有运行模板)。

注意:这是一个测试版/实验性发布。我们仍在探索人们将如何使用这种集成,因此我们欢迎您的反馈和建议!请加入我们的 Slack 社区,分享您的经验并帮助我们改进。

测试与质量保证

此项目包括自动化测试,以确保 MCP 服务器的功能:

  • 🔄 自动冒烟测试:每三天通过 GitHub Actions 运行一次全面的冒烟测试。
  • 🚨 创建问题:失败的测试会自动创建带有详细调试信息的 GitHub 问题。
  • ⚡ 快速 CI:使用带有缓存的 UV 进行快速依赖安装和测试。
  • 🧪 手动测试:您可以使用以下命令在本地运行冒烟测试:uv run scripts/test_mcp_server.py server/zenml_server.py

自动化测试验证:

  • MCP 协议连接和握手
  • 服务器初始化和工具发现
  • 基本工具功能(当 ZenML 服务器可访问时)
  • 资源和提示枚举

如何使用

先决条件

您需要访问已部署的 ZenML 服务器。如果您没有,可以在 ZenML Pro 注册免费试用,我们将为您管理部署。

您还需要(可能)在本地安装 uv。更多信息,请参阅 uv 文档。我们推荐通过其安装脚本或通过 brew(如果您使用的是 Mac)进行安装。(从技术上讲,您不需要它,但它使安装和设置变得容易。)

您还需要将此存储库克隆到本地某个位置:

git clone https://github.com/zenml-io/mcp-zenml.git

您的 MCP 配置文件

MCP 配置文件是一个 JSON 文件,告诉 MCP 客户端如何连接到您的 MCP 服务器。不同的 MCP 客户端会使用或指定这个文件不同。两个常用的 MCP 客户端是 Claude DesktopCursor,我们提供了安装说明如下。

您需要按照以下格式指定您的 ZenML MCP 服务器:

{
    "mcpServers": {
        "zenml": {
            "command": "/usr/local/bin/uv",
            "args": ["run", "path/to/server/zenml_server.py"],
            "env": {
                "LOGLEVEL": "WARNING",
                "NO_COLOR": "1",
                "ZENML_LOGGING_COLORS_DISABLED": "true",
                "ZENML_LOGGING_VERBOSITY": "WARN",
                "ZENML_ENABLE_RICH_TRACEBACK": "false",
                "PYTHONUNBUFFERED": "1",
                "PYTHONIOENCODING": "UTF-8",
                "ZENML_STORE_URL": "https://your-zenml-server-goes-here.com",
                "ZENML_STORE_API_KEY": "your-api-key-here"
            }
        }
    }
}

有四个占位符值需要替换:

  • 您本地安装的 uv 的路径(上面列出的路径是在您通过 brew 安装的情况下 Mac 上的位置)
  • zenml_server.py 文件的路径(这是您连接到 MCP 服务器时将运行的文件)。此文件位于此存储库的根目录下。您需要指定此文件的确切完整路径。
  • ZenML 服务器 URL(这是您的 ZenML 服务器的 URL。您可以在 ZenML Cloud UI 中找到它)。它看起来像 https://d534d987a-zenml.cloudinfra.zenml.io
  • ZenML 服务器 API 密钥(这是您的 ZenML 服务器的 API 密钥。您可以在 ZenML Cloud UI 中找到它或阅读这些 文档 了解如何创建一个。对于 ZenML MCP 服务器,我们建议使用服务账户。)

您可以自由更改运行 MCP 服务器 Python 文件的方式,但使用 uv 可能是最简单的选项,因为它为您处理环境和依赖安装。

与 Claude Desktop 一起使用的安装

您需要安装最新版本的 Claude Desktop

您只需打开设置菜单,将此存储库根目录下的 mcp-zenml.mcpb 文件拖放到菜单中,它将引导您完成安装和设置过程。您需要添加您的 ZenML 服务器 URL 和 API 密钥。

注意:MCP 包(.mcpb)替换了旧的桌面扩展(.dxt)格式;现有的 .dxt 文件仍然可以在 Claude Desktop 中工作。

可选:改善 ZenML 工具输出显示

为了获得更好的 ZenML 工具结果体验,您可以配置 Claude 将 JSON 响应以更易读的格式显示。在 Claude Desktop 中,转到设置 → 配置文件,在“Claude 在响应中应考虑哪些个人偏好?”部分,添加类似以下内容(或使用这些确切的词!):

当使用返回 JSON 字符串的 ZenML 工具并被询问一个问题时,您可能希望考虑使用 Markdown 表格来总结结果或使其更容易查看!

这将鼓励 Claude 将 ZenML 工具输出格式化为 Markdown 表格,使信息更容易阅读和理解。

与 Cursor 一起使用的安装

您需要安装 Cursor

Cursor 与 Claude Desktop 的工作方式略有不同,您需要根据每个仓库指定配置文件。这意味着如果您想在多个仓库中使用 ZenML MCP 服务器,您需要在每个仓库中指定配置文件。

要为单个仓库设置它,您需要:

  • 在仓库根目录下创建一个 .cursor 文件夹
  • 在里面创建一个 mcp.json 文件,内容如上所述
  • 进入您的 Cursor 设置并点击 ZenML 服务器以“启用”它。

据我们的经验,有时即使它正在工作,也会显示红色错误指示器。您可以通过在 Cursor 聊天窗口中聊天来尝试一下。它会告诉您是否能够访问 ZenML 工具。

Docker 镜像

您可以作为 Docker 容器运行服务器。进程通过标准 I/O 通信,因此它会等待 MCP 客户端连接。通过环境变量传递您的 ZenML 凭证。

预构建镜像(Docker Hub)

拉取最新的多架构镜像:

docker pull zenmldocker/mcp-zenml:latest

版本化的发布标记为 vX.Y.Z

docker pull zenmldocker/mcp-zenml:v1.0.0

使用您的 ZenML 凭证运行(标准 I/O 模式):

docker run -i --rm \
  -e ZENML_STORE_URL="https://your-zenml-server.example.com" \
  -e ZENML_STORE_API_KEY="your-api-key" \
  zenmldocker/mcp-zenml:latest

使用 Docker 的标准 MCP 配置

{
  "mcpServers": {
    "zenml": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-e", "ZENML_STORE_URL=https://...",
        "-e", "ZENML_STORE_API_KEY=ZENKEY_...",
        "-e", "ZENML_ACTIVE_PROJECT_ID=...",
        "-e", "LOGLEVEL=WARNING",
        "-e", "NO_COLOR=1",
        "-e", "ZENML_LOGGING_COLORS_DISABLED=true",
        "-e", "ZENML_LOGGING_VERBOSITY=WARN",
        "-e", "ZENML_ENABLE_RICH_TRACEBACK=false",
        "-e", "PYTHONUNBUFFERED=1",
        "-e", "PYTHONIOENCODING=UTF-8",
        "zenmldocker/mcp-zenml:latest"
      ]
    }
  }
}

本地构建

从存储库根目录开始:

docker build -t zenmldocker/mcp-zenml:local .

运行本地构建的镜像:

docker run -i --rm \
  -e ZENML_STORE_URL="https://your-zenml-server.example.com" \
  -e ZENML_STORE_API_KEY="your-api-key" \
  zenmldocker/mcp-zenml:local

MCP 包(.mcpb)

此项目使用 MCP 包(.mcpb)——Anthropic 的桌面扩展(DXT)的继任者。MCP 包将整个 MCP 服务器(包括依赖项)打包成一个用户友好的配置文件。

关于重命名的注意事项:MCP 包替换了旧的 .dxt 格式。Claude Desktop 仍与现有的 .dxt 文件兼容,但我们现在发布了 mcp-zenml.mcpb 并建议今后使用它。

存储库根目录下的 mcp--zenml.mcpb 文件包含了运行 ZenML MCP 服务器所需的一切,消除了复杂的手动安装步骤的需求。这使得强大的 ZenML 集成对用户来说无需技术设置专业知识即可访问。

当您将 .mcpb 文件拖放到 Claude Desktop 的设置中时,它会自动处理:

  • 运行时依赖安装
  • 安全配置管理
  • 跨平台兼容性
  • 用户友好的设置过程

更多详情,请参阅 Anthropic 的桌面扩展(DXT)公告及其文档中的相关 MCP 包装指导:https://www.anthropic.com/engineering/desktop-extensions

发布到 Anthropic MCP 注册表

此 MCP 服务器发布到了官方的 Anthropic MCP 注册表,并且可以被兼容主机发现。在每次 标签发布 时,我们的 CI 通过注册表的 mcp-publisher CLI 使用 GitHub OIDC 更新注册表条目,因此您可以在支持注册表的地方(例如 Claude Desktop 的扩展目录)直接安装或发现 ZenML MCP 服务器

  • 始终更新:注册表条目从标签提交的 manifest.jsonserver.json 刷新。
  • 替代安装路径:您仍然可以通过打包的 .mcpb 包(见上文)或运行 Docker 镜像进行本地安装。

了解更多关于注册表的信息: