使用说明

项目简介

'python_local MCP Server' 是一个基于 Model Context Protocol (MCP) 构建的服务器,它将 Python REPL (Read-Eval-Print Loop) 环境作为服务提供给大型语言模型 (LLM) 客户端。通过该服务器,LLM 客户端可以利用 'python_repl' 工具执行 Python 代码,并能访问和回顾 REPL 会话的历史记录,从而增强 LLM 的交互能力和上下文理解。

主要功能点

  • Python 代码执行工具 (Tool):

    • 提供名为 'python_repl' 的工具,允许 LLM 客户端发送 Python 代码到服务器端执行。
    • 每个会话 (session) 拥有独立的运行环境和状态,确保代码执行的隔离性。
    • 支持执行任意 Python 代码,包括表达式和语句。
    • 执行结果(标准输出和标准错误)会被捕获并返回,但需要开发者在 LLM 应用中妥善处理和展示给用户。
  • REPL 会话历史资源 (Resource):

    • 允许 LLM 客户端通过 'repl://{session_id}/history' 格式的 URI 访问特定会话的完整历史记录。
    • 历史记录以 'text/plain' 格式提供,包含每个执行步骤的输入代码以及对应的输出结果。
    • 这使得 LLM 可以回顾之前的交互,并基于历史信息进行更复杂的推理和决策。

安装步骤

  1. 环境准备: 确保你的机器上已安装 Python 环境和 uv 包管理器
  2. 下载代码: 从 GitHub 仓库 MCP-Mirror/Alec2435_python_mcp 克隆或下载源代码。
  3. 安装依赖: 在项目根目录下打开终端,运行命令 'uv sync' 来安装项目依赖。

服务器配置

要将 'python_local MCP Server' 集成到 MCP 客户端(例如 Claude Desktop),你需要配置客户端使其能够连接到该服务器。以下是针对 Claude Desktop 的配置示例,你需要将配置信息添加到 'claude_desktop_config.json' 文件中。

配置示例 (Development/Unpublished Servers):

"mcpServers": {
  "python_local": {
    "command": "uv",
    "args": [
      "--directory",
      "/path/to/python_local",  // 替换为你的 python_local 项目的实际路径
      "run",
      "python_local"
    ]
  }
}

参数说明:

  • '"command": "uv"': 指定启动服务器的命令为 'uv' 包管理器。
  • '"args": [...]': 启动参数列表。
    • '"--directory"': 指定工作目录。
    • '"/path/to/python_local"': 请务必替换为你的 'python_local MCP Server' 仓库在本地文件系统中的实际绝对路径。
    • '"run"': 'uv run' 命令用于运行 Python 包或模块。
    • '"python_local"': 指定要运行的 Python 包名称,对应项目中的 'src/python_local' 目录,'uv run python_local' 会执行 'src/python_local/init.py' 文件中的 'main()' 函数,从而启动服务器。

配置示例 (Published Servers):

如果服务器被打包发布,可以使用 'uvx' 命令运行:

"mcpServers": {
  "python_local": {
    "command": "uvx",
    "args": [
      "python_local" // 运行名为 python_local 的已发布包
    ]
  }
}

基本使用方法

  1. 启动服务器: 配置完成后,当 MCP 客户端(如 Claude Desktop)启动时,会自动尝试连接到配置的 'python_local MCP Server'。服务器会在后台运行,并通过标准输入/输出 (stdio) 与客户端进行通信。
  2. 使用 'python_repl' 工具: 在支持 MCP 工具调用的 LLM 应用中,你可以指示 LLM 使用 'python_repl' 工具来执行 Python 代码。你需要提供以下参数:
    • 'code': 要执行的 Python 代码字符串。
    • 'session_id': 会话 ID,用于指定在哪个会话中执行代码。如果会话不存在,服务器会自动创建新的会话。
  3. 访问会话历史: LLM 客户端可以通过构造 'repl://{session_id}/history' 格式的 URI,并使用 MCP 的资源读取功能来获取指定会话的完整历史记录。

注意: 'python_repl' 工具的输出 (stdout/stderr) 默认不会直接展示给用户,需要在 LLM 应用中进行适当的格式化和呈现。

信息

分类

开发者工具