Fitbit

Fitbit

🚀 Fitbit 模型上下文协议 (MCP) 服务器

本项目实现了一个符合模型上下文协议(MCP)的服务器,它就像一座桥梁,连接着大型语言模型(如 Claude)和 Fitbit API。借助该服务器,大型语言模型能够请求并获取用户 Fitbit 账户中的健康与健身数据,还能通过定义好的工具与之交互。

🚀 快速开始

安装步骤

  1. 克隆仓库
    git clone [仓库地址]
    cd fitbit-mcp-server
    
  2. 安装依赖项
    npm install
    
  3. 配置环境变量
    • 创建一个 .env 文件,并添加以下内容:
      FITBIT_CLIENT_ID=your_client_id
      FITBIT_CLIENT_SECRET=your_client_secret
      
  4. 构建项目
    npm run build
    
  5. 运行服务器
    npm start
    

与 Claude 集成

若要将此服务器集成到 Claude 环境中,请按以下步骤操作:

  1. 把构建好的 dist 文件夹中的文件添加到 Claude 的工具路径中。
  2. 在 Claude 的配置文件(通常是 config.json)中添加以下内容:
    {
    "tools": [
    {
    "name": "get_weight",
    "description": "获取指定时间段内的体重数据。",
    "parameters": {
    "type": "object",
    "properties": {
    "period": {
    "type": "string",
    "enum": ["1d", "7d", "30d", "3m", "6m", "1y"],
    "description": "指定时间段。必须是 '1d'、'7d'、'30d'、'3m'、'6m' 或 '1y'。"
    }
    }
    }
    },
    {
    "name": "get_sleep_by_date_range",
    "description": "获取指定日期范围内的睡眠数据。",
    "parameters": {
    "type": "object",
    "properties": {
    "startDate": {
    "type": "string",
    "format": "date",
    "description": "开始日期,格式为 'YYYY-MM-DD'。"
    },
    "endDate": {
    "type": "string",
    "format": "date",
    "description": "结束日期,格式为 'YYYY-MM-DD'。"
    }
    }
    }
    },
    {
    "name": "get_profile",
    "description": "获取用户的 Fitbit 个人资料信息。",
    "parameters": {}
    }
    ]
    }
    

✨ 主要特性

  • Fitbit API 集成:运用 OAuth 2.0 安全地连接到 Fitbit API。
  • MCP 兼容性:通过符合模型上下文协议的工具提供 Fitbit 数据。
  • 可扩展性:设计灵活,便于添加对更多 Fitbit API 端点的支持。

支持的端点

  • 体重
    • get_weight:可检索指定时间段(1d7d30d3m6m1y)内的原始体重数据,以今天为结束日期。需要一个 period 参数。
  • 睡眠
    • get_sleep_by_date_range:能检索指定日期范围(最多 100 天)内的原始睡眠日志数据。需要两个参数:startDateendDate,格式均为 YYYY-MM-DD
  • 个人资料
    • get_profile:用于检索用户的 Fitbit 个人资料信息。

计划中的端点

未来计划支持更多 Fitbit API 端点,涵盖但不限于:

  • 活动数据
  • 心率监测
  • 血压记录
  • 身高等等

💻 使用示例

基础用法

以下是服务器运行后可用工具的概念性示例用法:

  • get_weight:返回指定时间段内的体重数据。
    • 参数period(字符串,必需) - 指定时间段。必须是以下值之一:"1d""7d""30d""3m""6m""1y"
    • 示例用法get_weight(period="7d")
  • get_sleep_by_date_range:返回指定日期范围内的睡眠数据。
    • 参数
      • startDate(字符串,必需) - 指定开始日期,格式为 YYYY-MM-DD
      • endDate(字符串,必需) - 指定结束日期,格式为 YYYY-MM-DD
    • 示例用法get_sleep_by_date_range(startDate="2025-04-01", endDate="2025-04-30")
  • get_profile:返回用户的 Fitbit 个人资料信息。
    • 参数:无
    • 示例用法get_profile()

📚 详细文档

开发

  • 源代码存于 src/ 目录中。
  • 修改 TypeScript 文件后,请运行 npm run build 进行构建。
  • 若服务器已在 Claude 环境下运行,请重启 Claude 以确保其识别最新的构建。
  • 0 关注
  • 0 收藏,26 浏览
  • system 提出于 2025-10-03 21:21

相似服务问题

相关AI产品