Skip to main content
Glama

MedEval MCP Server

通过 Streamable HTTP MCP 对正在运行的 MedEval 医疗器械监管工作区进行经过身份验证的访问。

公共端点:https://xiaoyuu.me/mcp

该服务器向兼容 Codex 的 MCP 客户端提供 MedEval 项目选择、证据检索、CEP/CER 章节上下文、Agent 可观测性、生成/评估任务控制以及不可变的文档修订。

安全模型

  • 每个 MCP 请求都需要 Authorization: Bearer <token>。

  • MCP 进程绑定到 127.0.0.1;仅由 Nginx 通过 HTTPS 暴露。

  • 该适配器只能调用环回 MedEval API。

  • 不暴露任何删除、清理、取消、回滚或任意服务器文件上传工具。

  • 访问令牌仅存储在服务器上的 /etc/medeval-mcp.env 中,且绝不能提交到版本库。

  • 此部署使用一个共享的 MedEval 实例。任何持有令牌的人都可以查看其项目并调用其暴露的写入工具。当需要租户隔离时,请使用单独的部署/令牌。

MedEval 本身仍可调用服务器操作员配置的模型和文献提供方。不要仅因为 MCP 适配器是私有的,就认为这些下游操作处于离线状态。

Related MCP server: AuroraDocs MCP Server

配合 Codex 使用

Codex 支持带 Bearer 令牌的 Streamable HTTP MCP 服务器。请将令牌放在环境变量中,而不是放在 config.toml 中。

1. 设置令牌

PowerShell:

$env:MEDEVAL_MCP_TOKEN = "the-token-provided-by-the-server-owner"

macOS/Linux:

export MEDEVAL_MCP_TOKEN='the-token-provided-by-the-server-owner'

2. 配置 Codex

将此添加到 ~/.codex/config.toml:

[mcp_servers.medeval]
url = "https://xiaoyuu.me/mcp"
bearer_token_env_var = "MEDEVAL_MCP_TOKEN"
tool_timeout_sec = 1800
startup_timeout_sec = 30
default_tools_approval_mode = "writes"

重启 ChatGPT 桌面应用、Codex CLI 或 IDE 扩展。使用 /mcp 验证 medeval 是否已连接。

writes 审批模式允许只读检查正常运行,同时在进行生成、评估、工作区创建或文档修补之前提示确认。

典型工作流程

  1. 调用 medeval_health。

  2. 调用 medeval_list_projects;切勿猜测工作区或任务 ID。

  3. 需要时通过 xiaoyuu.me 上传源材料。远程 MCP 特意无法读取客户端计算机上的路径。

  4. 使用 medeval_search_project_evidence 或 medeval_build_section_context 进行可追溯的检索。

  5. 仅在获得明确授权后启动生成/评估,并保留返回的任务 ID。

  6. 检查 medeval_get_task_progress、medeval_list_runs 和 medeval_get_run,而不是盲目地重新提交慢任务。

  7. 对于编辑,先读取当前修订版,使用其 base_revision_id 进行修补,然后验证生成的差异。

产品事实必须来自上传的产品材料。外部文献是支持性证据,不得静默替代预期用途、适应症、规格、风险或测试结果。

可用工具

只读工具:

  • medeval_health

  • medeval_list_projects

  • medeval_get_workspace

  • medeval_list_workspace_documents

  • medeval_list_runs

  • medeval_get_run

  • medeval_get_agent_context

  • medeval_list_project_documents

  • medeval_search_project_evidence

  • medeval_build_section_context

  • medeval_list_generation_templates

  • medeval_get_task_progress

  • medeval_get_generation_task

  • medeval_list_document_revisions

  • medeval_read_document_revision

  • medeval_diff_document_revisions

非破坏性写入工具:

  • medeval_create_workspace

  • medeval_start_generation

  • medeval_start_evaluation

  • medeval_patch_document_revision

运行您自己的实例

要求:

  • Python 3.11+

  • 同一主机上可访问的 MedEval FastAPI 后端

  • 用于公共访问的 HTTPS 反向代理

git clone https://github.com/hanxiaoyu-cmd/medeval-mcp-server.git
cd medeval-mcp-server
python3 -m venv .venv
. .venv/bin/activate
python -m pip install -e .
cp .env.example .env

从 .env 导出变量,然后运行:

python -m medeval_mcp_server

默认监听地址为 127.0.0.1:8765;MCP 路由为 /mcp,公共健康检查路由为 /healthz。

生产部署

示例 systemd 和 Nginx 文件位于 deploy/ 下:

  • medeval-mcp.service 运行一个非特权、加固的进程。

  • nginx-location.conf 无缓冲地代理 /mcp,并保持长时间工具调用不中断。

使用以下命令生成令牌:

python -c 'import secrets; print(secrets.token_urlsafe(36))'

将其存储在根用户可读的环境文件中:

MEDEVAL_MCP_TOKEN=<generated-token>
MEDEVAL_API_BASE_URL=http://127.0.0.1:8000
MEDEVAL_MCP_PUBLIC_HOSTS=your-domain.example,127.0.0.1,localhost

将文件权限设置为 600,使用 nginx -t 验证 Nginx,并在共享令牌之前同时验证未认证请求被拒绝以及认证后的 MCP 初始化。

开发

python -m pip install -e ".[dev]"
python -m pytest
python -m compileall -q src

许可证

MIT

Related MCP Connectors

Related MCP Servers