A demonstration MCP server written in C# that exposes tools for retrieving structured user profiles, product data, and sales analytics.
Three tools with clear verb-noun naming (GetUserProfile, GetProducts, GetSalesAnalytics) and basic descriptions. All tools have input schemas with type definitions and parameter descriptions. However, descriptions are minimal (34 - 72 chars, below the 50 - 200 char baseline for LLM optimization), parameter constraints lack enums and ranges, output schemas are not documented, and no error handling guidance is provided. Tools are read-only but lack explicit idempotent annotations. No pagination support despite GetProducts accepting a count parameter.
Gets a list of structured product data with detailed information.
Gets structured sales analytics data with metrics and trends.
Gets a structured user profile with detailed information.
Descriptions are too brief (34 - 72 chars) to guide LLM tool selection. Baseline for A+ tools is 50 - 200 chars. Expand each description to explain WHAT the tool does, WHEN to use it, and what it returns.
No output schemas documented. LLMs cannot plan downstream calls or extract fields without knowing the response structure. Document the return type for each tool (e.g., UserProfile with fields Id, FirstName, Email, etc.).
GetProducts accepts 'count' parameter with no enum or range constraint. Description mentions 'default: 5, max: 10' but this is not enforced in schema. Add minItems/maxItems or explicit validation with actionable error messages.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 44 | <=2025-11-25 | v2 |
GetSalesAnalytics 'period' parameter accepts free-form string with no enum. Should constrain to known values (e.g., 'daily', 'weekly', 'monthly', 'yearly') to prevent hallucinated inputs.
No error handling guidance. Tools return mock data unconditionally. Add error responses for invalid inputs (e.g., invalid userId format, count out of range) with recovery hints.