AE5VG

From zero to the first QSO

Getting Started

This page is for a ham who has never used an AI assistant. The full operating standard is the Operating Field Guide (PDF). You can also read it online.

What you are installing

Claude is an AI assistant. You use it in the Claude Desktop app, which looks like a messaging window. The two MCP servers work like rig interface cables. One connects Claude to fldigi, and the other connects it to N3FJP. You type to Claude in plain English. Your fldigi and N3FJP setup does not change.

Set up once

  1. Install Claude Desktop from claude.ai/download and sign in. A paid plan is recommended. On the free plan you can run out of messages in the middle of a QSO.
  2. Start fldigi. Its XML-RPC interface is on by default at 127.0.0.1:7362.
  3. For logging, start N3FJP and enable Settings → Application Program Interface → TCP API Enabled (port 1100).

Load the MCP servers

  1. Download fldigi-mcp.mcpb and n3fjp-mcp.mcpb from Downloads.
  2. In Claude Desktop, open Settings → Extensions → Advanced settings → Install Extension and choose the file you downloaded.
  3. Enter your callsign in the fldigi-mcp settings. fldigi-mcp will not transmit without it. If you leave it blank, the station can only receive.
  4. Do the same for n3fjp-mcp. Its host and port default to 127.0.0.1:1100.

You do not need to open a terminal or install Python. Claude Desktop's runtime takes care of that.

Other AI assistants

Not needed for Claude Desktop

If you use the Claude Desktop app, skip this part. The two extensions above are all it needs. Cowork and Claude Code sessions in the app use the same connectors.

Other assistants that support MCP, such as Claude Code in a terminal or a third-party MCP client, cannot install a .mcpb file. They start each connector themselves from PyPI with uvx, which comes with uv. In Claude Code in a terminal, you run one command for each connector. Put your own callsign in place of YOURCALL.

claude mcp add fldigi -e FLDIGI_CALLSIGN=YOURCALL -- uvx fldigi-mcp
claude mcp add n3fjp -- uvx n3fjp-mcp

Other clients take the same information as a configuration block:

{
  "mcpServers": {
    "fldigi": {
      "command": "uvx",
      "args": ["fldigi-mcp"],
      "env": { "FLDIGI_CALLSIGN": "YOURCALL" }
    },
    "n3fjp": {
      "command": "uvx",
      "args": ["n3fjp-mcp"]
    }
  }
}

Here the settings are environment variables. fldigi-mcp uses FLDIGI_HOST, FLDIGI_PORT and FLDIGI_CALLSIGN. n3fjp-mcp uses N3FJP_HOST and N3FJP_PORT. Leave FLDIGI_CALLSIGN out and the station can only receive. For Claude Code in a terminal, also copy the skill directories (skills/<name>/) from each repository into ~/.claude/skills/, or into a project's .claude/skills/.

Start a session

Open a new chat or a Cowork session and type What is the fldigi status? Claude should answer with the mode, the frequency and the T/R state. If it does not, type run the fldigi diagnostics. That tells you whether the problem is the network connection, before you go looking for a fault in fldigi.

Your first QSO, on a dummy load

1 · CQ2 · Exchange3 · TU4 · Log anyone out there?caller decoded, send oursthey QSL, confirm theirs backwrite it, then QRZ CQ FD CQ FD de <MYCALL> <MYCALL> pse k <CALL> de <MYCALL>Pse copy 2A 2A STX STXde <MYCALL> BK QSL <CLASS> <SECT> TU <CALL>de <MYCALL> GL FD sk sk log → log_qso … check logged: true then QRZ, back to CQ
The four-state loop from the Field Guide: CQ, Exchange, TU, Log, then QRZ and back to CQ.
This keys the transmitter. You are the control operator.

Put the radio on a dummy load and type Call CQ Field Day until someone answers. Work them, our exchange is 2A STX, log the contact to N3FJP, then keep calling. Watch one full cycle. You should see the transmitter drop, then the listening period, then the entry in the log. Only then connect the antenna. You can type stop at any moment. Under Part 97 you are still the control operator, so stay at the station while it transmits.

Hunting for a station

The signal_hunt tool listens to the same audio that fldigi hears. It names the mode of each signal from its shape: RTTY, CW, BPSK31/63/125, Olivia, MFSK16, DominoEX or MT63. It puts a station that holds one frequency and calls CQ at the top of the list, and tunes to it. It needs the fldigi-mcp[hunt] extra, which adds numpy and sounddevice. If you installed the .mcpb file, the runtime installs the extra for you. In the fldigi-mcp settings, set Audio input device to the sound device fldigi uses. Part of its name is enough, for example iMic. On a Mac, macOS asks once for permission to use the microphone. Then type Find me someone calling CQ on 20 meters PSK31.

huntranktuneread 20 s signal_hunt, 20 s of audiocandidates, highest score firsttune_to carrier_hz, fldigi_modemtext → read, confirm the CQ hand off to fldigi-operating CQ and a callsign, twice nextcandidate
The hunt loop from skill 03: hunt, rank, tune, read twenty seconds, then hand off to fldigi-operating or try the next candidate.

fldigi-mcp cannot open the sound card in a Cowork session, in a container, or when fldigi runs on another computer. In those cases, run fldigi-mcp-tap --device iMic on the computer that runs fldigi. Then set Signal-hunt tap URL to http://127.0.0.1:7365, or to that computer's address. If there is no audio at all, signal_hunt with method="api" calls fldigi's own search_up over and over. That is slow, and it cannot tell one mode from another.

Two more ways to hunt need a patched fldigi. signal_hunt method="browser" reads fldigi's Signal Browser. That shows up to 30 PSK, RTTY or CW stations at once, with the text from each. The rsid tool lists the RSID bursts fldigi heard, with their mode and frequency. It does this without switching the modem.

Proposed, not yet in fldigi

The Signal Browser and RSID patches were offered to the fldigi maintainer on 11 and 16 September 2026 (w1hkj/fldigi issue 55). Neither is merged. On an unpatched fldigi, both tools answer with a hint. Nothing else changes.

So far the mode naming has been tested on five recordings of known mode, and it named all five correctly. Hunting only listens. It never transmits.

fldigi or N3FJP on another computer

MAC Claude Desktop n3fjp-mcp mcp-host- bridge WINDOWS PC N3FJP · fldigi radio LAN
The connector still talks to 127.0.0.1 on the Mac. mcp-host-bridge carries that connection across the LAN to the PC.

For fldigi, start it on the other computer with --xmlrpc-server-address 0.0.0.0 so that it accepts connections from the LAN. Claude Desktop runs connectors in a sandbox that can only reach 127.0.0.1, the computer Claude is on. To get past that, install mcp-host-bridge on the computer that runs Claude and run the command below, with your other computer's address in place of 192.168.1.50. Leave the connector host set to 127.0.0.1. Use this only on a trusted LAN.

mcp-host-bridge install n3fjp --to 192.168.1.50

The same command works with fldigi or wsjtx in place of n3fjp. Keep the link on a trusted LAN, or tunnel it over SSH. The connection is not encrypted, and fldigi's XML-RPC interface does not ask for any login.

Where to go next

The User Guide has the full Field Guides. The fldigi-mcp product page lists the tools and the settings, and has the fldigi XML-RPC reference. Downloads has every file. If you want to help with the software, start at Development.