Connects MCP clients to a ZenML deployment to read pipeline, run and stack data and trigger new pipeline runs.
Setup
Choose your client, copy the config, then fill in any required environment variables.
claude mcp add zenml --env ZENML_STORE_URL='<ZENML_STORE_URL>' --env ZENML_STORE_API_KEY='<ZENML_STORE_API_KEY>' --env LOGLEVEL='<LOGLEVEL>' --env NO_COLOR='<NO_COLOR>' --env PYTHONIOENCODING='<PYTHONIOENCODING>' --env PYTHONUNBUFFERED='<PYTHONUNBUFFERED>' -- docker run -i --rm -e ZENML_STORE_URL -e ZENML_STORE_API_KEY docker.io/zenmldocker/mcp-zenml:2.0.0~/.codex/config.toml
[mcp_servers.zenml]
command = "docker"
args = ["run", "-i", "--rm", "-e", "ZENML_STORE_URL", "-e", "ZENML_STORE_API_KEY", "docker.io/zenmldocker/mcp-zenml:2.0.0"]
env = { ZENML_STORE_URL = "<ZENML_STORE_URL>", ZENML_STORE_API_KEY = "<ZENML_STORE_API_KEY>", LOGLEVEL = "<LOGLEVEL>", NO_COLOR = "<NO_COLOR>", PYTHONIOENCODING = "<PYTHONIOENCODING>", PYTHONUNBUFFERED = "<PYTHONUNBUFFERED>" }
# codex mcp add zenml --env ZENML_STORE_URL='<ZENML_STORE_URL>' --env ZENML_STORE_API_KEY='<ZENML_STORE_API_KEY>' --env LOGLEVEL='<LOGLEVEL>' --env NO_COLOR='<NO_COLOR>' --env PYTHONIOENCODING='<PYTHONIOENCODING>' --env PYTHONUNBUFFERED='<PYTHONUNBUFFERED>' -- docker run -i --rm -e ZENML_STORE_URL -e ZENML_STORE_API_KEY docker.io/zenmldocker/mcp-zenml:2.0.0~/.cursor/mcp.json
{
"mcpServers": {
"zenml": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"ZENML_STORE_URL",
"-e",
"ZENML_STORE_API_KEY",
"docker.io/zenmldocker/mcp-zenml:2.0.0"
],
"env": {
"ZENML_STORE_URL": "<ZENML_STORE_URL>",
"ZENML_STORE_API_KEY": "<ZENML_STORE_API_KEY>",
"LOGLEVEL": "<LOGLEVEL>",
"NO_COLOR": "<NO_COLOR>",
"PYTHONIOENCODING": "<PYTHONIOENCODING>",
"PYTHONUNBUFFERED": "<PYTHONUNBUFFERED>"
}
}
}
}.vscode/mcp.json
{
"servers": {
"zenml": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"ZENML_STORE_URL",
"-e",
"ZENML_STORE_API_KEY",
"docker.io/zenmldocker/mcp-zenml:2.0.0"
],
"env": {
"ZENML_STORE_URL": "<ZENML_STORE_URL>",
"ZENML_STORE_API_KEY": "<ZENML_STORE_API_KEY>",
"LOGLEVEL": "<LOGLEVEL>",
"NO_COLOR": "<NO_COLOR>",
"PYTHONIOENCODING": "<PYTHONIOENCODING>",
"PYTHONUNBUFFERED": "<PYTHONUNBUFFERED>"
}
}
}
}~/.gemini/settings.json
{
"mcpServers": {
"zenml": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"ZENML_STORE_URL",
"-e",
"ZENML_STORE_API_KEY",
"docker.io/zenmldocker/mcp-zenml:2.0.0"
],
"env": {
"ZENML_STORE_URL": "<ZENML_STORE_URL>",
"ZENML_STORE_API_KEY": "<ZENML_STORE_API_KEY>",
"LOGLEVEL": "<LOGLEVEL>",
"NO_COLOR": "<NO_COLOR>",
"PYTHONIOENCODING": "<PYTHONIOENCODING>",
"PYTHONUNBUFFERED": "<PYTHONUNBUFFERED>"
}
}
}
}claude_desktop_config.json
{
"mcpServers": {
"zenml": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"ZENML_STORE_URL",
"-e",
"ZENML_STORE_API_KEY",
"docker.io/zenmldocker/mcp-zenml:2.0.0"
],
"env": {
"ZENML_STORE_URL": "<ZENML_STORE_URL>",
"ZENML_STORE_API_KEY": "<ZENML_STORE_API_KEY>",
"LOGLEVEL": "<LOGLEVEL>",
"NO_COLOR": "<NO_COLOR>",
"PYTHONIOENCODING": "<PYTHONIOENCODING>",
"PYTHONUNBUFFERED": "<PYTHONUNBUFFERED>"
}
}
}
}.trae/mcp.json
{
"mcpServers": {
"zenml": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"ZENML_STORE_URL",
"-e",
"ZENML_STORE_API_KEY",
"docker.io/zenmldocker/mcp-zenml:2.0.0"
],
"env": {
"ZENML_STORE_URL": "<ZENML_STORE_URL>",
"ZENML_STORE_API_KEY": "<ZENML_STORE_API_KEY>",
"LOGLEVEL": "<LOGLEVEL>",
"NO_COLOR": "<NO_COLOR>",
"PYTHONIOENCODING": "<PYTHONIOENCODING>",
"PYTHONUNBUFFERED": "<PYTHONUNBUFFERED>"
}
}
}
}Environment variables
ZENML_STORE_URLZENML_STORE_API_KEYLOGLEVELNO_COLORPYTHONIOENCODINGPYTHONUNBUFFERED
Replace the placeholders with your own credentials and keep them out of version control.