MCP server: One MCP server.

JS8Call

@qso-graphMCP server · External

JS8Call MCP server for HF messaging: decode stream, heard stations, message traffic

v0.0.1GPL-3.0Python
Freeno charge per call

Runs on your machine from its package; the steps are below.

What it does

  1. Reads
  2. Writes
  3. High impact

Not assessed yet.

What it costs

Free

Odel charges nothing per call. The publisher may charge for its own service.

Runs locally over stdio

This server isn't hosted — your MCP client launches it from a package registry. Use one of the commands below, or drop the config into your client (e.g. Claude Desktop).

PyPIjs8call-mcpv0.0.1

Run

uvx js8call-mcp

MCP client config

{
  "mcpServers": {
    "js8call": {
      "command": "uvx",
      "args": [
        "js8call-mcp"
      ]
    }
  }
}
README2 min read

js8call-mcp

PyPI

In development

This package is published so the name is held while the work is planned in the open. It registers one tool, get_version_info, and does nothing else yet. If you install it expecting a working server, that is what you will find — which is why it says so here, in the server's own instructions, and in the one tool it has.

PyPI does not reserve a name for a pending trusted publisher, so a name is only held once something is actually published. Given that, a package that says what it is beats an empty one that does not.

Read-only access to JS8Call's API: the decode stream, stations heard, message traffic and the propagation those imply. No write, no PTT, no transmit control — a permanent constraint, not a first-version limit.

Planned work, including the data sources it would use and whether each is actually available, is tracked in qso-graph-devel#48.

Part of the qso-graph project.

Install

bash
uvx js8call-mcp            # run it; nothing to install

Tools

ToolDescription
get_version_infoService version, development status, and where the work is tracked

Quick Start

No credentials needed — install and configure your MCP client.

Configure your MCP client

js8call-mcp works with any MCP-compatible client. Add the server config and restart.

Claude Desktop

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

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

Claude Code

Add to .claude/settings.json:

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

ChatGPT Desktop

Configure via Settings > Apps & Connectors, or in your agent definition:

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

Questions it will answer

Not yet — these are what the finished server is for:

"Who has JS8Call heard on 40m in the last hour?"

"What message traffic has come through for my callsign?"

"Which stations are relaying, and how far away are they?"

Licence

GPL-3.0-or-later. See LICENSE.

Similar modules