mcpField
M
Mirobody

Mirobody

ローカル
mirobody.aiヘルスケア1.4k今日更新

Mirobody について

Mirobodyは、健康記録を収集し、検査名と単位をローカルで標準化するオープンソースのシステムです。追跡可能な健康記録を必要とする人やエージェント向けに、オフラインの照合機能とMCP経由のデータ照会ツールを備えています。

主な機能

  1. 01検査名をLOINCコードに照合
  2. 02UCUMによる単位の標準化
  3. 03レポート、デバイス、遺伝子ファイルの取り込み
  4. 04測定値と元文書の関連付け
  5. 05エージェントツールによる健康記録の照会
  6. 06照合エンジンのオフライン実行

活用シーン

  1. 01検査レポート間で項目名を統一
  2. 02異なる時期や情報源の健康測定値を比較
  3. 03症状メモをコード化された記録に変換
  4. 04MCPクライアントに健康記録へのアクセスを提供

MCP 対応

Mirobodyは、ログインユーザーの範囲に限定した7つのMCPツールを提供します。4つは健康記録の読み取り用、3つは名称と単位の照合用で、MCPクライアントに記録データと標準化操作を公開します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"ai-thetahealth-mirobody": {
"command": "uvx",
"args": [
"mirobody"
]
}
}
}
起動コマンドuvx mirobody

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypimirobody1.5.9

ツール

6

掲載時のツール一覧 · 1 日前に更新

パラメーター型必須説明
namestringいいえ印字されたとおりの検査名(任意の言語)。
unitstringいいえ印字されたとおりの単位:g/dL、mmol/L、次/分。単位がない場合は省略します。
valuestring|numberいいえ印字されたとおりの結果:13.5、<5、陰性、Positive。
readingsarrayいいえ

詳細

Mirobody

Mirobody

あなたの身体をデータで映し出します。

1つの標準、あらゆる情報源、あなたの全体像をひとつに――健康がこれからどう変化していくのかを理解するための、長く残る記録を作ります。
このオープンソース版では、検査報告書、ウェアラブルデバイス、遺伝子ファイルから、ご自身のマシン上でその記録を作成します。すべての数値の出典をたどることができ、MCP 経由で AI エージェントに公開できます。
1つのコマンドで健康データを標準化したり、ご自身のモデルキーを使って Codespaces でアプリ全体を試したり、アプリ、データ、モデルのすべてを100%ローカルで実行したりできます。

English · 中文 · 日本語

PyPI License: Apache-2.0 GitHub stars

▶ ライブデモ · 1つのコマンドで試す · Codespaces で開く · 100%ローカル

コレステロールがどのように変化したかを質問すると、エージェントは処理の各段階を表示し、検査名の異なる3件の報告書を1つの推移としてグラフ化します。数値に付いた番号付きの出典を開くと、測定値とそのファイルを確認できます

同じ検査に3つの異なる名称が付いた3件の報告書。すべての数値の背後にファイルがある、1つの推移。

どこから始めるか選ぶ

目的こちらから開始必要なもの
名称と単位を標準化する1つのコマンドuv。モデルや API キーは不要です
ブラウザーでアプリ全体を試すGitHub CodespacesGitHub アカウントとご自身のモデル API キー
アプリ、モデル、記録を自分のマシンに置いておくDocker で100%ローカルCompose を使う Docker、16 GB のメモリ。API キーは不要です
Docker を使わず、アプリと記録を自分のマシンに置いておくDocker なしDebian または Ubuntu、PostgreSQL 16、Python 3.12、ご自身のモデル API キー
実行するものを何も用意せず、自分の記録で使うTheta Web または Theta モバイルアプリで Mirobody を試すアカウント

1つのコマンドでエンジンを試す

uv をインストールしたら、ターミナルに次のコマンドを貼り付けてください。

uvx --python 3.12 mirobody resolve "LDL cholesterol" 血红蛋白 ヘモグロビン "Total Kolesterol" 血脂

リポジトリのクローン、Docker、モデル、API キーは不要です。uv が Python とパッケージを準備します。初回実行時には、ダウンロードのためネットワーク接続が必要です。その後、リゾルバーは同梱の語彙を使ってオフラインで動作します。

血红蛋白 と ヘモグロビン はどちらも 718-7 に解決されます。血脂 は未解決のままです。これは1つの検査ではなく、カテゴリを表すためです。同じエンジンが、アプリ全体で名称と単位を標準化します。

mirobody resolve:ヘモグロビンの中国語名と日本語名は同じ LOINC コードに解決され、広いカテゴリ名は未解決のままです

→ Python または MCP からエンジンを使う

Codespaces でアプリ全体を試す

独自のモデル API キーを使って、ブラウザーでウェブアプリを実行できます。GitHub が環境を準備するため、お使いのコンピューターに Docker や Python をインストールする必要はありません。

GitHub Codespaces で開く

  1. codespace を作成し、ターミナルで自動セットアップが完了するまで待ちます。アプリ、Postgres、ワーカー、合成デモデータが起動します。
  2. ターミナルに表示されたセットアップリンクを開き、独自のモデル API キーを入力します:OpenRouter、OpenAI、Gemini、Anthropic、DeepSeek、DashScope、または OpenAI 互換のゲートウェイに対応しています。実際のリクエストが成功した後にのみキーが保存されます。転送されたアプリのポートは、デフォルトで非公開です。
  3. Email code タブで [email protected]、コード 111111 を使ってサインインします。**「コレステロールはどのように変化しましたか?」**と質問します。デモには、自分の記録と、閲覧のみの権限で共有された [email protected] の記録を合わせて、2,019 件の測定値が含まれています。
  4. Data ページで demo/upload/ から合成サンプルをアップロードすると、新しいレポートが記録に追加されます。または、mom の記録に切り替えて、もう一度質問します。

アプリと記録は GitHub のクラウド上で実行され、モデルサービスは処理対象の文書と質問を受け取ります。付属の合成データを使ってお試しください。Codespaces には使用量の上限と料金があり、モデルの使用料金はモデルプロバイダーから請求されます。使い終わったら codespace を停止してください。ご自身のマシンで完全に制御するには、以下のローカル実行手順を使用してください。

すべてを 100% ローカルで実行する

アプリ、記録、モデルはすべてご自身のマシンで実行されます。モデル API キーは不要です。 Docker と Compose でスタックとllama.cppを起動します。小型の回答モデルと文書リーダーが含まれています。

git clone --depth 1 https://github.com/thetahealth/mirobody.git && cd mirobody
COMPOSE_PROFILES=local-cpu ./deploy.sh

メモリを 16 GB 確保し、そのうち少なくとも 8 GB を Docker に割り当ててください。GPU は不要です。Windows では、WSL 2 のターミナルでコマンドを実行してください。初回起動時は、コンテナイメージとモデルの重みをダウンロードするため、ネットワーク接続が必要です。お使いのネットワークからレジストリに接続できない場合、deploy.sh がその旨を表示してミラー経由で再試行します。.env の DOCKER_MIRROR には、独自のミラーを指定します。ダウンロード後は、文書の読み取り、標準化、回答の生成がローカルで実行されます。CPU での回答生成には数分かかることがあります。Mac、NVIDIA、Windows 向けのオプションでは、GPU の使用方法を説明しています。

スクリプトに表示されるアプリのリンクを開きます。ローカルモデルはすでに選択されています。上記と同じデモアカウントでサインインし、質問するかサンプルをアップロードしてください。モデルの選び方では、ローカルの選択肢を比較しています。

初回起動ページ:OpenRouter キーの横でモデル名を編集し、「100% on this machine」を選択すると、ページが llama.cpp サーバーを検出して、提供されているモデルを一覧表示し、両方のモデルが使用可能になります

クラウドモデルを Docker で使いますか? ローカルモデルのプロファイルを指定せずに ./deploy.sh を実行し、表示されたセットアップリンクから独自のモデルキーを貼り付けます。アプリと記録はホスト上に保持されます。モデルサービスは、文書と質問を処理します。

チャットでの計算はすべてのモデルでローカルの Python を使用し、問い合わせた元データを直接処理します。オプションの計算機能には、ローカルの Docker イメージとデーモンへの接続が必要です。セットアップとデータの流れでは、ネイティブアプリケーションとコンテナ化されたアプリケーションについて説明しています。クエリビューには、実行機能を使わずに組み込みの統計情報が表示されます。

→ セルフホストガイド · 使い方 · サーバーへのデプロイ

Docker を使わずに実行する

コンテナーは不要で、レジストリから何かをプルすることもありません。 Debian または Ubuntu では、pgvector を含む PostgreSQL 16 をディストリビューション独自のパッケージからインストールし、アプリをチェックアウトしたディレクトリから直接実行します。Codespaces の手順で行われるインストールと同じです。

git clone --depth 1 https://github.com/thetahealth/mirobody.git && cd mirobody
scripts/install_native.sh   # PostgreSQL, pgvector, the Python package, a .env
scripts/start_native.sh     # the worker and the app on port 18060

表示されたリンクを開き、[email protected]、コード 111111 でサインインしてください。デモ用の記録はすでに登録されています。表示されたセットアップリンクからモデルのキーを設定すると、ドキュメントの抽出と回答生成が利用できます。install_native.sh は sudo を使ってシステムパッケージをインストールし、postgres アカウント向けの sudoers ルールを 1 つ書き込みます。実行中にそのことを明示します。

ローカルモデルは Docker の手順で使用するため、こちらの手順ではモデルサービスを介して回答します。それ以外は、お使いのマシン上に保持されるものの上の行と同じです。記録はインストールした PostgreSQL 内に保存され、名前とコードの対応情報がマシンの外に出ることはありません。

できること

  • 検査機関をまたいでレポートを比較できます。 PDF、スマートフォンで撮影した写真、スプレッドシートなど、合計 23 種類のファイルを 1 つの履歴にまとめられます。各検査値には、読み取ったページへのリンクが付きます。
  • 日常のデータを取り込めます。 Apple Health のエクスポートをインポートするか、Garmin、Oura、Whoop を接続できます。
  • 家族の健康情報を管理できます。 自分の記録を共有する人を招待したり、サインインしない親の記録を管理したりできます。
  • 健康日誌を書けます。 headache since last night, BP 150/95, no fever は、コード化された症状と 2 つの検査値に変換されます。「発熱なし」は発熱として記録されません。
  • 遺伝子データを調べられます。 23andMe、AncestryDNA、WeGene のエクスポート、または VCF をアップロードして、rsID、遺伝子、領域で質問できます。薬に関する質問には CPIC の情報を提示しますが、服薬内容を変更することはありません。
  • 独自のエージェントを使用できます。 MCP 経由で Claude Code、Codex、Cursor を接続するか、オフラインエンジンを Python に埋め込めます。

収集 · 標準化 · エージェント

検査レポート、デバイスのデータ、遺伝子データを収集し、名前と単位を標準化して情報源を比較できるようにします。履歴全体を対象に質問し、各回答の情報源を確認できます

段階内容場所
① 収集あらゆる情報源から検査レポート、デバイス、写真、遺伝子ファイル、日誌の記録を取り込みます。各検査値には、元のファイルが保持されます。collect/
② 標準化A1c、HbA1c、Glycated Hemoglobin は 1 つのコードに対応付けられ、単位も 1 つの標準に統一されます。オフラインで、分散した情報源の検査値が 1 つのテーブルに整理された行として登録されます。対応付けできない名前は未解決のまま残ります。engine/ · standardize/
③ エージェント回答はモデルの記憶ではなく、そのテーブルを検索するツールから得られます。傾向、検査機関やデバイスをまたいだ比較、グラフなどを確認できます。すべての数値について元のファイルをたどれるため、うのみにせず確認できます。agent/

モデルはドキュメントを読み、推論を行います。コードと単位はパッケージに同梱された語彙から取得され、モデルから取得されることはありません。検査値がパイプラインを通過する仕組み。

家族を大切に

家族を招待します。家族は、自分の記録をあなたに閲覧または編集させるかどうかを選択します。共有された記録について質問できます。サインインしない家族の記録は、その家族が引き継いであなたのアクセス権を選択するまで、あなたが管理できます

ケアサークルに参加しても、それだけで何かが共有されることはありません。各メンバーは、自分の記録を他のメンバーに閲覧または編集させるかどうかを決めます。一度もサインインしない親の記録は、その親が記録を引き継ぎ、あなたに残すアクセス権を選ぶまで、あなたが管理できます。ウォークスルーで確認する。

データがこのマシンから出ない範囲

アプリを実行する場所とモデルを実行する場所は、それぞれ別に選べます。Mirobody は使用状況をどこにも報告しません。

Codespaces + モデルキーローカル Docker + モデルキーすべてこのマシン上
アプリと保存された記録GitHub のクラウド上のコードスペース内あなたのマシン上あなたのマシン上
モデル処理に送信される文書と質問モデルベンダーの規約に基づいてモデルベンダーに送信モデルベンダーの規約に基づいてモデルベンダーに送信あなたのマシン上にとどまります
名称からコードへの変換、単位から UCUM への変換(② 標準化)バンドルされた語彙を使い、コードスペース内で実行ネットワーク接続なしで、あなたのマシン上で実行ネットワーク接続なしで、あなたのマシン上で実行
モデルの重みモデルベンダーが管理モデルベンダーが管理Hugging Face から一度だけダウンロード

コマンドラインのリゾルバーも、初回のダウンロード後はモデルやネットワークへのアクセスなしで、あなたのマシン上で実行されます。

デバイスベンダーにデータが共有されるのは、デバイスを連携した後だけです。管理していないネットワークにデータが送信される前に、SECURITY.md をお読みください。サーバーが呼び出せるすべてのアドレスが記載されています。

Mirobody を基盤に構築する

やりたいことこちらから始めましょう
Claude Code、Codex、Cursor、Gemini CLI で自分の記録を使うSettings → MCP link を選択し、クライアントごとに1行を追加
独自のコードで名称と単位を解決するpip install mirobody:オフラインで動作し、キーは不要。依存関係は numpy のみ(ライブラリーガイド)
ワークフローをコーディングエージェントに教えるnpx skills add thetahealth/mirobody --skill standardize-health-data(スキル)
新しいデバイスプロバイダーやツールを追加するmirobody/collect/providers/ または mirobody/agent/tools/ にファイルを追加(CONTRIBUTING)
デプロイせずにアプリを試すMirobody Web デモ。同じ合成デモファイルを使用します

MCP 経由では、スタックから7つのツールが提供され、それぞれサインイン中のユーザーに限定されます。4つは記録(測定値、薬、遺伝子型、薬理ゲノミクス)を読み取り、3つは名称と単位を解決します。

pip install mirobody の実行後は、Python から同じエンジンを使用できます。

from mirobody.engine import resolve, resolve_reading

resolve("血红蛋白").loinc                                     # '718-7'   any language, one code
resolve_reading("total cholesterol", "5.0", "mmol/L").loinc  # '14647-2' the unit picks the code...
resolve_reading("total cholesterol", "193", "mg/dL").loinc   # '2093-3'  ...mass, not moles
resolve("中性粒细胞百分比").loinc                               # '26511-6' Neutrophils/Leukocytes
resolve("血脂").resolved                                     # False    a category, not one test
確認できる数値
主張確認方法
通常のチェックアップで出力される英語、中国語、日本語、ロシア語、エストニア語、トルコ語のテストで 345/345test_engine_coverage.py でスコアを出力します
次元解析に対応した 330 の UCUM 単位と、デバイスおよび検査指標のカタログ項目 543 件標準化 · デバイス対応表
23andMe、AncestryDNA、WeGene、MyHeritage、FamilyTreeDNA のエクスポートと、GRCh37 および GRCh38 の VCF が、パッケージに同梱された公開 1000 Genomes サンプルでテストされ、12 個の遺伝子にわたる同じ 13 個のコールにデコードされますtest_packaged_examples.py · 公開遺伝子型の例
パッケージは使用する語彙のバージョンを明示しています:mirobody.BUNDLE_VERSION は loinc-2.83+2026.09.17-aacb2c715b56 ですpython -c "import mirobody; print(mirobody.BUNDLE_VERSION)"
公開されているヘルスエージェントのベンチマーク:ESL-Bench、MedHall-Bench、MedHarm-Benchmirobody-eval · benchmarks/

Mirobody は、ウェブとモバイルで公開中のコンシューマー向けヘルスアプリ Theta を支えるヘルスデータエンジンです。現在のユーザー数はこちらです:
Theta 登録ユーザー数(リアルタイム) Theta デイリーアクティブユーザー数(リアルタイム)

コントリビューション

最も役立つコントリビューションは、リゾルバーが誤って解釈する用語です。mirobody resolve "<term>" を実行し、答えが間違っているか空の場合は、報告するか、テストケースを添えて修正を送ってください。こうして語彙は新しい言語へと広がっていきます。ロシア語の検査パネル用語とエストニア語のビタミン用語は #88、トルコ語の検査報告書の表記は #140 で追加されました。それぞれ、resolver_overrides.tsv に用語が 1 行追加され、用語ごとにテストケースが 1 つ追加されています。セットアップ方法とチェック項目については CONTRIBUTING.md をご覧ください。

HL7 FHIR、Regenstrief Institute の LOINC、UCUM、ICPC-3(WONCA)、[CPIC](https://cpicpgx.org/)、[llama.cpp](https://github.com/ggml-org/llama.cpp)、[deepagents](https://github.com/langchain-ai/deepagents) を基盤としており、各プロジェクトに感謝します。用語ライセンスについては LICENSE-3RD-PARTY をご覧ください。

Mirobody が検査報告書の理解に役立ったなら、スターを付けて、次の人が見つけやすくしてください。

スターの履歴グラフ

ドキュメント · ロードマップ · 変更履歴 · セキュリティ · AGENTS.md

Apache 2.0 · © 2026 Theta Health

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。