A price monitoring tool that analyzes competitor prices and suggests repricing strategies while maintaining minimum cost margins
This server has a single tool with a clear action verb name but suffers from critical gaps in description quality, parameter documentation, and output schema clarity. The tool name 'monitor_prices' is appropriate and verb-forward, but the description lacks depth and the parameter documentation is minimal. No output schema is documented in the code. The implementation is simple and functional, but falls far short of production-grade MCP standards.
Monitors competitor prices and calculates suggested repricing based on average competitor price with a 15% safety margin above internal cost
Output schema is not documented. LLMs cannot know what fields to expect in the response without explicit documentation of the return structure.
Tool description (115 chars) lacks crucial context: When should this be called? What are the prerequisites? What exactly triggers repricing? Descriptions should be 10-1024 chars with clear WHAT/WHEN/WHY guidance.
Parameter 'competitor_prices' description is vague ('List of competitor prices'). No guidance on: required minimum count, handling of empty list, or expected price format/currency. Description should include constraints and dependencies.
Parameters lack explicit constraints. No minimum/maximum for prices, no format specification for SKU, no validation rules documented. Production tools must declare ranges and formats to prevent invalid LLM input.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 34 | 2026-07-28+ | v2 |
No error handling documented. What happens if competitor_prices is empty? What if internal_cost is negative? What if current_price < internal_cost? LLMs need recovery guidance for all failure paths.
Missing parameter descriptions for 'internal_cost' and 'current_price'. Names alone are ambiguous, is internal_cost per unit? Does it include overhead? What currency?
Tool logic is deterministic and idempotent (good), but this is not declared in any annotation. Tool should include a readOnlyHint annotation since monitoring does not modify state, and an idempotentHint to signal safe retries.