Skip to main content
Glama

Lifesign — Сервер телеметрии статуса пользователя и здоровья

Легковесный HTTP-сервис: принимает статус устройства + данные о здоровье, отправленные с мобильного телефона, и предоставляет их AI-агентам через MCP (Model Context Protocol). Один процесс, один порт.

✨ Особенности

  • 📱 Отправка с телефона: iOS Shortcuts отправляют снимки заряда батареи, местоположения, сети и здоровья через POST /ingest

  • 🤖 MCP-шлюз: тот же процесс монтирует /mcp, AI-агенты (Hermes и др.) читают напрямую

  • 🏗️ Один порт, один процесс: загрузка + запрос + MCP — всё на порту 8764, без дополнительных HTTP-переходов

  • 🐳 Готов к Docker: GitHub Actions автоматически собирает образ, 1Panel развёртывает одной командой Compose

Related MCP server: Rouse Context

🏗️ Архитектура

手机 (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)
  • Загрузка с телефона: HTTPS через публичную сеть через обратный прокси → 8764/ingest

  • Чтение AI: прямое подключение через loopback к 8764/mcp (без публичной сети)

  • Общая память: инструменты MCP читают app.store напрямую, без сериализации/дополнительных запросов

🔌 Конечные точки

Метод

Путь

Аутентификация

Описание

POST

/ingest

Bearer ключ телефона

Отправка последнего статуса с телефона

GET

/query_all

Bearer ключ агента

Возвращает полный снимок

GET

/health

Нет

Проверка здоровья (для Docker HEALTHCHECK)

POST

/mcp

Нет (локальный loopback)

Конечная точка MCP streamable-http

🔑 Идентификация и конфигурация

Всего два общих ключа для идентификации (идентификаторы, не авторизация на уровне полей), оба могут быть переопределены переменными окружения:

Назначение

Переменная окружения

Значение по умолчанию (только для разработки)

Конечная точка

ключ телефона

USER_STATUS_PHONE_KEY

phone-secret-key-001

POST /ingest

ключ агента

USER_STATUS_AGENT_KEY

agent-read-secret-key-001

GET /query_all

порт прослушивания

USER_STATUS_PORT

8764

— (используется run.sh)

⚠️ В производственной среде необходимо переопределить ключи по умолчанию через переменные окружения, не используйте значения по умолчанию из репозитория.

🚀 Быстрый старт

Локальный запуск

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

Запуск в 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

Развёртывание через 1Panel Compose (рекомендуется)

  1. В 1Panel → Контейнеры → Оркестрация создайте новую оркестрацию и вставьте docker-compose.yml;

  2. Образ автоматически собирается GitHub Actions и отправляется в GHCR, при развёртывании просто загружается;

  3. Нужно открыть только один порт 8764, остальное обрабатывается обратным прокси.

Отправка данных с телефона

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

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

Проверка: hermes mcp test user-status; после перезапуска Hermes инструменты регистрируются как mcp_user_status_*.

🐳 Сборка Docker-образа (GitHub Actions)

В репозитории встроен .github/workflows/docker-build.yml:

  • Триггеры: push в main / ручной workflow_dispatch / создание тега

  • Артефакты: двойные теги ghcr.io/<owner>/lifesign:latest и :<git-sha>

  • Платформы: linux/amd64, linux/arm64

  • Примечание: образ приватный (приватный репозиторий → приватный пакет GHCR), при развёртывании в 1Panel необходимо добавить учётные данные GHCR в конфигурацию Docker (имя пользователя ghcr.io + PAT).

✅ Тестирование

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

🗂️ Структура проекта

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/

📜 Лицензия

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