omiss-mcp
A read-only gateway to OMISS (Old Man International Sideband Society) data from omiss.net and NetLogger — net schedules, live nets, members, check-ins, awards, officers and statistics — no login or API key needed.
Net schedule — every net's band, UTC time, frequency, days, coordinator, holiday times, and next run (
omiss_net_schedule).Live nets — which OMISS nets are on the air right now via NetLogger, matched to the schedule (
omiss_nets_on_air); requires saving your callsign once (omiss_set_callsign).Member lookup — one member's OM number, name, status, grid, state, county and last check-in, by callsign or OM number (
omiss_member_lookup).Check-in history — past nets newest first, filterable by member, band, date or net control (
omiss_checkin_history), and one net's full detail — control, relays, notes, check-in list (omiss_net_checkins).Eligibility — for up to 200 callsigns, whether each is a member and which award categories they count for (
omiss_eligibility).Statehood schedule — 40m net dates, their free-call states and the next one (
omiss_statehood_schedule).Officers — officers, directors, band coordinators, committees, appointees and past presidents (
omiss_officers).Awards — the award list and IDs (
omiss_awards), an award's rules or all summaries (omiss_award_rules), and recipients or one member's certificates (omiss_award_recipients).Statistics — 52-week nets per band, last net per band, top check-ins and net controls, and a state's last check-in (
omiss_net_statistics).Version info — service and upstream spec versions (
get_version_info).
All tools are read-only; inputs are validated, addresses/emails are never returned, and results are cached with gentle rate limiting and stale-fallback on errors.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@omiss-mcp are any OMISS nets on the air right now?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
omiss-mcp
MCP server for OMISS, the Old Man International Sideband Society: the net schedule, OMISS nets on the air now, member lookup, past nets and who checked in, the Statehood schedule, officers, awards and net statistics, through any MCP-compatible AI assistant.
Data from omiss.net's public pages; nets on the air from NetLogger. Part of the qso-graph project. No login or API key needed.
Install
uvx omiss-mcp # run it; nothing to installRelated MCP server: iota-mcp
Tools
Tool | Description | Key Parameters |
| Every net's band, UTC time, frequency, days, band coordinator and next run; holiday dates | — |
| OMISS nets on the air now, from NetLogger, each matched to the net schedule | — |
| One member: OM number, call, name, status, grid, state, county, last check-in | callsign or om_number |
| Past nets, newest first, optionally only a member's, a band's or a date's | callsign, om_number, band, date, net_control |
| One past net: net control, relays, notes, and the check-in list | net_id |
| 40m net dates and their free-call states, and the next one | — |
| Officers, band coordinators, committees, appointees, past presidents | — |
| The awards, with the IDs the other award tools take | — |
| An award's rules, or every award's summary | award_id |
| Who holds an award, newest first, or check one member | award_id, callsign, om_number |
| Nets per band, last net per band, top check-ins and net controls, last check-in by state | state, top |
| For a list of callsigns (a net's check-ins): member or not, OM number, silent key, and the military, first responder and state capital rosters | callsigns |
| Save your callsign, for | callsign |
| Service version + upstream spec version (fleet identity attestation) | — |
What is OMISS?
OMISS is an amateur-radio society that runs SSB nets on HF, from 10 to 160 meters, every day of the week. Members exchange OM numbers on the nets and work toward the society's awards. Its website publishes the net schedule, the member roster, check-in history for every net, and the award rules and recipients.
Nets Open Early
Net control often opens a net in NetLogger for check-ins well before its listed time (the 40m net has opened 35 minutes early). omiss_net_schedule gives the listed times; omiss_nets_on_air shows whether a net is open now.
Your Callsign
Only omiss_nets_on_air needs it: it asks NetLogger, which is told which station is asking. On first use the assistant asks for your callsign and saves it. You're asked once. The other tools don't need it.
Good Neighbor Policy
omiss.net is a volunteer-run club website, not an API. We read it gently:
Measure | Detail |
One request at a time | At most one request every 2 seconds, shared by every copy you run (Claude Desktop, Claude Code, a script) through a locked file in your settings folder. |
Response caching | Schedule, officers, Statehood, members and award recipients 24 hours; awards and rules 7 days; history and statistics 1 hour. |
Stale answers over errors | When the site is down or busy, the last answer comes back with its age rather than an error. |
Back-off | A "too many requests" or "unavailable" answer stops all requests for at least a minute, longer if the site asks. |
Request timeout | 20-second timeout. |
User-Agent header | Every request names this project, so the site's operators can see who is asking. |
NetLogger |
|
Security and Privacy
Every value is checked before it is sent: callsigns, OM numbers, bands from a fixed list,
YYYY,YYYY-MMorYYYY-MM-DDdates, numeric net IDs, and award IDs from the site's own list. Free text is never sent to omiss.net.No postal addresses or email addresses are ever returned, even where a page prints one.
Members are looked up one at a time, by callsign or OM number. There's no search by state, county or grid, and no roster download.
Quick Start
Configure your MCP client
omiss-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):
{
"mcpServers": {
"omiss": {
"command": "uvx",
"args": ["omiss-mcp"]
}
}
}Claude Code
Add to .claude/settings.json:
{
"mcpServers": {
"omiss": {
"command": "uvx",
"args": ["omiss-mcp"]
}
}
}ChatGPT Desktop
{
"mcpServers": {
"omiss": {
"command": "uvx",
"args": ["omiss-mcp"]
}
}
}Cursor
Add to .cursor/mcp.json (project-level) or ~/.cursor/mcp.json (global):
{
"mcpServers": {
"omiss": {
"command": "uvx",
"args": ["omiss-mcp"]
}
}
}VS Code / GitHub Copilot
Add to .vscode/mcp.json in your workspace:
{
"servers": {
"omiss": {
"command": "uvx",
"args": ["omiss-mcp"]
}
}
}Gemini CLI
Add to ~/.gemini/settings.json (global) or .gemini/settings.json (project):
{
"mcpServers": {
"omiss": {
"command": "uvx",
"args": ["omiss-mcp"]
}
}
}Ask questions
"When is the OMISS 40m net, and on what frequency?"
"Is KI7MT an OMISS member? What's their OM number?"
"Which OMISS nets are on the air right now?"
"Which nets did OM 7212 check in to this year?"
"Who checked in to last night's 80m net?"
"What are the free-call states on the next 40m Statehood net?"
"What does the Alphabet Soup award require, and have I earned it?"
"Who ran the most OMISS nets as net control in the last 90 days?"
As a Python Library
The same code works without an AI, with the same spacing and cache:
from omiss_mcp.omiss import OmissSource
om = OmissSource()
me = om.member_lookup(callsign="KI7MT")["members"][0]
for net in om.checkin_history(om_number_=me["om_number"], date_="2026")["nets"]:
print(net["time"], net["name"], net["checkin_count"])Apps can name themselves, using ADIF's PROGRAMID and PROGRAMVERSION: OmissSource(program_id="MyLogger", program_version="1.0").
Testing Without Network
OMISS_MCP_MOCK=1 omiss-mcpMCP Inspector
omiss-mcp --transport streamable-http --port 8015Development
git clone https://github.com/qso-graph/omiss-mcp.git
cd omiss-mcp
uv sync --group dev
uv run pytestLicense
GPL-3.0-or-later
Available Tools
14 toolsget_version_infoGet Version InfoARead-onlyIdempotent
Get omiss-mcp's version, the omiss.net layout it reads, and the version of the records it returns.
Inputs: no named parameters. Returns: object
omiss_award_recipientsOmiss Award RecipientsARead-onlyIdempotent
List who holds an OMISS award, newest certificates first, or check one member.
Inputs: award_id (required), limit, callsign, om_number. Returns: object
omiss_award_rulesOmiss Award RulesARead-onlyIdempotent
Get an OMISS award's rules, or (no award_id) every award's name, ID and summary.
Inputs: award_id. Returns: object
omiss_awardsOmiss AwardsARead-onlyIdempotent
List the OMISS awards that have recipients, with the award IDs the other award tools take.
Inputs: no named parameters. Returns: object
omiss_checkin_historyOmiss Checkin HistoryARead-onlyIdempotent
List past OMISS nets, newest first: all of them, or only those a member checked in to, on a band, on a date, or run by a net control. omiss.net shows the latest 100 matches.
Inputs: band, date, callsign, om_number, +1 more. Returns: object
omiss_eligibilityOmiss EligibilityARead-onlyIdempotent
For stations on a net: is each an OMISS member, and which award categories does it count for? From omiss.net's own rosters.
Use it with a net's check-ins (netlogger-mcp's netlogger_checkins for a live net, or omiss_net_checkins for a past one) to see who you still need. Only the callsigns asked about are answered.
Inputs: callsigns (required). Returns: object
omiss_member_lookupOmiss Member LookupARead-onlyIdempotent
Look up one OMISS member by callsign or by OM number (give one).
Inputs: callsign, om_number. Returns: object
omiss_net_checkinsOmiss Net CheckinsARead-onlyIdempotent
Get one past OMISS net: its net control, relays, frequency, net control's notes, and the check-in list.
Inputs: net_id (required). Returns: object
omiss_net_scheduleOmiss Net ScheduleARead-onlyIdempotent
Get the OMISS net schedule: every net's band, UTC time, frequency and window, days, holiday time and band coordinator, and the next time it runs; the schedule's footnotes (holidays, winter schedule); and the federal holiday dates the holiday schedule follows. Days and times are UTC, so an evening net in the Americas falls on the previous local day; use next_utc and as_of_utc to work out "today" in the user's time zone. next_utc is the listed start: nets often open early for check-ins, and a net on the air now shows next_utc as its next run, so ask omiss_nets_on_air whether one is open.
Inputs: no named parameters. Returns: object
omiss_nets_on_airOmiss Nets On AirARead-onlyIdempotent
List OMISS nets on the air now, from NetLogger, each matched to OMISS's own net schedule.
A net on NetLogger is an OMISS net when it matches a scheduled one (its frequency is in that net's window, on a day it runs, near its start time) or its name says OMISS. Each says which scheduled net it is.
Inputs: no named parameters. Returns: object
omiss_net_statisticsOmiss Net StatisticsARead-onlyIdempotent
Get OMISS net statistics for the last 52 weeks: nets per band, the last net on each band, and the leaderboards (most check-ins, most nets as net control).
Inputs: top, state. Returns: object
omiss_officersOmiss OfficersARead-onlyIdempotent
List OMISS's officers, directors, band coordinators, committees, appointees, past presidents and other VIPs.
Inputs: no named parameters. Returns: object
omiss_set_callsignOmiss Set CallsignAIdempotent
Save the user's amateur radio callsign, for omiss_nets_on_air. Needed once.
NetLogger is told which station is asking. The callsign is shared with netlogger-mcp, if it's installed. Ask the user for their own callsign; don't guess it.
Inputs: callsign (required). Returns: object
omiss_statehood_scheduleOmiss Statehood ScheduleARead-onlyIdempotent
Get the 40m Statehood schedule: each 40m net date and its free-call states, and the next one.
Inputs: no named parameters. Returns: object
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 14 tools
Most tools target a distinct resource: member lookup, net schedule, live nets, past net details, officers, statistics, awards, and eligibility are clearly separated. Minor overlap exists between omiss_checkin_history (list/filter nets) and omiss_net_checkins (detail of one net), and between omiss_awards and omiss_award_rules with no award_id (both can list awards), but the descriptions give enough cues to pick correctly.
Thirteen of fourteen tools use a consistent omiss_ snake_case prefix with noun or noun_verb forms (lookup, history, checkins, eligibility, awards), which reads predictably. The outlier is get_version_info, which drops the omiss_ prefix and uses a get_ verb style, a minor deviation.
Fourteen tools is squarely within the well-scoped 3-15 range for an informational server covering members, nets, schedules, awards, and statistics. Each tool maps to a distinct query need with no obvious filler.
The surface covers the domain well: member lookup, full net schedule plus live nets, historical check-ins and per-net detail, eligibility, award rules/recipients, officers, statistics, and callsign setup. Gaps are minor, e.g. no aggregated per-member award progress or cross-member/net search beyond the existing filters, but these are workable around.
Maintenance
Related MCP Connectors
Live web checks for AI agents: sitemaps, robots.txt, URL status, broken links, feeds, citations.
Free, no-API-key network lookups for AI agents — IP geolocation, DNS, WHOIS, HTTP and SSL/TLS certificate checks, and full domain health reports.
Read-only search of 2,189 AI agent tools (MCP servers, x402 APIs) with daily automated trust scores.
Web search, scraping, Google Trends and data lookups. Paid per call in USDC on Base via x402.
Related MCP Servers
- AlicenseAqualityAmaintenanceMCP server for HamQTH.com — callsign lookup, DX cluster spots, Reverse Beacon Network, DXCC resolution, and more through any MCP-compatible AI assistant.8126 PyPIGPL 3.0
- AlicenseAqualityAmaintenanceEnables IOTA group lookup, island search, DXCC mapping, nearby groups, and programme statistics through any MCP-compatible AI assistant.798 PyPIGPL 3.0
- AlicenseAqualityAmaintenanceEnables querying WSPR beacon data including live spots, band activity, top beacons, propagation paths, and SNR trends through any MCP-compatible AI assistant.980 PyPIGPL 3.0
- AlicenseNot gradedqualityBmaintenanceEnables AI agents and MCP clients to sync, search, and retrieve amateur radio repeater data from RepeaterBook.com through three typed tools.53 PyPI5MIT