# Planet Labs MCP

> Planet Labs MCP Server gives your AI client full control over daily satellite imagery search, discovery, and automated delivery. You can run complex queries across multiple sources—like PlanetScope (3-5m), SkySat (sub-meter), RapidEye (5m), Landsat (30m), and Sentinel-2 (10m). Use tools like `quick_search` to filter by cloud cover or set up recurring monitoring with `create_saved_search`. It’s built for environmental scientists, disaster response teams, and GIS pros who need reliable geo-spatial data on demand.

## Overview
- **Category:** the-unthinkable
- **Price:** Free
- **Tags:** satellite-imagery, geospatial-data, remote-sensing, environmental-monitoring, earth-observation, geocoding-maps

## Description

When you connect your AI client to this server, you get full control over finding, monitoring, and managing satellite imagery. You don't need a data science degree to run complex geo-spatial queries; your agent handles the heavy lifting.

**Finding Imagery Now:**
You can execute an immediate search for images using `quick_search`. Just pass it the geometry you care about (GeoJSON), a date range, and quality filters—like setting minimum cloud coverage. This pulls up a paginated list of results right away.

If you know what you're looking for but don't want to re-enter all those parameters every time, use `create_saved_search`. This lets you define complex search criteria—geometry and date filters—and save them under an ID. Later, you run that saved query using `get_search_results` without touching the original inputs.

For monitoring projects that run constantly, set up automated feeds with `create_subscription`. You specify rules (like 'daily' or 'cloud-free') and the system generates a persistent delivery stream of imagery matching those criteria. To see what monitoring you already have active or inactive, check `list_subscriptions`, and if you need to reference saved parameters, run `list_saved_searches`.

**Assessing Quality and Data:**
Before you download anything, you gotta know if the image is good enough. Run `get_cloud_coverage` on any item ID; it returns a clear percentage alongside the cloud status. This tells you exactly how much usable area you're getting. Once you have an item, use `get_item_details` to pull all the metadata—the acquisition time and the specific conditions under which Planet captured the image.

To know what files you can actually download, run `get_item_assets`. This lists every available data format for that single image, like visual PNGs or analytic GeoTIFFs. You also need to understand the whole menu of assets supported by the platform; `list_asset_types` gives you a full catalog of products, including visual, analytic, and UDM formats.

**Planning and Cataloging:**
You can plan out your data needs using `get_search_statistics`. This generates histograms showing how often imagery is available for a specific area over time—useful for figuring out if an area gets covered regularly or if you're going to have gaps. To understand the full scope of sources, use `list_item_types` to see every satellite source available (like SkySat or Sentinel-2), getting details on their resolution and what assets they support. Finally, `list_asset_types` gives you a definitive list of all data products across the board.

This whole setup means your agent can handle everything from running an initial search to setting up automated alerts and checking every file type before you commit to a download.

## Tools

### create_saved_search
Saves complex search criteria (geometry, date filters) so you can run the same query repeatedly without re-entering parameters.

### create_subscription
Sets up automated data delivery feeds that constantly check for and deliver new imagery matching your specified rules.

### get_cloud_coverage
Returns the clear percentage and cloud status of a specific image item, helping you judge its quality before use.

### get_item_assets
Lists all available data formats (like visual PNGs or analytic GeoTIFFs) for an image item so you know what to download.

### get_item_details
Pulls comprehensive metadata on a single image, including acquisition time and specific conditions under which it was taken.

### get_search_results
Executes a saved search ID or runs an ad-hoc query to retrieve a paginated list of matching imagery items.

### get_search_statistics
Generates histograms showing how frequently images are available for a given area and time period, useful for planning.

### list_asset_types
Returns the full list of data products (visual, analytic, UDM) that Planet Labs supports across all imagery types.

### list_item_types
Provides a catalog listing every available satellite source, detailing its resolution and supported assets (e.g., SkySat or Sentinel-2).

### list_saved_searches
Retrieves the names and IDs of all monitoring searches you've previously configured in your account.

### list_subscriptions
Shows a list of all active or inactive automated delivery subscriptions you have set up.

### quick_search
Performs an immediate search for imagery using geometry, date ranges, and cloud filters to find results right now.

## Prompt Examples

**Prompt:** 
```
Find cloud-free PSScene imagery over my farm boundary from the last 30 days.
```

**Response:** 
```
Searching Planet catalog for PSScene imagery... Found 12 scenes matching your criteria. Best match: 2025-04-02 acquisition with 3% cloud cover, sun elevation 52 degrees. Available assets: visual (true-color PNG), analytic (surface reflectance GeoTIFF), analytic_udm2 (with uncertainty mask). Download URLs ready for all asset types. Would you like me to filter by even lower cloud cover or search for SkySat sub-meter imagery instead?
```

**Prompt:** 
```
Show me what satellite imagery types are available and their resolutions.
```

**Response:** 
```
Listing available item types... PSScene (PlanetScope): 3-5m resolution, daily global coverage, 200+ satellites. Assets: visual, analytic, analytic_udm2, thumbnail. SkySat: 0.5-0.9m sub-meter resolution, video capable, high-detail site inspection. Assets: visual, analytic, ortho_analytic, udm2. RapidEye: 5m resolution, 5-band sensor with red-edge, archive since 2009. Assets: visual, analytic, udm. Landsat 8/9: 30m resolution, USGS partnership, 16-day revisit. Assets: visual, analytic. Sentinel-2: 10-20m resolution, ESA partnership, 5-day revisit. Assets: visual, analytic. Which type would you like to search for?
```

**Prompt:** 
```
Create a daily subscription for cloud-free imagery over my monitoring area.
```

**Response:** 
```
Creating subscription for daily cloud-free imagery... Subscription created successfully! Name: Daily Monitoring, Item types: PSScene, Max cloud cover: 10%. Status: Active. New imagery matching your criteria will be delivered automatically as it becomes available. You can manage this subscription with list_subscriptions and modify filters anytime. Would you like to add delivery to cloud storage (S3, GCS, Azure) or set up webhook notifications?
```

## Capabilities

### Find imagery with complex filters
You pass geometry (GeoJSON), a date range, and quality metrics like cloud cover to `quick_search` to pull immediate search results.

### Set up continuous data feeds
The `create_subscription` tool automatically generates a persistent delivery stream of imagery matching specific criteria (e.g., daily, cloud-free).

### Measure image quality
You run `get_cloud_coverage` on an item ID to get the percentage of clear area before committing to a download.

### Discover available data products
Using `get_item_assets`, you list all downloadable file types (visual, analytic, etc.) for a specific image item.

### Manage monitoring workflows
You use `create_saved_search` to define and save complex search parameters for later automated execution via `get_search_results`.

## Use Cases

### Assessing Post-Disaster Damage
A coordinator needs to check a flood zone. They use `quick_search` with the disaster polygon and date range, filtering out any images below 80% cloud coverage. They then pass the resulting item IDs to `get_item_assets` to download high-resolution analytic data for damage mapping.

### Setting up Long-Term Crop Health Checks
An agronomist doesn't want to check manually. They use `create_subscription` to set up a daily feed over their farm boundary, demanding PSScene images with less than 10% cloud cover. The system handles the continuous data flow.

### Comparing Satellite Sources
A researcher needs to know which satellite type is best for their region. They call `list_item_types` and examine the output, comparing SkySat's sub-meter detail against Landsat's 30m coverage before deciding on a search strategy.

### Planning Data Collection Cycles
A climate scientist needs to prove historical monitoring gaps. They run `get_search_statistics` for their area and date range, generating a histogram that shows exactly how many images were available per month, proving data scarcity or abundance.

## Benefits

- Instant Image Discovery: Don't manually browse catalogs. Use `quick_search` to find images matching specific geometry, date ranges, or cloud cover percentages in one command.
- Automated Monitoring: Set it and forget it. Use `create_subscription` to guarantee that new imagery (like daily PSScene shots) is automatically delivered without manual intervention.
- Data Quality Assurance: Stop downloading useless photos. `get_cloud_coverage` tells you the clear area percentage first, letting your system filter out cloudy junk before processing.
- Deep Catalog Understanding: The difference between asset types matters. Use `list_asset_types` and `list_item_types` to know exactly which data product (e.g., true-color PNG vs. surface reflectance GeoTIFF) you need for analysis.
- Workflow Persistence: Defining a search once is enough. `create_saved_search` lets you save complex queries, then run them later using `get_search_results` without repeating the filter logic.

## How It Works

The bottom line is: it lets your AI client act as a dedicated satellite imagery analyst, handling everything from initial search to setting up automated data streams.

1. First, subscribe to the server and provide your Planet API key. This authorizes access.
2. Next, tell your AI client what you need—for instance, 'Search for cloud-free images over my farm.' The agent selects the appropriate tool (e.g., `quick_search`).
3. Finally, the server executes the query against the live Planet catalog and returns structured metadata results that your system can process.

## Frequently Asked Questions

**How do I find cloud-free imagery using quick_search?**
`quick_search` supports filtering by cloud cover. You must include the filter object specifying a range (e.g., 0-10%) for 'cloud_cover' when calling this tool.

**What is the difference between list_item_types and quick_search?**
`list_item_types` just shows you *what sources* are available (Sentinel, SkySat). `quick_search` actually runs a live query against those sources to find real imagery items for your area.

**How do I set up automated monitoring with create_subscription?**
You call `create_subscription` and provide the geometry, date filters, and the delivery destination. It then manages continuous checks and automatically sends new data when it becomes available.

**Should I use get_search_results or quick_search?**
Use `quick_search` for one-off searches. Use `get_search_results` after you've defined a search using `create_saved_search`; it executes the saved definition.

**How does `get_item_assets` help me choose the right data product for analysis?**
It lists every available file type and its download URL. You need this to differentiate between visual assets (for viewing, like PNG) and analytic assets (GeoTIFFs used for calculations like NDVI). It ensures you grab exactly what your GIS software requires.

**What's the workflow difference between `create_saved_search` and just running a quick search?**
You use `create_saved_search` to define a reusable template—it saves your specific filters (e.g., 'cloud-free, 30 days'). Then, you run that saved ID later using `get_search_results`. This keeps complex monitoring configurations organized and repeatable.

**Before downloading images, how can I check the quality using `get_cloud_coverage`?**
This tool gives you a clear percentage of usable area and cloud cover. It's essential for filtering out unusable data before you waste time or credits on downloads. If the coverage is low, your AI client knows to ask for better parameters.

**If I'm planning a large project, how can `get_search_statistics` help me gauge temporal coverage?**
It generates histograms showing imagery availability over time within an area. Instead of just checking if *an* image exists, this tool shows you patterns—like knowing exactly which month has the best satellite overlap for your site.

**Can my AI search for cloud-free satellite imagery over my farm from last month?**
Yes! Use the `quick_search` tool with your farm boundary as GeoJSON geometry, date range for last month, item_types=PSScene, and max_cloud_cover=10 (for 10% or less cloud cover). The search returns all available imagery matching your criteria with acquisition dates, cloud cover percentages, and download URLs for visual and analytic assets. For ongoing monitoring, create a saved search with `create_saved_search` and execute it regularly with `get_search_results`.

**What is the difference between PSScene, SkySat, and RapidEye imagery?**
PSScene (PlanetScope) provides daily global coverage at 3-5m resolution with 200+ satellites, ideal for broad-area monitoring and time-series analysis. SkySat offers sub-meter resolution (0.5-0.9m) with video capability, perfect for detailed inspection of specific sites. RapidEye provides 5m resolution with a 5-band sensor (including red-edge) and a deep historical archive dating back to 2009. Use `list_item_types` to see all available imagery types and their supported asset types.

**How do I set up automated daily imagery delivery for my area of interest?**
Use the `create_subscription` tool with your area geometry, item types (e.g., PSScene), and cloud cover filter. You can specify delivery to AWS S3, Google Cloud Storage, Azure Blob, or webhook endpoints. The subscription will continuously deliver new imagery matching your criteria as it becomes available. To manage existing subscriptions, use `list_subscriptions` to review and monitor active deliveries.