Skip to main content
Glama

DICOM-MCP MCP server

MCP to work with DICOM images

Components

Resources

The server implements a simple note storage system with:

  • Custom note:// URI scheme for accessing individual notes

  • Each note resource has a name, description and text/plain mimetype

Prompts

The server provides a single prompt:

  • summarize-notes: Creates summaries of all stored notes

    • Optional "style" argument to control detail level (brief/detailed)

    • Generates prompt combining all current notes with style preference

Tools

The server implements one tool:

  • add-note: Adds a new note to the server

    • Takes "name" and "content" as required string arguments

    • Updates server state and notifies clients of resource changes

Related MCP server: TriliumNext Notes' MCP Server

Configuration

[TODO: Add configuration details specific to your implementation]

Quickstart

Install

Claude Desktop

On MacOS: ~/Library/Application\ Support/Claude/claude_desktop_config.json On Windows: %APPDATA%/Claude/claude_desktop_config.json

Development

Building and Publishing

To prepare the package for distribution:

  1. Sync dependencies and update lockfile:

uv sync
  1. Build package distributions:

uv build

This will create source and wheel distributions in the dist/ directory.

  1. Publish to PyPI:

uv publish

Note: You'll need to set PyPI credentials via environment variables or command flags:

  • Token: --token or UV_PUBLISH_TOKEN

  • Or username/password: --username/UV_PUBLISH_USERNAME and --password/UV_PUBLISH_PASSWORD

Debugging

Since MCP servers run over stdio, debugging can be challenging. For the best debugging experience, we strongly recommend using the MCP Inspector.

You can launch the MCP Inspector via npm with this command:

npx @modelcontextprotocol/inspector uv --directory /Users/shaunporwal/Documents/GitHub/projects/DICOM-MCP run dicom-mcp

Upon launching, the Inspector will display a URL that you can access in your browser to begin debugging.

Available Tools

6 tools
add-noteD

Add a new note

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
contentYes

TDQS

D1.6/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. 'Add a new note' implies a write operation but doesn't specify permissions, side effects, or response format. It lacks details on whether this is destructive, requires authentication, or has rate limits, making it inadequate for a mutation tool with zero annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with a single sentence 'Add a new note', which is appropriately sized for a simple tool. It's front-loaded and wastes no words, though it could benefit from more detail. The brevity is efficient but leads to under-specification rather than true conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (a write operation with two parameters), lack of annotations, no output schema, and 0% schema description coverage, the description is incomplete. It fails to explain the tool's role in the DICOM context hinted by sibling tools, doesn't detail parameters or behavior, and leaves critical gaps for the agent to operate effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds no parameter semantics beyond what the input schema provides. With 0% schema description coverage and two required parameters ('name' and 'content'), the description doesn't explain what these parameters represent, their formats, or constraints. For example, it doesn't clarify if 'name' is a filename, title, or identifier, or what 'content' should contain.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Add a new note' is a tautology that restates the tool name 'add-note' with minimal elaboration. It specifies the verb 'add' and resource 'note' but lacks any distinguishing details about what kind of note, where it's added, or its purpose. Compared to sibling tools like 'crop-dicom-image' or 'extract-dicom-metadata', this provides no differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. There are no mentions of prerequisites, context, or exclusions. Given the sibling tools are all DICOM-related (e.g., 'crop-dicom-image', 'load-dicom-series'), it's unclear if this tool is part of the same DICOM workflow or serves a different purpose, leaving the agent with no usage direction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

crop-dicom-imageB

Crop a loaded DICOM image by removing boundary percentage

ParametersJSON Schema
NameRequiredDescriptionDefault
series_uidYesSeries UID of the loaded DICOM image
boundary_percentageNoPercentage of image to crop from each boundary (0.0-0.5)

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. While it states the tool performs a crop operation, it fails to describe key behavioral traits: whether this is a destructive modification to the original image or creates a new version, what happens if the boundary percentage is invalid (e.g., out of range), or any performance considerations (e.g., processing time for large images). This leaves significant gaps in understanding the tool's effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It is front-loaded with the core action ('Crop a loaded DICOM image') and includes essential detail ('by removing boundary percentage') in a compact form. Every part of the sentence contributes meaning, making it highly concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (image cropping with two parameters) and the absence of annotations and output schema, the description is partially complete. It clearly defines the action but lacks details on behavioral outcomes, error handling, and output format. While the schema covers parameters well, the description does not compensate for missing annotation and output information, leaving the agent with incomplete context for safe and effective use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, with clear documentation for both parameters ('series_uid' and 'boundary_percentage'), including the range for the latter. The description adds minimal value beyond the schema by implying the crop applies uniformly to all boundaries, but it does not elaborate on parameter interactions or provide examples. Given the high schema coverage, a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('crop') and target resource ('a loaded DICOM image'), with additional detail about the method ('by removing boundary percentage'). It distinguishes itself from sibling tools like 'extract-dicom-metadata' or 'load-dicom-series' by focusing on image manipulation rather than metadata extraction or loading operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites (e.g., that the DICOM image must already be loaded via another tool), nor does it specify scenarios where cropping is appropriate (e.g., for removing artifacts or focusing on regions of interest). Without such context, the agent lacks direction on optimal usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

extract-dicom-metadataC

Extract detailed metadata from a DICOM file

ParametersJSON Schema
NameRequiredDescriptionDefault
dicom_fileYesPath to a DICOM file

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool extracts metadata but doesn't describe what 'detailed metadata' includes (e.g., patient info, study details, image parameters), potential errors (e.g., invalid file paths, corrupted DICOM data), or performance aspects (e.g., speed, memory usage). This leaves significant gaps for a tool that likely returns complex data.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's front-loaded with the core action and resource, making it easy to parse. Every part of the sentence contributes essential information, achieving optimal conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of DICOM metadata extraction and the lack of annotations and output schema, the description is incomplete. It doesn't explain what 'detailed metadata' entails, the format of the output (e.g., JSON, structured data), or error handling. For a tool with no structured output documentation, this leaves the agent with insufficient context to understand the full behavior and results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with the single parameter 'dicom_file' documented as 'Path to a DICOM file' in the schema. The description doesn't add any additional meaning beyond this (e.g., file format requirements, path resolution rules). Given the high schema coverage, the baseline score of 3 is appropriate as the schema handles the parameter documentation adequately.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('extract') and target resource ('detailed metadata from a DICOM file'), making the purpose immediately understandable. It doesn't explicitly differentiate from sibling tools like 'scan-dicom-directory' or 'load-dicom-series', but the focus on metadata extraction is specific enough to avoid confusion with those operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing a valid DICOM file), exclusions (e.g., not for non-DICOM files), or comparisons to siblings like 'scan-dicom-directory' for batch processing or 'load-dicom-seg' for segmentation data. Usage is implied but not explicitly defined.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

load-dicom-segC

Load a DICOM SEG file and associate it with a reference image

ParametersJSON Schema
NameRequiredDescriptionDefault
seg_fileYesPath to a DICOM SEG file
reference_series_uidNoSeries UID of the reference image

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions loading and association but fails to detail critical aspects like required permissions, whether the operation is read-only or modifies data, error handling, or output format. This leaves significant gaps in understanding the tool's behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence that efficiently conveys the core action without unnecessary details. It is front-loaded and wastes no words, making it highly concise and well-structured for quick understanding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of handling DICOM files, no annotations, and no output schema, the description is insufficient. It does not cover behavioral traits, error cases, or what the tool returns, leaving the agent with incomplete information for proper invocation and handling.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the input schema already documents both parameters ('seg_file' and 'reference_series_uid') adequately. The description adds no additional meaning beyond what the schema provides, such as explaining the association process or parameter interactions, meeting the baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Load a DICOM SEG file') and the resource ('associate it with a reference image'), making the purpose specific and understandable. However, it does not explicitly differentiate from sibling tools like 'load-dicom-series' or 'extract-dicom-metadata', which could handle related DICOM operations, so it falls short of a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, such as 'load-dicom-series' for general loading or 'extract-dicom-metadata' for metadata extraction. It lacks context on prerequisites, exclusions, or specific scenarios, leaving usage unclear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

load-dicom-seriesC

Load a DICOM series into memory for processing

ParametersJSON Schema
NameRequiredDescriptionDefault
series_uidYesSeries UID of the DICOM series to load

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden but only states the action without behavioral details. It doesn't disclose memory implications, performance characteristics, error conditions, or what 'processing' entails, leaving significant gaps for a tool that loads data.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence with zero waste. It's front-loaded with the core action and purpose, making it easy to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no annotations and no output schema, the description is incomplete. It lacks details on what 'into memory' implies (e.g., memory limits, format), what 'processing' means, or expected outcomes, leaving the agent with insufficient context for effective use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents the 'series_uid' parameter. The description adds no additional meaning beyond implying the UID identifies the series to load, aligning with the schema but not enhancing it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Load') and resource ('a DICOM series'), specifying it's for processing. It distinguishes from siblings like 'load-dicom-seg' by focusing on series rather than segmentation, but doesn't explicitly contrast with 'extract-dicom-metadata' or 'scan-dicom-directory'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like 'extract-dicom-metadata' or 'load-dicom-seg'. The description implies usage for processing but doesn't specify prerequisites, such as needing the series to be available from a prior scan.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

scan-dicom-directoryB

Scan a directory for DICOM files and organize them into series

ParametersJSON Schema
NameRequiredDescriptionDefault
directoryYesPath to directory containing DICOM files

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden but lacks behavioral details. It doesn't disclose what 'organize into series' entails (e.g., grouping by study/patient, output format), potential side effects (e.g., file system access), error handling, or performance considerations (e.g., large directories).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence with zero waste. It's front-loaded with the core action and outcome, making it easy to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no annotations, no output schema, and behavioral complexity (scanning and organizing files), the description is incomplete. It omits critical details like return format (e.g., list of series, structured data), error cases, and how organization works, leaving gaps for an AI agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents the single 'directory' parameter. The description adds no additional meaning beyond implying the directory contains DICOM files, which is redundant with the schema's description. Baseline 3 is appropriate when schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('scan'), target resource ('directory for DICOM files'), and outcome ('organize them into series'). It distinguishes from siblings like 'extract-dicom-metadata' (metadata extraction) and 'load-dicom-series' (loading already organized series).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives is provided. It doesn't mention prerequisites (e.g., directory must exist, files must be DICOM format) or contrast with siblings like 'load-dicom-series' (for pre-organized series). Usage is implied but not articulated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 6 tool updates
    • First observedadd-note
    • First observedcrop-dicom-image
    • First observedextract-dicom-metadata
    • First observedload-dicom-seg
    • First observedload-dicom-series
    • First observedscan-dicom-directory

TDQS

B3/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: adding notes, cropping images, extracting metadata, loading segmentation files, loading series, and scanning directories. There is no overlap in functionality, making it easy for an agent to select the right tool for each task.

Naming Consistency4/5

The tools follow a consistent verb-noun pattern with hyphens (e.g., add-note, crop-dicom-image), except for 'scan-dicom-directory' which uses 'scan' instead of 'load' or similar, but this minor deviation doesn't break overall readability. The naming is predictable and easy to understand.

Tool Count5/5

With 6 tools, this server is well-scoped for DICOM processing, covering key operations like loading, scanning, extracting metadata, cropping, and adding notes. Each tool earns its place without feeling too sparse or bloated, fitting typical use cases in this domain.

Completeness4/5

The toolset covers core DICOM workflows including loading, scanning, metadata extraction, and basic image manipulation. Minor gaps exist, such as the lack of tools for saving or exporting processed DICOM files, but agents can likely work around this with the provided operations.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    A connectivity testing server that enables DICOM network operations (like C-ECHO) through Claude's Model Context Protocol, with support for node configuration management.
    3
    GNU Lesser General Public v2.1 only
  • F
    license
    Not graded
    quality
    D
    maintenance
    A Model Context Protocol server for managing text notes, with resources (note:// URIs), tools (create_note), and prompts (summarize_notes).
    -

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/shaunporwal/DICOM-MCP'

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