Recharge MCP Server

使用说明(Markdown)

  • 项目简介

    • 该仓库实现了一个基于 MCP(Model Context Protocol)的服务器端,专门面向 Recharge API v2021-11 的后台集成。服务器通过 JSON-RPC 与客户端通信,提供对资源(如客户、订阅、订单、费用等)的数据访问、工具注册与执行、以及提示/模板的渲染能力,旨在为大语言模型应用提供可扩展的上下文与动作能力。
  • 主要功能点

    • 完整的 MCP 服务器实现:实现 MCP 的核心请求类型,能够处理工具查询与工具调用请求,返回相应的 JSON-RPC 风格响应。
    • 资源托管与数据访问:通过 Recharge 客户端对 Recharge API 进行访问,覆盖客户、订阅、订单、 charges、地址、折扣、元字段、Webhook 等多类资源。
    • 工具注册与执行:提供 147+ 生产就绪工具(工具名以 recharge_<action>_<resource> 命名),支持通过工具处理器执行并返回格式化结果。
    • 错误处理与重试:内置错误处理、超时、网络重试、以及对 Recharge API 错误码的友好处理。
    • 会话与能力声明:服务端管理工具能力及会话,有效地对接 MCP 客户端。
    • 多传输支持(当前实现为标准输入输出的 Stdio 传输,后续可扩展为 SSE/WebSocket 等)。
  • 安装步骤

    1. 克隆仓库并进入项目根目录。
    2. 安装依赖:npm install
    3. 配置环境变量(示例:RECHARGE_API_KEY、RECHARGE_API_URL、RECHARGE_API_TIMEOUT 等)。
    4. 验证与测试:npm run validate、npm test(测试用例覆盖丰富的工具与客户端行为)。
    5. 启动服务器:npm start(当前实现通过 stdio 传输启动)
  • 服务器配置(MCP 客户端配置信息) 说明:下面的配置信息用于 MCP 客户端连接到该 Recharge MCP 服务器。MCP 客户端通常只需要启动命令和参数来建立与 MCP 服务器的连接,具体参数请依据客户端实现调整。配置中包含服务器名称、启动命令、参数,以及可选的环境变量设置。

    { "server": { "name": "recharge", "version": "2.0.0" }, "mcpServer": { "command": "node", "args": ["./index.js"], "env": { "RECHARGE_API_KEY": "your_recharge_admin_api_key_here", "RECHARGE_API_URL": "https://api.rechargeapps.com", "RECHARGE_API_TIMEOUT": "30000", "RECHARGE_API_RETRY_ATTEMPTS": "3", "RECHARGE_API_RETRY_DELAY": "1000" } } }

    说明:

    • server.name 与 server.version 参考仓库中的 MCP 服务器实现信息(名称为 recharge,版本号示例为 2.0.0)。
    • mcpServer.command 与 mcpServer.args 指向启动 RechargeMCP 服务器的命令与参数,环境变量用于与 Recharge API 的认证与访问配置。
    • 客户端通常仅需要读取上述配置中的 server、command、args 即可建立连接,不需要额外的客户端代码。
  • 基本使用方法

    • 启动:MCP 客户端通过配置的 command + args 启动 Recharge MCP 服务器(当前实现为 Node.js 程序,使用 stdio 进行通信)。
    • 交互方式:通过 MCP 客户端发送标准的 JSON-RPC 请求,包含对工具列表的查询和对具体工具的调用请求。服务器返回 JSON-RPC 风格的响应或通知。
    • 资源与工具使用:客户端通过调用 ListToolsRequestSchema 获取支持的工具集合,再通过 CallToolRequestSchema 按工具名调用对应的实现逻辑,服务器将返回结构化的 JSON 结果或错误信息。
    • 错误与重试:若 Recharge API 出现错误,服务器会进行重试(在配置的重试次数内),并在错误时返回清晰的错误信息。
  • 注意事项

    • 该实现当前以 stdio 传输为主,若后续需要支持 SSE、WebSocket 等,需要扩展传输层实现。
    • 生产环境中请妥善管理 RECHARGE_API_KEY 等敏感信息,避免泄漏。

服务器信息