Python解释器服务

一个允许LLMs与Python环境交互的模型上下文协议(MCP)服务器,支持执行Python代码、管理开发工作流和文件操作。

  • by yzfly
  • Python
  • 本地部署
  • 104 星标
  • 更新于
在 GitHub 查看 yzfly/mcp-python-interpreter

使用说明

MCP Python 解释器

一个模型上下文协议(MCP)服务器,它允许大型语言模型(LLMs)与Python环境进行交互,读写文件,执行Python代码,并管理开发工作流。

特点/特性

  • 环境管理列出并使用不同的Python环境(系统环境和conda环境)
  • 代码执行在任何可用环境中运行Python代码或脚本
  • 包管理列出已安装的包并安装新的包
  • 文件操作:
    • 读取任何类型的文件(文本、源代码、二进制)
    • 编写文本文件和二进制文件
  • Python 提示符用于常见Python任务(如函数创建和调试)的模板

安装

您可以使用 pip 安装 MCP Python 解释器:

pip install mcp-python-interpreter

或者使用紫外线:

uv install mcp-python-interpreter

与Claude桌面版的使用

  1. 安装 Claude Desktop(中文可译为“Claude桌面版”或保持原名“Claude Desktop”,具体根据语境和需求选择)
  2. 打开Claude桌面版,点击菜单,然后选择设置
  3. 转到“开发者”选项卡并点击“编辑配置”
  4. 在你的(内容/列表/等)中添加以下内容 claude_desktop_config.json:
{
  "mcpServers": {
    "mcp-python-interpreter": {
        "command": "uvx",
        "args": [
            "mcp-python-interpreter",
            "--dir",
            "/path/to/your/work/dir",
            "--python-path",
            "/path/to/your/python"
        ],
        "env": {
            "MCP_ALLOW_SYSTEM_ACCESS": 0
        },
    }
  }
}

对于Windows:

{
  "mcpServers": {
    "python-interpreter": {
      "command": "uvx",
      "args": [
        "mcp-python-interpreter",
        "--dir",
        "C:\\path\\to\\your\\working\\directory",
        "--python-path",
        "/path/to/your/python"
      ],
        "env": {
            "MCP_ALLOW_SYSTEM_ACCESS": "0"
        },
    }
  }
}
  1. 重启Claude桌面版
  2. 现在你应该在聊天界面中看到MCP工具的图标

这个(或“它”) --dir 参数是 所需的;要求的 并指定了所有文件将被保存和执行的位置。这有助于通过将MCP服务器隔离到特定目录来维护安全性。

先决条件

  • 确保你已经 uv 已安装。如未安装,请使用以下命令进行安装:
    curl -LsSf https://astral.sh/uv/install.sh | sh
    
  • 对于Windows:
    powershell -ExecutionPolicy Bypass -Command "iwr -useb https://astral.sh/uv/install.ps1 | iex"
    

可用工具

Python 解释器提供了以下工具:

环境与包管理

  • 列出Python环境列出所有可用的Python环境(系统环境和conda环境)
  • 列出已安装的软件包列出特定环境中安装的包
  • 安装软件包在特定环境中安装一个Python包

代码执行

  • 运行Python代码在特定环境中执行Python代码
  • 运行Python文件在特定环境中执行一个Python文件

文件操作

  • 读取文件读取任何文件类型的文件内容,同时考虑文件大小和安全限制
    • 支持带语法高亮的文本文件
    • 显示二进制文件的十六进制表示
  • 写文件创建或覆盖包含文本或二进制内容的文件
  • 编写Python文件创建或覆盖一个专门的Python文件
  • 列出目录列出目录中的Python文件

可用资源

  • **python://environments 翻译为中文是:“Python://环境(或环境列表)”**列出所有可用的Python环境
  • python://packages/{env_name} 翻译为中文是:“Python://包管理/{环境名称}” 或者更自然地表达为:“Python 包管理地址:{环境名称}”。这里,“python://”可能表示的是一个特定于Python的包管理或存储库的协议或前缀,“packages”指的是包集合或包管理,而“{env_name}”则是一个占位符,代表具体的环境名称列出特定环境中的已安装包
  • python://file/{file_path} 翻译为中文是:“Python://文件/{文件路径}” 或者更自然地表达为:“Python 协议访问文件路径 {file_path}”。不过,通常我们不会直接这样翻译文件协议的表述,而是根据上下文来解释其含义,即使用 Python 访问某个文件路径获取Python文件的内容
  • **python://目录/{目录路径}**列出目录中的所有Python文件

提示

  • Python函数模板生成一个Python函数的模板
  • 重构Python代码帮助重构Python代码
  • 调试Python错误帮助调试一个Python错误

示例用法

以下是一些示例,展示您可以要求Claude使用此MCP服务器执行的操作:

  • “显示我系统上所有可用的Python环境”
  • “在我的conda-base环境中运行这段Python代码:print('Hello, world!')”
  • “创建一个名为‘hello.py’的新Python文件,其中包含一个说‘你好’的函数”
  • “读取我的‘data.json’文件的内容”
  • “使用这些设置编写一个新的配置文件……”
  • “列出我系统Python环境中安装的所有包”
  • “在我的系统Python环境中安装requests包”
  • “使用以下参数运行 data_analysis.py:--input=data.csv --output=results.csv”

文件处理能力

MCP Python 解释器现已支持全面的文件操作:

  • 读取最大1MB的文本文件和二进制文件
  • 编写文本文件和二进制文件
  • 源代码文件的语法高亮
  • 二进制文件的十六进制表示
  • 严格的文件路径安全性(仅限于工作目录内)

安全考虑事项

这台MCP服务器可以访问您的Python环境和文件系统。主要的安全功能包括:

  • 隔离的工作目录
  • 文件大小限制
  • 阻止在工作目录外部进行写入操作
  • 明确的覆盖保护

对于你不完全理解的代码或文件操作,一定要谨慎执行。

许可证

麻省理工学院(MIT)