Skip to main content
Glama
mattjoyce

Senechal MCP Server

by mattjoyce

Senechal MCP サーバー

Senechal プロジェクトの補助として機能し、Senechal API から LLM アプリケーションにヘルスデータを提供するモデル コンテキスト プロトコル (MCP) サーバー。

概要

このサーバーは、LLMがSenechal APIから健康データにアクセスするための標準化されたインターフェースを提供します。以下の情報が公開されます。

  • リソース: LLM のコンテキストにロードできる健康データ

  • ツール: LLM が健康データを取得するために呼び出すことができる関数

  • プロンプト: 健康データを分析するための再利用可能なテンプレート

Related MCP server: OpenAPI MCP Server

インストール

  1. このリポジトリをクローンする

  2. 仮想環境を作成します。

    python -m venv venv
    source venv/bin/activate  # On Windows: venv\Scripts\activate
  3. 依存関係をインストールします:

    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 で実行する場合は、次の点に注意してください。

  1. 設定ではバックスラッシュまたは適切にエスケープされたパスを使用します

  2. 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 : 日、週、月、年

      • span : 期間数(デフォルト: 1)

      • metrics : カンマ区切りのリストまたは「すべて」(デフォルト)

      • 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 : グループ化間隔 - 日、週、月(デフォルト: 日)

  • senechal://health/stats - 健康指標の統計分析を取得します

    • 例: senechal://health/stats?days=30&types=1,2,3

    • パラメータ:

      • days : 分析期間(日数)(デフォルト: 30)

      • types : 測定タイプIDのコンマ区切りリスト(オプション)

利用可能なツール

  • fetch_health_summary - 特定の期間のヘルスサマリーを取得します

    • パラメータ:

      • period (必須): 日、週、月、年

      • metrics (オプション):カンマ区切りのメトリックまたは「すべて」(デフォルト)

      • span (オプション):返される期間の数(デフォルト:1)

      • offset (オプション):オフセットする期間数(デフォルト:0)

  • fetch_health_profile - ユーザーの健康プロファイルを取得する

    • パラメータは必要ありません

  • fetch_current_health - 最新の健康測定値を取得する

    • パラメータ:

      • types (オプション):フィルタリングする測定タイプIDのリスト

  • fetch_health_trends - 健康傾向データを取得する

    • パラメータ:

      • days (オプション):分析する日数(デフォルト:30)

      • types (オプション):フィルタリングする測定タイプIDのリスト

      • interval (オプション):グループ化間隔 - 日、週、月(デフォルト:日)

  • 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 - 健康統計情報を取得する

-
security - not tested
A
license - permissive license
-
quality - not tested

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/mattjoyce/senechal-mcp'

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