项目简介

Python REPL MCP服务器是一个基于Model Context Protocol (MCP) 的后端服务,它为大型语言模型 (LLM) 客户端提供了一个交互式的Python REPL (Read-Eval-Print Loop) 环境。通过此服务器,LLM可以执行Python代码片段,并获取代码执行的输出结果和会话历史记录,从而扩展LLM的功能,使其能够进行代码执行、数据分析等任务。

主要功能点

  • Python REPL 工具 (Tool): 提供 'python_repl' 工具,允许LLM客户端执行Python代码。服务器为每个会话维护独立的状态,支持执行表达式和语句,并返回标准输出和标准错误输出。
  • 会话历史资源 (Resource): 通过自定义 'repl://' URI 方案提供对REPL会话历史的访问。每个会话的历史记录可以作为 'text/plain' 资源查看,展示每次执行的输入代码和对应的输出。
  • 会话管理: 支持多会话管理,每个会话通过唯一的 'session_id' 标识,保持相互隔离的状态。

安装步骤

  1. 环境准备: 确保已安装 Python 环境和 uv 包管理器。uv 可以通过 pip 安装: 'pip install uv'
  2. 下载仓库: 从 GitHub 克隆或下载 'python_mcp' 仓库到本地。
  3. 安装依赖: 在仓库根目录下,使用 uv 同步依赖: 'uv sync'

服务器配置

要将此 MCP 服务器配置到 MCP 客户端(例如 Claude Desktop),您需要提供服务器的启动命令和参数。以下是配置示例,请根据您的实际仓库路径进行调整。

针对 Claude Desktop 的配置 (以 Development/Unpublished Servers Configuration 为例):

"mcpServers": {
  "python_local": {
    "command": "uv",
    "args": [
      "--directory",
      "/path/to/python_local",  //  请替换为 python_mcp 仓库的本地路径
      "run",
      "python_local"
    ]
  }
}
  • 'server name': 'python_local' (此名称在客户端配置中用于标识该服务器)
  • 'command': 'uv' (用于启动 Python 虚拟环境和运行脚本的包管理器)
  • 'args': 启动参数列表
    • '--directory': 指定工作目录为 'python_local' 仓库根目录
    • 'run': 使用 uv 运行 Python 脚本
    • 'python_local': 运行 'python_local' 包,根据 'src/python_local/init.py' 中的 'main' 函数启动服务器

注意: 请将 '/path/to/python_local' 替换为您实际存放 'python_mcp' 仓库的本地路径。 Published Servers Configuration 通常用于发布后的服务器,此处 Development Configuration 更适合本地开发和测试。

基本使用方法

  1. 启动服务器: 配置完成后,MCP 客户端 (如 Claude Desktop) 应该能够启动 'python_local' MCP 服务器。
  2. 客户端请求: LLM 客户端可以通过 MCP 协议向服务器发送请求,例如:
    • 调用 'python_repl' 工具: 请求执行 Python 代码,需要提供 'code' (要执行的代码) 和 'session_id' (会话ID)。
    • 读取会话历史资源: 请求读取指定 'session_id' 的会话历史记录,通过 'repl://{session_id}/history' URI 访问。
  3. 服务器响应: 服务器会根据请求执行相应的操作,并返回 JSON-RPC 响应,例如代码执行结果或会话历史数据。

重要提示: 'python_repl' 工具的输出 (stdout/stderr) 默认不会直接显示给用户,需要在LLM的响应中进行格式化和总结,以便用户理解代码执行结果。

信息

分类

AI与计算