项目简介

mcp_safe_local_python_executor 是一个基于 Model Context Protocol (MCP) 的服务器实现,它将 Hugging Face 的 'LocalPythonExecutor' 封装成一个可以通过 MCP 协议调用的工具。'LocalPythonExecutor' 提供了一个相对安全的本地 Python 代码执行环境,避免了直接使用 'eval()' 等不安全的方法。该 MCP 服务器允许 LLM 应用(如 Claude Desktop、Cursor 等 MCP 客户端)安全地执行 Python 代码,实现代码解释器类似的功能。

主要功能点

  • 提供 'run_python' 工具: 通过 MCP 协议暴露 'run_python' 工具,允许 LLM 客户端发送 Python 代码到服务器执行。
  • 安全的代码执行环境: 使用 'LocalPythonExecutor' 在受限的 Python 环境中执行代码,禁止文件 I/O 操作,并限制了可导入的模块列表,提高了安全性。
  • 基于 'uv' 和 Python venv 运行: 使用 'uv' 管理 Python 虚拟环境和依赖,简化了安装和运行过程。
  • 易于集成到 MCP 客户端: 提供了 Claude Desktop 的配置示例,方便用户快速集成到支持 MCP 协议的 LLM 应用中。

安装步骤

  1. 安装 'uv': 按照 uv 官方文档 安装 'uv' 包管理器。例如,在 macOS 上可以使用 'brew install uv' 命令安装。
  2. 克隆仓库: 使用 'git clone https://github.com/maxim-saplin/mcp_safe_local_python_executor' 命令克隆仓库到本地。
  3. 进入仓库目录: 使用 'cd mcp_safe_local_python_executor' 命令进入仓库目录。
  4. 启动服务器: 在仓库目录下,运行 'uv run mcp_server.py' 命令启动 MCP 服务器。'uv' 会自动创建虚拟环境并安装依赖 ('smollagents', 'mcp')。

服务器配置

MCP 服务器需要配置到 MCP 客户端中才能使用。以 Claude Desktop 为例,需要在 Claude Desktop 的配置文件 ('claude_desktop_config.json') 中添加 'mcpServers' 配置项。以下是配置示例,请根据实际情况修改路径:

{
    "mcpServers": {
        "safe-local-python-executor": {  // 服务器名称,客户端用此名称引用
            "command": "uv",             // 启动服务器的命令
            "args": [                    // 启动服务器命令的参数
                "--directory",          // 指定工作目录
                "/path/to/mcp_local_python_executor/", //  **请替换为你的 mcp_safe_local_python_executor 仓库的本地路径**
                "run",                  //  uv run 子命令,用于运行 Python 脚本
                "mcp_server.py"         //  要运行的 Python 脚本,即 MCP 服务器程序
            ]
        }
    }
}

注意: 请将上述配置中的 '/path/to/mcp_local_python_executor/' 替换为你实际克隆的 'mcp_safe_local_python_executor' 仓库的本地绝对路径。配置完成后,重启 Claude Desktop 或其他 MCP 客户端,即可识别并使用该 MCP 服务器提供的 'run_python' 工具。

基本使用方法

配置完成后,在支持 MCP 协议的 LLM 客户端中,可以使用自然语言提示词来调用 'run_python' 工具执行 Python 代码。例如,在 Claude Desktop 中,可以使用以下提示词:

  • "使用 Python 计算 5 的阶乘"
  • "用 Python 创建一个 100 以内的质数列表"
  • "使用 Python 解决方程 x^2 + 5x + 6 = 0"

客户端会将这些提示转换为对 'run_python' 工具的 MCP 请求,服务器执行代码后会将结果返回给客户端。客户端通常会将结果整合到对话回复中。

信息

分类

AI与计算