Huppa MCP 服务端(huppa-cli)
使用说明内容(Markdown格式)
-
项目简介
- 该仓库实现了一个 MCP 服务器端,用于向 MCP 客户端(如 Claude Desktop)提供结构化的资源、工具以及与 Huppa API 的交互能力。核心通过 mcp.server.fastmcp 提供工具(Tools),实现对外暴露的函数接口,LLM 可以通过 JSON-RPC 调用这些工具获取数据、执行操作并获取结果。
-
主要功能点
- 资源与数据访问:提供获取日常课程、我的预订、会员信息等数据的工具
- 工具执行:公开一组可被 MCP 客户端调用的工具函数,例如 get_classes、get_classes_multiple_dates、book_class、cancel_booking、join_waitlist、leave_waitlist、get_my_bookings、get_memberships
- 会话与错误处理:统一的错误层级(HuppaAuthError、HuppaAPIError、HuppaError),提供清晰的错误信息
- 集成认证:支持通过环境变量(HUPPA_EMAIL、HUPPA_PASSWORD、HUPPA_SUBDOMAIN)或本地凭证存储(keychain)进行认证与会话管理
- 传输与扩展性:设计成 MCP 服务器模式,理论上可通过不同传输(如 StdIO、SSE、WebSocket 等)扩展
-
安装步骤
- 确保 Python 3.11+ 与 Poetry 已安装
- 克隆仓库并安装依赖
- 设置认证信息(通过 huppa auth setup 或通过环境变量 HUPPA_EMAIL、HUPPA_PASSWORD、HUPPA_SUBDOMAIN)
- 运行 MCP 服务器:huppa mcp
-
服务器配置(MCP 客户端使用信息,配置字段包含 server 名称、启动命令和参数)
- 说明:MCP 客户端需要知道如何启动 MCP 服务器。以下配置仅用于 Claude Desktop 等客户端,用于指向如何启动该 MCP 服务器。
- 配置示例(直接用于 Claude Desktop 的配置,非代码块展示): { "server_name": "huppa", "command": "/full/path/to/huppa", "args": ["mcp"] } 注释:command 指向可执行的 huppa 二进制文件的完整路径,args 为启动 MCP 服务器的参数列表(此处为 mcp)。若使用 Poetry 模式,可将 command 替换为 Poetry 的完整路径,args 配置为 ["--directory", "/absolute/path/to/huppa-cli", "run", "huppa", "mcp"]。Poetry 模式下请尽量使用 Poetry 的完整路径,以避免 PATH 限制导致启动失败。
-
基本使用方法
- 在本地通过命令行启动 MCP 服务器:poetry run huppa mcp
- 通过 MCP 客户端(如 Claude Desktop)创建一个名为 huppa 的 MCP 服务,指向上述启动命令与参数
- 使用 MCP 客户端调用工具,如 get_classes(date)、get_my_bookings(...) 等,LLM 客户端将以 JSON-RPC 形式接收数据并进行后续推理与交互