Quantified Self MCP Server
Quantified Self MCPサーバー
ローカルのModel Context Protocol(MCP)サーバーで、LLM(例: Claude Desktop)があなたの個人の健康・財務データを照会できるようにします。すべては2つのローカルSQLiteファイルに保存され、あなたが制御するPythonプロセスがディスクから直接読み取ります。クラウドデータベースも、ダッシュボードも、サードパーティのサービスもありません。
含まれるもの
quantified-self-mcp/
├── server.py # the MCP server (FastMCP) — 2 tools
├── init_db.py # loads a CSV file into the local SQLite database
├── requirements.txt
├── .gitignore # keeps data/ and .db files out of version control
└── sample_data/
├── health_sample.csv # 30 days of sample data, so you can try it immediately
└── finance_sample.csv # ~2 months of sample expensesinit_db.pyを実行すると、server.pyの隣にdata/フォルダが作成され、health.dbとfinance.dbが含まれます。このフォルダはここには含まれていません。あなた自身のデータからあなたのマシン上で生成されるためです。
Related MCP server: apple-health-mcp
公開されているツール
ツール | 戻り値 | パラメータ(すべて任意) |
| 毎日の歩数、睡眠時間、安静時心拍数 |
|
| カテゴリ別の支出台帳、合計付き |
|
どちらのツールも、一致する行に加えて計算されたサマリー(健康の平均/最小/最大、財務のカテゴリ別合計)を返すため、モデルが多数の行にわたって独自の集計を行う必要はありません。
1. 環境のセットアップ
Python 3.10+が必要です。
cd quantified-self-mcp
python3 -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txt2. データの読み込み
同梱のサンプルですぐに試せます:
python init_db.py health sample_data/health_sample.csv
python init_db.py finance sample_data/finance_sample.csv自分のデータを使うには、以下の列でCSVにエクスポートし、同じコマンドを自分のファイルに対して実行してください:
health CSV:
date, steps, sleep_hours, resting_heart_ratefinance CSV:
date, category, amount, description(descriptionは任意)
日付はISO形式(2026-08-23)にしてください。MM/DD/YYYYも受け付けられ、変換されます。金額/数値には$と,を含めることができます(例: $1,234.56)— これらは自動的に削除されます。問題のある行(不正な日付、非数値の金額、カテゴリ欠落など)はインポート全体を中断するのではなく、警告付きでスキップされます。最後に表示される行は、常に読み込まれた行数とスキップされた行数を示します。
init_db.py healthを再度実行すると、日付でアップサートされます(日を追加しても安全に再実行できます)。init_db.py financeは毎回新しい行を追加します。台帳には自然な一意キーがないためです。どちらのコマンドにも--replaceを追加すると、代わりにテーブルを最初に削除します。
3.(任意)単独でテストする
クライアントに組み込む前に、MCP Inspectorを開いてブラウザでツールを直接呼び出すことができます:
fastmcp dev inspector server.py4. Claude Desktopに接続する
Claude Desktopは、ローカルのMCPサーバーをサブプロセスとして起動し、JSON設定ファイルに基づいてstdioで通信します:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.jsonLinux:
~/.config/Claude/claude_desktop_config.json
アプリから直接ジャンプできます: 設定 → 開発者 → 設定ファイルを編集。
mcpServersの下にエントリを追加し、絶対パスを使用してください。重要なのは、commandを作成した仮想環境内のPythonインタープリタに向けることで、裸のpythonではなく、ということです。Claude Desktopはサーバーを最小限の環境で実行するため、シェルのPATHやアクティブなvenvを確実に継承しません。そのため、裸の"python"はしばしば誤ったインタープリタ(またはまったくないもの)に解決され、サーバーは静かに起動に失敗します。
{
"mcpServers": {
"quantified-self": {
"command": "/absolute/path/to/quantified-self-mcp/.venv/bin/python3",
"args": ["/absolute/path/to/quantified-self-mcp/server.py"]
}
}
}Windowsでは、通常次のようになります:
{
"mcpServers": {
"quantified-self": {
"command": "C:\\absolute\\path\\to\\quantified-self-mcp\\.venv\\Scripts\\python.exe",
"args": ["C:\\absolute\\path\\to\\quantified-self-mcp\\server.py"]
}
}
}ファイルを保存し、Claude Desktopを完全に終了して再起動します(ウィンドウを閉じるだけでは不十分—設定変更を読み込むには再起動が必要です)。チャットボックスのハンマー/ツールアイコンを探して、quantified-selfが接続されていることを確認します。
FastMCPには、このファイルを編集するCLIショートカットも同梱されています— fastmcp install claude-desktop server.py --name "Quantified Self" — 試す価値があります(現在のフラグはfastmcp install claude-desktop --helpを実行)。ただし、上記の手動JSONは常に機能し、何か問題があればデバッグしやすいです。Anthropicには、ローカルMCPサーバー用の新しいワンクリック「デスクトップ拡張機能」パッケージ形式もあります。このような個人利用には必要ありませんが、JSON編集に不慣れな人とサーバーを共有したい場合に知っておくとよいでしょう。
5.(任意)Dockerで実行 / Glamaでホスト
#5-optional-run-it-in-docker--host-it-on-glama
Dockerfileが同梱されており、ローカルvenvの代わりにコンテナで実行したい人向けです。Glamaでのホスティングも含みます。Glamaは、リポジトリにDockerfileがあると、そこから直接ビルドします。
docker build -t quantified-self-mcp .
docker run -i --rm -v "$PWD/data:/app/data" quantified-self-mcpイメージはPythonのみです(python:3.12-slim + pip install -r requirements.txt)。このプロジェクトにはNode.jsはどこにもありません。HEALTH_DB_PATHとFINANCE_DB_PATHは、コンテナ内の/data/health.dbと/data/finance.dbにデフォルト設定されるため、マウントされたボリューム(例: Glamaの/dataマウント)が再デプロイ後もデータベースを永続化します。上書きするには、server.pyの上部にある設定セクションを参照してください。
glama.jsonは意図的に最小限です— 単にGlamaにこのリポジトリを指すだけです。Dockerfileが、イメージのビルドと起動方法(python server.py、stdio経由)の実際のソースです。以前のバージョンのglama.jsonは、Dockerfileを使用する代わりに、汎用ビルドパック(裸のdebian:trixie-slimベースイメージと手動のpip installビルドステップとcmdArguments)を手動設定しようとしました。そのイメージにはPythonインタープリタが確実にプロビジョニングされておらず、プラットフォームはこのリポジトリに存在しないNode.jsエントリポイントの実行にフォールバックしました(Cannot find module '/app/server.js')。Dockerfileを同梱することで、その曖昧さは解消されます。
プライバシーモデル — 「ローカル」が実際に意味するもの
これについては正確にしておく価値があります。これがプロジェクトの要点だからです:
両方のSQLiteデータベースは、このプロジェクトの
data/フォルダ内の、あなたのディスク上にのみ存在します。サーバーはネットワーク呼び出しを行わず、テレメトリもなく、どこにも同期しません。server.pyは、SQLiteの読み取り専用モードで両方のデータベースを開きます(単に「書き込みを発行しない」だけでなく、接続は物理的に不可能です)。バグのあるプロンプトや悪意のあるプロンプトでも、どちらのツールもあなたのデータを変更できません。ターミナルからあなたが実行するinit_db.pyだけが、書き込みを行います。MCPクライアントがこれらのツールのいずれかを呼び出すと、そのクエリに対して返された特定の行が、応答しているモデルに送信される会話の一部になります。これがMCPがモデルに情報を提供するメカニズムです。Claude Desktopをホスト型モデルで使用している場合、あなたが尋ねたデータのスライスは、そのターンでAnthropicに送信されることを意味します。チャットに入力する他のものと同様です。
つまり、ここでの「ローカル」とは、あなたの完全なデータセットがサードパーティのデータベースに保存または同期されることは決してなく、ツールが実際に呼び出されない限り何も送信されない— そしてその場合でも、その特定の呼び出しが返す行のみが送信され、データベース全体ではありません。完全にオフラインのエンドツーエンドを意味するものではありません。そのためには、MCP互換クライアントと組み合わせた完全にローカルなモデルランタイム(例: Ollama)が必要です。
トラブルシューティング
サーバーがClaude Desktopに表示されない:
commandとargsが絶対パスを使用しているか、venvのPythonパスが実際に存在するか、アプリを完全に終了して再起動したかを確認してください。ログは~/Library/Logs/Claude(macOS)または%APPDATA%\Claude\logs(Windows)にあります。mcp-server-quantified-self.logに、このサーバー固有のstderrが表示されます。ツールから「No health/finance database found」: そのデータセットに対して先に
init_db.pyを実行してください。ツールは意図的に空のデータベースを自動生成しないため、静かに空の回答が返ることはありません。server.pyの編集が反映されていないように見える: Claude Desktopを再起動してください。サーバープロセスはメッセージごとではなく、アプリセッションごとに1回起動されます。Glamaでのホスティングが
Cannot find module '/app/server.js'で失敗する: これは、デプロイがPythonではなくNode.jsランタイムにフォールバックしたことを意味します。このリポジトリにはserver.jsはありません。プラットフォームが確実にpython server.pyを実行するように、汎用ビルドパック設定ではなく、同梱のDockerfile(上記の「Dockerで実行 / Glamaでホスト」を参照)からビルドしてください。
拡張
自然な次のステップをいくつか紹介します。どれもまだビルドされていませんが、パターンが示す方向性です:
エントリをCSV/SQLの代わりにLLMを通じて追加できるように、ツール(
log_expense、log_daily_metric)を書く。より多くのメトリクス— 体重、ワークアウト、気分、水分摂取量— それぞれが別のテーブルと別の読み取りツールになります。
予算対実績ツール。
read_finance_dataの合計を、あなたが定義した目標と比較します。
Maintenance
Related MCP Servers
- AlicenseAqualityAmaintenanceAn MCP server that allows users to query and analyze their Apple Health data using SQL and natural language, utilizing DuckDB for fast and efficient health data analysis.931,096564MIT
- AlicenseNot gradedqualityCmaintenanceLoads Apple Health export data into a local SQLite database and exposes tools to query health metrics and workout records via natural language.2MIT
- AlicenseNot gradedqualityCmaintenanceTurns a personal-finance SQLite database into typed, schema-validated tools that an AI assistant can call directly, letting you manage accounts, transactions, budgets, debts, investments, tax estimates, and goals through natural language.60MIT
- AlicenseNot gradedqualityDmaintenanceEnables querying personal data synced from services like Lunch Money and Strava using SQL via Claude.131MIT
Related MCP Connectors
The grounded data layer for any LLM: governed SQL, metrics, lineage and catalog over your data.
Query PostgreSQL databases in plain English — LLM-generated, safety-validated SQL.
Read-only bank access for your AI agent. Connects Claude, ChatGPT, Cursor, Gemini, Codex.
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/Thecimal/quantified-self-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server