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

模型上下文协议 (MCP) 是一个开放协议,标准化了应用程序如何向大型语言模型 (LLMs) 提供上下文。它就像“AI 应用程序的 USB-C 接口”——提供了一种标准化的方法来连接 AI 模型到不同的数据源和工具。
MCP 遵循客户端-服务器架构,其中:
ZenML 是一个开源平台,用于构建和管理机器学习和人工智能管道。它提供了一个统一的界面来管理数据、模型和实验。
该服务器提供了 MCP 工具,以访问 ZenML 服务器的核心读取功能,提供了一种获取实时信息的方式:
它还允许您触发新的管道运行(如果有运行模板)。
注意:这是一个测试版/实验性发布。我们仍在探索人们将如何使用这种集成,因此我们欢迎您的反馈和建议!请加入我们的 Slack 社区,分享您的经验并帮助我们改进。
此项目包括自动化测试,以确保 MCP 服务器的功能:
uv run scripts/test_mcp_server.py server/zenml_server.py自动化测试验证:
您需要访问已部署的 ZenML 服务器。如果您没有,可以在 ZenML Pro 注册免费试用,我们将为您管理部署。
您还需要(可能)在本地安装 uv。更多信息,请参阅 uv 文档。我们推荐通过其安装脚本或通过 brew(如果您使用的是 Mac)进行安装。(从技术上讲,您不需要它,但它使安装和设置变得容易。)
您还需要将此存储库克隆到本地某个位置:
git clone https://github.com/zenml-io/mcp-zenml.git
MCP 配置文件是一个 JSON 文件,告诉 MCP 客户端如何连接到您的 MCP 服务器。不同的 MCP 客户端会使用或指定这个文件不同。两个常用的 MCP 客户端是 Claude Desktop 和 Cursor,我们提供了安装说明如下。
您需要按照以下格式指定您的 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 服务器时将运行的文件)。此文件位于此存储库的根目录下。您需要指定此文件的确切完整路径。https://d534d987a-zenml.cloudinfra.zenml.io。您可以自由更改运行 MCP 服务器 Python 文件的方式,但使用 uv 可能是最简单的选项,因为它为您处理环境和依赖安装。
您需要安装最新版本的 Claude Desktop。
您只需打开设置菜单,将此存储库根目录下的 mcp-zenml.mcpb 文件拖放到菜单中,它将引导您完成安装和设置过程。您需要添加您的 ZenML 服务器 URL 和 API 密钥。
注意:MCP 包(.mcpb)替换了旧的桌面扩展(.dxt)格式;现有的 .dxt 文件仍然可以在 Claude Desktop 中工作。
为了获得更好的 ZenML 工具结果体验,您可以配置 Claude 将 JSON 响应以更易读的格式显示。在 Claude Desktop 中,转到设置 → 配置文件,在“Claude 在响应中应考虑哪些个人偏好?”部分,添加类似以下内容(或使用这些确切的词!):
当使用返回 JSON 字符串的 ZenML 工具并被询问一个问题时,您可能希望考虑使用 Markdown 表格来总结结果或使其更容易查看!
这将鼓励 Claude 将 ZenML 工具输出格式化为 Markdown 表格,使信息更容易阅读和理解。
您需要安装 Cursor。
Cursor 与 Claude Desktop 的工作方式略有不同,您需要根据每个仓库指定配置文件。这意味着如果您想在多个仓库中使用 ZenML MCP 服务器,您需要在每个仓库中指定配置文件。
要为单个仓库设置它,您需要:
.cursor 文件夹mcp.json 文件,内容如上所述据我们的经验,有时即使它正在工作,也会显示红色错误指示器。您可以通过在 Cursor 聊天窗口中聊天来尝试一下。它会告诉您是否能够访问 ZenML 工具。
您可以作为 Docker 容器运行服务器。进程通过标准 I/O 通信,因此它会等待 MCP 客户端连接。通过环境变量传递您的 ZenML 凭证。
拉取最新的多架构镜像:
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
{
"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)——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
此 MCP 服务器发布到了官方的 Anthropic MCP 注册表,并且可以被兼容主机发现。在每次 标签发布 时,我们的 CI 通过注册表的 mcp-publisher CLI 使用 GitHub OIDC 更新注册表条目,因此您可以在支持注册表的地方(例如 Claude Desktop 的扩展目录)直接安装或发现 ZenML MCP 服务器。
manifest.json 和 server.json 刷新。.mcpb 包(见上文)或运行 Docker 镜像进行本地安装。了解更多关于注册表的信息: