Skip to main content
Glama

Lifesign — 사용자 상태 및 건강 원격 측정 서버

경량 HTTP 서비스: 모바일에서 보고하는 장치 상태 + 건강 데이터를 수신하고, **MCP(Model Context Protocol)**를 통해 AI 에이전트가 읽을 수 있도록 노출합니다. 단일 프로세스, 단일 포트.

✨ 특징

  • 📱 모바일 보고: iOS 단축 명령어 POST /ingest로 배터리/위치/네트워크/건강 스냅샷 전송

  • 🤖 MCP 게이트웨이: 동일 프로세스에 /mcp 마운트, Hermes 등 AI 에이전트가 직접 읽기

  • 🏗️ 단일 포트 단일 프로세스: 업로드 + 조회 + MCP 모두 8764 포트 재사용, 2차 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 읽기: 로컬 루프백 직접 연결 8764/mcp (공용 네트워크 경유 안 함)

  • 공유 메모리: MCP 도구가 app.store를 직접 읽음, 직렬화/2차 요청 불필요

🔌 엔드포인트

메서드

경로

인증

설명

POST

/ingest

Bearer 모바일 키

모바일이 최신 상태 보고

GET

/query_all

Bearer agent 키

전체 스냅샷 반환

GET

/health

없음

상태 확인 (Docker HEALTHCHECK 용)

POST

/mcp

없음 (로컬 루프백)

MCP streamable-http 엔드포인트

🔑 인증 및 구성

두 개의 공유 비밀 키만으로 신원 식별 (신원 식별용, 필드 수준 권한 아님), 모두 환경 변수로 재정의 가능:

용도

환경 변수

기본값 (개발 전용)

엔드포인트

모바일 키

USER_STATUS_PHONE_KEY

phone-secret-key-001

POST /ingest

agent 키

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. 1개의 포트 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:

  • 트리거: main 브랜치 push / 수동 workflow_dispatch / 태그 생성

  • 산출물: ghcr.io/<owner>/lifesign:latest:<git-sha> 이중 태그

  • 플랫폼: linux/amd64, linux/arm64

  • 설명: 이미지는 비공개 (비공개 저장소 → GHCR 패키지 비공개), 1Panel 배포 시 Docker 설정에 GHCR 로그인 자격 증명 (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