使用说明
项目简介
'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 可以回顾之前的交互,并基于历史信息进行更复杂的推理和决策。
安装步骤
- 环境准备: 确保你的机器上已安装 Python 环境和 uv 包管理器。
- 下载代码: 从 GitHub 仓库 MCP-Mirror/Alec2435_python_mcp 克隆或下载源代码。
- 安装依赖: 在项目根目录下打开终端,运行命令 '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 的已发布包 ] } }
基本使用方法
- 启动服务器: 配置完成后,当 MCP 客户端(如 Claude Desktop)启动时,会自动尝试连接到配置的 'python_local MCP Server'。服务器会在后台运行,并通过标准输入/输出 (stdio) 与客户端进行通信。
- 使用 'python_repl' 工具: 在支持 MCP 工具调用的 LLM 应用中,你可以指示 LLM 使用 'python_repl' 工具来执行 Python 代码。你需要提供以下参数:
- 'code': 要执行的 Python 代码字符串。
- 'session_id': 会话 ID,用于指定在哪个会话中执行代码。如果会话不存在,服务器会自动创建新的会话。
- 访问会话历史: LLM 客户端可以通过构造 'repl://{session_id}/history' 格式的 URI,并使用 MCP 的资源读取功能来获取指定会话的完整历史记录。
注意: 'python_repl' 工具的输出 (stdout/stderr) 默认不会直接展示给用户,需要在 LLM 应用中进行适当的格式化和呈现。
信息
分类
开发者工具