Skip to content

TylerPohn/skyfi-mcp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SkyFi MCP Server

A Model Context Protocol (MCP) server implementation that enables AI agents to interact with SkyFi's geospatial data services seamlessly.

Overview

The SkyFi MCP Server provides a standardized interface for AI agents to:

  • Explore and search geospatial satellite imagery data
  • Place orders with price confirmation workflows
  • Set up area-of-interest (AOI) monitoring with webhooks
  • Access previous orders and task history
  • Integrate with various AI frameworks (Claude Code, LangChain, AI SDK)

Features

  • Conversational Workflows: Natural language interaction for complex geospatial tasks
  • Price Confirmation: Multi-step order placement with transparent pricing
  • AOI Monitoring: Automated notifications for new data in areas of interest
  • Multi-Framework Support: Works with Claude Code, LangChain, Vercel AI SDK, and more
  • Type-Safe: Built with TypeScript 5+ with strict mode enabled
  • Production-Ready: Comprehensive logging, error handling, and testing

Prerequisites

  • Node.js 18.0.0 or higher
  • npm or pnpm package manager
  • SkyFi API key (Get one here)

Installation

Local Setup

  1. Clone the repository:
git clone https://github.com/skyfi/skyfi-mcp-server.git
cd skyfi-mcp-server
  1. Install dependencies:
npm install
  1. Configure environment variables:
cp .env.example .env
# Edit .env and add your SKYFI_API_KEY
  1. Build the project:
npm run build
  1. Start the server:
npm start

Development Mode

Run the server in development mode with hot-reload:

npm run dev

Configuration

The server can be configured using environment variables. Copy .env.example to .env and configure:

# Required
SKYFI_API_KEY=your_api_key_here

# Optional
NODE_ENV=development
LOG_LEVEL=info
SKYFI_API_BASE_URL=https://api.skyfi.com/v1

Usage

With Claude Code

Configure Claude Code to use the SkyFi MCP server by adding to your MCP configuration:

{
  "mcpServers": {
    "skyfi": {
      "url": "http://localhost:3000",
      "apiKey": "${SKYFI_API_KEY}"
    }
  }
}

With LangChain

from skyfi_mcp_client import SkyFiMCPClient

client = SkyFiMCPClient(server_url="http://localhost:3000")

With AI SDK (Vercel)

import { SkyFiMCPClient } from '@skyfi/mcp-client';

const client = new SkyFiMCPClient({
  serverUrl: 'http://localhost:3000'
});

Available Tools

The MCP server exposes the following tools:

  • search_geospatial_data: Search for satellite imagery and geospatial data
  • check_order_feasibility: Verify order feasibility and get pricing
  • place_order: Place an order for geospatial data
  • setup_monitoring: Configure AOI monitoring with webhooks
  • get_previous_orders: Retrieve order history

See API Documentation for detailed tool specifications.

Development

Project Structure

skyfi-mcp/
├── src/
│   ├── server/          # Server configuration and setup
│   ├── tools/           # MCP tool handlers
│   ├── api/             # SkyFi API client
│   ├── types/           # TypeScript type definitions
│   └── index.ts         # Main entry point
├── tests/               # Test files
├── docs/                # Documentation
└── dist/                # Compiled output

Available Scripts

  • npm run dev - Start development server with hot-reload
  • npm run build - Build for production
  • npm start - Start production server
  • npm test - Run test suite
  • npm run lint - Run ESLint
  • npm run format - Format code with Prettier
  • npm run typecheck - Run TypeScript type checking

Testing

Run the test suite:

npm test

Run tests in watch mode:

npm run test:watch

Generate coverage report:

npm run test:coverage

Code Quality

This project uses:

  • TypeScript with strict mode for type safety
  • ESLint for code linting
  • Prettier for code formatting
  • Husky for pre-commit hooks
  • Jest for testing

Code quality checks run automatically on commit via pre-commit hooks.

Architecture

See Architecture Documentation for detailed system design, component architecture, and integration patterns.

Contributing

We welcome contributions! Please see CONTRIBUTING.md for guidelines.

Development Workflow

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Make your changes
  4. Run tests and linting (npm test && npm run lint)
  5. Commit your changes (git commit -m 'Add amazing feature')
  6. Push to your branch (git push origin feature/amazing-feature)
  7. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Support

Acknowledgments


Status: This project is in active development. See Project Roadmap for upcoming features.

About

No description, website, or topics provided.

Resources

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors