Lifesign
Lifesign — Benutzerstatus- und Gesundheits-Telemetrieserver
Leichter HTTP-Dienst: Empfängt Gerätestatus + Gesundheitsdaten, die vom Mobiltelefon gemeldet werden, und stellt sie AI-Agenten über MCP (Model Context Protocol) zur Verfügung. Einzelprozess, einzelner Port.
✨ Funktionen
📱 Mobiltelefon-Meldung: iOS-Kurzbefehl
POST /ingestsendet Akkustand/Standort/Netzwerk/Gesundheits-Schnappschuss🤖 MCP-Gateway:
/mcpim selben Prozess bereitgestellt, Hermes und andere AI-Agenten lesen direkt🏗️ Ein Port, ein Prozess: Hochladen + Abfragen + MCP nutzen alle 8764, kein zweiter HTTP-Hop
🐳 Docker-bereit: GitHub Actions erstellt automatisch Images, 1Panel One-Click Compose-Bereitstellung
Related MCP server: Rouse Context
🏗️ Architektur
手机 (iOS 快捷指令)
│ POST https://<your-domain>/user-status/ingest ← 仅上传经反代
▼
1Panel OpenResty (反向代理)
│ proxy_pass → <host-ip>:8764/ingest
▼
┌──────────────────────────────┐
│ FastAPI + FastMCP 同一进程 │
│ (单端口 8764) │
│ │
│ POST /ingest 手机上传 │
│ GET /query_all agent读取 │
│ /mcp MCP 网关 (同进程) │
└──────┬───────────────────────┘
│ 本机回环 http://127.0.0.1:8764/mcp
▼
Hermes Agent (AI)Mobiltelefon-Hochladen: Öffentliches HTTPS via Reverse Proxy →
8764/ingestAI-Lesen: Lokale Loopback-Direktverbindung zu
8764/mcp(nicht über öffentliches Netz)Shared Memory: MCP-Tools lesen direkt
app.store, keine Serialisierung/sekundäre Anfragen erforderlich
🔌 Endpunkte
Methode | Pfad | Authentifizierung | Beschreibung |
|
| Bearer Handy-Key | Mobiltelefon meldet neuesten Status |
|
| Bearer Agent-Key | Gibt vollständigen Schnappschuss zurück |
|
| Keine | Gesundheitscheck (für Docker HEALTHCHECK) |
|
| Keine (lokaler Loopback) | MCP streamable-http-Endpunkt |
🔑 Identität und Konfiguration
Nur zwei gemeinsame Schlüssel zur Identifikation (Identitätsmerkmale, keine feldspezifische Autorisierung), beide durch Umgebungsvariablen überschreibbar:
Verwendung | Umgebungsvariable | Standardwert (nur Entwicklung) | Endpunkt |
Handy-Key |
|
|
|
Agent-Key |
|
|
|
Überwachungsport |
|
| — (von run.sh verwendet) |
⚠️ In der Produktion müssen die Standardschlüssel durch Umgebungsvariablen überschrieben werden, verwenden Sie nicht die Standardwerte aus dem Repository.
🚀 Schnellstart
Lokale Ausführung
python3 -m venv .venv
. .venv/bin/activate
pip install -r requirements.txt
./run.sh start # 后台启动 :8764
./run.sh status
./run.sh stopDocker-Ausführung
# 本地构建
docker build -t lifesign:local .
docker run -d --name lifesign -p 8764:8764 \
-e USER_STATUS_PHONE_KEY='<phone-key>' \
-e USER_STATUS_AGENT_KEY='<agent-key>' \
lifesign:local1Panel Compose-Bereitstellung (empfohlen)
In 1Panel → Container → Orchestrierung neue Orchestrierung erstellen,
docker-compose.ymleinfügen;Images werden von GitHub Actions automatisch erstellt und an GHCR gepusht, bei der Bereitstellung direkt abrufen;
Nur 1 Port
8764muss geöffnet werden, der Rest wird vom Reverse Proxy erledigt.
Daten vom Mobiltelefon senden
# 经公网反代(手机端快捷指令用这个)
curl -s -X POST https://<your-domain>/user-status/ingest \
-H "Authorization: Bearer <phone-key>" \
-H "Content-Type: application/json" \
-d '{"deviceStage":{"battery":{"percentage":87,"is_charging":true}}}'
# 或内网直连
curl -s -X POST http://<host-ip>:8764/ingest \
-H "Authorization: Bearer <phone-key>" \
-H "Content-Type: application/json" \
-d '{"deviceStage":{"battery":{"percentage":87,"is_charging":true}}}'Hermes MCP-Konfiguration (config.yaml)
mcp_servers:
user-status:
type: streamable-http
url: http://127.0.0.1:8764/mcp # 本机回环,不走公网
connect_timeout: 10
timeout: 30Überprüfung: hermes mcp test user-status; nach Neustart von Hermes wird das Tool als mcp_user_status_* registriert.
🐳 Docker-Image-Erstellung (GitHub Actions)
Das Repository enthält .github/workflows/docker-build.yml:
Auslöser: Push auf
main/ manuellworkflow_dispatch/ Tag setzenArtefakt:
ghcr.io/<owner>/lifesign:latestund:<git-sha>doppeltes TagPlattform:
linux/amd64,linux/arm64Hinweis: Image ist privat (privates Repository → privates GHCR-Paket), bei 1Panel-Bereitstellung müssen in der Docker-Konfiguration GHCR-Anmeldedaten (
ghcr.ioBenutzername + PAT) hinzugefügt werden.
✅ Tests
. .venv/bin/activate
python -m pytest tests/ -v🗂️ Projektstruktur
lifesign/
├── app/
│ ├── main.py # FastAPI 入口(挂载 MCP 网关)
│ ├── mcp_server.py # FastMCP 工具定义(get_status/get_battery/...)
│ ├── store.py # 线程安全内存存储
│ ├── models/status.py # Pydantic 数据模型
│ └── routers/ # /ingest 与 /query_all 路由
├── config/clients.example.yaml # 身份配置模板(真实文件勿提交)
├── panel_api.py # 1Panel API 签名请求辅助脚本
├── docker-compose.yml # 1Panel Compose 部署编排
├── Dockerfile
├── run.sh # 本机后台启停
└── tests/📜 Lizenz
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
Real-time planetary signal engine and Model Context Protocol (MCP) server for autonomous AI agents.
- UnifAPIOAuthcom.unifapi
Hosted MCP server for live public-data APIs and Skills for AI agents.
MCP server for OnceAsk, the AI-native current-address layer for people and agents.
Remote MCP server for AI.TV creators — delegate account operations to your AI agent over MCP.
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceA real-time system diagnostics MCP server that gives AI agents live access to CPU, RAM, disk, network, processes, and hardware health metrics, with zero cloud dependency.7-
- AlicenseNot gradedqualityAmaintenanceTurn your Android phone into an MCP server. AI assistants connect on demand, query your health data, notifications, app usage, and take actions on your device — all end-to-end encrypted, no cloud sync.5Apache 2.0
- AlicenseNot gradedqualityAmaintenanceEnables AI agents to control Android phones via MCP and HTTP. Supports screen capture, taps, swipes, text input, and app management.6AGPL 3.0
- AlicenseAqualityDmaintenanceAn MCP server that locally authenticates with Google Health API v4 and provides read-only access to Fitbit, Pixel Watch, and other health data for AI agents.29164 npm16MIT