MCP 工具名超过 128 会拖垮请求
Claude Code 2.1.292 修复一种全盘失败:某个 MCP 工具名超过 128 个字符时,以前每一次请求都会失败。这一版改为留下该工具,并在 MCP 错误里点名它。说明没有写描述文字的 2048 字符上限被这次一起改掉。

一个 MCP 服务器只要有一件工具的名字太长,整段对话以前会全部失败。Claude Code 2.1.292 的发行说明写:MCP 工具名超过 128 个字符时,每一次请求都会失败。mcp 工具名超过 128 从这一版起,该工具被留在外面,MCP 错误会点出这个名字。其余工具还可以用。说明没有写服务器名字、资源名字是否共用这 128。
数的是工具名,不是描述
2.1.280 有另一道上限:CLAUDE_CODE_MAX_MCP_DESCRIPTION_LENGTH 改的是 MCP 工具描述和服务器说明的 2048 字符帽,见 MCP 描述长度。那是描述。2.1.292 这句是工具名本身。描述写得很长、名字很短,不会触发「每一次请求失败」。名字超过 128、描述很短,在低于 2.1.292 的版本上会让后续请求都失败,而不只是这一件工具不可用。
升级之后,错误里会出现那个超长名字。把它改短再连,比去调描述长度变量更对得上这句。说明没有写 128 按 Unicode 码位、UTF-8 字节还是显示宽度来数。含中文的工具名先数字符个数,接近 128 就缩短,不要等请求失败再猜单位。
留在外面之后会话还在
修复前的失败是每一次请求,所以压缩、换模型、继续聊都可能还是失败,只要那个工具仍在连接上。修复后,超长的那一件不进入可用工具,其他请求可以继续。说明没有写会自动改名或截断。你仍需要在服务器配置里改名,否则这件工具一直缺席,错误会反复点名它。中途关掉一个本会话才加的 MCP,在 SDK 和 -p 里以前会留下工具仍可调用,那是同一版的另一条,和名字长度无关。名字里的点、连字符和空格都算进 128。把服务器前缀再叠一层很长的命名空间,最容易超。先在 claude mcp list 或服务器自己的工具清单里看完整名字,再改服务器端的工具名。Claude Code 这句没有提供客户端截断。