@juno_ch/allinpay-syb-mcp-server
v0.1.1
Published
Allinpay SYB MCP Server (stdio). Mirrors Java SDK capabilities and exposes one tool per ApiMethod for Cursor/LLM clients.
Readme
Allinpay SYB MCP Server (Node.js)
基于 Node.js 的通联支付收银宝 SDK 封装,已对齐 Java SDK 全量 ApiMethod 枚举,通过数据驱动方式映射生产/测试域名和前后台类型。当前以 MCP Server (stdio) 形态运行,不暴露 HTTP 路由。MCP 实现基于通用的 vscode-jsonrpc(可走国内 npm 镜像)。
特性
- 支持多商户配置,按
merchantId动态路由请求。 - 对齐 Java SDK 的 API 方法注册表,数据驱动,便于新增或变更。
- 内置 MD5、RSA/RSA2、SM2 签名;提供 SM4 加解密(内置敏感字段自动加密,需配置 sm4Key)。
- REST 风格调用入口
/execute,同时提供方法和商户管理辅助接口。
快速开始
- 安装依赖
cd allinpay-syb-mcp-server pnpm install # 或 npm install / yarn - 配置商户
- 复制
config/merchants.example.json为config/merchants.json,填入商户密钥、签名算法、环境等。 - 或通过环境变量
MERCHANTS_JSON传入数组配置。
- 复制
- 启动 MCP Server(stdio)
pnpm dev # tsx watch src/mcpServer.ts # 或生产构建后 pnpm build && pnpm start # node dist/mcpServer.js - 在客户端(如 Cursor)中,连接本地 MCP server 并调用工具:
list-methods:列举 ApiMethod<ApiMethod>:工具名直接对齐 Java SDKApiMethod枚举常量,例如:- 交易:
UNITORDER_PAY、TRANX_QUERY - 商户:
MERCHANT_ADD、MERCHANT_QUERY - 收银台:
H5_UNIONPAY_ORDER
- 交易:
目录结构
src/apiMethods.ts:API 枚举表,对齐 Java SDK 全量接口。src/client.ts:核心请求/签名逻辑。src/merchantStore.ts:商户配置加载(文件 + 环境变量)。src/signers.ts:签名工具(MD5、RSA、RSA2、SM2;含 SM4 加解密)。src/mcp/registerMcp.ts:MCP 协议实现(initialize/tools/list/tools/call)。src/mcp/toolRegistry.ts:按 ApiMethod 生成工具定义与参数 schema(字段 + Javadoc 说明;工具按模块命名)。src/introspect/javaRequestMeta.ts:解析 Java Request 源码,提取字段与@EncryptField(用于参数 schema + 精准 SM4 加密)。src/mcpServer.ts:MCP Server 入口(stdio)。
MCP 说明
当前以 MCP Server 形式(stdio)对外,无需暴露 HTTP 路由。商户配置需在启动前通过文件或环境变量准备好。
待办/扩展建议
- 丰富错误处理、重试与回调验签工具。
- 添加自动化测试与接口契约校验。
