Skip to main content
Glama

MedEval MCP Server

実行中のMedEval医療機器規制ワークスペースへの認証付きStreamable HTTP MCPアクセス。

公開エンドポイント: https://xiaoyuu.me/mcp

このサーバーは、MedEvalのプロジェクト選択、エビデンス取得、CEP/CERセクションコンテキスト、Agentの可観測性、生成/評価タスク制御、および不変のドキュメントリビジョンを、Codex互換のMCPクライアントに公開します。

セキュリティモデル

  • すべてのMCPリクエストにはAuthorization: Bearer <token>が必要です。

  • MCPプロセスは127.0.0.1にバインドされ、NginxのみがHTTPS経由で公開します。

  • アダプターはループバックのMedEval APIのみを呼び出せます。

  • 削除、クリーンアップ、キャンセル、ロールバック、または任意のサーバーファイルアップロードツールは公開されません。

  • アクセストークンはサーバー上の/etc/medeval-mcp.envにのみ保存され、決してコミットしてはなりません。

  • このデプロイメントは1つの共有MedEvalインスタンスを使用します。トークンを持つ人は誰でもそのプロジェクトを検査し、公開された書き込みツールを呼び出すことができます。テナント分離が必要な場合は、別のデプロイメント/トークンを使用してください。

MedEval自体は、サーバー運用者が設定したモデルおよび文献プロバイダーを引き続き呼び出すことができます。MCPアダプターがプライベートであるという理由だけで、それらの下流操作がオフラインであると想定しないでください。

Related MCP server: AuroraDocs MCP Server

Codexでの使用

Codexはベアラートークン付きの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でパッチを適用し、結果のdiffを検証します。

製品の事実はアップロードされた製品資料から取得する必要があります。外部文献は補足的なエビデンスであり、意図された用途、適応症、仕様、リスク、または試験結果を黙って置き換えてはなりません。

利用可能なツール

読み取り専用ツール:

  • 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