精神书作者
MCP服务器,用于预订帝国理工学院Ethos体育中心的健身房课程。
在Cloudflare Workers上运行。单用户:部署您自己的实例,将您的帝国凭据存储为牧马人机密,并从claude.ai(网络/桌面/移动)、claude Code或任何MCP客户端连接。新设备只需点击一下即可连接——无需登录表单,无需重新键入凭据。
工具
| 工具 | 它做什么 |
|---|---|
list_sessions | 显示日期的可用会话,可按位置筛选 |
book_session | 按日期、时间和地点预订免费会话 |
cancel_booking | 按日期和可选时间取消预订 |
my_bookings | 列出您即将进行的预订 |
search_sessions | 使用时间/活动过滤器在日期范围内搜索 |
连接到已部署的实例
部署后(见下文),相同的URL在每个设备上都有效——每个客户端粘贴一次,单击“连接”,完成。
Claude.ai(网络/桌面/移动)
- 设置→ 连接器→ 添加自定义连接器
- 粘贴您的worker URL(以结尾的URL)
/mcp):
https://ethos-booker..workers.dev/mcp- 将OAuth客户端ID和客户端密码留空
- 点击连接--claude.ai打开一个简短的重定向(无表单),授予访问权限,完成
- 连接持续30天;续订是无声的
克劳德代码
claude mcp add ethos-booker --transport http https://ethos-booker..workers.dev/mcp光标
设置→ 工具和MCP→ Add → 粘贴URL。
部署您自己的实例
git clone https://github.com/advitrocks9/ethos-booker.git
cd ethos-booker
npm install
# create a KV namespace and put its id into wrangler.jsonc
npx wrangler kv namespace create OAUTH_KV
# store your Imperial credentials as encrypted secrets (one-time)
npx wrangler secret put ETHOS_EMAIL
npx wrangler secret put ETHOS_PASSWORD
npx wrangler deployWrangler将打印工作URL——append /mcp 并将其用作连接器URL。
对于本地开发,请复制 .dev.vars.example 到 .dev.vars 并填写真实凭证。 .dev.vars 被忽视了。
auth的工作原理
服务器将您的Ethos凭据作为牧马人的秘密保存,并代表您与帝国进行身份验证。claude.ai和worker之间的OAuth舞蹈得以保留(因此每个客户端都会获得一个适当的刷新令牌),但 /authorize 自动完成——从不显示登录页面。
具体来说,在首次从新设备连接时:
- claude.ai从以下位置发现OAuth端点
/.well-known/oauth-protected-resource - 打开
/authorize在弹出窗口中 - 工作人员验证它是否可以使用存储的机密登录Ethos,然后立即调用
completeAuthorization并重定向回 - claude.ai将代码交换为访问令牌(24小时)+刷新令牌(30天)
- 后续工具调用命中
/mcp持票人代币
实际的Ethos会话(JWT+Cookie)缓存在KV中 ethos:session:v1 并根据JWT懒洋洋地刷新 exp claim——独立于OAuth令牌的生命周期,因此当OAuth令牌轮换时,预订调用不会失败。
如果预订因Ethos返回HTML或401样式错误而失败,则缓存的会话将无效,工作人员将在放弃之前重新进行一次身份验证。
约束
- 每天最多2次预订
- 提前6天预订窗口(午夜开放)
- 在会话开始前自由取消
- 7天内多次缺席=7天停赛
堆栈
- Cloudflare Workers上的TypeScript
@cloudflare/workers-oauth-provider适用于OAuth 2.1(自动批准模式)@modelcontextprotocol/sdk对于MCP协议层- Cloudflare KV用于OAuth状态和Ethos会话缓存
