SkillAgentSearch skills...

copernicus-mcp

MCP Server for accessing ESA Copernicus OData API. (AI Generated Repo)

Install / Use

claude mcp add wb1016 -- npx -y github:wb1016/copernicus-mcp

If the server publishes to npm under a different name, use that package instead — check the repo README.

About this skill
🔌

MCP Server

Model Context Protocol server

Quality Score

81/100

Supported Platforms

Claude Code
Claude Desktop

Tags

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.

Substance
30/30
Structure
20/20
Description
12/15
Adoption
4/20
Freshness
15/15

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 found

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.

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.

SkillScoreStarsUpdatedFormat
copernicus-mcp (this skill)by wb1016811018d agoMCP Server
claude-memby thedotmack100110.2ktodayCLAUDE.md
Agent-Reachby Panniantong100107.8k1d agoCLAUDE.md
Understand-Anythingby Egonex-AI10089.7k7d agoCLAUDE.md
headroomby headroomlabs-ai10078.6ktodayCLAUDE.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.

Copernicus 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

  1. Clone the repository:

    git clone <repository-url>
    cd copernicus-mcp
    
  2. Install dependencies:

    pip install -r requirements.txt
    
  3. Install in development mode:

    pip install -e .
    
  4. 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

  1. Authentication Manager: Handles token acquisition, caching, and refresh
  2. Search Engine: Advanced query builder for Copernicus Data Space API
  3. Download Manager: Concurrent downloads with progress tracking
  4. File Manager: Disk space management and cleanup
  5. 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 coordinates
  • geometry_type: 'point', 'polygon', or 'bbox'
  • mission: Mission name
  • days_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 coordinates
  • geometry_type: 'point', 'polygon', or 'bbox'
  • mission: Mission name
  • start_date, end_date: Analysis period
  • group_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 download
  • mission: 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 coordinates
  • geometry_type: 'point', 'polygon', or 'bbox' (default: 'point')
  • mission: Mission name (default: 'sentinel-2')
  • start_date, end_date: Search date range
  • max_cloud_cover: Maximum cloud cover percentage
  • download_type: 'full', 'quicklook', or 'compressed' (default: 'quicklook')
  • output_dir: Output directory
  • limit: 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 all
  • limit: 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

View on GitHub
GitHub Stars10
CategoryAI
Updated18d ago
Forks0

Languages

Python

Trust signals

92/100

From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.

1 low1 info