Skip to main content
Glama

Lifesign — Servidor de Telemetría de Estado y Salud del Usuario

Servicio HTTP ligero: recibe estado del dispositivo + datos de salud reportados desde el móvil y los expone a agentes de IA a través de MCP (Model Context Protocol). Un solo proceso, un solo puerto.

✨ Características

  • 📱 Reporte desde el móvil: Atajo de iOS POST /ingest envía instantáneas de batería/ubicación/red/salud

  • 🤖 Puerta de enlace MCP: El mismo proceso monta /mcp, los agentes de IA como Hermes lo leen directamente

  • 🏗️ Un solo puerto, un solo proceso: Carga + consulta + MCP todo reutiliza el puerto 8764, sin saltos HTTP secundarios

  • 🐳 Listo para Docker: GitHub Actions construye la imagen automáticamente, 1Panel despliega con un clic Compose

Related MCP server: Rouse Context

🏗️ Arquitectura

手机 (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)
  • Carga desde el móvil: HTTPS público a través de proxy inverso → 8764/ingest

  • Lectura por IA: Conexión directa de bucle local a 8764/mcp (sin pasar por la red pública)

  • Memoria compartida: Las herramientas MCP leen directamente app.store, sin necesidad de serialización/solicitudes secundarias

🔌 Endpoints

Método

Ruta

Autenticación

Descripción

POST

/ingest

Bearer clave de móvil

El móvil reporta el estado más reciente

GET

/query_all

Bearer clave de agente

Devuelve la instantánea completa

GET

/health

Ninguna

Verificación de salud (para Docker HEALTHCHECK)

POST

/mcp

Ninguna (bucle local)

Endpoint MCP streamable-http

🔑 Identidad y Configuración

Solo dos claves compartidas para identificación (identidad, no autorización a nivel de campo), ambas sobrescribibles con variables de entorno:

Uso

Variable de entorno

Valor por defecto (solo desarrollo)

Endpoint

Clave de móvil

USER_STATUS_PHONE_KEY

phone-secret-key-001

POST /ingest

Clave de agente

USER_STATUS_AGENT_KEY

agent-read-secret-key-001

GET /query_all

Puerto de escucha

USER_STATUS_PORT

8764

— (usado por run.sh)

⚠️ En producción, las claves predeterminadas deben sobrescribirse mediante variables de entorno. No use los valores predeterminados del repositorio.

🚀 Inicio Rápido

Ejecución local

python3 -m venv .venv
. .venv/bin/activate
pip install -r requirements.txt
./run.sh start      # 后台启动 :8764
./run.sh status
./run.sh stop

Ejecución con Docker

# 本地构建
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:local

Despliegue con 1Panel Compose (recomendado)

  1. En 1Panel → Contenedores → Orquestación, cree una nueva orquestación y pegue docker-compose.yml;

  2. La imagen se construye automáticamente mediante GitHub Actions y se envía a GHCR, se extrae directamente al desplegar;

  3. Solo necesita abrir 1 puerto 8764, el resto lo maneja el proxy inverso.

Envío de datos desde el móvil

# 经公网反代(手机端快捷指令用这个)
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}}}'

Configuración de Hermes MCP (config.yaml)

mcp_servers:
  user-status:
    type: streamable-http
    url: http://127.0.0.1:8764/mcp   # 本机回环,不走公网
    connect_timeout: 10
    timeout: 30

Verificación: hermes mcp test user-status; después de reiniciar Hermes, la herramienta se registra como mcp_user_status_*.

🐳 Construcción de imagen Docker (GitHub Actions)

El repositorio incluye .github/workflows/docker-build.yml:

  • Disparador: push a main / workflow_dispatch manual / etiqueta (tag)

  • Artefacto: ghcr.io/<owner>/lifesign:latest y :<git-sha> doble etiqueta

  • Plataforma: linux/amd64, linux/arm64

  • Nota: La imagen es privada (repositorio privado → paquete GHCR privado). Al desplegar con 1Panel, debe agregar las credenciales de inicio de sesión de GHCR en la configuración de Docker (nombre de usuario ghcr.io + PAT).

✅ Pruebas

. .venv/bin/activate
python -m pytest tests/ -v

🗂️ Estructura del proyecto

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/

📜 Licencia

MIT

F
license - not found
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • F
    license
    -
    quality
    A
    maintenance
    A 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
  • A
    license
    -
    quality
    A
    maintenance
    Turn 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.
    2
    Apache 2.0
  • A
    license
    A
    quality
    A
    maintenance
    A local-first MCP server that enables AI agents to read user-authorized Google Health API v4 data from Fitbit, Pixel Watch, and partners via OAuth, with tokens never leaving the machine.
    26
    810
    40
    MIT

View all related MCP servers

Related MCP Connectors

  • MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.

  • Pocket Agent (aipocketagent.com) MCP server — read tools for personas, apps, and product info.

  • Self-hosted MCP gateway: turn any API, database or MCP server into AI connectors — no code.

View all MCP Connectors

Latest Blog Posts

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/shutdown-awa/lifesign'

If you have feedback or need assistance with the MCP directory API, please join our Discord server