Server has 8 tools with mostly complete schemas and descriptions. Tool names follow verb_noun convention (list_, get_, switch_, verify_, query_). Descriptions are present and substantive (100-300 chars typical), exceeding the 10-char minimum. However, several critical gaps reduce the score: (1) query_* tools accept free-form string parameters (patient_id, study_description, series_description) that should be constrained or validated; (2) no enum constraints on attribute_preset despite documented values ('none', 'custom'); (3) error handling is minimal, tool_error_response exists but recovery guidance is absent from descriptions; (4) output schemas are not documented in tool descriptions (what fields does query_patients return?); (5) no pagination guidance despite query tools accepting 'limit' parameter; (6) tool descriptions lack 'when to use' context (when call query_patients vs query_studies?). Naming is clear and action-oriented. Parameter descriptions are present but lack format/constraint details (e.g., 'birth_date in YYYYMMDD format' is good, but no validation rule stated).
Get all available attribute presets for DICOM queries. This tool returns the defined attribute presets that can be used with the query_* functions. It shows which DICOM attributes are included in each preset (none, custom) for each query level.
Return the MCP manifest for schema/version contract validation.
List all configured DICOM nodes and their connection information. This tool returns information about all configured DICOM nodes in the system and shows which node is currently selected for operations. It also provides registry metadata used by downstream node resolvers.
Query patients matching the specified criteria from the DICOM node. This tool performs a DICOM C-FIND operation at the PATIENT level to find patients matching the provided search criteria. All search parameters are optional and can be combined for more specific queries.
Query series within a study from the DICOM node. This tool performs a DICOM C-FIND operation at the SERIES level to find series within a specified study. The study_instance_uid is required, and additional parameters can be used to filter the results.
query_* tools accept free-form string parameters (patient_id, study_description, series_description) without enum constraints or validation rules. LLMs may pass invalid wildcards or malformed DICOM identifiers.
Output schemas are not documented in tool descriptions. LLMs cannot predict what fields query_patients, query_studies, query_series return, forcing them to guess or make follow-up calls.
No pagination guidance despite query tools accepting 'limit' parameter. Descriptions do not explain what happens when results exceed limit, whether a cursor/offset is returned, or how to fetch next page.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | <=2025-11-25 | v2 |
Query studies matching the specified criteria from the DICOM node. This tool performs a DICOM C-FIND operation at the STUDY level to find studies matching the provided search criteria. All search parameters are optional and can be combined for more specific queries.
Switch the active DICOM node connection to a different configured node. This tool changes which DICOM node (PACS, workstation, etc.) subsequent operations will connect to. The node must be defined in the configuration file.
Verify connectivity to the DICOM node using C-ECHO. This tool performs a DICOM C-ECHO operation (similar to a network ping) to check if the currently selected DICOM node is reachable and responds correctly. This is useful to troubleshoot connection issues before attempting other operations.
Error handling is minimal. Tool descriptions lack recovery guidance (e.g., 'If connection fails, check node configuration' or 'If query returns no results, try broader criteria'). Error responses exist but are not documented.
attribute_preset parameter accepts 'none' or 'custom' but is not declared as an enum. Free-form string invites hallucinated values like 'minimal' or 'full'.