跳转至

在 Claude Science 中使用

Claude Science 采用了更严格的沙箱(sandbox)策略,默认情况下无法读写主目录(~)下的文件。这会导致通过常规方式配置的 MCP-for-Stata 服务端在启动时直接报错:

Couldn't load tools: MCP error -32000: Connection closed
--- stderr ---
Traceback ...
FileNotFoundError: [Errno 2] No such file or directory

该错误并非 MCP-for-Stata 本身异常,而是 Claude Science 的沙箱找不到可执行文件。下面给出两种解决方案。

完整流程

1. 安装 stata-mcp

uv tool install stata-mcp

2. 放行沙箱路径

运行以下命令,在 ~/.claude-science/config.toml 中写入沙箱放行路径。脚本会先检查 [sandbox] 块是否已存在,避免重复写入。

mkdir -p ~/.claude-science
CONFIG_FILE="$HOME/.claude-science/config.toml"

if ! grep -q '^\[sandbox\]' "$CONFIG_FILE" 2>/dev/null; then
    cat >> "$CONFIG_FILE" <<EOF

[sandbox]
user_write_paths = [
  "$HOME/.local/bin",
  "$HOME/.local/share/uv/tools/stata-mcp",
]
EOF
    echo "已写入 $CONFIG_FILE"
else
    echo "[sandbox] 已存在,请手动检查 user_write_paths 是否包含以下路径:"
    echo "  $HOME/.local/bin"
    echo "  $HOME/.local/share/uv/tools/stata-mcp"
fi

3. 在 Claude Science 中添加 MCP 服务

打开 Claude Science 的 MCP 配置界面,填写以下内容:

  • NameStata-MCP
  • Command~/.local/bin/stata-mcp

保存后重启 Claude Science,即可正常加载 MCP-for-Stata 工具。

方案一:放行 uv tool 的安装路径

如果已经通过 uv tool install stata-mcp 安装,可执行文件和相关数据默认位于:

  • ~/.local/bin/stata-mcp
  • ~/.local/share/uv/tools/stata-mcp

需要在 Claude Science 的沙箱配置中显式放行这两个路径,使其可读可写。

~/.claude-science/config.toml 中添加如下内容:

[sandbox]
user_write_paths = [
  "~/.local/bin",
  "~/.local/share/uv/tools/stata-mcp",
]

保存后重启 Claude Science,再尝试加载 MCP-for-Stata 工具。

方案二:将 MCP-for-Stata 安装到非主目录

如果不想放行主目录,可以将 MCP-for-Stata 安装到一个沙箱默认允许访问的位置,例如项目目录或专门的工具目录。具体步骤后续补充。