Skip to main content
Glama

Lifesign โ€” User Status & Health Telemetry Server

Lightweight HTTP service: receives device status + health data reported from mobile devices and exposes it to AI agents via MCP (Model Context Protocol). Single process, single port.

โœจ Features

  • ๐Ÿ“ฑ Mobile Reporting: iOS Shortcut POST /ingest pushes battery/location/network/health snapshots

  • ๐Ÿค– MCP Gateway: /mcp mounted in the same process, directly readable by AI agents like Hermes

  • ๐Ÿ—๏ธ Single Port, Single Process: Upload + query + MCP all reuse port 8764, no secondary HTTP hop

  • ๐Ÿณ Docker Ready: GitHub Actions automatically builds images, 1Panel one-click Compose deployment

Related MCP server: Rouse Context

๐Ÿ—๏ธ Architecture

ๆ‰‹ๆœบ (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)
  • Mobile Upload: Public HTTPS via reverse proxy โ†’ 8764/ingest

  • AI Reading: Local loopback direct connection to 8764/mcp (not via public network)

  • Shared Memory: MCP tools directly read app.store, no serialization or secondary requests needed

๐Ÿ”Œ Endpoints

Method

Path

Authentication

Description

POST

/ingest

Bearer phone key

Mobile reports latest status

GET

/query_all

Bearer agent key

Returns full snapshot

GET

/health

None

Health check (for Docker HEALTHCHECK)

POST

/mcp

None (local loopback)

MCP streamable-http endpoint

๐Ÿ”‘ Identity and Configuration

Only two shared secrets for identity verification (identity markers, not field-level authorization), both overridable via environment variables:

Purpose

Environment Variable

Default Value (Development Only)

Endpoint

Phone key

USER_STATUS_PHONE_KEY

phone-secret-key-001

POST /ingest

Agent key

USER_STATUS_AGENT_KEY

agent-read-secret-key-001

GET /query_all

Listen port

USER_STATUS_PORT

8764

โ€” (used by run.sh)

โš ๏ธ Production deployment must override default secrets via environment variables, do not use default values from the repository.

๐Ÿš€ Quick Start

Local Run

python3 -m venv .venv
. .venv/bin/activate
pip install -r requirements.txt
./run.sh start      # ๅŽๅฐๅฏๅŠจ :8764
./run.sh status
./run.sh stop

Docker Run

# ๆœฌๅœฐๆž„ๅปบ
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
  1. In 1Panel โ†’ Container โ†’ Orchestration, create a new orchestration and paste docker-compose.yml;

  2. The image is automatically built by GitHub Actions and pushed to GHCR, pulled directly during deployment;

  3. Only one port 8764 needs to be exposed, the rest is handled by the reverse proxy.

Sending Data from Mobile

# ็ปๅ…ฌ็ฝ‘ๅไปฃ๏ผˆๆ‰‹ๆœบ็ซฏๅฟซๆทๆŒ‡ไปค็”จ่ฟ™ไธช๏ผ‰
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 Configuration (config.yaml)

mcp_servers:
  user-status:
    type: streamable-http
    url: http://127.0.0.1:8764/mcp   # ๆœฌๆœบๅ›ž็Žฏ๏ผŒไธ่ตฐๅ…ฌ็ฝ‘
    connect_timeout: 10
    timeout: 30

Verification: hermes mcp test user-status; after restarting Hermes, tools are registered as mcp_user_status_*.

๐Ÿณ Docker Image Build (GitHub Actions)

The repository includes .github/workflows/docker-build.yml:

  • Trigger: push to main / manual workflow_dispatch / tag push

  • Artifact: ghcr.io/<owner>/lifesign:latest and :<git-sha> dual tags

  • Platforms: linux/amd64, linux/arm64

  • Note: The image is private (private repository โ†’ private GHCR package). When deploying with 1Panel, you need to add GHCR login credentials (ghcr.io username + PAT) in the Docker configuration.

โœ… Testing

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

๐Ÿ—‚๏ธ Project Structure

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/

๐Ÿ“œ License

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