首页
学习
活动
专区
圈层
工具
发布
MCP广场 >详情页
代码执行器2026-10-23322分享添加福利群:解决AI开发者的「MCP实战痛点」
允许大型语言模型(LLMs)在指定的 Conda 环境中执行 Python 代码,从而能够访问高效代码执行所需的相关库和依赖项。
By bazinga012
2026-10-23322
github
详情内容

MCP 代码执行器

smithery 徽章

MCP 代码执行器是一个 MCP 服务器,允许 LLM 在指定的 Python 环境中执行 Python 代码。这使得 LLM 可以在访问环境中定义的库和依赖项的情况下运行代码。它还支持增量代码生成,以处理可能超出令牌限制的大型代码块。

代码执行器 MCP 服务器

功能

  • 从 LLM 提示中执行 Python 代码
  • 支持增量代码生成以克服令牌限制
  • 在指定环境(Conda、virtualenv 或 UV virtualenv)中运行代码
  • 在需要时安装依赖项
  • 检查包是否已安装
  • 在运行时动态配置环境
  • 可配置的代码存储目录

前提条件

  • 已安装 Node.js
  • 以下之一:
    • 已安装 Conda 并创建了所需的 Conda 环境
    • Python virtualenv
    • UV virtualenv

设置

  1. 克隆此仓库:
git clone https://github.com/bazinga012/mcp_code_executor.git
  1. 进入项目目录:
cd mcp_code_executor
  1. 安装 Node.js 依赖项:
npm install
  1. 构建项目:
npm run build

配置

要配置 MCP 代码执行器服务器,请将以下内容添加到您的 MCP 服务器配置文件中:

使用 Node.js

{
  "mcpServers": {
    "mcp-code-executor": {
      "command": "node",
      "args": [
        "/path/to/mcp_code_executor/build/index.js" 
      ],
      "env": {
        "CODE_STORAGE_DIR": "/path/to/code/storage",
        "ENV_TYPE": "conda",
        "CONDA_ENV_NAME": "your-conda-env"
      }
    }
  }
}

使用 Docker

{
  "mcpServers": {
    "mcp-code-executor": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "mcp-code-executor"
      ]
    }
  }
}

注意: Dockerfile 仅测试了 venv-uv 环境类型。其他环境类型可能需要额外配置。

环境变量

必填变量

  • CODE_STORAGE_DIR: 生成代码的存储目录

环境类型(选择一种设置)

  • 对于 Conda:

    • ENV_TYPE: 设置为 conda
    • CONDA_ENV_NAME: 要使用的 Conda 环境名称
  • 对于标准 Virtualenv:

    • ENV_TYPE: 设置为 venv
    • VENV_PATH: virtualenv 目录的路径
  • 对于 UV Virtualenv:

    • ENV_TYPE: 设置为 venv-uv
    • UV_VENV_PATH: UV virtualenv 目录的路径

可用工具

MCP 代码执行器为 LLM 提供以下工具:

1. execute_code

在配置的环境中执行 Python 代码。最适合短代码片段。

{
  "name": "execute_code",
  "arguments": {
    "code": "import numpy as np\nprint(np.random.rand(3,3))",
    "filename": "matrix_gen"
  }
}

2. install_dependencies

在环境中安装 Python 包。

{
  "name": "install_dependencies",
  "arguments": {
    "packages": ["numpy", "pandas", "matplotlib"]
  }
}

3. check_installed_packages

检查包是否已安装在环境中。

{
  "name": "check_installed_packages",
  "arguments": {
    "packages": ["numpy", "pandas", "non_existent_package"]
  }
}

4. configure_environment

动态更改环境配置。

{
  "name": "configure_environment",
  "arguments": {
    "type": "conda",
    "conda_name": "new_env_name"
  }
}

5. get_environment_config

获取当前环境配置。

{
  "name": "get_environment_config",
  "arguments": {}
}

6. initialize_code_file

创建带有初始内容的新 Python 文件。将此作为可能超出令牌限制的较长代码的第一步。

{
  "name": "initialize_code_file",
  "arguments": {
    "content": "def main():\n    print('Hello, world!')\n\nif __name__ == '__main__':\n    main()",
    "filename": "my_script"
  }
}

7. append_to_code_file

将内容附加到现有的 Python 代码文件中。使用此工具将更多代码添加到使用 initialize_code_file 创建的文件中。

{
  "name": "append_to_code_file",
  "arguments": {
    "file_path": "/path/to/code/storage/my_script_abc123.py",
    "content": "\ndef another_function():\n    print('This was appended to the file')\n"
  }
}

8. execute_code_file

执行现有的 Python 文件。在使用 initialize_code_file 和 append_to_code_file 构建代码后,将此作为最后一步。

{
  "name": "execute_code_file",
  "arguments": {
    "file_path": "/path/to/code/storage/my_script_abc123.py"
  }
}

9. read_code_file

读取现有 Python 代码文件的内容。使用此工具在附加更多内容或执行文件之前验证文件的当前状态。

{
  "name": "read_code_file",
  "arguments": {
    "file_path": "/path/to/code/storage/my_script_abc123.py"
  }
}

使用

一旦配置完成,MCP 代码执行器将允许 LLM 通过生成指定 CODE_STORAGE_DIR 中的文件并在配置的环境中运行来执行 Python 代码。

LLM 可以通过在提示中引用此 MCP 服务器来生成和执行代码。

处理大型代码块

对于可能超出 LLM 令牌限制的较大代码块,请使用增量代码生成方法:

  1. 初始化文件 使用 initialize_code_file 创建基本结构
  2. 添加更多代码 在后续调用中使用 append_to_code_file
  3. 验证文件内容 如果需要,使用 read_code_file
  4. 执行完整代码 使用 execute_code_file

这种方法允许 LLM 编写复杂、多部分的代码,而不会遇到令牌限制。

向后兼容性

此包保持与早期版本的向后兼容性。仅指定了 Conda 环境的先前版本用户将继续工作,无需更改其配置。

贡献

欢迎贡献!请提出问题或提交拉取请求。

许可证

此项目根据 MIT 许可证授权。

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档