[BUG] Claude Desktop: prompts from local stdio MCP servers fail to attach; remote MCP server prompts work
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
Environment:
- Platform: Claude Desktop (Windows, Microsoft Store / MSIX install)
- Claude Desktop Version: 1.24012.9
- MCP servers tested: a custom C# stdio server (official
ModelContextProtocolC# SDK) and the reference@modelcontextprotocol/server-everything
Bug Description:
Invoking any prompt from a local stdio MCP server fails with a prompt error in the UI. Prompts from a remote MCP server work normally in the same conversation, and tools from the same local servers work perfectly. This is a regression — the same local prompts worked in earlier builds; the failure began around the 1.24012.x auto-updates.
Symptoms:
- Local stdio MCP tools: ✅ working
- Local stdio MCP prompts: ❌ fail on invocation (parameterized and zero-argument prompts alike)
- Remote MCP prompts (including parameterized): ✅ working
- Reproduces with the reference
server-everything(simple_prompt), so it is not server-specific
Evidence the server side is healthy:
- MCP Inspector against the same local server:
prompts/listandprompts/getboth return spec-valid results (singlePromptMessage,role: "user",contentof typetext). - The desktop app's own
mcp-server-<name>.logshows the full round trip succeeding at the transport level when the prompt is invoked from the UI:
[info] Message from client: method="prompts/get" id=4 params
[info] Message from server: id=4 result
No JSON-RPC error is ever returned. The failure occurs after a valid result is received, i.e. in the app's local prompt-attachment path.
- A minimal zero-argument prompt returning a single hard-coded text message fails identically, ruling out argument-binding issues.
Additional observation: in this build, local MCP logging truncates response bodies (Message from server: id=N result with no payload), where earlier builds logged the full JSON — suggesting the local MCP response-handling code changed in this release.
What Should Happen?
Invoking a prompt from a local stdio MCP server should attach the returned messages to the conversation, exactly as prompts from remote MCP servers currently do.
Actual Behavior
The UI shows a generic prompt error and the prompt content is never attached, despite the server returning a valid prompts/get result.
Error Messages/Logs
Two toast messages appear in Desktop:
"Server not found"
"Failed to attach prompt. You can try again."
No additional details area available anywhere that I have looked.
Steps to Reproduce
- Install Claude Desktop 1.24012.9 on Windows (Microsoft Store build).
- Add the reference server to
claude_desktop_config.json:
{
"mcpServers": {
"everything": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-everything"]
}
}
}
- Restart the app; confirm the server connects and its tools work.
- Invoke
simple_promptfrom the prompt/slash-command picker. - Observe the prompt error. Repeat with any other local stdio server — same result. Repeat with a remote MCP server's prompt — works.
Claude Model
Not sure / Multiple models
Is this a regression?
Yes, this worked in a previous version
Last Working Version
Unknown, I haven't tried this in a while
Claude Code Version
N/A — Claude Desktop 1.24012.9
Platform
Anthropic API
Operating System
Windows
Terminal/Shell
Windows Terminal
Additional Information
_No response_