mcpField
M
MCP Server × PostgreSQL on MIMIC‑IV

MCP Server × PostgreSQL on MIMIC‑IV

ローカル
github.com/ambakickデータベース179 週間前に更新

MCP Server × PostgreSQL on MIMIC‑IV について

MIMIC-IVの臨床分析を対象に、直接SQLとMCP経由のPostgreSQL利用を比較する研究プロジェクトです。データ読み込みスクリプトとベンチマークにより、クエリ性能と実装作業量を評価します。

主な機能

  1. 01MIMIC-IVスキーマ作成とCSV読み込み
  2. 02直接SQLとMCPのワークロード比較
  3. 03複数回実行の結果をCSVに集約
  4. 04Azure PostgreSQLの設定

活用シーン

  1. 01SQLとMCPのクエリ時間の比較
  2. 02臨床分析ワークロードの実装工数の測定

MCP 対応

MCPサーバーはAzure Database for PostgreSQLに接続し、同一ワークロードで直接SQLとのベンチマークを行います。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

PostgreSQL on MIMIC‑IV × MCP サーバー

プロジェクトの目標: Azure Database for PostgreSQL 上に構築した Model Context Protocol(MCP)サーバーが、開発者の作業負荷を軽減しながら、大規模な臨床分析において直接 SQL と同等、またはそれ以上の性能を発揮できるかを評価します。


1. 問題の説明

MIMIC‑IV のような臨床データセットには、数千万行、数百の属性が含まれています。このような幅広いデータに対して生の SQL を記述・保守するのは、エラーが発生しやすく、時間もかかります。次の問いを検証します。

MCP ベースの抽象化によって、従来の SQL のみのワークフローと比較して、開発者の生産性を向上させると同時に、実行時の効率を維持(または向上)できますか?

この問いに答えるため、単純な COUNT(*) による mimiciv_hosp.emar_detail(約 87 M 行)の集計から、複数テーブルにまたがるノートの集計まで、同一のワークロードで直接 SQL と MCP サーバー → Postgres の経路を比較します。


2. リポジトリの構成

.
├── mimic-postgres/          # Scripts to create schemas & ingest MIMIC‑IV CSVs
├── src/            # Fork of azure_postgresql_mcp with env configs
└── README.md              # This file

3. 前提条件

  • Python 3.10+
  • Node 18+(追加の MCP ツールを使用する場合は任意)
  • Azure Database for PostgreSQL – Flexible Server(Standard_D4s v5 以上)
  • MIMIC‑IV の認証情報とデータのダウンロード権限
# core libs
pip install psycopg[binary] rich click pandas matplotlib
# benchmarking
pip install httpx pytest pytest‑benchmark
# MCP server
pip install mcp[cli] azure-identity azure-mgmt-postgresqlflexibleservers

4. データセットの読み込み

cd data-loading
psql "$PGURI" -f 00_create_mimiciv_note_schema.sql
psql "$PGURI" -f 01_create_emar_tables.sql
python 02_bulk_copy.py --csv-root /path/to/mimic-iv

Standard_D4s での取り込み時間の目安:72 GB(ノート 11.7 M 行 + EMAR 87 M 行)で 約 45 分 です。


5. MCP サーバーの起動

cd mcp-server
python azure_postgresql_mcp.py

環境変数(PGHOST、PGUSER、PGPASSWORD、PGDATABASE)を設定するか、Claude Desktop / VS Code の設定で指定する必要があります。

パスワードの代わりに Microsoft Entra 認証を使用するには、次を設定します。

export AZURE_USE_AAD=True
export AZURE_SUBSCRIPTION_ID=...
export AZURE_RESOURCE_GROUP=...

6. ベースラインの実行

6.1 直接 SQL
python benchmarks/run_sql.py --query count_emar_detail

次のような単一行が出力されます。

count=87,371,064 elapsed=101550.2 ms
6.2 MCP サーバー
python benchmarks/run_mcp.py --query count_emar_detail

出力例:

count=87,371,064 elapsed=67560.1 ms

複数回の実行(デフォルトは 30 回)の結果は、benchmarks/results/ 以下の CSV に集約されます。


7. 主な結果(プレビュー)

クエリ直接 SQLMCP サーバーΔ(ms)Δ %
COUNT(*)(emar_detail)101,550 ms67,560 ms−33,990−33 %
ワークロード #1 の実装に必要な LOC6823−45−66 %

8. 今後の作業

  • Entra ID + RBAC を有効にし、接続レイテンシーを再ベンチマークします。
  • カスタム MCP ツールを使用した pgvector のセマンティック検索ベンチマークを追加します。
  • MCP+Claude と SQL IDE を比較する臨床医向け UX 試験を実施します。

9. ライセンスと引用

MIT License — LICENSE を参照してください。

このコードまたは結果を使用する場合は、次のように引用してください。

Menon S.K., N. (2025). MCP Server × PostgreSQL on MIMIC‑IV: productivity and performance comparison. Georgia Tech CS 6423 Final Project Report.

10. 謝辞

  • MIMIC‑IV データセットへのアクセスを提供してくださった PhysioNet
  • Azure Database for PostgreSQL
  • MCP 仕様および Claude Desktop ツールを提供してくださった Anthropic

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。