DevPod的MCP服务器
MCP(模型上下文协议)服务器,提供以下接口 DevPod,使AI助手能够以编程方式管理开发环境。
特性
- 工作空间管理:创建、启动、停止和删除DevPod工作区
- 供应商管理:列出并添加DevPod提供者
- SSH访问:通过SSH在工作区中执行命令
- 状态监测:检查工作区的状态
- 多个传输:支持STDIO、SSE(服务器发送事件)和HTTP流传输
先决条件
- DevPod命令行界面 已安装并配置(包含在Docker镜像中)
- 转到1.19或更高版本(用于从源代码构建)
- Docker(用于容器化部署)
安装
选项1:来源
git clone https://github.com/Protobomb/mcp-server-devpod_git
cd mcp-server-devpod
go build -o mcp-server-devpod选项2:使用Docker
在预装了DevPod的容器中运行服务器:
# Using docker-compose
docker-compose up -d
# Or using docker directly
docker run -d \
--name mcp-server-devpod \
-p 8080:8080 \
-v /var/run/docker.sock:/var/run/docker.sock:ro \
-v devpod-data:/home/mcp/.devpod \
-e MCP_TRANSPORT=sse \
-e DEVPOD_PROVIDER=docker \
ghcr.io/protobomb/mcp-server-devpod:latest集装箱包括:
- 预装的DevPod客户端
- 远程访问的SSE传输支持
- 可配置的环境变量
- Docker套接字和DevPod数据持久化的卷挂载
用法
STDIO模式(默认)
./mcp-server-devpodSSE模式
./mcp-server-devpod -transport=sse -addr=8080HTTP流模式
./mcp-server-devpod -transport=http-streams -addr=8080HTTP Streams传输提供:
- 完全符合MCP协议:按照MCP规范完成实施
- 会话管理:使用UUID会话ID进行基于会话的安全通信
- 双向通信:客户端的POST/mcp→服务器,SSE代表服务器→客户端响应
- 健康端点:GET/health用于服务监控
- CORS支持:用于web客户端兼容性的完整CORS标头
环境变量(Docker)
在Docker中运行时,您可以使用以下环境变量配置服务器:
MCP_TRANSPORT:运输类型(stdio,sse,或http-streams,默认值:sse)MCP_ADDR:SSE和HTTP流服务器的地址(默认值::8080)DEVPOD_HOME:DevPod主目录(默认:/home/mcp/.devpod)DEVPOD_PROVIDER:默认DevPod提供程序(默认值:docker)DEVPOD_DOCKER_HOST:DevPod的Docker主机(默认:unix:///var/run/docker.sock)
可用工具
服务器通过MCP协议公开以下工具:
工作空间管理
devpod_listWorkspaces:列出所有DevPod工作区devpod_createWorkspace:创建新工作区
- 参数: - name (必填):工作区名称 - source (必需):存储库URL或本地路径 - provider (可选):要使用的提供程序 - ide (可选):要使用的IDE
devpod_startWorkspace:启动工作区
- 参数: - name (必填):工作区名称 - ide (可选):要使用的IDE
devpod_stopWorkspace:停止工作区
- 参数: - name (必填):工作区名称
devpod_deleteWorkspace:删除工作区
- 参数: - name (必填):工作区名称 - force (可选):未经确认强制删除
devpod_status:获取工作区状态
- 参数: - name (必填):工作区名称
供应商管理
devpod_listProviders:列出所有可用的提供商devpod_addProvider:添加新提供程序
- 参数: - name (必填):提供商名称 - options (可选):特定于提供商的选项
远程访问
devpod_ssh:通过SSH在工作区中执行命令
- 参数: - name (必填):工作区名称 - command (可选):要执行的命令
MCP客户端使用示例
HTTP流传输使用情况
HTTP Streams传输遵循基于HTTP的通信的MCP规范:
# 1. Initialize session
curl -X POST http://localhost:8080/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "initialize",
"params": {
"protocolVersion": "2024-11-05",
"capabilities": {},
"clientInfo": {"name": "test-client", "version": "1.0.0"}
}
}'
# 2. Connect to SSE stream (use session ID from above response)
curl -N "http://localhost:8080/mcp?session=SESSION_ID"
# 3. Send messages (in another terminal)
curl -X POST "http://localhost:8080/mcp?session=SESSION_ID" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/list"
}'
# 4. Check health
curl http://localhost:8080/health创建工作区
{
"jsonrpc": "2.0",
"id": 1,
"method": "devpod_createWorkspace",
"params": {
"name": "my-project",
"source": "https://github.com/user/my-project.git",
"provider": "docker",
"ide": "vscode"
}
}列出工作区
{
"jsonrpc": "2.0",
"id": 2,
"method": "devpod_listWorkspaces",
"params": {}
}在工作区中执行命令
{
"jsonrpc": "2.0",
"id": 3,
"method": "devpod_ssh",
"params": {
"name": "my-project",
"command": "npm install"
}
}与AI助手集成
此MCP服务器可以与支持模型上下文协议的AI助手集成,例如:
- 克劳德桌面
- 其他MCP兼容客户端
配置示例(克劳德桌面)
添加到您的Claude Desktop配置中:
{
"mcpServers": {
"devpod": {
"command": "/path/to/mcp-server-devpod",
"args": []
}
}
}发展
建筑
go build -o mcp-server-devpod main.go测试
go test ./...建筑
服务器是使用 mcp服务器框架 并实现了DevPod CLI命令的处理程序。它将DevPod命令作为子进程执行,并通过MCP协议返回结果。
文档
其他文件可在 docs/ 目录:
- 检验员测试指南 -使用MCP Inspector完成测试的分步指南
- 测试解决方案 -全面的测试结果和证据
- 示例用法 -其他使用示例和模式
- 框架升级摘要 -关于v1.2.0框架升级的详细信息
- 发布说明 -版本历史和发布信息
贡献
- 分叉存储库
- 创建要素分支
- 进行更改
- 如果适用,添加测试
- 提交拉取请求
许可证
MIT许可证-有关详细信息,请参阅许可证文件
