topgg-mcp demonstrates solid tool design with consistent naming (verb_noun pattern), comprehensive parameter descriptions, and proper schema validation via Zod. All 8 tools have clear descriptions (avg ~150 chars) and typed input schemas. However, output schemas are not documented in the visible code, responses are wrapped generically as text content without structured field definitions. Error handling is present but minimal (wrapError catches TopggApiError and generic Error, returns text only). No tool annotations (readOnlyHint/destructiveHint) despite clear risk classifications. Parameter descriptions are thorough but could benefit from constraint examples (e.g., locale codes, character limits). The project parameter is well-designed for multi-token scenarios.
Check the current vote status for a specific user on this Top.gg project.
Create an announcement for the current Top.gg project. Rate-limited to one announcement per 4 hours.
Retrieve the Top.gg project associated with the authenticated token.
Fetch a page of vote history for the current Top.gg project. For the first page, provide startDate (ISO 8601, max 1 year ago). For subsequent pages, pass the cursor returned by the previous response. An empty data array means there are no more votes.
Submit a metrics payload for the current Top.gg project. Provide the fields relevant to your project type.
Submit up to 100 metrics entries in a single batch request.
Output schemas not documented. Tools return generic text-wrapped responses without structured field definitions. LLMs cannot plan downstream calls or extract specific data fields.
No tool annotations (readOnlyHint/destructiveHint/idempotentHint) despite clear risk classifications (READ_ONLY vs WRITE). Agents cannot distinguish safe from destructive operations.
Error handling is minimal. wrapError() returns plain text; no categorization (retryable vs user-fixable vs fatal), no recovery guidance, no invalid value echoing for self-correction.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 62 | 2026-07-28+ | v2 |
Replace all registered Discord slash commands for the current Top.gg bot project.
Update the headline and/or page content of the current Top.gg project listing.
Destructive operations (update_project, register_commands, post_metrics, create_announcement) lack confirmation/dry-run support. Agents can make irreversible changes without safeguards.
Parameter descriptions lack constraint examples. E.g., 'headline' says '3-140 characters' but no example format; 'locale codes' mentioned but not enumerated or linked to valid values.