Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者による説明(英語の原文)
MCP server exposing a DICOMweb DICOM archive to AI assistants via QIDO-RS and WADO-RS.
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
DICOMWEB_HOST, DICOMWEB_AUTH, DICOMWEB_USER, DICOMWEB_PASS, DICOMWEB_TOKEN, DICOMWEB_TIMEOUT「秘密」と表示された値は、あなたのアカウントの鍵です。絶対に人に教えたり、チャットに貼り付けたりしないでください。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"dicomweb": {
"command": "npx",
"args": [
"-y",
"dicomweb-mcp-server"
],
"env": {
"DICOMWEB_HOST": "your-value",
"DICOMWEB_AUTH": "your-value",
"DICOMWEB_USER": "your-value",
"DICOMWEB_PASS": "your-value",
"DICOMWEB_TOKEN": "your-value",
"DICOMWEB_TIMEOUT": "your-value"
}
}
}
}ターミナルでこれを実行します
claude mcp add dicomweb --env DICOMWEB_HOST=your-value --env DICOMWEB_AUTH=your-value --env DICOMWEB_USER=your-value --env DICOMWEB_PASS=your-value --env DICOMWEB_TOKEN=your-value --env DICOMWEB_TIMEOUT=your-value -- npx -y dicomweb-mcp-server動かす前に、空欄の値を入力してください。
プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"dicomweb": {
"command": "npx",
"args": [
"-y",
"dicomweb-mcp-server"
],
"env": {
"DICOMWEB_HOST": "your-value",
"DICOMWEB_AUTH": "your-value",
"DICOMWEB_USER": "your-value",
"DICOMWEB_PASS": "your-value",
"DICOMWEB_TOKEN": "your-value",
"DICOMWEB_TIMEOUT": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"dicomweb": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"dicomweb-mcp-server"
],
"env": {
"DICOMWEB_HOST": "your-value",
"DICOMWEB_AUTH": "your-value",
"DICOMWEB_USER": "your-value",
"DICOMWEB_PASS": "your-value",
"DICOMWEB_TOKEN": "your-value",
"DICOMWEB_TIMEOUT": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
DICOMWEB_AUTH envDICOMWEB_USER envDICOMWEB_TIMEOUT envこの設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月10日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント PantelisGeorgiadis で確認済みです
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
これはパソコンで動くため、インターネット上のエンドポイントはありません
パソコンで動き、代わりにローカルの設定を使います
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
入力が必要なもの:DICOMWEB_HOST, DICOMWEB_PASS, DICOMWEB_TOKEN
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
GitHubリポジトリの最終更新は–、最新バージョン(0.0.4)がレジストリに届いたのは6 か月前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにNode.jsも必要です。
同じカテゴリには:Spec Driven Development, Remote Desktop Commander, SDD Vault
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:↓ 週あたりのダウンロードi★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Spec Driven Development store: constitution, specs, plans and tasks your agents read and write.
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
[][npm-url] [][npm-url] [][build-url] [][license-url] [][glama-score-url] [][mcp-serverlist-url]
A Model Context Protocol (MCP) server that exposes a DICOMweb-compliant DICOM archive to AI assistants. It lets any MCP-capable client search studies, series and instances, inspect metadata, read Structured and Encapsulated PDF Reports, and render image frames — all through natural language.
The following endpoints must be supported by the DICOMweb server:
| Endpoint | Service | Used by |
|---|---|---|
GET /studies | QIDO-RS | Search studies |
GET /studies/{study}/series | QIDO-RS | Search series |
GET /studies/{study}/series/{series}/instances | QIDO-RS | Search instances, search structured reports, search encapsulated PDF reports |
GET /studies/{study}/series/{series}/instances/{instance}/metadata | WADO-RS | Get instance metadata, get structured report text, get encapsulated PDF report text |
GET /studies/{study}/series/{series}/instances/{instance}/frames/{frame}/rendered | WADO-RS | Render instance frame |
npx dicomweb-mcp-server
The server reads its configuration from a .env file located in the same directory as the script (see Configuration below).
npm install -g dicomweb-mcp-server
dicomweb-mcp-server
Create a .env file with the connection details for your DICOMweb server. Place the file next to wherever the server is executed from (or in the working directory you configure in your MCP client).
# Required
DICOMWEB_HOST=https://your-dicomweb-server/dicomweb
DICOMWEB_AUTH=basic # basic | bearer DICOMWEB_USER=username # required when DICOMWEB_AUTH=basic DICOMWEB_PASS=password # required when DICOMWEB_AUTH=basic DICOMWEB_TOKEN=your-token # required when DICOMWEB_AUTH=bearer
DICOMWEB_TIMEOUT=30000
| Variable | Required | Description |
|---|---|---|
DICOMWEB_HOST | Yes | Base URL of the DICOMweb server (used for both QIDO-RS and WADO-RS requests) |
DICOMWEB_AUTH | No | Authentication type: basic or bearer |
DICOMWEB_USER | Conditional | Username — required when DICOMWEB_AUTH=basic |
DICOMWEB_PASS | Conditional | Password — required when DICOMWEB_AUTH=basic |
DICOMWEB_TOKEN | Conditional | Bearer token — required when DICOMWEB_AUTH=bearer |
DICOMWEB_TIMEOUT | No | Fetch timeout in milliseconds. Omit to disable. |
Add the server to claude_desktop_config.json:
{
"mcpServers": { "dicomweb": { "command": "npx", "args": ["-y", "dicomweb-mcp-server"], "env": { "DICOMWEB_HOST": "https://your-dicomweb-server/dicomweb" } } } }
You can supply all environment variables directly in the env block instead of using a .env file.
Add to your VS Code settings.json or workspace .vscode/mcp.json:
{
"servers": { "dicomweb": { "type": "stdio", "command": "npx", "args": ["-y", "dicomweb-mcp-server"], "env": { "DICOMWEB_HOST": "https://your-dicomweb-server/dicomweb" } } } }
Add to .cursor/mcp.json in your project root, or to the global ~/.cursor/mcp.json:
{
"mcpServers": { "dicomweb": { "command": "npx", "args": ["-y", "dicomweb-mcp-server"], "env": { "DICOMWEB_HOST": "https://your-dicomweb-server/dicomweb" } } } }
find-studiesSearches DICOM studies on the configured DICOMweb server. Results are sorted by study date, newest first.
| Parameter | Type | Description |
|---|---|---|
query | string | Space-separated key=value filter string (see Query Syntax). Pass "" to return all studies. |
Example prompts
find-seriesSearches DICOM series within a single study. Results are sorted by series date, newest first.
| Parameter | Type | Description |
|---|---|---|
studyInstanceUid | string | Study Instance UID — obtain from find-studies |
query | string | Space-separated key=value filter string. Pass "" to return all series. |
find-instancesSearches DICOM instances within a single series. Results are sorted by Instance Number ascending.
| Parameter | Type | Description |
|---|---|---|
studyInstanceUid | string | Study Instance UID — obtain from find-studies |
seriesInstanceUid | string | Series Instance UID — obtain from find-series |
query | string | Space-separated key=value filter string. Pass "" to return all instances. |
find-encapsulated-pdf-reportsFinds all Encapsulated PDF instances in a study by looking for DOC-modality series and filtering by the Encapsulated PDF SOP Class UID (1.2.840.10008.5.1.4.1.1.104.1).
| Parameter | Type | Description |
|---|---|---|
studyInstanceUid | string | Study Instance UID — obtain from find-studies |
Example prompts
get-encapsulated-pdf-report-textRetrieves an Encapsulated PDF DICOM instance and extracts its text content.
| Parameter | Type | Description |
|---|---|---|
studyInstanceUid | string | Study Instance UID |
seriesInstanceUid | string | Series Instance UID |
sopInstanceUid | string | SOP Instance UID — obtain from find-encapsulated-pdf-reports |
Note: Text extraction only works for searchable (text-based) PDFs. PDFs that consist entirely of scanned page images without an embedded text layer will yield little or no text. In those cases, no OCR is performed.
Example prompts
find-structured-reportsFinds all Structured Report (SR) instances in a study by looking for SR-modality series and filtering by known SR SOP Class UIDs.
| Parameter | Type | Description |
|---|---|---|
studyInstanceUid | string | Study Instance UID — obtain from find-studies |
get-structured-report-textRetrieves a Structured Report instance and converts it to human-readable text.
| Parameter | Type | Description |
|---|---|---|
studyInstanceUid | string | Study Instance UID |
seriesInstanceUid | string | Series Instance UID |
sopInstanceUid | string | SOP Instance UID — obtain from find-structured-reports |
get-instance-metadataRetrieves and formats all DICOM attributes of a single instance as human-readable text. Does not retrieve pixel data.
| Parameter | Type | Description |
|---|---|---|
studyInstanceUid | string | Study Instance UID |
seriesInstanceUid | string | Series Instance UID |
sopInstanceUid | string | SOP Instance UID — obtain from find-instances |
render-instance-frameRenders a specific frame from a DICOM instance and returns it as an inline image (JPEG or PNG).
| Parameter | Type | Description |
|---|---|---|
studyInstanceUid | string | Study Instance UID |
seriesInstanceUid | string | Series Instance UID |
sopInstanceUid | string | SOP Instance UID — obtain from find-instances |
frame | integer | 1-based frame index (use 1 for single-frame instances) |
outputFormat | enum | image/jpeg or image/png |
Example prompt
The query parameter accepted by the search tools is a space-separated list of key=value pairs.
Key formats
| Format | Example |
|---|---|
| DICOM keyword name | PatientName=DOE* |
| 8-digit hex tag | 00100020=12345 |
Special keys
| Key | Description |
|---|---|
limit=N | Maximum number of results to return |
offset=N | Skip the first N results (for pagination) |
fuzzymatching=true | Enable fuzzy (phonetic) name matching |
includefield=all | Request all available DICOM attributes |
Examples
PatientName=DOE*
StudyDate=20240101-20241231 ModalitiesInStudy=CT 00100020=ABC123 limit=10 fuzzymatching=true PatientName=Smith
Wildcard * is supported in string values where the DICOMweb server allows it.
A natural conversational sequence with the MCP server looks like this:
find-studies with a patient name or date range.find-series with the Study Instance UID returned in step 1.find-instances with Study and Series UIDs from steps 1–2.get-instance-metadata for DICOM attributes, or render-instance-frame to view pixel data.find-structured-reports then get-structured-report-text for SR documents.find-encapsulated-pdf-reports then get-encapsulated-pdf-report-text for Encapsulated PDF documents.dicomweb-mcp-server is released under the MIT License.
[][glama-badge-url]