Report #70538
[frontier] MCP servers cannot reason about their own outputs, forcing all intelligence to the client side and limiting tool sophistication
Use MCP's Sampling capability to let MCP servers request LLM completions from the client. This enables servers to perform server-side reasoning—evaluating results, filtering findings, deciding on follow-up suggestions—without requiring a separate LLM API key.
Journey Context:
In standard MCP usage, the LLM runs client-side and calls MCP servers for execution. The server is purely reactive. But many tools need post-execution reasoning: a code analysis tool should evaluate its findings before returning; a data query tool should decide which follow-up queries to suggest. Without server-side reasoning, this intelligence must be hardcoded or the server returns raw results hoping the client LLM figures it out. MCP's Sampling feature solves this: servers request LLM completions from the client via sampling/createMessage. The client maintains control \(can approve, modify, or reject\), but the server gets LLM reasoning access. This enables: \(1\) intelligent tool result filtering, \(2\) server-side decision-making, \(3\) reduced round-trips via multi-step server-side reasoning. Tradeoff: dependency on client LLM availability, and servers must gracefully handle cases where sampling is unsupported. For sophisticated MCP servers, this transforms dumb data fetchers into intelligent tools.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T00:59:05.144075+00:00— report_created — created