
不少人装好 Claude Code 之后就很少再管版本,能用就行。可它的更新节奏很快,相邻两个小版本有时只隔一两天,很多实用改动只写在 changelog 里,没有单独的公告。
这篇挑出 v2.1.186 和 v2.1.187 两个版本里对日常使用影响最大的 4 项改动:沙箱凭证保护 sandbox.credentials、命令行登录 MCP 服务器、远程 MCP 工具调用的空闲超时,以及 ! 命令跑完后 Claude 自动接着分析输出。每一项都会讲清楚它解决什么问题、怎么配置、有哪些边界。如果你在用 Claude Code 的沙箱模式,或者经常通过 SSH 在服务器上用它,这几项都值得了解。

一、sandbox.credentials:不让沙箱里的命令读到凭证
先说最重要的一项。Claude Code 的沙箱会限制命令能访问的网络和文件,但按官方沙箱文档的说明,默认情况下沙箱内的命令仍能读取机器上的大部分文件,包括 ~/.ssh、~/.aws/credentials 这类凭证文件;环境变量也会从 Claude Code 继承下来,里面可能就有各种 token。
v2.1.187 新增的 sandbox.credentials 就是为这件事准备的:你声明要保护哪些凭证文件和环境变量,沙箱里跑的命令就读不到它们。官方文档给的示例如下,它禁止读取 AWS 凭证文件和 SSH 目录,并在每条沙箱命令运行前移除 GITHUB_TOKEN 和 NPM_TOKEN:
{
"sandbox": {
"enabled": true,
"credentials": {
"files": [
{ "path": "~/.aws/credentials", "mode": "deny" },
{ "path": "~/.ssh", "mode": "deny" }
],
"envVars": [
{ "name": "GITHUB_TOKEN", "mode": "deny" },
{ "name": "NPM_TOKEN", "mode": "deny" }
]
}
}
}

配置时有几点要注意:
- 只保护你列出来的东西。官方文档写明没有内置的凭证黑名单,没列进去的文件和变量不受限制,所以要把项目里真正用到的 key 都写上。
- 写在哪个配置文件里有区别。项目级和本地级设置(仓库里的
.claude/settings.json、.claude/settings.local.json)中的credentials条目不会生效(v2.1.246 起);放在用户设置~/.claude/settings.json或企业托管设置里才算数。这是为了防止一个仓库自己改写凭证规则。 - 除了 deny 还有 mask。
mode设为mask时,沙箱命令看到的是一个会话内的占位值,只有在请求发往你允许的域名时,沙箱代理才替换成真实值。mask 只认用户设置、托管设置和--settings参数里的配置。 - 只管沙箱里的 Bash 命令。想让所有子进程都拿不到凭证,不管是否在沙箱里,官方建议另外设置环境变量
CLAUDE_CODE_SUBPROCESS_ENV_SCRUB。
平时会让 Claude Code 跑第三方脚本,或者装了不少第三方 MCP 服务器的,建议把这项配上。API Key 本身该放在哪、泄露了怎么处理,可以参考 AIGoCode API Key 放哪里:本地环境变量、公开代码与泄露后的处理顺序;想再加一道防止危险操作的护栏,可以看 用 Claude Code Hooks 装上三道硬护栏。
二、claude mcp login:在命令行里完成 MCP 认证
以前给需要 OAuth 的远程 MCP 服务器做认证,要在会话里打开交互式的 /mcp 面板一步步操作。在本机还好,通过 SSH 连到服务器上用 Claude Code 时就很别扭。
v2.1.186 加了两个命令,直接在 shell 里完成登录和登出:
claude mcp login sentry
claude mcp logout sentry
把 sentry 换成你在配置里给 MCP 服务器起的名字即可。按官方 MCP 文档的说明,claude mcp login 发现本机没有可用的浏览器时(比如 SSH 会话、没有图形界面的 Linux),会直接打印授权链接:你在自己电脑上打开链接完成授权,再把浏览器地址栏里的完整回调地址粘贴回终端。粘贴这一步需要交互式终端,所以 SSH 连接时要加 -t。如果本机有浏览器但你仍想走这种方式,可以加 --no-browser:
claude mcp login sentry --no-browser

这个命令对非交互场景也有用。claude -p 和 Agent SDK 运行时没有 /mcp 面板,没法走 OAuth 流程,官方的做法是先在 shell 里用 claude mcp login 登录好,再启动任务。
三、远程 MCP 工具调用不会再无限挂起
以前调用远程 MCP 工具时,偶尔会遇到请求发出去之后既不报错也不返回,会话就一直卡在那里,只能干等或者强制退出。
v2.1.187 起,远程 MCP 工具调用如果 5 分钟没有任何响应,会自动中止并报错,不再无限阻塞。按官方环境变量文档,网络类 MCP 服务器的默认空闲超时是 5 分钟,stdio 服务器是 30 分钟。需要调整的话,可以设置 CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT,单位是毫秒,设为 0 表示关闭空闲检查。
如果某个工具本来就要跑很久(比如一次大批量查询),可以在 .mcp.json 里给这个服务器单独设置 timeout:只要不小于 1000 毫秒,这个服务器的空闲等待时间就至少是这个值,不会被提前中止。

四、! 命令跑完,Claude 会自动接着分析输出
在 Claude Code 里,以 ! 开头可以直接执行 shell 命令。以前命令跑完,输出只是进入上下文,你还得再发一句话让 Claude 看。
v2.1.186 起,! 命令的输出会自动触发一次回复。比如输入 !npm test,测试一失败,Claude 就会接着输出分析哪里出了问题,省掉了复制报错再提问的那一步。
如果你更喜欢以前的方式,只想把输出放进上下文、不让 Claude 自动回复,可以在 settings.json 里关掉:
{
"respondToBashCommands": false
}

怎么升级,怎么确认版本
上面这 4 项至少需要 v2.1.187。按官方安装文档:
- 用原生安装方式装的 Claude Code 会在后台自动更新,也可以手动运行
claude update; - 用 Homebrew 装的不会自动更新,要手动运行
brew upgrade claude-code; - 用 npm 全局安装的,可以重新执行
npm install -g @anthropic-ai/claude-code更新。
升级后运行 claude --version 查看版本号;想看安装和自动更新状态,可以运行 claude doctor,它只做只读检查,不会启动会话。每个版本具体改了什么,以 Claude Code 官方仓库的 CHANGELOG 为准。
总结
这 4 项改动里,sandbox.credentials 和 claude mcp login 最值得马上用起来:前者给沙箱补上了凭证保护,后者解决了 SSH 和非交互场景下 MCP 认证难的问题。MCP 空闲超时和 ! 命令自动分析属于默认开启的改进,知道怎么调整或关闭就够了。
如果你还没开始用 Claude Code,可以在 AIGoCode 上直接接入使用。
参考链接
- Claude Code CHANGELOG:https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md
- Claude Code 沙箱文档:https://code.claude.com/docs/en/sandboxing
- Claude Code MCP 文档:https://code.claude.com/docs/en/mcp
- Claude Code 环境变量:https://code.claude.com/docs/en/env-vars
- Claude Code 安装与更新:https://code.claude.com/docs/en/setup