关于@modelcontextprotocol/inspector日志打印方法的咨询及相关报错问题
关于@modelcontextprotocol/inspector日志打印方法的咨询及相关报错问题
嗨,我来帮你解决这个问题~ 你遇到的console.log/console.error在@modelcontextprotocol/inspector环境里不工作的情况,其实是这个库的设计特性导致的——它通常会劫持或重写全局的console对象,把日志输出导向到自身的调试面板或上下文存储中,而不是默认的浏览器/终端控制台。
下面是几种正确的日志打印方式,你可以试试:
使用Inspector自带的日志API
这个库本身提供了专门的日志方法,你可以通过已初始化的Inspector实例,或者从请求上下文里获取实例来调用:server.setRequestHandler(CallToolRequestSchema, async (request) => { const tool = tools.find(t => t.name === request.params.name); // 从请求上下文获取inspector实例并打印日志 if (request.context?.inspector) { // 普通日志 request.context.inspector.log("A console log message"); // 错误日志 request.context.inspector.error("An error message"); } });这样的日志会被Inspector收集,你可以在它的调试界面里看到完整的上下文日志。
开启console保留配置
如果还是想继续用默认的console方法输出,你可以在初始化Inspector的时候添加配置项,让它不劫持全局console:import { Inspector } from '@modelcontextprotocol/inspector'; // 初始化时开启preserveConsole配置 const inspector = new Inspector({ preserveConsole: true });配置后,
console.log/console.error就会像平时一样输出到终端或浏览器控制台了。检查Inspector调试面板
另外,即使你用了原来的console.log,这些日志其实可能已经被Inspector收集了——你可以打开MCP Inspector的专属调试界面,里面应该能看到所有被拦截的日志信息,包括你之前用console.error输出的内容。
内容来源于stack exchange
相关产品推荐
相关产品推荐

