Python REPL MCP服务器

项目简介

本项目是一个Python REPL (Read-Eval-Print Loop) MCP服务器,它基于 Model Context Protocol (MCP) 构建,旨在为LLM客户端提供执行Python代码的能力。通过该服务器,LLM可以调用预设的工具来运行Python代码片段,并能保持会话状态,实现更复杂的编程和数据处理任务。

主要功能点

  • 代码执行 (execute_python): 允许LLM客户端执行任意Python代码,并返回代码执行的输出结果。支持会话保持,即多次执行代码时,变量和状态会被保留。同时支持重置会话,清除所有已定义的变量。
  • 变量列表 (list_variables): 允许LLM客户端查看当前会话中已定义的变量及其值,方便LLM理解当前上下文状态。
  • 包安装 (install_package): 允许LLM客户端动态安装Python第三方库,扩展Python REPL的功能,满足更广泛的需求。

安装步骤

该项目无需复杂的安装步骤,依赖管理使用 'uv'。

  1. 克隆仓库: 首先,你需要克隆该GitHub仓库到本地。
    git clone https://github.com/piplin-es/mcp-python.git
    cd mcp-python
  2. 运行服务器: 使用 'uv' 运行服务器脚本。
    uv run src/mcp_python/server.py
    或者,你也可以直接运行 'mcp_python' 包:
    uv run mcp_python

服务器配置

为了让MCP客户端(例如 Claude Desktop)连接到此MCP服务器,你需要配置客户端的服务器设置。以下是 Claude Desktop 的配置示例,其他MCP客户端的配置方式类似。

在 Claude Desktop 的配置文件中,添加如下 'mcpServers' 配置:

{
  "mcpServers": {
    "python-repl": {  // 服务器名称,可以自定义
      "command": "uv",  // 启动服务器的命令,这里使用 uv
      "args": [         // 启动命令的参数列表
        "run",        // uv 的 run 命令
        "mcp_python" // 运行 mcp_python 包 (或者 "src/mcp_python/server.py" 如果直接运行 server.py 脚本)
      ],
      // 如果你的 mcp-python 仓库不在用户根目录下,请指定仓库的绝对路径
      // "directory": "/absolute/path/to/mcp-python"
    }
  }
}

注意:

  • '"server name"': 'python-repl' 可以自定义,用于在客户端中标识该服务器。
  • '"command"': 必须是系统中可执行的命令,这里使用 'uv'。请确保你的环境中已安装 'uv'。
  • '"args"': 参数列表需要根据实际情况调整。如果直接运行 'server.py' 脚本,则 'args' 可以是 '["run", "src/mcp_python/server.py"]'。
  • '"directory"': (可选) 如果你的 MCP 客户端启动时的工作目录与 'mcp-python' 仓库根目录不同,可能需要指定 'directory' 参数,指向仓库的绝对路径,以确保服务器能够正确运行。

基本使用方法

配置完成后,在MCP客户端中选择配置的服务器(例如 'python-repl'),即可通过客户端界面或指令调用服务器提供的工具。

示例工具调用:

  1. 执行Python代码: 使用 'execute_python' 工具执行Python代码。例如,发送如下请求给服务器:

    {
      "jsonrpc": "2.0",
      "method": "execute_python",
      "params": {
        "code": "print('Hello, MCP!')\na = 10",
        "reset": false // 可选,默认为 false,设置为 true 时会重置会话
      },
      "id": 1
    }

    服务器会执行代码 'print('Hello, MCP!')\na = 10',并返回执行结果。变量 'a' 将会被保存在会话中。

  2. 列出变量: 使用 'list_variables' 工具查看当前会话中的变量。

    {
      "jsonrpc": "2.0",
      "method": "list_variables",
      "params": {},
      "id": 2
    }

    服务器会返回当前会话中所有已定义变量的列表。

  3. 安装Python包: 使用 'install_package' 工具安装第三方库。

    {
      "jsonrpc": "2.0",
      "method": "install_package",
      "params": {
        "package": "requests" // 要安装的包名
      },
      "id": 3
    }

    服务器会尝试安装 'requests' 库,安装成功后,你就可以在后续的 'execute_python' 调用中使用 'import requests' 了。

通过以上步骤,你可以成功搭建并使用 Python REPL MCP 服务器,为你的 LLM 应用提供强大的Python代码执行能力。

信息

分类

AI与计算