Skip to main content
Glama

SkyFi MCP Server

A production-ready MCP server for SkyFi's satellite imagery Platform API. Search 150+ satellites from 12+ providers, compare pricing, and order archive or tasking imagery — all through natural language with any AI agent.

SkyFi aggregates imagery from Planet, Vantor, ICEYE, Umbra, Satellogic, and others into a single API with transparent pricing and no contracts. This MCP server makes that API accessible to Claude, GPT, Gemini, LangChain, and any MCP-compatible agent.

Architecture

graph LR
    A[AI Agent] -->|MCP Protocol| B[SkyFi MCP Server]
    B -->|REST API| C[SkyFi Platform API]
    B -->|Nominatim| K[OpenStreetMap]
    C --> D[Planet]
    C --> E[Vantor]
    C --> F[ICEYE]
    C --> G[Umbra]
    C --> H[Satellogic]
    C --> I[Sentinel-1/2]
    C --> J[12+ more...]

Related MCP server: Planet MCP

Quick Start (< 5 minutes)

1. Install

pip install skyfi-mcp
# or from source:
git clone https://github.com/jpwilson/skyfi-mcp.git
cd skyfi-mcp && pip install -e .

2. Configure

export SKYFI_API_KEY=your_api_key  # Get one at https://app.skyfi.com

3. Run

# Remote server (production)
skyfi-mcp
# → Listening at http://localhost:8000/mcp

# Local stdio (development)
SKYFI_MCP_TRANSPORT=stdio skyfi-mcp

4. Connect your agent

Claude Desktop — add to claude_desktop_config.json:

{
  "mcpServers": {
    "skyfi": {
      "url": "http://localhost:8000/mcp"
    }
  }
}

Claude Code:

claude mcp add skyfi http://localhost:8000/mcp

5. Try it (free)

"Find free Sentinel-2 imagery over the Amazon basin"

This uses open data ($0) — no credit card needed.

Tools (20)

Tool

Description

SkyFi API

skyfi_whoami

Check account status, budget, payment method

skyfi_search_archives

Search archive imagery by location, date, sensor, provider

skyfi_get_archive

Get full details for an archive image

skyfi_get_pricing

Get pricing by AOI, product type, provider

skyfi_create_feasibility

Create tasking feasibility check

skyfi_get_feasibility

Poll feasibility results and provider windows

skyfi_predict_passes

Satellite pass prediction for tasking timing

skyfi_create_archive_order

Stage an archive order (shows price, requires confirmation)

skyfi_create_tasking_order

Stage a tasking order (shows price, requires confirmation)

skyfi_confirm_order

Execute a staged order (this commits money)

skyfi_list_orders

List orders with status/type filters

skyfi_get_order

Get order details

skyfi_redeliver_order

Redeliver completed order to different cloud bucket

skyfi_get_deliverables

Get download URLs for completed orders

skyfi_create_notification

Set up AOI monitoring with webhook alerts

skyfi_list_notifications

List active monitoring notifications

skyfi_manage_notification

Get or delete a notification

OpenStreetMap

osm_geocode

Convert place names to coordinates + SkyFi-ready WKT polygons

osm_reverse_geocode

Convert coordinates to place names and addresses

osm_search_nearby

Find features (airports, ports, etc.) near a location

Ordering Safety

Orders use a two-step confirmation pattern:

  1. Stageskyfi_create_archive_order or skyfi_create_tasking_order calls the API and returns a price summary

  2. Confirm — Only skyfi_confirm_order marks the order as human-approved

Order: VANTOR 30cm DAY, 12.4 sq km, $847. Deliver to S3. Confirm?

Free open-data orders ($0 Sentinel-1/2) still show confirmation but note "Free — no charge."

Tasking Workflow

1. skyfi_create_feasibility → get feasibility ID
2. skyfi_get_feasibility    → poll for provider windows
3. skyfi_predict_passes     → (optional) check satellite timing
4. skyfi_create_tasking_order → stage with selected provider/window
5. skyfi_confirm_order      → execute after human approval

Provider-specific: Planet supports provider_window_id selection from feasibility results.

AI Provider Integration

Provider

Method

Example

Claude Desktop

MCP config

Setup guide

Claude Code

claude mcp add

Setup guide

OpenAI

Function calling

examples/openai_example.py

Anthropic SDK

Tool use

examples/anthropic_example.py

Google Gemini

Function calling

examples/gemini_example.py

Google ADK

MCPToolset

examples/adk_example.py

LangChain

MCP adapter

examples/langchain_example.py

Vercel AI SDK

MCP client

Setup guide

Deployment

railway login && railway init
railway variables set SKYFI_API_KEY=your_key
railway up
# → https://your-project.up.railway.app/mcp

Docker

docker build -t skyfi-mcp .
docker run -p 8000:8000 -e SKYFI_API_KEY=your_key skyfi-mcp

Or with docker-compose:

echo "SKYFI_API_KEY=your_key" > .env
docker-compose up

Configuration

Auth is resolved in priority order:

  1. X-Skyfi-Api-Key request header (cloud deployment)

  2. SKYFI_API_KEY environment variable

  3. Config file at ~/.skyfi/config.json (or SKYFI_CONFIG_PATH)

Environment variables:

Variable

Default

Description

SKYFI_API_KEY

SkyFi Platform API key

SKYFI_MCP_HOST

0.0.0.0

Server bind host

SKYFI_MCP_PORT

8000

Server bind port

SKYFI_MCP_TRANSPORT

streamable-http

Transport: streamable-http, sse, stdio

SKYFI_API_BASE_URL

https://app.skyfi.com/platform-api

API base URL override

AOI Constraints

  • Format: WKT POLYGON (convex)

  • Max vertices: 500

  • Max area: 500,000 sq km

  • Coordinates: longitude latitude (WGS84)

Development

# Install with dev dependencies
pip install -e ".[dev]"

# Run tests
pytest

# Run with coverage
pytest --cov=skyfi_mcp --cov-report=term-missing

# Lint
ruff check src/ tests/

# Type check
mypy src/

# Security scan
bandit -r src/

Documentation

Contributing

  1. Fork the repository

  2. Create a feature branch (git checkout -b feature/amazing-feature)

  3. Write tests for new functionality

  4. Run the full test suite (pytest)

  5. Run linting and type checks (ruff check . && mypy src/)

  6. Commit with descriptive messages

  7. Open a pull request

License

MIT — see LICENSE.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    Not graded
    maintenance
    Enables AI agents to search, order, and monitor satellite and geospatial imagery through SkyFi's API, including archive searches, pricing estimates, and order tracking.
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to interact with the Planet API for satellite imagery ordering, subscriptions, and data management through natural language.
    17
    Apache 2.0