A Model Context Protocol (MCP) server that enables GitHub Copilot to interact with Microsoft Planetary Computer Pro.
Table of Contents
Overview
Microsoft Planetary Computer MCP Tools is an MCP Server-compatible service that exposes a set of tools for working with geospatial data on Microsoft Planetary Computer Pro. It provides capabilities for STAC search and discovery, data ingestion, format conversion, error-code troubleshooting, and interactive map-based data selection. Delivered as a VS Code extension, the MCP Server allows users to interact with Planetary Computer Pro entirely through natural language queries via GitHub Copilot, eliminating the need to navigate traditional UI workflows and significantly accelerating geospatial analysis and MPC Pro workflows.
Key Capabilities:
- STAC Search & Discovery: Browse and search public datasets from Microsoft Planetary Computer and your private GeoCatalog collections by location, time, and metadata
- Collection Management: Create, configure, and clone STAC collections—including render options, mosaic definitions, and thumbnails
- PC → GeoCatalog Ingestion: Bulk ingest items from Planetary Computer or external STAC APIs into your GeoCatalog
- Natural Language Interface: Interact with Planetary Computer Pro entirely through conversational prompts via GitHub Copilot
Installation
VS Code
Compatible with both the Stable and Insiders builds of VS Code.
- Install the GitHub Copilot Chat extension.
- Install the Microsoft Planetary Computer Pro MCP Tools extension.
Installation is complete! Microsoft Planetary Computer MCP Tools is now ready to use in VS Code.
User Guide
Prerequisite
The Azure CLI client and an existing Microsoft Planetary Computer Pro GeoCatalog instance must be configured prior to use. Instructions on how to install the Azure CLI are included in this link.
Getting Started
- In a PowerShell terminal run
az login to log in and select the Azure subscription where your GeoCatalog was provisioned.
- Open GitHub Copilot in VS Code and switch to Agent mode.
- Click
refresh on the tools list
- You should see the Microsoft Planetary Computer MCP Tools in the list of tools
- Try a prompt that uses Planetary Computer context, such as
How many collections are in the Geocatalog <url>
- The agent should be able to use the Planetary Computer MCP Tools to complete your query
- Reference the Microsoft Planetary Computer MS Learn page for information on MPC Pro
✨ Microsoft Planetary Computer MCP Tools function as an assistant layer that augments Microsoft Planetary Computer Pro workflow, helping users to discover, access, and operate geospatial data and services more efficiently. Below is a list of tools, their descriptions, and example prompts to get started:
Discovery & Browsing
| Tool Name |
Description |
Sample Prompt |
list_mpc_stac_collections |
Browse all available public datasets in Microsoft Planetary Computer |
"What satellite datasets are available in Planetary Computer Pro?" |
get_mpc_collection_json |
Get detailed metadata about a specific Planetary Computer dataset |
"Tell me about the Sentinel-2 collection in Planetary Computer Pro" |
check_mpc_collection_exists |
Check if a collection exists in the public Planetary Computer catalog |
"Does the sentinel-2-l2a collection exist in Planetary Computer?" |
list_personal_stac_collections |
List all collections in your private GeoCatalog instance |
"Show me all collections in my GeoCatalog" |
get_personal_collection_details |
Get comprehensive details of a specific collection in your GeoCatalog |
"Get details for my sentinel-tutorial collection" |
get_personal_collection_json |
Retrieve the STAC collection JSON from your personal GeoCatalog |
"Fetch the STAC collection metadata for my-collection" |
check_personal_collection_exists |
Check if a collection exists in your personal GeoCatalog |
"Does the naip-2021 collection exist in my GeoCatalog?" |
Searching Data
| Tool Name |
Description |
Sample Prompt |
search_mpc_items |
Search for satellite imagery in Planetary Computer by location and time |
"Find Sentinel-2 imagery over Seattle from January 2024" |
search_personal_collection_items |
Search for items within your private GeoCatalog collections |
"Search my GeoCatalog for imagery near San Francisco" |
search_stac_items |
Search any STAC API with spatial and temporal filters |
"Search the Planetary Computer STAC API for Landsat data" |
Collection Management
| Tool Name |
Description |
Sample Prompt |
create_personal_stac_collection |
Create a new STAC collection in your personal GeoCatalog |
"Create a basic collection called my-imagery" |
create_personal_collection_from_mpc |
Clone a Planetary Computer collection to your GeoCatalog |
"Create a collection based on Sentinel-2 from Planetary Computer" |
create_and_ingest_personal_collection_from_mpc |
Full workflow to create and ingest a collection from Planetary Computer |
"Copy the NAIP collection from Planetary Computer to my GeoCatalog and ingest the items" |
delete_personal_collection |
Delete a STAC collection from your personal GeoCatalog |
"Delete the test-collection from my GeoCatalog" |
Collection Configuration
| Tool Name |
Description |
Sample Prompt |
configure_personal_collection_render_options |
Set up visualization presets (Natural Color, NDVI, etc.) |
"Configure render options for my Sentinel-2 collection" |
configure_collection_mosaic_definitions |
Define filtering rules for dynamic mosaics |
"Set up mosaic definitions for my imagery collection" |
replace_personal_collection_thumbnail |
Add or update a collection's preview image |
"Upload a new thumbnail for my naip-data collection" |
delete_personal_collection_thumbnail |
Remove a collection's thumbnail image |
"Remove the thumbnail from my test collection" |
Ingestion Sources
| Tool Name |
Description |
Sample Prompt |
create_ingestion_source |
Register a cloud storage container as a data source |
"Set up an ingestion source for my Azure blob container" |
list_ingestion_sources |
List all registered ingestion sources |
"Show all ingestion sources in my GeoCatalog" |
get_ingestion_source_details |
Get details of a specific ingestion source |
"Get details for ingestion source abc123" |
delete_ingestion_source |
Remove an ingestion source |
"Delete ingestion source xyz789" |
Data Ingestion
| Tool Name |
Description |
Sample Prompt |
ingest_stac_item |
Ingest a single STAC item (metadata) into a collection |
"Ingest this Sentinel-2 scene into my collection" |
batch_ingest_stac_items |
Batch ingest multiple STAC items into a collection |
"Batch ingest these 5 STAC item files into my collection" |
bulk_ingest_stac_items |
Search external API (e.g., Planetary Computer) and bulk ingest results |
"Bulk ingest Landsat data from Planetary Computer into my collection" |
Ingestion Monitoring
| Tool Name |
Description |
Sample Prompt |
check_operation_status |
Check status of a single ingestion operation |
"Check the status of ingestion operation op-12345" |
check_multiple_operations |
Monitor multiple ingestion operations at once |
"Check status of all my pending ingestion jobs" |
Asset Downloads
| Tool Name |
Description |
Sample Prompt |
download_asset_from_url |
Download a geospatial file from a signed URL |
"Download the red band from this Sentinel-2 scene" |
download_spacenet_chips |
Download SpaceNet 5 training chips |
"Download SpaceNet Moscow training chips 990-999" |
Item Management
| Tool Name |
Description |
Sample Prompt |
delete_stac_item_in_personal_collection |
Delete a STAC item from a collection |
"Delete item scene-001 from my collection" |
| Tool Name |
Description |
Sample Prompt |
call_mpc_tools |
Universal dispatcher that can call any registered tool by name |
"Call the search_mpc_items tool with collection sentinel-2-l2a" |
list_available_tools |
List all tools registered in the MPC PRO Agent server |
"What tools are available in this MCP server?" |
get_server_info |
Get comprehensive information about this MCP server and its capabilities |
"What can this MCP server do?" |
Debugging & Testing
| Tool Name |
Description |
Sample Prompt |
generate_jsonrpc_initialize |
Generate JSON-RPC initialization message for debugging |
"Generate the MCP initialization handshake message" |
generate_jsonrpc_tool_call |
Generate JSON-RPC tool call for debugging |
"Generate a JSON-RPC message to call search_mpc_items" |
Reference
Documentation
Security
As with all new technology standards, consider doing a security review to ensure any systems that integrate with MCP servers follow all regulations and standards your system is expected to adhere to.
Data Collection
The software may collect information about you and your use of the software and send it to Microsoft. Microsoft may use this information to provide services and improve our products and services. You may turn off the telemetry by following the instructions here.