Docker开发环境服务器

一个基于Docker的按需开发环境服务器,支持多种技术栈的快速搭建和容器化管理。

  • by ClaudiuJitea
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 ClaudiuJitea/devenv-mcp-server

使用说明

DevEnv MCP服务器

MCP(模型上下文协议)服务器,提供 基于Docker的开发环境 根据需求。

任何AI代理(Claude、Gemini、Cursor等)都可以调用这些工具来创建、管理和检查容器化的开发环境——完全不用动手。无需为每个新项目手动设置Node、Python或Docker Compose。

特性

  • 即时脚手架: 使用一个命令创建全栈项目(Next.js、Flask、FastAPI等)。
  • Docker隔离: 每个环境都在自己的容器中运行,保持主机的清洁。
  • 两种工作空间模式: isolated (默认情况下,仅容器文件)或 mapped (绑定装载的主机文件)。
  • 免提依赖: AI会自动安装所需的软件包并设置环境。
  • 直接文件访问: write_file 和 read_file 工具允许代理修改容器内的文件。
  • 便携式导出: export_environment 将环境快照到Docker镜像tarball中。
  • 通用IDE支持: 适用于VS Code(Gemini)、Claude Desktop、Cursor、Windsurf和Claude CLI。

支持的堆栈

堆栈 框架 基础映像 默认端口
flask Flask(Python) python:3.12-slim 5000
django Django(Python) python:3.12-slim 8000
fastapi FastAPI(Python) python:3.12-slim 8000
nextjs Next.js(React) node:20-slim 3000
vite-react Vite+反应 node:20-slim 5173
vite-vue 快速+查看 node:20-slim 5173
express Express.js node:20-slim 3000
static-html 静态HTML/CSS/JS node:20-slim 8080
laravel larvel(PHP) php:8.3-fpm-alpine 8000
symfony Symfony(PHP) php:8.3-fpm-alpine 8000
nestjs NestJS(Node.js) node:22-slim 3000
bun-hono 荣誉。 oven/bun:1-alpine 3000
rust-axum Axum/Actix(锈蚀) rust:1-slim 8080
go-gin 杜松子酒/纤维(Go) golang:1.24-alpine 8080
nginx-static Nginx(静态资产) nginx:alpine 80

先决条件

  • 码头工人 随着 docker compose v2已安装并正在运行。
  • Python 3.10+ 随着 pip.

快速开始

  1. 克隆和安装:

    git clone https://github.com/ClaudiuJitea/devenv-mcp-server.git
    cd devenv-mcp-server
    pip install -r requirements.txt
    
  2. 配置IDE: (参见 IDE 集成 在......下面

  3. 开始创建: 问你的AI代理:

    “使用devenv工具创建一个名为'my portfolio'的新Next.js项目。”

IDE 集成

Gemini代码辅助(VS代码)

添加到您的VS代码 settings.json:

{
  "gemini.mcp.servers": {
    "devenv": {
      "command": "python3",
      "args": ["/absolute/path/to/server.py"],
      "env": {}
    }
  }
}

克劳德桌面版

增添 ~/.config/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "devenv": {
      "command": "python3",
      "args": ["/absolute/path/to/server.py"]
    }
  }
}

光标/风帆/克劳德CLI

服务器通过以下方式支持标准MCP协议 stdio.使用路径 server.py 在您的配置中。

可用工具

工具 说明
list_supported_stacks 显示所有可用的技术栈
create_environment 创建新的Docker开发环境
list_environments 列出所有环境及其状态
start_environment 启动已停止的环境
stop_environment 停止运行环境
destroy_environment 默认情况下删除环境、容器、卷、关联的映像和文件
exec_command 在容器内运行命令
write_file 在容器的/app中写入/创建文件
read_file 从容器的/app读取文件
get_environment_info 获取详细的环境信息
export_environment 导出可移植映像tar并生成部署脚本

工作区模式

create_environment 支持 workspace_mode:

  • isolated (默认):无主机绑定挂载。源代码、依赖项和生成的文件都保留在容器中。
  • mapped:从绑定装载项目文件 ~/devenv-projects/<project> 到 /app 用于直接主机编辑。

建议默认值为 isolated 当您需要可移植性和主机隔离时。

运作原理

  1. 请求: AI代理识别堆栈需求(例如,“我想要一个Flask应用程序”)。
  2. 执行: 它召唤 create_environment(project_name="app", stack="flask", workspace_mode="isolated").
  3. 配置: MCP服务器:
    • 在以下位置创建项目目录 ~/devenv-projects/<project>/.
    • 生成Dockerfile、compose和元数据文件。
    • 为该项目构建并启动一个专用容器。
    • 需要时运行特定于堆栈的初始化命令。
  4. 编辑工作流:
    • 在 isolated 模式,使用 write_file, read_file,以及 exec_command 完全在容器中工作。
    • 在 mapped 模式下,直接从主机编辑文件,它们会反映在容器中。
  5. 便携性: 呼叫 export_environment 快照并保存tarball(docker load -i ... 在另一台机器上)。在映射模式下,导出会首先自动将映射的主机文件捕获到一个隔离的图像中。出口还写道 deploy-<project>.sh 和 deploy-<project>.ps1 在焦油旁边。

目录结构

~/devenv-projects/
└── my-project/
    ├── Dockerfile
    ├── docker-compose.yml
    ├── .devenv.json
    ├── app.py            # or stack scaffold files
    └── ...

发展

要手动测试服务器,请执行以下操作:

python3 server.py

或者使用 MCP检查员:

npx @modelcontextprotocol/inspector python3 server.py

专为AI优先开发人员工作流程而构建。