Skip to main content
ClaudeWave
MCP ServersOfficial Registry0 stars0 forks● PythonGPL-3.0Updated today
ClaudeWave Trust Score
77/100
✓ Trusted
Passed
  • ✓Open-source license (GPL-3.0)
  • ✓Actively maintained (<30d)
  • ✓Documented (README)
Flags
  • !No description
Last scanned: 9/29/2026
Install in Claude Code / Claude Desktop
Method: UVX (Python) · n1mm-mcp
Claude Code CLI
claude mcp add n1mm-mcp -- uvx n1mm-mcp
claude_desktop_config.json (Claude Desktop)
{
  "mcpServers": {
    "n1mm-mcp": {
      "command": "uvx",
      "args": ["n1mm-mcp"]
    }
  }
}
1. Run the command above in your terminal (Claude Code), or paste the JSON config into claude_desktop_config.json (Claude Desktop).
2. Replace any <placeholder> values with your API keys or paths.
3. Restart Claude. The MCP server and its tools appear automatically.
Use cases

MCP Servers overview

<!-- mcp-name: io.github.qso-graph/n1mm-mcp -->
# n1mm-mcp

[![PyPI](https://img.shields.io/pypi/v/n1mm-mcp?label=PyPI&color=blue)](https://pypi.org/project/n1mm-mcp/)
[![MCP Registry](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fregistry.modelcontextprotocol.io%2Fv0%2Fservers%3Fsearch%3Dio.github.qso-graph%2Fn1mm-mcp%26version%3Dlatest&query=%24.servers%5B0%5D.server.version&label=MCP%20Registry&color=blue)](https://registry.modelcontextprotocol.io/v0/servers?search=io.github.qso-graph/n1mm-mcp&version=latest)

MCP server for [N1MM Logger+](https://n1mm.hamdocs.com/): live contest state — station, QSOs, bandmap, score and rate, multipliers, and contest clock — through any MCP-compatible AI assistant.

Data from N1MM Logger+'s UDP broadcasts on your local network. Part of the [qso-graph](https://qso-graph.io/) project. **No authentication required.**

## Install

```bash
uvx n1mm-mcp            # run it; nothing to install
pip install n1mm-mcp    # or install it into your own environment
```

## Tools

| Tool | Description | Key Parameters |
|------|-------------|----------------|
| `n1mm_current_state` | Station snapshot: connection, contest, operator, radios | station_name |
| `n1mm_lookup` | The callsign being entered (pre-log) plus current band and mode | station_name |
| `n1mm_contacts` | QSO log: recent contacts, edits and deletes | count, since, band, mode, call_pattern |
| `n1mm_bandmap` | Live spots, multiplier targets, band activity | band, mode, callsign, mults_only |
| `n1mm_performance` | Score, rate, bands, run/S&P, hourly timeline | band, mode |
| `n1mm_multipliers` | Multiplier grid, needs, value analysis | band |
| `n1mm_clock` | Contest timing, off-time, pacing | duration_hours, target_score, target_qsos, min_gap_minutes |
| `n1mm_diagnostics` | Server health, parse errors, memory | station_name |
| `get_version_info` | Service version + upstream spec version (fleet identity attestation) | — |

Every tool takes an optional `station_name` for multi-station setups (SO2R, multi-op).

## What is N1MM Logger+?

N1MM Logger+ is a Windows contest logger. It can broadcast its state over UDP: contacts, spots, radio info and score. n1mm-mcp listens to those broadcasts and keeps the contest state in memory, so an assistant can answer questions about it. N1MM doesn't know it's there.

```
N1MM Logger+ (Windows)
    │ UDP broadcast (port 12060, XML)
    ▼
n1mm-mcp (Python, any OS on the same LAN)
    ├── UDP listener (background)
    ├── State engine (in memory, per StationName)
    │   MCP protocol (stdio)
    ▼
AI assistant
```

## Quick Start

### Turn on N1MM's broadcasts

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

### Configure your MCP client

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

#### Claude Desktop

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

```json
{
  "mcpServers": {
    "n1mm": {
      "command": "uvx",
      "args": ["n1mm-mcp"]
    }
  }
}
```

#### Claude Code

Add to `.claude/settings.json`:

```json
{
  "mcpServers": {
    "n1mm": {
      "command": "uvx",
      "args": ["n1mm-mcp"]
    }
  }
}
```

#### ChatGPT Desktop

```json
{
  "mcpServers": {
    "n1mm": {
      "command": "uvx",
      "args": ["n1mm-mcp"]
    }
  }
}
```

#### Cursor

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

```json
{
  "mcpServers": {
    "n1mm": {
      "command": "uvx",
      "args": ["n1mm-mcp"]
    }
  }
}
```

#### VS Code / GitHub Copilot

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

```json
{
  "servers": {
    "n1mm": {
      "command": "uvx",
      "args": ["n1mm-mcp"]
    }
  }
}
```

#### Gemini CLI

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

```json
{
  "mcpServers": {
    "n1mm": {
      "command": "uvx",
      "args": ["n1mm-mcp"]
    }
  }
}
```

Installed with pip instead? Use `"command": "n1mm-mcp"` in any config above.

### Ask questions

> "What's my rate over the last hour?"

> "Which multipliers do I still need on 20m?"

> "Is the station on the bandmap a new multiplier?"

> "How much off-time have I used, and am I on pace for my target?"

> "Show me the last 10 QSOs."

## CLI Options

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

## Testing Without N1MM

```bash
N1MM_MCP_MOCK=1 n1mm-mcp
```

## MCP Inspector

```bash
n1mm-mcp --transport streamable-http
```

Then open the MCP Inspector at `http://localhost:8008`.

## Development

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

## License

GPL-3.0-or-later

What people ask about n1mm-mcp

What is qso-graph/n1mm-mcp?

+

qso-graph/n1mm-mcp is mcp servers for the Claude AI ecosystem with 0 GitHub stars.

How do I install n1mm-mcp?

+

You can install n1mm-mcp by cloning the repository (https://github.com/qso-graph/n1mm-mcp) or following the README instructions on GitHub. ClaudeWave also provides quick install blocks on this page.

Is qso-graph/n1mm-mcp safe to use?

+

Our security agent has analyzed qso-graph/n1mm-mcp and assigned a Trust Score of 77/100 (tier: Trusted). See the full breakdown of passed checks and flags on this page.

Who maintains qso-graph/n1mm-mcp?

+

qso-graph/n1mm-mcp is maintained by qso-graph. The last recorded GitHub activity is dated 2026-09-28, with 0 open issues.

Are there alternatives to n1mm-mcp?

+

Yes. On ClaudeWave you can browse similar mcp servers at /categories/mcp, sorted by popularity or recent activity.

Deploy n1mm-mcp to your cloud

Ship this repo to production in minutes. Each platform spins up its own environment with editable env vars.

Maintain this repo? Add a badge to your README

Drop the badge into your GitHub README to show it's tracked on ClaudeWave. Each badge links back to this page and reflects the live Trust Score.

Featured on ClaudeWave: qso-graph/n1mm-mcp
[![Featured on ClaudeWave](https://claudewave.com/api/badge/qso-graph-n1mm-mcp)](https://claudewave.com/repo/qso-graph-n1mm-mcp)
<a href="https://claudewave.com/repo/qso-graph-n1mm-mcp"><img src="https://claudewave.com/api/badge/qso-graph-n1mm-mcp" alt="Featured on ClaudeWave: qso-graph/n1mm-mcp" width="320" height="64" /></a>

More MCP Servers

n1mm-mcp alternatives