Skip to main content
Glama
README.md10.7 kB
# SkyFi MCP API Reference Complete reference for all available MCP tools. ## Tools Overview | Tool | Description | |------|-------------| | [search_archive](#search_archive) | Search for existing satellite imagery | | [get_pricing_estimate](#get_pricing_estimate) | Get pricing for imagery | | [check_order_feasibility](#check_order_feasibility) | Check if an order is feasible | | [place_order](#place_order) | Place an order with confirmation | | [get_order_status](#get_order_status) | Check order status | | [cancel_order](#cancel_order) | Cancel a pending order | | [list_orders](#list_orders) | List all orders | | [poll_order_status](#poll_order_status) | Poll until order completes | | [create_monitor](#create_monitor) | Create AOI monitor | | [list_monitors](#list_monitors) | List all monitors | | [get_monitor](#get_monitor) | Get monitor details | | [delete_monitor](#delete_monitor) | Delete a monitor | | [pause_monitor](#pause_monitor) | Pause a monitor | | [resume_monitor](#resume_monitor) | Resume a paused monitor | --- ## Archive Search ### search_archive Search for existing satellite imagery in the SkyFi archive. **Parameters:** | Name | Type | Required | Description | |------|------|----------|-------------| | apiKey | string | Yes | SkyFi API key | | location | string or GeoJSON | Yes | Location to search (address, coordinates, or GeoJSON) | | dateRange | object | No | `{start: string, end: string}` in ISO 8601 format | | resolution | string | No | Minimum resolution (e.g., "0.5m", "1m") | | imageType | string | No | "optical", "sar", "multispectral", "hyperspectral" | | openDataOnly | boolean | No | Only return free imagery | | limit | number | No | Max results to return | **Example:** ```json { "apiKey": "your-api-key", "location": "San Francisco, CA", "dateRange": { "start": "2024-01-01", "end": "2024-12-31" }, "resolution": "1m", "imageType": "optical", "limit": 10 } ``` **Response:** ```json { "success": true, "results": [ { "id": "img_abc123", "provider": "Maxar", "captureDate": "2024-06-15T10:30:00Z", "resolution": "0.5m", "imageType": "optical", "price": 45.00, "currency": "USD", "previewUrl": "https://...", "cloudCoverage": 5 } ], "total": 25, "hasMore": true } ``` --- ## Pricing & Feasibility ### get_pricing_estimate Get pricing estimate for imagery. **Parameters:** | Name | Type | Required | Description | |------|------|----------|-------------| | apiKey | string | Yes | SkyFi API key | | imageId | string | Conditional | ID of archive imagery (use this OR taskingRequest) | | taskingRequest | object | Conditional | Request for new capture | **taskingRequest object:** | Name | Type | Required | Description | |------|------|----------|-------------| | location | GeoJSON | Yes | Point or Polygon | | resolution | string | Yes | Desired resolution | | captureDate | string | No | ISO 8601 date | | imageType | string | No | Type of imagery | **Example:** ```json { "apiKey": "your-api-key", "imageId": "img_abc123" } ``` **Response:** ```json { "success": true, "pricing": { "price": 45.00, "currency": "USD", "provider": "Maxar", "estimatedDelivery": "30 minutes", "breakdown": { "basePrice": 40.00, "processingFee": 5.00 } } } ``` ### check_order_feasibility Check if an order can be fulfilled. **Parameters:** Same as `get_pricing_estimate` **Response:** ```json { "success": true, "feasibility": { "feasible": true, "message": "Order is feasible and can be processed" } } ``` Or if not feasible: ```json { "success": true, "feasibility": { "feasible": false, "reason": "Requested resolution not available", "detailedExplanation": "The requested resolution is not available for this location", "suggestions": [ "Try a different resolution (e.g., 1m instead of 0.5m)", "Consider using a different imagery provider" ], "alternatives": ["Try 1m resolution"] } } ``` --- ## Order Management ### place_order Place an order for satellite imagery. Requires a confirmation token. **Parameters:** | Name | Type | Required | Description | |------|------|----------|-------------| | apiKey | string | Yes | SkyFi API key | | userConfirmationToken | string | Yes | Confirmation token | | imageId | string | Conditional | Archive image ID | | taskingRequest | object | Conditional | New capture request | | deliveryOptions | object | No | Delivery preferences | **deliveryOptions object:** | Name | Type | Description | |------|------|-------------| | cloudStorage | string | S3/GCS path (e.g., "s3://bucket/path") | | format | string | Output format ("geotiff", "jp2", "png") | **Example:** ```json { "apiKey": "your-api-key", "userConfirmationToken": "confirm_abc123", "imageId": "img_abc123", "deliveryOptions": { "format": "geotiff" } } ``` **Response:** ```json { "success": true, "order": { "id": "order_xyz789", "status": "pending", "price": 45.00, "currency": "USD", "createdAt": "2025-01-15T10:00:00Z", "estimatedDelivery": "30 minutes", "message": "Order order_xyz789 has been placed successfully" } } ``` ### get_order_status Check the status of an order. **Parameters:** | Name | Type | Required | Description | |------|------|----------|-------------| | apiKey | string | Yes | SkyFi API key | | orderId | string | Yes | Order ID | **Response:** ```json { "success": true, "order": { "id": "order_xyz789", "status": "completed", "price": 45.00, "currency": "USD", "progress": 100, "downloadUrls": [ "https://downloads.skyfi.com/order_xyz789/image.tif" ], "statusDescription": "Order is complete and imagery is available for download" } } ``` ### cancel_order Cancel a pending or processing order. **Parameters:** | Name | Type | Required | Description | |------|------|----------|-------------| | apiKey | string | Yes | SkyFi API key | | orderId | string | Yes | Order ID to cancel | ### list_orders List all orders with optional filtering. **Parameters:** | Name | Type | Required | Description | |------|------|----------|-------------| | apiKey | string | Yes | SkyFi API key | | limit | number | No | Max results (default: 20) | | offset | number | No | Pagination offset | | status | string | No | Filter by status | | dateRange | object | No | Filter by date | ### poll_order_status Poll an order until it reaches a terminal state. **Parameters:** | Name | Type | Required | Description | |------|------|----------|-------------| | apiKey | string | Yes | SkyFi API key | | orderId | string | Yes | Order ID to poll | | maxAttempts | number | No | Max polls (default: 10, max: 100) | | intervalSeconds | number | No | Seconds between polls (default: 30, range: 5-300) | **Response:** ```json { "success": true, "completed": true, "order": { "id": "order_xyz789", "status": "completed", "downloadUrls": ["https://..."] }, "polling": { "attempts": 3, "maxAttempts": 10, "intervalSeconds": 30, "statusHistory": [ {"status": "pending", "timestamp": "...", "progress": 0}, {"status": "processing", "timestamp": "...", "progress": 50}, {"status": "completed", "timestamp": "...", "progress": 100} ] } } ``` --- ## AOI Monitoring ### create_monitor Create a monitor for an area of interest. **Parameters:** | Name | Type | Required | Description | |------|------|----------|-------------| | apiKey | string | Yes | SkyFi API key | | location | GeoJSON | Yes | Point or Polygon to monitor | | webhookUrl | string | Yes | URL for notifications | | resolution | string | No | Minimum resolution | | imageType | string | No | Type of imagery | | frequency | string | No | Check frequency ("daily", "weekly") | | notifyOnNewImagery | boolean | No | Notify on new imagery (default: true) | | notifyOnPriceChange | boolean | No | Notify on price changes | **Example:** ```json { "apiKey": "your-api-key", "location": { "type": "Point", "coordinates": [-122.4194, 37.7749] }, "webhookUrl": "https://example.com/webhook", "resolution": "1m", "frequency": "daily" } ``` **Response:** ```json { "success": true, "monitor": { "id": "mon_abc123", "status": "active", "location": {...}, "criteria": {"resolution": "1m"}, "webhookUrl": "https://example.com/webhook", "createdAt": "2025-01-15T10:00:00Z", "message": "Monitor mon_abc123 created successfully" } } ``` ### list_monitors List all monitors. **Parameters:** | Name | Type | Required | Description | |------|------|----------|-------------| | apiKey | string | Yes | SkyFi API key | ### get_monitor Get details of a specific monitor. **Parameters:** | Name | Type | Required | Description | |------|------|----------|-------------| | apiKey | string | Yes | SkyFi API key | | monitorId | string | Yes | Monitor ID | ### delete_monitor Delete a monitor permanently. **Parameters:** | Name | Type | Required | Description | |------|------|----------|-------------| | apiKey | string | Yes | SkyFi API key | | monitorId | string | Yes | Monitor ID | ### pause_monitor Pause an active monitor. **Parameters:** | Name | Type | Required | Description | |------|------|----------|-------------| | apiKey | string | Yes | SkyFi API key | | monitorId | string | Yes | Monitor ID | ### resume_monitor Resume a paused monitor. **Parameters:** | Name | Type | Required | Description | |------|------|----------|-------------| | apiKey | string | Yes | SkyFi API key | | monitorId | string | Yes | Monitor ID | --- ## Error Handling All tools return errors in a consistent format: ```json { "error": "ERROR_CODE", "message": "Human-readable error message", "statusCode": 400, "details": {...}, "troubleshooting": { "possibleCauses": ["..."], "suggestions": ["..."] } } ``` ### Common Error Codes | Code | Description | |------|-------------| | AUTH_INVALID | Invalid or expired API key | | NOT_FOUND | Resource not found | | INVALID_REQUEST | Invalid parameters | | INSUFFICIENT_FUNDS | Account balance too low | | RATE_LIMITED | Too many requests | | INVALID_TOKEN | Confirmation token invalid | --- ## GeoJSON Reference ### Point ```json { "type": "Point", "coordinates": [-122.4194, 37.7749] } ``` Note: Coordinates are `[longitude, latitude]` ### Polygon ```json { "type": "Polygon", "coordinates": [[ [-122.5, 37.7], [-122.4, 37.7], [-122.4, 37.8], [-122.5, 37.8], [-122.5, 37.7] ]] } ``` Note: First and last coordinates must be identical to close the polygon.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/mfuechec/SkyFiMCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server