Skip to main content

ISS Telemetry MCP Server

A Model Context Protocol (MCP) server that provides access to International Space Station (ISS) telemetry data. This server is built using the FastMCP SDK and offers real-time data on environmental conditions, orbital parameters, solar array positions, and waste/water management systems.

🚀 Features

  • Environmental Data: Cabin pressure, temperature, humidity, CO2 and oxygen levels
  • Orbital Parameters: Altitude, velocity, position, and orbital period
  • Solar Array Position: Gimbal angles and power output data
  • Waste & Water Management: Tank levels and system status
  • Communication Status: Signal acquisition and ground station contact
  • Data Persistence: Save telemetry data to files for analysis

📋 Available Tools

  1. get_iss_environmental_data() - Current environmental conditions inside the ISS
  2. get_iss_orbital_data() - Current orbital parameters and position
  3. get_iss_solar_array_position() - Solar array angles and power output
  4. get_iss_waste_water_management() - Waste and water system status
  5. get_iss_signal_status() - Communication signal status with ground
  6. get_all_iss_telemetry() - Comprehensive data from all systems
  7. save_telemetry_to_file(data_type, filename) - Save data to JSON files

🛠️ Installation

Prerequisites

  • Python 3.8 or higher
  • pip (Python package installer)

Option 1: Install via uvx (Recommended)

The easiest way to install and run the ISS MCP server is using uvx:

# Install uvx if you don't have it
pip install uvx

# Install and run the ISS MCP server
uvx iss-mcp-server

# Or install from GitHub (once published)
uvx --from git+https://github.com/yourusername/iss-mcp-server iss-mcp-server

# Run the client example
uvx --from git+https://github.com/yourusername/iss-mcp-server iss-mcp-client-example

Option 2: Install via pipx

# Install pipx if you don't have it
pip install pipx

# Install from GitHub
pipx install git+https://github.com/yourusername/iss-mcp-server

# Run the server
iss-mcp-server

# Run the client example
iss-mcp-client-example

Option 3: Local Development Setup

  1. Clone the repository:

    git clone <repository-url>
    cd iss_mcp
    
  2. Create a virtual environment (recommended):

    python -m venv venv
    
    # On Windows:
    venv\Scripts\activate
    
    # On macOS/Linux:
    source venv/bin/activate
    
  3. Install dependencies:

    pip install -r requirements.txt
    
  4. Install in development mode:

    pip install -e .
    

🚀 Usage

After uvx/pipx Installation

Once installed via uvx or pipx, you can use the console commands:

# Run the MCP server
iss-mcp-server

# Run in test mode to see sample data
iss-mcp-server --test

# Run the client example
iss-mcp-client-example

Local Development Usage

Running the MCP Server

Option 1: As an MCP Server (for use with MCP clients)

python iss_mcp_server.py

Option 2: Test Mode (to see sample data)

python iss_mcp_server.py --test

Using the Client Example

Run the example client to see all available data:

python client_example.py

Quick Test

Test a single tool with the simple test script:

python test_single_tool.py

Integration with Other MCP Clients

You can use this server with any MCP-compatible client. The server follows the standard MCP protocol and can be integrated into various AI applications.

Example with FastMCP Client:

from fastmcp import Client
import asyncio

async def get_iss_data():
    client = Client("iss_mcp_server.py")
    async with client:
        # Get environmental data
        env_data = await client.call_tool("get_iss_environmental_data")
        print(env_data)
        
        # Get orbital data
        orbital_data = await client.call_tool("get_iss_orbital_data")
        print(orbital_data)

asyncio.run(get_iss_data())

Using with Claude Desktop or other MCP clients:

Add this server to your MCP client configuration:

{
  "mcpServers": {
    "iss-telemetry": {
      "command": "python",
      "args": ["/path/to/iss_mcp/iss_mcp_server.py"]
    }
  }
}

📊 Data Structure

Environmental Data

{
  "cabin_pressure": {"timestamp": "...", "value": 760.2, "unit": "mmHg"},
  "cabin_temperature": {"timestamp": "...", "value": 22.1, "unit": "°C"},
  "humidity": {"timestamp": "...", "value": 45.3, "unit": "%"},
  "co2_level": {"timestamp": "...", "value": 2.8, "unit": "ppm"},
  "oxygen_level": {"timestamp": "...", "value": 20.9, "unit": "%"}
}

Orbital Data

{
  "altitude": {"timestamp": "...", "value": 408.2, "unit": "km"},
  "velocity": {"timestamp": "...", "value": 7.66, "unit": "km/s"},
  "latitude": {"timestamp": "...", "value": 23.4, "unit": "degrees"},
  "longitude": {"timestamp": "...", "value": -45.7, "unit": "degrees"},
  "orbital_period": {"timestamp": "...", "value": 92.8, "unit": "minutes"}
}

Solar Array Data

{
  "beta_gimbal_angle": {"timestamp": "...", "value": 45.2, "unit": "degrees"},
  "alpha_gimbal_angle": {"timestamp": "...", "value": 12.8, "unit": "degrees"},
  "power_output": {"timestamp": "...", "value": 84500, "unit": "watts"},
  "sun_tracking_status": "TRACKING"
}

🔧 Configuration

The server currently provides simulated data that represents realistic ISS telemetry values. To connect to actual ISS data feeds, you would need to:

  1. Obtain access to NASA's ISS Live API or similar data sources
  2. Implement authentication and connection logic
  3. Replace the simulated data functions with real data fetching

🌟 Inspiration

This MCP server was inspired by the JavaScript implementation that connects to the Lightstreamer ISS Live data feed. While this version currently provides simulated data, it demonstrates the structure and capabilities needed for real ISS telemetry integration.

📝 License

This project is open source and available under the MIT License.

🤝 Contributing

Contributions are welcome! Feel free to:

  • Add new telemetry data types
  • Implement real ISS data feed connections
  • Improve data validation and error handling
  • Add more comprehensive testing

🔗 Related Resources


Note: This server currently provides simulated ISS telemetry data for demonstration purposes. For production use with real ISS data, additional authentication and data source integration would be required.

Metadata

Release files for iss-mcp-server 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for iss-mcp-server 1.0.0
File Size Uploaded Provenance
iss_mcp_server-1.0.0.tar.gz 5.4 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for iss-mcp-server 1.0.0
File Interpreter ABI Platform
iss_mcp_server-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 10.6 kB

Release files / iss_mcp_server-1.0.0.tar.gz

Download URL iss_mcp_server-1.0.0.tar.gz
Size 5.4 kB
Tags Source
SHA-256 checksum
How to use checksums
a737b4229b22d5cb37c55c26cbc90e5e335d91b177bfea94bd73a7c4e0fb3d99
BLAKE2b-256 checksum
How to use checksums
23ca10064e59bb08b9bfafef1589050bd331c0be2f8f711600e62de55a426445
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 25, 2025.

Transparency log

Release files / iss_mcp_server-1.0.0-py3-none-any.whl

Download URL iss_mcp_server-1.0.0-py3-none-any.whl
Size 5.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9963d79aeba4a885523266d7748788c25412f0b61cce4af774b16f2d4b6e6250
BLAKE2b-256 checksum
How to use checksums
02ed82a36dfb858d4cf6fc39475f5a9a90939753315248239fdb3f7257316229
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 25, 2025.

Transparency log

Security for iss-mcp-server 1.0.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for iss_mcp_server-1.0.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 25, 2025.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page