Complete example MCP server implementation with full specification support, type safety, and production-ready architecture. Demonstrates OAuth 2.1, tools, prompts, sampling, and notifications using Reddit as a real-world integration.
This server demonstrates mixed quality. Tool definitions are present with schemas and descriptions, but many lack depth and clarity. 6 of 10 tools have descriptions under 50 characters (critical baseline violation). Parameter descriptions are sparse or missing context. Tools like 'elicitation_example', 'sampling_example', and 'structured_data_example' appear to be test/demo tools rather than production-grade integrations. The Reddit tools (get_channel, get_post, search_reddit) have reasonable schemas but descriptions are minimal. No output schemas are documented. Error handling guidance is absent. Security considerations (OAuth 2.1 mentioned in package.json but not visible in tool definitions) are not reflected in tool documentation.
Demonstrates requesting user input
Fetch subreddit information
Retrieve a specific comment
Get user notifications and messages
Retrieve a specific Reddit post
Request server to log messages for debugging
Demonstrates AI-assisted operations
6 of 10 tools have descriptions under 50 characters, violating baseline of 194 chars average for A+ tools. Examples: 'Fetch subreddit information' (27 chars), 'Retrieve a specific Reddit post' (31 chars), 'Retrieve a specific comment' (27 chars). These lack context for LLM tool selection.
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract required fields without knowing response structure. Pattern requires documented return types for 100% of A+ tools.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | <=2025-11-25 | v2 |
Search across Reddit
Demonstrates returning structured data
Demonstrates input validation with Zod schemas
4 tools are demo/test examples (elicitation_example, sampling_example, structured_data_example, validation_example) rather than production tools. Tool names use '_example' suffix and descriptions indicate they 'demonstrate' features. These should either be removed or renamed to reflect actual functionality.
Parameter descriptions lack actionable constraints. Example: 'sort' param in get_channel has enum but no description of what each value does. 'filter' in get_notifications has enum but no explanation of difference between 'all', 'unread', 'messages'. LLMs cannot reason about which to choose.
No error handling guidance documented. Tools lack recovery hints (e.g., 'If subreddit not found, try search_reddit'). No categorization of errors as retryable vs user-fixable. Agents cannot self-correct on failures.