Provider Probes¶
Provider probes are sanity checks only. They confirm that credentials for a persona can be transported to the provider and accepted, without ingesting any real log data.
What They Do¶
- Index probes (
provider index-check
): - No network calls.
- Verify that the persona has a username + secret for a provider.
-
Exit code
0
if present,5
otherwise. -
GET probes (
provider probe
): - Safe HTTP GET requests to provider endpoints.
- Endpoints chosen to return small bodies or explicit auth errors.
- Never POST, never upload logs, never fetch large data.
Credential Resolution¶
All credentials are resolved via:
PersonaManager
→ reads non-secret refs from the persona index (personas.json
).keyring
→ retrieves the associated secret for the persona/provider.
If either is missing, PersonaManager.require()
raises a typed error.
Usage Examples¶
# Index probes (no network)
uv run adif-mcp provider index-check --provider eqsl --persona MyEQSL
uv run adif-mcp provider index-check --provider lotw --persona MyLOTW
uv run adif-mcp provider index-check --provider qrz --persona MyQRZ
uv run adif-mcp provider index-check --provider clublog --persona MyCLUBLOG
# GET probes (network)
uv run adif-mcp provider probe --provider eqsl --persona MyEQSL --timeout 30
uv run adif-mcp provider probe --provider lotw --persona MyLOTW --timeout 30
uv run adif-mcp provider probe --provider qrz --persona MyQRZ --timeout 30
uv run adif-mcp provider probe --provider clublog --persona MyCLUBLOG --timeout 30
Sample Output
[OK] lotw GET /lotwuser/lotwreport.adi?login=k***t&password=<redacted>&qso_qslsince=2025-09-03 http=200 bytes=6284
[error] clublog GET /logsearchjson.php?call=G7VJR&log=G3TXF&year=2099&api=<redacted> net=HTTPError: HTTP Error 403: Forbidden
Code | Meaning |
---|---|
0 | Success / credentials valid. |
3 | Non-200 HTTP status. |
4 | Network error (timeout, SSL, DNS, etc.). |
5 | Persona/provider credential missing. |
2 | Usage error (bad args, JSON parse, etc.). |
Safety¶
- Redaction: all query parameters like password, api, token are replaced with
in output. - Logging: only minimal endpoint path + query (with redactions) is printed.
- No secrets: usernames masked (k***t), secrets never printed.
- Verbose mode (--verbose): prints response body if <512 bytes, with inline redaction.