eqsl-mcp
The eqsl-mcp server provides tools to interact with eQSL.cc, enabling amateur radio operators to manage electronic QSL cards and verify contacts through any MCP-compatible AI assistant.
Download incoming eQSLs (
eqsl_inbox): Retrieve eQSL confirmations sent to you, with filters for date (since, default last 30 days), confirmation status, and QTH profile for multi-QTH callsigns. (Requires authentication)Verify a specific QSO (
eqsl_verify): Check whether a particular contact exists in eQSL by providing both callsigns, band, date, and optionally mode. (No authentication required)Check AG status (
eqsl_ag_check): Look up whether a callsign holds Authenticity Guaranteed (AG) status, using a cached list refreshed periodically. (No authentication required)Download raw ADIF inbox (
eqsl_download): Export your complete eQSL inbox as raw ADIF text, optionally filtered by date, for import into a logging application. (Requires authentication)Check last upload date (
eqsl_last_upload): Find out when a configured persona last uploaded QSOs to eQSL. (Requires authentication)Get version info (
get_version_info): Retrieve the service version and upstream eQSL.cc endpoint version. (No authentication required)
Click on "Install 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., "@eqsl-mcpShow me all new eQSL cards received this week"
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.
eqsl-mcp
MCP server for eQSL.cc — download incoming eQSLs, verify QSOs, check AG status, and query upload history through any MCP-compatible AI assistant.
Part of the qso-graph project. Uses qso-graph-auth for credential management.
Install
pip install eqsl-mcpRelated MCP server: hamqth-mcp
Tools
Tool | Auth | Description |
| Yes | Download incoming eQSLs with date/confirmation filters |
| No | Check if a specific QSO exists in eQSL |
| No | Check if a callsign has AG (Authenticity Guaranteed) status |
| Yes | Download eQSL card images |
| No | When did a persona last upload to eQSL |
| No | Service version + upstream eQSL.cc endpoint version (fleet identity attestation) |
Quick Start
1. Set up credentials
eqsl-mcp uses qso-graph-auth personas for credential management:
# Install qso-graph-auth if you haven't
pip install qso-graph-auth
# Create a persona and add eQSL credentials
qso-auth persona create ki7mt --callsign KI7MT
qso-auth persona provider ki7mt eqsl --username KI7MT
qso-auth persona secret ki7mt eqsl2. Configure your MCP client
eqsl-mcp works with any MCP-compatible client. Add the server config and restart — tools appear automatically.
Claude Desktop
Add to claude_desktop_config.json (~/Library/Application Support/Claude/ on macOS, %APPDATA%\Claude\ on Windows):
{
"mcpServers": {
"eqsl": {
"command": "eqsl-mcp"
}
}
}Claude Code
Add to .claude/settings.json:
{
"mcpServers": {
"eqsl": {
"command": "eqsl-mcp"
}
}
}ChatGPT Desktop
ChatGPT supports MCP via the OpenAI Agents SDK. Add under Settings > Apps & Connectors, or configure in your agent definition:
{
"mcpServers": {
"eqsl": {
"command": "eqsl-mcp"
}
}
}Cursor
Add to .cursor/mcp.json (project-level) or ~/.cursor/mcp.json (global):
{
"mcpServers": {
"eqsl": {
"command": "eqsl-mcp"
}
}
}VS Code / GitHub Copilot
Add to .vscode/mcp.json in your workspace:
{
"servers": {
"eqsl": {
"command": "eqsl-mcp"
}
}
}Gemini CLI
Add to ~/.gemini/settings.json (global) or .gemini/settings.json (project):
{
"mcpServers": {
"eqsl": {
"command": "eqsl-mcp"
}
}
}3. Ask questions
"Show me all eQSLs received this week"
"How many unconfirmed eQSLs do I have on 20m FT8?"
"Does W1AW have AG status on eQSL?"
"Verify my QSO with KI7MT on 20m on March 1, 2026"
Testing Without Credentials
The two public tools (eqsl_verify and eqsl_ag_check) work without any credentials.
For eqsl_inbox testing, set the mock environment variable:
EQSL_MCP_MOCK=1 eqsl-mcpOr point to a local ADIF file:
EQSL_MCP_MOCK=1 EQSL_MCP_ADIF=/path/to/test.adi eqsl-mcpMCP Inspector
eqsl-mcp --transport streamable-http --port 8001Then open the MCP Inspector at http://localhost:8001.
Development
git clone https://github.com/qso-graph/eqsl-mcp.git
cd eqsl-mcp
pip install -e .Date Formats
eQSL uses different date formats across endpoints. eqsl-mcp normalizes everything — you always use YYYY-MM-DD:
You provide | eqsl-mcp sends | Endpoint |
|
| DownloadInBox (RcvdSince) |
|
| VerifyQSO (QSODate) |
Mode Matching
eQSL requires exact mode matching. SSB won't match USB/LSB. PSK won't match PSK31. Use the exact mode logged by the other station.
License
GPL-3.0-or-later
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/qso-graph/eqsl-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server