mcp-server

mcp-server

A production-ready Model Context Protocol server for advanced aerospace and astrodynamics calculations.

1
Stars
1
Forks
1
Watchers
0
Issues
The mcp-server provides a Model Context Protocol (MCP) server specifically designed for aerospace and astrodynamics computations. It offers both STDIO and HTTP/SSE transport options, enabling seamless integration with MCP clients for tasks like celestial body ephemeris, orbital mechanics, geometry, ground station operations, and time system conversions. Powered by the IO Aerospace Astrodynamics framework, it supports rapid, context-aware scientific tool execution for applications in mission analysis and research. Extensible deployment methods, including Docker and .NET, and a focus on easy client integration are core components.

Key Features

STDIO and HTTP/SSE transport support for flexible integration
Celestial body ephemeris and state vector calculations
Comprehensive orbital parameters conversions and calculations
Ground station and Deep Space Network operations toolkit
Geometry and constraint event finding (eclipse, occultation, distance)
Robust time system conversions (UTC, TDB, TAI, GPS, etc.)
Extensive mathematical and unit conversion tools for aerospace
Docker and native .NET deployment options
Production-ready public and self-hosted server deployment
JSON-based configuration support for multiple MCP clients

Use Cases

Automating celestial body ephemeris queries for spacecraft navigation
Converting between orbital elements and state vectors for mission planning
Real-time ground station state estimation and event timing
Integrating astrodynamics tools into AI-driven mission design platforms
Performing time system and unit conversions for scientific computations
Supporting educational tools for orbital mechanics and aerospace physics
Providing standardized protocol endpoint for model context-aware tooling
Rapid prototyping of space mission scenarios with programmable toolkit
Embedding space data and computation services into web applications
Creating custom integrations for research and commercial aerospace platforms

README

IO Aerospace MCP Server

Use it now

Hosted in production (no setup needed): https://mcp.io-aerospace.org/

SSE endpoint: https://mcp.io-aerospace.org/sse

Note: Most MCP clients that support HTTP/SSE only need the base URL; they will connect to the SSE stream internally (commonly at /sse). The explicit /sse URL is provided here for manual/web integrations.

A Model Context Protocol (MCP) server for aerospace and astrodynamics calculations, providing tools for celestial body ephemeris, orbital mechanics, and space mission analysis.

Overview

This MCP server provides two transport options:

  • STDIO Transport: Standard input/output communication (recommended for MCP clients)
  • SSE Transport: HTTP Server-Sent Events for web-based integrations

The server includes comprehensive tools for:

  • Celestial body ephemeris and state vector calculations
  • Orbital mechanics and geometry computations
  • Deep Space Network (DSN) ground station operations
  • Solar system object properties and characteristics
  • Mathematical conversions for aerospace calculations
  • Time system conversions and utilities

Astrodynamics Framework

This server is powered by the IO Aerospace Astrodynamics framework, which provides the core algorithms for ephemerides, orbital mechanics, geometry, and time systems.

Use the hosted server (recommended)

You can start integrating immediately against the production instance:

Example (browser/Node):

javascript
const eventSource = new EventSource('https://mcp.io-aerospace.org/sse');

eventSource.onmessage = (event) => {
  console.log('message', event.data);
};

eventSource.onerror = (err) => {
  console.error('sse error', err);
};

Self-hosting is optional; see below for Docker and .NET instructions.

Project Structure

mcp-server/
├── AI/                           # AI tools and models
│   ├── Tools/                    # Core calculation tools
│   ├── Models/                   # Data models and types
│   └── Converters/              # Type converters
├── Data/                         # Data providers and solar system kernels
│   ├── SolarSystem/             # SPICE kernel files
│   └── SolarSystemObjects/      # Celestial body definitions
├── Server.Sse/                  # HTTP/SSE transport server
├── Server.Stdio/                # STDIO transport server
├── docker-compose.yml           # Development Docker configuration
├── docker-compose.prod.example.yml  # Production template
└── deploy-production.sh         # Production deployment script

Prerequisites

  • .NET 9.0 SDK or runtime
  • Docker (for containerized deployment)
  • Solar system kernels data (SPICE kernels)

Available Tools

CelestialBodyTools

  • GetEphemerisAsStateVectors: Calculate state vectors (position and velocity) of celestial bodies
  • GetCelestialBodyProperties: Retrieve geophysical properties of planets and moons

OrbitalParametersTools

  • ConvertStateVectorToKeplerianElements: Convert state vectors to Keplerian orbital elements
  • ConvertStateVectorToEquinoctialElements: Convert state vectors to equinoctial elements
  • ConvertStateVectorToEquatorialCoordinates: Convert state vectors to equatorial coordinates
  • ConvertKeplerianElementsToStateVector: Convert Keplerian elements back to state vectors
  • ConvertEquinoctialElementsToStateVector: Convert equinoctial elements back to state vectors
  • ConvertStateVectorToTheGivenFrame: Transform state vectors between reference frames

GeometryFinderTools

  • FindCoordinateConstraint: Find time windows when coordinate constraints are met
  • FindDistanceConstraint: Find time windows when distance constraints are satisfied
  • FindOccultingConstraint: Find occultation and eclipse events

SiteTools

  • GetDeepSpaceStationPlanetodeticCoordinates: Get latitude, longitude, and altitude of DSS stations
  • GetDeepSpaceStationStateVector: Calculate state vectors for ground stations
  • GetHorizontalCoordinates: Get azimuth and elevation from ground stations
  • GetDSSFrame: Retrieve reference frame information for DSS stations

TimeTools

  • ConvertDateTime: Convert between different time systems (UTC, TDB, TAI, TDT, GPS)
  • CurrentDateTime: Get current UTC date and time

MathTools

  • DegreesToRadians / RadiansToDegrees: Angular unit conversions
  • ConvertDegreesToHours / ConvertHoursToDegrees: Time-angle conversions
  • DegreesToArcseconds / ArcsecondsToDegrees: Angular precision conversions
  • RadiansToArcseconds / ArcsecondsToRadians: Angular unit conversions
  • MetersToMiles / MilesToMeters: Distance unit conversions
  • MetersToFeet / FeetToMeters: Distance unit conversions
  • MetersToKilometers / KilometersToMeters: Metric distance conversions
  • MetersToAstronomicalUnits / AstronomicalUnitsToMeters: Astronomical distance conversions
  • MetersToParsec / ParsecToMeters: Stellar distance conversions
  • MetersToLightYears / LightYearsToMeters: Cosmic distance conversions

Quick Start (self-hosting)

Docker Deployment

Development

bash
git clone https://github.com/IO-Aerospace-software-engineering/mcp-server
cd mcp-server
docker-compose up

The SSE server will be available at http://localhost:8080.

Production

  1. Copy docker-compose.prod.example.yml to docker-compose.prod.yml
  2. Update the domain names in the production file
  3. Ensure kernel data exists at ./data/solarsystem/
  4. Deploy using the automated script:
bash
./deploy-production.sh

Native .NET Deployment

1. Clone and Build

bash
git clone https://github.com/IO-Aerospace-software-engineering/mcp-server
cd mcp-server
dotnet build

2. Solar System Data Setup

The server requires SPICE kernels for solar system calculations.

  • STDIO server configuration (no appsettings):
    • Provide the kernels path via CLI or environment variable
    • Priority: CLI flag > IO_DATA_DIR environment variable
    • CLI flags: -k <path>, --kernels <path>, or --kernels-path <path>

Examples:

bash
# Using CLI flag
./Server.Stdio -k /path/to/your/spice/kernels

# Using environment variable (Linux/macOS)
export IO_DATA_DIR="/path/to/your/spice/kernels"
./Server.Stdio

# Windows (PowerShell)
$env:IO_DATA_DIR="C:\path\to\your\spice\kernels"
./Server.Stdio.exe
  • SSE server configuration: may use appsettings.json as before.

Required Kernel Files:

kernels/
├── de440s.bsp              # Planetary ephemeris
├── latest_leapseconds.tls  # Leap seconds
├── pck00011.tpc           # Planetary constants
├── earth_latest_high_prec.bpc  # Earth orientation
└── ...                    # Additional kernel files

3. Choose Transport Method

STDIO Transport (For MCP Clients)
  • Release assets are native executables per OS/RID (no ZIP). Filenames:
    • mcp-server-stdio--linux-x64
    • mcp-server-stdio--win-x64.exe
    • mcp-server-stdio--osx-arm64
  • On macOS, a sidecar native library may be provided (e.g., libIO.Astrodynamics.so). Place it in the same directory as the executable.
bash
# After publishing or downloading a release asset for your OS
./Server.Stdio -k /path/to/kernels
SSE Transport (For Web/HTTP)
bash
cd Server.Sse
dotnet run
# Server available at http://localhost:8080

Docker Configuration

Development Environment

  • File: docker-compose.yml
  • Ports: 8080 (HTTP), 8081 (HTTPS)
  • Data: Mounted from ./Data/SolarSystem
  • Usage: docker-compose up

Production Environment

  • File: docker-compose.prod.yml (create from example)
  • Features: Traefik reverse proxy, optimized images
  • Data: Host-mounted from ./data/solarsystem
  • Deployment: Automated via deploy-production.sh

MCP Client Integration

Note: Many MCP clients use JSON-based configuration files, but schemas differ per client. The JSON examples below use Claude Desktop’s schema; adapt keys to your client’s format.

Claude Desktop Configuration (STDIO)

Add to your Claude Desktop configuration:

json
{
  "mcpServers": {
    "astrodynamics": {
      "command": "/path/to/Server.Stdio",
      "args": ["-k", "/path/to/kernels"]
    }
  }
}

Alternatively, set an environment variable if your client supports it:

json
{
  "mcpServers": {
    "astrodynamics": {
      "command": "/path/to/Server.Stdio",
      "args": [],
      "env": {
        "IO_DATA_DIR": "/path/to/kernels"
      }
    }
  }
}

Claude Desktop Configuration (HTTP transport to hosted server)

Use your production server over HTTP/SSE by specifying the base URL only:

json
{
  "mcpServers": {
    "astrodynamics": {
      "transport": {
        "type": "http",
        "url": "https://mcp.io-aerospace.org"
      }
    }
  }
}
  • Only the base URL is required; the client will use the SSE stream internally (commonly at /sse).
  • This schema is for Claude Desktop; other clients may use different keys.

Other MCP clients

  • Provide the base URL: https://mcp.io-aerospace.org
  • Add headers (e.g., Authorization) only if your deployment requires it
  • Don’t append /sse unless your client documentation requires it; most discover the SSE path
  • Refer to your client’s documentation for the exact JSON schema or settings UI

Node.js MCP client (HTTP/SSE)

Using the MCP SDK to connect to the hosted server and list tools:

ts
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { HttpClientTransport } from "@modelcontextprotocol/sdk/client/transport/http.js";

const transport = new HttpClientTransport(new URL("https://mcp.io-aerospace.org"));
const client = new Client(
  { name: "example-client", version: "1.0.0" },
  { capabilities: { tools: {}, prompts: {}, resources: {} } },
  transport
);

await client.connect();
const tools = await client.listTools();
console.log("Tools:", tools);

// Example: call a tool
// const result = await client.callTool({ name: "GetEphemerisAsStateVectors", arguments: { /* ... */ } });
// console.log(result);

Sponsor

If this project helps your work, please consider sponsoring ongoing development, hosting, and data updates.

Your support helps keep the hosted server online and the SPICE data current.

Troubleshooting

Common Issues

  1. "Kernels directory does not exist": Verify the path passed with -k (or IO_DATA_DIR) exists and contains SPICE files
  2. "Failed to load kernel": Ensure all required kernel files are present and accessible
  3. Connection errors: Check firewall settings and port availability

Log Monitoring

bash
# Development
docker-compose logs -f

# Production
docker logs -f container-name

Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

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

Support

For support and questions:

  • Create an issue on GitHub
  • Check the troubleshooting section above
  • Review the deployment guide in DEPLOYMENT_GUIDE.md

Sylvain

New: A step-by-step How To guide is available:

Star History

Star History Chart

Repository Owner

Repository Details

Language C#
Default Branch main
Size 47,171 KB
Contributors 1
License GNU Affero General Public License v3.0
MCP Verified Sep 1, 2025

Programming Languages

C
52.25%
HCL
45.57%
Shell
1.73%
Dockerfile
0.46%

Join Our Newsletter

Stay updated with the latest AI tools, news, and offers by subscribing to our weekly newsletter.

We respect your privacy. Unsubscribe at any time.

Related MCPs

Discover similar Model Context Protocol servers

  • awslabs/mcp

    awslabs/mcp

    Specialized MCP servers for seamless AWS integration in AI and development environments.

    AWS MCP Servers is a suite of specialized servers implementing the open Model Context Protocol (MCP) to bridge large language model (LLM) applications with AWS services, tools, and data sources. It provides a standardized way for AI assistants, IDEs, and developer tools to access up-to-date AWS documentation, perform cloud operations, and automate workflows with context-aware intelligence. Featuring a broad catalog of domain-specific servers, quick installation for popular platforms, and both local and remote deployment options, it enhances cloud-native development, infrastructure management, and workflow automation for AI-driven tools. The project includes Docker, Lambda, and direct integration instructions for environments such as Amazon Q CLI, Cursor, Windsurf, Kiro, and VS Code.

    • 6,220
    • MCP
    • awslabs/mcp
  • k8s-mcp-server

    k8s-mcp-server

    Securely enable Claude to run Kubernetes CLI tools via Anthropic's Model Context Protocol.

    K8s MCP Server provides a Docker-based implementation of Anthropic's Model Context Protocol (MCP), allowing Claude to securely execute Kubernetes CLI tools such as kubectl, helm, istioctl, and argocd within a containerized environment. It integrates with Claude Desktop so users can interact with their Kubernetes clusters using natural language. The server emphasizes security by operating as a non-root user and offering strict command validation, while also supporting major cloud providers like AWS, Google Cloud, and Azure. Easy configuration and support for various Unix tools further enhance its capabilities.

    • 166
    • MCP
    • alexei-led/k8s-mcp-server
  • mcp

    mcp

    Universal remote MCP server connecting AI clients to productivity tools.

    WayStation MCP acts as a remote Model Context Protocol (MCP) server, enabling seamless integration between AI clients like Claude or Cursor and a wide range of productivity applications, such as Notion, Monday, Airtable, Jira, and more. It supports multiple secure connection transports and offers both general and user-specific preauthenticated endpoints. The platform emphasizes ease of integration, OAuth2-based authentication, and broad app compatibility. Users can manage their integrations through a user dashboard, simplifying complex workflow automations for AI-powered productivity.

    • 27
    • MCP
    • waystation-ai/mcp
  • OpenMCP

    OpenMCP

    A standard and registry for converting web APIs into MCP servers.

    OpenMCP defines a standard for converting various web APIs into servers compatible with the Model Context Protocol (MCP), enabling efficient, token-aware communication with client LLMs. It also provides an open-source registry of compliant servers, allowing clients to access a wide array of external services. The platform supports integration with local and remote hosting environments and offers tools for configuring supported clients, such as Claude desktop and Cursor. Comprehensive guidance is offered for adapting different API formats including REST, gRPC, GraphQL, and more into MCP endpoints.

    • 252
    • MCP
    • wegotdocs/open-mcp
  • mcp-access-point

    mcp-access-point

    Bridge HTTP services with Model Context Protocol (MCP) clients seamlessly.

    MCP Access Point acts as a lightweight gateway that enables direct communication between MCP-compatible clients and traditional HTTP services without requiring server-side modifications. Built on the high-performance Pingora proxy library, it supports protocol conversion between HTTP, SSE, and MCP, supporting multi-tenancy and customizable routing. It empowers various MCP clients, such as Cursor Desktop, MCP Inspector, and VS Code, to interact with existing APIs efficiently. Configuration is flexible via YAML, and deployment is possible both locally and through Docker.

    • 118
    • MCP
    • sxhxliang/mcp-access-point
  • mcp-server-templates

    mcp-server-templates

    Deploy Model Context Protocol servers instantly with zero configuration.

    MCP Server Templates enables rapid, zero-configuration deployment of production-ready Model Context Protocol (MCP) servers using Docker containers and a comprehensive CLI tool. It provides a library of ready-made templates for common integrations—including filesystems, GitHub, GitLab, and Zendesk—and features intelligent caching, smart tool discovery, and flexible configuration options via JSON, YAML, environment variables, or CLI. Perfect for AI developers, data scientists, and DevOps teams, it streamlines the process of setting up and managing MCP servers and has evolved into the MCP Platform for enhanced capabilities.

    • 5
    • MCP
    • Data-Everything/mcp-server-templates
  • Didn't find tool you were looking for?

    Be as detailed as possible for better results