模型上下文协议服务器

Ryft MCP是一个为Ryft API提供的模型上下文协议服务器,为MCP客户端提供处理客户、支付会话、订阅、webhooks、账户、支付、争议、文件等资源的接口。

  • by bkawk
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 bkawk/ryft-mcp

使用说明

Ryft MCP

ryft-mcp 是Ryft API的模型上下文协议服务器。

它为MCP客户端提供了一个干净的界面,用于处理Ryft资源,如客户、支付会话、订阅、Webhook、帐户、支付、争议、文件等。

快速入门(托管)

Ryft MCP服务器已部署并准备就绪。使用Ryft密钥将其添加到MCP客户端。

重要提示: 您的Ryft密钥可能包含特殊字符,例如 / 和 +。请确保准确复制完整密钥——截断或转义这些字符将导致身份验证失败(403个错误)。添加服务器后,重新启动MCP客户端以获取新配置。

克劳德桌面版

Claude Desktop不支持通过配置文件为远程MCP服务器自定义身份验证标头。请改用stdio传输:

  1. 克隆此存储库并安装依赖项:
git clone https://github.com/bkawk/ryft-mcp.git
cd ryft-mcp
npm install
npm run build
  1. 打开克劳德桌面
  2. 首选 设置 (右上角的齿轮图标)
  3. 点击 开发者 在侧边栏中
  4. 点击 编辑配置 打开 claude_desktop_config.json
  5. 添加以下内容(用您自己的路径和键替换路径和键):
{
  "mcpServers": {
    "ryft": {
      "command": "node",
      "args": ["/absolute/path/to/ryft-mcp/dist/index.js"],
      "env": {
        "RYFT_SECRET_KEY": "YOUR_RYFT_SECRET_KEY"
      }
    }
  }
}
  1. 保存文件并重新启动Claude Desktop

克劳德代码(CLI)

Claude Code支持具有自定义标头的远程MCP服务器。在终端中运行此命令(全部在一行上):

claude mcp add ryft --transport http https://ryft-mcp.bkawk.com/mcp --header "Authorization: Bearer YOUR_RYFT_SECRET_KEY"

警告: 不要将此命令拆分为多行。内部线路中断 --header 值将嵌入令牌中,并导致静默身份验证失败。

运行此命令后,启动一个新的 claude 会话(或类型 /mcp 在现有会话中)以使服务器变得可用。您可以通过运行以下命令来验证它是否已正确保存:

claude mcp list

检查一下 Authorization 标题值显示 Bearer sk_sandbox_... 没有换行符或额外的空格。

要稍后删除服务器,请执行以下操作:

claude mcp remove ryft

ChatGPT

ChatGPT连接器目前仅支持OAuth或不支持远程MCP服务器的身份验证——自定义 Authorization 不支持标头。立即将Ryft MCP与ChatGPT结合使用:

  1. 首选 设置 → 应用程序和连接器 → 高级设置 并启用 开发者模式
  2. 首选 设置 → 连接器 → 创建
  3. 输入名称(例如“Ryft”)和服务器URL: https://ryft-mcp.bkawk.com/mcp
  4. ChatGPT将尝试在没有身份验证的情况下连接

注: 由于ChatGPT无法发送承载令牌,请求将被拒绝,并出现401错误。完全支持ChatGPT需要将OAuth添加到MCP服务器中——这计划在未来的版本中实现。

Codex(OpenAI CLI)

  1. 打开或创建文件 ~/.codex/config.toml
  2. 添加Ryft MCP服务器:
[mcp_servers.ryft]
url = "https://ryft-mcp.bkawk.com/mcp"
http_headers = { "Authorization" = "Bearer YOUR_RYFT_SECRET_KEY" }

或者,为了避免密钥出现在配置文件中,请使用环境变量:

[mcp_servers.ryft]
url = "https://ryft-mcp.bkawk.com/mcp"
env_http_headers = { "Authorization" = "RYFT_AUTH_HEADER" }

然后设置 export RYFT_AUTH_HEADER="Bearer YOUR_RYFT_SECRET_KEY" 在您的shell配置文件中。

  1. 保存文件。Codex将在下次运行时获取服务器。

光标

  1. 打开光标并转到 设置 > 主控程序
  2. 点击 添加新的全局MCP服务器
  3. 这将打开 ~/.cursor/mcp.json.添加以下内容:
{
  "mcpServers": {
    "ryft": {
      "url": "https://ryft-mcp.bkawk.com/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_RYFT_SECRET_KEY"
      }
    }
  }
}
  1. 保存文件。服务器应在MCP设置面板中显示为已连接。

其他MCP客户端

任何支持远程Streamable HTTP服务器的MCP客户端都可以连接。使用这些详细信息:

  • 网址: https://ryft-mcp.bkawk.com/mcp
  • 身份验证: 持有者令牌
  • 令牌: 您的Ryft密钥(例如。 sk_sandbox_...)

验证连接

配置后,向您的AI助手询问“列出我的Ryft客户”或运行 ryft.health 工具。如果连接正常,您应该看到Ryft数据或可用工具系列列表的响应。

故障排除

症状 原因 修复
401未经授权 缺失或格式错误 Authorization header 确保标头为 Bearer <key> 后面有空格 Bearer
403拒绝访问 截断密钥(通常丢失 / 或 +) 从Ryft仪表板重新复制完整密钥——它可能包含特殊字符
403拒绝访问 密钥中嵌入换行符 重新运行 claude mcp add 将整个命令放在一行中--不要使用 \ 线路延续
AI表示“没有Ryft工具” MCP服务器未连接或工具列表陈旧 开始新的 claude 会话或类型 /mcp 刷新连接
Claude Desktop中的“无效MCP服务器” Claude Desktop不支持通过配置文件使用自定义标头的远程MCP 使用Claude Desktop的stdio设置(见上文)或改用Claude Code CLI
配置已保存,但缺少工具 配置已保存到其他项目范围 运行 claude mcp list 以确认服务器已注册。如果它是从其他目录添加的,则可能在该路径的项目范围内

工具覆盖范围

可用的工具系列:

  • customers --创建、获取、列出、更新、删除、列出付款方式
  • paymentSessions --创建、获取、列出、更新、关闭、捕获、退款
  • subscriptions --创建、获取、列出、更新、取消
  • files --上传、获取、列表
  • accounts --创建、获取、列出、更新
  • accountLinks --创建、获取、列出、删除
  • paymentMethods --创建、获取、列出、更新、删除
  • webhooks --创建、获取、列出、更新、删除
  • persons --创建、获取、列出、更新、删除
  • payoutMethods --创建、获取、列出、更新、删除
  • payouts --创建、获取、列出、更新
  • transfers --创建、获取、列出
  • platformFees --创建、获取、列出
  • events --获取,列表
  • disputes --获取、列出、更新
  • balances --获取,列表
  • applePay --启动、完成、解密
  • inPerson --面对面支付操作

自我寄宿

如果您更喜欢运行自己的实例,则有三种部署选项。

选项1:本地stdio(用于开发)

npm install
npm run build
RYFT_SECRET_KEY=your_secret_key npm start

stdio的MCP客户端配置:

{
  "mcpServers": {
    "ryft": {
      "command": "node",
      "args": ["/absolute/path/to/ryft-mcp/dist/index.js"],
      "env": {
        "RYFT_SECRET_KEY": "your_secret_key"
      }
    }
  }
}

选项2:本地HTTP服务器

RYFT_SECRET_KEY=your_secret_key PORT=8787 npm run dev:http

健康检查: curl http://127.0.0.1:8787/health

选项3:AWS Lambda通过CDK

这 infra/ 目录包含一个部署的CDK堆栈:

  • Lambda函数(Node.js 20,arm64)
  • API网关HTTP API与CORS
  • ACM证书(DNS验证)
  • 具有Route 53别名记录的自定义域

先决条件:

  • 配置了适当权限的AWS CLI
  • 您域名的现有Route 53托管区域
  • Node.js 20+

设置:

# Create your .env from the template
cp .env.example .env
# Edit .env with your values:
#   AWS_PROFILE=your-profile
#   CDK_DEFAULT_ACCOUNT=123456789012
#   CDK_DEFAULT_REGION=us-east-1
#   DOMAIN_NAME=mcp.yourdomain.com
#   HOSTED_ZONE_NAME=yourdomain.com

# Build the Lambda bundle
npm install
npm run build:lambda:zip

# Deploy
cd infra
npm install
export $(grep -v '^#' ../.env | xargs)
npx cdk deploy

部署的服务器根据请求进行身份验证——每个调用者在 Authorization: Bearer 头球Lambda环境中不存储任何秘密。

环境变量

变量 必填 默认 描述
RYFT_SECRET_KEY 仅限stdio - Ryft API密钥(stdio模式从env读取)
RYFT_BASE_URL 没有 https://sandbox-api.ryftpay.com/v1 ryft API基础URL
RYFT_ACCOUNT_ID 否 -- 默认值 Account 作用域操作的标头

特性

  • stdio和远程流式HTTP传输
  • 用于HTTPS无状态MCP的AWS Lambda处理程序
  • 通过以下方式进行按请求身份验证 Authorization: Bearer 标头(托管模式)
  • 结构化Ryft API错误响应
  • 具有可选默认帐户的帐户范围请求
  • 多部分文件上传
  • 删除需要身体支撑的端点

发展

npm install        # install dependencies
npm run check      # typecheck
npm run lint       # lint
npm test           # run tests
npm run build      # build all entry points

安全

在托管模式下,服务器不存储任何API凭据。每个请求都必须在 Authorization 头球没有有效Bearer令牌的请求将收到 401 回应。

在stdio模式(本地)下,服务器读取 RYFT_SECRET_KEY 如果丢失,则立即退出环境。

许可证

麻省理工学院