MCP server for ZenML API access
We found this by crawling public sources and nobody has attested to it. That is how most of the registry gets here, and it is not a mark against the artifact — it only means no authenticated act of publication is on record. An artifact can be the vendor's own and still appear here.
11 critical findings reported by agent-audit-kit, nerlo-multi-source, 10 of them in the installed artifact. The composite score alone does not reflect this — read the per-scanner reports below.
This artifact ships from 2 sources and their verdicts differ. The worst is github (Flagged). Installing from a cleaner source does not mean the others are safe — check the source you actually install from.
github: https://github.com/zenml-io/mcp-zenml, 47 findings
Choose your runtime: the CLI writes the mcpServers config entry for that target.
nerlo install --target claude-code -- mcp-zenml
Install respects the composite badge: Clean proceeds, Caution prompts for confirmation, and Flagged is refused. Write operations require an API token.
5 of 11 scanners examined this package. The rest do not apply to it — language, ecosystem and packaging decide which analyzers can say anything, and a scanner that cannot examine an artifact reports nothing rather than passing it.
v2.0.11
15 findings · 8.6s
v0.3.74
24 findings · 7.1s
v0.2.0
3 findings · 4.6s
v0.2.0
5 findings · 4.6s
v0.1.0
17 findings · 298.7s
v1.4.0
None of the entry points this scanner reads were found in this artifact. What each scanner covers
0 findings · 0.2s
vv0.3.2
No Go packages were found in this artifact. What each scanner covers
0 findings · 0.1s
No report in this scan: govulncheck, osv-scanner, trivy, trivy_image.
8 scans on record. Every scan's full results are retained immutably for 24 months.
| Completed | Composite | Change | Scanners | Status |
|---|---|---|---|---|
| Sep 17, 2026 | Scan Halted | — | agentshield ·n/a: not applicablecisco-skill-scanner: completeagent-audit-kit: completenerlo-behavioral: completenerlo-install-instruction: completecapslock ·n/a: not applicablenerlo-multi-source: complete | rejected |
| Aug 2, 2026 | Scan Halted | — | agentshield ·n/a: not applicablecisco-skill-scanner: completeagent-audit-kit: completenerlo-behavioral: completenerlo-install-instruction: completenerlo-multi-source ·!: incomplete | rejected |
| Jul 30, 2026 | Scan Halted | — | cisco-skill-scanner: completeagent-audit-kit: completenerlo-behavioral: completenerlo-install-instruction: completenerlo-multi-source ·!: incomplete | rejected |
| Jul 21, 2026 | Scan Halted | — | agentshield ·n/a: not applicablecisco-skill-scanner: completeagent-audit-kit: completenerlo-behavioral: completenerlo-install-instruction: complete | rejected |
| Jul 20, 2026 | Scan Halted | — | agentshield ·n/a: not applicablecisco-skill-scanner: completeagent-audit-kit: complete | rejected |
| Jul 20, 2026 | Scan Halted | Clean → Flagged | agentshield ·n/a: not applicablecisco-skill-scanner: completeagent-audit-kit: complete | rejected |
| Jul 20, 2026 | Clean100 | — | agentshield ·n/a: not applicablecisco-skill-scanner ·n/a: not applicableagent-audit-kit: completetrivy: completeosv-scanner ·n/a: not applicable | completed |
| Jul 20, 2026 | Clean100 | — | agentshield ·n/a: not applicablecisco-skill-scanner ·n/a: not applicableagent-audit-kit: completetrivy: completeosv-scanner ·n/a: not applicable | completed |
Findings in files this artifact installs stand as reported; a model re-read the rest and said which ones it believes are false positives. This is a second opinion published beside the evidence, not a correction to it: the per-scanner reports above are unchanged, every dismissed finding is still listed there at its original severity, and the score and the Flagged badge are computed from those raw severities alone. Nothing below moved them.
Out of 64 findings across every scanner that examined this package. 1 of 11 findings rated critical by their scanner was among the dismissals.
Not reviewed is not the same as clean. Those 1 finding stand exactly as their scanners reported them, at full severity, as they would have without this review.
Two keys had to turn. The model had to name a reason from a fixed list of six, and a deterministic check of ours — over which files this artifact actually installs — had to independently agree. Anything it could not corroborate is in “not reviewed” above, at full severity.
19 Agent instruction file — The match is in a file that instructs an AI coding agent — a CLAUDE.md or similar. It is documentation of intent, and our own check confirmed it is not part of what gets installed.
Rules: AAK-AGENT-002, AAK-AGENT-003, TOOL_ABUSE_UNDECLARED_NETWORK and 3 more · Files: CLAUDE.md, /repo/repo/AGENTS.md, /repo/CLAUDE.md · reported by agent-audit-kit, cisco-skill-scanner, nerlo-install-instruction
2 Test or fixture file — The match is in a test or fixture. Our own check confirmed the file is not part of what gets installed.
Rules: AAK-MCP-STDIO-CMD-INJ-001, AAK-ANTHROPIC-SDK-001 · Files: scripts/test_mcp_server.py · reported by agent-audit-kit
These findings are in files this artifact installs and are not placeholder values. No false-positive basis can be corroborated for such a finding, so this review never dismisses one; they were not sent to the model and stand at their scanner's severity.
6 opt.nerlo-rules.nerlo-py-dynamic-exec
Files: github_release:/tmp/nerlo-acquire/release/mcp-zenml.mcpb.extracted/server/lib/zenml/utils/pipeline_docker_image_builder.py, github_release:/tmp/nerlo-acquire/release/mcp-zenml.mcpb.extracted/server/lib/setuptools/_vendor/jaraco/functools/__init__.py, github_release:/tmp/nerlo-acquire/release/mcp-zenml.mcpb.extracted/server/lib/click/_termui_impl.py and 2 more · reported by nerlo-provenance
4 nerlo-malware-obfuscated_blob
Files: github_release:mcp-zenml.mcpb.extracted/server/lib/jwt/utils.py, github_release:mcp-zenml.mcpb.extracted/server/lib/cryptography/hazmat/primitives/asymmetric/ec.py, github_release:mcp-zenml.mcpb.extracted/server/lib/zenml/zen_server/dashboard/assets/page-B1hbptrQ.js and 1 more · reported by nerlo-malware
4 opt.nerlo-rules.nerlo-js-secret-to-network-egress
Files: github_release:/tmp/nerlo-acquire/release/mcp-zenml.mcpb.extracted/server/lib/zenml/zen_server/dashboard/assets/page-c-MkL8Uf.js, github_release:/tmp/nerlo-acquire/release/mcp-zenml.mcpb.extracted/server/lib/zenml/zen_server/dashboard/assets/docker-image-collapsible-CPcRL4tv.js, github_release:/tmp/nerlo-acquire/release/mcp-zenml.mcpb.extracted/server/lib/zenml/zen_server/dashboard/assets/RepoBadge-DX2HcCC-.js and 1 more · reported by nerlo-provenance
4 YARA_capability_inflation_generic
1 The model called these false positives and our own check did not agree, so the dismissal was refused.
Rules: HIDDEN_DATA_FILE · Files: /repo/.env.local.example · reported by cisco-skill-scanner
Artifact performs dynamic code execution and transmits secrets over networks.
The artifact performs dynamic code execution in Python files such as `_termui_impl.py`, `cli.py`, and `pipeline_docker_image_builder.py`. It transmits secrets over the network from JavaScript files like `RepoBadge-DX2HcCC-.js` and `StackList-AXQfpYXK.js`, and Python files including `zenml_server.py`. The artifact also binds to all network interfaces in `docker_zen_server.py` and has potential Server-Side Request Forgery (SSRF) in `zenml_server.py`. Hardcoded external network egress is present in dashboard assets.
Concern level assessed by the review: Critical. This is the review's scale, not the registry badge.
Reviewed by gemini-2.5-flash. The model sees the findings, not your code, and cannot change a score.
3 DATA_EXFIL_NETWORK_REQUESTS
Files: /repo/server/zenml_server.py · reported by cisco-skill-scanner
3 opt.nerlo-rules.nerlo-py-secret-to-network-egress
Files: /repo/server/zenml_server.py · reported by nerlo-behavioral
2 AAK-SECRET-004
Files: server/zenml_server.py · reported by agent-audit-kit
2 opt.nerlo-rules.nerlo-hardcoded-external-egress
Files: github_release:/tmp/nerlo-acquire/release/mcp-zenml.mcpb.extracted/server/lib/zenml/zen_server/dashboard/assets/index-DLlSHPas.js, github_release:/tmp/nerlo-acquire/release/mcp-zenml.mcpb.extracted/server/lib/zenml/zen_server/dashboard/assets/page-B1hbptrQ.js · reported by nerlo-provenance
2 YARA_prompt_injection_unicode_steganography
Files: /repo/assets/icon.png · reported by cisco-skill-scanner
1 AAK-MCP-018
Files: server/zenml_server.py · reported by agent-audit-kit
1 AAK-MCP-SDK-CVE-2026-52869-001
Files: requirements.txt · reported by agent-audit-kit
1 AAK-MCP-SSRF-001
Files: server/zenml_server.py · reported by agent-audit-kit
1 AAK-OAUTH-3P-001
Files: requirements.txt · reported by agent-audit-kit
1 AAK-SEC-MD-001
Files: SECURITY.md · reported by agent-audit-kit
1 AAK-SSRF-002
Files: server/zenml_server.py · reported by agent-audit-kit
1 AAK-SUPPLY-004
Files: pyproject.toml · reported by agent-audit-kit
1 FILE_MAGIC_MISMATCH
Files: /repo/requirements.txt · reported by cisco-skill-scanner
1 MANIFEST_MISSING_LICENSE
Files: /repo/SKILL.md · reported by cisco-skill-scanner
1 opt.nerlo-rules.nerlo-bind-all-interfaces
Files: github_release:/tmp/nerlo-acquire/release/mcp-zenml.mcpb.extracted/server/lib/zenml/zen_server/deploy/docker/docker_zen_server.py · reported by nerlo-provenance
1 OVERSIZED_FILE
Files: /repo/mcp-zenml.mcpb · reported by cisco-skill-scanner
1 SOCIAL_ENG_VAGUE_DESCRIPTION
Files: /repo/SKILL.md · reported by cisco-skill-scanner