MCP server for searching and retrieving information about Indian medicines, including composition, pricing, manufacturers, and alternatives
Server has 7 well-named tools with clear action verbs (get_, search_, filter_, find_). All tools have descriptions (avg ~120 chars, within baseline 34-392). Input schemas are present with type definitions and parameter descriptions. However, output schemas are NOT documented, responses are returned as JSON strings without formal schema declarations. Error handling is minimal (returns plain text error messages without recovery guidance). No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite all tools being READ_ONLY. Parameter descriptions are adequate but lack explicit constraints (e.g., similarity_threshold 0-1 is mentioned but not formalized). Missing pagination documentation for list-returning tools (search_medicines, filter_medicines, find_alternatives).
Filter medicines by multiple criteria including prescription requirement, price range, manufacturer, and composition.
Find alternative medicines with similar composition but potentially lower price or different manufacturer.
Get detailed information about a specific active ingredient including all medicines containing it and their prices.
Get information about a specific manufacturer including their medicines, price range, and market presence.
Retrieve a medicine record by its exact Name, with optional cheaper alternatives.
Get statistical information about medicines in the database including counts by category, price distribution, and top manufacturers.
Search for medicines by name, composition, manufacturer, or price range with fuzzy matching and filtering options.
Output schemas not documented. Tools return JSON strings without formal schema declarations. LLMs cannot predict response structure for downstream planning.
No tool annotations despite all tools being READ_ONLY. Missing readOnlyHint declarations prevent agents from understanding safety properties.
Pagination not documented for list-returning tools. search_medicines, filter_medicines, find_alternatives accept max_results but no offset/cursor. Large result sets risk context window exhaustion.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 48 | 2026-07-28+ | v2 |
Error responses lack recovery guidance. 'Medicine named X not found' does not suggest calling search_medicines(). Agents cannot self-correct without explicit hints.
Parameter constraints not formalized. similarity_threshold described as '0-1' in text but no JSON Schema min/max. LLMs may pass invalid values (e.g., 1.5).