Pota MCP README

The full upstream README, mirrored for reference. Install config, tool schemas, adoption signals and our own overview live on the Pota MCP listing page.

pota-mcp

PyPI MCP Registry

MCP server for Parks on the Air (POTA) — live activator spots, park info, activator/hunter stats, and scheduled activations through any MCP-compatible AI assistant.

Part of the qso-graph project. No authentication required — all POTA endpoints are public.

Install

bash
uvx pota-mcp            # run it; nothing to install

Tools

ToolDescription
pota_spotsCurrent activator spots with park/grid enrichment and optional filters
pota_park_infoPark details by reference code (name, grid, type, agencies, website)
pota_park_statsActivation and QSO counts for a park
pota_park_activationsA park's recent activations — who, when, and QSOs by mode
pota_park_leaderboardA park's top activators, activator QSOs and hunter QSOs
pota_user_statsActivator/hunter stats by callsign (callsign, name, activator, attempts, hunter, awards, endorsements; no address or email-derived fields)
pota_scheduledUpcoming scheduled activations, with optional location, park, activator and time-window filters
pota_location_parksAll parks in a state/province/country
pota_nearby_parksFind parks near a point — great for 2-fer planning
pota_rare_parks_nearParks near a point that are rarely or never activated
get_version_infoService version + upstream spec version (fleet identity attestation)

Quick Start

No credentials needed — just install and configure your MCP client.

Configure your MCP client

pota-mcp works with any MCP-compatible client. Add the server config and restart — tools appear automatically.

Claude Desktop

Add to claude_desktop_config.json (~/Library/Application Support/Claude/ on macOS, %APPDATA%\Claude\ on Windows):

config.json
{
  "mcpServers": {
    "pota": {
      "command": "uvx",
      "args": ["pota-mcp"]
    }
  }
}

Claude Code

Add to .claude/settings.json:

config.json
{
  "mcpServers": {
    "pota": {
      "command": "uvx",
      "args": ["pota-mcp"]
    }
  }
}

ChatGPT Desktop

config.json
{
  "mcpServers": {
    "pota": {
      "command": "uvx",
      "args": ["pota-mcp"]
    }
  }
}

Cursor

Add to .cursor/mcp.json (project-level) or ~/.cursor/mcp.json (global):

config.json
{
  "mcpServers": {
    "pota": {
      "command": "uvx",
      "args": ["pota-mcp"]
    }
  }
}

VS Code / GitHub Copilot

Add to .vscode/mcp.json in your workspace:

config.json
{
  "servers": {
    "pota": {
      "command": "uvx",
      "args": ["pota-mcp"]
    }
  }
}

Gemini CLI

Add to ~/.gemini/settings.json (global) or .gemini/settings.json (project):

config.json
{
  "mcpServers": {
    "pota": {
      "command": "uvx",
      "args": ["pota-mcp"]
    }
  }
}

Ask questions

"What POTA activations are happening right now?"

"Tell me about park US-0001 — how many activations has it had?"

"What are K4SWL's POTA stats?"

"Show me all parks in Idaho"

"Are there any CW activators on 20m right now?"

"What activations are scheduled for tomorrow?"

Testing Without Network

For testing all tools without hitting the POTA API:

bash
POTA_MCP_MOCK=1 pota-mcp

MCP Inspector

bash
pota-mcp --transport streamable-http --port 8006

Then open the MCP Inspector at http://localhost:8006.

Development

bash
git clone https://github.com/qso-graph/pota-mcp.git
cd pota-mcp
uv sync --group dev
uv run pytest

License

GPL-3.0-or-later