Report #83110
[frontier] MCP server needs LLM reasoning but only has tool-calling — server cannot evaluate or plan without its own model connection
Use MCP Sampling \(server.createMessage\) to let your server request the client's LLM to perform inference. Register a sampling message handler on the client side. This lets MCP servers implement agentic loops — plan, call a tool, evaluate the result — without managing their own LLM API key or connection.
Journey Context:
Most developers treat MCP as a request-response tool protocol: client asks server to execute, server returns data. But MCP's Sampling capability inverts the control flow — the server requests the client's LLM to think. This enables servers to be agentic: a code-analysis MCP server can read a file, ask the client's LLM to evaluate whether a bug exists, then fetch more files based on that reasoning. The tradeoff: the server surrenders control over which model runs and must handle the async message flow with approval handling. But this is exactly what makes it composable — any MCP client with any model can power your server's reasoning. This pattern is just beginning to appear in production MCP servers that manage complex data domains.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T22:05:24.304947+00:00— report_created — created