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
Metadata
Release files for satnogs-mcp 0.1.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 | |
|---|---|---|---|---|
| satnogs_mcp-0.1.0.tar.gz | 13.7 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| satnogs_mcp-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 24.3 kB
Release files / satnogs_mcp-0.1.0.tar.gz
| Download URL | satnogs_mcp-0.1.0.tar.gz |
|---|---|
| Size | 13.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1538eaf1c7bc32df46ed7b95b63a374bb5189c7a36e37b4cf622164f7f10484c
|
|
BLAKE2b-256 checksum How to use checksums |
8496fef9f7f74c00b27f0f7cbd4007f8fa5cc41aa5188190d7e9c672e43943d6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is 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}
|
Release files / satnogs_mcp-0.1.0-py3-none-any.whl
| Download URL | satnogs_mcp-0.1.0-py3-none-any.whl |
|---|---|
| Size | 10.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
14c112b52683c3e4a8844a75963e993a5824469bd4f97034b680f227c439576a
|
|
BLAKE2b-256 checksum How to use checksums |
55afc4aacbcc4028914d2b61f0ee7448bbb3ab2a9bb2de18f17dda4c46f9485d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is 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}
|
Security for satnogs-mcp 0.1.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.
No provenance found
None of the files in this release were uploaded with provenance metadata.
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.