AWS HealthImaging MCP サーバー
AWS HealthImaging 操作のための包括的な Model Context Protocol (MCP) サーバーです。データストアの自動検出により、医療画像データのライフサイクル全体を管理する 39 個のツールを提供します。
目次
機能
- 39 個の包括的な HealthImaging ツール: 医療画像データのライフサイクル全体を管理
- 削除操作: 患者データの削除およびスタディの削除ツールが「忘れられる権利/消去の権利」の目的をサポート
- データストアの自動検出: 既存のデータストアをシームレスに検索して操作
- DICOM メタデータ操作: 医療画像メタデータの抽出と分析
- イメージフレーム管理: 個々のイメージフレームの取得と処理
- 検索機能: イメージセットとスタディを横断する高度な検索
- 一括操作: 効率的な患者メタデータの更新と削除
- DICOM 階層: イメージセット内のシリーズおよびインスタンスの操作
- エラーハンドリング: 詳細なフィードバックを備えた包括的なエラーハンドリング
- 型安全性: 完全な型アノテーションと検証
クイックスタート
オプション 1: uvx(推奨)
uvx awslabs.healthimaging-mcp-server@latest
オプション 2: uv install
uv add awslabs.healthimaging-mcp-server
オプション 3: Docker
docker run -it --rm \
-e AWS_REGION=us-east-1 \
-e AWS_PROFILE=your-profile \
-v ~/.aws:/root/.aws:ro \
public.ecr.aws/awslabs/healthimaging-mcp-server:latest
MCP クライアントの設定
Amazon Q Developer CLI
{
"mcpServers": {
"healthimaging": {
"command": "uvx",
"args": ["awslabs.healthimaging-mcp-server@latest"],
"env": {
"AWS_REGION": "us-east-1",
"AWS_PROFILE": "your-profile",
"FASTMCP_LOG_LEVEL": "WARNING"
}
}
}
}
その他の MCP クライアント
Claude Desktop などの他の MCP クライアントの場合は、以下を設定に追加します。
{
"mcpServers": {
"healthimaging": {
"command": "uvx",
"args": ["awslabs.healthimaging-mcp-server@latest"],
"env": {
"AWS_REGION": "us-east-1",
"AWS_PROFILE": "your-profile"
}
}
}
}
利用可能なツール
データストア管理
list_datastores- すべての HealthImaging データストアを一覧表示(オプションでフィルタリング可能)get_datastore- 特定のデータストアに関する詳細情報を取得create_datastore- 新しい HealthImaging データストアを作成delete_datastore- データストアを削除(安全チェック付き)
イメージセット操作
search_image_sets- DICOM 条件によるイメージセットの高度な検索get_image_set- 特定のイメージセットに関する詳細情報を取得get_image_set_metadata- イメージセットの完全な DICOM メタデータを取得list_image_set_versions- イメージセットのすべてのバージョンを一覧表示update_image_set_metadata- イメージセットの DICOM メタデータを更新delete_image_set- イメージセットを削除(安全チェック付き)copy_image_set- イメージセットを別のデータストアにコピー
DICOM ジョブ管理
start_dicom_import_job- S3 からの新しい DICOM インポートジョブを開始get_dicom_import_job- インポートジョブのステータスと詳細を取得list_dicom_import_jobs- すべての DICOM インポートジョブを一覧表示(フィルタリング付き)start_dicom_export_job- S3 への新しい DICOM エクスポートジョブを開始get_dicom_export_job- エクスポートジョブのステータスと詳細を取得list_dicom_export_jobs- すべての DICOM エクスポートジョブを一覧表示(フィルタリング付き)
メタデータとフレームの操作
get_image_frame- ピクセルデータを含む個々のイメージフレームを取得
タグ付け操作
list_tags_for_resource- HealthImaging リソースのすべてのタグを一覧表示tag_resource- HealthImaging リソースにタグを追加untag_resource- HealthImaging リソースからタグを削除
高度な DICOM 操作
delete_patient_studies- 特定の患者のすべてのスタディを削除(GDPR コンプライアンス)delete_study- 特定のスタディのすべてのイメージセットを削除search_by_patient_id- 患者 ID によってすべてのイメージセットを検索search_by_study_uid- study instance UID によってイメージセットを検索search_by_series_uid- series instance UID によってイメージセットを検索get_patient_studies- 特定の患者のすべてのスタディを取得get_patient_series- 特定の患者のすべてのシリーズを取得get_study_primary_image_sets- スタディのプライマリイメージセットを取得delete_series_by_uid- series instance UID によって特定のシリーズを削除get_series_primary_image_set- シリーズのプライマリイメージセットを取得get_patient_dicomweb_studies- 患者の DICOMweb スタディレベル情報を取得delete_instance_in_study- スタディ内の特定のインスタンスを削除delete_instance_in_series- シリーズ内の特定のインスタンスを削除update_patient_study_metadata- スタディ全体の患者およびスタディのメタデータを更新
一括操作
bulk_update_patient_metadata- 患者のすべてのスタディにわたって患者メタデータを更新bulk_delete_by_criteria- 指定した条件に一致する複数のイメージセットを削除
DICOM 階層操作
remove_series_from_image_set- イメージセットから特定のシリーズを削除remove_instance_from_image_set- イメージセットから特定のインスタンスを削除
使用例
基本的な操作
# List all datastores
datastores = await list_datastores()
# Get specific datastore
datastore = await get_datastore(datastore_id="12345678901234567890123456789012")
# Search for image sets
results = await search_image_sets(
datastore_id="12345678901234567890123456789012",
search_criteria={
"filters": [
{
"values": [{"DICOMPatientId": "PATIENT123"}],
"operator": "EQUAL"
}
]
}
)
高度な検索
# Complex search with multiple filters
results = await search_image_sets(
datastore_id="12345678901234567890123456789012",
search_criteria={
"filters": [
{
"values": [{"DICOMStudyDate": "20240101"}],
"operator": "EQUAL"
},
{
"values": [{"DICOMModality": "CT"}],
"operator": "EQUAL"
}
]
},
max_results=50
)
DICOM メタデータ
# Get DICOM metadata for an image set
metadata = await get_image_set_metadata(
datastore_id="12345678901234567890123456789012",
image_set_id="98765432109876543210987654321098"
)
# Get specific image frame
frame = await get_image_frame(
datastore_id="12345678901234567890123456789012",
image_set_id="98765432109876543210987654321098",
image_frame_information={
"imageFrameId": "frame123"
}
)
認証
必要な権限
AWS 認証情報には以下の権限が必要です。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"medical-imaging:ListDatastores",
"medical-imaging:GetDatastore",
"medical-imaging:CreateDatastore",
"medical-imaging:DeleteDatastore",
"medical-imaging:ListImageSets",
"medical-imaging:GetImageSet",
"medical-imaging:SearchImageSets",
"medical-imaging:CopyImageSet",
"medical-imaging:UpdateImageSetMetadata",
"medical-imaging:DeleteImageSet",
"medical-imaging:GetImageFrame",
"medical-imaging:GetImageSetMetadata",
"medical-imaging:ListDICOMImportJobs",
"medical-imaging:GetDICOMImportJob",
"medical-imaging:StartDICOMImportJob"
],
"Resource": "*"
}
]
}
エラーハンドリング
このサーバーは包括的なエラーハンドリングを提供します。
- 検証エラー: 詳細なエラーメッセージを伴う入力検証
- AWS サービスエラー: AWS API エラーの適切な処理
- リソースが見つからない場合: 存在しないリソースに関する明確なメッセージ
- 権限エラー: アクセスの問題に対する役立つガイダンス
- レート制限: 指数バックオフによる自動再試行
トラブルシューティング
よくある問題
-
認証エラー
- AWS 認証情報が設定されているか確認する
- IAM 権限を確認する
- 正しい AWS リージョンであることを確認する
-
リソースが見つからない
- データストア/イメージセットの ID を確認する
- 指定したリージョンにリソースが存在するか確認する
- アクセス権限を確認する
-
インポートジョブの失敗
- S3 バケットの権限を確認する
- DICOM ファイル形式を確認する
- インポートジョブのログを確認する
デバッグモード
デバッグログを有効にします。
export FASTMCP_LOG_LEVEL=DEBUG
uvx awslabs.healthimaging-mcp-server@latest
開発
ローカル開発のセットアップ
- リポジトリをクローンします。
git clone https://github.com/awslabs/mcp-server-collection.git
cd mcp-server-collection/src/healthimaging-mcp-server
- 依存関係をインストールします。
uv sync --dev
- テストを実行します。
uv run python -m pytest tests/ -v
- サーバーをローカルで実行します。
uv run python -m awslabs.healthimaging_mcp_server
テスト
このサーバーには 99% のカバレッジを持つ包括的なテストが含まれています。
# Run all tests
uv run python -m pytest tests/ -v
# Run with coverage
uv run python -m pytest tests/ -v --cov=awslabs.healthimaging_mcp_server --cov-report=html
コントリビューション
コントリビューションを歓迎します。詳細については コントリビューションガイド を参照してください。
ライセンス
このプロジェクトは Apache License 2.0 の下でライセンスされています。詳細については LICENSE ファイルを参照してください。
サポート
サポートが必要な場合は、以下を行ってください。
- トラブルシューティングのセクション を確認する
- AWS HealthImaging ドキュメント を確認する
- GitHub リポジトリ で issue を作成する