Skip to main content

MCP Server

The SkyWatch MCP (Model Context Protocol) Server enables AI assistants to search satellite imagery, estimate pricing, and browse available satellites through natural language conversations.

MCP Endpoint: https://api.skywatch.co/mcp

No API Key Required

The MCP server uses guest authentication. No API key or account setup is needed — connect your AI client and start searching.

Available Tools

search_archive_imagery

Search SkyWatch satellite imagery archive using natural language or structured parameters. Returns results with direct links to SkyWatch Explore for viewing and ordering.

ParameterTypeDefaultDescription
location_querystringNatural language location (e.g., "San Francisco", "downtown Toronto")
coordinatesobject{lat, lon, radius_km} for precise location search
bboxarrayBounding box [west, south, east, north]
geojsonobjectGeoJSON geometry (Polygon or Point)
start_datestringISO 8601 or natural language (e.g., "last month")
end_datestringISO 8601 or natural language (e.g., "today")
max_cloud_covernumber20Maximum cloud cover percentage (0–100)
min_coveragenumberMinimum area coverage percentage (0–100)
resolution_preferencestringany, low, medium, high, very_high
data_typestringallall, satellite, optical, aerial, elevation, sar, basemaps
preferred_providersarrayProvider names (e.g., ["Maxar", "Planet", "Airbus"])
order_bystringdateSort by: date, resolution, coverage, cost
limitnumber10Maximum results (1–50)

At least one location parameter (location_query, coordinates, bbox, or geojson) is required.

calculate_pricing

Estimate the cost for satellite imagery based on location, date range, and resolution.

ParameterTypeDefaultDescription
location_querystringNatural language location
coordinatesobject{lat, lon, radius_km} for precise location
geojsonobjectGeoJSON Polygon geometry
start_datestringStart date (ISO 8601 or natural language)
end_datestringEnd date (ISO 8601 or natural language)
resolutionstringhighvery_high (<1m), high (1–5m), medium (5–30m), low (>30m)
sourcestringSpecific product name (e.g., "Pleiades Neo")
offering_idstringProduct offering UUID for precise pricing
taskingbooleanfalsePrice for new tasking (true) or archive imagery (false)
intervalstringCapture interval for tasking (e.g., "7d", "30d"). Required when tasking=true

get_satellites

Get available satellites and sensors with their capabilities, resolution, and specifications.

ParameterTypeDefaultDescription
filter_by_resolutionstringallvery_high, high, medium, low, all
filter_by_typestringalloptical, sar, elevation, all
include_detailsbooleantrueInclude provider and revisit time specifications

get_offerings

Browse available satellite imagery products and their specifications, including archive and tasking options.

ParameterTypeDefaultDescription
categorystringallarchive, tasking, all
partner_filterstringFilter by provider name (e.g., "Maxar", "Planet")
product_namestringFilter by product name (e.g., "Pleiades Neo")
resolution_filterobject{min_meters, max_meters} for resolution range
locationobjectGeoJSON geometry to check availability for a specific area
limitnumber20Maximum results (1–100)

Resources

The MCP server exposes three read-only resources:

Resource URINameFormatDescription
skywatch://providersSatellite Imagery ProvidersJSONProvider capabilities, pricing, and specifications
skywatch://pricing-tiersPricing TiersJSONResolution-based pricing breakdown with 5 tiers
skywatch://getting-startedGetting Started GuideMarkdownExample queries and usage tips

Examples

Search for Imagery

curl -X POST https://api.skywatch.co/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "search_archive_imagery",
"arguments": {
"location_query": "San Francisco",
"start_date": "last month",
"end_date": "today",
"max_cloud_cover": 15,
"resolution_preference": "high",
"limit": 5
}
}
}'

Get Pricing Estimate

curl -X POST https://api.skywatch.co/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "calculate_pricing",
"arguments": {
"location_query": "Central Park, New York",
"resolution": "high",
"start_date": "last month",
"end_date": "today"
}
}
}'

List Available Satellites

curl -X POST https://api.skywatch.co/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_satellites",
"arguments": {
"filter_by_type": "optical",
"filter_by_resolution": "very_high"
}
}
}'

Read a Resource

curl -X POST https://api.skywatch.co/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "resources/read",
"params": {
"uri": "skywatch://providers"
}
}'

Protocol Details

The MCP server implements the MCP 2025-03-26 specification over HTTP with JSON-RPC 2.0.

Supported Methods:

MethodDescription
initializeInitialize MCP session
tools/listList available tools
tools/callExecute a tool
resources/listList available resources
resources/readRead a resource
prompts/listList available prompts
prompts/getGet a prompt

Response Format:

{
"jsonrpc": "2.0",
"id": 1,
"result": {
"content": [
{
"type": "text",
"text": "## 10 Results Found\n..."
}
]
}
}

Troubleshooting

Search returns no results:

  • Expand the date range
  • Increase max_cloud_cover (default is 20%)
  • Try a larger search area or use any for resolution_preference

Timeout errors:

  • The search has a 25-second timeout
  • Try reducing the search area or date range
  • Use specific coordinates instead of large regions

Verify the endpoint is running:

curl https://api.skywatch.co/mcp/health