FastMCP server orchestrating HomeCare care gap surge workflows.
The server demonstrates solid HTTP infrastructure with FastMCP and proper tool registration. All 6 tools have descriptions and visible schemas with JSON structure. However, there are significant gaps in parameter validation, error handling guidance, and descriptions lack the specificity needed for optimal LLM selection. Tool names follow verb_noun conventions reasonably well. The main weakness is parameter descriptions that lack validation hints, range constraints, and dependencies. Most tools default to reasonable values (limit=6, priority='HIGH') but some parameter descriptions are generic. Output schemas are documented via structuredContent but lack explicit schema documentation in the description text. Security is handled well (no credentials exposed) and tool annotations are present for UI integration.
Create a handoff package for the care gap closure agent to reach out, notify clinicians, and schedule appointments.
Request temporary staffing from Fusion HCM to handle the care gap surge.
List patients needing immediate attention from the HAIDP risk agent.
Generate referral packets for third-party home care partners.
Summarize the full narrative flow across agents for the care gap surge.
Build a referral payload for the LS Suite trial matching agent.
Parameter descriptions lack validation constraints and ranges. For example, 'limit' parameters lack explicit statement of the 1-10 range in the description text (only in JSON schema). LLMs cannot reliably read JSON Schema constraints, they rely on description text. The description 'Maximum number of patients to list (default 6, max 10)' is good but inconsistent across tools.
Tool descriptions do not explain WHEN to use each tool vs. similar tools. For example, 'care_gap_closure_handoff' vs 'trial_matching_handoff' both accept patient_ids and create handoffs, but the description does not distinguish which workflow to invoke in different scenarios. LLMs need explicit guidance on tool selection criteria.
No error handling guidance in tool descriptions. Tools accept optional patient_ids but do not document what happens if invalid IDs are provided, if no patients match the filter, or if the handoff fails. Error responses should guide the LLM on recovery steps (e.g., 'Try list_attention_patients() to discover valid patient IDs').
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 58 | 2026-07-28+ | v2 |
| 2026-03-09 | D | 56 | - | v1 |
'requested_roles' parameter in fusion_hcm_staffing_request lacks an enum constraint. The description says 'Optional list of requested staff roles (default: RN, Care Coordinator, Scheduler)' but does not specify all valid role values. LLMs will hallucinate invalid role names without an explicit enum.
'partners' parameter in partner_home_care_referrals lacks enum constraint. Description lists defaults ('HealthBridge, NeighborCare, HomeFirst') but does not declare those as the complete valid set. LLMs may invent partner names.
'priority' parameter in care_gap_closure_handoff defaults to 'HIGH' but no enum constraint is visible. Valid values are not documented. Should declare enum: ['LOW', 'MEDIUM', 'HIGH', 'URGENT'] or equivalent.
Output schema documentation is implicit (visible only in code via structuredContent and _meta). LLMs benefit from explicit schema documentation in the description: 'Returns: {generated_at (ISO 8601), patients (array of {patient_id, name, age, risk_score, primary_condition, care_gap_flags, region}), summary (count, avg_risk)}'. Without this, LLMs must infer structure from examples.
No documentation of dependencies between patient_ids parameter and actual patient data. If patient_ids filter returns no matches, what does the tool return? Empty result? Error? The descriptions should clarify: 'If patient_ids are provided but no matches found, returns empty patients array with count=0.'