Why this is open source, and what kind of help matters
I built everything here at one bench, with one rig, one switch and one contest weekend. That was enough to show the design works. It is not nearly enough to trust it. Most of the help I need is not code. I need people to run the software where my bench cannot reach: on an operating system I have not tried, with a rig family that follows a different manual, or on a band at a different hour. Then write down what happened.
What we need
| Area | What would help | Where to start |
|---|---|---|
| Windows and Linux | Testers for the bundles on both platforms. | Downloads, then an issue with what happened. |
| Operating | Operators who run the Field Day loop and file the after-action notes. | Getting Started, then the n3fjp-mcp issues. |
| Serial bench | A Cisco console, an Icom or Kenwood rig and a GS-232 rotator on a bench, to test serial-console-mcp. Its playbooks for these follow the vendors' references but have not been tried on real hardware. | serial-console-mcp issues. |
| fldigi patches | Review of the two proposed patches: the Signal Browser and RSID methods. | fldigi-mcp, patches/, and w1hkj/fldigi issue 55. |
| The model | Hams who enable text capture in fldigi during a contest and keep their log. | The section below. |
The Signal Browser methods (browser.get_channels, browser.clear) and the RSID methods (rsid.get_hits, rsid.clear) are patches. I offered them to the fldigi maintainer on w1hkj/fldigi issue 55, on 11 and 16 September 2026. They are not merged. On a stock fldigi, the tools answer with a hint. Nothing else changes.
How to contribute on GitHub
git clone https://github.com/sbrunner-atx/<repo>.git
cd <repo> && uv sync
uv run ruff check .
uv run pytest
Fork the repository, make a branch and open a pull request. For anything larger than a fix, open an issue first. Each repository has a CONTRIBUTING.md. The test suites run without a radio, fldigi or N3FJP. fldigi-mcp is licensed GPL-3.0-or-later, the same as fldigi. The other repositories are MIT.
The model we are building
The long-term goal is a small model that runs in the field beside fldigi and reads a digital-mode QSO through noise. The product page describes it. The pieces that exist today are deterministic. I chose to start that way.
qso-resolver: the deterministic half
- The reference layer is a set of fixed lists. The software looks entries up in them, and no model learns them. They are all 85 ARRL and RAC sections plus the Field Day pseudo-section DX, the class grammar, the ITA2 lost-shift table for RTTY, and MASTER.SCP, which is fetched at build time.
- The resolver matches received text against that reference by edit distance. It uses no model, no network and no weights, so its result is the floor any later model has to beat. Its confidence in a QSO is the confidence of the weakest field, not the average, because one wrong field makes the whole QSO wrong. When a field is ambiguous, the resolver does not pick one answer. A wrong QSO in the log is worse than a missed one.
- The evaluation harness prints null instead of a rate until there is a held-out set of real QSOs to test against. A score from synthetic data, reported as accuracy, is the kind of claim this project sets out to do better than.
- The adapters read ADIF, Cabrillo and fldigi text capture, and pair received lines with logged truth by timestamp.
qso-mcp: the model's interface
- One base model runs in two modes. Contest mode adds a LoRA adapter and answers only from a closed set of outputs. Rag-chew mode runs without the adapter.
- Confidence comes from the weakest field. Below the threshold the answer is
needs_human. An ambiguous field is handed back as ambiguous. The model does not guess. - The grammar constraint keeps contest output inside the exchange vocabulary.
What a contribution of real pairs looks like
Turn on fldigi's text capture during a contest and keep your contest log. Send me both, with your permission to use them. What your screen showed, paired with what the log says was sent, is a training pair. The capture rig's own collection is reported on the dashboard. To offer data, open a GitHub issue or use the email address below.
Getting help
- Start with GitHub Issues on the relevant repository: fldigi-mcp, wsjtx-mcp, n3fjp-mcp, serial-console-mcp, mcp-host-bridge.
- For anything else, use LinkedIn.
- Email: stefan at this domain