Skip to main content
Glama

πŸ›°οΈ GeoSight MCP Server

Python 3.11+ MCP License: MIT

Production-ready Satellite Imagery Analysis MCP Server - Analyze Earth observation data through natural language queries.

"Show me deforestation in the Amazon over the last year"
"Detect flooding in Bangladesh from satellite imagery"
"Track urban expansion around Mumbai since 2020"


🌟 Features

Feature

Description

Land Cover Classification

Identify forests, water, urban areas, agriculture

Vegetation Analysis (NDVI)

Monitor crop health, deforestation, drought

Water Detection (NDWI)

Track floods, reservoirs, coastal changes

Change Detection

Compare imagery across time periods

Object Detection

Find ships, planes, buildings, solar farms

Automated Reports

Generate PDF/HTML reports with maps


πŸ—οΈ Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ CLIENT LAYER β”‚ β”‚ Claude Desktop / Streamlit Dashboard / API β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ MCP Protocol (stdio/SSE) β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ MCP SERVER (FastAPI) β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚ β”‚ Tools β”‚ β”‚ Auth β”‚ β”‚ Queue β”‚ β”‚ β”‚ β”‚ Router β”‚ β”‚ Layer β”‚ β”‚ (Celery) β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ PROCESSING ENGINE β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚ β”‚ Imagery β”‚ β”‚ ML Models β”‚ β”‚ Visualize β”‚ β”‚ β”‚ β”‚ Fetcher β”‚ β”‚ Pipeline β”‚ β”‚ Engine β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ DATA LAYER β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚ β”‚ Postgres β”‚ β”‚ Redis β”‚ β”‚ MinIO β”‚ β”‚ β”‚ β”‚ +PostGIS β”‚ β”‚ Cache β”‚ β”‚ Storage β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸš€ Quick Start

Prerequisites

  • Python 3.11+

  • Docker & Docker Compose

  • Sentinel Hub Account (free tier available)

1. Clone & Setup

git clone https://github.com/yourusername/geosight-mcp.git cd geosight-mcp # Create virtual environment python -m venv venv source venv/bin/activate # Windows: venv\Scripts\activate # Install dependencies pip install -e ".[dev]"

2. Configure Environment

cp .env.example .env # Edit .env with your API keys

3. Start Services

# Development mode docker-compose up -d redis postgres minio # Run MCP server python -m geosight.server # Or run everything with Docker docker-compose up -d

4. Connect to Claude Desktop

Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json):

{ "mcpServers": { "geosight": { "command": "python", "args": ["-m", "geosight.server"], "cwd": "/path/to/geosight-mcp", "env": { "SENTINEL_HUB_CLIENT_ID": "your-client-id", "SENTINEL_HUB_CLIENT_SECRET": "your-client-secret" } } } }

πŸ”§ Available MCP Tools

search_imagery

Find available satellite imagery for a location and date range.

# Example usage through Claude "Find Sentinel-2 imagery for New Delhi from last month"

calculate_ndvi

Calculate vegetation index to assess plant health.

# Returns: NDVI map + statistics "Calculate NDVI for agricultural region near Punjab"

calculate_ndwi

Calculate water index to detect water bodies and flooding.

# Returns: Water mask + area calculations "Show water bodies in Kerala during monsoon season"

detect_land_cover

Classify land into categories: forest, water, urban, agriculture, barren.

# Returns: Classification map + percentages "Classify land cover for Bangalore metropolitan area"

detect_changes

Compare two time periods and highlight differences.

# Returns: Change map + statistics "Show construction changes in Dubai between 2020 and 2024"

detect_objects

Find specific objects in imagery (ships, planes, buildings).

# Returns: Detected objects with bounding boxes "Detect ships in Mumbai harbor"

generate_report

Create comprehensive PDF/HTML report with analysis.

# Returns: Downloadable report "Generate environmental report for Amazon rainforest region"

πŸ“Š Data Sources

Source

Type

Resolution

Frequency

Cost

Sentinel-2

Optical (13 bands)

10m

5 days

Free

Sentinel-1

SAR (radar)

10m

6 days

Free

Landsat 8/9

Optical + Thermal

30m

16 days

Free

MODIS

Global coverage

250m-1km

Daily

Free


🧠 ML Models

Pre-trained Models Included

  1. Land Cover Classifier - EuroSAT-based CNN (ResNet50)

  2. Change Detection - Siamese U-Net architecture

  3. Object Detection - YOLOv8 trained on DOTA dataset

  4. Segmentation - DeepLabV3+ for semantic segmentation

Model Performance

Model

Task

Accuracy

Inference Time

Land Cover

Classification

94.2%

~200ms

Change Detection

Binary change

91.8%

~500ms

Object Detection

Ships/Planes

87.5% mAP

~300ms


🐳 Deployment

Docker Deployment

# Build and run all services docker-compose -f docker-compose.prod.yml up -d # Check logs docker-compose logs -f geosight-mcp

Cloud Deployment (Railway/Fly.io)

# Railway railway up # Fly.io fly launch fly deploy

Kubernetes

kubectl apply -f k8s/

πŸ“ Project Structure

geosight-mcp/ β”œβ”€β”€ src/ β”‚ └── geosight/ β”‚ β”œβ”€β”€ __init__.py β”‚ β”œβ”€β”€ server.py # MCP server entry point β”‚ β”œβ”€β”€ tools/ # MCP tool implementations β”‚ β”‚ β”œβ”€β”€ __init__.py β”‚ β”‚ β”œβ”€β”€ imagery.py # Image search & fetch β”‚ β”‚ β”œβ”€β”€ indices.py # NDVI, NDWI calculations β”‚ β”‚ β”œβ”€β”€ classification.py # Land cover classification β”‚ β”‚ β”œβ”€β”€ change_detection.py β”‚ β”‚ β”œβ”€β”€ object_detection.py β”‚ β”‚ └── reports.py # Report generation β”‚ β”œβ”€β”€ models/ # ML models β”‚ β”‚ β”œβ”€β”€ __init__.py β”‚ β”‚ β”œβ”€β”€ land_cover.py β”‚ β”‚ β”œβ”€β”€ change_detector.py β”‚ β”‚ └── object_detector.py β”‚ β”œβ”€β”€ services/ # External service integrations β”‚ β”‚ β”œβ”€β”€ __init__.py β”‚ β”‚ β”œβ”€β”€ sentinel_hub.py β”‚ β”‚ β”œβ”€β”€ earth_engine.py β”‚ β”‚ └── storage.py β”‚ └── utils/ # Utilities β”‚ β”œβ”€β”€ __init__.py β”‚ β”œβ”€β”€ geo.py # Geospatial utilities β”‚ β”œβ”€β”€ visualization.py β”‚ └── cache.py β”œβ”€β”€ tests/ β”œβ”€β”€ config/ β”œβ”€β”€ scripts/ β”œβ”€β”€ dashboard/ # Streamlit dashboard β”œβ”€β”€ docs/ β”œβ”€β”€ docker-compose.yml β”œβ”€β”€ Dockerfile β”œβ”€β”€ pyproject.toml └── README.md

πŸ§ͺ Testing

# Run all tests pytest # With coverage pytest --cov=geosight --cov-report=html # Integration tests pytest tests/integration/ -v

πŸ“ˆ Monitoring

  • Prometheus metrics at /metrics

  • Health check at /health

  • Grafana dashboards included in config/grafana/


🀝 Contributing

  1. Fork the repository

  2. Create feature branch (git checkout -b feature/amazing-feature)

  3. Commit changes (git commit -m 'Add amazing feature')

  4. Push to branch (git push origin feature/amazing-feature)

  5. Open a Pull Request


πŸ“„ License

MIT License - see LICENSE for details.


πŸ™ Acknowledgments


πŸ“¬ Contact

Your Name - @yourtwitter

Project Link: https://github.com/yourusername/geosight-mcp

-
security - not tested
A
license - permissive license
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/armaasinghn/geosight-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server