代码执行器添加福利群:解决AI开发者的「MCP实战痛点」MCP 代码执行器是一个 MCP 服务器,允许 LLM 在指定的 Python 环境中执行 Python 代码。这使得 LLM 可以在访问环境中定义的库和依赖项的情况下运行代码。它还支持增量代码生成,以处理可能超出令牌限制的大型代码块。
git clone https://github.com/bazinga012/mcp_code_executor.git

cd mcp_code_executor

npm install
npm run build
要配置 MCP 代码执行器服务器,请将以下内容添加到您的 MCP 服务器配置文件中:
{
"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"
}
}
}
}

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

注意: Dockerfile 仅测试了 venv-uv 环境类型。其他环境类型可能需要额外配置。
CODE_STORAGE_DIR: 生成代码的存储目录对于 Conda:
ENV_TYPE: 设置为 condaCONDA_ENV_NAME: 要使用的 Conda 环境名称对于标准 Virtualenv:
ENV_TYPE: 设置为 venvVENV_PATH: virtualenv 目录的路径对于 UV Virtualenv:
ENV_TYPE: 设置为 venv-uvUV_VENV_PATH: UV virtualenv 目录的路径MCP 代码执行器为 LLM 提供以下工具:
execute_code在配置的环境中执行 Python 代码。最适合短代码片段。
{
"name": "execute_code",
"arguments": {
"code": "import numpy as np\nprint(np.random.rand(3,3))",
"filename": "matrix_gen"
}
}

install_dependencies在环境中安装 Python 包。
{
"name": "install_dependencies",
"arguments": {
"packages": ["numpy", "pandas", "matplotlib"]
}
}

check_installed_packages检查包是否已安装在环境中。
{
"name": "check_installed_packages",
"arguments": {
"packages": ["numpy", "pandas", "non_existent_package"]
}
}

configure_environment动态更改环境配置。
{
"name": "configure_environment",
"arguments": {
"type": "conda",
"conda_name": "new_env_name"
}
}

get_environment_config获取当前环境配置。
{
"name": "get_environment_config",
"arguments": {}
}

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"
}
}

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"
}
}

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"
}
}

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 令牌限制的较大代码块,请使用增量代码生成方法:
initialize_code_file 创建基本结构append_to_code_fileread_code_fileexecute_code_file这种方法允许 LLM 编写复杂、多部分的代码,而不会遇到令牌限制。
此包保持与早期版本的向后兼容性。仅指定了 Conda 环境的先前版本用户将继续工作,无需更改其配置。
欢迎贡献!请提出问题或提交拉取请求。
此项目根据 MIT 许可证授权。