物理AI肿瘤学临床试验国家MCP标准
版本1.2.0 | 拟议参考标准 | 美国
   ](releases.md)  ](docs/index.html)     ](deploy/docker-compose.yml)           
这 国家MCP-PAI肿瘤试验标准 是美国联邦物理AI肿瘤学临床试验系统中部署模型上下文协议(MCP)服务器的拟议参考标准。该标准定义了协议契约、参与者模型、安全基线、监管覆盖、机器可读JSON模式和治理流程。
范围本规范针对的是在美国食品药品监督管理局监管的肿瘤学试验中操作物理人工智能系统(手术机器人、治疗定位系统、诊断针放置平台和康复外骨骼)的美国临床机构、赞助商、CRO和技术供应商。
______________________________________________________________________
目录
- 动机
- 国家建筑概述
- MCP服务器实现
- 集成适配器
- 机器人安全和执行边界
- MCP工艺流程图
- 部署基础设施
- 快速入门演示
- 参考实现
- 单元测试套件
- CI/CD管道
- 黑匣子合规性线束
- 一致性测试套
- 国家互操作性试验台
- 认证和证据生成
- 基准测试
- 配置文件和合规性级别定义
- 机器可读JSON模式
- 一致性级别
- 参与者模式
- 工具合同注册表
- 安全与隐私
- 合规
- 相对于现有方法的优势
- 存储库结构
- 入门指南
- 纸张
- 治理
- 参考文献
______________________________________________________________________
纸张
用于物理AI肿瘤学临床试验系统的国家MCP服务器
Kawchak K.用于物理AI肿瘤学临床试验系统的国家MCP服务器。泽诺多。 2026; 10.5281/芝诺.18916731.
- PDF: 用于物理AI肿瘤学临床试验系统的国家MCP服务器.pdf
- LaTeX源代码: 乳胶源文件.zip
- 模板: 库尔戈尔日/arxiv风格
这篇20页的论文涵盖了五个服务器MCP架构、安全模块、一致性级别、联合学习集成、人工智能辅助开发方法,以及从之前分散的试验基础设施到拟议的国家标准的路径。
______________________________________________________________________
GitHub页面
演示:用于物理AI肿瘤学临床试验系统的国家MCP服务器
- Live网站:
- PDF: 用于物理AI肿瘤学临床试验系统的国家MCP服务器演示.pdf
- 来源: docs/index.html
交互式演示包括七个流程图、一个国家部署拓扑模拟器、一致性级别浏览器、安全模块可视化和一个存储库规模的仪表板。
- 七个交互式图表部分 从
docs/mcp-process/(机器人程序生命周期、跨站点通信、临床系统集成、安全门评估、联合学习协调、审计来源链、隐私去识别) - 国家部署拓扑模拟器 对750多个站点部署进行确定性模拟
- 一致性级别浏览器 具有交互式5级层次结构
- 安全模块可视化 带有e-stop生命周期动画
- 存储库规模仪表板 定量统计
______________________________________________________________________
动机
物理人工智能系统正以更快的速度进入肿瘤学临床试验——从执行肿瘤切除的手术机器人到协助患者监测的配套机器人。如今,每个地点、赞助商和供应商都在机器人代理和临床系统之间实施定制的集成,导致安全模型碎片化,审计跟踪不一致。
该国家标准通过定义每个符合标准的实现都必须满足的单个基于MCP的协议层来消除这种碎片化,从而实现:
- 即插即用互操作性 在任何符合要求的临床现场
- 统一的监管姿态 (FDA、HIPAA、21 CFR第11部分)已纳入方案
- 联合数据治理 在实现多站点协作的同时,将患者数据保存在现场
- 供应商中立工具合同 将机器人平台与临床基础设施解耦
- 机器可读模式 用于自动验证所有MCP服务器输入和输出
______________________________________________________________________
国家建筑概述
该国家标准定义了一个三层架构,通过部署在每个参与站点的标准化MCP服务器将物理AI平台连接到临床试验基础设施。
系统架构图
┌─────────────────────────────────────────────────────────────────────────┐
│ NATIONAL MCP-PAI ONCOLOGY NETWORK │
├─────────────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ SITE A │ │ SITE B │ │ SITE C │ │ SITE N │ │
│ │ (Hospital) │ │ (Cancer Ctr)│ │ (Research) │ │ (Any Site) │ │
│ │ │ │ │ │ │ │ │ │
│ │ ┌─────────┐ │ │ ┌─────────┐ │ │ ┌─────────┐ │ │ ┌─────────┐ │ │
│ │ │ Robot │ │ │ │ Robot │ │ │ │ Robot │ │ │ │ Robot │ │ │
│ │ │ Agent │ │ │ │ Agent │ │ │ │ Agent │ │ │ │ Agent │ │ │
│ │ └────┬────┘ │ │ └────┬────┘ │ │ └────┬────┘ │ │ └────┬────┘ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ ┌────▼────┐ │ │ ┌────▼────┐ │ │ ┌────▼────┐ │ │ ┌────▼────┐ │ │
│ │ │ MCP │ │ │ │ MCP │ │ │ │ MCP │ │ │ │ MCP │ │ │
│ │ │ Servers │ │ │ │ Servers │ │ │ │ Servers │ │ │ │ Servers │ │ │
│ │ │ (5 Svcs)│ │ │ │ (5 Svcs)│ │ │ │ (5 Svcs)│ │ │ │ (5 Svcs)│ │ │
│ │ └────┬────┘ │ │ └────┬────┘ │ │ └────┬────┘ │ │ └────┬────┘ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ ┌────▼────┐ │ │ ┌────▼────┐ │ │ ┌────▼────┐ │ │ ┌────▼────┐ │ │
│ │ │Clinical │ │ │ │Clinical │ │ │ │Clinical │ │ │ │Clinical │ │ │
│ │ │Systems │ │ │ │Systems │ │ │ │Systems │ │ │ │Systems │ │ │
│ │ │EHR/PACS │ │ │ │EHR/PACS │ │ │ │EHR/PACS │ │ │ │EHR/PACS │ │ │
│ │ └─────────┘ │ │ └─────────┘ │ │ └─────────┘ │ │ └─────────┘ │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘ │
│ │
│ ┌───────────────────────────────────────────────────────────────────┐ │
│ │ FEDERATED COORDINATION LAYER │ │
│ │ Aggregation (FedAvg/FedProx/SCAFFOLD) · Differential Privacy │ │
│ │ Cross-Site Audit Verification · Regulatory Reporting │ │
│ └───────────────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────────────┘─
协议流程图
ROBOT AGENT MCP SERVER LAYER CLINICAL SYSTEMS
───────────── ──────────────── ────────────────
┌─────────┐ 1. Auth ┌──────────┐
│ Robot │───────────────>│ AuthZ │ Token Issued
│ Agent ││ FHIR │─────────────────>│ EHR │
│ ││ DICOM │─────────────────>│ PACS │
│ ││ Ledger │ Hash-Chained Record
│ ││Provenance│ DAG Record
│ ││ Validate Input │────>│ Execute │ │
│ │ Invocation │ │ Against Schema │ │ Tool Logic │ │
│ └────────────┘ └──────────────────┘ └──────┬───────┘ │
│ │ │
│ ┌──────────────────┐ ┌──────▼───────┐ │
│ │ Validate Output │ C
B --> C
D --> C
E --> C
F --> C
C --> S| 服务器 | 软件包 | 工具 | 主要功能 |
|---|---|---|---|
| trialmcp认证 | servers/trialmcp_authz/ | authz_evaluate, authz_issue_token, authz_validate_token, authz_revoke_token | 默认情况下拒绝RBAC、6参与者策略矩阵、SHA-256令牌生命周期 |
| trialmcp fhir | servers/trialmcp_fhir/ | fhir_read, fhir_search, fhir_patient_lookup, fhir_study_status | HIPAA安全港去标识,HMAC-SHA256假名化 |
| trialmcp dicom | servers/trialmcp_dicom/ | dicom_query, dicom_retrieve | 基于角色的模态限制(CT、MR、PT)、患者姓名哈希 |
| trialmcp分类账 | servers/trialmcp_ledger/ | ledger_append, ledger_verify, ledger_query, ledger_export | 哈希链不可变账本,SHA-256规范JSON |
| trialmcp来源 | servers/trialmcp_provenance/ | provenance_record, provenance_query_forward, provenance_query_backward, provenance_verify | 基于DAG的沿袭、SHA-256指纹、W3C PROV对齐 |
共享基础设施
| 组件 | 路径 | 目的 |
|---|---|---|
| 运输 | servers/common/transport.py | 标准输入/标准输出MCP协议(JSON-RPC 2.0) |
| 路由 | servers/common/routing.py | 工具调用请求调度 |
| 中间件 | servers/common/middleware.py | 认证和审计中间件 |
| 错误 | servers/common/errors.py | 9代码错误分类 |
| 配置 | servers/common/config.py | Env-vars、YAML/JSON配置文件 |
| 日志记录 | servers/common/logging.py | 结构化JSON日志记录 |
| 健康 | servers/common/health.py | 健康/准备就绪终点 |
| 验证 | servers/common/validation.py | 模式验证实用程序 |
持久层
| 适配器 | 路径 | 用例 |
|---|---|---|
| 在记忆中 | servers/storage/memory.py | 测试、本地开发 |
| SQLite | servers/storage/sqlite_adapter.py | 单站点部署 |
| PostgreSQL | servers/storage/postgres_adapter.py | 生产部署 |
______________________________________________________________________
集成适配器
v0.9.0引入了将MCP服务器连接到真实医院基础设施的生产级集成适配器。
集成架构
graph TB
subgraph "MCP Servers"
A["trialmcp-authz"]
B["trialmcp-fhir"]
C["trialmcp-dicom"]
D["trialmcp-ledger"]
E["trialmcp-provenance"]
end
subgraph "integrations/"
subgraph "FHIR Adapters"
F1["Mock Adapter"]
F2["HAPI Adapter"]
F3["SMART-on-FHIR"]
F4["De-identification"]
F5["Terminology"]
F6["Bundle Handler"]
end
subgraph "DICOM Adapters"
D1["Mock Adapter"]
D2["Orthanc"]
D3["dcm4chee"]
D4["DICOMweb"]
D5["RECIST 1.1"]
D6["Safety Filter"]
end
subgraph "Identity Adapters"
I1["OIDC/JWT"]
I2["mTLS"]
I3["OPA Policy"]
I4["KMS/HSM"]
end
subgraph "Privacy + Federation"
P1["Access Control"]
P2["De-ID Pipeline"]
P3["Privacy Budget"]
P4["Data Residency"]
FD1["Coordinator"]
FD2["Secure Aggregation"]
end
end
subgraph "Clinical Systems"
EHR["EHR (Epic, Cerner)"]
PACS["PACS (Orthanc, dcm4chee)"]
IDP["Identity Provider"]
end
B --> F2 --> EHR
B --> F3 --> EHR
C --> D2 --> PACS
C --> D3 --> PACS
A --> I1 --> IDPContoso集成(integrations/fhir/)
| 模块 | 目的 | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
base_adapter.py | 抽象的Contoso适配器接口 | |||||||||||||||
mock_adapter.py | 带有合成肿瘤学数据的模拟适配器 | |||||||||||||||
hapi_adapter.py | HAPI QUE服务器REST适配器 | |||||||||||||||
| `smart_adapter.py | SMART-on-FHIR / OAuth2 adapter | 去标识.py | HIPAA Safe Harbor 18-identifier removal | 能力.py | CapabilityStatement R4 generation | 术语py | ICD-10, SNOMED CT, LOINC, RxNorm hooks | bundle_handler.py | Transaction, batch, search bundles | patient_filter.py \ | 基于同意的资源访问过滤器 |
DICOM集成(integrations/dicom/)
| 模块 | 目的 |
|---|---|
base_adapter.py | 抽象DICOM适配器接口 |
mock_adapter.py | 带有4个合成研究的模拟适配器 |
orthanc_adapter.py | Orthanc DICOM服务器适配器 |
dcm4chee_adapter.py | dcm4chee归档适配器 |
dicomweb.py | DICOMweb(QIDO-RS、WADO-RS、STOW-RS) |
metadata_normalizer.py | 标签协调、编码规范化 |
modality_filter.py | 基于角色的模态限制 |
recist.py | RECIST 1.1测量验证器 |
safety.py | 仅元数据安全实施 |
身份、隐私和联邦
| 包装 | 模块 | 用途 |
|---|---|---|
identity/ | oidc_adapter.py | OIDC/JWT令牌验证 |
identity/ | mtls.py | mTLS证书验证 |
identity/ | policy_engine.py | OPA兼容策略引擎 |
identity/ | kms.py | KMS/HSM签名密钥挂钩 |
clinical/ | econsent_adapter.py | eConsent/IRB元数据 |
clinical/ | scheduling_adapter.py | 程序调度 |
clinical/ | provenance_export.py | W3C PROV-N导出 |
privacy/ | access_control.py | RBAC+ABAC访问控制 |
privacy/ | deidentification_pipeline.py | 统一去ID管道 |
privacy/ | privacy_budget.py | 差异化隐私预算 |
privacy/ | data_residency.py | 数据驻留强制执行 |
federation/ | coordinator.py | 联合协调 |
federation/ | secure_aggregation.py | 安全聚合 |
federation/ | site_harmonization.py | 跨站点数据协调 |
federation/ | policy_enforcement.py | 联邦政策执行 |
______________________________________________________________________
机器人安全和执行边界
v0.9.0为物理AI机器人辅助程序实现了全面的安全框架。
安全结构
graph TB
subgraph "safety/"
GS["Gate Service
(5-Gate Safety Matrix)"]
RR["Robot Registry
(USL Scoring)"]
TV["Task Validator
(Pre/Post Conditions)"]
AC["Approval Checkpoint
(Human-in-the-Loop)"]
ES["E-Stop Controller
(Emergency Halt)"]
PS["Procedure State
(8-State Machine)"]
SV["Site Verifier
(Capability Check)"]
end
subgraph "Procedure Flow"
S["SCHEDULED"]
PC["PRE_CHECK"]
AP["APPROVED"]
IP["IN_PROGRESS"]
PO["POST_CHECK"]
CO["COMPLETED"]
AB["ABORTED"]
end
GS --> PC
RR --> PC
TV --> PC
AC --> AP
ES --> AB
PS --> S
PS --> PC
PS --> AP
PS --> IP
PS --> PO
PS --> CO
SV --> PC安全模块(safety/)
| 模块 | 目的 |
|---|---|
gate_service.py | 预处理5门安全矩阵(同意、现场、机器人、协议、人工批准) |
robot_registry.py | 带有USL评分和认证跟踪的机器人能力注册 |
task_validator.py | 使用前置条件/后置条件合同进行任务订单验证 |
approval_checkpoint.py | 具有超时(300秒)和升级的人在循环审批门 |
estop.py | 信号传播、状态保存、恢复紧急停止 |
procedure_state.py | 8状态机:已安排→ 预检查→ 批准→ 正在进行中→ POST_CHECK→ 完成/中止/失败 |
site_verifier.py | 根据站点能力配置文件模式进行站点能力验证 |
程序状态机
SCHEDULED ──> PRE_CHECK ──> APPROVED ──> IN_PROGRESS ──> POST_CHECK ──> COMPLETED
| | |
v v v
ABORTED FAILED ABORTED______________________________________________________________________
MCP工艺流程图
记录所有MCP通信模式的综合流程图 docs/mcp-process/.
| 图表 | 说明 |
|---|---|
| 01-机器人程序生命周期 | 端到端状态机,每个状态都有MCP服务器交互 |
| 02-跨站点MCP通信 | 多站点拓扑、审计链同步、令牌交换协议 |
| 03-临床系统集成 | PLM/DICOM/身份适配器架构和数据流 |
| 04-安全门评估 | 安全门矩阵、评估流程、紧急停止传播 |
| 05-联合学习协调 | 联合循环生命周期、安全聚合、隐私预算 |
| 06-审计和来源链 | 哈希链账本构建和DAG来源跟踪 |
| 07-隐私和去身份识别 | HIPAA安全港管道和数据驻留执法 |
______________________________________________________________________
部署基础设施
码头工人
每个服务器的单独Dockerfiles和一体化映像都提供在 deploy/docker/.
# Single-site deployment with all 5 servers:
cd deploy && docker-compose up
# Multi-site deployment (Site A + Site B + shared ledger):
cd deploy && docker-compose -f docker-compose.multi-site.yml upKubernetes
参考Kubernetes清单进行生产部署:
deploy/kubernetes/
├── namespace.yaml # trialmcp namespace
├── configmap.yaml # ConfigMap + Secrets template
├── deployment-authz.yaml # AuthZ Deployment + Service
├── deployment-fhir.yaml # FHIR Deployment + Service
├── deployment-dicom.yaml # DICOM Deployment + Service
├── deployment-ledger.yaml # Ledger Deployment + Service
└── deployment-provenance.yaml # Provenance Deployment + ServiceHelm 图表
用于部署的可配置Helm chart:
helm install trialmcp deploy/helm/trialmcp \
--set global.storageBackend=sqlite \
--set global.logLevel=INFO______________________________________________________________________
快速入门演示
在5分钟内跨所有5台MCP服务器运行完整的工作流程:
pip install -e .
python examples/quickstart/run_demo.py演示执行:代币发行→ 授权→ GetLread(已去标识)→ DICOM查询→ 分类账追加→ 来源记录→ 链式验证→ DAG验证。
______________________________________________________________________
参考实现
信息丰富的 --下面的参考实现是非规范级别1的说明性实现。它们展示了符合模式的有效负载形状,不适合生产部署。规范性要求在/spec/,/schemas/,以及/profiles/.
参考实现架构
graph TB
subgraph "Python Reference (NON-NORMATIVE)"
PCS[core_server.py
Core L1 Server]
PSV[schema_validator.py
JSON Schema Validation]
PCR[conformance_runner.py
CLI Test Runner]
end
subgraph "TypeScript Reference (NON-NORMATIVE)"
TCS[core-server.ts
Core L1 Server + ajv]
end
subgraph "Unit Tests (337 tests)"
TCS_T[test_core_server.py
32 tests]
TSV_T[test_schema_validator.py
6 tests]
TCR_T[test_conformance_runner.py
6 tests]
end
subgraph "Normative Artifacts"
SPEC["/spec/ (9 modules)"]
SCH["/schemas/ (13 schemas)"]
PRO["/profiles/ (8 profiles)"]
CON["/conformance/ (331 tests)"]
end
PCS --> SPEC
PSV --> SCH
PCR --> CON
TCS --> SCH
TCS --> SPEC
TCS_T --> PCS
TSV_T --> PSV
TCR_T --> PCR
style PCS fill:#4A90D9,color:#fff
style PSV fill:#50C878,color:#fff
style PCR fill:#F5A623,color:#fff
style TCS fill:#7B2D8E,color:#fff
style TCS_T fill:#4A90D9,color:#fff,stroke:#fff
style TSV_T fill:#50C878,color:#fff,stroke:#fff
style TCR_T fill:#F5A623,color:#fff,stroke:#fff
style SPEC fill:#333,color:#fff
style SCH fill:#333,color:#fff
style PRO fill:#333,color:#fff
style CON fill:#333,color:#fff参考实施摘要
| 语言 | 目录 | 文件 | 目的 |
|---|---|---|---|
| python | reference/python/ | core_server.py, schema_validator.py, conformance_runner.py | 最小核心服务器、模式验证器、一致性运行器 |
| TypeScript | reference/typescript/ | core-server.ts, package.json, tsconfig.json | 带有ajv验证的最小核心服务器存根 |
两个参考实现都证明了:
- 默认情况下拒绝RBAC --每个参与者6个政策矩阵 规格/制造商模型.md
- 哈希链审计 --SHA-256链,标准JSON格式 规格/审核.md
- 模式验证 --所有输出均已验证 模式/
- 代币生命周期 --签发、验证和撤销 规格/安全.md
______________________________________________________________________
单元测试套件
这 /tests/ 目录包含337个单元测试,用于验证引用Python实现的公共API、集成适配器和安全模块。这些测试通过验证服务器实现、适配器模块和安全基础设施的正确性来补充331个一致性测试。
单元测试架构
graph TB
subgraph "tests/ (337 tests)"
TCS[test_core_server.py
32 tests]
TSV[test_schema_validator.py
6 tests]
TCR[test_conformance_runner.py
6 tests]
TI[test_integrations.py
205 tests]
TS[test_safety.py
88 tests]
end
subgraph "reference/python/"
CS[core_server.py
9 public functions]
SV[schema_validator.py
4 public functions]
CR[conformance_runner.py
CLI runner]
end
TCS --> CS
TSV --> SV
TCR --> CR
style TCS fill:#4A90D9,color:#fff
style TSV fill:#50C878,color:#fff
style TCR fill:#F5A623,color:#fff
style CS fill:#4A90D9,color:#fff,stroke-dasharray:5
style SV fill:#50C878,color:#fff,stroke-dasharray:5
style CR fill:#F5A623,color:#fff,stroke-dasharray:5单元测试总结
| 测试文件 | 测试 | 覆盖率 |
|---|---|---|
test_core_server.py | 32 | AuthZ评估、令牌生命周期、分类账操作、健康/错误助手、策略矩阵、起源哈希 |
test_schema_validator.py | 6 | 模式加载、模式列表、验证 |
test_conformance_runner.py | 6 | Pytest参数构建,级别目录映射 |
test_integrations.py | 205 | 所有34个集成适配器(Contoso、DICOM、临床、联邦、身份、隐私) |
test_safety.py | 88 | 所有8个安全模块(紧急停止、程序状态、机器人注册表、任务验证器、关卡、批准、站点验证器) |
运行单元测试
# Run all unit tests
pytest tests/ -v
# Run all tests (unit + conformance)
pytest -v______________________________________________________________________
CI/CD管道
CI/CD管道(.github/workflows/ci.yml)在每个推送和拉取请求上运行。该管道包括14个工作岗位:
| 作业 | 矩阵 | 检查 |
|---|---|---|
| lint和格式 | Python 3.10、3.11、3.12 | Ruff-lint、Ruff格式、pytest单元测试(337)、pytest一致性套件(331) |
| 集成测试 | Python 3.12 | 针对进程内服务器包的集成测试 |
| 对抗性试验 | Python 3.12 | 对抗性测试包(authz旁路、PHI泄漏、重放、篡改、速率限制) |
| 模式兼容性 | Python 3.12 | 模式兼容性差异(中断/非中断更改检测) |
| 基准烟雾 | Python 3.12 | 基准烟雾测试(延迟、吞吐量、链、并发) |
| 模式验证 | Python 3.12 | 所有13个模式均已验证(结构+示例自验证) |
| 合同一致性 | Python 3.12 | 生成的模型与提交的模型匹配,core_server输出根据模式进行验证 |
| sdk python | Python 3.12 | Python SDK安装和导入验证 |
| sdk字体 | Node.js 20 | TypeScript SDK编译检查 |
| cli烟雾 | Python 3.12 | CLI工具子命令冒烟测试 |
| 编码一致性 | Python 3.12 | 代码生成一致性检查 |
| 安全扫描 | Python 3.12 | 依赖审计和秘密扫描 |
| 排版构建 | Node.js 20 | TypeScript引用编译检查 |
| docs lint | -- | 所需的文档文件存在,已检查内部标记链接(出现错误时失败) |
┌──────────────────────────────────────────────────────────────────────────────┐
│ CI/CD PIPELINE │
├──────────────────────────────────────────────────────────────────────────────┤
│ │
│ Push / PR to main │
│ │ │
│ ├──> lint-and-format (3.10) ─> ruff + 337 unit + 331 conformance │
│ ├──> lint-and-format (3.11) ─> ruff + 337 unit + 331 conformance │
│ ├──> lint-and-format (3.12) ─> ruff + 337 unit + 331 conformance │
│ ├──> integration-tests ──────> in-process server integration tests │
│ ├──> adversarial-tests ──────> authz bypass + PHI + replay + tamper │
│ ├──> schema-compatibility ───> schema diff + breaking change detect │
│ ├──> benchmark-smoke ────────> latency + throughput + chain + concur │
│ ├──> schema-validation ──────> 13 schemas + examples │
│ ├──> contract-consistency ───> model gen + runtime schema validation │
│ ├──> sdk-python ─────────────> SDK install + import verification │
│ ├──> sdk-typescript ─────────> tsc --noEmit (SDK) │
│ ├──> cli-smoke ──────────────> CLI subcommand smoke tests │
│ ├──> codegen-consistency ────> code generation check │
│ ├──> security-scan ──────────> dependency audit + secret scan │
│ ├──> typescript-build ───────> tsc --noEmit (reference) │
│ └──> docs-lint ──────────────> file check + link check (fail errors) │
│ │
│ All jobs run in parallel · 668 total tests per Python version │
└──────────────────────────────────────────────────────────────────────────────┘______________________________________________________________________
黑匣子合规性线束
v0.8.0引入了一个黑盒一致性线束 conformance/harness/ 它可以通过可插拔的传输适配器(stdin、HTTP、Docker)针对真实的服务器部署。该线束使任何供应商或站点都能根据国家标准验证其MCP服务器实施,而无需仅依赖内部夹具验证。
线束架构
graph TB
subgraph HARNESS["Black-Box Conformance Harness (conformance/harness/)"]
direction TB
subgraph CONFIG["Configuration"]
direction LR
CF["config.py
HarnessConfig"]
DS["data_seeder.py
Synthetic Data"]
RN["runner.py
CLI + Reports"]
end
subgraph CLIENT["Client Layer"]
CL["MCPConformanceClient
call_tool, list_tools,
initialize, health_check"]
end
subgraph TRANSPORTS["Transport Adapters"]
direction LR
SA["stdin_adapter.py
Local Process"]
HA["http_adapter.py
HTTP/HTTPS"]
DA["docker_adapter.py
Docker Container"]
AA["auth_adapter.py
Auth Sessions"]
end
end
CF --> CL
DS --> CL
RN --> CL
CL --> SA
CL --> HA
CL --> DA
CL --> AA| 组件 | 路径 | 目的 |
|---|---|---|
| 客户 | conformance/harness/client.py | MCP客户端 call_tool(), list_tools(), initialize(), health_check() |
| 配置 | conformance/harness/config.py | 目标服务器URL、凭据、配置文件/级别选择、输出格式 |
| Stdin适配器 | conformance/harness/adapters/stdin_adapter.py | stdin/stdout JSON-RPC子进程传输 |
| HTTP适配器 | conformance/harness/adapters/http_adapter.py | 远程服务器的HTTP POST传输 |
| Docker适配器 | conformance/harness/adapters/docker_adapter.py | 容器化服务器的Docker exec传输 |
| 身份验证适配器 | conformance/harness/adapters/auth_adapter.py | 多角色身份验证会话管理 |
| 数据种子 | conformance/harness/data_seeder.py | 综合性➤患者、研究、DICOM元数据 |
| 跑步者 | conformance/harness/runner.py | 具有JSON、JUnitXML、HTML、Markdown报告输出的CLI |
运行线束
# Run against local stdin server
trialmcp-conformance --target stdin --profile base --level 1
# Run against HTTP deployment
trialmcp-conformance --target http --address http://localhost:8080 --profile clinical-read --level 2
# Run against Docker container
trialmcp-conformance --target docker --address trialmcp-authz --profile base --level 1 --output-format junit______________________________________________________________________
一致性测试套
一致性测试套件 /conformance/ 包含331个自动化测试,分为八个层次——单元、正向、负向、安全性、互操作性、黑盒、对抗性和集成——涵盖了所有五个一致性级别和十三个模式。
一致性测试架构
graph TB
subgraph Unit Tests
UFC[Fixture Construction
30 tests]
end
subgraph Positive Tests
CT[Core
Audit + AuthZ + Health]
CR[Clinical Read
FHIR + De-ID]
IM[Imaging
DICOM + Modalities]
end
subgraph Negative Tests
II[Invalid Inputs
Schema Mismatches]
UA[Unauthorized
Deny-by-Default]
end
subgraph Security Tests
SS[SSRF Prevention
URL Injection]
TL[Token Lifecycle
Expiry + Revocation]
CI[Chain Integrity
Tampering Detection]
end
subgraph Interop Tests
XS[Cross-Server Trace
Multi-Server Audit]
SV[Schema Validation
All 13 Schemas]
end
subgraph BlackBox Tests
BA[AuthZ Conformance]
BF[FHIR Conformance]
BD[DICOM Conformance]
BL[Ledger Conformance]
BP2[Provenance Conformance]
BW[Cross-Server Workflow]
end
subgraph Adversarial Tests
AB[AuthZ Bypass]
PH[PHI Leakage]
RP[Replay Attacks]
TM[Chain Tampering]
MI[Malformed Inputs]
RL[Rate Limiting]
end
CT --> SV
CR --> SV
IM --> SV
XS --> SV
BA --> BW
BF --> BW
BD --> BW
BL --> BW
BP2 --> BW
style CT fill:#4A90D9,color:#fff
style CR fill:#50C878,color:#fff
style IM fill:#F5A623,color:#fff
style II fill:#D0021B,color:#fff
style UA fill:#D0021B,color:#fff
style SS fill:#7B2D8E,color:#fff
style TL fill:#7B2D8E,color:#fff
style CI fill:#7B2D8E,color:#fff
style XS fill:#333,color:#fff
style SV fill:#333,color:#fff
style BA fill:#4A90D9,color:#fff
style BF fill:#50C878,color:#fff
style BD fill:#F5A623,color:#fff
style BL fill:#333,color:#fff
style BP2 fill:#333,color:#fff
style BW fill:#7B2D8E,color:#fff
style AB fill:#D0021B,color:#fff
style PH fill:#D0021B,color:#fff
style RP fill:#D0021B,color:#fff
style TM fill:#D0021B,color:#fff
style MI fill:#D0021B,color:#fff
style RL fill:#D0021B,color:#fff
style UFC fill:#4A90D9,color:#fff一致性测试总结
| 层级 | 测试文件 | 覆盖率 |
|---|---|---|
| 单元 | unit/test_fixture_construction.py | 30个测试:所有4个夹具模块的夹具结构 |
| 积极的 | positive/test_core_conformance.py | 审核、错误信封、运行状况、authz(1级核心) |
| 积极的 | positive/test_clinical_read_conformance.py | CTLA+HIPAA去标识化(2级) |
| 积极的 | positive/test_imaging_conformance.py | DICOM+基于角色的模式(3级) |
| 负面的 | negative/test_invalid_inputs.py | 请求格式错误,架构不匹配 |
| 负面的 | negative/test_unauthorized_access.py | 默认情况下拒绝,权限升级 |
| 安全 | security/test_ssrf_prevention.py | URL注入、内部IP检测 |
| 安全 | security/test_token_lifecycle.py | 签发、到期、撤销 |
| 安全 | security/test_chain_integrity.py | 哈希链篡改、起源验证 |
| 互操作 | interoperability/test_cross_server_trace.py | 多服务器审计链接(4级) |
| 互操作 | interoperability/test_schema_validation.py | 所有输出均符合13个模式 |
| 黑盒 | blackbox/test_authz_conformance.py | 令牌生命周期,RBAC,默认拒绝 |
| 黑盒 | blackbox/test_fhir_conformance.py | ➤读取、搜索、去识别 |
| 黑盒 | blackbox/test_dicom_conformance.py | DICOM查询、模态限制 |
| 黑盒 | blackbox/test_ledger_conformance.py | 账簿追加、验证、链完整性 |
| 黑盒 | blackbox/test_provenance_conformance.py | 来源记录,DAG完整性 |
| 黑盒 | blackbox/test_cross_server_workflow.py | 端到端5服务器工作流 |
| 对抗的 | adversarial/test_authz_bypass.py | 角色升级、令牌重用、伪造令牌 |
| 对抗的 | adversarial/test_phi_leakage.py | 去ID完整性,错误消息暴露 |
| 对抗的 | adversarial/test_replay_attacks.py | 重复审计/来源,重放authz |
| 对抗的 | adversarial/test_chain_tampering.py | 修改、插入、删除、重新排序记录 |
| 对抗的 | adversarial/test_malformed_inputs.py | SSRF、XSS、SQL注入、命令注入 |
| 对抗的 | adversarial/test_rate_limiting.py | 快速令牌、批量查询、写争用 |
国家合规性验证流程
┌──────────────────────────────────────────────────────────────────┐
│ NATIONAL CONFORMANCE VALIDATION │
├──────────────────────────────────────────────────────────────────┤
│ │
│ IMPLEMENTER CONFORMANCE SUITE │
│ ┌──────────────┐ ┌──────────────────────┐ │
│ │ MCP Server │────────────>│ 1. Unit Tests │ │
│ │ Deployment │ │ Fixture Validation│ │
│ │ (5 Servers) │ ├──────────────────────┤ │
│ └──────────────┘ │ 2. Positive Tests │ │
│ │ Core + Clinical │ │
│ ┌──────────┐ │ + Imaging │ │
│ │ BlackBox │ ├──────────────────────┤ │
│ │ Harness │────────────>│ 3. BlackBox Tests │ │
│ │ (stdin/ │ │ All 5 Servers + │ │
│ │ HTTP/ │ │ Cross-Server │ │
│ │ Docker) │ ├──────────────────────┤ │
│ └──────────┘ │ 4. Adversarial Tests │ │
│ │ Bypass + Tamper + │ │
│ │ Replay + Inject │ │
│ ├──────────────────────┤ │
│ │ 5. Security Tests │ │
│ │ SSRF + Token + │ │
│ │ Chain Integrity │ │
│ ├──────────────────────┤ │
│ │ 6. Interop Tests │ │
│ │ Cross-Server + │ │
│ │ Schema Validation │ │
│ └───────────┬──────────┘ │
│ │ │
│ ┌───────────▼──────────┐ │
│ │ Conformance Report │ │
│ │ Level 1–5 Certified │ │
│ │ 668 Tests Validated │ │
│ │ (337 unit + 331 conf│ │
│ └──────────────────────┘ │
└──────────────────────────────────────────────────────────────────┘看 一致性/README.md 获取完整的测试线束文档。
______________________________________________________________________
国家互操作性试验台
v0.8.0引入了一个国家互操作性测试平台 interop-testbed/ 这证明了跨多站点集群的跨站点行为、部署一致性和故障模式。
试验台架构
graph TB
subgraph "Site A (Hospital)"
A_AZ[AuthZ] --> A_FHIR[FHIR]
A_FHIR --> A_DICOM[DICOM]
A_DICOM --> A_LDG[Ledger]
A_LDG --> A_PROV[Provenance]
A_EHR[Mock EHR] --> A_FHIR
A_PACS[Mock PACS] --> A_DICOM
end
subgraph "Site B (Cancer Center)"
B_AZ[AuthZ] --> B_FHIR[FHIR]
B_FHIR --> B_DICOM[DICOM]
B_DICOM --> B_LDG[Ledger]
B_LDG --> B_PROV[Provenance]
B_EHR[Mock EHR] --> B_FHIR
B_PACS[Mock PACS] --> B_DICOM
end
subgraph "Sponsor + CRO"
SP_AZ[Sponsor AuthZ]
SP_LDG[Sponsor Ledger]
CRO_AZ[CRO AuthZ]
CRO_FHIR[CRO FHIR]
end
IDP[Mock Identity Provider]
IDP --> A_AZ
IDP --> B_AZ
IDP --> SP_AZ
IDP --> CRO_AZ
style A_AZ fill:#4A90D9,color:#fff
style B_AZ fill:#4A90D9,color:#fff
style IDP fill:#7B2D8E,color:#fff试验台组件
| 组件 | 路径 | 目的 |
|---|---|---|
| Docker编写 | interop-testbed/docker-compose.yml | 多站点集群(站点A、站点B、赞助商、首席风险官、身份) |
| 人物角色 | interop-testbed/personas/ | 6个演员角色配置(机器人、协调员、监督员、审计员、赞助商、首席风险官) |
模拟EHR。 interop-testbed/mock_services/mock_ehr.py | MultiPR4合成患者数据 | |
| 模拟PACS | interop-testbed/mock_services/mock_pacs.py | 合成DICOM成像元数据 |
| 模拟身份 | interop-testbed/mock_services/mock_identity.py | OIDC/JWT代币提供商 |
互操作性场景
| 场景 | 文件 | 验证 |
|---|---|---|
| 跨站点来源 | scenarios/cross_site_provenance.py | 跨站点边界的DAG完整性 |
| 审核回放 | scenarios/audit_replay.py | 具有每条记录验证的哈希链重放 |
| 代币交换 | scenarios/token_exchange.py | 跨站点令牌发放、验证、撤销 |
| 部分停运 | scenarios/partial_outage.py | 服务发生故障时性能下降 |
| 模式漂移 | scenarios/schema_drift.py | 版本之间的主要/次要/补丁漂移检测 |
| 状态叠加 | scenarios/state_overlay.py | 加利福尼亚州CCPA、纽约州PHL/SHIELD、美国食品药品监督管理局21 CFR第11部分覆盖层 |
| 机器人工作流程 | scenarios/robot_workflow.py | 8步机器人辅助程序工作流程 |
| 现场入职培训 | scenarios/site_onboarding.py | 10检查现场认证清单 |
______________________________________________________________________
认证和证据生成
v0.8.0在下添加了认证工具 tools/certification/ 用于生成一致性报告、证据包、站点认证和模式兼容性分析。
| 工具 | 文件 | 目的 |
|---|---|---|
| 报告生成器 | tools/certification/report_generator.py | JSON、JUnitXML、HTML、Markdown一致性报告 |
| 证据包 | tools/certification/evidence_pack.py | SHA-256哈希证据包与清单 |
| 现场认证 | tools/certification/site_certification.py | 基于配置文件的一致性级别验证 |
| 架构差异 | tools/certification/schema_diff.py | 中断/非中断模式更改检测 |
______________________________________________________________________
基准测试
v0.8.0增加了以下性能基准 benchmarks/ 用于测量延迟、吞吐量、链验证和并发访问性能。
| 基准 | 文件 | 度量 |
|---|---|---|
| 延迟时间 | benchmarks/latency_benchmark.py | 审计哈希计算、链构建定时 |
| 吞吐量 | benchmarks/throughput_benchmark.py | 每秒AuthZ、审计、来源操作数 |
| 链条 | benchmarks/chain_benchmark.py | 10/50/100/500条记录的链结构 |
| 并发 | benchmarks/concurrent_benchmark.py | 1/2/4/8线程时的线程池性能 |
| 报告 | benchmarks/report.py | 使用基线回归检测生成报告 |
______________________________________________________________________
配置文件和合规性级别定义
版本0.3.0引入了8个一致性配置文件 /profiles/ 正式确定每个部署层和监管管辖区的要求。每个配置文件都定义了强制工具、可选工具、禁止操作、所需模式、监管覆盖和一致性测试子集。
配置文件架构
graph TB
subgraph Core Profiles
BP[Base Profile
AuthZ + Audit + Errors]
CR[Clinical Read
+ FHIR + HIPAA De-ID]
IG[Imaging-Guided
+ DICOM + Modalities]
MF[Multi-Site Federated
+ Provenance + DAG]
RP[Robot-Assisted
Procedure + USL]
end
subgraph Regulatory Overlays
CA[California
CCPA/CPRA]
NY[New York
PHL/SHIELD]
FDA[FDA
21 CFR Part 11]
end
BP --> CR
CR --> IG
IG --> MF
MF --> RP
CA -.-> MF
CA -.-> RP
NY -.-> MF
NY -.-> RP
FDA -.-> BP
FDA -.-> CR
FDA -.-> IG
FDA -.-> MF
FDA -.-> RP
style BP fill:#4A90D9,color:#fff
style CR fill:#50C878,color:#fff
style IG fill:#F5A623,color:#fff
style MF fill:#D0021B,color:#fff
style RP fill:#7B2D8E,color:#fff
style CA fill:#333,color:#fff
style NY fill:#333,color:#fff
style FDA fill:#333,color:#fff个人简介
| 配置文件 | 文件 | 必备工具 | 必需架构 | 测试计数 |
|---|---|---|---|---|
| 基本配置 | profiles/base-profile.md | authz_* (5), ledger_* (5) | authz决策、审核记录、错误响应、运行状况、能力描述符 | 19 |
| 临床阅读 | profiles/clinical-read.md | + fhir_* (4) | +fhir读取、fhir搜索、同意状态 | 29 |
| 影像引导肿瘤学 | profiles/imaging-guided-oncology.md | + dicom_* (4) | +dicom查询,机器人能力配置文件 | 39 |
| 多站点联合 | profiles/multi-site-federated.md | + provenance_* (5) | +来源记录、现场能力概况 | 48 |
| 机器人辅助手术 | profiles/robot-assisted-procedure.md | 全部23个工具 | +机器人能力配置文件、任务顺序 | 58 |
监管覆盖配置文件
| 覆盖 | 文件 | 管辖权 | 关键要求 |
|---|---|---|---|
| 加利福尼亚州CCPA | profiles/state-us-ca.md | 美国加利福尼亚州 | CCPA/CPRA消费者权利、敏感的PI保护、数据最小化 |
| 纽约健康资讯 | profiles/state-us-ny.md | 美国纽约州 | 《公共卫生法》第27-F条(艾滋病毒),《盾牌法》,《医疗卫生法》,第33条,《纽约州刑事司法部第10号法令》 |
| 美国食品药品监督管理局21 CFR第11部分 | profiles/country-us-fda.md | 美国(联邦) | 电子记录、电子签名、审计跟踪、系统验证 |
国家概况部署图
┌─────────────────────────────────────────────────────────────────────┐
│ NATIONAL PROFILE DEPLOYMENT │
├─────────────────────────────────────────────────────────────────────┤
│ │
│ ┌───────────────────┐ ┌──────────────────┐ ┌──────────────────┐ │
│ │ CALIFORNIA SITE │ │ NEW YORK SITE │ │ OTHER US SITES │ │
│ │ │ │ │ │ │ │
│ │ Profile: L5 │ │ Profile: L4 │ │ Profile: L1–L5 │ │
│ │ + CCPA Overlay │ │ + NY Overlay │ │ + FDA Overlay │ │
│ │ + FDA Overlay │ │ + FDA Overlay │ │ │ │
│ │ │ │ │ │ │ │
│ │ Extra: CPRA │ │ Extra: PHL 27-F │ │ State overlays │ │
│ │ sensitive PI, │ │ HIV protections,│ │ applied per │ │
│ │ data minimization│ │ SHIELD Act, │ │ jurisdiction │ │
│ │ │ │ MHL Article 33 │ │ │ │
│ └───────────────────┘ └──────────────────┘ └──────────────────┘ │
│ │
│ ┌───────────────────────────────────────────────────────────────┐ │
│ │ FDA 21 CFR PART 11 — ALL SITES │ │
│ │ Audit trails · Electronic signatures · System validation │ │
│ │ Record integrity · Authority checks · Change control │ │
│ └───────────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────────┘______________________________________________________________________
机器可读JSON模式
版本0.2.0引入了13个机器可读的JSON模式文件(JSON模式草案2020-12),这些文件正式确定了全国网络中所有MCP服务器交互的数据契约。这些模式为每个符合要求的实现提供了自动输入/输出验证、一致性测试和代码生成。
graph TB
subgraph Server Schemas
ARS["audit-record"]
PRS["provenance-record"]
ADS["authz-decision"]
DQS["dicom-query"]
FRS["fhir-read"]
FSS["fhir-search"]
end
subgraph Operational Schemas
ERS["error-response"]
HSS["health-status"]
CDS["capability-descriptor"]
end
subgraph Trial Schemas
RCS["robot-capability"]
SCS["site-capability"]
TOS["task-order"]
CSS["consent-status"]
end
CDS --> SCS
RCS --> SCS
RCS --> TOS
CSS --> TOS
ADS --> ARS
DQS --> ARS
FRS --> ARS
FSS --> ARS
PRS --> ARS
style ARS fill:#333,color:#fff
style PRS fill:#333,color:#fff
style ADS fill:#4A90D9,color:#fff
style DQS fill:#50C878,color:#fff
style FRS fill:#50C878,color:#fff
style FSS fill:#50C878,color:#fff
style ERS fill:#D0021B,color:#fff
style HSS fill:#F5A623,color:#fff
style CDS fill:#7B2D8E,color:#fff
style RCS fill:#F5A623,color:#fff
style SCS fill:#4A90D9,color:#fff
style TOS fill:#D0021B,color:#fff
style CSS fill:#7B2D8E,color:#fff架构摘要
| 架构 | 来源 | 目的 |
|---|---|---|
capability-descriptor | 服务器功能广告 | 服务器名称、版本、工具、一致性级别 |
robot-capability-profile | trial_robot_agent.py + trial_schedule.json | 平台、机器人类型、USL评分、安全先决条件 |
site-capability-profile | 站点描述符 | 管辖权、服务器、数据驻留、IRB批准 |
task-order | trial_schedule.json 结构 | 程序类型、机器人分配、调度、安全检查 |
audit-record | ledger_server.py AuditRecord | 21 CFR第11部分的哈希链审计记录 |
provenance-record | provenance_server.py ProvenanceRecord | 带有SHA-256指纹的DAG谱系 |
consent-status | 同意状态机 | 具有6个粒度类别的患者同意 |
authz-decision | authz_server.py 使用匹配规则评估 | RBAC决策 |
dicom-query | dicom_server.py dicom_query | 基于角色权限的dicom查询 |
fhir-read | fhir_server.py fhir_read | 读取带有HIPAA去标识的kubectl R4 |
fhir-search | fhir_server.py fhir_search | 带有结果上限的kubectl R4搜索 |
error-response | servers/common/__init__.py | 9码分类法的标准化错误 |
health-status | servers/common/__init__.py | 具有依赖关系和指标的服务器健康状况 |
______________________________________________________________________
一致性级别
该标准定义了五个合规级别。每个级别都建立在前一个级别的基础上,根据每个级别添加了必须/应该/可能的要求 RFC 2119.
graph TB
subgraph LEVELS["Conformance Level Progression"]
direction LR
L1["Level 1: Core
AuthZ + Ledger
RBAC, Audit Chain"]
L2["Level 2: Clinical Read
+ FHIR Server
De-ID, Patient Lookup"]
L3["Level 3: Imaging
+ DICOM Server
Modality, RECIST"]
L4["Level 4: Federated
+ Provenance
Multi-Site DAG"]
L5["Level 5: Robot
All 5 Servers
Safety + Task Orders"]
end
L1 --> L2 --> L3 --> L4 --> L5
style L1 fill:#4A90D9,color:#fff
style L2 fill:#50C878,color:#fff
style L3 fill:#F5A623,color:#fff
style L4 fill:#D0021B,color:#fff
style L5 fill:#7B2D8E,color:#fff| 级别 | 名称 | 所需服务器 | 关键功能 |
|---|---|---|---|
| 1--核心 | 核心 | AuthZ,分类账 | 身份验证、授权、审计链 |
| 2--临床阅读 | 临床阅读 | +GetL | GetLR4查询、去识别、患者查找 |
| 3--成像 | 成像 | +DOM | DICOM查询/检索,RECIST测量 |
| 4--联合站点 | 联合站点 | +来源 | 多站点数据沿袭,联合聚合 |
| 5--机器人程序 | 机器人程序 | 全部5个 | 端到端自主机器人临床工作流程 |
看 规格/一致性.md 对于每个级别的完整MUST/SHOULD/MAY矩阵。
______________________________________________________________________
参与者模式
六个参与者与国家MCP基础设施互动。角色是通过默认的拒绝RBAC策略强制执行的。
graph TB
subgraph External Actors
SP[Sponsor]
CRO[CRO]
end
subgraph Site Actors
TC[Trial
Coordinator]
DM[Data
Monitor]
AU[Auditor]
RA[Robot
Agent]
end
subgraph MCP Servers
AZ[AuthZ]
FH[FHIR]
DC[DICOM]
LG[Ledger]
PV[Provenance]
end
SP --> AZ
CRO --> AZ
TC --> AZ
TC --> FH
TC --> DC
DM --> FH
DM --> DC
AU --> LG
RA --> AZ
RA --> FH
RA --> DC
RA --> LG
RA --> PV
style SP fill:#F5A623,color:#fff
style CRO fill:#F5A623,color:#fff
style TC fill:#4A90D9,color:#fff
style DM fill:#50C878,color:#fff
style AU fill:#7B2D8E,color:#fff
style RA fill:#D0021B,color:#fff
style AZ fill:#333,color:#fff
style FH fill:#333,color:#fff
style DC fill:#333,color:#fff
style LG fill:#333,color:#fff
style PV fill:#333,color:#fff| 演员 | 描述 | 默认访问权限 |
|---|---|---|
| 机器人代理 | 执行临床程序的自主物理人工智能系统 | 有范围的IDeread、DICOM查询/检索、账簿追加、来源记录 |
| 审判协调员 | 管理试验操作的临床现场工作人员 | 完整的Contoso和DICOM访问、策略管理 |
| 数据监控 | CRO或申办方代表审查试验数据 | 只读的Contoso和DICOM,无检索,无来源写入 |
| 审计员 | 合规官验证监管合规性 | 分类账查询/验证/回放、链状态 |
| 赞助商 | 资助试验的制药或器械公司 | 政策配置、汇总报告 |
| 首席营收官 | 合同研究组织管理多站点操作 | 跨站点协调,聚合数据访问 |
看 规格/制造商模型.md 对于完整权限矩阵。
______________________________________________________________________
工具合同注册表
该标准定义 23份工具合同 跨五个MCP服务器。每个工具都必须满足中定义的输入验证、输出模式、错误代码和审计要求 规格/工具控制.md.
服务器摘要
| 服务器 | 工具 | 用途 |
|---|---|---|
| trialmcp认证 | authz_evaluate, authz_issue_token, authz_validate_token, authz_list_policies, authz_revoke_token | 默认情况下拒绝RBAC,令牌生命周期 |
| trialmcp fhir | fhir_read, fhir_search, fhir_patient_lookup, fhir_study_status | 带有HIPAA去标识的kubectl R4临床数据 |
| trialmcp dicom | dicom_query, dicom_retrieve_pointer, dicom_study_metadata, dicom_recist_measurements | 基于角色权限的DICOM成像 |
| trialmcp分类账 | ledger_append, ledger_verify, ledger_query, ledger_replay, ledger_chain_status | 哈希链21 CFR第11部分审计跟踪 |
| trialmcp来源 | provenance_register_source, provenance_record_access, provenance_get_lineage, provenance_get_actor_history, provenance_verify_integrity | 基于DAG的数据沿袭和SHA-256指纹识别 |
错误代码分类
所有服务器必须使用标准化的机器可读错误代码: AUTHZ_DENIED, VALIDATION_FAILED, NOT_FOUND, INTERNAL_ERROR, TOKEN_EXPIRED, TOKEN_REVOKED, PERMISSION_DENIED, INVALID_INPUT, RATE_LIMITED.
______________________________________________________________________
安全与隐私
安全模型
graph TB
subgraph Request Flow
REQ[Incoming
Request] --> IV[Input
Validation]
IV --> SSRF[SSRF
Prevention]
SSRF --> RBAC[RBAC Policy
Evaluation]
RBAC --> TOOL[Tool
Execution]
TOOL --> DEID[De-ID /
Pseudonymize]
DEID --> AUDIT[Audit
Record]
AUDIT --> RESP[Response]
end
style REQ fill:#D0021B,color:#fff
style IV fill:#F5A623,color:#fff
style SSRF fill:#F5A623,color:#fff
style RBAC fill:#4A90D9,color:#fff
style TOOL fill:#50C878,color:#fff
style DEID fill:#7B2D8E,color:#fff
style AUDIT fill:#333,color:#fff
style RESP fill:#50C878,color:#fff- 认证:基于令牌的会话,具有角色范围、SHA-256哈希和UTC到期强制
- 授权:默认情况下拒绝RBAC——显式拒绝规则优先于允许规则
- 输入验证:GetLID格式(
^[A-Za-z0-9\-._]+$),DICOM UID格式(^[\d.]+$)URL拒绝以防止SSRF - 隐私:HIPAA安全港18标识符删除,HMAC-SHA256假名化,仅限年份日期泛化
- 正直:SHA-256哈希链,具有规范序列化、创世哈希验证
- 审计:每次工具调用都会生成一份签名的审计记录;用于篡改检测的哈希链
看 规格/安全.md 和 spec/privacy.md 了解全部细节。
______________________________________________________________________
合规
| 标准 | 规范范围 | 监管文件 |
|---|---|---|
| 《美国联邦法规》第21篇第11部分 | 哈希链审计账本、电子签名、审计回放 | 监管/CFR_PART_11.md |
| 《健康保险流通与责任法案》 | 安全港去识别、HMAC假名化,最低限度必要 | 监管/HIPA.md |
| 美国食品药品监督管理局指南 | AI/ML医疗器械框架,预定变更控制 | 监管/US_FDA.md |
| ICH-GCP E6(R2) | 可回放的审计痕迹、电子源数据 | 监管/CFR_PART_11.md |
| IEC 80601标准 | 通过政策执行实现安全约束执行 | 规格/安全.md |
| ISO 14971 | 通过默认拒绝策略进行风险管理 | 规格/安全.md |
| ISO 13482 | 通过范围权限实现机器人安全集成 | 规格/制造商模型.md |
| IRB要求 | 特定于站点的策略模板 | 监管/IRB_SITE_POLICY_EMPLATE.md |
______________________________________________________________________
相对于现有方法的优势
与之前的参考实施(kevinkawchak/mcp-pai肿瘤学试验)相比
| 尺寸 | 参考实施 | 国家标准 |
|---|---|---|
| 范围 | 单站点概念验证 | 适用于所有站点的美国行业标准 |
| 一致性 | 非正式;实现者决定构建什么 | 5个正式的一致性级别,必须/应该/可能 |
| 模式 | Python代码中隐式 | 13个显式JSON模式文件(2020-12草案) |
| 治理 | 存储库级决策 | 章程、决策过程、扩展命名空间 |
| 演员 | 代码中的4个角色(robot_agent, trial_coordinator, data_monitor, auditor)6名演员,包括 sponsor 和 CRO 完整的试验生态系统 | |
| 监管 | README中注明的合规性 | 专用监管覆盖层(FDA、HIPAA、21 CFR第11部分、IRB) |
| 版本控制 | 变更日志驱动 | 具有兼容性策略和扩展命名空间的SemVer |
| 社区 | 贡献者列表 | 全面治理:章程、代码所有者、问题模板、CoC |
与现有肿瘤学试验方法的比较
| 维度 | 传统方法 | 国家MCP标准 |
|---|---|---|
| 整合 | 每个站点的点对点自定义API | 标准化的23工具合约注册表 |
| 安全 | 因实现而异 | 默认情况下统一拒绝RBAC,并防止SSRF |
| 审计 | 数据库日志,专有格式 | 带有链验证的哈希链不可变账本 |
| 隐私 | 特定于站点的去标识 | 强制使用HMAC假名的HIPAA安全港 |
| 机器人学 | 无标准机器人临床协议 | 首个物理AI临床集成国家标准 |
| 多站点 | 手动数据共享协议 | 内置差异隐私的联邦架构 |
| 验证 | 手动测试 | 用于自动验证的机器可读JSON模式 |
与其他用于肿瘤学的MCP/AI服务器方法相比
| 尺寸 | 通用MCP服务器 | 国家MCP-PAI标准 |
|---|---|---|
| 领域 | 通用工具服务 | 专为肿瘤学临床试验而设计 |
| 合规 | 没有监管意识 | FDA、HIPAA、21 CFR第11部分映射到每个工具 |
| 物理AI | 仅限软件代理 | 手术机器人、治疗系统、诊断平台 |
| 来源 | 无数据沿袭 | 基于DAG的沿袭,采用SHA-256指纹识别 |
| 联邦式 | 单实例 | 多站点与隐私保护聚合联合 |
| 审计 | 应用程序日志 | 符合《美国联邦法规》第21篇第11部分的哈希链式账本 |
| 模式 | 临时或无 | 2020-12年13份正式JSON模式草案合同 |
______________________________________________________________________
入门指南
对于实施者
- 审查 规格/芯.md 协议范围和设计原则
- 查看 采用路线图 分阶段实施计划
- 选择一个 一致性配置文件 适合您的部署
- 查看 术语表 标准术语
- 审查配置文件的强制工具、禁止的操作和所需的模式
- 学习 实施参考 (非规范)用于实施指导
- 执行所需的工具合同 规格/工具控制.md
- 根据以下内容验证服务器输入/输出 JSON模式 针对您的个人资料级别
- 应用以下安全要求 规格/安全.md 和 spec/privacy.md
- 应用适用的状态覆盖(加利福尼亚, 纽约)以及 美国食品药品监督管理局覆盖层
- 跑吧 单元测试 与参考实施相比:
pytest tests/ -v - 跑吧 一致性测试套 反对您的实施:
pytest conformance/ -v - 根据目标配置文件的一致性测试子集进行验证
适用于监管机构和合规官
- 审查 监管/US_FDA.md 与美国食品药品监督管理局(FDA)保持一致
- 审查 监管/HIPA.md 隐私合规
- 审查 监管/CFR_PART_11.md 电子记录合规性
- 使用 监管/IRB_SITE_POLICY_EMPLATE.md 用于站点级策略
对于贡献者
- 阅读 代码_OF_CONDUCT.md
- 审查 治理/CHARTER.md
- 跟随 治理/决策_PROCESS.md 提出变更建议
- 使用适当的 问题模板 征求建议书
______________________________________________________________________
治理
本规范受中描述的开放过程的约束 治理/CHARTER.md.关键原则:
- 共识驱动:重大规范变更需要社区审查
- 扩展友好:供应商扩展使用
x-{vendor}命名空间 治理/EXTENSIONS.md - 版本稳定:SemVer具有明确的兼容性保证
______________________________________________________________________
成熟:该存储库提供规范性规范(/spec/),机器可读模式(/schemas/),一致性配置文件(/profiles/),1级示例性实现(/reference/),生产形状的MCP服务器包(/servers/)具有持久性抽象和Docker/Kubernetes部署基础架构(/deploy/),生产级集成适配器,用于Contoso、DICOM、身份、临床操作、隐私和联邦(/integrations/)机器人安全和执行边界(/safety/),一个黑盒一致性线束(/conformance/harness/),国家互操作性试验台(/interop-testbed/)、认证和证据生成工具(/tools/certification/),以及性能基准(/benchmarks/).看 采用路线图 从规范到验证部署的路径。
______________________________________________________________________
存储库结构
已标记的目录 规范的 定义要求。已标记的目录 非规范性 是信息丰富的例子。
national-mcp-pai-oncology-trials/
├── servers/ # Production-shaped MCP server packages (v0.7.0)
│ ├── common/ # Shared server infrastructure
│ │ ├── transport.py # stdin/stdout MCP protocol (JSON-RPC 2.0)
│ │ ├── routing.py # Tool-call request dispatching
│ │ ├── middleware.py # Auth and audit middleware
│ │ ├── errors.py # 9-code error taxonomy
│ │ ├── config.py # Env vars, YAML/JSON config files
│ │ ├── logging.py # Structured JSON logging
│ │ ├── health.py # Health/readiness endpoints
│ │ └── validation.py # Schema validation utilities
│ ├── storage/ # Persistence layer
│ │ ├── base.py # Abstract storage interface
│ │ ├── memory.py # In-memory adapter (testing)
│ │ ├── sqlite_adapter.py # SQLite adapter (single-site)
│ │ ├── postgres_adapter.py # PostgreSQL adapter (production)
│ │ ├── migrations.py # Schema migration utilities
│ │ └── factory.py # Config-driven backend selection
│ ├── trialmcp_authz/ # Authorization server
│ ├── trialmcp_fhir/ # FHIR clinical data server
│ ├── trialmcp_dicom/ # DICOM imaging server
│ ├── trialmcp_ledger/ # Audit ledger server
│ └── trialmcp_provenance/ # Provenance server
├── conformance/ # NORMATIVE conformance test suite (331 tests)
│ ├── conftest.py # Shared fixtures, schema validation helpers
│ ├── fixtures/ # Test fixture data (extracted from schemas)
│ ├── unit/ # Unit-level fixture construction tests (v0.8.0)
│ ├── positive/ # Correct behavior validation
│ ├── negative/ # Invalid input rejection
│ ├── security/ # Security control validation
│ ├── interoperability/ # Multi-server coordination
│ ├── integration/ # In-process server integration tests (v0.8.0)
│ ├── blackbox/ # Black-box conformance tests (v0.8.0)
│ ├── adversarial/ # Adversarial security tests (v0.8.0)
│ └── harness/ # Black-box conformance harness (v0.8.0)
│ ├── client.py # MCP client (stdin/HTTP/Docker)
│ ├── config.py # Harness configuration
│ ├── runner.py # CLI runner + report generation
│ ├── data_seeder.py # Synthetic test data generation
│ └── adapters/ # Pluggable transport adapters
├── interop-testbed/ # National interoperability testbed (v0.8.0)
│ ├── docker-compose.yml # Multi-site cluster deployment
│ ├── personas/ # 6 actor persona configurations
│ ├── scenarios/ # 8 interop test scenarios
│ └── mock_services/ # Mock EHR, PACS, Identity Provider
├── tools/ # Developer tools and certification (v1.0.0)
│ ├── cli/ # CLI toolchain (trialmcp init/scaffold/validate/certify)
│ ├── codegen/ # Schema-driven code generation (Python, TypeScript, OpenAPI)
│ └── certification/ # Certification and evidence tools
│ ├── report_generator.py # JSON/JUnit/HTML/Markdown reports
│ ├── evidence_pack.py # SHA-256 evidence bundles
│ ├── site_certification.py # Profile-based site validation
│ └── schema_diff.py # Schema compatibility analysis
├── benchmarks/ # Performance benchmarks (v0.8.0)
│ ├── latency_benchmark.py # Latency measurement
│ ├── throughput_benchmark.py # Throughput measurement
│ ├── chain_benchmark.py # Chain verification scaling
│ ├── concurrent_benchmark.py # Concurrent access testing
│ └── report.py # Report generation + regression detection
├── integrations/ # Production-grade integration adapters (v0.9.0)
│ ├── fhir/ # FHIR R4 adapters (mock, HAPI, SMART, de-ID, terminology)
│ ├── dicom/ # DICOM adapters (mock, Orthanc, dcm4chee, DICOMweb, RECIST)
│ ├── identity/ # Identity adapters (OIDC/JWT, mTLS, OPA, KMS)
│ ├── clinical/ # Clinical ops (eConsent, scheduling, provenance export)
│ ├── privacy/ # Privacy modules (access control, de-ID, budgets, residency)
│ └── federation/ # Federated coordination (coordinator, aggregation, policy)
├── safety/ # Robot safety and execution boundaries (v0.9.0)
│ ├── gate_service.py # 5-gate pre-procedure safety matrix
│ ├── robot_registry.py # Robot capability registry with USL scoring
│ ├── task_validator.py # Task-order validator with safety constraints
│ ├── approval_checkpoint.py # Human-in-the-loop approval gates
│ ├── estop.py # Emergency stop controller
│ ├── procedure_state.py # 8-state procedure state machine
│ └── site_verifier.py # Site capability verification
├── deploy/ # Deployment infrastructure (v0.7.0)
│ ├── docker/ # Dockerfiles for each server + all-in-one
│ ├── docker-compose.yml # Single-site deployment (5 servers)
│ ├── docker-compose.multi-site.yml # Multi-site (Site A + B + shared ledger)
│ ├── kubernetes/ # Reference K8s manifests
│ ├── helm/trialmcp/ # Helm chart for configurable deployment
│ ├── config/ # Example YAML config files per server
│ └── .env.example # Environment configuration template
├── examples/ # End-to-end demos (v0.7.0)
│ └── quickstart/ # 5-minute local demo
├── reference/ # NON-NORMATIVE illustrative implementations
│ ├── python/ # Python illustrative implementation
│ └── typescript/ # TypeScript illustrative implementation
├── profiles/ # NORMATIVE conformance profiles and overlays
├── schemas/ # NORMATIVE machine-readable JSON schemas (13)
├── spec/ # NORMATIVE specification (9 modules)
├── governance/ # Governance framework
├── regulatory/ # NORMATIVE regulatory overlays
├── models/ # Auto-generated typed models from schemas
├── scripts/ # Build and generation scripts
├── tests/ # Unit tests (337 tests)
├── sdk/ # Client SDKs (v1.0.0)
│ ├── python/ # Python SDK (trialmcp_client)
│ └── typescript/ # TypeScript SDK
├── paper/ # Research paper (v1.2.0)
│ ├── National_MCP_Servers_for_Physical_AI_Oncology_Clinical_Trial_Systems.pdf
│ ├── National_MCP_Servers_for_Physical_AI_Oncology_Clinical_Trial_Systems.tex
│ ├── arxiv.sty # Modified arxiv-style template
│ ├── references.bib # BibTeX bibliography
│ ├── latex-source-code.zip # Complete LaTeX source archive
│ ├── orcid_icon.pdf # ORCID icon for author attribution
│ ├── orcid_icon.tex # ORCID icon LaTeX source
│ └── prior/ # Prior version paper files (v1.1.0)
├── docs/ # Documentation and GitHub Pages demonstration (v1.2.0)
│ ├── index.html # GitHub Pages landing page (single-page application)
│ ├── css/style.css # Core styles (medical/clinical design system)
│ ├── css/diagrams.css # Diagram-specific styles and animations
│ ├── js/app.js # Navigation, scroll behavior, tabs
│ ├── js/diagrams.js # Interactive diagram rendering engine
│ ├── js/simulator.js # National deployment topology simulator
│ ├── js/conformance.js # Conformance level explorer
│ ├── data/topology.json # National 3-tier deployment topology data
│ ├── data/servers.json # 5 MCP server metadata, 23 tools
│ ├── data/safety.json # 8 safety module definitions
│ ├── .nojekyll # Bypass Jekyll processing
│ ├── architecture.md # Normative architecture document
│ ├── adoption-roadmap.md # Four-phase adoption roadmap
│ ├── glossary.md # Terminology glossary
│ ├── adr/ # Architecture Decision Records
│ ├── governance/ # Governance documentation
│ ├── guides/ # Stakeholder guides
│ ├── mcp-process/ # MCP process diagrams
│ ├── operations/ # Operations documentation
│ └── walkthroughs/ # Profile walkthroughs
├── peer-review/ # External peer review responses and prompts
├── pyproject.toml # Python project config (entry points, ruff, pytest)
├── changelog.md # Version history
├── releases.md # Release notes
└── prompts.md # Prompt archive______________________________________________________________________
参考文献
- Kawchak,K.(2026)。 *TrialMCP:用于物理AI肿瘤学临床试验系统的MCP服务器*.DOI: 10.5281/芝诺18869776
- Kawchak,K.(2026)。 *物理AI肿瘤学试验:临床试验中机器人系统的端到端框架*.DOI: 10.5281/芝诺.18445179
- Kawchak,K.(2026)。 *PAI肿瘤学试验FL:物理AI肿瘤学试验的联合学习*.DOI: 10.5281/芝诺.18840880
相关存储库
- kevinkawchak/mcp-pai肿瘤学试验 --参考实施(单站点概念验证)
- kevinkawchak/物理人工智能肿瘤学试验 --具有USL评分和患者指令的物理AI框架
- kevinkawchak/pai肿瘤试验fl --具有隐私和监管模块的联合学习框架
______________________________________________________________________
贡献者
______________________________________________________________________
*本规范根据 MIT许可证所有模块都用于标准开发。在临床环境中使用任何符合要求的实施方案之前,需要独立的临床验证、IRB批准和监管机构批准。*
