health-relay
health-relay
Selbstgehostete Brücke zwischen Ihrer Samsung Watch → Sync2Ra1-Telefon-App und Ihrem Hermes-KI-Agenten. Die App überträgt Gesundheitswerte über Ihr LAN hierher; die Daten werden lokal (SQLite) gespeichert und über REST und MCP bereitgestellt, damit Ihr Agent sie abfragen kann.
Galaxy Watch ─▶ Samsung Health ─▶ Sync2Ra1 (phone) ──push──▶ health-relay ──MCP/REST──▶ HermesAlle Daten bleiben in Ihrem Netzwerk. Es wird nichts nach außen gesendet.
Schnellstart (Docker oder Podman)
echo "HR_AUTH_TOKEN=<choose-a-secret>" > .env
docker compose up -d # or: podman compose up -d
curl http://localhost:8790/healthz # -> {"ok":true}Die Daten werden dauerhaft in ./data/ledger.db gespeichert (SQLite, WAL-Modus).
Ohne Docker ausführen
python3 -m venv .venv && .venv/bin/pip install -r requirements.txt
HR_AUTH_TOKEN=<secret> ./run.shRelated MCP server: Yummy Health MCP
Richten Sie die Telefon-App auf den Server aus
Öffnen Sie Sync2Ra1 → Daten-Tab → Relay (Hermes-Brücke):
Feld | Wert |
Relay-URL |
|
Token | derselbe geheime Schlüssel wie |
Tippen Sie auf Speichern → Jetzt synchronisieren. Die Messwerte treffen innerhalb von Sekunden ein.
Konnektivität
phone (Sync2Ra1) ──HTTP :8790──▶ health-relay ◀──MCP stdio / HTTP── Hermes
same LAN · or Tailscale for anywhere-accessRegel | Detail |
Richtung | Telefon → Relay (ausgehend vom Telefon; es wird keine Verbindung zum Telefon aufgebaut) |
Port | TCP 8790 eingehend auf der Maschine, die das Relay ausführt – in der Firewall dieses Hosts öffnen |
Protokoll | Einfaches HTTP + |
Überall Zugriff | Tailscale auf dem Gerät und dem Telefon installieren; die App auf die Tailscale-IP zeigen ( |
Zeitraum | Automatische Synchronisierung stündlich + beim App-Start + manuell Jetzt synchronisieren |
Offline | Das Telefon speichert alles lokal in SQLite; nach der Neuverbindung werden alle angesammelten Daten (zuerst die ältesten) übertragen und die letzten 48 Stunden neu synchronisiert, damit Korrekturen von Samsung übernommen werden |
Duplikate | Doppelzählung ausgeschlossen – jede Ablesung hat einen eindeutigen Schlüssel; Wiederholungen werden serverseitig ignoriert |
Hermes Standort | Gleiche Maschine (MCP läuft als lokaler Unterprozess und liest die SQLite-Datei) oder entfernt (REST-Endpunkte statt MCP verwenden) |
REST-API (Bearer-Authentifizierung)
Endpunkt | Zweck |
| Erreichbarkeitsprüfung (ohne Authentifizierung) |
| Batch-Import – idempotent, Wiederholungen sind wirkungslos |
| Roh Messwerte |
| Min/Max/Anzahl pro Messwert |
| Tägliche Zusammenfassungen |
| Gesamtzahlen je Messwert |
curl -H "Authorization: Bearer <secret>" \
"http://localhost:8790/api/v1/health/daily-summary?date=$(date +%F)&tz=Europe/London"Anbindung an Hermes (MCP)
Der MCP-Server liest dieselbe SQLite-Datei – starten Sie ihn direkt aus diesem Repository:
python3 -m venv .venv-mcp
.venv-mcp/bin/pip install fastmcpFügen Sie Folgendes in die MCP-Konfiguration Ihres Agenten ein:
{
"mcpServers": {
"health-relay": {
"command": "<repo-path>/.venv-mcp/bin/python",
"args": ["<repo-path>/mcp_server.py"],
"env": { "HR_DATA_DIR": "<repo-path>/data" }
}
}
}Tools, die Ihr Agent erhält
Tool | Beantwortetn Fragen wie |
| „Welche Gesundheitsdaten hast Sie?“ |
| „Zeigen Sie mir meine Herzfrequenz von heute Morgen“ |
| „Wie aktiv war ich gestern?“ |
| „Wie habe ich diese Woche geschlafen?“ |
Die Tagesgrenzen richten sich nach Ihrer Zeitzone (tz="Europe/London" usw., DST wird berücksichtigt).
Aufgezeichnete Messwerte
Herzfrequenz · SpO₂ · Hauttemperatur · Atmung · Ruhe herzfrequenz · VO₂max · Schlafdauer/Schlaf-Score/Schlafstadien · Schritte & Stockwerke (ständlich & täglich) · Trainingseinheit / Training · Aktivitätskalorien/-zeit/-distanz · · · Körperzusammensetzung (BI A) · Energie-Score · Blutdruck · Glukose · Flüssigkeitszufuhr · Mahlzeiten.
Konfiguration
Umgebungsvariable | Standard | |
| (leer = keine Authentifizierung) | Unbedingt in Production setzen |
|
| |
|
| Nur im vertrauenswürdigen LAN betreiben |
|
| SQLite-Datenbank liegt hier |
Tests
.venv/bin/python -m pytest tests/ -qThis server cannot be deployed
Maintenance
Related MCP Connectors
- freddyOAuthcoach.freddy
Connect your wearables, rings and training apps, then ask your AI about your own health data.
Let AI agents query data and act across all your business apps via MCP.
Connect AI agents to the health, screen-time and recorded location data you choose to share from myself.md. Discover schemas, query connected phones, and read paginated JSON or JSONL cloud exports. OAuth sign-in and explicit data grants are required. Phone requests depend on connectivity and OS permissions; cloud reads require existing storage access. Owners can revoke sharing; revocation does not erase recipient copies. Privacy: https://myself.md/privacy · Terms: https://myself.md/terms · Support: cody@isolated.tech
Connect your health, fitness, nutrition, sleep, and wearable data to your AI assistant.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceExposes personal health data (recovery, sleep, strain, etc.) as MCP tools for AI agents to query and analyze.4MIT
- FlicenseNot gradedqualityBmaintenancePrivate, read-only health data bridge that reads from Android Health Connect and exposes heart rate, steps, sleep, and other health metrics to ChatGPT via MCP tools.-
- AlicenseNot gradedqualityBmaintenanceEnables AI clients to query and analyze Huawei Health data, including training records, sleep, heart rate, and athletic performance, through 14 MCP tools without third-party servers.3MIT
- AlicenseBqualityAmaintenanceEnables local, read-only access to Garmin Connect health and training data through MCP, letting assistants summarize recovery, sleep, activities, and more without uploading your data.19MIT