JetBrains Rider中使用MCP的StdioServerTransport时连接意外关闭的问题求助
JetBrains Rider中使用MCP的StdioServerTransport时连接意外关闭的问题求助
大家好,我最近在.NET 8环境下用C#开发基于ModelContextProtocol(MCP)的工具,碰到了一个特别棘手的问题——在JetBrains Rider里启动MCP服务器时,连接会立刻断开,但在VS Code和Claude Desktop里运行完全正常,想请教下有没有人遇到过类似的情况或者有解决思路?
我的环境与配置
- 项目基于.NET 8,使用MCP的
ModelContextProtocol开发工具 - Program.cs中的MCP服务器配置:
builder.Services.AddMcpServer() .WithStdioServerTransport() .WithToolsFromAssembly(); - 在VS Code中,我通过如下配置可以正常启动并连接MCP:
{ "servers": { "TestMcp": { "type": "stdio", "command": "dotnet", "args": [ "run", "--project", "/Path/To/My/Project/Project.csproj" ] } } }
Rider中遇到的问题
不管我用哪种方式在Rider里启动:
- 常规的Run Configuration运行项目
- 通过MCP工具集成(使用.mcp.json或JSON配置)
都会立刻收到错误:MCP error -1: Connection closed
奇怪的是,日志明明显示应用已经成功启动,还打印出了Application started...,说明标准输入输出流是正常存在的,但MCP就是一启动就断开连接。我甚至把应用Docker化后,用Rider执行docker run -i .命令,结果还是一样的问题。
我已经尝试过的解决方案(均无效)
- 替换传输方式为
WithStreamServerTransport(Console.OpenStandardInput(), Console.OpenStandardOutput()),问题依旧 - 在代码中手动调用
Console.Out.Flush()刷新输出流,没有改善 - 在.mcp.json里明确设置
"type": "stdio",但在Rider里似乎没有起到作用
我的疑问
这是不是Rider和MCP的StdioServerTransport之间的已知兼容性问题?有没有什么Rider的隐藏配置会影响标准输入输出的交互逻辑?
内容来源于stack exchange
相关产品推荐
相关产品推荐

