使用说明
Oura环MCP服务器
一个全面的模型上下文协议(MCP)服务器,用于与Oura Ring API集成,提供对所有健康和身心健康数据端点的访问。
特性
- API全面覆盖:访问所有10个Oura Ring API端点
- 个人信息:获取用户配置文件和设备信息
- 健康指标:日常活动、睡眠、准备和SpO2数据
- 会话跟踪:详细的会话和锻炼数据
- 增强标签:自定义标签和注释
- 实时资源:自动更新最近的数据(7天窗口)
- 分页支持:使用分页标记处理大型数据集
- 日期范围筛选:灵活的基于日期的查询
设置
-
安装依赖项:
uv sync -
配置API凭据:
cp .env.example .env # Edit .env and add your Oura Ring access token -
获取您的Oura Ring API代币:
- 首选https://cloud.ouraring.com/personal-access-tokens
- 创建新的个人访问令牌
- 将其添加到您的
.env文件为OURA_ACCESS_TOKEN
用法
运行MCP服务器
生产模式:
uv run python -m src.oura_mcp_server.server
带检查员的开发模式:
uv run mcp dev src/oura_mcp_server/server.py:mcp
开发模式在以下位置启动MCP检查器 http://localhost:6274 您可以在哪里:
- 交互式测试所有工具
- 查看实时协议消息
- 探索可用资源
- 调试服务器功能
可用工具
- 获取乌拉个人信息:获取个人信息和设备详细信息
- get_oura_ssions:获取日期范围的会话数据
- 格鲁吉亚活动:获取每日活动指标(步数、卡路里、距离)
- 入睡:获取每日睡眠数据和分数
- 格鲁吉亚spo2:获取每日SpO2测量值
- 准备就绪:获取每日准备分数
- 入睡:获取详细的睡眠会话数据
- get_oura_sleep_time:获取睡眠时间和持续时间数据
- get_oura_workout:进行锻炼和锻炼
- get_oura_enhanced_tag:获取自定义标签和注释
可用资源
- oura://personal_info:用户配置文件和设备信息
- oura://sessions/recent:最近会话数据(过去7天)
- oura://activity/recent:最近的日常活动(过去7天)
- oura://sleep/recent:最近的睡眠数据(过去7天)
- oura://readiness/recent:最近的准备情况评分(过去7天)
API集成
此服务器与 全部 Oura Ring API v2端点:
/v2/usercollection/personal_info/v2/usercollection/session/v2/usercollection/daily_activity/v2/usercollection/daily_sleep/v2/usercollection/daily_spo2/v2/usercollection/daily_readiness/v2/usercollection/sleep/v2/usercollection/sleep_time/v2/usercollection/workout/v2/usercollection/enhanced_tag
特征:
- 承载令牌身份验证
- 日期范围过滤
- 分页支持
- 全面的错误处理
- 统一的API客户端架构
发展
服务器是使用以下方式构建的:
- FastMCP:高级MCP框架
- 请求::API调用的HTTP客户端
- Python dotenv:环境变量管理
- 派丹蒂克:数据验证
MCP检验员测试
测试和探索服务器的最简单方法是使用MCP检查器:
-
启动开发服务器:
uv run mcp dev src/oura_mcp_server/server.py:mcp -
打开检查器URL (如终端输出所示):
http://localhost:6274/?MCP_PROXY_AUTH_TOKEN=<your-token> -
交互式测试工具:
- 尝试
get_oura_daily_activity日期如下2024-01-01向2024-01-07 - 探索
get_oura_personal_info(无需参数) - 查看以下资源
oura://activity/recent
- 尝试
工具调用示例
# Get daily activity data
get_oura_daily_activity(start_date="2024-01-01", end_date="2024-01-07")
# Get sleep data
get_oura_daily_sleep(start_date="2024-01-01", end_date="2024-01-07")
# Get personal info
get_oura_personal_info()
# Get workout sessions
get_oura_workout(start_date="2024-01-01", end_date="2024-01-07")
错误处理
该服务器包括全面的错误处理功能,用于:
- 无效的API令牌
- 网络连接问题
- 日期格式无效
- API速率限制
- HTTP错误
安全
- API令牌存储在环境变量中
- 未记录敏感数据
- HTTPS用于所有API通信