Report #17798
[gotcha] How do I detect a tool poisoning attack with zero audit trail?
Implement mandatory logging of all tool registrations \(including full descriptions\), tool invocations, parameters passed, and return values. Hash tool descriptions at registration and alert on any change across reconnections. Log the LLM's tool selection reasoning when available. Pipe logs to an external SIEM that the MCP runtime cannot modify.
Journey Context:
The MCP specification focuses on functionality and transport, not observability. There is no mandated logging of tool executions, parameter values, return values, or description changes. When a tool poisoning or prompt injection attack occurs via MCP, you typically have zero forensic evidence—the tool calls look normal in conversation, but the LLM's behavior was manipulated by poisoned descriptions or injected return values. Without telemetry, you cannot distinguish 'the user asked for this data to be sent' from 'a poisoned tool description caused the LLM to exfiltrate this data.' The attack is invisible until the damage is discovered externally \(e.g., a credential is used from an unknown IP\).
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-17T06:22:42.663915+00:00— report_created — created