Docker 代码执行器
一个基于 MCP(Model Context Protocol)的安全服务,用于在隔离的 Docker 容器中执行代码。该服务为测试和运行各种编程语言的代码片段或项目提供了一个安全的环境。
功能特性
- 隔离执行:在 Docker 容器中安全地运行代码
- 多语言支持:支持执行 Python、Bash 及其他语言的代码
- 文件操作:在容器内读取、写入和管理文件
- 目录管理:创建和浏览项目结构
- 容器生命周期:完整管理执行环境
- 灵活的通信方式:支持 stdio 和 HTTP 通信
环境要求
- Python 3.8+
- Docker
- MCP 库 v1.6.0+
- docker-py
安装
使用指南
启动服务器
标准输入/输出(stdio)模式
SSE 模式
使用客户端
项目包含一个轻量级客户端,用于与服务器交互:
API 参考
Docker 代码执行器提供了以下核心工具:
工具 | 描述 |
create_executor | 创建一个新的 Docker 代码执行器实例 |
execute_code | 在容器中运行指定语言的代码 |
delete_executor | 移除执行器并清理资源 |
list_directory | 列出容器内目录的内容 |
read_file | 读取文件内容 |
write_file | 向文件写入内容 |
create_directory | 创建一个新目录 |
project_structure | 生成项目结构的树状视图 |
示例用法
客户端代码示例
安全考虑
Docker 代码执行器实现了多项安全措施:
- 具有资源限制的隔离 Docker 容器
- 网络隔离以防止未经授权的访问
- 输入验证以防止代码注入攻击
- 容器权限限制
- 资源配额(内存、CPU)以防止 DoS 攻击
对于生产环境部署,建议添加以下措施:
- 身份验证和授权
- 速率限制
- 网络防火墙规则
- 额外的 Docker 安全配置文件
贡献指南
欢迎贡献!请遵循以下步骤:
- Fork 仓库
- 创建功能分支
- 进行修改
- 提交 Pull Request
请确保您的代码遵循项目的风格指南,并包含适当的测试。
许可证
本项目采用 MIT 许可证。详情请参阅 LICENSE 文件。
- Author:waytomcp
- URL:https://www.waytomcp.com/article/Ard-Skelling/docker-code-executor-mcp
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!