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), Cachechmod 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.jsonverschluesseln/ersetzen — diecoros-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.)