Skip to content

Commit 08f2df9

Browse files
KI7MTclaude
andcommitted
Add n1mm-mcp server documentation page
New Radio Logging nav section, full tool reference, N1MM setup guide. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 2eeecf4 commit 08f2df9

2 files changed

Lines changed: 134 additions & 0 deletions

File tree

docs/servers/n1mm-mcp.md

Lines changed: 132 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,132 @@
1+
# n1mm-mcp
2+
3+
**N1MM Logger+ integration — live contest state via UDP broadcast.**
4+
5+
```bash
6+
pip install n1mm-mcp
7+
```
8+
9+
[GitHub](https://github.com/qso-graph/n1mm-mcp) · [PyPI](https://pypi.org/project/n1mm-mcp/)
10+
11+
---
12+
13+
## Tools
14+
15+
All 8 tools are **public** — no credentials needed. N1MM Logger+ broadcasts contest state over UDP on your local network.
16+
17+
| Tool | Description |
18+
|------|-------------|
19+
| `n1mm_current_state` | Station snapshot — connection, contest, operator, radios |
20+
| `n1mm_lookup` | Pre-log callsign (Contest-Copilot trigger) + current band/mode |
21+
| `n1mm_contacts` | QSO log — recent contacts, edits, deletes |
22+
| `n1mm_bandmap` | Live spots, mult targets, band activity |
23+
| `n1mm_performance` | Score, rate, bands, run/S&P, hourly timeline |
24+
| `n1mm_multipliers` | Mult grid, needs, value analysis |
25+
| `n1mm_clock` | Contest timing, off-time, pacing |
26+
| `n1mm_diagnostics` | Server health, parse errors, memory |
27+
28+
---
29+
30+
## Tool Reference
31+
32+
### n1mm_current_state
33+
34+
Station snapshot including connection status, contest info, operator, and radio state. Returns radio frequency, mode, call, antenna, and three-state connection status (connected/stale/disconnected).
35+
36+
Optional parameter: `station_name` (for multi-station setups).
37+
38+
### n1mm_lookup
39+
40+
Returns the last callsign entered in N1MM's call field, plus the current band and mode from the active radio. Designed as the Contest-Copilot trigger — when the operator types a call, the AI gets context.
41+
42+
Optional parameter: `station_name`.
43+
44+
### n1mm_contacts
45+
46+
Recent QSO log with filtering. Returns contacts, edits, and deletes.
47+
48+
Optional parameters: `station_name`, `count` (default 20), `since` (ISO timestamp), `band`, `mode`, `call_pattern`.
49+
50+
### n1mm_bandmap
51+
52+
Live bandmap spots with filtering, mult targets, and band activity summary.
53+
54+
Optional parameters: `station_name`, `band`, `max_age_minutes` (default 30).
55+
56+
### n1mm_performance
57+
58+
Score, rolling rates (10/30/60 min), rate derivative, band/mode breakdown, hourly timeline, and run/S&P split.
59+
60+
Optional parameter: `station_name`.
61+
62+
### n1mm_multipliers
63+
64+
Multiplier status grid, spotted mult needs, and mult value analysis.
65+
66+
Optional parameter: `station_name`.
67+
68+
### n1mm_clock
69+
70+
Contest timing, off-time detection, and pacing information.
71+
72+
Optional parameter: `station_name`.
73+
74+
### n1mm_diagnostics
75+
76+
Server health snapshot — connection status, parse error counters by message type, station details, and uptime.
77+
78+
Optional parameter: `station_name`.
79+
80+
---
81+
82+
## N1MM Setup
83+
84+
1. In N1MM: **Config → Configure Ports → Broadcast Data**
85+
2. Enable all message types (RadioInfo, ContactInfo, Spot, Score, etc.)
86+
3. Set IP to `255.255.255.255` (broadcast) and port to `12060`
87+
4. n1mm-mcp listens on any machine on the same LAN
88+
89+
```
90+
N1MM Logger+ (Windows)
91+
│ UDP broadcast (port 12060, XML)
92+
93+
n1mm-mcp (Python, any OS on same LAN)
94+
├── UDP Listener Thread (background)
95+
├── State Engine (in-memory, partitioned by StationName)
96+
│ MCP protocol (stdio)
97+
98+
AI Assistant (Claude, qsp-mcp, etc.)
99+
```
100+
101+
---
102+
103+
## No Credential Setup Needed
104+
105+
n1mm-mcp is a passive UDP listener — N1MM doesn't know it exists. No API keys, no accounts, no authentication. Just install and start.
106+
107+
---
108+
109+
## CLI Options
110+
111+
| Option | Default | Description |
112+
|--------|---------|-------------|
113+
| `--port` | `12060` | UDP listen port |
114+
| `--transport` | `stdio` | MCP transport (`stdio` or `streamable-http`) |
115+
| `--heartbeat-timeout` | `60` | Seconds before connection goes stale |
116+
| `--stale-timeout` | `900` | Seconds before connection goes disconnected |
117+
| `--max-spots` | `2000` | Maximum spots in bandmap buffer |
118+
| `--spot-ttl` | `30` | Spot time-to-live in minutes |
119+
120+
---
121+
122+
## Mock Mode
123+
124+
```bash
125+
N1MM_MCP_MOCK=1 n1mm-mcp
126+
```
127+
128+
## MCP Inspector
129+
130+
```bash
131+
n1mm-mcp --transport streamable-http
132+
```

mkdocs.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,8 @@ nav:
7979
- IOTA: servers/iota.md
8080
- Solar Weather: servers/solar.md
8181
- WSPR: servers/wspr.md
82+
- Radio Logging:
83+
- N1MM Logger+: servers/n1mm-mcp.md
8284
- Infrastructure:
8385
- QSP (Tool Relay): servers/qsp-mcp.md
8486
- Architecture: architecture.md

0 commit comments

Comments
 (0)