Histopathology Annotation MCP について
Histopathology Annotation MCP は、AI アシスタントを Image Label に接続し、病理画像などのアノテーションを支援します。GPU 不要で、核検出、セグメンテーション、品質確認、編集、データセットのエクスポートに対応します。
主な機能
- 01H&E の核を自動検出
- 02SAM と MedSAM による分割
- 03スライド品質チェック
- 04染色カラーの正規化
- 05アノテーション編集と出力
活用シーン
- 01H&E 画像から学習データを作成
- 02枠や点を基に領域を輪郭化
- 03アノテーション前にスライド品質を確認
- 04QuPath、COCO、YOLO 形式で出力
MCP 対応
MCP サーバーは、Image Label の画像アップロード、アノテーション、病理解析、エクスポートのツールを MCP クライアントに公開します。stdio と Streamable HTTP に対応します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
uvx label-image-mcpLABEL_USERNAMEImage Label account username; leave unset to work as a guest (images kept 7 days, no whole slides)LABEL_PASSWORDシークレットImage Label account password (only with LABEL_USERNAME)LABEL_API_URLAPI base URLローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
8掲載時のツール一覧 · 1 日前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| category | any | いいえ |
詳細
病理組織アノテーション MCP
病理組織スライドを含む画像のアノテーション。H&E スライドからトレーニングデータまでを一度の会話で作成できます。核、輪郭、スライドの QC を行い、QuPath、COCO、YOLO にエクスポートできます。GPU は不要です。
Image Label で病理組織などの画像にアノテーションを付けるための MCP サーバーです。Image Label は無料のアノテーションツールです。Claude などの AI アシスタントから、画像のアップロード、H&E スライド上のすべての核の自動輪郭描画(StarDist)、大まかなボックスからの領域のトレース(Segment Anything、医療画像には MedSAM)、スライド品質の確認、染色カラーの正規化、アノテーションの整理、トレーニングデータの COCO JSON、YOLO ラベル、YOLO クラス、QuPath GeoJSON 形式でのエクスポートを行えます。LangGraph エージェントも含まれています。
ブラウザーで試す: https://agent.sachin-kale.com/#annotate:スライドをアップロードしてアノテーションを付けたり、核を検出したり、品質を確認したり、AI による解釈を取得したりできます。セットアップは不要です。
label-image-mcp(PyPI)および io.github.sachinbkale27/label-image-mcp(MCP Registry)として公開されています。
ユースケースとセットアップガイド:https://labels.sachin-kale.com/mcp
LangGraph agent (label-image-agent) Claude Desktop / Claude Code / any MCP client
│ langchain-mcp-adapters │
└──────────────┬──────────────────────┘
▼
label-image-mcp (stdio or HTTP)
│
▼
Image Label API (/api/images ...)
アカウント
ツールを使用するには Image Label アカウントが必要です(こちらから申請)。ツールが閲覧、変更、アップロードできるのは、そのアカウントに保存された画像のみです。アカウントがない場合、画像は表示されません。ブラウザー内だけに保存された作業は、ツールからは見えません。
インストール
Claude Desktop: 最新リリースから label-image-mcp.mcpb をダウンロードして開き、求められたらユーザー名とパスワードを入力します。
Claude Code:
claude mcp add label-image -e LABEL_USERNAME=... -e LABEL_PASSWORD=... -- uvx label-image-mcp
任意の MCP クライアント(uv が必要です):
{
"mcpServers": {
"label-image": {
"command": "uvx",
"args": ["label-image-mcp"],
"env": { "LABEL_USERNAME": "...", "LABEL_PASSWORD": "..." }
}
}
}
エージェントスキル
skills/label-image/SKILL.md では、エージェントがこれらのツールをいつ、どのように使用するかを説明しています。エクスポートに含まれるアノテーションの種類、安全にラベルを整理する方法、画像ごとのエクスポートを一貫したクラス ID を持つ単一の COCO または YOLO データセットに統合する方法(同梱の scripts/merge_exports.py)を学べます。オープンな SKILL.md 形式に準拠しているため、Claude Code や、スキルに対応するその他のエージェントで動作します。
# Claude Code: install for all your projects (or copy into a project's .claude/skills/)
git clone --depth 1 https://github.com/sachinbkale27/label-image-mcp /tmp/label-image-mcp
mkdir -p ~/.claude/skills && cp -r /tmp/label-image-mcp/skills/label-image ~/.claude/skills/
設定
| 変数 | デフォルト | 用途 |
|---|---|---|
LABEL_USERNAME / LABEL_PASSWORD | 未設定 | アカウント認証情報です。設定しない場合、ツールに画像は表示されません |
LABEL_API_URL | https://labels.sachin-kale.com/api | 別のデプロイまたは sam local start-api 用の API ベース URL |
ツール
| ツール | 機能 |
|---|---|
list_images(category?) | 注釈数を含む画像の概要 |
get_image(image_id) | メタデータ、注釈、署名付き閲覧 URL |
update_image_metadata(image_id, name?, category?, sub_category?, description?) | 画像の詳細を編集 |
add_annotations(image_id, annotations) | ピン、ポリゴン、円、長方形、矢印を追加 |
replace_annotations(image_id, annotations) | すべての注釈を置き換え |
remove_annotations(image_id, annotation_ids) | ID で注釈を削除 |
upload_image(path, name?, category?, description?) | ローカルの画像ファイルをアップロード |
upload_image_from_url(url, name?, category?, description?) | https URL から画像をダウンロード(最大 20 MB)してアップロード |
segment_objects(image_id, objects, model?, save?) | 大まかなボックス、またはオブジェクトごとに 1 点を指定して Segment Anything で輪郭を正確にトレースし、ポリゴンとして保存します。model:sam(写真)または medsam(CT、MRI、X 線、超音波、内視鏡、病理画像。ボックスのみ) |
warm_up_segmentation(model?) | セグメンテーションモデルの読み込みを待たずに開始します(しばらく使用されていない状態からは、読み込みに 1、2 分かかります) |
detect_nuclei(image_id, max_nuclei?, mark_enlarged?, replace_previous?, save?) | StarDist を使って H&E 画像内のすべての核を自動的に検出して輪郭を描きます(ボックス不要)。件数、密度、面積の中央値、サイズのばらつきを返します。面積が中央値の 2.5 倍を超える核には enlarged nucleus のラベルが付きます |
normalize_stain(image_id) | Macenko 染色正規化:標準的な H&E 色にしたコピーを新しい画像として保存します |
check_image_quality(image_id) | HistoQC 形式のチェック(組織の割合、ぼけ、マーカーペン、露出、染色の薄さ)を行い、判定と警告を返します |
warm_up_pathology() | 核モデルの読み込みを待たずに開始します |
export_annotations(image_id, format) | COCO JSON または YOLO 形式で、ウェブアプリのエクスポートと同じ出力を返します。または qupath を指定すると、QuPath の File > Import objects 用の GeoJSON を返します(StarDist の核は検出結果として読み込まれます) |
画像を削除するツールは意図的に用意していません。
segment_objects は API の POST /images/{id}/segment を呼び出し、Lambda コンテナ内の backend/segment で SAM
(facebook/sam-vit-base) または MedSAM
(wanglab/medsam-vit-base) を実行します。しばらく使用されていない状態からはモデルの起動に時間がかかるため、その後クライアントが再試行します。
結果は研究およびデータセット構築用であり、診断用ではありません。
病理組織学ツールは POST /images/{id}/pathology を呼び出し、2 つ目の Lambda コンテナ(backend/pathology)で
StarDist(BSD-3。事前学習済みの 2D_versatile_he モデルは、一部が非商用条件の公開 H&E データセットで学習されているため、商用利用の前に各条件を確認してください)、
torchstain(MIT)、OpenCV の画質指標を実行します。顕微鏡写真は倍率がさまざまなため、detect_nuclei は画像を 2 倍と 3 倍に拡大しても試し、最も多くの核を検出できた倍率を採用します。
HTTP モード
label-image-mcp --http [--host 127.0.0.1] [--port 8765] は http://HOST:PORT/mcp で Streamable HTTP を提供します。複数のクライアントで 1 つの実行中のサーバーを共有できます。
claude mcp add --transport http label-image http://127.0.0.1:8765/mcp
ホストモード
label-image-mcp --http --hosted --host 0.0.0.0 は、たとえば Lambda Web Adapter 経由で AWS Lambda の背後に置いてサーバーをリモート実行するためのモードです。セッション状態は保持せず、JSON で応答します。また、すべてのリクエストに Authorization: Bearer <token> が必要です。トークンが設定されていない場合、すべてのリクエストを拒否します。
| 変数 | 用途 |
|---|---|
MCP_AUTH_TOKEN | クライアントが送信する必要があるベアラートークン |
LABEL_CREDENTIALS_SECRET | 上記の変数の代わりに使用する、username、password、mcp_token を含む AWS Secrets Manager のシークレット |
LABEL_UPLOAD_URL_HOSTS | upload_image_from_url がダウンロードできるホストをカンマ区切りで指定します(ホストモードでの使用を推奨) |
LangGraph エージェント
これらのツールを使用するターミナルチャットエージェントです。グラフは START → agent ⇄ tools で、セッション中は会話のメモリが保持されます。
uv tool install "label-image-mcp[agent]"
export ANTHROPIC_API_KEY=... LABEL_USERNAME=... LABEL_PASSWORD=...
label-image-agent
| 変数 | デフォルト | 用途 |
|---|---|---|
LABEL_AGENT_MODEL | anthropic:claude-sonnet-5-5 | provider:model 形式のモデルです。例:openai:gpt-4.1 または ollama:llama3.1(langchain-openai / langchain-ollama をインストールしてください) |
LABEL_MCP_URL | 未設定 | サーバーを起動する代わりに、稼働中の HTTP サーバーに接続します |
開発
uv sync --extra agent
uv run pytest
npx @modelcontextprotocol/inspector uv run label-image-mcp
Image Label アプリのリポジトリでは、./start.sh を実行すると、Web アプリと並行してこのサーバーが HTTP モードで起動します。
認証情報は mcp-server/.env から読み込みます。リリースについては PUBLISHING.md を参照してください。
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。