Senechal MCP Server について
Senechal MCP Serverは、Senechal APIの健康データをLLMアプリケーションに提供します。リソース、ツール、再利用可能なプロンプトを通じて、概要、測定値、傾向、統計を取得できます。
主な機能
- 01健康概要とプロフィールの取得
- 02現在の健康測定値の取得
- 03健康傾向と統計の照会
- 04健康分析プロンプトの提供
活用シーン
- 01LLMアプリで定期的な健康概要を読み込む
- 02指定した現在の測定値を取得する
- 03期間ごとの健康傾向を分析する
- 04プロンプトで健康指標を分析する
MCP 対応
Senechal APIの健康データをリソースとツールとして公開し、健康データ分析用のプロンプトも提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Senechal MCP サーバー
Senechal API から健康データを提供する、Senechal プロジェクトの補助となる Model Context Protocol(MCP)サーバーです。LLM アプリケーション向けに健康データを提供します。
概要
このサーバーは、LLM が Senechal API から健康データにアクセスするための標準化されたインターフェースを提供します。以下を公開します。
- リソース:LLM のコンテキストに読み込める健康データ
- ツール:LLM が呼び出して健康データを取得できる関数
- プロンプト:健康データの分析に使える再利用可能なテンプレート
インストール
- このリポジトリをクローンします
- 仮想環境を作成します。
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate - 依存関係をインストールします。
pip install -r requirements.txt
設定
.env.example ファイルを .env にコピーし、Senechal API キーと URL を追加します。
# Required: Senechal API Key
SENECHAL_API_KEY=your_api_key_here
# Required: API base URL
SENECHAL_API_BASE_URL=https://your-api-host/api/senechal
サーバーを機能させるには、API キーと API URL の両方が必要です。
Windows の設定
Windows で実行する場合は、次の点に注意してください。
- 設定ではバックスラッシュを使用するか、パスを適切にエスケープしてください
- claude-desktop-config.json には、Python 仮想環境のフルパスを指定してください。
{
"mcpServers": {
"senechal-health": {
"command": "C:\\path\\to\\venv\\Scripts\\python.exe",
"args": [
"C:\\path\\to\\senechal_mcp_server.py"
],
"env": {
"SENECHAL_API_KEY": "your_api_key_here"
}
}
}
}
MCP 設定の環境変数では .env ファイルが使用されないため、設定ファイルで明示的に指定する必要があります。
使用方法
クライアント/サーバー設定のテスト
設定をテストする最も簡単な方法は、サンプルクライアントを実行することです。
# In one terminal, start the server
python senechal_mcp_server.py
# In another terminal, run the example client
python example_client.py
サーバーを起動する
python senechal_mcp_server.py
MCP Inspector を使用した開発モード
mcp dev senechal_mcp_server.py
Claude Desktop にインストールする
このサーバーには、Claude Desktop 用の設定ファイルが含まれています。
mcp install senechal_mcp_server.py
その後、Claude Desktop のツールメニューから「Senechal Health」を選択できます。
利用可能なリソース
-
senechal://health/summary/{period}- 日、週、月、年単位の健康サマリーを取得します- 例:
senechal://health/summary/day?span=7&metrics=all - パラメーター:
period:day、week、month、yearspan:期間数(デフォルト:1)metrics:カンマ区切りのリスト、または「all」(デフォルト)offset:現在からのオフセット期間数(デフォルト:0)
- 例:
-
senechal://health/profile- ユーザーの健康プロフィールを取得します- 人口統計情報、服薬情報、サプリメントが含まれます
-
senechal://health/current- 現在の健康測定値を取得します- 例:
senechal://health/current?types=1,2,3 - パラメーター:
types:測定タイプ ID の任意のカンマ区切りリスト
- 例:
-
senechal://health/trends- 経時的な健康傾向を取得します- 例:
senechal://health/trends?days=30&types=1,2,3&interval=day - パラメーター:
days:分析する日数(デフォルト:30)types:測定タイプ ID の任意のカンマ区切りリストinterval:グループ化の間隔 - day、week、month(デフォルト:day)
- 例:
-
senechal://health/stats- 健康指標の統計分析を取得します- 例:
senechal://health/stats?days=30&types=1,2,3 - パラメーター:
days:分析期間の日数(デフォルト:30)types:測定タイプ ID の任意のカンマ区切りリスト
- 例:
利用可能なツール
-
fetch_health_summary- 指定した期間の健康サマリーを取得します- パラメーター:
period(必須):day、week、month、yearmetrics(任意):カンマ区切りの指標、または「all」(デフォルト)span(任意):取得する期間数(デフォルト:1)offset(任意):オフセット期間数(デフォルト:0)
- パラメーター:
-
fetch_health_profile- ユーザーの健康プロフィールを取得します- パラメーターは不要です
-
fetch_current_health- 最新の健康測定値を取得します- パラメーター:
types(任意):絞り込みに使用する測定タイプ ID のリスト
- パラメーター:
-
fetch_health_trends- 健康傾向データを取得します- パラメーター:
days(任意):分析する日数(デフォルト:30)types(任意):絞り込みに使用する測定タイプ ID のリストinterval(任意):グループ化の間隔 - day、week、month(デフォルト:day)
- パラメーター:
-
fetch_health_stats- 健康指標の統計分析を取得します- パラメーター:
days(任意):分析期間の日数(デフォルト:30)types(任意):絞り込みに使用する測定タイプ ID のリスト
- パラメーター:
利用可能なプロンプト
-
analyze_health_summary- 健康サマリーを分析するプロンプト- 異常な測定値や傾向を特定し、アクションを提案するためのテンプレートを提供します
senechal://health/summary/day?span=7のデータと併用することを想定しています
-
compare_health_trends- 異なる期間の健康傾向を比較するプロンプト- 異なる期間(7日、30日、90日)の傾向を比較するためのテンプレートを提供します
- 健康傾向のエンドポイントから取得したデータと併用することを想定しています
使用例
健康サマリーデータの読み込み
# In an LLM application, load a week of health summaries
content, mime_type = await session.read_resource("senechal://health/summary/day?span=7")
健康データツールの呼び出し
# In an LLM conversation
result = await session.call_tool(
"fetch_health_trends",
arguments={
"days": 30,
"interval": "day"
}
)
# More complex example combining tools and resources
profile = await session.call_tool("fetch_health_profile")
trends = await session.call_tool(
"fetch_health_trends",
arguments={"days": 90, "interval": "week"}
)
健康分析プロンプトの使用
# Get a prompt for analyzing health data
prompt_result = await session.get_prompt("analyze_health_summary")
for message in prompt_result.messages:
print(f"[{message.role}]: {message.content.text}")
完全な動作例については、example_client.py ファイルを参照してください。
API エンドポイント
Senechal MCP サーバーは、次の Senechal API エンドポイントと通信します。
/health/summary/{period}- 健康サマリーを取得/health/profile- 健康プロフィールを取得/health/current- 現在の測定値を取得/health/trends- 健康傾向を取得/health/stats- 健康統計を取得
変更履歴
CHANGELOG.md を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。