内容
# 验证滑条 MCP
一个 **远程MCP服务器** (可流式HTTP)用于验证泰国银行转账滑条。它通过HTTP公开MCP工具,因此任何MCP兼容的客户端(Claude、Cursor、VS Code、Gemini CLI、Codex CLI等)都可以验证滑条的金额、收款人、转账日期,并检测重复使用。
- **网站:** <https://thaibankslip.com>
- **MCP端点:** `https://thaibankslip.com/mcp`
- **连接指南(每个客户端):** <https://thaibankslip.com/docs>
## 开始使用
1. 在 <https://thaibankslip.com/merchant/register> 创建商家账户(包含免费试用代币)。复制您的 **API密钥** — 它只显示一次。
2. 使用端点 `https://thaibankslip.com/mcp` 将MCP服务器添加到您的客户端(每个客户端的逐步指南在 [/docs](https://thaibankslip.com/docs))。
3. 当您的客户端打开登录页面时,输入您的 **商家名称** 和 **API密钥**。这样 — `check_slip` 工具现在可用于您的AI代理。
## 端点
- `POST /mcp` — MCP Streamable HTTP(初始化 + 请求)。需要有效的OAuth访问令牌(`Authorization: Bearer <token>`)。
- `GET /mcp` — MCP服务器到客户端流(需要活动会话)
- `DELETE /mcp` — 终止MCP会话
- `GET /health` — `{ "ok": true, "name": "验证滑条MCP", "version": "1.0.0" }`
- `GET /` — 基本服务器信息
- OAuth(公开):`GET /.well-known/oauth-protected-resource`,`GET /.well-known/oauth-authorization-server`,`POST /register`(DCR),`GET|POST /authorize`,`POST /token`
## 身份验证(OAuth 2.1)
`/mcp` 端点受OAuth 2.1授权码流保护,带有PKCE,专为MCP客户端(如Claude的自定义连接器)设计:
1. 客户端读取 `/.well-known/oauth-protected-resource` (通过 `401` 上的 `WWW-Authenticate` 头部通告)以发现授权服务器。
2. 它通过 `POST /register` (DCR)动态注册,然后在浏览器中打开 `/authorize`。
3. 您使用 **商家名称** 和 **API密钥** 登录。成功后,授权码将被重定向回。
4. 客户端在 `/token` 处交换代码(验证PKCE)以获取短期访问令牌和旋转刷新令牌 — 所有这些都由您的MCP客户端自动处理。
## MCP工具
### `check_slip`
通过滑条图像、二维码负载或交易参考验证滑条。
输入:
```json
{
"slip_image_base64": "base64 PNG/JPEG(可选)",
"qr_payload": "字符串(可选)",
"transaction_ref": "字符串(可选)",
"expected_amount": "数字 > 0(可选)",
"expected_receiver_name": "字符串(可选)",
"expected_receiver_account_last4": "4位数字(可选)",
"expected_transfer_date": "YYYY-MM-DD(可选)",
"order_id": "字符串(可选)",
"mark_as_used": "布尔值(默认为false)"
}
```
`slip_image_base64` 、 `qr_payload` 或 `transaction_ref` 至少有一个是必填的。当仅提供 `slip_image_base64` (原始base64或 `data:image/...;base64,` 数据URL)时,服务器从图像中解码二维码并将其用作二维码负载。结果以JSON文本内容返回, `status` 为 `verified | failed | duplicate | provider_error | config_error` 之一。
比较规则:
- 金额:精确的数字匹配。
- 收款人姓名:不区分大小写,修剪空格。
- 收款人账户后4位:仅限数字。
- 日期:比较滑条的转账日期时间的 `YYYY-MM-DD` 部分。
- 您未传递的字段将被省略(不会报告为 `false`)。
当 `mark_as_used` 为 `true` 且所有检查通过时,滑条的交易ID将被记录,因此对同一滑条的未来检查将返回 `status: "duplicate"`。
### `slip_checker_status`
返回配置/健康状态,而不暴露机密(提供者准备就绪状态、重复检测范围、您剩余的代币余额、身份验证配置)。
## 代币和定价
1代币 = 1滑条检查。新商家可获得免费试用代币;从 <https://thaibankslip.com/merchant> (Stripe Checkout,THB)购买更多代币。所有套餐见 <https://thaibankslip.com/#pricing>。
## 警告
该服务器通过提供者API验证滑条,而非仅凭图片。当您传递 `slip_image_base64` 时,服务器仅从图像中读取滑条的二维码并将该二维码负载转发给提供者;图像的其余部分不受信任。没有可读二维码的滑条必须作为 `qr_payload` 或 `transaction_ref` 提供。