健身房预约服务

MX3健身房预约服务,提供查看排期、预约时段、取消预约和查看剩余积分功能。

  • by orban
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 orban/mx3-gym-mcp

使用说明

mx3健身房mcp

MCP服务器 MX3健身 旧金山诺埃谷的健身房预订。

让克劳德查看日程安排、预订时段、取消预订和查看剩余积分。

作为Claude代码插件安装

claude plugin add orban/mx3-gym-mcp

在shell配置文件中设置凭据:

export MX3_USERNAME="your@email.com"
export MX3_PASSWORD="your-password"

重新启动克劳德代码。MCP工具将自动可用。

手动安装

克隆仓库并安装依赖项:

git clone https://github.com/orban/mx3-gym-mcp.git
cd mx3-gym-mcp
npm install

添加到您的Claude代码配置中(~/.claude.json 在项目的 mcpServers):

{
  "mx3-gym": {
    "type": "stdio",
    "command": "npx",
    "args": ["tsx", "/path/to/mx3-gym-mcp/src/server.ts"],
    "env": {
      "MX3_USERNAME": "your@email.com",
      "MX3_PASSWORD": "your-password"
    }
  }
}

工具

get_schedule

获取给定日期的插槽可用性。显示按类型分组的所有电台及其可用时间。

参数 类型 必填 说明
date string 否 YYYY-MM-DD格式的日期。默认为今天。

book_slot

预留一个健身房名额。

参数 类型 必填 说明
station string Yes 车站名称(例如“Noe 1”、“Air Bike”)或车站ID
date string 是 YYYY-MM-DD格式的日期
time string 是 以h:mmam/pm格式表示的时间(例如“早上5:00”、“下午1:30”)

取消_预订

取消现有预订。

参数 类型 必填 说明
station_name string 是 站名(例如“Noe 1”、“Open Gym 2”)
date string 是 YYYY-MM-DD格式的日期
time string 是 以h:mmam/pm格式表示的时间

获取_ _预订

列出即将到来的预订和剩余的健身房积分。没有参数。

车站

私人车站(1小时): Noe 1,Noe 2,Noe 3,Noe 4

开放式健身房(30分钟): 开放健身房1、开放健身房2、开放健身房3

有氧运动(30分钟): 空中自行车、空中划船、登山、Peloton、跑步机

发展

npm install
npm run typecheck    # Type check
npm test             # Run tests
npm start            # Start MCP server (requires MX3_USERNAME, MX3_PASSWORD)

运作原理

MX3 Fitness平台使用传统的PHP/HTML系统(AccelSite),没有JSON API。此服务器:

  1. 通过基于cookie的登录进行身份验证 userName, password,以及隐藏的表单字段
  2. 通过以下方式获取日程HTML POST /reserve-noe-station 和 locID=51550&refreshDate={date}
  3. 从以下位置分析插槽可用性 <p id="res_time_{stationId}_{date}_{time}"> 使用cheerio的元素
  4. 书籍插槽通过 v2=true&reserve={stationId}&res_date={date}&res_time={time}
  5. 通过取消 v2=true&unreserve={reservationId}&resourceID={stationId}
  6. 在以下位置从整页HTML读取预订 #my_reservations

会话Cookie在内存中管理,到期时会自动重新验证。

许可证

麻省理工学院