CPR decision-support assistant implementing BLS workflows
Server has 22 tools with basic schemas and descriptions, but significant gaps limit production readiness. All tools have descriptions (10-150 chars, mostly adequate) and input schemas with type info. However, output schemas are entirely undocumented, LLMs cannot predict return structures for chaining. Parameter descriptions are minimal (often just restating the name). No error handling guidance, no recovery paths, and no indication of which tools are idempotent or destructive. Tool naming is generally clear (verb_noun pattern), but composition issues exist: tools like 'submit_structured_answer' + 'advance_algorithm' + 'complete_timer' + 'resume_algorithm' suggest a stateful session model that should be better abstracted. No security annotations, no permission gates, and session_id parameters are passed as strings without validation hints. Baseline: 549 production tools average 18-char names (this server: 15-27 chars, acceptable) and 194-char descriptions (this server: 50-150 chars, below average but present). 94% of A+ tools have docstrings (this server: 100% have tool descriptions, but 0% have output schema docs). This is a C-grade server: noticeable gaps, descriptions present but minimal, schemas incomplete.
Advance through automatic runtime steps until user input or waiting is needed.
Enter question mode and return the locally built RAG context payload.
Assess whether the structured fact map matches a supported algorithm schema.
Complete one timer, step the runtime when appropriate, and return the updated state.
Detect the emergency situation from natural-language user input.
End one quiz session and return the summary.
Generate and serialize one runtime export for a stored session.
No output schemas documented for any tool. LLMs cannot predict return structures, breaking tool chaining and forcing discovery calls.
No error handling guidance. Tools do not indicate what errors are retryable, user-fixable, or fatal. No recovery paths provided.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | 2026-07-28+ | v2 |
Find algorithms whose metadata situation matches the detected situation.
Return the current question for one session.
Return the current presented runtime state for one stored session.
Return current quiz progress.
Interpret one natural-language intake turn into structured fact updates.
Interpret one natural-language prompt answer into a structured response.
Return the supported algorithm entry schemas.
Return the supported intake parameter specifications.
Return available quiz-set summaries.
Exit question-answering mode and return the current presented state.
Select or clarify the next algorithm-entry fact for one detected situation.
Load one algorithm and create one stored runtime session.
Create one quiz session and render the first question.
Score one answer and advance the quiz when appropriate.
Record one structured answer, run one step, and return the updated state.
Stateful session model (session_id parameters) lacks idempotency hints and confirmation patterns. Destructive operations (advance_algorithm, submit_answer) have no dry-run or confirmation step.
Parameter descriptions are minimal (often 20-50 chars, below 72-char baseline). Many lack format hints, constraints, or dependency documentation.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). LLMs cannot distinguish safe reads from destructive writes without explicit hints.