MCP server for the SatNOGS open satellite observation network
Project description
satnogs-mcp
An MCP server that gives Claude (and other MCP clients) full access to the SatNOGS open satellite observation network — the world's largest open-source ground-station network for amateur satellites.
MCP Tools
SatNOGS DB (satellite catalogue)
| Tool | Description |
|---|---|
search_satellites |
Search the satellite catalogue by name, NORAD ID, status, country, or operator |
get_satellite |
Full details for one satellite |
get_transmitters |
Transmitters filtered by satellite, status, type, or mode |
get_transmitter |
Detail for one transmitter by UUID |
get_tle |
Current TLE sets, filtered by NORAD ID or satellite ID |
get_telemetry |
Decoded telemetry frames, filtered by satellite and date range |
get_modes |
All communication modes in the DB |
get_artifacts |
Reference artifacts, optionally filtered by observation ID |
SatNOGS Network (ground stations & observations)
| Tool | Description |
|---|---|
list_stations |
All ground stations with location, antenna, and status |
get_station |
Full detail for one station |
find_nearby_stations |
Find stations within a radius (km) of a lat/lon point |
list_observations |
Observations filtered by satellite, station, date range, and vetting status |
get_observation |
Full observation detail including waterfall, audio, and demodulated data URLs |
list_jobs |
Scheduled observation jobs |
Installation
pip install satnogs-mcp
Or run without installing via uvx:
uvx satnogs-mcp
Claude Desktop Configuration
Add the following to your claude_desktop_config.json:
{
"mcpServers": {
"satnogs": {
"command": "uvx",
"args": ["satnogs-mcp"],
"env": {
"SATNOGS_DB_API_KEY": "optional-key-here",
"REDIS_URL": "redis://localhost:6379"
}
}
}
}
Config file location:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
Environment Variables
| Variable | Required | Description |
|---|---|---|
SATNOGS_DB_API_KEY |
No | API key for SatNOGS DB (read access works without it; key may enable higher rate limits and write access) |
REDIS_URL |
No | Redis connection URL for caching (e.g. redis://localhost:6379). Falls back to in-memory cache if unset. |
Copy .env.example to .env and fill in any values you need:
cp .env.example .env
Example Prompts
Try these prompts in Claude once the server is running:
- "Search for active cubesats launched by universities."
- "What are the current TLEs for ISS (NORAD 25544)?"
- "Show me all FM transmitters for the FUNcube-1 satellite."
- "Find SatNOGS ground stations within 200 km of London."
- "List recent good observations of NORAD 39444."
- "What ground stations are online in Europe?"
- "Show me the waterfall image from observation 12345."
- "What telemetry has been collected for FUNCUBE-1 this week?"
Development
git clone https://github.com/atlas/satnogs-mcp
cd satnogs-mcp
pip install -e ".[dev]"
pytest tests/ -v
Architecture
cache.py— Dual-tier cache: Redis primary (whenREDIS_URLis set), in-memory TTL dict fallbackclient.py— HTTP clients for DB and Network APIs with sliding-window rate limiter (20 req/min, 200 req/hour) and exponential back-off on HTTP 429server.py— FastMCP server with@mcp.tool()decorated tools; module-level singleton clients share sessions and rate-limiter state
License
MIT
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 satnogs_mcp-0.1.0.tar.gz.
File metadata
- Download URL: satnogs_mcp-0.1.0.tar.gz
- Upload date:
- Size: 13.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.10 {"installer":{"name":"uv","version":"0.9.10"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1538eaf1c7bc32df46ed7b95b63a374bb5189c7a36e37b4cf622164f7f10484c
|
|
| MD5 |
b27245d8d7a33f2a9d382f1fcbc2ac85
|
|
| BLAKE2b-256 |
8496fef9f7f74c00b27f0f7cbd4007f8fa5cc41aa5188190d7e9c672e43943d6
|
File details
Details for the file satnogs_mcp-0.1.0-py3-none-any.whl.
File metadata
- Download URL: satnogs_mcp-0.1.0-py3-none-any.whl
- Upload date:
- Size: 10.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.10 {"installer":{"name":"uv","version":"0.9.10"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
14c112b52683c3e4a8844a75963e993a5824469bd4f97034b680f227c439576a
|
|
| MD5 |
62831f70d9a48e3388494e25f2a4948d
|
|
| BLAKE2b-256 |
55afc4aacbcc4028914d2b61f0ee7448bbb3ab2a9bb2de18f17dda4c46f9485d
|