Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

io.github.zenml-io/mcp-zenml

OCI · DOCKER.IO/ZENMLDOCKER/MCP-ZENML:1.5.1 · SCANNED SEP 20

MCP server for ZenML - browse stacks, pipelines, runs, artifacts & trigger pipeline runs via API

0 this week 50 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security0
  • Malware scan not yet available for this package.Unverified
  • Known CVEs could not be checked: this artifact ships no SBOM, so there is no dependency list to read. Publishing one would let us assess it.Unverified
  • Install-script risk not yet assessed.Unverified
  • Dependency health could not be checked: this artifact ships no SBOM, so there is no dependency list to read. Publishing one would let us assess it.Unverified
Provenance & Transparency45
Schema Quality & AI Usability76
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 9124 tokens (~172/item across 53 items; 50 tools + 3 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management83
  • Stability observed for 25 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage71
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 0% of tool parameters carry a description.Fail
  • Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 50 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 52 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
  • Supports UI / widget rendering.Pass

Unverified: 1 category

A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

Install

How do I install the io.github.zenml-io/mcp-zenml server?

io.github.zenml-io/mcp-zenml runs locally as a container image, launched with docker run --rm -i docker.io/zenmldocker/mcp-zenml:1.5.1. Ready-made configuration for Claude, Cursor, VS Code, Codex and 3 more is on this page, copied from each client's own documentation.

oci · docker.io/zenmldocker/mcp-zenml:1.5.1

# add to Claude Code
claude mcp add zenml-io-mcp-zenml -- docker run --rm -i docker.io/zenmldocker/mcp-zenml:1.5.1
// .cursor/mcp.json
{
  "mcpServers": {
    "zenml-io-mcp-zenml": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "docker.io/zenmldocker/mcp-zenml:1.5.1"
      ]
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "zenml-io-mcp-zenml": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "docker.io/zenmldocker/mcp-zenml:1.5.1"
      ]
    }
  }
}
# add to Codex CLI
codex mcp add zenml-io-mcp-zenml -- docker run --rm -i docker.io/zenmldocker/mcp-zenml:1.5.1
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "zenml-io-mcp-zenml": {
      "type": "local",
      "command": [
        "docker",
        "run",
        "--rm",
        "-i",
        "docker.io/zenmldocker/mcp-zenml:1.5.1"
      ],
      "enabled": true
    }
  }
}
# ~/.hermes/config.yaml
mcp_servers:
  zenml-io-mcp-zenml:
    command: "docker"
    args: ["run", "--rm", "-i", "docker.io/zenmldocker/mcp-zenml:1.5.1"]
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "zenml-io-mcp-zenml": {
      "Transport": "stdio",
      "Command": "docker",
      "Arguments": [
        "run",
        "--rm",
        "-i",
        "docker.io/zenmldocker/mcp-zenml:1.5.1"
      ]
    }
  }
}
// mcp.json
{
  "mcpServers": {
    "zenml-io-mcp-zenml": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "docker.io/zenmldocker/mcp-zenml:1.5.1"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 19 Sept 26 −2
    • Stability: pass → 0.80 functional
  • 18 Sept 26 0
    • Stability: 0.97 → pass security
  • 17 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 93 to 97. That category is still filling its 30-day observation window: 28 days of observed history at the previous scan, 29 at this one. The score rises as the window fills, whether or not the server changes.

  • 14 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.

  • 13 Sept 26 0
    • Security disclosure: unverified → fail functional
  • 12 Sept 26 −2
    • Security disclosure: fail → unverified functional
    • Stability: pass → 0.80 functional
  • 11 Sept 26 0
    • Stability: 0.97 → pass security
  • 10 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 93 to 97. That category is still filling its 30-day observation window: 28 days of observed history at the previous scan, 29 at this one. The score rises as the window fills, whether or not the server changes.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 20 Sept 2026 · Analysed oci/docker.io/zenmldocker/mcp-zenml:1.5.1

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem oci
Reason No attestation published

Background: How many MCP packages publish verified provenance →

MCP tools · 50 exposed · ~8,955 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
diagnose_zenml_setup ~69

Diagnose ZenML MCP server setup (env vars, connectivity, auth, versions). Returns structured diagnostics about the server's configuration and connectivity. This tool works even when the ZenML SDK is not installed or environment variables are missing - use it to troubleshoot setup issues.

Input schema present but exposes no named parameters.

Structured output declared, but exposes no named fields.

No examples provided.

easter_egg ~38

Returns the ZenML MCP easter egg. Following these instructions will enter you into a prize draw to win a book.

Input schema present but exposes no named parameters.

NameTypeReqDescription
resultstringyes

No examples provided.

get_active_project ~45

Get the currently active project. Projects are organizational containers for ZenML resources. Most SDK methods are project-scoped, and this tool returns the default project context.

Input schema present but exposes no named parameters.

Structured output declared, but exposes no named fields.

No examples provided.

get_active_user ~15

Get the currently active user.

Input schema present but exposes no named parameters.

Structured output declared, but exposes no named fields.

No examples provided.

get_artifact_version ~65

Get detailed information about a specific artifact version. Args: name_id_or_prefix: The name, ID or prefix of the artifact version: Optional specific version (defaults to latest)

NameTypeReqDescription
name_id_or_prefixstringyes
version

Structured output declared, but exposes no named fields.

No examples provided.

get_build ~107

Get detailed information about a specific pipeline build. Builds contain image info, code embedding, and stack checksums that explain reproducibility and infrastructure setup for pipeline runs. Args: id_or_prefix: The ID or prefix of the build to retrieve project: Optional project scope (defaults to active project) hydrate: Whether to hydrate the response with additional details

NameTypeReqDescription
hydrateboolean
id_or_prefixstringyes
project

Structured output declared, but exposes no named fields.

No examples provided.

get_deployment ~115

Get detailed information about a specific deployment. Deployments represent the runtime state of what's currently serving/provisioned, including status, URL, and metadata. They tie back to snapshots. Args: name_id_or_prefix: The name, ID or prefix of the deployment to retrieve project: Optional project scope (defaults to active project) hydrate: Whether to hydrate the response with additional details

NameTypeReqDescription
hydrateboolean
name_id_or_prefixstringyes
project

Structured output declared, but exposes no named fields.

No examples provided.

get_deployment_logs ~160

Get logs for a specific deployment. Retrieves logs from the deployment's underlying infrastructure. This is useful for debugging deployment issues or monitoring deployment behavior. Note: Log availability depends on the deployer plugin being installed and the deployment infrastructure supporting log retrieval. Args: name_id_or_prefix: The name, ID or prefix of the deployment project: Optional project scope (defaults to active project) tail: Number of recent log lines to retrieve (default: 100, max recommended: 500) Returns: Dict with 'logs' (string) and metadata about truncation if applicable

NameTypeReqDescription
name_id_or_prefixstringyes
project
tailinteger

Structured output declared, but exposes no named fields.

No examples provided.

get_flavor ~49

Get detailed information about a specific flavor. Args: name_id_or_prefix: The name, ID or prefix of the flavor to retrieve

NameTypeReqDescription
name_id_or_prefixstringyes

Structured output declared, but exposes no named fields.

No examples provided.

get_model ~51

Get a model by name, ID, or prefix. Args: name_id_or_prefix: The name, ID or prefix of the model to retrieve

NameTypeReqDescription
name_id_or_prefixstringyes

Structured output declared, but exposes no named fields.

No examples provided.

get_model_version ~88

Get a model version by name, ID, or prefix. Args: model_name_or_id: The name, ID or prefix of the model to retrieve model_version_name_or_number_or_id: The name, ID or prefix of the model version to retrieve

NameTypeReqDescription
model_name_or_idstringyes
model_version_name_or_number_or_idstringyes

Structured output declared, but exposes no named fields.

No examples provided.

get_pipeline_details ~71

Get detailed information about a specific pipeline. Args: name_id_or_prefix: The name, ID or prefix of the pipeline to retrieve num_runs: The number of runs to get the status of

NameTypeReqDescription
name_id_or_prefixstringyes
num_runsinteger

Structured output declared, but exposes no named fields.

No examples provided.

get_pipeline_run ~54

Get a pipeline run by name, ID, or prefix. Args: name_id_or_prefix: The name, ID or prefix of the pipeline run to retrieve

NameTypeReqDescription
name_id_or_prefixstringyes

Structured output declared, but exposes no named fields.

No examples provided.

get_project ~67

Get detailed information about a specific project. Args: name_id_or_prefix: The name, ID or prefix of the project to retrieve hydrate: Whether to hydrate the response with additional details

NameTypeReqDescription
hydrateboolean
name_id_or_prefixstringyes

Structured output declared, but exposes no named fields.

No examples provided.

get_run_step ~48

Get a run step by name, ID, or prefix. Args: step_run_id: The ID of the run step to retrieve

NameTypeReqDescription
step_run_idstringyes

Structured output declared, but exposes no named fields.

No examples provided.

get_run_template ~98

Get a run template for a pipeline. ⚠️ DEPRECATED: Run Templates are deprecated in ZenML. Use `get_snapshot` instead. Snapshots are the modern replacement for run templates and provide the same functionality with better integration into the ZenML ecosystem. Args: name_id_or_prefix: The name, ID or prefix of the run template to retrieve

NameTypeReqDescription
name_id_or_prefixstringyes

Structured output declared, but exposes no named fields.

No examples provided.

get_schedule ~47

Get a schedule for a pipeline. Args: name_id_or_prefix: The name, ID or prefix of the schedule to retrieve

NameTypeReqDescription
name_id_or_prefixstringyes

Structured output declared, but exposes no named fields.

No examples provided.

get_service ~48

Get detailed information about a specific service. Args: name_id_or_prefix: The name, ID or prefix of the service to retrieve

NameTypeReqDescription
name_id_or_prefixstringyes

Structured output declared, but exposes no named fields.

No examples provided.

get_service_connector ~54

Get a service connector by name, ID, or prefix. Args: name_id_or_prefix: The name, ID or prefix of the service connector to retrieve

NameTypeReqDescription
name_id_or_prefixstringyes

Structured output declared, but exposes no named fields.

No examples provided.

get_snapshot ~178

Get detailed information about a specific snapshot. Snapshots are frozen pipeline configurations that link pipeline + stack + build + schedule + tags together. They represent "what exactly ran/is deployed" and are the modern replacement for Run Templates. Args: name_id_or_prefix: The name, ID or prefix of the snapshot to retrieve pipeline_name_or_id: Optional pipeline context to narrow the search project: Optional project scope (defaults to active project) include_config_schema: Whether to include the config schema in the response (can produce large payloads) hydrate: Whether to hydrate the response with additional details

NameTypeReqDescription
hydrateboolean
include_config_schema
name_id_or_prefixstringyes
pipeline_name_or_id
project

Structured output declared, but exposes no named fields.

No examples provided.

get_stack ~48

Get detailed information about a specific stack. Args: name_id_or_prefix: The name, ID or prefix of the stack to retrieve

NameTypeReqDescription
name_id_or_prefixstringyes

Structured output declared, but exposes no named fields.

No examples provided.

get_stack_component ~51

Get detailed information about a specific stack component. Args: name_id_or_prefix: The name, ID or prefix of the stack component to retrieve

NameTypeReqDescription
name_id_or_prefixstringyes

Structured output declared, but exposes no named fields.

No examples provided.

get_step_code ~42

Get the code for a step. Args: step_run_id: The ID of the step to retrieve

NameTypeReqDescription
step_run_idstringyes
NameTypeReqDescription
resultstringyes

No examples provided.

get_step_logs ~47

Get the logs for a specific step run. Args: step_run_id: The ID of the step run to get logs for

NameTypeReqDescription
step_run_idstringyes

Structured output declared, but exposes no named fields.

No examples provided.

get_tag ~95

Get detailed information about a specific tag. Tags are cross-cutting metadata labels for discovery (prod, staging, latest, candidate, etc.). Many ZenML entities can be tagged. Args: tag_name_or_id: The name or ID of the tag to retrieve hydrate: Whether to hydrate the response with additional details

NameTypeReqDescription
hydrateboolean
tag_name_or_idstringyes

Structured output declared, but exposes no named fields.

No examples provided.

get_user ~48

Get detailed information about a specific user. Args: name_id_or_prefix: The name, ID or prefix of the user to retrieve

NameTypeReqDescription
name_id_or_prefixstringyes

Structured output declared, but exposes no named fields.

No examples provided.

list_artifact_versions ~291

List all versions of a specific artifact. Returns paginated results with 'items', 'total', 'page', 'size' fields. Filter syntax: String params support 'op:value' operators (gte, lte, gt, lt, equals, notequals, contains, startswith, endswith, oneof, in). Datetime format: 'YYYY-MM-DD HH:MM:SS' (e.g. gte:2026-02-01 00:00:00). Args: artifact_name_or_id: The name or UUID of the artifact sort_by: Sort field and direction (e.g. desc:created) page: Page number (1-indexed) size: Results per page (keep small — version payloads are large) logical_operator: Combine filters with 'and' or 'or' created: Filter by creation time (e.g. gte:2026-02-01 00:00:00) updated: Filter by update time (same syntax as created) tag: Filter by tag name

NameTypeReqDescription
artifact_name_or_idstringyes
created
logical_operatorstring
pageinteger
sizeinteger
sort_bystring
tag
updated

Structured output declared, but exposes no named fields.

No examples provided.

list_artifacts ~281

List all artifacts in the ZenML workspace. Returns paginated results with 'items', 'total', 'page', 'size' fields. Filter syntax: String params support 'op:value' operators (gte, lte, gt, lt, equals, notequals, contains, startswith, endswith, oneof, in). Datetime format: 'YYYY-MM-DD HH:MM:SS' (e.g. gte:2026-02-01 00:00:00). Args: sort_by: Sort field and direction (e.g. desc:created, asc:name) page: Page number (1-indexed) size: Results per page (keep small — artifact payloads are large) logical_operator: Combine filters with 'and' or 'or' created: Filter by creation time (e.g. gte:2026-02-01 00:00:00) updated: Filter by update time (same syntax as created) name: Filter by artifact name (e.g. contains:model)

NameTypeReqDescription
created
logical_operatorstring
name
pageinteger
sizeinteger
sort_bystring
tag
updated

Structured output declared, but exposes no named fields.

No examples provided.

list_builds ~355

List all pipeline builds in the ZenML workspace. Builds contain image info, code embedding, and stack checksums for reproducibility and infrastructure debugging. Returns paginated results with 'items', 'total', 'page', 'size' fields. Filter syntax: String params support 'op:value' operators (gte, lte, gt, lt, equals, notequals, contains, startswith, endswith, oneof, in). Datetime format: 'YYYY-MM-DD HH:MM:SS' (e.g. gte:2026-02-01 00:00:00). Args: sort_by: Sort field and direction (e.g. desc:created) page: Page number (1-indexed) size: Results per page logical_operator: Combine filters with 'and' or 'or' created: Filter by creation time (e.g. gte:2026-02-01 00:00:00) updated: Filter by update time (same syntax as created) pipeline_id: Filter by pipeline UUID stack_id: Filter by stack UUID is_local: If True, only local builds (not runnable from server) contains_code: If True, only builds with embedded code project: Project scope (defaults to active project)

NameTypeReqDescription
contains_code
created
is_local
logical_operatorstring
pageinteger
pipeline_id
project
sizeinteger
sort_bystring
stack_id
updated

Structured output declared, but exposes no named fields.

No examples provided.

list_deployments ~374

List all deployments in the ZenML workspace. Deployments show what's currently serving/provisioned with runtime status. Returns paginated results with 'items', 'total', 'page', 'size' fields. Filter syntax: String params support 'op:value' operators (gte, lte, gt, lt, equals, notequals, contains, startswith, endswith, oneof, in). Datetime format: 'YYYY-MM-DD HH:MM:SS' (e.g. gte:2026-02-01 00:00:00). Args: sort_by: Sort field and direction (e.g. desc:created) page: Page number (1-indexed) size: Results per page logical_operator: Combine filters with 'and' or 'or' created: Filter by creation time (e.g. gte:2026-02-01 00:00:00) updated: Filter by update time (same syntax as created) name: Filter by deployment name (e.g. contains:prod) status: Filter by status (e.g. oneof:running,error) url: Filter by deployment URL pipeline: Filter by pipeline name or UUID snapshot_id: Filter by source snapshot UUID tag: Filter by tag name project: Project scope (defaults to active project)

NameTypeReqDescription
created
logical_operatorstring
name
pageinteger
pipeline
project
sizeinteger
snapshot_id
sort_bystring
status
tag
updated
url

Structured output declared, but exposes no named fields.

No examples provided.

list_flavors ~236

List all flavors in the ZenML workspace. Returns paginated results with 'items', 'total', 'page', 'size' fields. Filter syntax: String params support 'op:value' operators (gte, lte, gt, lt, equals, notequals, contains, startswith, endswith, oneof, in). Args: sort_by: Sort field and direction (e.g. desc:created, asc:name) page: Page number (1-indexed) size: Results per page logical_operator: Combine filters with 'and' or 'or' id: Filter by flavor UUID created: Filter by creation time (e.g. gte:2026-02-01 00:00:00) updated: Filter by update time (same syntax as created)

NameTypeReqDescription
created
id
integration
logical_operatorstring
name
pageinteger
sizeinteger
sort_bystring
updated

Structured output declared, but exposes no named fields.

No examples provided.

list_model_versions ~330

List all model versions for a model. Returns paginated results with 'items', 'total', 'page', 'size' fields. Filter syntax: String params support 'op:value' operators (gte, lte, gt, lt, equals, notequals, contains, startswith, endswith, oneof, in). Datetime format: 'YYYY-MM-DD HH:MM:SS' (e.g. gte:2026-02-01 00:00:00). Args: model_name_or_id: The name or UUID of the model sort_by: Sort field and direction (e.g. desc:created) page: Page number (1-indexed) size: Results per page logical_operator: Combine filters with 'and' or 'or' created: Filter by creation time (e.g. gte:2026-02-01 00:00:00) updated: Filter by update time (same syntax as created) name: Filter by version name number: Filter by version number stage: Filter by stage (e.g. oneof:production,staging) tag: Filter by tag name

NameTypeReqDescription
created
logical_operatorstring
model_name_or_idstringyes
name
number
pageinteger
sizeinteger
sort_bystring
stage
tag
updated

Structured output declared, but exposes no named fields.

No examples provided.

list_models ~287

List all models in the ZenML workspace. Returns paginated results with 'items', 'total', 'page', 'size' fields. Filter syntax: String params support 'op:value' operators (gte, lte, gt, lt, equals, notequals, contains, startswith, endswith, oneof, in). Datetime format: 'YYYY-MM-DD HH:MM:SS' (e.g. gte:2026-02-01 00:00:00). Args: sort_by: Sort field and direction (e.g. desc:created, asc:name) page: Page number (1-indexed) size: Results per page logical_operator: Combine filters with 'and' or 'or' created: Filter by creation time (e.g. gte:2026-02-01 00:00:00) updated: Filter by update time (same syntax as created) name: Filter by model name (e.g. contains:bert) tag: Filter by tag name (e.g. contains:prod)

NameTypeReqDescription
created
logical_operatorstring
name
pageinteger
sizeinteger
sort_bystring
tag
updated

Structured output declared, but exposes no named fields.

No examples provided.

list_pipeline_runs ~531

List all pipeline runs in the ZenML workspace. Returns paginated results with 'items', 'total', 'page', 'size' fields. The 'total' field gives the global count matching your filters — useful for answering 'how many runs?' without fetching all pages. Filter syntax: String params support 'op:value' operators (gte, lte, gt, lt, equals, notequals, contains, startswith, endswith, oneof, in). Datetime format: 'YYYY-MM-DD HH:MM:SS' (e.g. gte:2026-02-01 00:00:00). Date range: 'in:2026-02-01 00:00:00,2026-02-07 23:59:59'. Args: sort_by: Sort field and direction (e.g. desc:created, asc:start_time) page: Page number (1-indexed) size: Results per page (keep small for runs — they have large payloads) logical_operator: Combine filters with 'and' or 'or' created: Filter by creation time (e.g. gte:2026-02-01 00:00:00) updated: Filter by update time (same syntax as created) name: Filter by run name (e.g. contains:training) pipeline_id: Filter by pipeline UUID pipeline_name: Filter by pipeline name (e.g. contains:my_pipeline) stack_id: Filter by stack UUID status: Filter by run status (e.g. oneof:completed,failed). Values: initializing, failed, completed, running, cached start_time: Filter by run start time (e.g. gte:2026-02-01 00:00:00) end_time: Filter by run end time (e.g. lte:2026-02-07 23:59:59) stack: Filter by stack name stack_component: Filter by stack component name

NameTypeReqDescription
created
end_time
logical_operatorstring
name
pageinteger
pipeline_id
pipeline_name
sizeinteger
sort_bystring
stack
stack_component
stack_id
start_time
status
updated

Structured output declared, but exposes no named fields.

No examples provided.

list_pipelines ~226

List all pipelines in the ZenML workspace. Returns paginated results with 'items', 'total', 'page', 'size' fields. Filter syntax: String params support 'op:value' operators (gte, lte, gt, lt, equals, notequals, contains, startswith, endswith, oneof, in). Datetime format: 'YYYY-MM-DD HH:MM:SS' (e.g. gte:2026-02-01 00:00:00). Args: sort_by: Sort field and direction (e.g. desc:created, asc:name) page: Page number (1-indexed) size: Results per page created: Filter by creation time (e.g. gte:2026-02-01 00:00:00) updated: Filter by update time (same syntax as created)

NameTypeReqDescription
created
pageinteger
sizeinteger
sort_bystring
updated

Structured output declared, but exposes no named fields.

No examples provided.

list_projects ~290

List all projects in the ZenML workspace. Returns paginated results with 'items', 'total', 'page', 'size' fields. The 'total' field gives the global count matching your filters. Filter syntax: String params support 'op:value' operators (gte, lte, gt, lt, equals, notequals, contains, startswith, endswith, oneof, in). Datetime format: 'YYYY-MM-DD HH:MM:SS' (e.g. gte:2026-02-01 00:00:00). Args: sort_by: Sort field and direction (e.g. desc:created, asc:name) page: Page number (1-indexed) size: Results per page logical_operator: Combine filters with 'and' or 'or' created: Filter by creation time (e.g. gte:2026-02-01 00:00:00) updated: Filter by update time (same syntax as created) name: Filter by project name display_name: Filter by project display name

NameTypeReqDescription
created
display_name
logical_operatorstring
name
pageinteger
sizeinteger
sort_bystring
updated

Structured output declared, but exposes no named fields.

No examples provided.

list_run_steps ~417

List all run steps in the ZenML workspace. Returns paginated results with 'items', 'total', 'page', 'size' fields. The 'total' field gives the global count matching your filters. Filter syntax: String params support 'op:value' operators (gte, lte, gt, lt, equals, notequals, contains, startswith, endswith, oneof, in). Datetime format: 'YYYY-MM-DD HH:MM:SS' (e.g. gte:2026-02-01 00:00:00). Args: sort_by: Sort field and direction (e.g. desc:created, asc:start_time) page: Page number (1-indexed) size: Results per page (keep small — step payloads are large) logical_operator: Combine filters with 'and' or 'or' created: Filter by creation time (e.g. gte:2026-02-01 00:00:00) updated: Filter by update time (same syntax as created) name: Filter by step name (e.g. contains:train) status: Filter by step status (e.g. oneof:completed,failed). Values: initializing, failed, completed, running, cached start_time: Filter by step start time (e.g. gte:2026-02-01 00:00:00) end_time: Filter by step end time (e.g. lte:2026-02-07 23:59:59) pipeline_run_id: Filter by pipeline run UUID

NameTypeReqDescription
created
end_time
logical_operatorstring
name
pageinteger
pipeline_run_id
sizeinteger
sort_bystring
start_time
status
updated

Structured output declared, but exposes no named fields.

No examples provided.

list_run_templates ~288

List all run templates in the ZenML workspace. DEPRECATED: Use `list_snapshots` instead. For runnable configs, use `list_snapshots(runnable=True)`. Returns paginated results with 'items', 'total', 'page', 'size' fields. Filter syntax: String params support 'op:value' operators (gte, lte, gt, lt, equals, notequals, contains, startswith, endswith, oneof, in). Datetime format: 'YYYY-MM-DD HH:MM:SS' (e.g. gte:2026-02-01 00:00:00). Args: sort_by: Sort field and direction (e.g. desc:created, asc:name) page: Page number (1-indexed) size: Results per page created: Filter by creation time (e.g. gte:2026-02-01 00:00:00) updated: Filter by update time (same syntax as created) name: Filter by template name (e.g. contains:train) tag: Filter by tag name

NameTypeReqDescription
created
name
pageinteger
sizeinteger
sort_bystring
tag
updated

Structured output declared, but exposes no named fields.

No examples provided.

list_schedules ~304

List all schedules in the ZenML workspace. Returns paginated results with 'items', 'total', 'page', 'size' fields. Filter syntax: String params support 'op:value' operators (gte, lte, gt, lt, equals, notequals, contains, startswith, endswith, oneof, in). Datetime format: 'YYYY-MM-DD HH:MM:SS' (e.g. gte:2026-02-01 00:00:00). Args: sort_by: Sort field and direction (e.g. desc:created, asc:name) page: Page number (1-indexed) size: Results per page created: Filter by creation time (e.g. gte:2026-02-01 00:00:00) updated: Filter by update time (same syntax as created) name: Filter by schedule name (e.g. contains:daily) pipeline_id: Filter by pipeline UUID orchestrator_id: Filter by orchestrator UUID active: Filter by active status (True/False)

NameTypeReqDescription
active
created
logical_operatorstring
name
orchestrator_id
pageinteger
pipeline_id
sizeinteger
sort_bystring
updated

Structured output declared, but exposes no named fields.

No examples provided.

list_secrets ~274

List all secrets in the ZenML workspace (names only, no values). Returns paginated results with 'items', 'total', 'page', 'size' fields. Filter syntax: String params support 'op:value' operators (gte, lte, gt, lt, equals, notequals, contains, startswith, endswith, oneof, in). Datetime format: 'YYYY-MM-DD HH:MM:SS' (e.g. gte:2026-02-01 00:00:00). Args: sort_by: Sort field and direction (e.g. desc:created, asc:name) page: Page number (1-indexed) size: Results per page logical_operator: Combine filters with 'and' or 'or' created: Filter by creation time (e.g. gte:2026-02-01 00:00:00) updated: Filter by update time (same syntax as created) name: Filter by secret name (e.g. contains:api)

NameTypeReqDescription
created
logical_operatorstring
name
pageinteger
sizeinteger
sort_bystring
updated

Structured output declared, but exposes no named fields.

No examples provided.

list_service_connectors ~292

List all service connectors in the ZenML workspace. Returns paginated results with 'items', 'total', 'page', 'size' fields. Filter syntax: String params support 'op:value' operators (gte, lte, gt, lt, equals, notequals, contains, startswith, endswith, oneof, in). Datetime format: 'YYYY-MM-DD HH:MM:SS' (e.g. gte:2026-02-01 00:00:00). Args: sort_by: Sort field and direction (e.g. desc:created, asc:name) page: Page number (1-indexed) size: Results per page logical_operator: Combine filters with 'and' or 'or' created: Filter by creation time (e.g. gte:2026-02-01 00:00:00) updated: Filter by update time (same syntax as created) name: Filter by connector name (e.g. contains:aws) connector_type: Filter by connector type (e.g. contains:gcp)

NameTypeReqDescription
connector_type
created
logical_operatorstring
name
pageinteger
sizeinteger
sort_bystring
updated

Structured output declared, but exposes no named fields.

No examples provided.

list_services ~360

List all services in the ZenML workspace. Returns paginated results with 'items', 'total', 'page', 'size' fields. Filter syntax: String params support 'op:value' operators (gte, lte, gt, lt, equals, notequals, contains, startswith, endswith, oneof, in). Datetime format: 'YYYY-MM-DD HH:MM:SS' (e.g. gte:2026-02-01 00:00:00). Args: sort_by: Sort field and direction (e.g. desc:created) page: Page number (1-indexed) size: Results per page logical_operator: Combine filters with 'and' or 'or' id: Filter by service UUID created: Filter by creation time (e.g. gte:2026-02-01 00:00:00) updated: Filter by update time (same syntax as created) running: Whether the service is running service_name: The name of the service pipeline_name: The name of the pipeline pipeline_run_id: The ID of the pipeline run pipeline_step_name: The name of the pipeline step model_version_id: The ID of the model version

NameTypeReqDescription
created
id
logical_operatorstring
model_version_id
pageinteger
pipeline_name
pipeline_run_id
pipeline_step_name
running
service_name
sizeinteger
sort_bystring
updated

Structured output declared, but exposes no named fields.

No examples provided.

list_snapshots ~417

List all snapshots in the ZenML workspace. Snapshots are frozen pipeline configurations (replacing deprecated Run Templates). Use `runnable=True` to find snapshots that can be triggered. Returns paginated results with 'items', 'total', 'page', 'size' fields. Filter syntax: String params support 'op:value' operators (gte, lte, gt, lt, equals, notequals, contains, startswith, endswith, oneof, in). Datetime format: 'YYYY-MM-DD HH:MM:SS' (e.g. gte:2026-02-01 00:00:00). Args: sort_by: Sort field and direction (e.g. desc:created, asc:name) page: Page number (1-indexed) size: Results per page logical_operator: Combine filters with 'and' or 'or' created: Filter by creation time (e.g. gte:2026-02-01 00:00:00) updated: Filter by update time (same syntax as created) name: Filter by snapshot name (e.g. contains:prod) pipeline: Filter by pipeline name or UUID runnable: If True, only return snapshots that can be triggered deployable: If True, only return deployable snapshots deployed: If True, only return currently deployed snapshots tag: Filter by tag name project: Project scope (defaults to active project) named_only: Only named snapshots (default True to skip internal ones)

NameTypeReqDescription
created
deployable
deployed
logical_operatorstring
name
named_only
pageinteger
pipeline
project
runnable
sizeinteger
sort_bystring
tag
updated

Structured output declared, but exposes no named fields.

No examples provided.

list_stack_components ~304

List all stack components in the ZenML workspace. Returns paginated results with 'items', 'total', 'page', 'size' fields. Filter syntax: String params support 'op:value' operators (gte, lte, gt, lt, equals, notequals, contains, startswith, endswith, oneof, in). Datetime format: 'YYYY-MM-DD HH:MM:SS' (e.g. gte:2026-02-01 00:00:00). Args: sort_by: Sort field and direction (e.g. desc:created, asc:name) page: Page number (1-indexed) size: Results per page logical_operator: Combine filters with 'and' or 'or' created: Filter by creation time (e.g. gte:2026-02-01 00:00:00) updated: Filter by update time (same syntax as created) name: Filter by component name (e.g. contains:s3) flavor: Filter by flavor name (e.g. contains:aws) stack_id: Filter by stack UUID

NameTypeReqDescription
created
flavor
logical_operatorstring
name
pageinteger
sizeinteger
sort_bystring
stack_id
updated

Structured output declared, but exposes no named fields.

No examples provided.

list_stacks ~268

List all stacks in the ZenML workspace. Returns paginated results with 'items', 'total', 'page', 'size' fields. Filter syntax: String params support 'op:value' operators (gte, lte, gt, lt, equals, notequals, contains, startswith, endswith, oneof, in). Datetime format: 'YYYY-MM-DD HH:MM:SS' (e.g. gte:2026-02-01 00:00:00). Args: sort_by: Sort field and direction (e.g. desc:created, asc:name) page: Page number (1-indexed) size: Results per page logical_operator: Combine filters with 'and' or 'or' created: Filter by creation time (e.g. gte:2026-02-01 00:00:00) updated: Filter by update time (same syntax as created) name: Filter by stack name (e.g. contains:prod)

NameTypeReqDescription
created
logical_operatorstring
name
pageinteger
sizeinteger
sort_bystring
updated

Structured output declared, but exposes no named fields.

No examples provided.

list_tags ~331

List all tags in the ZenML workspace. Tags enable queries like 'show me all prod deployments' and help organize resources. Exclusive tags can only be applied once per entity. Returns paginated results with 'items', 'total', 'page', 'size' fields. Filter syntax: String params support 'op:value' operators (gte, lte, gt, lt, equals, notequals, contains, startswith, endswith, oneof, in). Datetime format: 'YYYY-MM-DD HH:MM:SS' (e.g. gte:2026-02-01 00:00:00). Args: sort_by: Sort field and direction (e.g. desc:created, asc:name) page: Page number (1-indexed) size: Results per page logical_operator: Combine filters with 'and' or 'or' created: Filter by creation time (e.g. gte:2026-02-01 00:00:00) updated: Filter by update time (same syntax as created) name: Filter by tag name (e.g. contains:prod) exclusive: If True, only return exclusive tags resource_type: Filter by resource type the tag applies to

NameTypeReqDescription
created
exclusive
logical_operatorstring
name
pageinteger
resource_type
sizeinteger
sort_bystring
updated

Structured output declared, but exposes no named fields.

No examples provided.

list_users ~274

List all users in the ZenML workspace. Returns paginated results with 'items', 'total', 'page', 'size' fields. The 'total' field gives the global count matching your filters. Filter syntax: String params support 'op:value' operators (gte, lte, gt, lt, equals, notequals, contains, startswith, endswith, oneof, in). Datetime format: 'YYYY-MM-DD HH:MM:SS' (e.g. gte:2026-02-01 00:00:00). Args: sort_by: Sort field and direction (e.g. desc:created, asc:name) page: Page number (1-indexed) size: Results per page logical_operator: Combine filters with 'and' or 'or' created: Filter by creation time (e.g. gte:2026-01-01 00:00:00) updated: Filter by update time (same syntax as created) active: Filter by active status

NameTypeReqDescription
active
created
logical_operatorstring
pageinteger
sizeinteger
sort_bystring
updated

Structured output declared, but exposes no named fields.

No examples provided.

open_pipeline_run_dashboard ~63

Open an interactive dashboard of recent ZenML pipeline runs. The dashboard shows pipeline runs with status indicators, expandable step details, filtering, and drill-down into step logs — all in an interactive UI. The dashboard fetches its own data dynamically.

Input schema present but exposes no named parameters.

NameTypeReqDescription
resultstringyes

No examples provided.

open_run_activity_chart ~58

Open an interactive chart showing pipeline run activity over the last 30 days. Shows a bar chart with daily run counts, hover tooltips, and status breakdown (completed in green, failed in red, other in amber).

Input schema present but exposes no named parameters.

NameTypeReqDescription
resultstringyes

No examples provided.

trigger_pipeline ~306

Trigger a pipeline to run from the server. Args: pipeline_name_or_id: The name or ID of the pipeline to trigger snapshot_name_or_id: The name or ID of a specific snapshot to run (preferred) stack_name_or_id: Optional stack override for the run template_id: ⚠️ DEPRECATED - Use `snapshot_name_or_id` instead. The ID of a run template to use. Run Templates are deprecated and will be removed in a future version. Usage examples: * Run the latest runnable snapshot for a pipeline: ```python trigger_pipeline(pipeline_name_or_id=<NAME>) ``` * Run the latest runnable snapshot for a pipeline on a specific stack: ```python trigger_pipeline( pipeline_name_or_id=<NAME>, stack_name_or_id=<STACK_NAME_OR_ID> ) ``` * Run a specific snapshot (RECOMMENDED): ```python trigger_pipeline( pipeline_name_or_id=<NAME>, snapshot_name_or_id=<SNAPSHOT_NAME_OR_ID> ) ``` * Run a specific template (DEPRECATED - use snapshot_name_or_id instead): ```python trigger_pipeline(pipeline_name_or_id=<NAME>, template_id=<ID>) ```

NameTypeReqDescription
pipeline_name_or_idstringyes
snapshot_name_or_id
stack_name_or_id
template_id

Structured output declared, but exposes no named fields.

No examples provided.

Common questions

What is the io.github.zenml-io/mcp-zenml server?

io.github.zenml-io/mcp-zenml is listed in the public MCP registry as io.github.zenml-io/mcp-zenml. MCP server for ZenML - browse stacks, pipelines, runs, artifacts & trigger pipeline runs via API. This page covers its container image (docker.io/zenmldocker/mcp-zenml:1.5.1).

Is the io.github.zenml-io/mcp-zenml server safe to use?

io.github.zenml-io/mcp-zenml scores 50 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the io.github.zenml-io/mcp-zenml server expose?

io.github.zenml-io/mcp-zenml exposes 50 tools: diagnose_zenml_setup, get_step_logs, list_users, get_user, get_active_user, and 45 more. Their descriptions and schemas cost roughly 8,955 tokens of context every time the server is loaded.

Is the io.github.zenml-io/mcp-zenml server still maintained?

io.github.zenml-io/mcp-zenml is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the io.github.zenml-io/mcp-zenml server under?

io.github.zenml-io/mcp-zenml declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.