copernicus-mcp
MCP Server for accessing ESA Copernicus OData API. (AI Generated Repo)
Install / Use
claude mcp add wb1016 -- npx -y github:wb1016/copernicus-mcpIf the server publishes to npm under a different name, use that package instead — check the repo README.
MCP Server
Model Context Protocol server
Quality Score
Category
AI & Machine LearningSupported Platforms
Our assessment of copernicus-mcp
copernicus-mcp scores 81/100 on our quality scale, 745th of 937 AI & Machine Learning skills we index.
Its MCP Server is 19 KB long, well organised into 94 sections with 14 code examples: a thorough specification that gives an agent plenty to work with.
It has 10 GitHub stars, so there is little community track record yet; judge it on its content.
Maintenance, license and trust
- The repository was last updated 18 days ago, so copernicus-mcp is actively maintained.
- Our last check on 2026-08-24 found the source still online.
- It is released under LGPL-3.0, a copyleft license: you can use it, but modified versions you distribute must carry the same license.
- Its trust signals score 92/100, with 1 caution from licensing, adoption, age or documentation. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.
Safety scan
No issues foundOur scan of the first 100 KB of the file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands. An AI review of the same text found nothing harmful.
AI review by kimi-k2.7-code on 2026-11-02. Automated pattern scan on 2026-11-02. It catches known dangerous patterns, not every risk — read a skill before letting an agent act on it.
copernicus-mcp compared with similar skills
All 4 of these similar skills score higher than copernicus-mcp; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| copernicus-mcp (this skill)by wb1016 | 81 | 10 | 18d ago | MCP Server |
| claude-memby thedotmack | 100 | 110.2k | today | CLAUDE.md |
| Agent-Reachby Panniantong | 100 | 107.8k | 1d ago | CLAUDE.md |
| Understand-Anythingby Egonex-AI | 100 | 89.7k | 7d ago | CLAUDE.md |
| headroomby headroomlabs-ai | 100 | 78.6k | today | CLAUDE.md |
Frequently asked questions
- How do I install copernicus-mcp?
- Run
claude mcp add wb1016 -- npx -y github:wb1016/copernicus-mcp. The install tabs above show the steps for each supported agent. - Which AI agents does copernicus-mcp work with?
- It is written for Claude Code and Claude Desktop, as a MCP Server file. Other agents that read the same format can often use it too.
- Is copernicus-mcp safe to use?
- Our scan of the first 100 KB of the file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands. An AI review of the same text found nothing harmful. It is LGPL-3.0-licensed and scores 92/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
- Is copernicus-mcp still maintained?
- The repository was last updated 18 days ago, so copernicus-mcp is actively maintained.
Skill content
View source on GitHubCopernicus Earth Observation MCP Server
A comprehensive Model Context Protocol (MCP) server for accessing Copernicus Earth Observation data from the Copernicus Data Space ecosystem. This server provides a complete suite of tools for searching, downloading, and managing satellite imagery from all Copernicus Sentinel missions.
🌟 Features
Search & Discovery
- Multi-Mission Support: Access data from Sentinel-1, Sentinel-2, Sentinel-3, Sentinel-5P, and Sentinel-6 missions
- Advanced Search: Search by location (point, polygon, bounding box), date range, cloud cover, and mission-specific parameters
- Coverage Analysis: Analyze temporal coverage and availability of satellite data for specific regions
- Recent Images: Get the most recent satellite images for monitoring and change detection
- Comprehensive Metadata: Retrieve detailed image metadata including acquisition details, processing levels, and technical specifications
Download & Data Management
- Image Download: Download full products, quicklook previews, and compressed versions of satellite images
- Batch Operations: Download multiple images concurrently with configurable concurrency limits
- Intelligent Selection: Automatic best-image selection based on recency, cloud cover, and processing level
- Availability Checking: Verify download availability and get file size information before downloading
- Download Links: Get all available download URLs for any satellite image
File Management
- File Listing: List and analyze downloaded files with filtering by type, size, and date
- Statistics: Get comprehensive statistics about downloaded files (by mission, file type, time period)
- Automated Cleanup: Clean up old or large downloads with age-based and size-based strategies
- Dry Run Mode: Safety-first approach with preview of cleanup actions before execution
🛰️ Available Missions
| Mission | Type | Primary Applications | Resolution | Revisit Time | |---------|------|---------------------|------------|--------------| | Sentinel-1 | Synthetic Aperture Radar (SAR) | Disaster monitoring, sea ice tracking, land subsidence | 5-40m | 6-12 days | | Sentinel-2 | Multispectral Imaging | Agriculture, vegetation monitoring, urban planning | 10-60m | 5 days | | Sentinel-3 | Ocean & Land Monitoring | Ocean color, sea surface temperature, fire detection | 300-1200m | <2 days | | Sentinel-5P | Atmospheric Monitoring | Air quality, ozone layer, greenhouse gas tracking | 7.5×3.5km | Daily | | Sentinel-6 | Ocean Topography | Sea level rise, ocean circulation, climate research | 300m | 10 days |
🚀 Installation
Prerequisites
- Python 3.11 or higher
- pip package manager
- Copernicus Data Space account (free registration required)
📦 Steps
-
Clone the repository:
git clone <repository-url> cd copernicus-mcp -
Install dependencies:
pip install -r requirements.txt -
Install in development mode:
pip install -e . -
Set up authentication:
# Linux/Mac export COPERNICUS_USERNAME="your-email@example.com" export COPERNICUS_PASSWORD="your-password" # Windows (Command Prompt) set COPERNICUS_USERNAME=your-email@example.com set COPERNICUS_PASSWORD=your-password # Windows (PowerShell) $env:COPERNICUS_USERNAME="your-email@example.com" $env:COPERNICUS_PASSWORD="your-password"or in MCP Client...
{ "mcpServers": { "copernicus": { "command": "copernicus-mcp", "env": { "COPERNICUS_USERNAME": "your-email@example.com", "COPERNICUS_PASSWORD": "your-password" } } } }Register for free at: https://dataspace.copernicus.eu/
Authentication Test
Verify your credentials work:
python -c "
import asyncio
import os
from copernicus_mcp.server import get_auth_token
async def test():
result = await get_auth_token()
if isinstance(result, dict) and 'access_token' in result:
print('✅ Authentication successful!')
print(f'Token length: {len(result[\"access_token\"])} characters')
else:
print(f'❌ Authentication failed: {result.get(\"error\", \"Unknown error\")}')
asyncio.run(test())
"
📡 Running the Server
Basic Usage
# Run the MCP server
python -m copernicus_mcp
# Or using the module directly
python -m copernicus_mcp.server
Command Line Options
# Show version
python -m copernicus_mcp --version
# Show help
python -m copernicus_mcp --help
🔧 Configuration
Environment Variables
| Variable | Description | Required For |
|----------|-------------|--------------|
| COPERNICUS_USERNAME | Copernicus Data Space email | Download operations |
| COPERNICUS_PASSWORD | Copernicus Data Space password | Download operations |
| COPERNICUS_DEBUG_AUTH | Enable authentication debugging | Debugging |
| COPERNICUS_TEST_REAL_DOWNLOAD | Enable real download tests | Testing |
Default Directories
- Downloads:
downloads/(individual downloads) - Batch Downloads:
batch_downloads/(batch operations) - Search Results:
search_downloads/(search_and_download)
Performance Settings
- Max Concurrent Downloads: 3 (configurable in
batch_download_images) - API Timeout: 60 seconds
- Download Chunk Size: 8KB
- Token Cache: 4 minutes (with 1-minute buffer)
🏗️ Architecture
Server Structure
copernicus-mcp/
├── copernicus_mcp/ # Main package
│ ├── server.py # Complete server implementation
│ ├── __init__.py # Package exports
│ └── server_corrupted_backup.py # Backup
├── examples/ # Usage examples
│ └── example_download_usage.py
├── requirements.txt # Python dependencies
├── pyproject.toml # Project configuration
├── README.md # This file
├── mcp_config.json # MCP client configuration
└── INSTALL.md # Installation guide
Key Components
- Authentication Manager: Handles token acquisition, caching, and refresh
- Search Engine: Advanced query builder for Copernicus Data Space API
- Download Manager: Concurrent downloads with progress tracking
- File Manager: Disk space management and cleanup
- MCP Interface: FastMCP-based tool registration and protocol handling
🛠️ Available Tools
Search & Discovery Tools
search_copernicus_images
Search for satellite images from Copernicus missions.
Parameters:
geometry: GeoJSON polygon coordinates, point [lon, lat], or bbox [min_lon, min_lat, max_lon, max_lat]geometry_type: 'point', 'polygon', or 'bbox'mission: Mission name ('sentinel-1', 'sentinel-2', 'sentinel-3', 'sentinel-5p', 'sentinel-6')start_date,end_date: Date range (YYYY-MM-DD)max_cloud_cover: Maximum cloud cover percentage (0-100, optical missions only)max_results: Maximum number of results (1-1000)
Example:
# Search for Sentinel-2 images over Paris
search_copernicus_images(
geometry=[[2.2945, 48.8584], [2.2945, 48.8604], [2.2965, 48.8604], [2.2965, 48.8584]],
geometry_type="polygon",
mission="sentinel-2",
start_date="2024-01-01",
end_date="2024-01-31",
max_cloud_cover=20,
max_results=10
)
get_image_details
Get comprehensive metadata for a specific satellite image.
Parameters:
image_id: Satellite image ID (from search results)mission: Optional mission name
Returns: Detailed metadata including download URLs, processing level, cloud cover, footprint, and authentication guidance.
get_mission_info
Get detailed information about Copernicus satellite missions.
Parameters:
mission: Optional specific mission name
Returns: Mission capabilities, sensors, applications, resolution, and revisit time.
get_recent_images
Get the most recent satellite images for a region.
Parameters:
geometry: Location coordinatesgeometry_type: 'point', 'polygon', or 'bbox'mission: Mission namedays_back: Number of days to look back (default: 7)max_results: Maximum results (default: 10)
check_coverage
Analyze satellite image coverage for a region over time.
Parameters:
geometry: Location coordinatesgeometry_type: 'point', 'polygon', or 'bbox'mission: Mission namestart_date,end_date: Analysis periodgroup_by: Group results by 'day', 'week', 'month', or 'year'
Download Tools
download_image
Download a Copernicus satellite image by ID.
Parameters:
image_id: Image ID from search results (required)mission: Mission name (default: 'sentinel-2')download_type: 'full', 'quicklook', or 'compressed' (default: 'full')output_dir: Custom output directory (default: 'downloads')
Example:
# Download a quicklook preview
download_image(
image_id="S2B_MSIL2A_20240115T105629_N0510_R094_T31UCS_20240115T130259",
mission="sentinel-2",
download_type="quicklook"
)
# Download full product
download_image(
image_id="S2B_MSIL2A_20240115T105629_N0510_R094_T31UCS_20240115T130259",
mission="sentinel-2",
download_type="full"
)
batch_download_images
Download multiple images concurrently.
Parameters:
image_ids: List of image IDs to downloadmission: Mission name (default: 'sentinel-2')download_type: 'full', 'quicklook', or 'compressed' (default: 'full')output_dir: Output directory (default: 'batch_downloads')max_concurrent: Maximum concurrent downloads (default: 3)
Example:
batch_download_images(
image_ids=["id1", "id2", "id3"],
mission="sentinel-2",
download_type="quicklook",
max_concurrent=2
)
search_and_download
Search for images and automatically download the best match.
Parameters:
geometry: Location coordinatesgeometry_type: 'point', 'polygon', or 'bbox' (default: 'point')mission: Mission name (default: 'sentinel-2')start_date,end_date: Search date rangemax_cloud_cover: Maximum cloud cover percentagedownload_type: 'full', 'quicklook', or 'compressed' (default: 'quicklook')output_dir: Output directorylimit: Maximum search results to consider (default: 5)
Example:
# Search and download best image
search_and_download(
geometry=[-122.4194, 37.7749], # San Francisco
geometry_type="point",
mission="sentinel-2",
start_date="2024-01-01",
end_date="2024-01-31",
download_type="quicklook"
)
check_download_availability
Check if images are available for download.
Parameters:
image_ids: List of image IDs to check
Returns: Availability status, file sizes, and quicklook availability for each image.
get_product_download_links
Get all available download links for an image.
Parameters:
image_id: Image ID
Returns: All download URLs (full, compressed, quicklooks) with metadata.
File Management Tools
list_downloaded_files
List downloaded satellite image files.
Parameters:
download_dir: Directory to scan (default: 'downloads')file_type: Filter by 'full', 'quicklook', 'compressed', or None for alllimit: Maximum files to return (default: 50)
Example:
list_downloaded_files(
download_dir="my_downloads",
file_type="quicklook",
limit=10
)
cleanup_downloads
Clean up downloaded files based on criteria.
Parameters:
download_dir: Directory to cl
Truncated for display — read the full file on GitHub.
Related Skills
claude-mem
110.2kPersistent Context Across Sessions for Every Agent – Captures everything your agent does during sessions, compresses it with AI, and injects relevant context back into future sessions. Works with Claude Code, OpenClaw, Codex, Gemini, Hermes, Copilot, OpenCode + More
Agent-Reach
107.8kGive your AI agent eyes to see the entire internet. Read & search Twitter, Reddit, YouTube, GitHub, Bilibili, XiaoHongShu — one CLI, zero API fees.
Understand-Anything
89.7kGraphs that teach > graphs that impress. Turn any code into an interactive knowledge graph you can explore, search, and ask questions about. Works with Claude Code, Codex, Cursor, Copilot, Gemini CLI, and more.
headroom
78.6kCompress tool outputs, logs, files, and RAG chunks before they reach the LLM. 20% fewer tokens for coding agents, 60-95% fewer tokens for JSON, same answers. Library, proxy, MCP server.
Languages
Trust signals
From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.
