Lifesign
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/ingestAI 읽기: 로컬 루프백 직접 연결
8764/mcp(공용 네트워크 경유 안 함)공유 메모리: MCP 도구가
app.store를 직접 읽음, 직렬화/2차 요청 불필요
🔌 엔드포인트
메서드 | 경로 | 인증 | 설명 |
|
| Bearer 모바일 키 | 모바일이 최신 상태 보고 |
|
| Bearer agent 키 | 전체 스냅샷 반환 |
|
| 없음 | 상태 확인 (Docker HEALTHCHECK 용) |
|
| 없음 (로컬 루프백) | MCP streamable-http 엔드포인트 |
🔑 인증 및 구성
두 개의 공유 비밀 키만으로 신원 식별 (신원 식별용, 필드 수준 권한 아님), 모두 환경 변수로 재정의 가능:
용도 | 환경 변수 | 기본값 (개발 전용) | 엔드포인트 |
모바일 키 |
|
|
|
agent 키 |
|
|
|
수신 포트 |
|
| — (run.sh 사용) |
⚠️ 프로덕션 배포 시 환경 변수로 기본 키를 반드시 재정의하고, 저장소 내 기본값을 사용하지 마십시오.
🚀 빠른 시작
로컬 실행
python3 -m venv .venv
. .venv/bin/activate
pip install -r requirements.txt
./run.sh start # 后台启动 :8764
./run.sh status
./run.sh stopDocker 실행
# 本地构建
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 배포 (권장)
1Panel → 컨테이너 → 오케스트레이션에서 새 오케스트레이션 생성 후
docker-compose.yml붙여넣기;이미지는 GitHub Actions에서 자동 빌드되어 GHCR로 푸시되며, 배포 시 바로 가져옴;
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
This server cannot be installed
Maintenance
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
- Flicense-qualityAmaintenanceA 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
- Alicense-qualityAmaintenanceTurn 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.2Apache 2.0
- AlicenseAqualityAmaintenanceA 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.2681040MIT
- Alicense-qualityBmaintenanceEnables AI agents to control Android phones via MCP and HTTP. Supports screen capture, taps, swipes, text input, and app management.AGPL 3.0
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.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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