A web application for discovering and managing MCP (Model Context Protocol) servers for marketing and SEO tools. Provides directory listing, filtering, featured/sponsored server management, and click tracking analytics.
This server exposes a REST API for managing MCP server directory listings. While it has well-structured HTTP endpoints and Pydantic models, it exhibits critical gaps in MCP tool definition quality: (1) Tool descriptions are generic and lack strategic context for LLM selection. (2) Parameter descriptions are minimal or missing. (3) No error recovery guidance is provided. (4) The tools themselves appear to be inferred from FastAPI route definitions rather than explicitly registered as MCP tools with proper metadata. (5) No tool annotations (readOnlyHint, destructiveHint, idempotentHint) are present despite clear risk patterns (WRITE, DESTRUCTIVE). (6) Output schemas are mentioned via Pydantic response_model but not documented in a way accessible to LLM reasoning. Overall, this reads as a well-engineered REST service that has not been adapted for agentic tool use.
Create a new MCP server listing
Delete a MCP server
Get overall platform analytics
Get all available categories
Get featured MCP servers for homepage
Get a specific MCP server by ID
Get click statistics for a server
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk classification. delete_server is DESTRUCTIVE but has no annotation or confirmation pattern.
Tools appear to be inferred from FastAPI routes rather than explicitly registered as MCP tools. No explicit tool registration with ToolDefinition metadata is visible in source. Schema, descriptions, and output types exist in code but may not be exposed to MCP clients.
Output schemas not documented for LLM reasoning. Tools return Pydantic models (MCPServer, ClickTracking) but these schemas are not included in tool descriptions, forcing LLMs to infer structure.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 42 | 2026-07-28+ | v2 |
| 2026-03-09 | D | 51 | - | v1 |
Get MCP servers with optional filtering
Get sponsored MCP servers
Get the root API endpoint information
Track affiliate and other clicks for analytics
Update an existing MCP server
Error handling lacks recovery guidance. HTTPException(404) messages are bare ('Server not found') with no suggestions for next steps or available alternatives.
Parameter descriptions are minimal or missing guidance on constraints, format, dependencies. Example: server_id in get_server, update_server, delete_server lack format/length constraints; category and pricing_model enums not enumerated in parameter descriptions.
No idempotency hint or retry guidance for multi-step operations. create_server does not document idempotency; agents retrying on transient failure risk duplicate entries.
Descriptions are generic and lack strategic context. Many descriptions are 30-50 chars and state only WHAT the tool does, not WHEN to use it or how it differs from related tools (e.g., get_featured_servers vs get_servers with featured_only=true).
No confirmation or dry-run pattern for destructive operations. delete_server can be called without preview or confirmation, violating pattern:confirmation-request.
track_click tool mixes analytics collection with state modification. LLM cannot distinguish whether calling this is necessary for the user's goal or a side effect. Consider whether this should be automatic (server-side tracking) rather than an explicit tool.
Missing pagination guidance for list operations. get_servers returns up to 50 items; no explanation of what happens when there are more, how to fetch the next page, or what total count is available.