临床数据分析服务器

MCP Server与PostgreSQL结合,用于大规模临床数据分析,旨在提高开发效率并保持或提升运行时效率。

  • by ambakick
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 ambakick/mimic-mcp-server

使用说明

MIMIC-IV上的MCP服务器×PostgreSQL

项目目标: 评估在Azure Database for PostgreSQL上分层的模型上下文协议(MCP)服务器是否可以匹配或优于直接SQL,同时减少开发人员进行大规模临床分析的工作量。


1.问题陈述

MIMIC-IV等临床数据集包含数千万行和数百个属性。针对这种广度编写和维护原始SQL容易出错且速度较慢。我们要求:

基于MCP的抽象能否同时提高开发人员的生产力 和 与传统的仅使用SQL的工作流相比,保持(或提高)运行时效率?

为了回答这个问题,我们将直接SQL与 MCP服务器→ Postgres 相同工作负载上的路径——从简单的 COUNT(*) 在…上 mimiciv_hosp.emar_detail (≈8700万行)转换为多表注释聚合。


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+
  • 节点18+(可选,用于额外的MCP工具)
  • PostgreSQL Azure数据库–灵活的服务器 (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上的估计摄取时间: ~45分钟 72 GB(1170万个钞票行+87万个EMAR行)。


5.启动MCP服务器

cd mcp-server
python azure_postgresql_mcp.py

环境变量(PGHOST, PGUSER, PGPASSWORD, PGDATABASE)必须在Claude Desktop/VS Code配置中设置或提供。

使用 微软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)被聚合到CSV中 benchmarks/results/.


7.主要结果(预览)

查询 直接SQL MCP服务器 Δ(ms) Δ%
COUNT(*) 在…上 emar_detail 101550毫秒 67560毫秒 −33,990 −33 %
LOC实施工作负载#1 68 23 −45 −66 %

8.今后的工作

  • 启用Entra ID+RBAC并重新基准测试连接延迟。
  • 通过自定义MCP工具添加pgvector语义搜索基准。
  • 运行临床医生用户体验试验,比较MCP+Claude与SQL IDE。

9.许可证和引用

MIT许可证——见 LICENSE.

如果您使用此代码或结果,请引用:

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

10.致谢

  • PhysioNet用于访问MIMIC-IV数据集
  • PostgreSQL的Azure数据库
  • MCP规范和Claude Desktop工具的拟人化