APRS.fi MCP Server
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.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@APRS.fi MCP Servershow me the current position of W1AW"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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):
npm run build
claude mcp add aprs-fi node dist/index.jsAlternative (Install Script):
./install.shFor detailed setup instructions, see SETUP.md.
Manual Installation
Install dependencies:
npm installBuild the server:
npm run buildUsage
Starting the Server
npm startDevelopment Mode
npm run devFrom Main Project
# Build MCP server
npm run mcp:build
# Start MCP server
npm run mcp:start
# Development mode
npm run mcp:devMCP 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
interface APRSPosition {
name: string; // Callsign
callsign: string; // Callsign
lat: number; // Latitude in decimal degrees
lng: number; // Longitude in decimal degrees
altitude?: number; // Altitude in meters (optional)
timestamp: number; // Unix timestamp in milliseconds
comment?: string; // APRS comment (optional)
speed?: number; // Speed in km/h (optional)
course?: number; // Course in degrees (optional)
symbol?: string; // APRS symbol (optional)
path?: string; // APRS path (optional)
}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):
# Build the server first
npm run build
# Add to Claude Code
claude mcp add aprs-fi node dist/index.jsAlternative Setup (Install Script):
./install.shManual Configuration:
Add this to your ~/.claude/mcp_settings.json:
{
"mcpServers": {
"aprs-fi": {
"command": "node",
"args": ["/path/to/aprs_mcp/dist/index.js"],
"env": {}
}
}
}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
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/dhhuston/APRSFI-MCP-SERVER'
If you have feedback or need assistance with the MCP directory API, please join our Discord server