QLog MCP demonstrates strong schema completeness and parameter documentation across 9 tools. All tools have descriptions (avg 180 chars, within 10-1024 baseline) and detailed input schemas with types, enums, and constraints. Tool naming follows verb_noun convention (get_, query, match_, aggregate, compare_). However, output schemas are documented only via Annotated Field descriptions rather than explicit response type schemas in the tool definitions. Error handling is minimal, no recovery guidance or actionable error messages visible in the code. Tool composition is excellent: each tool has a single responsibility, and the server instructions guide LLM sequencing. Security is sound: all tools are read-only with proper annotations. Minor gaps: descriptions could be more concise (some exceed 200 chars), and no explicit error classification or retry guidance.
Compare a filtered catalog with scoped QSOs by a semantic key field, returning matched, not_matched, or qso_only results with optional per-reference QSO statistics.
Search a QLog reference directory through semantic fields. This returns catalog facts and does not apply award, activity, or contest rules.
Compare a downloaded club membership roster with scoped QSOs, returning worked or not_worked members with optional QSO statistics.
Return capabilities supported by this QLog MCP server.
Return the log date range and the available station callsign/grid pairs, operators, and station profiles. Call this before the first QSO operation.
Describe available semantic fields and operations for QSO or catalog data. Call once per needed domain for the current server connection and reuse the result; repeat only after the server or database changes, or after a compatibility error.
Output schemas documented only via Annotated Field descriptions, not explicit response type schemas. LLMs cannot parse Field descriptions to infer response structure; explicit schema definitions are required.
No error handling or recovery guidance visible in tool implementations. Tools do not return actionable error messages (e.g., 'Invalid catalog: must be one of [...]') or classify errors as retryable vs. fatal.
Some parameter descriptions exceed 200 chars (e.g., qso.aggregate 'metrics' param), reducing clarity. Descriptions should be 50-150 chars for LLM parsing efficiency.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 64 | <=2025-11-25 | v2 |
Return aggregate statistics grouped by semantic dimensions, with optional filtering, deduplication, and post-aggregation calculations.
Compare two scoped and filtered QSO populations by a semantic key field, returning keys present in both, left only, right only, or either set.
Return individual QSOs matching a scope, optional filters, and sort order, with optional deduplication by group.
Tool names 'catalog.match_qso' and 'membership.match_qso' are similar and could cause LLM confusion. Distinguish via more explicit naming (e.g., 'catalog.match_against_qsos' vs 'membership.match_against_qsos').
No pagination guidance in tool descriptions. Tools accept limit/offset but descriptions do not explain max result sizes or when pagination is required.