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.
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)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| iss_mcp_server-1.0.0.tar.gz | 5.4 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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 logRelease 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 logSecurity 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.
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 logA 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.