MCP server for Product Hunt data access, providing tools to query leaderboards, product details, categories, and search functionality
Server defines 8 tools with consistent naming (verb_noun pattern) and basic descriptions. All tools have input schemas with type definitions and parameter descriptions. However, descriptions are terse (10-60 chars, well below the 194-char baseline), output schemas are defined in code but not exposed to the LLM, and error handling is minimal. No tool annotations (readOnlyHint/destructiveHint) despite 7 read-only and 1 write tool. Parameter descriptions lack format constraints and validation guidance. Missing pagination documentation for list-returning tools.
Clear scraper cache (admin).
Get products for a category slug.
List available product categories.
Get agent-ready inspiration items from a category or leaderboard.
Get leaderboard products by period/date.
Compare multiple products side-by-side by slug.
Get product details by slug.
Tool descriptions are 10-60 characters, far below the 194-char baseline. Descriptions like 'Get leaderboard products by period/date.' lack context for LLM selection and do not explain when to use this tool vs alternatives.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). cache_clear is a write operation but unmarked; 7 read-only tools lack readOnlyHint. LLMs cannot distinguish safe from unsafe tools without explicit hints.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 53 | 2026-07-28+ | v2 |
Search products by query.
Output schemas are defined in Go structs (leaderboardGetOutput, productGetDetailOutput, etc.) but not exposed in tool registration. LLMs cannot see what fields to expect, forcing them to guess downstream field names and breaking tool chaining.
Parameter descriptions lack format constraints. 'Optional date in YYYY-MM-DD' is stated but not enforced; 'Page number (1-10)' lacks min/max validation. LLMs cannot reliably infer constraints from text alone.
Pagination tools (category_list, search_products) do not document result limits or total counts in descriptions. LLMs cannot plan for large result sets or know when to paginate.