Skip to main content
Glama
ThalesMMS

simple-dicom-mcp

by ThalesMMS

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
LOG_LEVELNoSet LOG_LEVEL to control verbosity (e.g., DEBUG, INFO, WARNING). Default is INFO.INFO

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_dicom_nodesA

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.

Returns: Dictionary containing: - current_node: The currently selected DICOM node name - current_calling_aet: The currently selected calling AE name or AE title - current_calling_ae_title: The resolved calling AE title in use - nodes: List of node registry entries with canonical name, AE title, and optional aliases/description - nodes_legacy: Backward-compatible list of {name: description} - calling_aets: List of configured calling AE entries (if any)

Example: { "current_node": "pacs1", "current_calling_aet": "default", "current_calling_ae_title": "MCPSCU", "nodes": [ { "name": "pacs1", "ae_title": "PACS1", "aliases": ["main", "primary"], "description": "Primary PACS", }, { "name": "orthanc", "ae_title": "ORTHANC", }, ], "nodes_legacy": [ {"pacs1": "Primary PACS"}, {"orthanc": ""}, ], "calling_aets": [ { "name": "default", "ae_title": "MCPSCU", "description": "Default calling AE", } ], }

get_manifestA

Return the MCP manifest for schema/version contract validation.

switch_dicom_nodeA

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.

Args: node_name: The name of the node to switch to, must match a name in the configuration

Returns: Dictionary containing: - success: Boolean indicating if the switch was successful - message: Description of the operation result or error

Example: { "success": true, "message": "Switched to DICOM node: orthanc" }

Notes: Returns success False if the node name is not found.

verify_connectionA

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.

Returns: Dictionary containing: - success: Boolean indicating if the connection succeeded - message: Description of the connection status - details: Connection details (node, host, port, AE titles)

get_attribute_presetsA

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.

Returns: Dictionary organized by query level (patient, study, series, instance), with each level containing the attribute presets and their associated DICOM attributes.

Example: { "patient": [ "PatientID", "PatientBirthDate", "PatientSex", "PatientAge", ], "study": [ "StudyInstanceUID", "PatientID", "AccessionNumber", "StudyDescription", "PatientBirthDate", "PatientSex", "PatientAge", "StudyDate", "RequestedProcedureDescription", "RequestedProcedureCodeSequence", ], "series": [ "SeriesInstanceUID", "StudyInstanceUID", "Modality", "SeriesDescription", "BodyPartExamined", "ProtocolName", "RequestAttributesSequence", ], "instance": [ "SOPInstanceUID", "SeriesInstanceUID", ], ... }

query_patientsA

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.

Args: patient_id: Patient ID to search for, e.g., "12345678" birth_date: Patient birth date in YYYYMMDD format, e.g., "19700101" attribute_preset: Controls which attributes to include in results: - "none": No attributes, use with additional_attributes (default) - "custom": Our custom attributes additional_attributes: List of specific DICOM attributes to include beyond the preset exclude_attributes: List of DICOM attributes to exclude from the results

Returns: Dictionary containing: - success: Boolean indicating if the query completed without failure - results: List of matched patient records - dicom_statuses: List of DICOM status entries - warnings: List of warning entries - error: Optional error dictionary

Example: { "success": true, "results": [ { "PatientID": "12345", "PatientBirthDate": "19700101", "PatientSex": "M" } ], "dicom_statuses": [{"code": "0x0000", "category": "success"}], "warnings": [], "error": null }

Notes: Returns success False if the query fails.

query_studiesA

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.

Args: patient_id: Patient ID to search for (supports wildcards), e.g., "12345678" or "123" patient_sex: Patient sex (F, M, O) patient_birth_date: Patient birth date or range in DICOM format: - Single date: "19700101" - Date range: "19700101-19801231" study_date: Study date or date range in DICOM format: - Single date: "20230101" - Date range: "20230101-20230131" modality_in_study: Filter by modalities present in study, e.g., "CT" or "MR" study_description: Study description text with wildcards. IMPORTANT: Use wildcards on BOTH sides for substring matching, e.g., "CHEST" to find "CT CHEST W CONTRAST". Using "CHEST*" only matches descriptions starting with "CHEST". accession_number: Medical record accession number (supports wildcards) study_instance_uid: Unique identifier for a specific study limit: Maximum number of results to return (None = no limit) attribute_preset: Controls which attributes to include in results: - "none": No attributes, use with additional_attributes (default) - "custom": Our custom attributes additional_attributes: List of specific DICOM attributes to include beyond the preset exclude_attributes: List of DICOM attributes to exclude from the results filters: Dictionary of DICOM tag names to filter values. Use this to filter by any DICOM attribute not in the standard parameters. Supports wildcards. Example: {"RequestedProcedureDescription": "CHESTANGIO*"}

Returns: Dictionary containing query results and status metadata. The results list includes entries like: { "StudyInstanceUID": "1.2.840.113619.2.1.1.322.1600364094.412.1009", "StudyDate": "20230215", "StudyDescription": "CHEST CT", "PatientID": "12345", "ModalitiesInStudy": "CT" }

Notes: Returns success False if the query fails.

query_seriesA

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.

Args: study_instance_uid: Unique identifier for the study (required) modality: Filter by imaging modality, e.g., "CT", "MR", "US", "CR" series_number: Filter by series number series_description: Series description text with wildcards. IMPORTANT: Use wildcards on BOTH sides for substring matching, e.g., "AXIAL" to find "AXIAL 2.5MM RECON". Using "AXIAL*" only matches descriptions starting with "AXIAL". series_instance_uid: Unique identifier for a specific series limit: Maximum number of results to return (None = no limit) attribute_preset: Controls which attributes to include in results: - "none": No attributes, use with additional_attributes (default) - "custom": Our custom attributes additional_attributes: List of specific DICOM attributes to include beyond the preset exclude_attributes: List of DICOM attributes to exclude from the results

Returns: Dictionary containing query results and status metadata. The results list includes entries like: { "SeriesInstanceUID": "1.2.840.113619.2.1.1.322.1600364094.412.2005", "SeriesNumber": "2", "SeriesDescription": "AXIAL 2.5MM", "Modality": "CT", "NumberOfSeriesRelatedInstances": "120" }

Notes: Returns success False if the query fails.

query_instancesA

Query individual DICOM instances (images) within a series.

This tool performs a DICOM C-FIND operation at the IMAGE level to find individual DICOM instances within a specified series. The series_instance_uid is required, and additional parameters can be used to filter the results.

Args: series_instance_uid: Unique identifier for the series (required) instance_number: Filter by specific instance number within the series sop_instance_uid: Unique identifier for a specific instance attribute_preset: Controls which attributes to include in results: - "none": No attributes, use with additional_attributes (default) - "custom": Our custom attributes additional_attributes: List of specific DICOM attributes to include beyond the preset exclude_attributes: List of DICOM attributes to exclude from the results

Returns: Dictionary containing query results and status metadata. The results list includes entries like: { "SOPInstanceUID": "1.2.840.113619.2.1.1.322.1600364094.412.3001", "SOPClassUID": "1.2.840.10008.5.1.4.1.1.2", "InstanceNumber": "45", "ContentDate": "20230215", "ContentTime": "152245" }

Notes: Returns success False if the query fails.

Prompts

Interactive templates invoked by user choice

NameDescription
dicom_query_guidePrompt for guiding users on how to query DICOM data.

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ThalesMMS/simple-dicom-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server