nightscout-mcp
nightscout-mcp
Nightscout のデータを Claude に公開する、読み取り専用の MCP サーバーです。
「今の血糖値はどうなってる?」 や 「今週のタイム・イン・レンジはどうだった?」、「まだ効いているインスリンはどのくらい?」 と尋ねると、自分のデータから答えが得られます。
医療機器ではありません。 これは、あなたがすでに持っているデータを読み取り専用で表示するものです。治療の判断に使用しないでください。重要なことは、CGM、ポンプ、医師に確認してください。測定値は古くなっていたり、欠落していたり、間違っていたりする可能性があり、LLM が誤って解釈する可能性もあります。
動作イメージ
あなた: この2週間、夜間の血糖値はどうでしたか?
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 は、1日の中で群を抜いて悪い時間帯です。およそ3晩に1回はその時間帯に70を下回り、05:00 までには自然に戻っています。このパターンは、基礎レートを管理している人に見せる価値があります。
あなた: すぐに変更が必要なものはありますか?
Claude: (
get_site_agesとget_device_statusを呼び出し)センサーは9日目なので、あと1日ほどで交換時期です。カニューレは2日目です。ポンプのリザーバーは18単位、ポンプのバッテリーは22%です。これは明日ではなく、今夜対応すべきものです。
(数値は例であり、実際のデータではありません。)
Related MCP server: MCP Nightscout
ツール
現在の状態
ツール | 戻り値 |
| 最新の測定値、トレンド方向、経過時間 |
| 過去N時間(デフォルト3時間)の測定値 |
| アクティブなインスリンと炭水化物(Loop/AAPS) |
| ポンプのリザーバーとバッテリー、アップローダーのバッテリー、ループの健全性 |
| カニューレ、センサー、インスリン、ポンプバッテリーの経過日数 |
期間集計
ツール | 戻り値 |
| 低/範囲内/高の割合、平均、GMI、CV%(デフォルト24時間) |
| 時間帯別の血糖値 — 実際に低くなる/高くなる時間帯 |
| 直近N日間とその前のN日間の比較(差分付き) |
| ボーラス、炭水化物、サイト交換(デフォルト12時間) |
リファレンス
ツール | 戻り値 |
| 基礎レート、ISF、炭水化物比、目標値 |
| Nightscout のバージョンと設定済みのしきい値 |
glucose_patterns は特に知っておく価値があります。「血糖値はどうなっているか」はグラフで答えられる質問ですが、「一日のうちどの時間帯に確実に低くなるか」はグラフでは答えられません。モデルが2週間分の測定値から見つけ出すのに適した種類の質問です。時間帯は Nightscout プロファイルのタイムゾーンでビン化されるため、午前3時はあなたの午前3時を意味します。
書き込みツールはありません。このサーバーは Nightscout の何も変更できません。
意図的に公開していないもの
Nightscout の ボーラスウィザードプレビュー (bwp) は 推奨インスリン量 を返します。これを表示すると、データを表示するものから治療を提案するものに変わってしまいます。これは、あなたにとっても、そのようなソフトウェアの規制の面でも、まったく別のものです。補正を計算するものについても同じ理由です。ここにあるすべてのツールは読み取り専用です。
セキュリティ
これは個人の健康データをパブリックインターネット上で提供するため、デフォルトは意図的に厳格になっています。
ベアラートークンが必須で、サーバーはトークンなしでは起動しません。 「変数を忘れた場合の未認証モード」はありません。それは、デプロイ時に気づかれない失敗だからです。
上流への最小権限。 Nightscout への読み取りは 読み取り可能な アクセストークンで行い、管理者の
API_SECRETは決して使いません。このサーバーが完全に侵害されても、Nightscout に書き込むことはできません。定数時間のトークン比較 により、応答時間からベアラートークンを1文字ずつ復元することはできません。
エラーはサニタイズされます。 Nightscout はクエリパラメータで認証するため、トークンはリクエスト URL に含まれます。上流の障害は、パスとステータスのみを名前として再発生させ、資格情報をログやクライアントから見えるエラーに残しません。
転送ヘッダーは、指定したプロキシからのみ信頼されます (
TRUSTED_PROXY_IPS)。未設定の場合は誰も信頼しません。コンテナ内では非 root ユーザーとして実行されます。
/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自分で考えたものではないベアラートークンを生成します:
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.py4. HTTPS の背後に配置する
サーバーは平文の HTTP を話し、TLS はその前で終端することを想定しています (Traefik、Caddy、nginx、Cloudflare Tunnel など)。Claude はあなたのデバイスからではなく Anthropic のサーバーから接続するため、URL はパブリックインターネットから到達可能である必要があります。
プロキシが X-Forwarded-* を設定する場合は、それを指定します:
TRUSTED_PROXY_IPS=172.18.0.0/165. Claude に接続する
Claude で: Customize → Connectors → Add custom connector
URL:
https://your-host.example.com/mcp/Request headers を開き、
authorizationを追加し、値にBearer <your MCP_BEARER>を指定します。
Bearer という単語とスペースを含めて値を入力してください。Claude はヘッダーをそのまま送信し、独自のプレフィックスは追加しません。
リクエストヘッダー認証は Claude のベータ版です。Request headers セクションが表示されない場合は、Anthropic にアクセスを依頼してください。Claude Code は、独自の MCP 設定を介して同じサーバーを今日から使用できます。
単位
NS_UNITS=mg/dl (デフォルト) または mmol。これは値の表示方法にのみ影響します。Nightscout は常に mg/dL で読み取られ、出力時に変換されます。
Nightscout との関係
これは独立したプロジェクトです。Nightscout Foundation とは提携しておらず、承認も受けておらず、その一部でもありません。
Nightscout 自体 (cgm-remote-monitor) は AGPL-3.0 でライセンスされています。このサーバーには Nightscout のコードは含まれておらず、Nightscout のライブラリにもリンクしていません。実行中のインスタンスの REST API に HTTP リクエストを行うだけです。API を間接的に利用しても二次的著作物は生じず、AGPL のネットワーク条項は対象プログラムの変更を条件としていますが、このサーバーは変更を行いません。したがって、Nightscout のコピーレフトはここには及ばず、このプロジェクトは別途ライセンスされています。
これをフォークして Nightscout のソースコードを組み込んだ場合、その推論はあなたのフォークには適用されなくなります。
ライセンス
MIT — LICENSE を参照してください。
リーチを考慮して選択しました。これは小さなコネクタであり、その価値は誰でも10分で実行できることです。コピーレフトは、一般的なケース (1人が自分のデータのために自己ホストするケース) では誰も保護しません。
This server cannot be deployed
Maintenance
Related MCP Connectors
- NightscoutOAuthai.b77
Your Nightscout glucose data, conversational.
Glucose readings from your LibreLink Up sensor: graph, logbook, stats and summaries (read-only). Sec
Ask your databases questions in plain English, run read-only SQL and set up data alerts.
Your own SLATE health data in your AI assistant: read, trend, plan and log. Never suggests a dose.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables 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-
- AlicenseNot gradedqualityDmaintenanceConnects AI assistants to Nightscout for real-time glucose monitoring, analysis, and treatment logging, enabling natural language interaction with CGM data.7MIT
- AlicenseBqualityDmaintenanceEnables AI assistants to access and analyze Continuous Glucose Monitor (CGM) data from Nightscout, providing real-time readings, history, and analytics.71MIT
- FlicenseAqualityDmaintenanceBridges your Nightscout CGM data with AI assistants via the Model Context Protocol, enabling natural language queries about glucose readings, treatments, statistics, and pattern analysis.21-