MCPSafe.io
RegistryThreatsMethodologyDocsPricingScanSign in
MCPSafe.io

Security checks for MCP servers — public packages and private repos, fast or deep.

Legal

Privacy PolicyCookie PolicyTerms of ServiceSecurity disclosure

Resources

State of MCP SecuritySupportSystem statusMade in Germany 🇩🇪

© 2026 MCPSafe. All rights reserved.

GDPR — Privacy Policy
← Threat Catalog

Configuration & Environment

Lack of observability

MEDIUMAIVSS 4.5CWE: CWE-778Agentic: T08Rule: MCP-051

The server emits no logs, no metrics, and no audit trail of tool calls, so an incident cannot be investigated and a compromise cannot be detected. Pair with the sensitive-data-exposure rules when adding logs: do not log raw request bodies, headers, or PII — see MCP-202 (secrets in responses), MCP-251 (PII in logs), and MCP-306 (auth headers before auth check).

What it is

Not a vulnerability in the usual sense — the server is not directly *exploitable* because of missing logs. But without logs you cannot tell whether it was already exploited. In an LLM-driven system where tool calls are generated non-deterministically, the log *is* the reconstruction.

Why it matters for MCP

MCP servers are frequently written as "just a script" and inherit that script's logging posture: `print` if lucky, nothing if not. In a session where the model made 200 tool calls, there is often no way after the fact to answer "what did my agent actually do to my GitHub account last Tuesday?"

Vulnerable example

example.py
1
@server.tool()
2
def delete_file(path: str) -> None:
3
    os.remove(path)  # no record that this happened

Secure example

example.py
1
import structlog
2
log = structlog.get_logger()
3
4
@server.tool()
5
def delete_file(path: str, ctx: Context) -> None:
6
    log.info("tool.delete_file", path=path, principal=ctx.principal.id)
7
    os.remove(path)

How MCPSafe detects this

We grep for tool handlers with side effects (filesystem writes, network calls, database mutations) that contain no logging statement. This is a code-smell rule — false-positive rate is higher than for other rules.

See the full threat catalog for every documented detection.

Framework alignment

OWASP Agentic AI Top-10
T08 — Repudiation
AIVSS v0.5
4.5 (MEDIUM)AIVSS:1.0/S:MEDIUM/AV:N/AU:N/BR:L/CD:D

Further reading

  • CWE-778: Insufficient Logging
  • OWASP Logging Cheat Sheet

Scan an MCP server for this issue

MCPSafe runs this check — and every other rule in the catalog — on any MCP server you paste in.

Scan now