Skip to main content
Glama
oliver-virt

nightscout-mcp

by oliver-virt

nightscout-mcp

Сервер MCP только для чтения, который предоставляет ваши данные Nightscout в Claude.

Спросите «что у меня с глюкозой?», «каким был мой диапазон на этой неделе?» или «сколько инсулина ещё активно?» — и получите ответ на основе ваших собственных данных.

Не медицинское устройство. Это представление ваших данных только для чтения. Не принимайте решений о лечении на его основе. Подтверждайте всё, что имеет значение, по данным CGM, помпы и врача. Показания могут быть устаревшими, отсутствовать или быть неверными, а LLM может их неправильно интерпретировать.

Как это выглядит

Вы: что делала моя глюкоза ночью за последние две недели?

Claude: (вызывает glucose_patterns)

У вас стабильно низкие показатели в ранние часы — не разово, а как закономерность:

час

медиана

% ниже 70

01:00

112

4%

02:00

94

18%

03:00

77

31%

04:00

89

22%

05:00

108

9%

03:00 — худший час вашего дня с большим отрывом: примерно одна ночь из трёх в это время опускается ниже 70, и к 05:00 уровень восстанавливается сам. Такую картину стоит показать тому, кто управляет вашими базальными скоростями.

Вы: что-нибудь нужно скоро изменить?

Claude: (вызывает get_site_ages и get_device_status)

Сенсору 9 дней, так что он истекает примерно через день. Канюля — 2 дня. Резервуар помпы показывает 18 единиц, а батарея помпы — 22%. Вот это я бы решил сегодня вечером, а не завтра.

(Иллюстративные цифры, не чьи-то реальные данные.)

Related MCP server: T1D Manager

Инструменты

Сейчас

Инструмент

Возвращает

get_current_glucose

Последнее показание, направление тренда и его давность

get_recent_glucose

Показания за последние N часов (по умолчанию 3)

get_insulin_on_board

Активный инсулин и углеводы на борту (Loop/AAPS)

get_device_status

Резервуар и батарея помпы, батарея аплоадера, состояние цикла

get_site_ages

Возраст канюли, сенсора, инсулина и батареи помпы

За период

Инструмент

Возвращает

time_in_range

Низкий / в диапазоне / высокий, среднее, GMI, CV% (по умолчанию 24ч)

glucose_patterns

Глюкоза по часам суток — когда у вас реально низкие или высокие показатели

compare_periods

Последние N дней против предыдущих N, с дельтами

get_recent_treatments

Болюсы, углеводы и смены мест (по умолчанию 12ч)

Справочно

Инструмент

Возвращает

get_profile

Базальные скорости, ISF, углеводный коэффициент, цели

server_status

Версия Nightscout и настроенные пороги

glucose_patterns — тот, который стоит знать. «Что у меня с глюкозой» — вопрос, на который уже отвечает график; «в какое время суток у меня стабильно низкие показатели» — на него график не отвечает, и именно это модель хорошо умеет вычленять из двух недель показаний. Часы группируются в часовом поясе вашего профиля Nightscout, так что 3 часа ночи — это ваши 3 часа ночи.

Инструментов для записи нет. Сервер не может ничего изменить в Nightscout.

Сознательно не раскрыто

Предпросмотр болюсного мастера Nightscout (bwp) возвращает предлагаемое количество инсулина. Его отображение превратило бы это из инструмента, показывающего ваши данные, в инструмент, предлагающий лечение, — совсем другое дело, как для вас, так и для регулирования такого ПО. То же касается всего, что вычисляет коррекцию. Каждый инструмент здесь — только чтение.

Безопасность

Этот сервер передаёт личные медицинские данные через публичный интернет, поэтому настройки по умолчанию намеренно строгие:

  • Требуется bearer-токен, и сервер отказывается запускаться без него. Нет режима «без аутентификации, если забыл переменную» — это тот сбой, который развёртывание не замечает.

  • Минимальные привилегии на стороне источника. Он читает Nightscout с читаемым токеном доступа, никогда не используя административный API_SECRET. Даже полная компрометация этого сервера не позволит записать что-либо в ваш Nightscout.

  • Сравнение токенов за постоянное время, чтобы по времени ответа нельзя было восстановить bearer посимвольно.

  • Ошибки очищаются. Nightscout аутентифицируется через параметр запроса, поэтому токен находится в URL запроса; ошибки вышестоящего сервиса перевыбрасываются с указанием только пути и статуса, не допуская попадания учётных данных в логи и видимые клиенту ошибки.

  • Пересылаемые заголовки доверяются только прокси, которые вы указали, через TRUSTED_PROXY_IPS. Если не задано — не доверять никому.

  • Работает от непривилегированного пользователя в контейнере.

/health — единственный маршрут без аутентификации. Он возвращает фиксированный {"ok": true} и ничего не читает.

Настройка

1. Создайте токен Nightscout только для чтения

В Nightscout: Admin Tools → Subjects → Add. Дайте ему только роль readable. Вы получите токен вида claude-1a2b3c4d5e6f7890.

Не используйте свой API_SECRET. Здесь ничего не записывается, так что предоставление прав на запись ничего вам не даёт, но стоит всего, если токен утечёт.

2. Настройка

cp .env.example .env
# edit .env — at minimum NS_URL, NS_TOKEN, MCP_BEARER

Сгенерируйте bearer с помощью чего-то, что вы не придумали сами:

python3 -c "import secrets; print(secrets.token_urlsafe(32))"

3. Запуск

docker build -t nightscout-mcp .
docker run -d --name nightscout-mcp --env-file .env -p 8787:8787 nightscout-mcp

Или без Docker:

pip install -r requirements.txt
set -a && source .env && set +a
python server.py

4. Разместите за HTTPS

Сервер говорит по обычному HTTP и ожидает, что TLS завершается перед ним (Traefik, Caddy, nginx, Cloudflare Tunnel — что угодно). Claude подключается с серверов Anthropic, а не с вашего устройства, поэтому URL должен быть доступен из публичного интернета.

Если ваш прокси устанавливает X-Forwarded-*, укажите его:

TRUSTED_PROXY_IPS=172.18.0.0/16

5. Подключите к Claude

В Claude: Customize → Connectors → Add custom connector

  • URL: https://your-host.example.com/mcp/

  • Откройте Request headers, добавьте authorization со значением Bearer <ваш MCP_BEARER>

Введите значение, включая слово Bearer и пробел — Claude отправляет заголовок как есть и не добавляет своего префикса.

Аутентификация через заголовок запроса — бета-функция Claude. Если вы не видите раздел Request headers, запросите доступ у Anthropic. Claude Code может использовать этот же сервер уже сегодня через свою собственную конфигурацию MCP.

Единицы измерения

NS_UNITS=mg/dl (по умолчанию) или mmol. Это влияет только на представление значений; Nightscout всегда читается в мг/дл и конвертируется на выходе.

Отношение к Nightscout

Это независимый проект. Он не аффилирован с Nightscout Foundation, не одобрен им и не является его частью.

Сам Nightscout (cgm-remote-monitor) распространяется под лицензией AGPL-3.0. Этот сервер не содержит кода Nightscout и не подключает библиотек Nightscout — он только делает HTTP-запросы к REST API работающего экземпляра. Потребление API на расстоянии не создаёт производного произведения, а сетевое условие AGPL обусловлено модификацией покрываемой программы, чего здесь не происходит. Поэтому копилефт Nightscout не распространяется на этот проект, и он лицензирован отдельно.

Если вы форкнете этот проект и включите в него какой-либо исходный код Nightscout, эти рассуждения перестанут применяться к вашему форку.

Лицензия

MIT — см. LICENSE.

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

A
license - permissive license
Not graded
quality - not tested
B
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
    A
    quality
    D
    maintenance
    Enables AI assistants to query glucose data from health storage APIs, providing natural language access to glucose readings, trends, and statistics for diabetes management and health monitoring.
    3
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables Type 1 diabetes patients and caregivers to monitor real-time blood glucose from Dexcom Share, calculate insulin doses, and receive empathetic AI-powered sick day care guidance through natural language interactions.
    1
  • A
    license
    Not graded
    quality
    C
    maintenance
    Connects AI assistants to Nightscout for real-time glucose monitoring, analysis, and treatment logging, enabling natural language interaction with CGM data.
    4
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    Enables AI assistants to access and analyze Continuous Glucose Monitor (CGM) data from Nightscout, providing real-time readings, history, and analytics.
    7
    1
    MIT

View all related MCP servers

Related MCP Connectors

  • Glucose readings from your LibreLink Up sensor: graph, logbook, stats and summaries (read-only). Sec

  • GibsonAI MCP server: manage your databases with natural language

  • Ask your app anything — revenue, errors, read-cost, growth — and get rendered charts back.

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/oliver-virt/nightscout-mcp'

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