Planetary
БесплатноНе проверенEnables deploying an Earth Engine MCP server in Docker, integrating with Claude Desktop to perform geospatial analysis using 11 Earth Engine tools for tasks lik
Описание
Enables deploying an Earth Engine MCP server in Docker, integrating with Claude Desktop to perform geospatial analysis using 11 Earth Engine tools for tasks like wildfire risk, flood risk, and agricultural monitoring.
README
Complete Earth Engine MCP Server with Claude Desktop Integration
This package contains everything needed to run the Earth Engine MCP server in a Docker container on any platform (Windows, Mac, Linux, AWS EC2, etc.).
📦 What's Included
- Dockerized Next.js Server - Fully containerized application
- MCP Bridge - Connect Claude Desktop to the server
- 11 Earth Engine Tools - All geospatial analysis capabilities
- Health Monitoring - Automatic health checks
- Production Ready - Optimized for deployment
🚀 Quick Start (5 Minutes)
Prerequisites
- Docker Desktop installed and running (Download)
- Google Earth Engine Service Account Key (JSON file)
- Node.js (for Claude Desktop bridge only)
Step 1: Place Your Credentials
# Copy your Earth Engine service account key to:
credentials/ee-key.json
Important: Make sure your credentials file is named exactly ee-key.json and is in the credentials/ folder.
Step 2: Start the Server
# Open terminal in this directory and run:
docker-compose up -d --build
This will:
- Build the Docker image (~3-5 minutes first time)
- Start the container
- Expose the server on
http://localhost:3000
Step 3: Verify It's Working
# Check container status
docker-compose ps
# Test health endpoint
curl http://localhost:3000/api/health
You should see: {"ok":true,"time":"..."}
Step 4: Configure Claude Desktop
Open Claude Desktop settings
Edit the MCP configuration file:
- Windows:
%APPDATA%\Claude\claude_desktop_config.json - Mac/Linux:
~/.config/Claude/claude_desktop_config.json
- Windows:
Add this configuration (update paths for your system):
{
"mcpServers": {
"planetary-mcp": {
"command": "node",
"args": ["<FULL_PATH_TO_THIS_FOLDER>/mcp-sse-complete.js"],
"env": {
"GOOGLE_APPLICATION_CREDENTIALS": "<FULL_PATH_TO_THIS_FOLDER>/credentials/ee-key.json"
}
}
}
}
Example for 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"
}
}
}
}
- Restart Claude Desktop
Step 5: Test in Claude
Open Claude Desktop and try:
Search for sentinel datasets in Earth Engine
🛠️ Management Commands
View Logs
docker-compose logs -f
Stop Server
docker-compose down
Restart Server
docker-compose restart
Check Status
docker-compose ps
Rebuild (after code changes)
docker-compose up -d --build
🌟 Available Tools
Once configured, Claude Desktop will have access to:
Core Tools
- earth_engine_data - Search datasets, get geometries, filter collections
- earth_engine_process - Calculate indices (NDVI, EVI, etc.), create composites, terrain analysis
- earth_engine_export - Generate thumbnails, export data, create map tiles
- earth_engine_system - Health checks, execute custom code, system info
- earth_engine_map - Create interactive web maps
Geospatial Models
- wildfire_risk_assessment - Comprehensive wildfire risk analysis
- flood_risk_assessment - Flood risk based on terrain and precipitation
- agricultural_monitoring - Crop health and agricultural conditions
- deforestation_detection - Forest loss detection between time periods
- water_quality_monitoring - Water quality using spectral indices
- crop_classification - ML-based crop and land cover classification
🔍 Testing
Test Health Endpoint
curl http://localhost:3000/api/health
Test Earth Engine Connection (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
Test Data Search (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
🚨 Troubleshooting
Container Won't Start
# Check logs for errors
docker-compose logs
# Try rebuilding from scratch
docker-compose down -v
docker-compose up -d --build
Port 3000 Already in Use
Windows:
# Find what's using port 3000
netstat -ano | findstr :3000
# Stop the process (replace <PID>)
Stop-Process -Id <PID> -Force
Mac/Linux:
# Find what's using port 3000
lsof -i :3000
# Kill the process
kill -9 <PID>
Docker Desktop Not Running
Make sure Docker Desktop is started before running docker-compose commands.
Earth Engine Authentication Fails
- Verify your credentials file exists:
credentials/ee-key.json - Check the file is valid JSON
- Ensure the service account has Earth Engine access
- Restart container:
docker-compose restart
Claude Desktop Can't Connect
- Verify the server is running:
docker-compose ps - Test health endpoint:
curl http://localhost:3000/api/health - Check Claude Desktop config paths are absolute (not relative)
- Restart Claude Desktop after config changes
🌐 Deploying to Cloud (AWS EC2, Azure, GCP)
This same Docker setup works on any cloud platform:
AWS EC2 / Linux Server
# 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
Connect Claude Desktop to Remote Server
Update your Claude Desktop config to point to the server:
{
"mcpServers": {
"planetary-mcp": {
"command": "node",
"args": ["<PATH_TO>/mcp-sse-complete.js"],
"env": {
"MCP_SERVER_URL": "http://YOUR-SERVER-IP:3000"
}
}
}
}
📊 Performance & Resources
Container Resources
- CPU: 1-2 cores recommended
- Memory: 2-4 GB recommended
- Disk: ~500 MB for container + data
Response Times
- Health check: <100ms
- Dataset search: <1s
- NDVI calculation: 1-5s
- Crop classification: 20-60s
- Interactive maps: 5-15s
🔒 Security Notes
- Credentials are mounted as read-only in the container
- No credentials are embedded in the Docker image
- Service runs on localhost by default (not exposed externally)
- For production, use reverse proxy (Nginx) with SSL
📝 File Structure
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
🆘 Support
Common Issues
Q: Tools not showing in Claude Desktop
A: Restart Claude Desktop after editing config file
Q: "Connection refused" errors
A: Check if container is running with docker-compose ps
Q: Earth Engine authentication errors
A: Verify credentials/ee-key.json is valid and service account has EE access
Q: Container exits immediately
A: Check logs with docker-compose logs for error messages
Getting Help
- Check logs:
docker-compose logs - Verify health:
curl http://localhost:3000/api/health - Test Earth Engine auth manually
- Review container status:
docker-compose ps
📄 License
This package is provided for deployment and use. See main repository for license details.
✅ Quick Checklist
Before contacting support, verify:
- Docker Desktop is running
-
credentials/ee-key.jsonexists and is valid - Container is running:
docker-compose psshows "healthy" - Health endpoint responds:
curl http://localhost:3000/api/health - Claude Desktop config has correct absolute paths
- Claude Desktop was restarted after config changes
Ready to deploy? Start with Step 1 above! 🚀
Установка Planetary
У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.
▸ github.com/Dhenenjay/planetary-mcp-deploymentFAQ
Planetary MCP бесплатный?
Да, Planetary MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для Planetary?
Нет, Planetary работает без API-ключей и переменных окружения.
Planetary — hosted или self-hosted?
Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.
Как установить Planetary в Claude Desktop, Claude Code или Cursor?
Открой Planetary на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
GitHub
PRs, issues, code search, CI status
автор: GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
автор: mcpdotdirectCompare Planetary with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории development
