使用说明
Ryft MCP
ryft-mcp 是Ryft API的模型上下文协议服务器。
它为MCP客户端提供了一个干净的界面,用于处理Ryft资源,如客户、支付会话、订阅、Webhook、帐户、支付、争议、文件等。
快速入门(托管)
Ryft MCP服务器已部署并准备就绪。使用Ryft密钥将其添加到MCP客户端。
重要提示: 您的Ryft密钥可能包含特殊字符,例如
/和+。请确保准确复制完整密钥——截断或转义这些字符将导致身份验证失败(403个错误)。添加服务器后,重新启动MCP客户端以获取新配置。
克劳德桌面版
Claude Desktop不支持通过配置文件为远程MCP服务器自定义身份验证标头。请改用stdio传输:
- 克隆此存储库并安装依赖项:
git clone https://github.com/bkawk/ryft-mcp.git
cd ryft-mcp
npm install
npm run build
- 打开克劳德桌面
- 首选 设置 (右上角的齿轮图标)
- 点击 开发者 在侧边栏中
- 点击 编辑配置 打开
claude_desktop_config.json - 添加以下内容(用您自己的路径和键替换路径和键):
{
"mcpServers": {
"ryft": {
"command": "node",
"args": ["/absolute/path/to/ryft-mcp/dist/index.js"],
"env": {
"RYFT_SECRET_KEY": "YOUR_RYFT_SECRET_KEY"
}
}
}
}
- 保存文件并重新启动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结合使用:
- 首选 设置 → 应用程序和连接器 → 高级设置 并启用 开发者模式
- 首选 设置 → 连接器 → 创建
- 输入名称(例如“Ryft”)和服务器URL:
https://ryft-mcp.bkawk.com/mcp - ChatGPT将尝试在没有身份验证的情况下连接
注: 由于ChatGPT无法发送承载令牌,请求将被拒绝,并出现401错误。完全支持ChatGPT需要将OAuth添加到MCP服务器中——这计划在未来的版本中实现。
Codex(OpenAI CLI)
- 打开或创建文件
~/.codex/config.toml - 添加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配置文件中。
- 保存文件。Codex将在下次运行时获取服务器。
光标
- 打开光标并转到 设置 > 主控程序
- 点击 添加新的全局MCP服务器
- 这将打开
~/.cursor/mcp.json.添加以下内容:
{
"mcpServers": {
"ryft": {
"url": "https://ryft-mcp.bkawk.com/mcp",
"headers": {
"Authorization": "Bearer YOUR_RYFT_SECRET_KEY"
}
}
}
}
- 保存文件。服务器应在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 如果丢失,则立即退出环境。
许可证
麻省理工学院