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"
    }
  }
}

Or with uvx (no install needed):

{
  "mcpServers": {
    "n1mm": {
      "command": "uvx",
      "args": ["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.4.tar.gz (32.7 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.4-py3-none-any.whl (33.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: n1mm_mcp-0.1.4.tar.gz
  • Upload date:
  • Size: 32.7 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.4.tar.gz
Algorithm Hash digest
SHA256 0ebb256049651c7e397a5d531bf3bde4b4884a3b48ed9627eca520d511d5128a
MD5 74b41ded487411dbf7d33900d1e5ca0f
BLAKE2b-256 e74a9a34e1ffdbd69ea4e12d8f7a16c1e529d9b6aa2f63a6052d34ded9de28a1

See more details on using hashes here.

Provenance

The following attestation bundles were made for n1mm_mcp-0.1.4.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.4-py3-none-any.whl.

File metadata

  • Download URL: n1mm_mcp-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 33.2 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.4-py3-none-any.whl
Algorithm Hash digest
SHA256 03fc9599814915f11772479ce8efc41b77030c8b063dede616dad7e262613be4
MD5 7382923dc6cb12f8069de9d5c6134c4d
BLAKE2b-256 dbe1aecc9d0cefa4a07071e4cd7e551a7709ebc97808e8a715ba15ae2be69f32

See more details on using hashes here.

Provenance

The following attestation bundles were made for n1mm_mcp-0.1.4-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