作者:高拉夫·纳德卡尼 \ 仓库: https://github.com/gauravnadkarni/google-drive-xlsx-health-data-mcp-server.git
Google Drive健康数据MCP服务器
用于访问和分析存储在Google Drive电子表格中的健康指标数据的模型上下文协议(MCP)服务器。
📖 相关文章
📚 阅读随附的Medium文章: 我从零开始构建我的第一台MCP服务器学到了什么
_在综合技术报告中了解此MCP服务器的架构、实现细节和实际使用案例。_
特性
- 健康数据集成:连接到Google Drive以访问健康指标数据
- 多个数据视图:支持每日、每周、每月和季节性健康指标
- 综合指标:跟踪各种健康指标,包括:
- 活动数据 - 心率 - 睡眠模式 - 营养信息 - 用户配置文件数据
先决条件
- Node.js(v16或更高版本)
- npm或纱线
- 启用Google Drive API的Google云平台项目
- Google Drive API的服务帐户凭据
- 健康数据谷歌表单文件(示例文件位于./uploads目录中)
安装
克隆存储库:
git clone https://github.com/gauravnadkarni/google-drive-xlsx-health-data-mcp-server.git
cd google-drive-xlsx-health-data-mcp-server安装依赖项:
npm installMCP服务器可以在两种模式下运行:
- STDIO模式:
本地进程通信,非常适合单用户桌面应用程序。
- HTTP模式:
远程服务器访问,支持多客户端和云部署。
建设项目
npm run build运行服务器
要在STDIO模式下运行服务器:
MCP_TRANSPORT=stdio npm run start要在HTTP模式下运行服务器,请执行以下操作:
MCP_TRANSPORT=http npm run start在开发模式下运行项目
npm run dev所需的环境配置:
GOOGLE_DRIVE_FILE_ID=
GOOGLE_CREDENTIALS_PATH=
PORT="3002"
MCP_TRANSPORT="stdio" #http or stdio
DOTENV_CONFIG_QUIET="true" # Set to true to suppress dotenv warnings (optional for http mode but required for stdio mode)重要说明
- 您应该在谷歌控制台中创建一个项目并启用谷歌驱动器api。
- 创建服务帐户并下载凭据json文件,并将其放置在项目的根目录中。
- 将健康数据文件上传到驱动器,并与服务帐户的电子邮件id共享。
- 对于STDIO模式,您应该在客户端应用程序中设置GOOGLE_DRIVE_FILE_ID和GOOGLE_CREDENTIALS_PATH环境变量(例如claude代码mcp-json文件或mcp检查器)
- 对于HTTP模式,您应该在服务器应用程序中设置GOOGLE_DRIVE_FILE_ID和GOOGLE_CREDENTIALS_PATH环境变量(例如.env文件)
- STDIO模式是默认模式,如果没有设置MCP_TRANSPORT环境变量,它将在STDIO模式下运行。
谷歌云设置
- 在Google Cloud Console中创建项目
- 启用Google Drive API
- 创建服务帐户并下载凭据JSON文件
- 将凭据文件作为credentials.json放置在项目根目录中
电子表格设置
- 将示例健康数据文件(来自./uploads目录)上传到您的Google Drive
- 与您的服务帐户电子邮件共享文件(查看者权限)
- 从Google Drive URL复制文件ID
克劳德桌面(STDIO模式) 添加到您的claude_desktop_config json:
{
"mcpServers": {
"health-data": {
"command": "node",
"args": ["/absolute/path/to/dist/server.js"],
"env": {
"GOOGLE_DRIVE_FILE_ID": "your_file_id",
"GOOGLE_CREDENTIALS_PATH": "/path/to/credentials.json",
"DOTENV_CONFIG_QUIET": "true"
}
}
}
}运行MCP检查器
npx @modelcontextprotocol/inspector🛠️ 可用工具
服务器提供12个数据检索工具:
get_daily_metrics-特定日期的运行状况数据
get_date_range_metrics-跨日期范围的数据
get_activity_data-步数、锻炼、消耗的卡路里
get_sleep_data-睡眠质量和模式
get_heart_data-心率和恢复指标
get_nutrition_data-营养摄入跟踪
get_metric_history-特定指标的历史趋势
get_user_profile-用户信息和目标
get_weekly_data-每周汇总的健康数据
get_monthly_data-每月运行状况概览
get_sonal_data-季节模式分析
get_metric_range-跨日期的自定义度量分析
数据流
身份验证:服务帐户凭据验证Google Drive访问权限
数据检索:从云端硬盘下载并解析Excel电子表格
查询处理:工具根据LLM请求过滤和构建健康数据
响应格式:LLM分析的结构化JSON响应
