DICOM-MCP
The DICOM-MCP server is a versatile tool that provides two main functionalities:
Note Management
Add new notes with name and content
Access stored notes via custom
note://URI schemeSummarize all stored notes (with optional style)
DICOM File Processing
Scan directories for DICOM files and organize them into series
Extract detailed metadata from DICOM files
Load DICOM series into memory by UID
Load and associate DICOM SEG files with reference images
Crop loaded DICOM images by removing boundary percentage
Allows publishing the MCP server package to PyPI for distribution to other users
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@DICOM-MCPadd a note named 'CT scan findings' with the content 'Patient shows no acute abnormalities'"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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:
Sync dependencies and update lockfile:
uv syncBuild package distributions:
uv buildThis will create source and wheel distributions in the dist/ directory.
Publish to PyPI:
uv publishNote: You'll need to set PyPI credentials via environment variables or command flags:
Token:
--tokenorUV_PUBLISH_TOKENOr username/password:
--username/UV_PUBLISH_USERNAMEand--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-mcpUpon launching, the Inspector will display a URL that you can access in your browser to begin debugging.
Available Tools
6 toolsadd-noteD
Add a new note
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| content | Yes |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| series_uid | Yes | Series UID of the loaded DICOM image | |
| boundary_percentage | No | Percentage of image to crop from each boundary (0.0-0.5) |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| dicom_file | Yes | Path to a DICOM file |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| seg_file | Yes | Path to a DICOM SEG file | |
| reference_series_uid | No | Series UID of the reference image |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| series_uid | Yes | Series UID of the DICOM series to load |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| directory | Yes | Path to directory containing DICOM files |
TDQS
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.
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.
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.
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.
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.
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.
6 tool updates
- First observed
add-note - First observed
crop-dicom-image - First observed
extract-dicom-metadata - First observed
load-dicom-seg - First observed
load-dicom-series - First observed
scan-dicom-directory
TDQS
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.
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.
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.
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
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
Model Context Protocol server for Studex tools, notifications, and profile integrations
Model Context Protocol server for todo.vu task management and time tracking.
Markdown-based note-taking with a hosted MCP server. Your notes serve you and your AI.
Google Keep-style notes app with an MCP server for AI agents to read/write notes.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA connectivity testing server that enables DICOM network operations (like C-ECHO) through Claude's Model Context Protocol, with support for node configuration management.3GNU Lesser General Public v2.1 only
- FlicenseAqualityCmaintenanceA model context protocol server that allows interaction with TriliumNext Notes, providing tools to create, search, retrieve, update, and delete notes through natural language commands.98168-
- AlicenseCqualityDmaintenanceA Model Context Protocol server that implements a simple notes system, allowing users to create, list, and summarize text notes.33ISC
- FlicenseNot gradedqualityDmaintenanceA Model Context Protocol server for managing text notes, with resources (note:// URIs), tools (create_note), and prompts (summarize_notes).-
Appeared in Searches
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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