mcpField
M
mcp-freestyle

mcp-freestyle

ローカル
github.comヘルスケア010 週間前に更新

mcp-freestyle について

mcp-freestyleは、LibreLinkUp経由でFreeStyleセンサーのデータを取得する読み取り専用のMCPサーバーです。最新値と最大12時間分の履歴を、実際の対象期間やデータの欠落とともに提示します。情報提供用であり、治療判断には使用できません。

主な機能

  1. 01最新の血糖測定値と時刻の取得
  2. 02最大12時間分の測定履歴の照会
  3. 03目標範囲内の時間を表示
  4. 04実際のデータ範囲と取得漏れを明示
  5. 05OSのキーチェーンにパスワードを保存

活用シーン

  1. 01直近の血糖測定値と測定時刻の確認
  2. 02最近の測定値と目標範囲内の時間の確認

MCP 対応

MCPクライアントに get_current_glucose と get_glucose_history ツールを公開します。LibreLinkUp経由でデータを取得する読み取り専用サーバーで、医療機器ではありません。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"lozit-mcp-freestyle": {
"command": "npx",
"args": [
"-y",
"mcp-freestyle"
],
"env": {
"LIBRELINKUP_EMAIL": "<LIBRELINKUP_EMAIL>",
"LIBRELINKUP_PASSWORD": "<LIBRELINKUP_PASSWORD>",
"LIBRELINKUP_VERSION": "<LIBRELINKUP_VERSION>",
"LIBRELINKUP_PRODUCT": "<LIBRELINKUP_PRODUCT>",
"LIBRELINKUP_BASE_URL": "<LIBRELINKUP_BASE_URL>"
}
}
}
}
起動コマンドnpx -y mcp-freestyle
設定が必要な環境変数
LIBRELINKUP_EMAILLibreLinkUp *follower* account e-mail — not the primary LibreLink account. The password is stored once via `npx mcp-freestyle-login` in the OS keychain, so it never appears in this configuration.
LIBRELINKUP_PASSWORDシークレットOverrides the OS keychain. Intended for CI and one-off runs; prefer `mcp-freestyle-login` so no credential lands in a config file.
LIBRELINKUP_VERSIONPinned LibreLinkUp client version sent as the `version` header. Upstream rejects stale values — set this to the current LibreLinkUp app version if requests start failing.
LIBRELINKUP_PRODUCTClient product identifier sent as the `product` header.
LIBRELINKUP_BASE_URLEntry point for authentication. The regional host is discovered at login and is never configured here.

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmmcp-freestyle0.1.4

ツール

2

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
unitenumいいえ返される値の単位。保存単位は常に mg/dL で、これは表示にのみ影響します。mg/dL | mmol/L

詳細

mcp-freestyle

CI npm License: MIT Node: ≥20 Not a medical device

FreeStyle グルコースセンサーからデータを読み取る Model Context Protocol サーバーです。

要件

このサーバーは Abbott のクラウドからデータを読み取るため、データがすでにクラウドに送信されている場合にのみ動作します。以下のすべてが必要です。

  • スマートフォンの LibreLink アプリで読み取る FreeStyle センサー。 代わりに FreeStyle 専用リーダーを使用している場合、データは継続的にアップロードされないため、このサーバーでは対応できません。
  • その LibreLink アプリからフォロワーアカウントへの LibreLinkUp 共有の設定。サーバーはフォロワーとしてサインインします。
  • Node.js ≥ 20 と、正常に動作する OS キーチェーン(macOS Keychain、Windows Credential Manager、または Linux の libsecret)。

サーバーは 非公式 の LibreLinkUp / LibreView API を使用しています。この API は Abbott とは提携しておらず、Abbott のサポート対象でもありません。予告なく動作しなくなる可能性があります。詳しくは docs/decisions/0002-data-source-librelinkup.md をご覧ください。

クイックスタート

1. インストール
npm install -g mcp-freestyle

または、まずコードを読みたい場合は、クローンからインストールします。

git clone https://github.com/lozit/mcp-freestyle.git && cd mcp-freestyle
npm install && npm run build
2. 一度ログインする
npm run login          # from a clone
mcp-freestyle-login    # if installed globally

LibreLinkUp のフォロワーのメールアドレスとパスワードを求められます。実際に認証してパスワードを検証するため、パスワードが間違っていたり、共有が設定されていなかったりする場合は、Claude に初めて質問するときではなく、この時点でわかります。パスワードは OS キーチェーンに保存され、設定ファイルには保存されません。

上流サービスから発行されるトークンは保存されません。失効手段がなく約180日間有効なため、保存しておくほうが大きなリスクになります。代わりに、サーバーが再認証します。

最後に、login から Claude Desktop にサーバーを一度の操作で追加できます。

3. Claude に接続する

Claude Desktop — コマンドを1つ実行します。

mcp-freestyle-install

絶対パスを使用して ~/Library/Application Support/Claude/claude_desktop_config.json(Windows では %APPDATA%\Claude\…)にエントリーを追加します。既存の設定は先にバックアップされ、ほかのサーバーの設定はそのまま保持されます。解析できない設定は上書きしません。Claude Desktop を完全に終了(⌘Q)してから、再起動してください。

Claude Code:

mcp-freestyle-install code   # prints the exact `claude mcp add` command

書き込まれるエントリーに含まれるのはメールアドレスのみです。これは識別子であり、秘密情報ではありません。これがキーチェーンを使う理由です。同期、バックアップ、バグ報告への貼り付けが行われる設定ファイルに、認証情報が含まれることはありません。

保存したパスワードを削除するには、mcp-freestyle-logout を実行します。

設定

変数必須デフォルト備考
LIBRELINKUP_EMAILはい—メインの LibreLink アカウントではなく、LibreLinkUp のフォロワーアカウント
LIBRELINKUP_PASSWORDいいえkeychainキーチェーンの設定を上書きします。CI または一度限りの実行用であり、通常の使用方法ではありません
LIBRELINKUP_VERSIONいいえ4.16.0固定されたクライアントバージョンです。上流サービスは古い値を拒否します。リクエストが失敗し始めた場合は、現在の LibreLinkUp アプリのバージョンを設定してください
LIBRELINKUP_PRODUCTいいえllu.android
LIBRELINKUP_BASE_URLいいえhttps://api.libreview.ioエントリーポイントのみです。リージョンホストはログイン時に検出されます

ツール

ツール返される内容
get_current_glucose実際に測定された時刻と、アカウント固有の目標範囲を含む最新の測定値です。リアルタイムの「現在値」として提示することはありません。
get_glucose_history過去 N 時間(最大 12 時間)の測定値と、目標範囲内にあった時間です。実際に対象となった範囲を必ず明記し、上流から要求した件数より少ないデータしか返されなかった場合は truncated を示します。データ収集の空白期間を記載し、その間の値を補間することはありません。

上流に保持される詳細データは約 12 時間分のみです。それより長い期間への対応は、 ツールの制限ではなく、将来のマイルストーンです。

開発

npm test          # Node's built-in test runner — no build step needed
npm run typecheck # strict TypeScript, the project's only lint gate
npm run build     # emits dist/

使い方

接続したら、自然な言葉で尋ねてください。

今の血糖値はいくつですか?

今日は目標範囲内にどのくらいの時間いましたか?

過去 6 時間分を見せてください。

回答には各測定値が実際に取得された時刻、データが実際に対象とした範囲、データ収集の空白期間が含まれます。そのため、「今日」について尋ねた場合、今日のうちどれだけの範囲を確認できたかがわかります。上流に保持されている範囲を超えて要求した場合は、取得できたデータの範囲を伝え、少ないデータしかないことを伏せたまま回答することはありません。

リーダーやアプリの代わりにはなりません。 情報提供のみを目的としています。上記の免責事項をご覧ください。

プロジェクト構成

  • README.md — このファイル
  • CLAUDE.md — Claude Code 向けの指示
  • docs/ — プロジェクトのドキュメント(アーキテクチャ、決定事項、学び)
  • intake/ — 上流に関するメモと仕様の原文
  • docs/media/ — ビジュアル素材

ドキュメント

免責事項

医療機器ではありません。 このプロジェクトは情報提供のみを目的としています。出力を治療に関する判断(投与量、補正、治療の調整)に使用しないでください。必ず公式のリーダー/アプリと医療チームの指示に従ってください。

コントリビューション

課題報告やプルリクエストを歓迎します。特に、TrendArrow の値の対応付け(下記参照)を支援できる方や、これまで確認されていない LibreLinkUp の地域やペイロード形式に遭遇した方からの貢献をお待ちしています。

npm test          # Node's built-in runner, no network — `fetch` is injectable
npm run typecheck # strict TypeScript, the project's only lint gate

譲れないルールが 1 つあります:実際の血糖値、センサーのシリアル番号、アカウント識別子、認証情報を決してコミットしないでください。フィクスチャ、課題報告、スクリーンショットにも含めないでください。テストでは合成フィクスチャのみを使用します。値にタイムスタンプが付いていれば、名前がなくても健康測定データです。

設計上の決定事項は docs/decisions/ に、検証済みの上流仕様は docs/ARCHITECTURE.md に記載されています。測定値の取得方法や集計方法を変更する前に、これらを読んでください。把握に実際のデバッグ作業を要した、わかりにくい上流の挙動がいくつか記録されています。

既知の課題

  • TrendArrow は変換されません。 上流から整数が送られますが、その対応関係は文書化されておらず、観測された値も 1 つだけです。推測で変換するのではなく、raw_trend_arrow としてそのまま渡します。自信を持って誤った矢印を示すより、何も示さないほうがよいためです。
  • 履歴は最大約 12 時間分です。 上流はそれより長い要求を無視します。長期的な計画については、ADR 0003 をご覧ください。

セキュリティ

脆弱性は [email protected] まで非公開で報告してください。詳しくは docs/SECURITY.md をご覧ください。

ライセンス

MIT © Guillaume Ferrari

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。