For developers

HamQTH for AI assistants (MCP)

Using HamQTH data in your application? Please tell your users. HamQTH is free: no fees, no keys to buy. All we ask in return: say somewhere your users can see it that the data comes from HamQTH.com, and invite them to register on HamQTH and keep their profile up to date. The callbook is only as good as the profiles in it.

HamQTH has a read-only MCP server. MCP (Model Context Protocol) is the standard way for an AI assistant such as Claude or ChatGPT to use an outside service. Connect your assistant once and you can ask it in plain words: who is DL1ABC, which stations are in Žďár nad Sázavou, is 20 m open to North America, did OK2CQR log a QSO with me. It uses your HamQTH account, so you must be registered. For writing your own program use the HamQTH API instead.

The address

https://www.hamqth.com/mcp

How to connect

Every assistant sends you to a HamQTH page where you log in with your callsign and password and press Allow. Your password never goes to the assistant.

Claude.ai and Claude Desktop

  1. Open Settings, then Connectors.
  2. Choose Add custom connector.
  3. Give it a name (HamQTH) and paste https://www.hamqth.com/mcp as the URL.
  4. Press Add, then Connect. A HamQTH page opens: log in, then press Allow.
  5. In a chat, switch the HamQTH connector on and ask a question.

ChatGPT

  1. Open Settings, then Apps (or Connectors) and turn on developer mode if your plan asks for it.
  2. Create a new app or connector, name it HamQTH, and paste https://www.hamqth.com/mcp as the MCP server URL. Authentication: OAuth.
  3. Press Connect. On the HamQTH page log in and press Allow.
  4. In a chat, add the HamQTH app and ask a question.

The menu names change from time to time; look for the place where a custom connector or app is added by URL.

Claude Code

  1. Add the server:
    claude mcp add --transport http hamqth https://www.hamqth.com/mcp
  2. Start claude and type /mcp. Choose hamqth and Authenticate.
  3. The browser opens the HamQTH page: log in and press Allow.

Other clients

Any MCP client that supports remote (streamable HTTP) servers with OAuth 2.1 works with the same URL. The server describes itself at /.well-known/oauth-protected-resource and /.well-known/oauth-authorization-server. Clients identify themselves with a Client ID Metadata Document (an https URL); dynamic client registration is not offered.

What it can do

Eleven tools. The assistant picks the right one by itself; you just ask.

ToolWhat it doesExample question
lookupOne callsign from the callbook: name, QTH, locator, DXCC, zones, IOTA, QSL information, links and, when the member shows it, the postal address.Who is OK2CQR and how do I QSL?
batch_lookupUp to 100 callsigns at once, basic fields only (no street, e-mail or links); callsigns not in HamQTH come back as not found.Fill in name and locator for these 40 callsigns from my log.
place_searchStations by city, US county, RDA, district, DOK or locator. 25 per page, at most 40 pages; a total above 1000 is shown as "1000+". Stations that hide their address are not listed, and no addresses are returned.Which stations are in Žďár nad Sázavou?
activityRecent DX cluster and Reverse Beacon Network spots of a callsign, QSOs with it in uploaded logs, and its own newest QSOs when it has log search on.Has DL5XL been active this week?
spotsLatest DX cluster spots, filtered by callsign, band and mode (up to 100).Show me CW spots on 20 and 40 m.
rbnWho heard a callsign on the Reverse Beacon Network recently, with SNR.Where is my signal being heard right now?
on_airStations on the air right now by their logging program's rig status, or one station.Who is on 14 MHz right now?
log_searchDid a station log a QSO with another callsign, in the log it uploaded to HamQTH (see below).Did OK1ABC log me?
dxccDXCC entity of a callsign or prefix, as on a given date: number, name, continent, zones, UTC offset.What DXCC is 3Y0J, and is it deleted?
distanceDistance and beam heading (short and long path) between two callsigns or Maidenhead locators.How far and in which direction is JN89 from FN31?
conditionsSolar flux, A and K index, and live band conditions from a locator square, from WSPR spots and beacons.Is 15 m open to North America from JN89?

Good to know

  • Place search needs diacritics. Write the city as it is spelled, with the letters č, ř, š, ž and so on: "Žďár", not "Zdar".
  • log_search answers found (with the date, time, band and mode of the QSOs), not_found, clublog (the station keeps its log on Club Log; you get a link to its public search page there) or no_log. "Not on HamQTH" does not mean "not in the log": the station may keep its log elsewhere, for example Club Log or LoTW.

What you get and what you don't

  • The street address is returned only by lookup, one callsign per call, and only when that member shows it. Batch lookups and place search never return one.
  • Privacy settings are respected exactly as on the website: what a member hides is empty, a member who hides their activity returns nothing but "hidden", and log search follows the member's log search settings.
  • Read only. The assistant can look things up; it cannot change your profile, upload logs or send anything.
  • Club Log logs are not searched. For a station that keeps its log on Club Log you get the link, not the answer.
  • The assistant sees what you would see logged in to HamQTH, nothing more.

Limits

Every account has 5 000 lookups per day. lookup counts one, batch_lookup one per callsign, place_search one per page, and activity, spots, rbn, on_air and log_search one per call, distance one per callsign it is given (locators are free). dxcc and conditions are free and do not count. When the limit is used up the assistant is told when it resets (UTC).

Revoking access

Log in and open Connected apps in your account. Every assistant you allowed is listed with the time it was last used; Revoke cuts it off at once. Changing your password signs every assistant out: they stay listed under Connected apps and reconnect after you log in again, without asking you to Allow again. Press Revoke to remove one for good. An assistant that you do not use for 30 days also has to log in again, but is not asked to Allow again.