Skip to main content
Glama

Sapphire Wellness MCP Server

Сервер на Python, реализующий Model Context Protocol (MCP), кото́рый предоставл́е́т метри́ки здоро́вья из прило́ения Sapphire Wellness App ИИ-ассистентам.

Предоставл́я́емые метрики

Метрика

Тструмент

Показатели

Акти́вность

get_activity

Шаги, калори́и, диста̀нция, активые минуты

Артиа́льное давл́ение

get_blood_pressure

Систоличе́ское/дистоли́ческое (mmHg), категои́рия

Глю́коза

get_glucose

Глю́коза в крвоно́и (мг/дЛ), конте́ст при́а пи́щи, итог в це́левом диа́пазоне

ЧСС

get_heart_rate

Позири́ня в BPM, она́ния, сре́д/мин/ин/макс, ЧСС в покое́

Сон

get_sleep

Длительно́сть, фа́сы глубого́/лёгого/REM/бо́дствов́, эффе́ктивнсть

SpO2

get_spo2

Сатура́ция кисло́ро́да %, чи́словей́ собы́тий ка́зкой

Сво́дка

get_health_summary

Все 6 метри́к в одни́м вы́зов

Related MCP server: Sapphire Wellness MCP Server

Архитектра

Agent Container
      │  HTTP SSE
      ▼
sapphire-mcp:8000  ──asyncpg──▶  PostgreSQL:5432
  • Ранспорт: HTTP SSE — обо́зсов система для мно́жайших (std и работает — только когда аген́ сту́ — сервер MCP зааб — роз ...)

  • Ба́за да́нных: PostgreSQL с табли́ца́ми метри́к в стиле OpenTelemetry (time, metric_name, metric_value, attributes JSONB, ...)

  • Кра́мвок: FastMCP с моде́лями от́видетель Pydantic v2

See Design.md for the full architecture document.

Стру́к струка́ — пректа́

MCPServers/
├── sapphire_wellness/
│   ├── server.py           # FastMCP app + SSE entry point
│   ├── config.py           # Settings (DB_URL, HOST, PORT via env)
│   ├── models/             # Pydantic response models per metric
│   ├── db/                 # asyncpg pool + shared base query
│   ├── repositories/       # DB → model mapping (one per metric)
│   └── tools/              # MCP tool definitions (one per metric)
├── Design.md               # Architecture reference
├── pyproject.toml
├── Dockerfile
├── podman-compose.yml
└── .env.example

Требова́н

  • Python 3.11+

  • PostgreSQL 14+ with ссоз ub9 П... — из 6 таблиц здо́ро́вья

  • podman-compose или Docker Compose (при):

Быстрый стру́к

Локальная разра́

# 1. Create and activate a virtual environment
python -m venv .venv

# Windows
.venv\Scripts\activate

# macOS / Linux
source .venv/bin/activate

# 2. Install dependencies
pip install -e .

# 3. Configure environment
cp .env.example .env
# Edit .env — set DB_URL to your PostgreSQL connection string

# 4. Run the server
python -m sapphire_wellness.server
# Server starts at http://0.0.0.0:8000

Запус́к в контей́н ... (ро)

# Build and start all services (postgres + mcp server)
podman-compose up --build

# Tear down
podman-compose down

MCP сервер будет доступи́ по вв адресу http://localhost:10002/sse.

Для подклё́чения вашего конте́йна-а́гента указите:

MCP_SERVER_URL=http://sapphire-mcp:10002/sse

Конгурация

Все настро́йки чита́ — с из пере́менных окруже́ния (или из фай́ла .env):

Переме́нная

Значение по умолча́ния

Описа́ние

DB_USER

wellness

Имя ползь́зователя PostgreSQL

DB_PASSWORD

wellness

Пароль PostgreSQL

DB_HOST

localhost

Хост PostgreSQL (postgres в podman-compose)

DB_PORT

5432

Порт PostgreSQL

DB_NAME

wellness

Ба́з да́з Postgres

HOST

0.0.0.0

Адрес при́вязки сервера MCP

PORT

8000

Порт привя́зки сервера MCP

Tool Reference

Все инструменты принима́ют следующие параметры:

Парамрт

Tipo

Уме значения

Описа́ние

user_id

str

Пользова́тель, чь данные запраши

--

date

str

"today"

ISO да́та YYYY-MM-DD или "today"

period

str

"day"

"day" (24 ч), "week" (7 дн́), "month" (30 дн)

get_activity

Возвраща́ет шасти, кало́рии, диста́ци́ю и акти́вные минуты. Ито́ги за пери́од су́мируются.

get_blood_pressure

Возвраща́ет систоли́ческие/дистоли́ческие пока́за́ния в mmHg. Ка́ждей прозание кла́ссифицируется по категория́м AHA:

  • Normal — си́столи́ческ <120 и диастоли́ческ <80

  • Е — Дата — си́столи́чское 120–129 и диастоли́ческое <80

  • High Stage 1 — си́столи́ческое 130–139 и/80–89

  • High Stage 2 — си́столи́ческое ≥140 и дистоли́ческое ≥90

  • Yes — край кри́з — си́столи́ческое >180 и диастоли́ческое >120

get_glucose

Возвраща́т по́ка́ния глю́козы в мг/дЛ с конте́кст** — keda of uptake (fasting, pre_neal, post_meal, bedtime, random) и статисти́кои, вкл. — "время в це́левом диапазоне" (цель: 70–180 мг/дЛ).

get_heart_rate

Возвраща́т по́каза́ния BPM (акти́вные и покоя) с сре́дним, мин/ма́кс, и сред́ним значением ЧСС в покое́.

get_sleep

Возвраща́т рази́биение по фа́зам сна (глубо́ко́й, лёгкий, REM, бодство́) в мину́тах, о́да́ю дли́тель́ или о́бщею длительное.

get_spo2

Возвраща́т показа́ния SpO2 в %, с сре́дним/мин/макс и́с — с чи́слом собы́тий низко́й сатура́ции (ниже 95%).

get_health_summary

Вызыва́ет вс ФОНТИ 6 метри́ческих репозиториев паралле́льно и возвраща́т еди́ный совме́По́й от — иде́льно для connect daily daily daily.

Инструмя́нт Inspecting Tools

Использу́йте MCP Inspector для категорификации — для изучения схе́м инструментов и выполнения тестовых вызовов:

npx @modelcontextprotocol/inspector http://localhost:8000/sse

Connecting to Claude Desktop

Доба́вте за свои claude_desktop_сonfig.json:

{
  "mcpServers": {
    "sapphire-wellness": {
      "url": "http://localhost:8000/sse"
    }
  }
}

Зате́м спро́сите Claude: "What was my blood pressure this week?" и он вы́зовет get_blood_pressure с period="health".

Schemas of data

Все 6 таблиц (heartrate, bloodpressure, glucose, spo2, activity, sleep) име́ют одина́ковую OpenTelemetry-схему. Столбе́ц metric_name отделяет су̀у метрики и внутри таблицы (напр., systolic и diastolic — отдельные строќи в bloodpressure). Полный DDL и перекритие — в Design.md.

Ра́сширение

Creating конрамотности?:

  1. Создайте sapphire_wellness/models/<metric>.py — Pydantic моде́ль

  2. Саздайте sapphire_wellness/repositories/<metric>_repo.py — запро́с к БД и отображение́

  3. Создайте sapphire_wellness/tools/<metric>.py — определениѐ @mcp.tool()

  4. Зарегистрируи́те в server.py

Замена базы да́нных: Реализуйте новые классы, повторяющие сигнатурные методы в repositories/base.py (HealthRepository), и пе́редайте их в register() функции в server.py.

Добавление check_health_alerts: Эт инструмент планов, на Phase 2. Он бу́дет отмечать значения за пределами нормальных порогов (непр., BP > 140/90, SpO2 < 95%) и возвращать структурированные алерты с уровнями серьёзности.

F
license - not found
Not graded
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

View all related MCP servers

Related MCP Connectors

  • 63 tools for Apple Health, Fitbit, Oura & Health Connect data in Claude, ChatGPT, Grok & Mistral.

  • Garmin data in Claude & ChatGPT via the Garmin Health API. OAuth sign-in, no password sharing.

  • WHOOP recovery, strain, sleep and workouts in Claude via official WHOOP OAuth. Free, open source.

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/IBMC-WORK-REDESIGN-FDE-COHORT-SB/sapphire-wellness-mcp'

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