llm-tools/mcps/dicom_mcp/docs/CAPABILITIES.md
Gregory Gauthier 83ec950df7 first commit
2026-04-08 12:11:04 +01:00

26 lines
6.8 KiB
Markdown
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Claude DICOM-MCP Capabilities List
| # | What I can do | Module | Possible without the MCP? |
| --- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------- |---------------------------------------------------------------------------------------------------|
| 1 | **Find DICOM files** in a folder, including subfolders, and tell you what's in them (series, sequence type, manufacturer). Can also just give a count. | `dicom_list_files` | ❌ No — I could list files with bash, but I couldn't read DICOM headers to identify what they are. |
| 2 | **Find Dixon sequences** in a folder and identify which images are water, fat, in-phase, and out-phase. | `dicom_find_dixon_series` | ❌ No — requires both DICOM parsing and domain-specific sequence identification logic. |
| 3 | **Read the metadata** (headers) from a single DICOM file — patient info, study details, scanner settings, geometry, etc. Can also resolve Philips private tags. | `dicom_get_metadata` | ❌ No — DICOM is a binary format. I can't read it with standard text tools. |
| 4 | **Compare headers side-by-side** across 210 DICOM files, highlighting what's different. | `dicom_compare_headers` | ❌ No — same reason; I can't parse the binary headers. |
| 5 | **Query any DICOM tag** across all files in a directory, optionally grouped by another tag (e.g. "show me all echo times, grouped by series"). | `dicom_query` | ❌ No. |
| 6 | **Summarise a whole directory** — give a high-level overview of what vendors, scanners, sequences, and series are present, with file counts. | `dicom_summarize_directory` | ❌ No. |
| 7 | **Validate scan parameters** (TR, TE, flip angle, etc.) against expected values for a given sequence. | `dicom_validate_sequence` | ❌ No — can't extract the parameters to validate. |
| 8 | **Analyse a full series** for consistency — check that all files in a series have matching parameters and that the series is complete. | `dicom_analyze_series` | ❌ No. |
| 9 | **Search for files** matching specific criteria using a filter language — text matching, numeric comparisons, or presence checks on any tag. | `dicom_search` | ❌ No. |
| 10 | **Read Philips private tags** by DD number and element offset, or list all private creator blocks in a file. | `dicom_query_philips_private` | ❌ No — these are vendor-specific proprietary tags buried in private DICOM groups. |
| 11 | **Extract pixel statistics** from an image — min, max, mean, standard deviation, percentiles, and optionally a histogram. Can focus on a specific rectangular region. | `dicom_read_pixels` | ❌ No — pixel data is encoded in the DICOM binary. |
| 12 | **Compute signal-to-noise ratio** by placing two regions of interest (signal and noise) on an image. | `dicom_compute_snr` | ❌ No. |
| 13 | **Render a DICOM image to PNG** with adjustable windowing and optional ROI overlays — this is how I showed you those three images. | `dicom_render_image` | ❌ No — I have no way to decode DICOM pixel data and produce a viewable image. |
| 14 | **Dump the full DICOM tree** — show the entire hierarchical structure of a file including nested sequences, with configurable depth. | `dicom_dump_tree` | ❌ No. |
| 15 | **Compare UID sets** between two directories — find which series/studies/instances are shared, missing, or extra. | `dicom_compare_uids` | ❌ No. |
| 16 | **Verify segmentation references** — check that segmentation DICOM files correctly point back to their source images. | `dicom_verify_segmentations` | ❌ No. |
| 17 | **Analyse inversion times** from MOLLI/NOLLI T1 mapping sequences — extract TI values across vendors (handling Philips private tags automatically), flag gaps, and show the acquisition order. | `dicom_analyze_ti` | ❌ No. |
All 17 modules live under `dicom_mcp/tools/` and are registered via the `@mcp.tool()` decorator at server startup. **In short: none of these capabilities exist without the MCP.** DICOM is a complex binary medical imaging format. Without the MCP, I can see that `.dcm` files exist, but I can't open, read, interpret, or visualise any of them. The MCP turns me from "completely DICOM-blind" into something that can meaningfully inspect, compare, and analyse medical imaging data across vendors.