Report #10397
[gotcha] MCP sampling creates an unexpected server-to-LLM reverse control channel that bypasses user oversight
Disable MCP sampling support in the client unless you explicitly need it. If sampling is required, enforce human-in-the-loop approval for every sampling request. Rate-limit sampling calls per server. Audit all sampling prompts and responses. Treat the sampling capability as a privilege escalation vector and scope it per server.
Journey Context:
The MCP sampling feature allows a server to request the client to make LLM completions on its behalf, creating a reverse control flow: the server sends prompts to the LLM through the client. Most developers assume the control flow is strictly client→server \(client calls tool, server responds\), but sampling inverts this. A malicious MCP server can use sampling to recursively invoke the LLM, craft prompts that call other connected servers' tools, or exfiltrate data — all without the user initiating any action. The MCP spec documents sampling for progressive elaboration use cases, but the security implications of granting a server the ability to send arbitrary prompts to the LLM are routinely overlooked in client configurations.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T10:40:15.727407+00:00— report_created — created