肿瘤临床试验MCP服务器

一套开放的模型上下文协议(MCP)服务器和参考客户端,用于连接自主肿瘤试验机器人和AI代理与临床系统,包括调度、电子同意、EDC/eSource存储库、影像存档和实验室系统。

  • by kevinkawchak
  • TeX
  • 本地部署
  • 更新于
在 GitHub 查看 kevinkawchak/mcp-pai-oncology-trials

使用说明

用于物理AI肿瘤学临床试验系统的MCP服务器

TrialMCP --一套开放的模型上下文协议(MCP)服务器和参考客户端,使自主肿瘤学试验机器人和人工智能代理能够与临床系统进行交互:调度、eConsent、EDC/eSource存储库、成像档案和实验室系统。

机器人平台和临床基础设施之间的点对点集成无法扩展。MCP是一种新兴的开放协议(Linux Foundation AAIF),用于将AI工具连接到外部数据源。该项目提供了互操作性层,将物理人工智能机器人与跨联邦多站点部署的受监管临床试验操作联系起来。


在DOI下发表的三篇从互补角度介绍TrialMCP的研究论文 10.5281/zenodo.18870961.


目录


架构概述

TrialMCP通过具有授权执行、隐私保护数据访问和全面审计日志的分层MCP架构将自主试验机器人连接到临床系统。

 TRIALMCP -- END-TO-END ARCHITECTURE
 ==========================================

 +---------------------------+     +---------------------------+
 |    ROBOT AGENTS           |     |    HUMAN AGENTS           |
 |  (Physical AI Platforms)  |     |  (Trial Staff / Monitors) |
 |                           |     |                           |
 |  Franka Panda (USL 7.4)   |     |  Trial Coordinators       |
 |  da Vinci dVRK (USL 7.1)  |     |  Data Monitors            |
 |  Kinova Gen3  (USL 5.7)   |     |  Auditors                 |
 +-------------|-------------+     +-------------|-------------+
               |                                 |
               v                                 v
 +-----------------------------------------------------------+
 |              TRIALMCP-AUTHZ  (Policy Decision Point)      |
 |                                                           |
 |   RBAC Policy Engine        Token Management              |
 |   Deny-by-Default           Session Scoping               |
 |   Role: robot_agent         Role: trial_coordinator       |
 |   Role: data_monitor        Role: auditor                 |
 +-------------------------------|---------------------------+
                                 |
          +----------------------+----------------------+
          |                      |                      |
          v                      v                      v
 +----------------+   +------------------+   +-------------------+
 | TRIALMCP-FHIR  |   | TRIALMCP-DICOM   |   | TRIALMCP-LEDGER   |
 | (Read-Only)    |   | (Query/Retrieve) |   | (Audit Chain)     |
 |                |   |                  |   |                   |
 | Patient Lookup |   | C-FIND Proxy     |   | Hash-Chain Append |
 | Study Status   |   | C-MOVE Pointers  |   | Chain Verify      |
 | FHIR Search    |   | RECIST 1.1       |   | Replay Traces     |
 | De-ID Pipeline |   | Permission Gates |   | 21 CFR Part 11    |
 +----------|-----+   +---------|--------+   +---------|---------+
            |                   |                      |
            +-------------------+----------------------+
                                |
                                v
 +-----------------------------------------------------------+
 |           TRIALMCP-PROVENANCE  (Data Gateway)             |
 |                                                           |
 |   Source Registration      Access Recording               |
 |   Lineage Tracking         Integrity Verification         |
 |   Actor History            SHA-256 Fingerprinting         |
 |   Least-Privilege          Replayable Audit Traces        |
 +-----------------------------------------------------------+

图1。 TrialMCP端到端架构显示了机器人和人类代理通过授权层、专用MCP服务器和数据来源网关访问临床数据。

同行评审驱动的开发

%%{init: {'theme': 'base', 'themeVariables': {'primaryColor': '#e8f4f8', 'primaryBorderColor': '#5b9bd5', 'primaryTextColor': '#2c3e50', 'lineColor': '#5b9bd5', 'secondaryColor': '#fff3e0', 'tertiaryColor': '#e8f5e9', 'fontSize': '14px'}}}%%
flowchart LR
    subgraph BUILD ["v0.1.0 Build"]
        direction TB
        A["Server Code"]:::card
        B["Test Suite"]:::card
        C["Datasets"]:::card
    end
    subgraph REVIEW ["v0.1.1 Review"]
        direction TB
        D["@codex Audit"]:::reviewcard
        E["Recommendations"]:::reviewcard
        F["Gap Analysis"]:::reviewcard
    end
    subgraph HARDEN ["v0.2.0 Harden"]
        direction TB
        G["Validation"]:::greencard
        H["Error Codes"]:::greencard
        I["Token Expiry"]:::greencard
    end

    BUILD --> REVIEW --> HARDEN

    classDef card fill:#e8f4f8,stroke:#5b9bd5,stroke-width:2px,rx:12,ry:12,color:#2c3e50
    classDef reviewcard fill:#fff3e0,stroke:#e6a23c,stroke-width:2px,rx:12,ry:12,color:#2c3e50
    classDef greencard fill:#e8f5e9,stroke:#67c23a,stroke-width:2px,rx:12,ry:12,color:#2c3e50

图7。 同行评审驱动的开发生命周期,从初始构建到@codex审计再到强化发布。


MCP服务器

trialmcp-fhir(只读临床数据)

提供对与肿瘤学临床试验相关的GetLR4资源的范围化、只读访问。所有患者数据在返回之前都要经过HIPAA安全港身份验证(18个标识符类别)。

工具:

工具 说明
fhir_read 按类型和ID(已去标识)读取单个Contoso资源
fhir_search 使用可选筛选器按类型搜索资源
fhir_patient_lookup 使用假名进行隐私意识患者查找
fhir_study_status 获取ResearchStudy状态、阶段和注册人数

支持的Contoso资源: 患者、研究、研究对象、病情、用药、观察、不良事件、诊断报告、影像学研究

去标识管道:

  • HMAC-SHA256使用特定位置的盐进行假名化
  • 姓名、地址、电信和标识符删除
  • 出生日期仅概括为年份(安全港)
  • 临床资源中的主题参考假名化

trialmcp dicom(成像查询/检索)

DICOM查询/检索代理,具有严格的基于角色的权限强制。支持C-FIND查询和具有限时安全令牌的C-OVE检索指针。

工具:

工具 说明
dicom_query 查询患者/研究/系列级别的成像研究(C-FIND代理)
dicom_retrieve_pointer 获取研究的限时检索令牌(C-MOVE代理)
dicom_study_metadata 获取具有系列细分的详细研究元数据
dicom_recist_measurements 从研究中检索RECIST 1.1肿瘤测量值

权限矩阵:

角色 查询级别 模式 可以检索
试验协调员 患者,研究,系列 CT、MR、PT、DX、CR 是
robot_agent 研究,系列 CT、MR、RTSTRUCT、RTPLAN 是
数据监测 患者,研究 CT、MR、PT 否
审计员 研究 无 无

trialmcp分类账(审计监管链)

仅附加哈希链审计分类账,满足《美国联邦法规》第21篇第11部分对临床试验中电子记录的要求。所有服务器上的每次MCP工具调用都会产生一个通过SHA-256哈希链链接的签名审计记录。

工具:

工具 说明
ledger_append 将审计记录附加到哈希链分类账
ledger_verify 验证整个审计链的完整性
ledger_query 使用服务器/工具/调用者/时间过滤器查询审计记录
ledger_replay 为合规性审查生成可回放的审计跟踪
ledger_chain_status 获取当前链状态、长度和最新哈希值
 AUDIT HASH CHAIN -- 21 CFR PART 11 COMPLIANCE
 ===============================================

 +------------------+     +------------------+     +------------------+
 |  GENESIS BLOCK   |     |  AUDIT RECORD 1  |     |  AUDIT RECORD 2  |
 |                  |     |                  |     |                  |
 |  prev: 000...0   |---->|  prev: hash(G)   |---->|  prev: hash(R1)  |
 |  server: system  |     |  server: fhir    |     |  server: dicom   |
 |  tool: init      |     |  tool: fhir_read |     |  tool: dicom_qry |
 |  caller: system  |     |  caller: robot-1 |     |  caller: robot-1 |
 |  hash: SHA-256   |     |  hash: SHA-256   |     |  hash: SHA-256   |
 +------------------+     +------------------+     +------------------+
         |                                                    |
         |   CHAIN VERIFICATION: Recompute each hash and      |
         |   verify prev_hash links match. Any tampering,     |
         |   deletion, or reordering breaks the chain.        |
         +----------------------------------------------------+

 Properties:
   - Append-only: Records cannot be modified or deleted
   - Hash-linked: Each record includes hash of previous record
   - Tamper-evident: Any modification breaks the chain
   - Replayable: Full trace can be replayed for incident review
   - ICH-GCP E6(R2): Satisfies electronic records guidance

图2: 审计哈希链结构,显示SHA-256链接记录,为21 CFR Part 11合规性提供防篡改日志。

trialmcp authz(授权策略)

整个TrialMCP的策略决策点(PDP)实现了基于角色的访问控制,并具有默认拒绝语义。

工具:

工具 说明
authz_evaluate 评估授权请求(角色+服务器+工具)
authz_issue_token 为代理颁发会话令牌
authz_validate_token 验证现有会话令牌
authz_list_policies 列出所有活动的授权策略规则
authz_revoke_token 撤销活动会话令牌

默认策略规则:

  • 试验协调员:可完全读取Contoso和DICOM
  • 机器人代理:有范围的访问(对Contoso的读取+研究状态;对DICOM的查询+检索)
  • 数据监视器:只读,无DICOM检索
  • 审计员:仅限分类账访问
  • 所有角色:链状态和验证访问
  • 显式拒绝覆盖允许

trialmcp来源(数据网关)

数据来源网关强制最低权限访问,记录所有工具调用,并提供可重放的审计跟踪。跟踪通过MCP工具访问的每条临床数据的谱系。

工具:

工具 说明
provenance_register_source 注册数据源(Contoso、DICOM、日程安排、eSource、eConsent)
provenance_record_access 记录数据访问/转换事件
provenance_get_lineage 获取数据源的完全访问沿袭
provenance_get_actor_history 获取特定参与者的所有访问历史记录
provenance_verify_integrity 通过SHA-256指纹验证数据完整性

参考客户

试用机器人代理

参考客户演示了自主肿瘤学试验机器人如何在完整的工作流程中与所有TrialMCP服务器交互:

 TRIAL ROBOT AGENT -- WORKFLOW SEQUENCE
 ========================================

 Robot Agent                  TrialMCP Servers
 (Franka Panda)
      |
      |  1. AUTHENTICATE
      |--------------------->  trialmcp-authz
      |  Issue session token     |
      |<---------------------    | token_id + role
      |
      |  2. FETCH TASK ORDER
      |--------------------->  trialmcp-fhir
      |  Study status query      |
      |<---------------------    | study phase + enrollment
      |
      |  3. RETRIEVE IMAGING
      |--------------------->  trialmcp-dicom
      |  Get study pointer       |
      |<---------------------    | retrieval_token + endpoint
      |
      |  4. EXECUTE PROCEDURE
      |  (Robot performs task)
      |
      |  5. UPLOAD EVIDENCE
      |--------------------->  trialmcp-ledger
      |  Append audit record     |
      |<---------------------    | audit_id + record_hash
      |
      |  6. RECORD PROVENANCE
      |--------------------->  trialmcp-provenance
      |  Track data access       |
      |<---------------------    | record_id + confirmation
      |
      |  ALL STEPS AUDITED IN HASH CHAIN
      +

图3。 试验机器人代理工作流程显示了从身份验证到来源记录的六个步骤序列,每个操作都会在哈希链式账本中产生一个审计记录。

支持的机器人平台(来自USL评估):

平台 类型 USL分数 等级
弗兰卡·艾米卡·熊猫 Cobot 7.4 高级
达芬奇dVRK 外科 7.1 高级
Kinova Gen3 Cobot 5.7 中级
阿特拉斯电气 人形 5.8 中级
Hugo RAS 外科 4.5 基础
敏捷数字 类人 4.2 基础
特斯拉Optimus 人形 3.6 基础

USL集成

统一标准水平(USL)是一个定量评分框架(1.0-10.0),用于评估机器人平台在四个同等权重的维度上对多部位肿瘤学试验的准备情况:

维度 焦点 MCP相关性
A. -仿真框架切换 跨Isaac实验室、MuJoCo、Gazebo、PyBullet的策略转移 通过Contoso执行仿真任务订单
B -生成/代理AI集成 LLM、VLA、扩散策略、MCP集成深度 MCP是一个直接的评分标准
C -跨机器人进度共享 ONNX导出、ROS 2接口、联合学习 通过来源网关进行跨站点数据共享
D -多站点临床试验协作 FDA/CE批准、HIPAA、21 CFR第11部分、审计跟踪 完整的试验cp分类账+试验cp授权

USL评分等级: 示例(9.0-10.0)、高级(7.0-8.9)、中级(5.0-6.9)、基础(3.0-4.9)、初级(1.0-2.9)

MCP集成是USL Dimension B评分标准的一部分。TrialMCP为跨机器人平台的统一任务规划提供了标准化的AI代理接口,直接提高了Dimension B和D评分。


联合学习集成

TrialMCP与多中心肿瘤学试验的五大支柱联合学习架构相结合:

支柱 焦点 TrialMCP集成
1 -隐私基础设施 HIPAA安全港、去标识、RBAC fhir去标识管道、authz RBAC
2 -监管基础设施 FDA、IRB、ICH-GCP合规性 分类账21 CFR第11部分审计链
3 -跨框架统一 Isaac MuJoCo网桥,代理接口 跨平台代理的MCP工具接口
4 -标准和基准 模型注册表、跨平台基准 USL评分作为MCP资源公开
5 -多组织合作 联合培训,差异化隐私 具有每个站点策略的来源网关

联合聚合支持: FedAvg、FedProx(非IID医院数据的近端正则化)、SCAFFOLD(客户漂移的控制变量校正)

数据协调: 跨试验点的DICOM、Contoso、LOINC、RxNorm、MedDRA词汇映射

六种代理AI模式 从FL参考架构通知MCP服务器设计:

  1. MCP肿瘤服务器 (脚本01):五个核心工具-- patient_lookup, treatment_simulation, protocol_compliance, robotic_telemetry, adverse_event_reporting
  2. ReAct治疗计划 (脚本02):临床决策的思维-行动观察循环
  3. 实时自适应监控 (脚本03):使用CTCAE v5.0分级流式传输多模态数据
  4. 自主仿真编排器 (脚本04):多框架作业协调与帕累托优化
  5. 安全约束执行器 (脚本05):IEC 80601-2-77安全门,人在环批准
  6. 肿瘤学RAG依从性 (脚本06):使用引文跟踪对监管文件进行语义分块
 FEDERATED MCP DEPLOYMENT -- MULTI-SITE TRIAL TOPOLOGY
 =======================================================

       SITE A                    SITE B                    SITE C
 +------------------+     +------------------+     +------------------+
 | trialmcp-fhir    |     | trialmcp-fhir    |     | trialmcp-fhir    |
 | trialmcp-dicom   |     | trialmcp-dicom   |     | trialmcp-dicom   |
 | trialmcp-authz   |     | trialmcp-authz   |     | trialmcp-authz   |
 | trialmcp-ledger  |     | trialmcp-ledger  |     | trialmcp-ledger  |
 +--------|---------+     +--------|---------+     +--------|---------+
          |                        |                        |
          |     Differential       |     Secure             |
          |     Privacy            |     Aggregation        |
          v                        v                        v
 +--------------------------------------------------------------------+
 |          FEDERATED COORDINATION LAYER                              |
 |                                                                    |
 |   FedAvg / FedProx / SCAFFOLD Aggregation                          |
 |   Cross-Site Audit Log Synchronization                             |
 |   DICOM/FHIR/LOINC/RxNorm/MedDRA Harmonization                     |
 |   Per-Site Privacy Budget Enforcement                              |
 +---------------------------------|----------------------------------+
                                   |
                                   v
 +--------------------------------------------------------------------+
 |           TRIALMCP-PROVENANCE  (Central Gateway)                   |
 |                                                                    |
 |   Cross-Site Lineage Tracking                                      |
 |   Data Fingerprint Verification                                    |
 |   Actor History Across Sites                                       |
 |   Replayable Multi-Site Audit Traces                               |
 +--------------------------------------------------------------------+

图4。 联合MCP部署拓扑显示了通过具有差异隐私和跨站点审计同步的联合层协调的每个站点TrialMCP服务器实例。

MCP PAI肿瘤学试验生命周期

%%{init: {'theme': 'base', 'themeVariables': {'primaryColor': '#e8f4f8', 'primaryBorderColor': '#5b9bd5', 'primaryTextColor': '#2c3e50', 'lineColor': '#5b9bd5', 'fontSize': '14px'}}}%%
flowchart TB
    subgraph PHYS ["Physical AI Layer"]
        direction LR
        R1[("Robot\nPlatforms")]:::cyl
        SIM["Simulation\nFrameworks"]:::card
    end
    subgraph MCP ["MCP Protocol Layer"]
        direction LR
        AUTH["authz\nRBAC"]:::authcard
        FHIR["fhir\nClinical"]:::fhircard
        DICOM["dicom\nImaging"]:::dicomcard
        LED["ledger\nAudit"]:::ledcard
        PROV["provenance\nLineage"]:::provcard
    end
    subgraph CLIN ["Clinical Trial Layer"]
        direction LR
        EHR[("EHR\nSystems")]:::cyl
        PACS[("PACS\nArchives")]:::cyl
        REG["Regulatory\nCompliance"]:::regcard
    end

    PHYS --> MCP
    MCP --> CLIN
    AUTH --- FHIR
    AUTH --- DICOM
    FHIR --- LED
    DICOM --- LED
    LED --- PROV

    classDef card fill:#e8f4f8,stroke:#5b9bd5,stroke-width:2px,rx:12,ry:12,color:#2c3e50
    classDef cyl fill:#e8f4f8,stroke:#5b9bd5,stroke-width:2px,color:#2c3e50
    classDef authcard fill:#fde8e8,stroke:#f56c6c,stroke-width:2px,rx:12,ry:12,color:#2c3e50
    classDef fhircard fill:#e8f5e9,stroke:#67c23a,stroke-width:2px,rx:12,ry:12,color:#2c3e50
    classDef dicomcard fill:#f3e8ff,stroke:#9b59b6,stroke-width:2px,rx:12,ry:12,color:#2c3e50
    classDef ledcard fill:#fff3e0,stroke:#e6a23c,stroke-width:2px,rx:12,ry:12,color:#2c3e50
    classDef provcard fill:#e8f4f8,stroke:#409eff,stroke-width:2px,rx:12,ry:12,color:#2c3e50
    classDef regcard fill:#fde8e8,stroke:#f56c6c,stroke-width:2px,rx:12,ry:12,color:#2c3e50

图9。 MCP PAI肿瘤学试验生命周期显示了三层架构:物理AI平台、MCP协议服务器和通过标准化接口连接的临床试验系统。


安全与合规

验证测试套件(39项测试,全部通过)

安全测试(18项测试):

  • SSRF预防:基于URL的资源ID和研究UID被拒绝 VALIDATION_FAILED 错误代码
  • 编码URL变体拒绝(资源ID中的HTTPS、DICOM UID)
  • 防止注入:参数中的JSON注入和SQL注入
  • 权限升级:跨所有服务器执行角色边界
  • 防止重播:令牌撤销和哈希链完整性
  • 令牌到期强制:立即拒绝零个TTL令牌
  • 所有服务器上的健康端点可用性
  • 策略决策跟踪验证(允许和拒绝路径)

审计完整性测试(12项测试):

  • 每一次Contoso工具调用都会生成一个签名的审计记录
  • 每个DICOM工具调用都会生成一个审计记录(包括拒绝)
  • 添加多条记录后的分类账哈希链完整性
  • 来源工具调用生成审计记录

集成测试(9项测试):

  • 跨所有5台MCP服务器的端到端机器人代理工作流
  • Contoso响应中的去标识验证
  • 工作流执行过程中的权限执行
  • 完成工作流程后审核链完整性
  • 跨服务器跟踪验证(authz->fhir->dicom->ledger链接)

合规

标准 实施
《美国联邦法规》第21篇第11部分 具有篡改检测的哈希链审计账簿
HIPAA安全港 18号标识符去标识管道
ICH-GCP E6(R2) 所有电子记录的可回放审计跟踪
IEC 80601标准 安全约束的执行模式
ISO 14971 通过许可政策进行风险管理
ISO 13482 机器人安全标准集成
美国食品药品监督管理局510(k)/De Novo/PMA 研究元数据中的调控途径意识

安全加固

  • 身份验证: 基于令牌的会话管理,具有角色范围和到期强制
  • 授权: 默认情况下拒绝RBAC,具有明确的拒绝优先级和策略决策跟踪
  • 输入验证: MultiPID和DICOM UID格式验证,防止SSRF
  • 错误分类: 机器可读错误代码(AUTHZ_DENIED, VALIDATION_FAILED, NOT_FOUND)
  • 隐私: HMAC-SHA256假名化,安全港去识别
  • 诚信: 具有规范序列化、数据指纹的SHA-256哈希链
  • 审计: 每个工具调用都有记录,可回放的跟踪,链验证
  • 健康监测: 所有服务器上的健康/就绪端点
  • 最低特权: 对服务器、工具和数据的角色范围访问
 DATA FLOW SECURITY -- PRIVACY-PRESERVING ACCESS PATTERN
 =========================================================

 Agent Request              Security Layers                    Data Store
      |                          |                                |
      |  1. Token Presented      |                                |
      |------------------------->|                                |
      |                    [authz_evaluate]                       |
      |                    Role + Server + Tool                   |
      |                          |                                |
      |                    2. DENY by default                     |
      |                    Check ALLOW rules                      |
      |                    Check DENY overrides                   |
      |                          |                                |
      |                    3. Permission Granted                  |
      |                          |------------------------------->|
      |                          |     Raw clinical data          |
      |                          |<-------------------------------|
      |                          |                                |
      |                    4. De-identification                   |
      |                    HIPAA Safe Harbor (18 IDs)             |
      |                    HMAC-SHA256 pseudonymize               |
      |                          |                                |
      |                    5. Audit Record                        |
      |                    SHA-256 hash chain                     |
      |                    21 CFR Part 11                         |
      |                          |                                |
      |  6. De-identified data   |                                |
      |<-------------------------|                                |
      |                          |                                |

图5。 数据流安全通过授权、去标识和审计日志记录层显示隐私保护访问模式。

质量保证周期

%%{init: {'theme': 'base', 'themeVariables': {'primaryColor': '#e8f4f8', 'primaryBorderColor': '#5b9bd5', 'primaryTextColor': '#2c3e50', 'lineColor': '#5b9bd5', 'fontSize': '14px'}}}%%
flowchart TB
    U["@kevinkawchak\nRequirements"]:::usercard
    CL["@claude\nImplementation"]:::claudecard
    CX["@codex\nPeer Review"]:::codexcard
    T["39 Tests\nAll Passing"]:::testcard
    V["Input Validation\nSSRF + UID"]:::valcard
    R["Publication\nReadiness"]:::pubcard

    U --> CL
    CL --> T
    T --> CX
    CX -->|recommendations| CL
    CL --> V
    V --> T
    T --> R

    classDef usercard fill:#e8f4f8,stroke:#5b9bd5,stroke-width:2px,rx:12,ry:12,color:#2c3e50
    classDef claudecard fill:#f3e8ff,stroke:#9b59b6,stroke-width:2px,rx:12,ry:12,color:#2c3e50
    classDef codexcard fill:#fff3e0,stroke:#e6a23c,stroke-width:2px,rx:12,ry:12,color:#2c3e50
    classDef testcard fill:#e8f5e9,stroke:#67c23a,stroke-width:2px,rx:12,ry:12,color:#2c3e50
    classDef valcard fill:#fde8e8,stroke:#f56c6c,stroke-width:2px,rx:12,ry:12,color:#2c3e50
    classDef pubcard fill:#e8f4f8,stroke:#409eff,stroke-width:2px,rx:12,ry:12,color:#2c3e50

图8。 质量保证周期显示了@kevinkawchak(需求)、@claude(实现)和@codex(同行评审)之间的协作工作流程,这些工作流程在发布准备方面趋同。


数据集

合成的➤包(datasets/fhir-bundles/)

  • 2研究资源(II期机器人活检、III期适应性免疫治疗)
  • 3患者资源(已去标识的合成资源)
  • 3研究对象报名记录
  • 2种病况资源(NSCLC、癌症)
  • 2观察资源(肿瘤大小、生物标志物)
  • 1药物管理(Pembrolizumab)
  • 1广告事件(2级疲劳,CTCAE v5.0)

DICOM综合索引(datasets/dicom-samples/)

  • 3项影像学检查:胸部CT、腹部MR、全身PET/CT
  • RECIST 1.1目标病变跟踪测量
  • 具有模态分解的多系列研究

模拟调度数据(datasets/scheduling/)

  • 在2个试验点进行3次预定的机器人手术
  • USL在平台作业中得分(Franka Panda 7.4,Kinova Gen3 5.7,dVRK 7.1)
  • 先决条件跟踪(成像、同意、实验室结果)

里程碑

里程碑 时间表 可交付成果 状态
M1 0-4个月 只读临床数据MCP服务器+认证框架 进行中
M2 4-8个月 DICOM/QUE来源网关+回放日志 计划中
立方米 8-12个月 参考试验机器人代理集成演示 计划中

M1可交付成果(当前)

  • trialmcp-fhir:带去标识的只读Contoso访问
  • trialmcp-dicom:具有权限的DICOM查询/检索代理
  • trialmcp-authz:具有令牌管理的RBAC策略引擎
  • trialmcp-ledger:哈希链审计分类账
  • trialmcp-provenance:数据来源网关
  • 安全测试套件(SSRF、注入、升级、回放)
  • 审计完整性测试
  • 合成数据集(Contoso、DICOM、调度)

M2交付成果(计划)

  • 生产型QUICP服务器代理(HAPI➤集成)
  • 生产DICOM代理(Orthanc/dcm4chee集成)
  • 带有签名时间戳的持久审计存储
  • 跨站点重播日志同步

M3交付成果(计划)

  • 集成ROS 2的参考机器人代理
  • USL评分平台的现场演示
  • eConset工作流集成
  • 通过认证证据链上传电子源

入门指南

先决条件

  • Python 3.11+
  • 点

安装

git clone https://github.com/kevinkawchak/mcp-pai-oncology-trials.git
cd mcp-pai-oncology-trials
pip install pytest jsonschema

快速开始

import json
from servers.trialmcp_fhir.src.fhir_server import FHIRMCPServer
from servers.trialmcp_dicom.src.dicom_server import DICOMMCPServer
from servers.trialmcp_ledger.src.ledger_server import LedgerMCPServer
from servers.trialmcp_authz.src.authz_server import AuthzMCPServer
from servers.trialmcp_provenance.src.provenance_server import ProvenanceMCPServer
from clients.reference_agent.src.trial_robot_agent import TrialRobotAgent

# Initialize servers
ledger = LedgerMCPServer()
fhir = FHIRMCPServer(audit_callback=lambda r: ledger.handle_tool_call(
    "ledger_append", {"server": r["server"], "tool": r["tool"],
     "caller_id": "system", "result_summary": r["result_summary"]}
))
dicom = DICOMMCPServer()
authz = AuthzMCPServer()
provenance = ProvenanceMCPServer()

# Load synthetic data
with open("datasets/fhir-bundles/oncology_trial_bundle.json") as f:
    fhir.store.load_bundle(json.load(f))
with open("datasets/dicom-samples/study_index.json") as f:
    for study in json.load(f)["studies"]:
        dicom.index.index_study(study)

# Run a robot agent workflow
agent = TrialRobotAgent(platform="Franka Panda")
result = agent.execute_sample_workflow(
    authz_server=authz,
    fhir_server=fhir,
    dicom_server=dicom,
    ledger_server=ledger,
    provenance_server=provenance,
    study_id="ONCO-TRIAL-2026-001",
    dicom_study_uid="1.2.826.0.1.3680043.8.1055.1.20260301.1",
)
print(f"Workflow completed: {result['workflow_id']}")

# Verify audit chain integrity
chain = ledger.handle_tool_call("ledger_verify", {})
print(f"Audit chain valid: {chain['valid']}, length: {chain['chain_length']}")

测试

# Run all tests
python -m pytest tests/ -v

# Run security tests only
python -m pytest tests/security/ -v

# Run audit completeness tests
python -m pytest tests/audit/ -v

# Run integration tests
python -m pytest tests/integration/ -v

测试覆盖范围: 3个类别(安全、审计、集成)的39个测试


仓库结构

mcp-pai-oncology-trials/
├── servers/
│   ├── common/                 # Shared error codes, validation, health checks
│   │   └── __init__.py
│   ├── trialmcp_fhir/          # Read-only FHIR MCP server
│   │   └── src/
│   │       └── fhir_server.py
│   ├── trialmcp_dicom/         # DICOM query/retrieve MCP server
│   │   └── src/
│   │       └── dicom_server.py
│   ├── trialmcp_ledger/        # Audit ledger MCP server
│   │   └── src/
│   │       └── ledger_server.py
│   ├── trialmcp_authz/         # Authorization policy MCP server
│   │   └── src/
│   │       └── authz_server.py
│   └── trialmcp_provenance/    # Data provenance gateway
│       └── src/
│           └── provenance_server.py
├── clients/
│   └── reference_agent/        # Trial robot agent reference client
│       └── src/
│           └── trial_robot_agent.py
├── datasets/
│   ├── fhir-bundles/           # Synthetic FHIR R4 bundles
│   ├── dicom-samples/          # Synthetic DICOM study index
│   ├── scheduling/             # Simulated trial scheduling data
│   ├── manifest.json           # SHA-256 checksums for reproducibility
│   └── README.md               # Data dictionary and provenance
├── tests/
│   ├── security/               # SSRF, injection, escalation, replay, health tests
│   ├── audit/                  # Audit completeness tests
│   └── integration/            # End-to-end robot workflow tests
├── peer-review/                # Peer-review recommendations and responses
├── pyproject.toml              # Project configuration
├── changelog.md                # Version changelog
├── releases.md                 # Release notes
├── prompts.md                  # Build prompts
├── SECURITY.md                 # Security policy
├── CONTRIBUTING.md             # Contribution guidelines
├── CITATION.cff                # Academic citation metadata
├── LICENSE                     # MIT License
└── README.md                   # This file
 TOOL SURFACE AREA -- 23 MCP TOOLS ACROSS 5 SERVERS
 =====================================================

 trialmcp-fhir (4 tools)          trialmcp-dicom (4 tools)
 +--------------------------+     +--------------------------+
 | fhir_read                |     | dicom_query              |
 | fhir_search              |     | dicom_retrieve_pointer   |
 | fhir_patient_lookup      |     | dicom_study_metadata     |
 | fhir_study_status        |     | dicom_recist_measurements|
 +--------------------------+     +--------------------------+

 trialmcp-ledger (5 tools)         trialmcp-authz (5 tools)
 +--------------------------+     +--------------------------+
 | ledger_append            |     | authz_evaluate           |
 | ledger_verify            |     | authz_issue_token        |
 | ledger_query             |     | authz_validate_token     |
 | ledger_replay            |     | authz_list_policies      |
 | ledger_chain_status      |     | authz_revoke_token       |
 +--------------------------+     +--------------------------+

 trialmcp-provenance (5 tools)
 +--------------------------+
 | provenance_register_src  |
 | provenance_record_access |
 | provenance_get_lineage   |
 | provenance_get_actor_hst |
 | provenance_verify_intgty |
 +--------------------------+

图6。 所有五台MCP服务器上的完整工具表面积,显示了机器人代理和人类操作员可用的23种工具。


团队与协作

贡献者

贡献者 角色
@凯文考切克 项目负责人、需求、架构
@克劳德 实施、测试、文件编制
@法典 同行评审、建议、质量审计

团队角色(12个月时间线)

  • 安全工程师: 身份验证/授权框架、安全测试套件、强化指南
  • 后端工程师: MCP服务器实现、数据存储集成、API设计
  • 临床互操作性工程师: PLM/DICOM集成、词汇映射、法规遵从性
  • 质量保证工程师: 验证测试套件、审计完整性、集成测试

潜在合作伙伴

  • 医院IT部门
  • EHR集成团队(Epic、Cerner)
  • 开放互操作性社区(HL7、IHE、DICOM)
  • 机器人平台供应商(Franka Robotics、Intuitive Surgical、Kinova)
  • Linux基金会AAIF(MCP标准化)

收养途径

  1. 第一阶段: 只读访问+审计日志记录(当前)
  2. 第二阶段: eSource上传的受控写入操作
  3. 第三阶段: 与实时临床系统完全双向集成

开源交付成果

  • trialmcp fhir --具有HIPAA去标识功能的只读kubectl MCP服务器
  • trialmcp dicom --具有基于角色权限的DICOM查询/检索代理
  • trialmcp分类账 --符合《美国联邦法规》第21篇第11部分的哈希链审计分类账
  • trialmcp认证 --默认情况下具有拒绝RBAC的授权策略模板
  • trialmcp来源 --具有沿袭跟踪功能的数据来源网关
  • 安全手册 --涵盖SSRF、注入、升级、重放攻击的测试套件
  • 可复制硬化导轨 --角色权限矩阵、令牌管理模式

参考文献

  1. kevinkawchak/物理人工智能肿瘤学试验——物理人工智能肿瘤试验平台(机器人、软件、连接、USL框架)
  2. kevinkawchak/物理人工智能肿瘤学试验/unization/usl/pace--机器人平台评估的统一标准级评分
  3. kevinkawchak/pai肿瘤学试验fl——pai肿瘤学试验的联合学习(五支柱架构,六种代理AI模式)

许可证

MIT许可证。看 许可证 了解详情。