omron-connect-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@omron-connect-mcpshow my latest blood pressure reading"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
omron-connect-mcp
把 OMRON connect 的血壓與體重資料接進 MCP client 的 server。
這個專案解決什麼
OMRON 沒有公開的自助式 API,omron connect 的資料只能從 App 看。社群工具
omramin 可以把資料同步到 Garmin Connect,
但它走的 measureData 端點在部分帳號上一律回 deviceModelList: null,抓不到任何東西。
這裡改打 synchronizeMeasureData。那是 OMRON connect App 自己在用的端點,
端點名稱取自 App 的 dex 字串。帶 lastSyncDate 就會把該時間點之後的所有量測吐回來。
實測差異(同一個帳號、同一組憑證,HEM-7600T):
端點 | 結果 |
| 0 筆 |
| 340 筆,最早 2022-02 |
Related MCP server: Withings MCP Server
為什麼 omramin 抓不到
兩個獨立的原因:
端點。
measureData對某些帳號不回資料。試過 30 天到 400 天、user 0 到 4、 帶 serial 與不帶 serial、加上deviceModel,全部回 null。序號推導。
ble_mac_to_serial()從 BLE MAC 反推的 deviceSerialID 跟伺服器記錄的不一定一樣。實測 MACb2:ff:fe:af:29:d8推出d829affefffeffb2,伺服器上是d829affeffb2ff28,後 6 碼不同。
synchronizeMeasureData 不需要 serial 也不需要 user number,兩個問題都繞開了。
安裝
uv pip install git+https://github.com/aircon-chen/omron-connect-mcp.git設定
三個環境變數:
export OMRON_EMAIL="you@example.com"
export OMRON_PASSWORD="..."
export OMRON_COUNTRY="TW" # ISO 3166-1 alpha-2OMRON_COUNTRY 決定連哪個區域的伺服器。目前支援的區域由 omramin 的
regionserver 決定,台灣、日本、香港都對應 data-jp。
登入後的 refresh token 會存在 $XDG_STATE_HOME/omron-connect-mcp/token.json
(預設 ~/.local/state/...,權限 600),之後啟動優先用它,失敗才用帳密重登。
要換位置就設 OMRON_TOKEN_FILE。
MCP client 設定
{
"mcpServers": {
"omron-connect": {
"command": "omron-connect-mcp",
"env": {
"OMRON_EMAIL": "you@example.com",
"OMRON_PASSWORD": "...",
"OMRON_COUNTRY": "TW"
}
}
}
}工具
工具 | 說明 |
| 確認連得上,回報註冊了幾台裝置 |
| 列出帳號底下的裝置 |
| 取血壓,可給 |
| 取體重與體組成 |
| 取最新一筆, |
血壓每筆包含:
{
"measured_at": "2026-09-27T23:00:27+08:00",
"epoch_ms": 1790521227000,
"timezone": "Asia/Taipei",
"device_model": "HEM-7600T",
"user": 1,
"systolic": 98,
"diastolic": 62,
"pulse": 76,
"irregularHB": false,
"movementDetect": false,
"cuffWrapDetect": false
}體重的欄位是 weight、bmiValue、bodyFatPercentage、skeletalMusclePercentage、
visceralFatLevel、restingMetabolism、metabolicAge。
限制
只支援 OMRON connect 有的資料。 量測結果要先從裝置同步到 App, 留在機器記憶體裡的讀不到。
體重那條沒有實機驗證過。 解析沿用 omramin 的
_process_scale_measurements, 邏輯是它的,但作者手上只有血壓計。有 OMRON 體重計的話歡迎回報。syncList的deviceCategory欄位實測是None,所以分類是看bodyIndexList裡有沒有血壓專屬的欄位代碼,不是看它自己標的類別。沒有做增量快取。每次查詢都會抓完整歷史再過濾。資料量大的帳號會慢。
開發
uv venv && uv pip install -e . pytest
.venv/bin/pytest測試不需要帳號。tests/fixtures/sync_bpm.json 是去識別化過的真實回應,
序號與帳號資訊都換掉了。
授權與致謝
GPL-2.0-only。
認證流程與 bodyIndexList 的欄位解析直接沿用
omramin 的 omronconnect 模組,
那份是 GPLv2,所以這裡也是。這個專案的貢獻是換掉抓資料的端點,
以及包成 MCP server。
This server cannot be deployed
Maintenance
Related MCP Connectors
MCP server for Withings health data — sleep, activity, heart, and body metrics.
Hosted MCP server with managed OAuth for 15+ toolkits: Google Workspace, Fitbit, Oura, Kalshi, etc.
Hosted MCP server for the Healthie EHR & telehealth API: patients, appointments, charting, tasks.
Remote MCP server for training, nutrition, wellness, and performance data with OAuth 2.0.
Related MCP Servers
- FlicenseNot gradedqualityBmaintenanceExposes Garmin Connect health and activity data (steps, sleep, heart rate, etc.) via MCP tools, with built-in login and MFA support.-
- AlicenseNot gradedqualityCmaintenanceEnables reading Withings smart-scale data (weight, body composition, etc.) through MCP tools, with OAuth2 authentication and automatic token refresh.MIT
- AlicenseAqualityCmaintenanceMCP server for the Withings Health API with per-user OAuth2, enabling users to securely access their own health data (measures, activity, sleep, workouts, heart rate, devices, and goals) and optionally add measurements.12Apache 2.0
- FlicenseNot gradedqualityCmaintenanceEnables MCP clients like Claude to connect to FitDays/iComon fitness tracking data via a self-hosted Cloudflare Worker, using OAuth login with FitDays credentials. It provides tools to list users and devices, retrieve weight history and latest weight, and trigger a sync.-