Senechal MCP服务器
模型上下文协议(MCP)服务器,作为Senechal项目的伙伴,从Senechal API向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/senechalAPI键和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.pyMCP Inspector开发模式
mcp dev senechal_mcp_server.py在Claude桌面中安装
服务器包括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-获取健康统计数据
更新日志
看 更改日志.md.
