Skip to content

Releases: zenml-io/mcp-zenml

v1.5.1

Choose a tag to compare

@strickvl strickvl released this 16 Mar 14:11

What's Changed

  • chore(deps): bump actions/setup-python from 5.6.0 to 6.2.0 in the all-actions group by @dependabot[bot] in #37
  • chore(deps): bump the all-actions group across 1 directory with 2 updates by @dependabot[bot] in #44
  • Improve analytics reliability and error handling by @strickvl in #38

Full Changelog: v1.5.0...v1.5.1

v1.5.0

Choose a tag to compare

@strickvl strickvl released this 28 Jan 13:35

MCP Apps 🎨

This release introduces MCP Apps — interactive HTML UIs that render directly inside supported MCP clients (VS Code Insiders, Goose, and others that support the MCP Apps specification).

New Apps

  • Pipeline Runs Dashboard (open_pipeline_run_dashboard) — Interactive table of recent pipeline runs with status indicators, expandable step details with logs, server-side pagination, and filtering by pipeline name or status
apps-example-1
  • Run Activity Chart (open_run_activity_chart) — SVG bar chart showing daily pipeline run counts over the last 30 days with status-colored stacked bars (green = completed, red = failed, amber = other) and hover tooltips
apps-example-2

Both apps are self-contained single-file HTML apps using the @modelcontextprotocol/ext-apps SDK. They fetch data dynamically from the MCP server via callServerTool().

Security Hardening

  • XSS prevention: status labels escaped in dashboard summary, error rendering uses textContent instead of innerHTML, copy buttons use data-* attributes instead of inline handlers
  • Timer leak prevention: callServerToolSafe() cleans up setTimeout via finally blocks
  • Circuit breaker recovery: retry button properly resets serverToolCallsEnabled and consecutiveFailures
  • DNS rebinding protection: requires explicit --disable-dns-rebinding-protection flag for HTTP transport

Other Changes

  • ZenMLFastMCP subclass for injecting _meta (including ui.resourceUri) on tools and resources
  • list_apps resource for discovering available MCP Apps
  • Dockerfile updated to include server/ui/ directory
  • Smoke tests cover both new open_* tools

Full Changelog: v1.4.0...v1.5.0

What's Changed

  • Add MCP Apps: Pipeline Runs Dashboard and Run Activity Chart by @strickvl in #36

Full Changelog: v1.4.0...v1.5.0

v1.4.0

Choose a tag to compare

@strickvl strickvl released this 27 Jan 13:03

Structured Tool Outputs

All MCP tools now return structured output via the MCP structuredContent channel, with auto-generated outputSchema for each tool. Previously, tools returned JSON-encoded strings as plain text — valid but not machine-parseable without extra deserialization.

What this means in practice:

  • MCP clients that support structuredContent (the current spec) get typed, schema-validated JSON objects directly
  • Older clients still work — FastMCP automatically includes a serialized JSON TextContent fallback alongside structured output
  • Tools that genuinely return text (easter_egg, get_step_code) remain as plain text content

Other improvements in this release:

  • Hardened error detection: Structured error envelopes use full shape validation ({"error": {"tool", "message", "type"}}) to avoid false positives when successful results contain an "error" field
  • Better analytics: Error types from structured envelopes are now preserved in analytics instead of a generic "ToolReturnedError" label
  • Robust smoke tests: Tests now check structuredContent, handle both camelCase and snake_case MCP field names, and have explicit TimeoutError handling with increased timeouts for CI stability
  • Compatibility note: ZenML >= 0.93.0 is recommended. For older ZenML versions, use earlier MCP server releases

Migration notes

This is a non-breaking change for LLM-based consumers (Claude, GPT, etc.) — they receive the same information via the text fallback. Programmatic clients gain the new structuredContent field they didn't have before. The 16 list tools that previously returned invalid Python repr() output (single-quoted strings) now return valid JSON.

What's Changed

  • chore(deps): bump the all-actions group with 3 updates by @dependabot[bot] in #34
  • Migrate all MCP tools to structured output (structuredContent) by @strickvl in #35

Full Changelog: v1.3.0...v1.4.0

What's Changed

  • chore(deps): bump the all-actions group with 3 updates by @dependabot[bot] in #34
  • Migrate all MCP tools to structured output (structuredContent) by @strickvl in #35

Full Changelog: v1.3.0...v1.4.0

v1.3.0

Choose a tag to compare

@strickvl strickvl released this 26 Jan 19:11

What's Changed

  • feat(security): add zizmor GitHub Actions security linting by @strickvl in #27
  • chore(deps): bump the all-actions group with 4 updates by @dependabot[bot] in #28
  • Add ty type checking for Python code by @strickvl in #29
  • Artifact version commands by @Spotchi in #30
  • Detect tool error strings in smoke test by @strickvl in #32
  • Improve error detection in smoke test by @strickvl in #33

New Contributors

Full Changelog: v1.2.0...v1.3.0

What's Changed

  • feat(security): add zizmor GitHub Actions security linting by @strickvl in #27
  • chore(deps): bump the all-actions group with 4 updates by @dependabot[bot] in #28
  • Add ty type checking for Python code by @strickvl in #29
  • Artifact version commands by @Spotchi in #30
  • Detect tool error strings in smoke test by @strickvl in #32
  • Improve error detection in smoke test by @strickvl in #33

New Contributors

Full Changelog: v1.2.0...v1.3.0

v1.2.0

Choose a tag to compare

@strickvl strickvl released this 16 Jan 09:45

ZenML MCP Server v1.2.0 — Full Deployment Observability 🚀

This release significantly expands the MCP server's capabilities, adding 12 new tools across 5 entity types. Your AI coding assistant can now understand the full ZenML lifecycle — from pipeline configs to deployed services.

✨ New Features

Deployment & Serving Tools

  • get_deployment / list_deployments — Discover what's running, check status and URLs
  • get_deployment_logs — Debug deployments with bounded log retrieval (safe defaults: 100 lines, 100KB max)

Snapshot Tools (Replaces Run Templates)

  • get_snapshot / list_snapshots — Work with frozen pipeline configurations
  • Filter by runnable, deployable, deployed status for easy discovery

Organization Tools

  • get_active_project / get_project / list_projects — Multi-project support
  • get_tag / list_tags — Discover and filter by tags (prod, staging, etc.)
  • get_build / list_builds — Inspect pipeline builds and images

⚠️ Deprecations

Run Templates are deprecated — use Snapshots instead:

  • get_run_templateget_snapshot
  • list_run_templateslist_snapshots
  • trigger_pipeline(template_id=...)trigger_pipeline(snapshot_name_or_id=...)

The deprecated tools still work but now return deprecation warnings.

📚 Documentation

  • Completely restructured README with categorized tool inventory
  • Added migration guide for Run Templates → Snapshots
  • Updated CLAUDE.md with architecture notes and tool taxonomy

🧪 Testing

  • Expanded smoke tests from 4 to 9 safe tools
  • All 45 tools verified working

Full Changelog: v1.1.1...v1.2.0

v1.1.1

Choose a tag to compare

@strickvl strickvl released this 09 Jan 09:55

🐛 Bug Fix

This release fixes a critical bug in v1.1.0 where the Docker image failed to start.

What was fixed

The v1.1.0 release introduced analytics support but the Dockerfile was not updated to include the new zenml_mcp_analytics.py module. This caused the container to crash on startup with:

ModuleNotFoundError: No module named 'zenml_mcp_analytics'

Changes

  • Include zenml_mcp_analytics.py in Docker image
  • Include VERSION file in Docker image (used by analytics)
  • Add Docker build verification to PR tests to prevent similar issues

Upgrade

If you were affected by the v1.1.0 bug, simply pull the latest image:

docker pull zenmldocker/mcp-zenml:latest
# or
docker pull zenmldocker/mcp-zenml:1.1.1

Full Changelog: v1.1.0...v1.1.1

v1.1.0

Choose a tag to compare

@strickvl strickvl released this 08 Jan 09:41

⚠️ DEPRECATED: This release has a broken Docker image. Please use v1.1.1 or later instead.

The Docker image fails to start with ModuleNotFoundError: No module named 'zenml_mcp_analytics'.


What's Changed

  • Add optional analytics via ZenML Analytics Server by @strickvl in #24

Full Changelog: v1.0.8...v1.1.0

v1.0.8

Choose a tag to compare

@strickvl strickvl released this 29 Dec 10:20

What's Changed

New Contributors

Full Changelog: v1.0.4...v1.0.8

What's Changed

New Contributors

Full Changelog: v1.0.4...v1.0.8

v1.0.4

Choose a tag to compare

@strickvl strickvl released this 18 Sep 20:47

What's Changed

  • Updates for Anthropic resubmission by @strickvl in #22
  • Add automated release orchestration and MCP bundle building by @strickvl in #23

Full Changelog: v1.0.3...v1.0.4

v1.0.3

Choose a tag to compare

@github-actions github-actions released this 10 Sep 13:56

What's Changed

Full Changelog: v1.0.2...v1.0.3