Mirobody
ai.thetahealth由 thetahealth.ai 發布v1.6.0更新於 Nov 7, 2026
Lab results to LOINC codes and UCUM units, symptoms and diagnoses to ICPC-3. Offline, no API key.
概覽
Mirobody 用於健康資料標準化:離線把檢驗項目名稱、數值與單位對應到 LOINC 與 UCUM 編碼,並把症狀與診斷對應到 ICPC-3。
- 可以做什麼
- 把多種語言的檢驗項目名稱、數值與單位解析為 LOINC 與 UCUM 編碼
- 把症狀與診斷解析為 ICPC-3 編碼
- 讀取個人健康紀錄:檢驗讀值、用藥、基因型與藥物基因體學
- 在部署具備知識來源時檢索醫學參考資料
- 依據已儲存的紀錄回答趨勢與比較問題,每個數字都可追溯到來源檔案
- 適用情境
- 適合需要把雜亂的檢驗報告名稱與單位標準化,或針對個人健康紀錄提問(例如膽固醇隨時間如何變化)的情境。只使用離線解析器時不需要模型或 API 金鑰。
- 執行需求
- 以 stdio 方式在本機執行,通常透過 uvx 與 Python 3.12 啟動;首次執行需要連網下載套件,之後解析器可離線運作。讀取整份報告或查詢紀錄需要完整應用部署(Docker Compose,或 PostgreSQL 16 與 Python 3.12),且除非使用本機模型,否則需要模型 API 金鑰。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 Mirobody,將其新增到工作區。
- 為需要使用其工具的對話啟用該服務。
Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。
其他 MCP 客戶端
參照 儲存庫 中的啟動說明。
README
Mirobody
Mirror your body in data.
One standard, every source, one complete picture of you — building a lasting record to understand where your health is going.
This open-source edition keeps that record on your own machine: lab reports, wearables and genetic files flow into it, and your AI agent can query it over MCP.
[PyPI] [License: Apache-2.0] [GitHub stars]
▶ Live demo · Try one command · Open in Codespaces · 100% local
Three reports, three names for the same test. One trend, with the file behind every number.
Choose where to start
Try the engine with one command
With uv installed, paste this into your terminal:
No repository clone, Docker, model or API key. uv prepares Python and the package for you; the first run needs a network connection to download them. The resolver then works offline from the bundled vocabulary.
血红蛋白 and ヘモグロビン both resolve to 718-7. 血脂 stays unresolved: it names a category, not one test. The same engine standardizes names and units across the full app.
Give the same engine to your AI agent. In Claude Code:
Your agent can then standardize any name, reading, unit or complaint you paste, on your machine and without a key. Reading a whole report also needs mirobody[parse] and a model key. Other MCP clients take the same command.
→ Use the engine from Python or MCP
Try the full app in Codespaces
Run the web app in your browser with your own model API key. GitHub prepares the environment; you do not need to install Docker or Python on your computer.
- Create the codespace and wait for the automatic setup to finish in its terminal. It starts the app, Postgres, the worker and the synthetic demo data.
- Open the setup link printed in the terminal and enter your own model API key: OpenRouter, OpenAI, Gemini, Anthropic, DeepSeek, DashScope, or any OpenAI-compatible gateway. The key is saved only after a real request succeeds. The forwarded app port is private by default.
- Sign in as
[email protected], code111111, on the Email code tab. Ask "How has my cholesterol changed?" The demo holds 2,019 readings across your record and[email protected]'s, shared with you view-only. - Upload a synthetic sample from
demo/upload/on the Data page to see a new report join the record, or switch to mom's record and ask again.
The app and its records run in GitHub's cloud; the model service receives the documents and questions it processes. Use the included synthetic data to explore. Codespaces has usage limits and billing; model usage is billed by your model provider. Stop the codespace when you finish. For complete control on your own machine, use the local route below.
Run everything 100% locally
The app, records and models all run on your own machine. No model API key needed. Docker with Compose starts the stack and llama.cpp, with a small answering model and a document reader:
Allow 16 GB of memory, at least 8 GB of it for Docker. No GPU is required; on Windows, run the commands in a WSL 2 terminal. The first start needs a network connection to download container images and model weights. If the registry is not reachable from your network, deploy.sh says so and retries through a mirror; DOCKER_MIRROR in .env names your own. After those downloads, document reading, standardization and answers run locally. CPU answers can take minutes; Mac, NVIDIA and Windows options explain how to use your GPU.
Open the app link the script prints. The local models are already selected; sign in with the same demo account above, ask a question or upload a sample. Which model to choose compares the local options.
Prefer Docker with a cloud model? Run ./deploy.sh without a local model profile, then paste your own model key into the printed setup link. The app and records stay on your host; the model service processes your documents and questions.
Chat calculations take the original queried data directly. A cloud model's code runs as JavaScript inside the app, with nothing to set up; a model on your own hardware computes in Python in a local Docker container when the app can reach a Docker daemon. Setup and data flow cover both. Query views provide their built-in statistics without either.
→ Self-host guide · Walkthrough · Deploy on a server
Run without Docker
No container, and nothing pulled from a registry. On Debian or Ubuntu, PostgreSQL 16 with pgvector comes from the distribution's own packages and the app runs straight from the checkout. It is the same install the Codespaces path performs:
Open the link it prints and sign in as [email protected], code 111111: the demo record is seeded already. A model key from the printed setup link adds document extraction and answers. install_native.sh installs system packages with sudo and writes one sudoers rule for the postgres account, and says so as it runs.
The local models belong to the Docker path, so this one answers through a model service. Everything else matches the row above it in what stays on your machine: the records live in the PostgreSQL you just installed, and a name to a code never leaves the machine.
What you can do
- Compare reports across labs. PDFs, phone photos and spreadsheets, 23 file types in all, land in one history. Every reading links to the page it was read from.
- Bring in everyday data. Import an Apple Health export, or connect Garmin, Oura and Whoop.
- Look after your family. Invite someone who shares their own record, or keep one for a parent who never signs in.
- Write a health journal.
headache since last night, BP 150/95, no feverbecomes a coded complaint and two coded readings; "no fever" is not logged as a fever. - Explore genetic data. Upload a 23andMe, AncestryDNA or WeGene export, or a VCF, and ask by rsID, gene or region. Drug questions get the matching CPIC guideline coverage, never a change of medication.
- Use your own agent. Connect Claude Code, Codex or Cursor over MCP, or embed the offline engine in Python.
Mirobody does not diagnose or prescribe, and its answers are not medical advice.
Collect · Standardize · Agent
The model reads documents and reasons; the codes and units come from vocabularies bundled with the package, never from the model. How a reading is standardized, step by step · How a reading moves through the pipeline.
Care for your family
Joining a care circle shares nothing by itself. Each member decides whether others may view or edit their own record. A parent who never signs in can be managed by you until they claim the record and choose what you keep. See it in the walkthrough.
What stays on your machine
Where the app runs and where the model runs are separate choices. Mirobody does not report usage anywhere.
The command-line resolver also runs on your machine without a model or network access after its initial download.
Device vendors see data only after you link one. Before this reaches a network you do not control, read SECURITY.md: it lists every address the server can call.
Build on Mirobody
Over MCP the stack serves tools scoped to the signed-in person: four read your record (readings, medications, genotypes, pharmacogenomics), three resolve names and units, and two search medical reference material when the deployment has a knowledge source.
The stdio server is published to the official MCP Registry as ai.thetahealth/mirobody with every release. Directories that read the registry list it too, such as mcprush and AddonAudit, which runs it in a sandbox. Each picks up a new version on its own schedule, so take the install line from this README.
After pip install mirobody, use the same engine from Python:
Numbers you can check
Mirobody is the health data engine behind Theta, a live consumer health app on the web and mobile, with these users today:
[Theta registered users, live] [Theta daily active users, live]
Contributing
The most useful contribution is a term the resolver gets wrong. Run mirobody resolve "<term>"; if the answer is wrong or empty, report it or send a fix with a test case. That is how the vocabulary grows into new languages: Russian panel and Estonian vitamin terms arrived in #88 and Turkish lab-report spellings in #140, each one row of resolver_overrides.tsv and one test case per term. CONTRIBUTING.md has the setup and the checks.
Built on HL7 FHIR, LOINC from the Regenstrief Institute, UCUM, ICPC-3 (WONCA), CPIC, llama.cpp and deepagents, with thanks. Terminology licences: LICENSE-3RD-PARTY.
If Mirobody helped you make sense of a report, a star helps the next person find it.
[Star History Chart]Documentation · Discussions · Roadmap · Changelog · Security · AGENTS.md
Apache 2.0 · © 2026 Theta Health
來源:README.md,提交 f551697
工具
0版本歷史
3- v1.6.0最新Nov 7, 2026
- v1.5.10Nov 1, 2026
- v1.5.9Oct 29, 2026
評分
已滿足適用檢查項的 50%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通25 分
請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。
- 已宣告認證方式10 分
請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。
- 已列出工具15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分