🌍 Planetary MCP-Docker部署包
配备克劳德桌面集成的完整地球引擎MCP服务器
此软件包包含在任何平台(Windows、Mac、Linux、AWS EC2等)上的Docker容器中运行Earth Engine MCP服务器所需的一切。
______________________________________________________________________
📦 包含什么
- 码头化Next.js服务器 -完全容器化的应用程序
- MCP电桥 -将Claude Desktop连接到服务器
- 11地球发动机工具 -所有地理空间分析功能
- 健康监测 -自动健康检查
- 生产就绪 -针对部署进行了优化
______________________________________________________________________
🚀 快速入门(5分钟)
先决条件
- Docker 桌面版 已安装并正在运行(下载)
- 谷歌地球引擎服务帐户密钥 (JSON文件)
- Node.js (仅适用于Claude Desktop桥接器)
步骤1:放置您的凭据
# Copy your Earth Engine service account key to:
credentials/ee-key.json重要提示: 确保您的凭据文件命名准确 ee-key.json 并且在 credentials/ 文件夹。
步骤2:启动服务器
# Open terminal in this directory and run:
docker-compose up -d --build这将:
- 构建Docker镜像(首次约3-5分钟)
- 启动容器
- 暴露上的服务器
http://localhost:3000
步骤3:验证它是否正常工作
# Check container status
docker-compose ps
# Test health endpoint
curl http://localhost:3000/api/health您应该看到: {"ok":true,"time":"..."}
步骤4:配置Claude桌面
- 打开克劳德桌面设置
- 编辑MCP配置文件:
- 视窗: %APPDATA%\Claude\claude_desktop_config.json - Mac/Linux: ~/.config/Claude/claude_desktop_config.json
- 添加此配置(更新系统的路径):
{
"mcpServers": {
"planetary-mcp": {
"command": "node",
"args": ["/mcp-sse-complete.js"],
"env": {
"GOOGLE_APPLICATION_CREDENTIALS": "/credentials/ee-key.json"
}
}
}
}Windows示例:
{
"mcpServers": {
"planetary-mcp": {
"command": "node",
"args": ["D:\\earth-engine-mcp-deployment\\mcp-sse-complete.js"],
"env": {
"GOOGLE_APPLICATION_CREDENTIALS": "D:\\earth-engine-mcp-deployment\\credentials\\ee-key.json"
}
}
}
}- 重新启动克劳德桌面
第五步:在克劳德进行测试
打开克劳德桌面并尝试:
Search for sentinel datasets in Earth Engine______________________________________________________________________
🛠️ 管理命令
查看日志
docker-compose logs -f停止服务器
docker-compose down重新启动服务器
docker-compose restart检查状态
docker-compose ps重建(代码更改后)
docker-compose up -d --build______________________________________________________________________
🌟 可用工具
配置后,Claude Desktop将可以访问:
核心工具
- 地球工程数据 -搜索数据集、获取几何图形、过滤集合
- 土方工程工艺 -计算指数(NDVI、EVI等),创建复合数据,进行地形分析
- 地球工程出口 -生成缩略图、导出数据、创建地图图块
- 地球工程系统 -健康检查、执行自定义代码、系统信息
- 地球工程地图 -创建交互式网络地图
地理空间模型
- 野火风险评估 -全面的野火风险分析
- 洪水风险评估 -基于地形和降水的洪水风险
- 农业监测 -作物健康和农业条件
- 森林砍伐与保护 -时间段之间的森林损失检测
- 水质监测 -使用光谱指数的水质
- 作物分类 -基于机器学习的作物和土地覆盖分类
______________________________________________________________________
🔍 测试
测试运行状况端点
curl http://localhost:3000/api/health测试接地引擎连接(PowerShell)
$body = @{ tool = "earth_engine_system"; arguments = @{ operation = "health" } } | ConvertTo-Json
Invoke-RestMethod -Method POST -Uri "http://localhost:3000/api/mcp/sse" -ContentType "application/json" -Body $body测试数据搜索(PowerShell)
$body = @{ tool = "earth_engine_data"; arguments = @{ operation = "search"; query = "sentinel"; limit = 5 } } | ConvertTo-Json
Invoke-RestMethod -Method POST -Uri "http://localhost:3000/api/mcp/sse" -ContentType "application/json" -Body $body______________________________________________________________________
🚨 故障排除
容器无法启动
# Check logs for errors
docker-compose logs
# Try rebuilding from scratch
docker-compose down -v
docker-compose up -d --build端口3000已在使用中
窗户:
# Find what's using port 3000
netstat -ano | findstr :3000
# Stop the process (replace
)
Stop-Process -Id
-ForceMac/Linux:
# Find what's using port 3000
lsof -i :3000
# Kill the process
kill -9
Docker桌面未运行
运行前确保Docker Desktop已启动 docker-compose 命令。
地球发动机身份验证失败
- 验证您的凭据文件是否存在:
credentials/ee-key.json - 检查文件是否为有效的JSON
- 确保服务帐户具有Earth Engine访问权限
- 重新启动容器:
docker-compose restart
克劳德桌面无法连接
- 验证服务器是否正在运行:
docker-compose ps - 测试健康终点:
curl http://localhost:3000/api/health - 检查Claude Desktop配置路径是否为绝对路径(非相对路径)
- 配置更改后重新启动Claude Desktop
______________________________________________________________________
🌐 部署到云(AWS EC2、Azure、GCP)
同样的Docker设置适用于任何云平台:
AWS EC2/Linux服务器
# 1. Install Docker
sudo yum install docker -y # Amazon Linux
# OR
sudo apt install docker.io -y # Ubuntu
sudo systemctl start docker
sudo systemctl enable docker
# 2. Install Docker Compose
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
# 3. Upload this folder to server
scp -r earth-engine-mcp-deployment/ user@server:~/
# 4. Start container
cd earth-engine-mcp-deployment
docker-compose up -d --build
# 5. Verify
curl http://localhost:3000/api/health将Claude Desktop连接到远程服务器
更新您的Claude Desktop配置以指向服务器:
{
"mcpServers": {
"planetary-mcp": {
"command": "node",
"args": ["
/mcp-sse-complete.js"],
"env": {
"MCP_SERVER_URL": "http://YOUR-SERVER-IP:3000"
}
}
}
}______________________________________________________________________
📊 绩效与资源
容器资源
- 中央处理器:建议使用1-2个核心
- 记忆:建议使用2-4GB
- 磁盘:容器+数据约500 MB
响应时间
- 健康检查:\<100ms
- 数据集搜索:\<1s
- NDVI计算:1-5s
- 作物分类:20-60s
- 交互式地图:5-15秒
______________________________________________________________________
🔒 安全说明
- 凭据在容器中以只读方式装载
- Docker镜像中没有嵌入凭据
- 服务默认在本地主机上运行(不对外公开)
- 对于生产环境,使用带有SSL的反向代理(Nginx)
______________________________________________________________________
📝 文件结构
earth-engine-mcp-deployment/
├── README.md # This file
├── Dockerfile # Container definition
├── docker-compose.yml # Orchestration config
├── .dockerignore # Files to exclude
├── package.json # Dependencies
├── next.config.ts # Next.js config
├── tsconfig.json # TypeScript config
├── mcp-sse-complete.js # MCP bridge for Claude Desktop
├── credentials/ # Your credentials
│ └── ee-key.json # Earth Engine service account key
├── src/ # Core MCP implementation
│ ├── mcp/ # MCP server & tools
│ ├── gee/ # Earth Engine client
│ └── ...
├── app/ # Next.js API routes
│ └── api/
│ ├── health/ # Health check endpoint
│ └── mcp/ # MCP endpoints
└── public/ # Static assets______________________________________________________________________
🆘 支持
常见问题
Q: 工具未显示在Claude Desktop中\ A: 编辑配置文件后重新启动Claude Desktop
Q: “连接被拒绝”错误\ A: 检查容器是否正在运行 docker-compose ps
Q: 地球引擎身份验证错误\ A: 验证 credentials/ee-key.json 有效,服务帐户具有EE访问权限
Q: 集装箱立即出口\ A: 检查日志 docker-compose logs 用于错误消息
获取帮助
- 检查日志:
docker-compose logs - 验证健康状况:
curl http://localhost:3000/api/health - 手动测试地球发动机认证
- 查看容器状态:
docker-compose ps
______________________________________________________________________
📄 许可证
此包用于部署和使用。有关许可证的详细信息,请参阅主存储库。
______________________________________________________________________
✅ 快速核对清单
在联系支持人员之前,请确认:
- \[\]Docker桌面正在运行
- \[ \]
credentials/ee-key.json存在且有效 - \[\]容器正在运行:
docker-compose ps显示“健康” - \[\]健康端点响应:
curl http://localhost:3000/api/health - \[\]Claude Desktop配置具有正确的绝对路径
- \[\]配置更改后,Claude Desktop重新启动
______________________________________________________________________
准备好部署了吗?从上面的第一步开始! 🚀
