MCP代码执行器是一个MCP服务器,允许大型语言模型(LLMs)在指定的Python环境中执行Python代码。这使得LLMs能够运行具有环境定义库和依赖项访问权限的代码。它还支持增量代码生成,以处理可能超过令牌限制的大代码块。
<a href="https://glama.ai/mcp/servers/45ix8xode3"><img width="380" height="200" src="https://gips2.baidu.com/it/u=2541144825,3782546991&fm=3081&app=3081&f=PNG?w=760&h=400" alt="代码执行器MCP服务器" /></a>
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环境名称对于标准虚拟环境:
ENV_TYPE:设置为venvVENV_PATH:虚拟环境目录路径对于UV虚拟环境:
ENV_TYPE:设置为venv-uvUV_VENV_PATH:UV虚拟环境目录路径MCP代码执行器向LLMs提供以下工具:
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代码执行器将允许LLMs通过在指定的CODE_STORAGE_DIR中生成文件并在配置的环境中运行来执行Python代码。
LLMs可以通过在其提示中引用此MCP服务器来生成和执行代码。
对于可能超过LLM令牌限制的大代码块,使用增量代码生成方法:
initialize_code_file初始化一个基本结构的文件append_to_code_file在后续调用中添加更多代码read_code_file验证文件内容execute_code_file执行完整的代码这种方法允许LLMs编写复杂的多部分代码而不受令牌限制的影响。
此包保持与早期版本的向后兼容性。仅指定了Conda环境的先前版本用户将继续工作,无需更改其配置。
欢迎贡献!请打开一个问题或提交一个拉取请求。
本项目根据MIT许可证授权。