mcp回复
mcp-repl 是一个MCP服务器,为代理提供持久的Python或R 会话,在工具调用期间保持活动状态。代理可以加载数据一次, 检查对象、尝试想法、阅读帮助、绘制图表并不断迭代-- 就像一个人在REPL中一样。
正在运行的shell工具 Rscript -e 或 python -c 不断强迫代理人 重建上下文。 mcp-repl 保持会话打开: 变量、加载的包、图和其他状态保持可用,直到 您或模型重置。
特性
- 默认情况下为沙盒。 后端在操作系统强制的沙盒中运行
进程级别的原语,而不是特定于命令的运行时规则。 网络已禁用;写入仅限于工作区根目录 临时路径是活动会话所需的路径。在Unix上,内存护栏会杀死 如果超过阈值,则通知工人。
- 精心策划的产出。 智能回声(安全时省略,大型时省略
多表达式块)和带内帮助页面。绘图返回为 通过MCP为具有视觉能力的模型提供内联图像,以便代理看到 情节直接;非视觉模型仍然可以获得保存的文件路径。 当回复太大时,工具响应保持简短和完整 输出保存为结构化包(转录+绘图文件) 模型可以按需探索。
- 没有投票。 R和Python在worker中运行,而不是在worker后面运行
由提示字符串启发式驱动的stdio管道。服务器知道 正是在口译员空闲并安顿下来的时候,所以每个 repl 调用在工作完成时返回——没有固定的等待,也没有猜测 是否会有更多的产出。
- 显式会话控制。 中断和重置是一流的。
快速入门
1.安装
通过安装 cargo (需要 防锈工具链):
cargo install --git https://github.com/posit-dev/mcp-repl --locked
# pin a version with: --tag v0.1.0或者使用预构建的二进制文件。Linux/macOS:
curl -fsSL https://raw.githubusercontent.com/posit-dev/mcp-repl/main/scripts/install.sh | shWindows PowerShell:
irm https://raw.githubusercontent.com/posit-dev/mcp-repl/main/scripts/install.ps1 | iex
Install-McpRepl追加 --dev (或 -Dev)对于滚动 dev 预发布。直接的 在线下载 最新发布页面Linux x86_64版本需要glibc 2.35+;glibc构建基于 Ubuntu 22.04支持Ubuntu 22.04+。
最新发布的二进制文件:
- Linux x86_64:
https://github.com/posit-dev/mcp-repl/releases/latest/download/mcp-repl-x86_64-unknown-linux-gnu.tar.gz
- macOS arm64:
https://github.com/posit-dev/mcp-repl/releases/latest/download/mcp-repl-aarch64-apple-darwin.tar.gz
- Windows x86_64:
https://github.com/posit-dev/mcp-repl/releases/latest/download/mcp-repl-x86_64-pc-windows-msvc.zip
下载预构建的开发二进制文件:
- Linux x86_64:
https://github.com/posit-dev/mcp-repl/releases/download/dev/mcp-repl-x86_64-unknown-linux-gnu.tar.gz
- macOS arm64:
https://github.com/posit-dev/mcp-repl/releases/download/dev/mcp-repl-aarch64-apple-darwin.tar.gz
- Windows x86_64:
https://github.com/posit-dev/mcp-repl/releases/download/dev/mcp-repl-x86_64-pc-windows-msvc.zip
预构建的二进制文件不捆绑R或Python;单独安装。
2.连接到MCP客户端
自动安装到代理配置文件中:
mcp-repl install # all supported clients/interpreters
mcp-repl install --client codex # only Codex
mcp-repl install --client claude # only Claude (~/.claude.json)
mcp-repl install --client codex --interpreter r # limit to one interpreter默认情况下,这会为两者写入条目 r 和 python.
install --client codex 写 --sandbox inherit --oversized-output files — inherit 告诉 mcp-repl 从Codex的每次调用元数据中获取沙盒策略(它 如果元数据丢失或格式错误,则关闭失败)。 install --client claude 写一个明确的 --sandbox workspace-write 因为Claude不会传播元数据。裸露的 mcp-repl (没有 安装)默认为 --oversized-output pager.
手动食品法典条目:
[mcp_servers.r]
command = "/Users/alice/.cargo/bin/mcp-repl"
tool_timeout_sec = 1800 # outer guard; mcp-repl handles the primary timeout
args = ["--sandbox", "inherit", "--oversized-output", "files", "--interpreter", "r"]交换 --interpreter r 为了 --interpreter python (并重命名 部分)用于Python条目。
手动输入Claude ~/.claude.json:
{
"mcpServers": {
"r": {
"command": "/Users/alice/.cargo/bin/mcp-repl",
"args": [
"--sandbox", "workspace-write",
"--oversized-output", "files",
"--interpreter", "r"
]
}
}
}3.选择口译员(可选)
解决顺序: --interpreter → MCP_REPL_INTERPRETER → r.
运行时发现
R 集 R_HOME 强制进行特定安装;否则就是 发现于 R 上 PATH (通过 R RHOME).证实 R.home() 在 会议。
python 解释器按以下顺序解析:
- 最近的
.venv/bin/python从cwd向上走 - 最近的
.venv/bin/python3从cwd向上走 - 第一
python3上PATH - 第一
python上PATH - 回退文字
python3
.venv 搜索停止在 $HOME (包括在内),否则在文件系统中 根。所选Python必须通过其 sysconfig 元数据。运行时拥有的stdout/stderr通过路由 工人IPC;原始fd写入和子进程输出仍被捕获 从worker的stdout/stderr管道。
平台支持
- macOS:支持。
- Linux:支持。开发二进制文件是在Ubuntu上生成的glibc版本
22.04.
- 视窗:R的实验版。Python不是稳定版的一部分
Windows表面还没有。
沙盒
默认策略: workspace-write 网络已禁用。写入权限 覆盖工作区域以及工人所需的温度路径(确切的根 因操作系统/策略而异)。在Windows上,实验性的R沙盒使用 父级准备的工作区ACL加上启动范围的会话临时ACL; 一些环境拒绝受限令牌设置。
看 docs/sandbox.md 精确的行为。
MCP表面
repl→{ "input": "1+1\n", "timeout_ms": 10000 }repl_reset→{}
确切的 repl 工具描述取决于解释器和 --oversized-output 模式。根据工具指南实时发布 docs/tool-descriptions/.
会话控制
- 中断:前缀
repl输入与\u0003(信号,尽最大努力)。会话继续。 - 重置:呼叫
repl_reset,或输入前缀\u0004(Ctrl-D);任何剩余的输入都在新会话中运行。重置尝试优雅关闭,升级为强制终止,在Unix上,如果进程组信号不可用,则回退到扫描子进程。 - 带内出口:
EOF,quit()等也工作——输出是
返回,下一个请求在新的worker中运行。
调试
每次启动时启用JSONL日志:
- CLI:
--debug-dir /path/to/debug-root - 环境:
MCP_REPL_DEBUG_DIR=/path/to/debug-root
每次启动都会写入一个会话目录 events.jsonl,启动 日志和沙盒状态日志。看 docs/debugging.md 获取完整指南,包括外部 有线跟踪代理。
文档
- 工程图:
docs/index.md - 沙箱:
docs/sandbox.md - 工作边带协议:
docs/worker_sideband_protocol.md - 工具指南:
docs/tool-descriptions/
许可证
阿帕奇-2.0。看 LICENSE.
