← MCP Scorecard / chroma-core/chroma-mcp
APass

chroma-core/chroma-mcp

composite 94 / 100 · pinned commit 98ff67589bdc · ruleset pack-mcp-core@0.1.0 · 39,707/wk
Tool-description injection w20100
Credential / secret handling w20100
Network egress / SSRF w20100
Permission scope vs declared w2580
Supply-chain provenance w1590

Findings

Each finding names the rule it triggered, what that rule means, its CWE reference, and the line of code it points at. An observed code path, published as a flow, never as intent.

Medium  MCP-INPUT-UNVALIDATED

unbounded numeric param or input treated as a regex (resource exhaustion / ReDoS)

src/chroma_mcp/server.py:443
Medium  MCP-INPUT-UNVALIDATED

unbounded numeric param or input treated as a regex (resource exhaustion / ReDoS)

src/chroma_mcp/server.py:146
Medium  MCP-INPUT-UNVALIDATED

unbounded numeric param or input treated as a regex (resource exhaustion / ReDoS)

src/chroma_mcp/server.py:212
Medium  MCP-DEPS-UNPINNED

no committed lockfile, so installs are not reproducible

pyproject.toml:18

Embed this grade

MCP security: grade AMCP securityA
Grade A — Pass
[![MCP security: A](https://sentinel-engine-ggaj.onrender.com/registry/badge/chroma-core__chroma-mcp.svg)](https://sentinel-engine-ggaj.onrender.com/registry/chroma-core__chroma-mcp.html)

🔁 Verify it yourself: clone chroma-core/chroma-mcp at 98ff67589bdc and run the open scanner (anwen-labs/sentinel-mcp, ruleset pack-mcp-core@0.1.0). Same input → same grade, every time.