
Qsp Mcp
io.github.qso-graphPublished by GitHub account qso-graphv0.1.1Updated Oct 24, 2026
QSP — relay MCP tools to any OpenAI-compatible local LLM (llama.cpp, Ollama, vLLM)
Overview
A local MCP client that relays tool calls between an OpenAI-compatible local LLM endpoint and configured MCP servers.
- What you can do
- Relay tool calls between a local OpenAI-compatible LLM and the MCP servers listed in its config
- Run one-shot queries or an interactive session, with tool profiles that limit which servers are exposed
- List available tools and switch profiles from the command line or interactive commands
- Convert ADIF amateur-radio log files to JSON or NDJSON with band, mode, callsign and date filters
- When to use it
- Useful when you run a local model with function calling (llama.cpp, Ollama, vLLM, SGLang) and want it to call MCP tools, especially the qso-graph amateur-radio servers, without going through a cloud provider.
- Requirements
- Runs as a local process installed from PyPI (uv tool install or pip). Needs a reachable OpenAI-compatible chat-completions endpoint and model name, plus an API key for that endpoint if it requires one. MCP servers are declared in a Claude Desktop compatible config file.
Installation
In SourceWeft
- Open Qsp Mcp in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
qsp-client
QSP — relay MCP tools to any OpenAI-compatible local LLM endpoint.
Named after the Q-signal QSP ("Will you relay?"), qsp-client relays tool calls between a local LLM and MCP servers. It is an MCP client: any model with function calling gains access to the qso-graph servers' tools, from local weights, not from cloud.
Formerly qsp-mcp. See Moving from qsp-mcp.
Install
Quick Start
Configuration
The config format is Claude Desktop compatible — copy your existing mcpServers block directly:
The mcpServers block uses the exact same format as Claude Desktop. The bridge section is qsp-client specific (ignored by Claude Desktop).
CLI Options
Interactive Commands
ADIF tools
qsp-adif-convert converts an ADIF (.adi) log to JSON or NDJSON, with filters for band, mode,
callsign, date range and confirmed QSOs:
It works on files on your own machine and opens no connection. It used to be adif-mcp convert;
adif-mcp is now only the MCP server.
Design
qsp-client is a strict, stateless pipe between an LLM and MCP tools:
- No caching, no shared state, no health polling
- All state lives in MCP servers
- All inference optimization lives in the inference server (prefix caching, KV-cache)
- qsp-client just connects the two sides
Works with any OpenAI-compatible endpoint: llama.cpp, Ollama, vLLM, SGLang.
Security
- Write-capable tools disabled by default (
--enable-writesopt-in) - Credentials stay inside MCP servers (OS keyring) — never exposed to qsp-client or the LLM
- No subprocess, no shell execution, no eval
- All external connections HTTPS only (LAN endpoints exempted)
Moving from qsp-mcp
qsp-client is qsp-mcp, renamed: in the MCP world, -mcp names mark servers, and this is a client.
- Install the new name:
pip uninstall qsp-mcp && pip install qsp-client. - Your config keeps working:
~/.config/qsp-mcp/config.jsonand~/.qsp-mcp.jsonare still read, after the new~/.config/qsp-client/config.jsonand~/.qsp-client.json. - The
qsp-mcpcommand still works, and says it has moved. Useqsp-client.
License
GPL-3.0-or-later — see LICENSE.
Part of the qso-graph ecosystem
qso-graph.io — MCP servers for amateur radio.
Source: README.md at commit bd6064b
Tools
0Version history
1- v0.1.1LatestSep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts