使用说明
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/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桌面中安装
服务器包括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.
