A Model Context Protocol server providing access to International Space Station telemetry data
Project description
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
get_iss_environmental_data()- Current environmental conditions inside the ISSget_iss_orbital_data()- Current orbital parameters and positionget_iss_solar_array_position()- Solar array angles and power outputget_iss_waste_water_management()- Waste and water system statusget_iss_signal_status()- Communication signal status with groundget_all_iss_telemetry()- Comprehensive data from all systemssave_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
-
Clone the repository:
git clone <repository-url> cd iss_mcp
-
Create a virtual environment (recommended):
python -m venv venv # On Windows: venv\Scripts\activate # On macOS/Linux: source venv/bin/activate
-
Install dependencies:
pip install -r requirements.txt
-
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:
- Obtain access to NASA's ISS Live API or similar data sources
- Implement authentication and connection logic
- 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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file iss_mcp_server-1.0.0.tar.gz.
File metadata
- Download URL: iss_mcp_server-1.0.0.tar.gz
- Upload date:
- Size: 5.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a737b4229b22d5cb37c55c26cbc90e5e335d91b177bfea94bd73a7c4e0fb3d99
|
|
| MD5 |
6491c2cd1cbdc1916cdcd43bd46de850
|
|
| BLAKE2b-256 |
23ca10064e59bb08b9bfafef1589050bd331c0be2f8f711600e62de55a426445
|
Provenance
The following attestation bundles were made for iss_mcp_server-1.0.0.tar.gz:
Publisher:
workflow.yml on andrewhuhh/iss_mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
iss_mcp_server-1.0.0.tar.gz -
Subject digest:
a737b4229b22d5cb37c55c26cbc90e5e335d91b177bfea94bd73a7c4e0fb3d99 - Sigstore transparency entry: 219853905
- Sigstore integration time:
-
Permalink:
andrewhuhh/iss_mcp@1e60a1fe0add2dffe45817e23115dabab5d430e9 -
Branch / Tag:
refs/tags/Release - Owner: https://github.com/andrewhuhh
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
workflow.yml@1e60a1fe0add2dffe45817e23115dabab5d430e9 -
Trigger Event:
release
-
Statement type:
File details
Details for the file iss_mcp_server-1.0.0-py3-none-any.whl.
File metadata
- Download URL: iss_mcp_server-1.0.0-py3-none-any.whl
- Upload date:
- Size: 5.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9963d79aeba4a885523266d7748788c25412f0b61cce4af774b16f2d4b6e6250
|
|
| MD5 |
60e461b3448f7afaa2ef76c080552a5d
|
|
| BLAKE2b-256 |
02ed82a36dfb858d4cf6fc39475f5a9a90939753315248239fdb3f7257316229
|
Provenance
The following attestation bundles were made for iss_mcp_server-1.0.0-py3-none-any.whl:
Publisher:
workflow.yml on andrewhuhh/iss_mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
iss_mcp_server-1.0.0-py3-none-any.whl -
Subject digest:
9963d79aeba4a885523266d7748788c25412f0b61cce4af774b16f2d4b6e6250 - Sigstore transparency entry: 219853907
- Sigstore integration time:
-
Permalink:
andrewhuhh/iss_mcp@1e60a1fe0add2dffe45817e23115dabab5d430e9 -
Branch / Tag:
refs/tags/Release - Owner: https://github.com/andrewhuhh
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
workflow.yml@1e60a1fe0add2dffe45817e23115dabab5d430e9 -
Trigger Event:
release
-
Statement type: