SkyFi MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SKYFI_API_KEY | Yes | Your SkyFi API key. Can also be provided via ~/.skyfi/config.json file. | |
| SKYFI_SIMULATE | No | Enable simulation mode (set to 'true') to test order flow without placing real orders. | false |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| geocodeA | Forward geocoding: accepts a human-readable location string (e.g. 'Port of Rotterdam') and returns lat/lng coordinates. Use this when the user mentions a place by name and you need coordinates for search or ordering tools. |
| reverse_geocodeA | Returns a place name for a given coordinate pair. Use this when you have lat/lng coordinates and need a human-readable location name. |
| get_bounding_boxA | Returns a bounding box polygon for a named place, directly usable as an AOI in search and order tools. Use this to convert a place name into a GeoJSON polygon for subsequent tool calls. |
| search_archiveA | Search available satellite imagery by AOI, date range, resolution, and sensor type. Returns scenes with IDs, capture dates, cloud cover, preview URLs, and per-scene pricing. Use this as the first step when the user wants to find existing imagery. |
| explore_open_dataA | Browse freely available datasets on SkyFi, filterable by provider and region. Use this when the user asks about free or open satellite data. |
| estimate_archive_priceA | Returns itemized pricing for a given archive order (scene, AOI, resolution) before commitment. Use this to give the user a cost estimate before generating a binding quote. |
| estimate_tasking_costA | Estimate the cost for a new satellite capture tasking order. Use this to give the user a cost preview before checking feasibility or generating a quote. |
| check_capture_feasibilityA | Analyze feasibility for a tasking order: satellite availability, revisit window, cloud cover forecast, and a plain-language summary. You MUST call this and present its output to the user before placing any tasking order. Precondition: call this before quote_tasking_order. |
| recommend_archive_purchaseA | Rank candidate archive scenes by cost, quality, or a balanced strategy. Use this after search/pricing to pick the best scene under an optional budget. |
| quote_archive_orderA | Generate a binding quote for an archive order. Returns a quote_id (valid 15 minutes) and a human-readable summary of what will be purchased and at what price. Present this to the user and wait for explicit confirmation before calling execute_archive_order. |
| execute_archive_orderA | Place an archive order using a confirmed quote. Preconditions: (1) you must have a valid quote_id from quote_archive_order, (2) the user must have explicitly confirmed they want to proceed, (3) you must provide an idempotency_key (UUID) for safe retries. Do NOT call this tool autonomously — always wait for user confirmation. |
| quote_tasking_orderA | Generate a binding quote for a new satellite capture tasking order. Returns a quote_id and summary. Precondition: call check_capture_feasibility first and present results to the user. Present this quote to the user and wait for confirmation before calling execute_tasking_order. |
| execute_tasking_orderA | Place a tasking order using a confirmed quote. Preconditions: (1) valid quote_id from quote_tasking_order, (2) explicit user confirmation, (3) idempotency_key (UUID). Do NOT call this tool autonomously — always wait for user confirmation. |
| get_order_statusA | Return current status and progress for an order by ID. Use this to check on a previously placed order. |
| list_ordersA | List the user's historical orders with filters for date range and status. Use this when the user asks about their past orders or order history. |
| fetch_order_imageA | Return download URL and metadata for a completed order's imagery. Use this when the user wants to download or access imagery from a delivered order. |
| setup_aoi_monitoringA | Configure recurring monitoring of an AOI for new imagery. Set sensor preferences, resolution requirements, and notification frequency. Use this when the user wants to be alerted when new imagery becomes available over a specific area. |
| create_webhook_subscriptionA | Register a webhook endpoint to receive push notifications when new imagery matching a monitoring rule is available. Requires an active monitor_id from setup_aoi_monitoring. |
| get_notification_statusA | Check delivery history and status for webhook subscriptions. Use this to verify notifications are being delivered or to diagnose delivery failures. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 19 tools
Each tool has a clearly distinct purpose, with workflow steps (estimate vs quote vs execute) and resource types (archive vs tasking vs monitoring) cleanly separated. No two tools overlap in function; even related tools like geocode and get_bounding_box serve different output needs.
All tool names follow a consistent verb_noun pattern in snake_case, using descriptive verbs (estimate, quote, execute, get, list) and clear noun targets (archive_order, tasking_order, notification_status). There is no mixing of styles or conventions.
At 19 tools, the set is slightly above the ideal 3-15 range, but the breadth is justified by the platform covering archive ordering, tasking, monitoring, geocoding, and order management. Each tool earns its place in the workflow, and the count feels reasonable rather than bloated.
Core lifecycles are well-covered: search/explore, estimate, quote, execute, track, and retrieve for both archive and tasking orders, plus monitoring setup and geocoding utilities. Minor gaps exist, such as lacking explicit tools to cancel or update monitoring/webhook subscriptions, but these are non-critical and don't create dead ends.