Skip to main content

MCP server for N1MM Logger+ — live contest state via UDP broadcast

Project description

n1mm-mcp

MCP server for N1MM Logger+ — live contest state via UDP broadcast.

Part of the qso-graph amateur radio MCP ecosystem.

Install

pip install n1mm-mcp

Tools (Phase 1 — 8 Composite State Views)

Tool Description
n1mm_current_state Station snapshot — connection, contest, operator, radios
n1mm_lookup Pre-log callsign (Contest-Copilot trigger) + current band/mode
n1mm_contacts QSO log — recent contacts, edits, deletes
n1mm_bandmap Live spots, mult targets, band activity
n1mm_performance Score, rate, bands, run/S&P, hourly timeline
n1mm_multipliers Mult grid, needs, value analysis
n1mm_clock Contest timing, off-time, pacing
n1mm_diagnostics Server health, parse errors, memory

Quick Start

  1. In N1MM: Config → Configure Ports → Broadcast Data — enable all message types
  2. N1MM broadcasts to 255.255.255.255:12060 by default

Claude Desktop

{
  "mcpServers": {
    "n1mm": {
      "command": "n1mm-mcp"
    }
  }
}

Claude Code

claude mcp add n1mm-mcp -- n1mm-mcp

Architecture

N1MM Logger+ (Windows)
    │ UDP broadcast (port 12060, XML)
    ▼
n1mm-mcp (Python, any OS on same LAN)
    ├── UDP Listener Thread (background)
    ├── State Engine (in-memory, partitioned by StationName)
    │   MCP protocol (stdio)
    ▼
AI Assistant (Claude, qsp-mcp, etc.)
  • Passive listener — N1MM doesn't know we exist
  • Stream-to-state — UDP packets → in-memory state → tool queries
  • Multi-station — state partitioned by StationName (SO2R, multi-op)
  • Zero auth — no credentials needed

CLI Options

Option Default Description
--port 12060 UDP listen port
--transport stdio MCP transport (stdio or streamable-http)
--heartbeat-timeout 60 Seconds before connection goes stale
--stale-timeout 900 Seconds before connection goes disconnected
--max-spots 2000 Maximum spots in bandmap buffer
--spot-ttl 30 Spot time-to-live in minutes

Testing

# Mock mode (no N1MM needed)
N1MM_MCP_MOCK=1 n1mm-mcp

# MCP Inspector
n1mm-mcp --transport streamable-http

Development

git clone https://github.com/qso-graph/n1mm-mcp.git
cd n1mm-mcp
pip install -e .
N1MM_MCP_MOCK=1 n1mm-mcp

License

GPL-3.0-or-later

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

n1mm_mcp-0.1.0.tar.gz (30.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

n1mm_mcp-0.1.0-py3-none-any.whl (32.0 kB view details)

Uploaded Python 3

File details

Details for the file n1mm_mcp-0.1.0.tar.gz.

File metadata

  • Download URL: n1mm_mcp-0.1.0.tar.gz
  • Upload date:
  • Size: 30.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for n1mm_mcp-0.1.0.tar.gz
Algorithm Hash digest
SHA256 8ef3773698fcfeb86633367174694702e2cbab62f1147a2df91187d47e69a3d5
MD5 b48da82f0fb7c2bb1830f88c38b58739
BLAKE2b-256 db3d16f35568410d6f51dd294d4298bb9cf84a91795ea6f6bd934e0f6baa89d9

See more details on using hashes here.

Provenance

The following attestation bundles were made for n1mm_mcp-0.1.0.tar.gz:

Publisher: publish.yml on qso-graph/n1mm-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file n1mm_mcp-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: n1mm_mcp-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 32.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for n1mm_mcp-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4756bfcf5053ef88f5b5fd01830dac20dc409ddab037bf9806f0d857e194f780
MD5 30c125400cf18a61c95bce608c4b6652
BLAKE2b-256 95713689f45bfd662f974e78741e2be031741fb1adbd24d2f1c8a7daf1202b13

See more details on using hashes here.

Provenance

The following attestation bundles were made for n1mm_mcp-0.1.0-py3-none-any.whl:

Publisher: publish.yml on qso-graph/n1mm-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page