Signed Model Context Protocol adapter for SafeRx Enterprise API — provides pharmacy safety checks, medication registry search, and clinical decision support
SafeRx MCP has 4 tools with complete Zod schemas and descriptions. Naming follows verb_noun convention (enterprise_*). However, descriptions are terse (10-80 chars, below the 50-200 char baseline for LLM optimization), and parameter descriptions are minimal or absent. The enterprise_safety_check tool has a complex nested schema with good constraints (minItems, maxItems, enums), but lacks guidance on when to use each domain. Output schemas are not documented, LLMs cannot predict response structure. Error handling is minimal (generic JSON.stringify on failure). No tool annotations (readOnlyHint, idempotentHint) despite all being read-only or idempotent operations.
Read the bounded Enterprise capability metadata.
Search the bilingual SafeRx registry.
Run a bounded medication safety check and preserve review and limitation states.
Read the bounded Enterprise service status.
Tool descriptions are too brief (10-80 chars vs. 50-200 char baseline). LLMs cannot determine when to select enterprise_status vs enterprise_capabilities, or what each returns.
Parameter descriptions are missing or minimal. 'q' in enterprise_registry_search has no description. 'locale' and 'limit' lack guidance on when to use them. LLMs cannot infer intent.
Output schemas are not documented. Callers cannot predict response structure (e.g., does enterprise_registry_search return an array or object? What fields?). Forces LLMs to guess.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | 2026-07-28+ | v2 |
No tool annotations despite clear semantics. enterprise_status and enterprise_capabilities are read-only; enterprise_safety_check is idempotent (idempotencyKey enforced). Missing readOnlyHint and idempotentHint annotations.
Error handling is generic. Failures return JSON.stringify(data) with no guidance on recovery. LLMs cannot distinguish retryable errors from user-fixable ones.