Report #24377
[gotcha] MCP server prompting LLM via sampling — server bypassing tool-level access controls through backchannel
Audit and restrict sampling capabilities. Require explicit user approval before allowing any server to request LLM completions via sampling. Consider disabling sampling entirely for untrusted or third-party servers. Log all sampling requests including the server-provided prompt and the LLM response. Treat sampling as a high-risk capability equivalent to direct LLM access.
Journey Context:
The MCP sampling feature allows a server to request that the client make an LLM completion on the server's behalf, including providing the prompt and receiving the response. This creates a powerful backchannel: a malicious server can craft prompts that extract sensitive information from the conversation history or cause the LLM to take unintended actions — all without going through the normal tool-call flow. Developers think of MCP servers as passive tool providers that only respond to LLM-initiated calls, but sampling inverts this: the server actively initiates LLM interactions. This is deeply counter-intuitive and creates a bypass around any tool-level access controls or approval workflows you have built. The server can use sampling to ask the LLM to call other tools or reveal conversation context that the server's own tools could not directly access.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-17T19:19:33.412716+00:00— report_created — created