Runs as a Node.js application that implements the Model Context Protocol to connect Claude with APRS.fi data for real-time amateur radio tracking.
Built using TypeScript to provide type-safe access to APRS.fi data and well-defined interfaces for position tracking.
APRS.fi MCP Server
A Model Context Protocol (MCP) server that provides access to APRS.fi API for ham radio position tracking and balloon chase operations. Designed specifically for integration with Claude Code to enable AI-powered APRS data analysis and ham radio operations.
Features
get_aprs_position: Get current position data for a specific callsign
get_aprs_history: Get position history for a callsign with time range
track_multiple_callsigns: Track multiple callsigns at once
validate_aprs_key: Test if an APRS.fi API key is valid
Claude Code Integration: Natural language interface for APRS data analysis
Related MCP server: NASA MCP Server
Quick Installation for Claude Code
Easiest Setup (Claude MCP):
Alternative (Install Script):
For detailed setup instructions, see SETUP.md.
Manual Installation
Install dependencies:
Build the server:
Usage
Starting the Server
Development Mode
From Main Project
MCP Tools
get_aprs_position
Get current position data for a specific callsign from APRS.fi.
Parameters:
callsign(string, required): The callsign to look up (e.g., "W1AW")apiKey(string, optional): APRS.fi API key (can be set via/set-api-keycommand)
Returns: Array of APRSPosition objects
get_aprs_history
Get position history for a callsign with time range.
Parameters:
callsign(string, required): The callsign to look upapiKey(string, optional): APRS.fi API key (can be set via/set-api-keycommand)lastHours(number, optional): Number of hours to look back (default: 24)
Returns: Array of APRSPosition objects sorted by timestamp
track_multiple_callsigns
Track multiple callsigns at once.
Parameters:
callsigns(array, required): Array of callsigns to trackapiKey(string, optional): APRS.fi API key (can be set via/set-api-keycommand)
Returns: Array of APRSPosition objects
validate_aprs_key
Test if an APRS.fi API key is valid.
Parameters:
apiKey(string, optional): APRS.fi API key (can be set via/set-api-keycommand) to validate
Returns: Object with valid boolean property
Data Types
APRSPosition
API Key Setup
Get an API key from APRS.fi
Set it once per session using the
/set-api-keycommand in Claude CodeAlternatively, pass the API key as a parameter to each tool call
Rate Limiting
The server respects APRS.fi rate limits with a 1-second delay between requests.
Error Handling
The server provides detailed error messages for:
Invalid API keys
Network connectivity issues
API rate limiting
Invalid callsigns
API response errors
Claude Code Integration
This MCP server enables Claude Code to access real-time APRS data, making it perfect for:
Ham Radio Operations: Track stations, analyze propagation, coordinate activities
Emergency Communications: Monitor emergency nets and station positions
Balloon Chasing: Track high-altitude balloons and coordinate recovery teams
Contest Support: Monitor contest stations and optimize operations
Educational Projects: Learn about RF propagation and amateur radio
Setup for Claude Code
Easiest Setup (Claude MCP):
Alternative Setup (Install Script):
Manual Configuration:
Add this to your ~/.claude/mcp_settings.json:
Using with Claude Code
Once installed, Claude Code can help you with APRS data in natural language:
"Show me the current position of W1AW"
"Track these contest stations: N1MM, W5ZZZ, K3LR"
"Get the position history for the balloon callsign KC1SFR-11"
"Find all stations that have been active in the last 2 hours"
"Plot the path of station VE3XYZ over the last 6 hours"
Claude Code will use the MCP tools to fetch real-time data and provide analysis, mapping suggestions, and operational insights.
Slash Commands
/set-api-key <your-key>- Set APRS.fi API key for the session
Development
The server is built using:
TypeScript
Node.js fetch API
License
MIT