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 形式接收数据并进行后续推理与交互

服务器信息