添加quarkus-mcp-server-stdio依赖后Quarkus dev模式CLI无响应求助
问题分析与解决方案
问题原因
quarkus-mcp-server-stdio依赖的核心作用是通过标准输入输出(stdio)实现MCP Server通信,但它会接管控制台的标准输入流,导致Quarkus开发模式的CLI交互模块无法获取按键输入,最终出现按键无响应的情况。
解决方案
- 开发模式隔离依赖:通过Maven Profile控制依赖生效范围,开发模式下替换为socket版MCP Server,生产环境保留stdio实现,既不影响开发CLI交互,也能满足生产需求:
<profiles> <profile> <id>dev</id> <activation> <activeByDefault>true</activeByDefault> </activation> <dependencies> <dependency> <groupId>io.quarkiverse.mcp</groupId> <artifactId>quarkus-mcp-server-socket</artifactId> <version>1.4.1</version> </dependency> </dependencies> <dependencyManagement> <dependencies> <dependency> <groupId>io.quarkiverse.mcp</groupId> <artifactId>quarkus-mcp-server-stdio</artifactId> <version>1.4.1</version> <scope>provided</scope> </dependency> </dependencies> </dependencyManagement> </profile> <profile> <id>prod</id> <dependencies> <dependency> <groupId>io.quarkiverse.mcp</groupId> <artifactId>quarkus-mcp-server-stdio</artifactId> <version>1.4.1</version> </dependency> </dependencies> </profile> </profiles> - 升级依赖版本:检查该依赖的最新稳定版,部分新版本可能已修复与Quarkus开发模式CLI的流冲突问题,尝试升级后验证是否解决按键无响应问题。
- 分离交互终端:如果必须在开发模式使用stdio依赖,可以启动两个终端:一个运行
quarkus dev,另一个通过管道或直接输入数据到MCP Server的标准输入,不过这种方式会降低开发效率。
内容的提问来源于stack exchange,提问作者user3422290
相关产品推荐
相关产品推荐

