Spring-AI Web MCP服务器调用报‘Session ID missing’错误的解决方法
解决MCP客户端调用Web MCP服务器时的"Session ID missing"错误
错误原因
当前配置中spring.ai.mcp.session.required: true开启了会话ID强制校验规则,但客户端请求未携带合法的Session ID,导致服务器拦截请求并返回400错误。
解决方法
方法一:临时关闭Session强制校验(快速验证)
修改application.yaml中的会话校验配置,将required设为false,跳过Session ID校验以快速验证通信链路:
ai: mcp: session: required: false server: name: webmvc-mcp-server version: 1.0.0 type: SYNC instructions: "This server provides weather information tools and resources" sse-message-endpoint: /mcp/messages sse-endpoint: /sse capabilities: tool: true resource: true prompt: true completion: true
方法二:客户端请求携带Session ID(生产环境推荐)
若需保留Session校验机制,客户端在向/mcp/messages发送POST请求时,需通过以下方式之一携带Session ID:
- 请求头方式:添加
X-MCP-Session-ID请求头,值为自定义的有效会话ID字符串(如UUID生成的唯一标识) - 请求参数方式:在请求URL后拼接
?sessionId=你的会话ID
方法三:检查端点配置一致性
确认客户端请求的端点路径与服务器配置的sse-message-endpoint: /mcp/messages完全一致,避免因路径拼写错误导致服务器无法正确解析请求中的Session ID参数。
内容的提问来源于stack exchange,提问作者spats
相关产品推荐
相关产品推荐

