Why this verdict
- suspicious: finding mcp-server:.:src/prometheus_mcp_server/server.py:221:CRED
Security findings 1
Credential access
highContextual risklow confidenceThe debug log in make_prometheus_request writes the request headers, which can include the bearer token, to stderr; this only happens at DEBUG level, which is disabled by the INFO default, and nothing is sent off-host.
logger.debug("Making Prometheus API request", endpoint=endpoint, url=url, params=params, headers=headers, timeout=config.request_timeout)vector:code
Counter-argument considered
The bearer token is placed in the headers dict and the whole dict is logged at debug level. That is a real credential-in-logs weakness. The claim itself says it is limited to DEBUG level and nothing leaves the host, and no mitigation is visible that redacts the headers, so the finding stands as low severity.
Refuted findings 1
Candidates the review stage examined and rejected, kept for transparency.
Supply chain
mediumRefutedlow confidencepyproject.toml declares runtime dependencies python-dotenv, requests and starlette with no version constraint, so installs without the uv.lock float to whatever is newest on the index (low-risk, official registry).
"requests",
Why it was refuted
The unpinned dependencies are openly declared in the project's own dependency list. They are ordinary, well-known packages from the official index, with no concealment, no moving git/URL reference and no agent instruction. This is a normal packaging choice, not an undeclared or hidden supply-chain behavior.
Coverage gaps 8
Parts of the artifact the static analysis could not fully examine.
context:manifest_unparseable yaml: while scanning a simple key
.github/workflows/issue-management.yml
context:manifest_unparseable yaml: while parsing a flow node
charts/prometheus-mcp-server/templates/deployment.yaml
context:manifest_unparseable yaml: while parsing a flow node
charts/prometheus-mcp-server/templates/ingress.yaml
context:manifest_unparseable yaml: while parsing a flow node
charts/prometheus-mcp-server/templates/secret.yaml
context:manifest_unparseable yaml: while parsing a flow node
charts/prometheus-mcp-server/templates/service.yaml
context:manifest_unparseable yaml: while parsing a flow node
charts/prometheus-mcp-server/templates/serviceaccount.yaml
context:manifest_unparseable yaml: while parsing a flow node
charts/prometheus-mcp-server/templates/servicemonitor.yaml
context:manifest_unparseable yaml: while parsing a block mapping
charts/prometheus-mcp-server/templates/tests/test-connection.yaml