用于沙盒Python代码执行的MCP服务器
此MCP服务器允许您的LLM安全地执行python代码并返回结果,包括文件。 该代码在可配置的沙盒环境中执行,具有很强的默认值,如无网络访问和严重 有限的文件写入权限。
它非常适合LLM遇到幻觉的复杂用例。例如,需要很多东西的东西 在数学领域,LLM是出了名的挑剔,或者如果你想生成很酷的图形。 如果你这样做,你的法学硕士将永远能够计算草莓中“r”的数量!
快速开始
MCP-通过Docker(推荐)
WIP支持不是最优的,因为人择沙盒运行时目前只在特权docker中运行 配置。 等待他们为容器添加适当的支持,现有的选项似乎什么也没做:D
如果你仍然想使用它,这是命令: docker run --privileged .
之后,您可以直接传递CLI设置,dockerfile使用入口点启动服务器并监听 所有参数。
注:
- Docker会自动为运行时创建一个单独的UV-python解释器,所以你不必传递它:)
- 要控制python版本和包,请使用docker build args
PYTHON_VERSION和PYTHON_DEPENDENCIES(空格
单独列表)
MCP-通过直接托管
pip install mcp-run-isolated-python
然后,只需运行命令即可启动服务器: mcp-run-isolated-python
作为python包
这种方法通常不建议用于任何生产用途,因为它删除了许多此类项目的安全功能。
但如果你喜欢危险的生活,或者你是唯一一个使用它的人,或者你正在构建一个超快速的原型——这很好,应该是安全的,因为它仍然在使用沙盒代码执行。
from mcp_run_isolated_python import CodeSandbox, CodeSandboxSettings
settings = CodeSandboxSettings(...)
# sync use
with CodeSandbox(settings=settings) as sandbox:
result = sandbox.eval("print(1 + 1)")
print(result)
# async use
async with CodeSandbox(settings=settings) as sandbox:
result = await sandbox.eval("print(1 + 1)")
print(result)______________________________________________________________________
为什么是这个工具?
我建立这个是出于对现有生态系统的沮丧。 大多数现有工具都没有将重点放在安全上,如果你生活在企业环境中,这是不可能的 或者希望在您自己的计算机上为多个用户使用此功能。
安全注意事项
这个工具的设计非常注重安全性——毕竟,让LLM不受限制地访问代码执行器是相当不错的 风险。 为了加强安全性,强烈建议在隔离容器中使用此服务器,如docker。
安全功能
- 使用
srt,一个人为限制LLM访问而构建的shell沙盒,更多
信息 这里 - 删除网络访问 - 删除对任何不允许的文件夹的写入权限 - 删除对指定文件夹的读取权限 - 限制对unix套接字的访问
- 使用docker将主机系统与执行代码的系统隔离开来
- 删除LLM进程的所有env变量
公开的安全问题
- 读取主机系统上的文件内容-需要使用srt设置逐案限制
与(一些)其他工具的比较
真的太多了,数不清。 我在这里没有包括大多数人,因为大多数人根本不关心沙盒。
以下是我认为与安全性最相关的内容。
| 名称 | 强沙盒 | 开源和自稳定 | 维护 | 发布 | 完全python和包支持 | 文件输出支持 |
|---|---|---|---|---|---|---|
| 本项目 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| 蒙蒂 | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
| Pydantic MCP服务器 | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ |
| 沙盒服务,如代托纳 | ✅ | ❌ | ✅ | ❌ | ✅ | ✅ |
| 内置,就像双子座一样 | ✅ | ❌ | ✅ | ❌ | ❌ | ✅ |
