#42238·appsmith

[错误]: 云端的 MCP 服务器拒绝其自身的会话 ID - 会话是按进程分配的,在多个副本后会断开

作者: mbasaran创建于 2026年9月16日更新于 2026年9月16日

**原因(在源代码中)**:会话存储在每个进程的映射中 - `app/client/packages/mcp/src/app.ts:7011` 中,在 `onsessioninitialized` 中注册(`app.ts:7282`,`sessionIdGenerator: randomUUID`)并在 `transport.onclose` 中删除。如果负载均衡器后面有多个副本,且没有会话亲和性,则 `initialize` 会落在副本 A 上并在那里注册会话,而后续的 POST 则在其他副本之间进行负载均衡,其中没有一个知道 ID。请注意,#42210 ("现在 Mcp 也接受 Redis 集群")将 *治理* 状态移入 Redis(`governance/store.ts`),但没有触及传输会话映射,因此该路径仍然是按进程进行的。无状态模式不是一个解决方案:没有会话 ID 的 `tools/list` 返回 `400 {"error":"initialize the MCP session first"}`。

内容来源: appsmithorg/appsmith