m

mattjoyce

@mattjoyce/senechal-mcp
0 Stars 12 次浏览 mattjoyce 更新于 2026-08-23
该服务暂未提供标准配置,请参考 README 手动接入

服务介绍

Senechal MCP 服务器

这是一个与 Senechal 项目配套的模型上下文协议 (MCP) 服务器,它从 Senechal API 提供健康数据给 LLM 应用程序。

概述

该服务器为 LLM 提供了一个标准化接口,以访问来自 Senechal API 的健康数据。它公开了以下内容:

  • 资源:可以加载到 LLM 上下文中的健康数据
  • 工具:LLM 可调用以获取健康数据的功能
  • 提示:用于分析健康数据的可重用模板

安装

  1. 克隆此仓库

  2. 创建虚拟环境:
    bash
    python -m venv venv
    source venv/bin/activate # 在 Windows 上: venvScriptsactivate

  3. 安装依赖项:
    bash
    pip install -r requirements.txt

配置

.env.example 文件复制为 .env 并添加您的 Senechal API 密钥和 URL:

必需:Senechal API 密钥

SENECHAL_API_KEY=your_api_key_here

必需:API 基础 URL

SENECHAL_API_BASE_URL=https://your-api-host/api/senechal

API 密钥和 API URL 对于服务器运行都是必需的。

Windows 配置

在 Windows 上运行时,请确保:

  1. 在配置中使用反斜杠或正确转义的路径
  2. claude-desktop-config.json 中使用 Python 虚拟环境的完整路径:

json
{
"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 文件,因此您需要在配置中显式设置它们。

使用

测试客户端/服务器设置

测试设置最简单的方法是运行示例客户端:

bash

在一个终端中启动服务器

python senechal_mcp_server.py

在另一个终端中运行示例客户端

python example_client.py

启动服务器

bash
python senechal_mcp_server.py

开发模式与 MCP Inspector

bash
mcp dev senechal_mcp_server.py

在 Claude Desktop 中安装

服务器包括一个适用于 Claude Desktop 的配置文件:

bash
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, year
      • span:周期数(默认值: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, year
      • metrics(可选):逗号分隔的指标列表或 "all"(默认值)- 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天)的趋势
    • 预期与来自健康趋势端点的数据一起使用

示例交互

加载健康摘要数据

python

在LLM应用程序中,加载一周的健康摘要

content, mime_type = await session.read_resource("senechal://health/summary/day?span=7")

调用健康数据工具

python

在LLM对话中

result = await session.call_tool(
"fetch_health_trends",
arguments={
"days": 30,
"interval": "day"
}
)

结合工具和资源的更复杂示例

profile = await session.call_tool("fetch_health_profile")
trends = await session.call_tool(
"fetch_health_trends",
arguments={"days": 90, "interval": "week"}
)

使用健康分析提示

python

获取用于分析健康数据的提示

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 - 获取健康统计数据

相关 MCP 服务