使用说明
通知小米MCP服务器
基于Python的模型上下文协议(MCP)服务器,提供对小米应用程序Notify中健康数据的编程访问。服务器从Google Drive下载SQLite备份数据库,并通过Windows上Claude Desktop中可访问的六个MCP工具公开健康指标。
特性
- Google Drive集成:使用OAuth2身份验证安全下载备份数据库
- 健康数据访问:使用可读的时间戳查询睡眠、心率和活动数据
- 数据库检查:列出所有表及其结构
- 自定义查询:对数据库执行自定义SELECT查询
- 只读访问:确保备份数据保持不变
- 挪威错误消息:挪威语清晰、可操作的错误信息
MCP工具
- nxk_sync_database:从Google Drive下载最新的备份数据库
- nxk_list_tables:列出所有表及其结构和行数
- nxk_get_sleep:检索具有可读时间戳的睡眠数据
- nxk_get_heart_rate:检索心率测量值
- nxk_get_活动:检索活动数据(步数、卡路里、距离)
- nxk_query:执行自定义SELECT查询
需求
- Python 3.10或更高版本
- 启用了Drive API的Google Cloud项目
- OAuth2凭据(credentials.json)
- 通知小米应用程序并备份到谷歌云端硬盘
安装
- 克隆此存储库:
git clone <repository-url>
cd notify-xiaomi-mcp-server
- 创建虚拟环境并安装依赖项:
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install -e .
- 对于开发,请使用dev依赖项进行安装:
pip install -e ".[dev]"
设置
1.获得Google Drive API证书
- 首选 谷歌云控制台
- 创建新项目或选择现有项目
- 启用Google Drive API
- 创建OAuth2凭据(桌面应用程序类型)
- 下载凭据文件并将其另存为
~/.notify-xiaomi-mcp/credentials.json
2.首次身份验证
首次运行时,服务器将:
- 打开浏览器窗口进行Google OAuth2身份验证
- 要求您授予对Google Drive的访问权限(只读)
- 将身份验证令牌保存到
~/.notify-xiaomi-mcp/token.pickle
后续运行将自动重用保存的令牌。
3.配置克劳德桌面
将服务器添加到Claude Desktop配置文件中。
快速设置:
编辑 %APPDATA%\Claude\claude_desktop_config.json 并添加:
{
"mcpServers": {
"notify-xiaomi": {
"command": "python",
"args": [
"C:\\path\\to\\notify-xiaomi-mcp-server\\src\\server.py"
]
}
}
}
替换 C:\\path\\to\\notify-xiaomi-mcp-server 安装的实际路径。
有关详细的设置说明,请参阅 CLAUDE_DESKTOP_SETUP.md
有关全面的使用文档、示例和故障排除,请参阅 用法_ GIDE.md
用法
快速开始
-
同步数据库:从Google云端硬盘下载最新备份
Use the nxk_sync_database tool in Claude Desktop -
探索您的数据:列出可用表格
Use nxk_list_tables (no parameters) -
查询健康指标:使用特定的工具获取睡眠、心率或活动数据
查询示例
获取最近的睡眠数据:
Use nxk_get_sleep with parameters:
- start_date: "2024-01-01"
- limit: 10
获取心率测量值:
Use nxk_get_heart_rate with parameters:
- start_date: "2024-01-01"
- end_date: "2024-01-31"
- limit: 100
获取活动数据:
Use nxk_get_activity with parameters:
- start_date: "2024-01-01"
- limit: 30
自定义SQL查询:
Use nxk_query with parameter:
- sql: "SELECT * FROM SLEEP_TABLE LIMIT 5"
综合文档
详细文档包括:
- OAuth2身份验证流程
- 带示例的完整工具参考
- 30+示例SQL查询
- 错误消息和故障排除
- 高级使用模式
发展
运行测试
运行所有测试:
pytest
跑步覆盖:
pytest --cov=src --cov-report=html
仅运行基于属性的测试:
pytest -k "property"
代码格式化
黑色格式代码:
black src/ tests/
带褶边的棉绒:
ruff check src/ tests/
项目结构
notify-xiaomi-mcp-server/
├── src/
│ ├── __init__.py
│ ├── server.py # FastMCP server and tool definitions
│ ├── config.py # Configuration and file paths
│ ├── google_drive_client.py # Google Drive authentication and download
│ ├── database_manager.py # Database operations
│ ├── timestamp_converter.py # Timestamp conversion utilities
│ ├── query_validator.py # SQL query validation
│ └── models.py # Pydantic models for input validation
├── tests/
│ ├── __init__.py
│ ├── test_timestamp_converter.py
│ ├── test_query_validator.py
│ ├── test_models.py
│ ├── test_google_drive_client.py
│ ├── test_database_manager.py
│ └── test_server.py
├── pyproject.toml
├── .gitignore
└── README.md
文档
该项目包括全面的文件:
- README.md (此文件)-快速入门和安装指南
- CLAUDE_DESKTOP_SETUP.md -详细的Claude桌面配置
- 用法_ GIDE.md -完整的使用指南,包括示例和故障排除
- API_REFERENCE.md -为开发人员提供API技术参考
故障排除
快速修复
身份验证问题:
- 确保credentials.json在
~/.notify-xiaomi-mcp/credentials.json - 删除token.pickle,必要时重新进行身份验证
数据库问题:
- 跑
nxk_sync_database首先下载数据库 - 确保Notify应用程序正在备份到Google Drive
查询问题:
- 只允许使用SELECT语句
- 使用
nxk_list_tables查看确切的表名和列名
全面故障排除
详细故障排除包括:
- 所有错误消息均以英文解释
- 分步解决方案
- 常见问题和修复
许可证
MIT许可证
贡献
欢迎投稿!请确保:
- 所有测试均通过(
pytest) - 代码已格式化(
black src/ tests/) - 覆盖率保持在85%以上
- 新功能包含基于属性的测试