Files
mesh-configs/skills/devops/coros-mcp-integration/references/coros-mcp-data-shapes.md
T

2.7 KiB

COROS-MCP — verifizierte Tool-Calls + Daten-Shapes (2026-08-15)

Proof-of-Concept mit echtem Login, alle Werte real. Endpoint Europa mcpeu.coros.com, Token-Cache /root/.coros-mcp-skill-gateway-ts/<region>/token.json.

Zugriffshinweis (Token-Sicherheit, Team-Auflage)

  • Token-Datei root-only (chmod 600), Cache chmod 700.
  • Zusaetzlich age-verschluesseltes Backup: age-keygen -o /root/.coros-age-key.txt; age -r <PUBKEY> -o /root/.coros-token.json.age <token.json>.
  • WICHTIG: NICHT die Klartext-token.json verschluesseln/ersetzen — die coros-mcp-CLI LIESST sie selbst (Klartext nötig fuer den Betrieb). Verschluesselung nur als SEPARATE Sicherungskopie ablegen.

Korrekte Aufruf-Syntax (verifiziert)

# Achtung: Flags! Nicht positional. KEIN --args/--name/--tool-positional.
coros-mcp list-tools
coros-mcp describe-tool --tool queryDailyHealthData
coros-mcp call-tool --tool queryDailyHealthData --arguments-json '{}'

Echte Ergebnis-Shapes (Anhaltspunkt fuer Parser)

queryDailyHealthData ({} args) — Text, 7 Tage

"Daily Health Data — Last 7 days | Resting HR: 52 bpm | HRV Baseline: 42 ms
--- 20260815 ---
Steps: 981 | Calories: 47 kcal | Exercise: 0 min
Stress: Avg 22
Sleep Summary:
  Total: 7h 46min | Deep: 1h 57min | Light: 4h 17min | REM: 1h 23min | Awake: 9 min

Antwort-Container: {"content":[{"type":"text","text":"<string>"}],"isError":false} — Daten sind EIN String, mit \n-Zeilen, pro Tag Abschnitt --- JJJJMMTT ---. Parser: nach Datums-Marker + Label splitten.

querySportRecords ({}) — 1+ Records

"Sport Records — DATE to DATE (N records)
1. Indoor Cycling — 2026-08-11
   Location: Indoor Rad
   Time Window: startTimestamp=1786472136 | endTimestamp=1786475750
   Duration: 1:00:14 | Avg HR: 114 bpm | Calories: 629 kcal
   LabelId: 479635354870120452 | SportType: 201"

Sauber parsebar via Regex auf LabelId: + SportType: (fuer Activity-Details noetig).

querySleepHrv ({}), queryRecoveryStatus ({}), queryFitnessAssessmentOverview ({})

  • HRV: pro Tag HRV Avg: 55 ms — Normal, Baseline: 61 ms
  • Recovery: Recovery: 100%, Level: Heavy training allowed
  • Fitness: Threshold Pace: 4:45 /km

queryUserInfo ({})

Height: 173.0 cm | Weight: 100.6 kg | Birthday: 1972-02-21 (Age: 54) | Gender: Male | Nickname: Thorsten

PersoEnt-Write-Hinweis (strukturierte Gesundheitsdaten)

COROS liefert KEIN Datums-Feld in der Antwort — das Datum steckt im --- JJJJMMTT ----Marker. PersoEnt health_records-Collection hat KEIN datum-Feld; Datum geht verloren, wenn man es nicht als String in einem Text-Feld oder via Record-created abbildet. (siehe pocketbase-deployment: leere createRule → Superuser-Token noetig.)