Skip to content

Commit 2cda4dd

Browse files
KI7MTclaude
andcommitted
Remove all clublog-mcp references — project deleted
Club Log API requires developer key obtained by emailing support. Email+password auth returns 403 on all query endpoints. Updates package count from 10 to 9 across all docs. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 4597897 commit 2cda4dd

10 files changed

Lines changed: 17 additions & 181 deletions

File tree

docs/about/contributing.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ Found a bug or have a feature request? Open an issue on the relevant repository:
88
|---------|--------|
99
| eqsl-mcp | [github.com/qso-graph/eqsl-mcp/issues](https://github.com/qso-graph/eqsl-mcp/issues) |
1010
| qrz-mcp | [github.com/qso-graph/qrz-mcp/issues](https://github.com/qso-graph/qrz-mcp/issues) |
11-
| clublog-mcp | [github.com/qso-graph/clublog-mcp/issues](https://github.com/qso-graph/clublog-mcp/issues) |
1211
| lotw-mcp | [github.com/qso-graph/lotw-mcp/issues](https://github.com/qso-graph/lotw-mcp/issues) |
1312
| hamqth-mcp | [github.com/qso-graph/hamqth-mcp/issues](https://github.com/qso-graph/hamqth-mcp/issues) |
1413
| pota-mcp | [github.com/qso-graph/pota-mcp/issues](https://github.com/qso-graph/pota-mcp/issues) |

docs/about/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
qso-graph connects AI assistants to ham radio services through the [Model Context Protocol](https://modelcontextprotocol.io/). Instead of switching between browser tabs, logging platforms, and propagation tools, operators can ask questions in natural language and get answers from their actual data.
66

7-
"Do I have any new LoTW confirmations?" "What's the solar forecast?" "Is 3Y0J in the Club Log?" — these should be as easy to ask as they are to think.
7+
"Do I have any new LoTW confirmations?" "What's the solar forecast?" "What POTA spots are on 20m right now?" — these should be as easy to ask as they are to think.
88

99
---
1010

docs/architecture.md

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Architecture
22

3-
**How qso-graph servers work together — one foundation, ten packages, zero cloud dependencies.**
3+
**How qso-graph servers work together — one foundation, nine packages, zero cloud dependencies.**
44

55
---
66

@@ -16,7 +16,6 @@ graph TD
1616
eqsl["eqsl-mcp"]
1717
qrz["qrz-mcp"]
1818
lotw["lotw-mcp"]
19-
clublog["clublog-mcp"]
2019
hamqth["hamqth-mcp"]
2120
pota["pota-mcp"]
2221
sota["sota-mcp"]
@@ -30,13 +29,13 @@ graph TD
3029
geo["Geospatial (distance, heading)"]
3130
end
3231
33-
eqsl & qrz & lotw & clublog & hamqth --> Foundation
32+
eqsl & qrz & lotw & hamqth --> Foundation
3433
end
3534
3635
Servers -->|"HTTPS only"| Services
3736
3837
subgraph Services["External Services"]
39-
svc["eQSL.cc · QRZ.com · LoTW · Club Log · HamQTH<br/>POTA · SOTA · NOAA SWPC · WSPR Network"]
38+
svc["eQSL.cc · QRZ.com · LoTW · HamQTH<br/>POTA · SOTA · NOAA SWPC · WSPR Network"]
4039
end
4140
```
4241

@@ -127,7 +126,6 @@ Each server implements rate limiting appropriate for its service:
127126
|--------|-----------|----------|-------|
128127
| eqsl-mcp | 500ms || Respectful crawl |
129128
| qrz-mcp | 500ms | 35/min | IP ban risk above 35/min |
130-
| clublog-mcp | 500ms | 30/min | API key rate limit |
131129
| lotw-mcp | 500ms || Respectful crawl |
132130
| hamqth-mcp | 500ms || XML session rate limit |
133131
| pota-mcp | 100ms || Public API |
@@ -171,7 +169,7 @@ pip install eqsl-mcp # just eqsl-mcp + its dependencies
171169
pip install pota-mcp # just pota-mcp, no auth needed
172170
```
173171

174-
Servers don't depend on each other. You can install one or all ten.
172+
Servers don't depend on each other. You can install one or all nine.
175173

176174
Authenticated servers depend on `adif-mcp` for credential management. Public servers (POTA, SOTA, Solar, WSPR) have no dependency on adif-mcp.
177175

@@ -224,7 +222,7 @@ No qso-graph server writes to external services. All operations are read-only: l
224222

225223
### Validate Before Upload
226224

227-
adif-mcp's validation engine catches data defects at the source. A busted QSO is not a confirmation — and a rare DXpedition contact may be irreplaceable. Validate before uploading to LoTW, eQSL, or Club Log.
225+
adif-mcp's validation engine catches data defects at the source. A busted QSO is not a confirmation — and a rare DXpedition contact may be irreplaceable. Validate before uploading to LoTW or eQSL.
228226

229227
### Pip Install and Go
230228

docs/getting-started.md

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ Every qso-graph package is a standalone `pip install`:
88
# Authenticated servers (require credential setup)
99
pip install eqsl-mcp
1010
pip install qrz-mcp
11-
pip install clublog-mcp
1211
pip install lotw-mcp
1312
pip install hamqth-mcp
1413

@@ -46,16 +45,6 @@ adif-mcp creds set --persona ki7mt --provider qrz --api-key YOUR_API_KEY
4645

4746
Your credentials are stored in the OS keyring (macOS Keychain, Windows Credential Manager, or Linux Secret Service) — never in config files.
4847

49-
### Club Log API Key
50-
51-
Club Log uses a per-application API key set via environment variable:
52-
53-
```bash
54-
export CLUBLOG_API_KEY="your-40-character-hex-key"
55-
```
56-
57-
Get your API key at [clublog.org/getapi.php](https://clublog.org/getapi.php).
58-
5948
---
6049

6150
## MCP Client Configuration
@@ -73,12 +62,6 @@ Add servers to `~/Library/Application Support/Claude/claude_desktop_config.json`
7362
"qrz": {
7463
"command": "qrz-mcp"
7564
},
76-
"clublog": {
77-
"command": "clublog-mcp",
78-
"env": {
79-
"CLUBLOG_API_KEY": "your-key-here"
80-
}
81-
},
8265
"lotw": {
8366
"command": "lotw-mcp"
8467
},
@@ -184,7 +167,6 @@ Every server supports a mock mode for testing without real credentials:
184167
# Run any server in mock mode
185168
EQSL_MCP_MOCK=1 eqsl-mcp
186169
QRZ_MCP_MOCK=1 qrz-mcp
187-
CLUBLOG_MCP_MOCK=1 clublog-mcp
188170
LOTW_MCP_MOCK=1 lotw-mcp
189171
HAMQTH_MCP_MOCK=1 hamqth-mcp
190172
POTA_MCP_MOCK=1 pota-mcp
@@ -212,7 +194,6 @@ Each server uses a default port for Inspector mode:
212194
|--------|------|
213195
| eqsl-mcp | 8001 |
214196
| qrz-mcp | 8002 |
215-
| clublog-mcp | 8003 |
216197
| lotw-mcp | 8004 |
217198
| hamqth-mcp | 8005 |
218199
| pota-mcp | 8006 |
@@ -232,5 +213,4 @@ Once configured, ask your AI assistant:
232213
- "What POTA spots are on 20m right now?"
233214
- "Find SOTA summits near Boise, Idaho"
234215
- "What are the current solar conditions?"
235-
- "Is 3Y0J in the Club Log?"
236216
- "What bands are open on WSPR right now?"

docs/index.md

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ Ask your AI assistant to look up a callsign, check your LoTW confirmations, find
66

77
---
88

9-
## 10 Packages, 51 Tools
9+
## 9 Packages
1010

1111
### Foundation
1212

@@ -20,7 +20,6 @@ Ask your AI assistant to look up a callsign, check your LoTW confirmations, find
2020
|---------|:-----:|------|--------------|
2121
| [eqsl-mcp](servers/eqsl.md) | 4 | Persona | eQSL inbox, QSO verification, AG status |
2222
| [qrz-mcp](servers/qrz.md) | 4 | Persona + API key | Callsign lookup, DXCC, logbook access |
23-
| [clublog-mcp](servers/clublog.md) | 6 | API key | DXCC resolution, expedition logs, Most Wanted |
2423
| [lotw-mcp](servers/lotw.md) | 4 | Persona | LoTW confirmations, QSOs, DXCC credits |
2524
| [hamqth-mcp](servers/hamqth.md) | 4 | Persona | Free callsign lookup, DXCC, bio, activity |
2625

@@ -42,7 +41,7 @@ Ask your AI assistant to look up a callsign, check your LoTW confirmations, find
4241
pip install adif-mcp
4342

4443
# Logbook services (authenticated)
45-
pip install eqsl-mcp qrz-mcp clublog-mcp lotw-mcp hamqth-mcp
44+
pip install eqsl-mcp qrz-mcp lotw-mcp hamqth-mcp
4645

4746
# Public services (no credentials needed)
4847
pip install pota-mcp sota-mcp solar-mcp wspr-mcp
@@ -105,7 +104,7 @@ Dashboard, physics lab, DXCC progress, path analyzer, and log viewer — all pow
105104

106105
- **Demo**: [qso-graph-demo.vercel.app](https://qso-graph-demo.vercel.app/)
107106
- **GitHub**: [github.com/qso-graph](https://github.com/qso-graph)
108-
- **PyPI**: [eqsl-mcp](https://pypi.org/project/eqsl-mcp/) · [qrz-mcp](https://pypi.org/project/qrz-mcp/) · [clublog-mcp](https://pypi.org/project/clublog-mcp/) · [lotw-mcp](https://pypi.org/project/lotw-mcp/)
107+
- **PyPI**: [eqsl-mcp](https://pypi.org/project/eqsl-mcp/) · [qrz-mcp](https://pypi.org/project/qrz-mcp/) · [lotw-mcp](https://pypi.org/project/lotw-mcp/)
109108
- **Foundation**: [adif-mcp](servers/adif-mcp.md) — ADIF 3.1.6 spec engine + credential management ([PyPI](https://pypi.org/project/adif-mcp/))
110109
- **Testing**: [48/48 PASS](testing.md) — security audit + ADIF 3.1.6 official test corpus + forensic validation
111110
- **Related**: [IONIS](https://ionis-ai.com/) — HF propagation prediction from 14B amateur radio observations

docs/llms.txt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# qso-graph — MCP Servers for Amateur Radio
22

3-
> Open-source Model Context Protocol servers connecting AI assistants to amateur radio services. 10 packages, 51 tools, secure by design.
3+
> Open-source Model Context Protocol servers connecting AI assistants to amateur radio services. 9 packages, secure by design.
44

55
## Foundation
66

@@ -10,7 +10,6 @@
1010

1111
- [eqsl-mcp](https://qso-graph.io/servers/eqsl/): eQSL.cc — inbox download, QSO verification, AG status, last upload. 4 tools.
1212
- [qrz-mcp](https://qso-graph.io/servers/qrz/): QRZ.com — callsign lookup, DXCC resolution, logbook access. 4 tools.
13-
- [clublog-mcp](https://qso-graph.io/servers/clublog/): Club Log — DXCC, log search, propagation activity, Most Wanted, expeditions. 6 tools.
1413
- [lotw-mcp](https://qso-graph.io/servers/lotw/): LoTW (ARRL) — confirmations, QSOs, DXCC credits, user activity. 4 tools.
1514
- [hamqth-mcp](https://qso-graph.io/servers/hamqth/): HamQTH — callsign lookup, DXCC, bio, activity. 4 tools.
1615

@@ -25,7 +24,7 @@
2524

2625
- [Getting Started](https://qso-graph.io/getting-started/): Installation, credential setup, MCP client configuration for Claude Desktop, Claude Code, ChatGPT, Cursor, VS Code, and Gemini CLI.
2726
- [Architecture](https://qso-graph.io/architecture/): System design — foundation layer, credential flow, rate limiting, read-only security model.
28-
- [Testing & Validation](https://qso-graph.io/testing/): 60 security tests across 10 packages, ADIF 3.1.6 official test corpus validation, forensic tests from real operator data.
27+
- [Testing & Validation](https://qso-graph.io/testing/): 54 security tests across 9 packages, ADIF 3.1.6 official test corpus validation, forensic tests from real operator data.
2928
- [Security](https://qso-graph.io/security/): 10 non-negotiable security guarantees, credential architecture, forbidden patterns, release process, incident response.
3029

3130
## Key Facts

docs/servers/clublog.md

Lines changed: 0 additions & 131 deletions
This file was deleted.

docs/servers/index.md

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Server Overview
22

3-
qso-graph provides 10 MCP packages with 51 tools covering amateur radio logging, confirmations, and propagation services.
3+
qso-graph provides 9 MCP packages covering amateur radio logging, confirmations, and propagation services.
44

55
---
66

@@ -18,7 +18,6 @@ qso-graph provides 10 MCP packages with 51 tools covering amateur radio logging,
1818
|---------|:-----:|---------|-------------|
1919
| [eqsl-mcp](eqsl.md) | 4 | eQSL.cc | Persona (session) |
2020
| [qrz-mcp](qrz.md) | 4 | QRZ.com | Persona (XML) + API key (Logbook) |
21-
| [clublog-mcp](clublog.md) | 6 | Club Log | API key (env var) |
2221
| [lotw-mcp](lotw.md) | 4 | LoTW (ARRL) | Persona (HTTPS) |
2322
| [hamqth-mcp](hamqth.md) | 4 | HamQTH.com | Persona (XML session) |
2423

@@ -46,10 +45,6 @@ adif-mcp creds set --persona ki7mt --provider eqsl --password ****
4645

4746
Every tool call includes a `persona` parameter so the server knows which credentials to use. See [Getting Started](../getting-started.md) for setup.
4847

49-
### API Key (Environment Variable)
50-
51-
Club Log uses a per-application API key set via `CLUBLOG_API_KEY` environment variable.
52-
5348
### Public (No Auth)
5449

5550
POTA, SOTA, Solar, and WSPR servers access public APIs — no credentials needed. Just install and go.
@@ -92,7 +87,6 @@ Each server implements rate limiting appropriate for its service:
9287
|--------|-----------|----------|------------|
9388
| eqsl-mcp | 500ms |||
9489
| qrz-mcp | 500ms | 35/min | 3600s (IP ban) |
95-
| clublog-mcp | 500ms | 30/min | 3600s |
9690
| lotw-mcp | 500ms |||
9791
| hamqth-mcp | 500ms |||
9892
| pota-mcp | 100ms |||

docs/testing.md

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,18 +11,17 @@
1111
| [adif-mcp](servers/adif-mcp.md) | v0.7.0 | 6 | Yes | PASS |
1212
| [eqsl-mcp](servers/eqsl.md) | v0.1.1 | 6 | Yes | PASS |
1313
| [qrz-mcp](servers/qrz.md) | v0.1.1 | 6 | Yes | PASS |
14-
| [clublog-mcp](servers/clublog.md) | v0.1.1 | 6 | Yes | PASS |
1514
| [lotw-mcp](servers/lotw.md) | v0.1.1 | 6 | Yes | PASS |
1615
| [hamqth-mcp](servers/hamqth.md) | v0.1.1 | 6 | Yes | PASS |
1716
| [pota-mcp](servers/pota.md) | v0.1.0 | 6 | Yes | PASS |
1817
| [sota-mcp](servers/sota.md) | v0.1.0 | 6 | Yes | PASS |
1918
| [solar-mcp](servers/solar.md) | v0.1.0 | 6 | Yes | PASS |
2019
| [wspr-mcp](servers/wspr.md) | v0.1.0 | 6 | Yes | PASS |
21-
| **Total** || **60** | **10/10** | **10/10 PASS** |
20+
| **Total** || **54** | **9/9** | **9/9 PASS** |
2221

2322
---
2423

25-
## Security Test Suite (All 10 Packages)
24+
## Security Test Suite (All 9 Packages)
2625

2726
Every package includes `test_security.py` with 6 source-code audit tests. These are not runtime tests — they scan all Python source files for forbidden patterns:
2827

@@ -167,7 +166,7 @@ cd eqsl-mcp # or any server
167166
### All servers at once
168167

169168
```bash
170-
for pkg in eqsl-mcp qrz-mcp clublog-mcp lotw-mcp hamqth-mcp pota-mcp sota-mcp solar-mcp wspr-mcp; do
169+
for pkg in eqsl-mcp qrz-mcp lotw-mcp hamqth-mcp pota-mcp sota-mcp solar-mcp wspr-mcp; do
171170
echo "=== $pkg ==="
172171
cd /path/to/$pkg && .venv/bin/python -m pytest tests/test_security.py -v
173172
done

0 commit comments

Comments
 (0)