Citation-driven prior authorization appeals MCP server for healthcare AI agents
Three tools with clear healthcare domain purpose and reasonable descriptions (150-200 chars each). All tools have input schemas with Zod validation and type definitions. However, parameter descriptions lack specificity on constraints, formats, and error recovery guidance. Output schemas are not documented, LLMs cannot predict response structure. Error handling returns text responses but lacks actionable recovery steps or categorization. Tool names follow verb_noun pattern but could be more specific (e.g., 'CheckAuthStatus' vs 'get_prior_auth_status'). No tool annotations (readOnlyHint, idempotentHint) despite all being read-only operations.
Checks the prior authorization status for a patient's medication. Reads FHIR MedicationRequest and ClaimResponse resources to find denial details, including the denied medication name, denial reason, and relevant FHIR resource IDs for citations.
Generates a citation-driven prior authorization appeal letter for a denied medication. Reads the patient's FHIR record to gather clinical evidence, then uses AI to draft a professional appeal letter with inline citations to specific FHIR resources.
Generates a formatted appeal summary with all clinical evidence and citations. Returns a structured document that includes patient demographics, clinical history, denial details, and the medical necessity argument — ready for export or review.
Output schemas not documented. LLMs cannot predict response structure (fields, types, pagination). Responses are text-only; no structured object definitions visible.
Parameter descriptions lack format/constraint details. 'patientId' and 'medicationName' have no format hints (e.g., 'alphanumeric, 1-20 chars'). 'denialReason' in GenerateAppeal has no enum or valid values listed.
Error responses lack recovery guidance. Errors return plain text (e.g., 'Could not retrieve MedicationRequest resources') without suggesting next steps or categorizing as retryable/user-fixable.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 58 | 2026-07-28+ | v2 |
Tool names use PascalCase (CheckAuthStatus) instead of snake_case verb_noun convention (check_auth_status). Inconsistent with LLM naming expectations and production baselines.
No tool annotations despite all tools being read-only. Missing readOnlyHint would help agents understand safety and retry semantics.