Capillus Hermes MCP
Capillus Hermes MCP
Lokale Bluetooth-Erfassung und MCP-Werkzeuge für Bluetooth-fähige Capillus-Kappen.
Dieses Repository besteht aus zwei Teilen:
monitor/: Ein Python-BLE-Monitor, der eine Capillus-Kappe erkennt, wenn sie zur Behandlung eingeschaltet wird, lokale Beobachtungen protokolliert und abgeschlossene Behandlungssitzungen ableitet.src/: Ein schreibgeschützter Model Context Protocol-Server für Hermes, Claude Desktop oder jeden MCP-Client. Er liest die lokalen Dateien des Monitors und stellt Status, Sitzungen, Adhärenz, Beobachtungen und Geräteidentität bereit.
Es wird kein Capillus-Konto, keine Cloud-API, kein privater Endpunkt, kein Scraping und keine App-Automatisierung benötigt.
Was es verfolgt
Bluetooth-fähige Capillus-Kappen erscheinen nur während des Behandlungseinschaltfensters. Der Monitor sucht nach einer kappenähnlichen BLE-Werbung und zeichnet dann auf:
Kappe anwesend/offline-Status
Aktuelle RSSI und BLE-Identität
Abgeleiteter Behandlungsbeginn/-ende
Abgeschlossene Sitzungen
Roh beobachtete BLE-Dauer, Inferenzfenster, gutgeschriebene Behandlungsdauer und Abschlussgrundlage
Tägliche Adhärenz und Serien
Der Standard-Matcher sucht nach Namen wie Capillus_CAP, Herstellerdatenschlüsseln und optionalen festgelegten Adressen. Sie können Ihre eigene Kappe verwenden, indem Sie sie einmal einschalten und vom Monitor automatisch erkennen lassen, dann die entdeckte Identität in monitor/config.json festlegen.
Standardmäßig wird eine Sitzung als abgeschlossen markiert nach einem vollständigen beobachteten Behandlungsfenster von 360 Sekunden, einem nahezu vollständigen beobachteten Kappen-Einschaltfenster innerhalb von complete_grace_seconds, oder einem nahezu vollständigen veralteten Schließfenster, in dem der Monitor die Kappe vor Kurzem genug gesehen hat, um zu folgern, dass der Behandlungszyklus nach der letzten Werbung weiterlief. Die rohe BLE-Dauer wird als observed_duration_seconds beibehalten; die veraltete Schließspanne wird als inference_window_seconds und close_detected_at beibehalten; die gutgeschriebene Behandlungsdauer wird als inferred_duration_seconds mit einer completion_basis wie observed_full_window, inferred_cap_power_cycle oder inferred_stale_power_window angegeben. Viel kürzere Beobachtungen bleiben unvollständig, da verlorene BLE-Werbungen nicht zu falscher Adhärenzgutschrift führen sollten.
Auf macOS läuft der Standardmodus subprocess_scanner jede BLE-Erkennung in einem kurzlebigen Kindprozess. Dadurch bleibt jegliches Bleak/CoreBluetooth-Heap-Wachstum außerhalb des ständig laufenden Monitorprozesses; wenn der Plattform-Scanner über wiederholte Erkennungen hinweg Speicher verliert, wird dieser beim Beenden des Kindprozesses freigegeben. Falls Subprozess-Scanning in einem bestimmten macOS-Privatsphärekontext nicht verfügbar ist, kann der Monitor auf prozessinterne Scans zurückfallen und sich nach max_runtime_seconds oder max_scans_per_process sauber selbst neu starten; mit launchd KeepAlive startet er automatisch neu.
Related MCP server: BLE MCP Server
Monitor installieren
mkdir -p ~/.capillus-home-monitor
cp monitor/capillus_monitor.py ~/.capillus-home-monitor/
cp monitor/config.example.json ~/.capillus-home-monitor/config.json
cd ~/.capillus-home-monitor
python3 -m venv .venv
.venv/bin/pip install -r /path/to/capillus-hermes-mcp/monitor/requirements.txtEinmalig von einem GUI-Terminal ausführen und die Kappe einschalten:
~/.capillus-home-monitor/.venv/bin/python ~/.capillus-home-monitor/capillus_monitor.py --config ~/.capillus-home-monitor/config.json runAuf macOS müssen Sie dem Python-Prozess in den Systemeinstellungen Bluetooth-Berechtigung erteilen. Für dauerhafte Verfolgung bearbeiten Sie monitor/deploy/launchd/com.example.capillus-monitor.plist, ersetzen Sie /Users/YOU, kopieren Sie es nach ~/Library/LaunchAgents/ und starten Sie es mit launchctl.
Optionale Open Brain-Synchronisation
Wenn Sie Open Brain lokal ausführen, kann die enthaltene Synchronisationsschleife dauerhafte Adhärenzfakten über den normalen capture_thought-Pfad von Open Brain erfassen. Sie erfasst jede abgeschlossene Sitzung einmal und, nach der konfigurierten lokalen Abendstunde, eine Fehlbehandlungs-Warnung, wenn das Tagesziel nicht erreicht wurde.
In monitor/config.json aktivieren und auf Ihr lokales Open Brain-Verzeichnis verweisen:
{
"openbrain": {
"enabled": true,
"repo_path": "/Users/YOU/open-brain",
"tenant": "default",
"time_zone": "America/New_York",
"person_name": "the wearer",
"daily_rule": "Daily Capillus treatment is required and non-negotiable."
}
}Einmalig ausführen:
/Users/YOU/open-brain/.venv/bin/python ~/.capillus-home-monitor/capillus_openbrain_sync.py --config ~/.capillus-home-monitor/config.json onceFür dauerhafte Synchronisation bearbeiten Sie monitor/deploy/launchd/com.example.capillus-openbrain-sync.plist, ersetzen Sie /Users/YOU, kopieren Sie es nach ~/Library/LaunchAgents/ und starten Sie es mit launchctl.
MCP-Server installieren
npm install
npm run buildDen MCP auf Ihre Monitordaten verweisen:
export CAPILLUS_MONITOR_DATA_DIR="$HOME/.capillus-home-monitor/data"
node dist/src/index.jsFür Hermes einen stdio-MCP-Server konfigurieren, der Folgendem entspricht:
mcp_servers:
capillus:
enabled: true
command: /usr/local/bin/node
args:
- /path/to/capillus-hermes-mcp/dist/src/index.js
env:
CAPILLUS_MONITOR_DATA_DIR: /Users/YOU/.capillus-home-monitor/data
CAPILLUS_TIME_ZONE: America/New_YorkHermes stellt die Werkzeuge mit dem normalen mcp_<server>_<tool>-Präfix bereit, zum Beispiel mcp_capillus_capillus_today.
Werkzeuge
capillus_status: Aktuelle Anwesenheit, letzter Sichtungszeitpunkt, aktive Sitzung, Geräteidentität.capillus_today: Behandlungsabschluss des aktuellen lokalen Tages und aktive Sitzung.capillus_sessions: Kürzliche abgeleitete Behandlungssitzungen, einschließlich beobachteter Dauer, Inferenzfenster, gutgeschriebener Dauer und Abschlussgrundlage.capillus_adherence: Tägliche Adhärenz, verpasste Tage und aktuelle Serie.capillus_observations: Kürzliche passende BLE-Beobachtungen und optionale nahegelegene Kandidaten.capillus_device: Festgelegte Identität und beobachtete proprietäre BLE-Dienstnotizen.
Beobachtete BLE-Form
Die während der Entwicklung beobachtete Kappe warb als Capillus_CAP. Eine schreibgeschützte GATT-Sonde zeigte einen proprietären UART-artigen Dienst:
Dienst:
49535343-fe7d-4ae5-8fa9-9fafd205e455Charakteristik:
49535343-1e4d-4bd9-ba61-23c647249616Charakteristik-Eigenschaften:
write,notify,indicate,write-without-response
Der öffentliche Monitor sendet keine Steuerbefehle. Er verwendet nur lokale Bluetooth-Präsenz und Zeitmessung.
Sicherheit
Dies ist Adhärenz-Telemetrie, kein medizinischer Rat. Sie bewertet kein Haarwachstum, verändert keine Behandlung und steuert die Kappe nicht.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables control of lights in CASAMBI networks through Bluetooth interface without requiring APIs. Provides direct lighting control and management capabilities through natural language interactions.1GPL 3.0
- AlicenseAqualityCmaintenanceA stateful Bluetooth Low Energy (BLE) MCP server that enables AI agents to scan, connect, read/write characteristics, and subscribe to notifications on BLE devices.3517MIT
- AlicenseAqualityFmaintenanceEnables MCP clients to control DG-Lab Coyote 2.0/3.0 devices via Bluetooth, providing tools for device scanning, connection, strength adjustment, wave design, and emergency stop.142813MIT
- AlicenseAqualityAmaintenanceRead your Samsung Health CSV/ZIP exports — activity, sleep, heart, stress — locally. It is a local-first MCP server that keeps your tokens on your machine.1815610MIT
Related MCP Connectors
Glucose readings from your LibreLink Up sensor: graph, logbook, stats and summaries (read-only). Sec
Connect your Oura Ring account securely in minutes. Enable authorized access to your sleep, activi…
MCP server for Withings health data — sleep, activity, heart, and body metrics.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/adastra-labs/capillus-hermes-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server