MEVA Health AI MCP Server
MEVA
Medical Evidence Verification Agent
機能: MEVAは、AIが生成した医療記録のクレームが、取得された合成FHIRエビデンスに基づいているかどうかを、決定論的(非AI)検証器を使って評価します。診断は行わず、治療アドバイスもせず、実際の患者データも使用しません。
🧪 ライブサンドボックス
ブラウザでMEVAを試す — OllamaもAPIキーもインストールも不要です。
▶ ライブサンドボックスを開く
合成データのみ — Syntheaが生成した架空の患者21人
決定論的検証器 — すべての結果はモデルの推測ではなく、素のPythonによるエビデンス照合から得られます
公開サンドボックスではAIモデルは実行されません — 自分でクレームを作成し、MEVAが実際に記録された(合成)データと照合します
ライブサンドボックスを試す · クイックスタート · ベンチマーク手法 · 貢献
MEVAは、医療チャットボット、診断AI、臨床意思決定支援ツール、治療推奨システム、または医療機器ではありません。 臨床的検証は行われていません。すべての患者データは100%合成です。完全な声明については、以下のスコープと安全性および
docs/safety-and-scope.mdを参照してください。
Related MCP server: MediLinkAI
MEVAの実際の動作
公開ホスト型サンドボックスのスクリーンショット — 合成データのみであり、医療アドバイスではなく、ホスト型サンドボックスではAIモデルは実行されません(すべての結果は、モデルの推測ではなくMEVAの決定論的検証器によるものです)。
ガイド付きモード

ガイド付きモード — 架空の患者を選び、シンプルな平易な英語のワークフローでクレームを検証します。
エビデンスに基づく検証

MEVAは、記録された合成FHIRエビデンスに対してクレームをチェックし、SUPPORTED、CONTRADICTED、UNSUPPORTED、またはUNVERIFIABLEを返します。
高度なモード

高度なモード — 開発者、研究者、コントリビューター向けの技術的なエビデンスエクスプローラーと構造化クレームコントロール。
MEVAが存在する理由
ローカルAIエージェントはツールを呼び出し、実データを取得し、構造化された「回答」を生成できます。しかし、その構造化された回答が、エージェントが取得したエビデンスに実際に一致することを強制するものはありません。MEVAは、モデル自身の正しさに関する自己申告を決して信頼しない検証器を用いて、そのギャップを直接測定します。
アーキテクチャ
flowchart TD
A[Synthetic Synthea FHIR data] --> B[MEVA FHIR layer]
B --> C[MCP tools]
C --> D[Local AI model - via Ollama]
D --> E[Natural-language answer]
E --> F[Claim extraction]
F --> G[Deterministic evidence verifier]
G --> H[Benchmark / report]MEVAは2つの評価モードをサポートしており、別々に報告され、1つのスコアに統合されることはありません(docs/decoupled-evaluation.mdを参照)。
END_TO_END — テスト対象モデルが質問に回答し、その回答をMEVAの構造化された
MedicalClaimスキーマに一度のパスでエンコードします。DECOUPLED — テスト対象モデルは散文でのみ回答します。別の固定された抽出モデルが、保存された散文を構造化クレームに変換し、同じ方法で検証されます。これにより、「モデルが正しい答えを知っていたか」と「モデルがJSONを正しくフォーマットしたか」が分離されます。
どちらのモードでも、最終的な検証ステップ(クレームを実際のエビデンスと照合する)は常に純粋な決定論的Pythonです。どのLLMも、自分自身(または他のモデル)の正しさを判断することはありません。
クイックスタート
git clone https://github.com/Tanz2024/meva-health-ai
cd meva-health-ai
python3 -m venv .venv
source .venv/bin/activate
pip install -e .
pytestMEVAは、このリポジトリをクローンした中から実行するように設計されています(上記のように —
git cloneしてから編集可能インストール)。外部からインストールしたスタンドアロンパッケージではありません。MEVAの合成FHIRフィクスチャ(data/synthetic/synthea/)とベンチマーク定義(benchmarks/)は、リポジトリ相対パスから読み込まれ、インストール可能なパッケージデータとしてバンドルされていません。リポジトリのチェックアウト外でビルドしたwheel/sdistをpip installしても、患者データは利用できません。これは現在の意図されたスコープです(研究/エンジニアリングリポジトリであり、配布ライブラリではありません)。将来これが変わる場合はdocs/publishing-checklist.mdを参照してください。
これにより、オフラインのテストスイート全体が実行されます(AIモデルは不要です — AIなしで実行できるものを参照)。
オプション — ローカルAI:
ollama pull qwen3:4b
python3 examples/verify_local.pyその他の実行可能なスクリプトはexamples/を、MEVAがOllamaと通信する方法はdocs/local-ai.mdを参照してください。
AIなしで実行できるもの(Ollama不要)
MEVAの大部分はAIモデルなしで動作します:
FHIR解析 (
src/meva/fhir/)決定論的エビデンス検証 (
src/meva/verification/)ベンチマークデータセットの読み込みと検証 (
meva.benchmark.validator)完全なオフライン試験スイート (
pytest)検証器チャレンジの例 (
examples/verify_contradiction_demo.py) — これらは、手書きの誤ったクレームを使ってMEVA自身の検証ロジックをテストするもので、ライブモデルは関与しません
Ollamaが唯一必要となるのは、ローカルモデル推論(examples/ask_local.py、examples/chat_local.py)やモデル支援クレーム抽出(examples/run_decoupled_pilot.py、run_decoupled_full.py、run_extractor_fidelity.py)を実際に実行するときだけです。
合成データ
MEVAの公開患者フィクスチャ(data/synthetic/synthea/patient-01.jsonからpatient-21.jsonまで)は、公式のApache-2.0ライセンスのSyntheaジェネレーター(タグv3.4.0に固定)を使用して、このプロジェクトによってローカルで生成されます。固定され、文書化され、再現可能なシードを使用します。実際の患者データはどこにも含まれていません。生成の詳細(正確なコマンド、シード、ファイルごとのSHA-256ハッシュ)はdata/synthetic/synthea/PROVENANCE.mdにあります。完全な状況についてはdocs/synthetic-data.mdを参照してください。そこには、以前の18人の患者セット(Stage 8Aまで使用)がなぜ置き換えられたかも含まれています。その以前のセットは宣言されたライセンスのないリポジトリからコピーされたものであり、もはや公開データセットの一部ではありません(docs/historical-sample-data-provenance.mdを参照)。
ベンチマーク結果
MEVAには記録された2つのベンチマークデータセットがあり、混同してはなりません:
公開再現可能データセット: benchmark v0.4 — 上記のローカル生成されたApache-2.0フィクスチャのみから構築されています(53ケース、16人のユニークな患者。benchmarks/v0.4/manifest.jsonを参照)。v0.4のモデル比較結果は未定です — v0.4に対してqwen3:4b/llama3.2:3bの実行はまだ行われていません。
過去の開発結果: benchmark v0.3 — 以下の完全なqwen3:4b対llama3.2:3bの結果です。これは、現在は削除された以前の患者セットに対して測定されたものです(上記参照)。方法論と調査結果の有効な過去の開発記録として残っていますが、現在の公開v0.4データセットに対する結果ではなく、両者を直接比較してはなりません。完全なレポート: docs/baseline-results-v0.3.md(以下の数値は修正されたStage 7C2.1の検証可能カバレッジ式を使用しています。修正履歴についてはその文書を参照してください。元の修正前の数値もそこに開示されており、隠されてはいません)。
勝者は宣言されません。 グラウンディングスコアは検証可能なカバレッジと併せて読んでください。ごく少数のチェック可能なクレームに基づいて計算された高いグラウンディングスコアは、実際よりも良く見えます。
検索 + END_TO_END 構造化出力メトリクス(v0.3、履歴)
qwen3:4b | llama3.2:3b | |
ツール再現率 | 1.000 | 0.981 |
ツール適合率 | 1.000 | 1.000 |
ツール完全一致 | 1.000 | 0.962 |
エビデンス再現率 | 0.810 | 0.738 |
E2E構造化有効性 | 0.917 | 0.087 |
E2E検証可能カバレッジ | 0.656 | 0.120 |
E2Eグラウンディング | 83% | 70% |
DECOUPLED評価(v0.3、履歴; 別の固定qwen3:4b抽出器)
qwen3:4b | llama3.2:3b | |
DECOUPLED検証可能カバレッジ | 0.990 | 0.987 |
DECOUPLEDグラウンディング | 89% | 80% |
DECOUPLED評価では、両モデルの保存された回答(qwen3:4b自身の回答も含む)に対して、qwen3:4bを固定クレーム抽出器として使用します。これにより、抽出器固有のバイアスが生じる可能性があり、docs/decoupled-evaluation.mdに明示的に文書化されています。END_TO_ENDとDECOUPLEDは異なる質問に答えるものであり、「モデルが良くなった」と読んではなりません。
抽出器の検証 — 抽出器は完璧ではありません
開発(10フィクスチャ) | ホールドアウト(未見の14フィクスチャ) | |
適合率 | 1.000 | 0.929 |
再現率 | 1.000 | 0.813 |
F1 | 1.000 | 0.867 |
クレーム集合完全一致 | 1.000 | 0.857 |
否定クレーム保持 | 1.000 | 1.000 |
属性精度 | 1.000 | 0.750 |
上記の~99%のDECOUPLEDカバレッジ数値を「抽出精度99%」と読んではいけません。 カバレッジは、検証器がチェックできた抽出器の出力の割合を測定します。ここでのホールドアウト数値は、その出力が元の回答内容と実際に一致しているかどうかを測定します。
観察カテゴリーの所見
両モデルとも、観察カテゴリーの質問で異常に低いスコアを示しました。qwen3:4bは20%、llama3.2:3bは0%のグラウンディング(各n=10ケース)。Stage 7D2.2は、すべての観察ケースをMEVAの実際のFHIRデータとツールレイヤーに対して独立に監査し、これらの結果を無効にするインフラストラクチャまたは評価のバグはないことを発見しました。20のモデル・ケースペアのうち18は、真のモデルのグラウンディングエラーです。完全な監査: docs/observation-audit.md。これはベンチマークの挙動を説明するものであり、臨床性能を示すものではありません。
MEVAを試す(決定論的検証のみ、AIモデルなし)
MEVAの決定論的検証器を21人の公開v0.4合成患者に対して試す4つの方法 — いずれもAIモデルは不要です:
公開ホスト型サンドボックス(インストール不要): ライブサンドボックスを開く
ローカルブラウザサンドボックス:
pip install -e ".[playground]"
streamlit run streamlit_app.pyローカルCLIプレイグラウンド:
python3 examples/playground.py demo
python3 examples/playground.py list-patients
python3 examples/playground.py verify --patient-id <id> --category allergy --assertion present --value "Peanut"完全なローカルAIモード(オプション、Ollamaが必要です — 下記のAIなしで実行できるものを参照)。
4つの方法はすべて同じサービスレイヤー(meva.playground)を共有し、MEVAの実際の未変更の検証器を呼び出します。自分でクレーム(カテゴリ/アサーション/値)を指定し、MEVAが実際に記録されたデータと照合して、完全な出典付きでSUPPORTED/CONTRADICTED/UNSUPPORTED/UNVERIFIABLEを返します。4つのモードの違いを含む詳細はdocs/playground.mdを参照してください。
このREADMEの冒頭近くにあるMEVAの実際の動作で、ホスト型サンドボックスのスクリーンショット(ガイド付きモード、検証結果、高度なモード)を参照してください。
ドキュメント
ドキュメント | 内容 |
MEVAとは何か、何でないか — 最初に読むこと | |
合成患者データの来歴 | |
MCPツールレイヤー | |
MEVAがローカルのOllamaモデルとどのように通信するか | |
決定論的検証器 | |
再現性設定が保証すること/保証しないこと | |
ベンチマークエンジン | |
データセットの構築と検証 | |
マルチモデル比較の方法論 | |
END_TO_ENDとDECOUPLEDの両方が存在する理由 | |
クレーム抽出スキーマ契約 | |
観察カテゴリの健全性監査 | |
ベンチマークv0.3完全レポート(履歴) | |
公開フィクスチャ生成の来歴 | |
旧患者セットが置き換えられた理由と方法 | |
公開決定論的検証器プレイグラウンド(CLI) |
適用範囲と安全性
MEVAは合成(Synthea生成)患者データのみを使用します — 実際の患者データは含まれておらず、今後も追加すべきではありません。また、診断や治療の推奨は行わず、臨床的に検証されていません。その指標(Evidence Grounding Score、Verifiable Claim Coverage など)は工学/研究用のベンチマーク指標であり、モデルの主張が取得したエビデンスと一致しているかを測定するものであって、医学的正しさ、診断精度、患者の安全性を測定するものではありません。すべてのAI推論はOllamaを通じてローカルのみで実行され、MEVAが有料またはクラウドのAI APIを呼び出すことはありません。全文: docs/safety-and-scope.md。
コントリビューション
Issueを選ぶ(または提案する)
リポジトリをフォークする
ブランチを作成する
変更を加える
pytestを実行するプルリクエストを開く
完全なセットアップ、テストの詳細、FHIRサポート、ベンチマークケース(合成データのみ)、検証器テスト、モデルアダプターの追加方法: CONTRIBUTING.md。また、CODE_OF_CONDUCT.mdもお読みください。
最初のコントリビューションをお探しですか?
オープンなGitHub Issueを確認してください: https://github.com/Tanz2024/meva-health-ai/issues
開始に適した場所は、good first issue または help wanted とラベル付けされたIssueです。
追加の提案されているコントリビューション分野については docs/contributor-issues.md を、セットアップと提出ガイドラインについては CONTRIBUTING.md を参照してください。
ライセンス
MEVAのソースコードとローカル生成された合成データは、Apache License 2.0の下でライセンスされています。サードパーティの依存関係とモデルにはそれぞれ独自のライセンスがあります — THIRD_PARTY_NOTICES.mdを参照してください。以前の公開再配布ライセンスの問題(ライセンスが宣言されていないリポジトリからコピーされた旧患者セット)は、Stage 8A.1でそのデータをローカル生成のApache-2.0フィクスチャに置き換えることで解決されました — 詳細な履歴は docs/historical-sample-data-provenance.md を参照してください。
引用
MEVA v0.1.0の引用メタデータについては、CITATION.cffを参照してください。
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityCmaintenanceA clean-room SHARP-on-MCP compliant FHIR R4 MCP server that enables AI agents to interact with any FHIR R4 endpoint using SHARP context headers, without server-side OAuth. It provides clinical tools, lab results, imaging, and interactive MCP-UI dashboards.MIT
- Alicense-qualityDmaintenanceClinical decision-support MCP server that lets AI agents reason over live FHIR patient data for medication review, appointment scheduling, and care gap identification.7,813MIT

Agent-Townofficial
Alicense-qualityCmaintenanceA neutral verification court for AI tools that ranks MCP servers by executing them against ground truth and recording results. Enables agents to consult execution records, contribute verdicts, and challenge claims.Apache 2.0- AlicenseAqualityBmaintenanceA Claude-compatible MCP server that exposes health-domain tools over 100% synthetic data, built with security and compliance in mind.4MIT
Related MCP Connectors
Hosted MCP endpoint with realistic fake data for prototyping agents. 12 tools, no setup.
Deterministic fact verification for AI agents — checksums & curated data, not guesses.
Read-only MCP over an agentic SLR workspace with per-claim citation verification
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Tanz2024/meva-health-ai'
If you have feedback or need assistance with the MCP directory API, please join our Discord server