mcpField
I
interswitch-mcp-server

interswitch-mcp-server

本地服务
github.com/Dairus01金融数据126 周前更新

关于 interswitch-mcp-server

interswitch-mcp-server 将 Interswitch 的支付及金融 API 封装为面向 AI 助手的 MCP 服务,适用于接入 Interswitch 业务的开发者。它提供按领域整理的类型化工具,并通过只读和确认机制约束写操作。

主要功能

  1. 01支付、转账、账单和话费充值
  2. 02交易查询与卡片管理
  3. 03Paycode、贷款及代理银行操作
  4. 04沙箱与生产环境切换
  5. 05只读模式、写操作确认和敏感字段脱敏

适用场景

  1. 01通过助手发起支付或查询交易状态
  2. 02搜索交易并获取交易详情
  3. 03执行卡片、Paycode 或账单操作
  4. 04在只读模式下测试 API 连接

MCP 相关

该 MCP 服务将 Interswitch API 领域以专用工具和资源的形式开放给 MCP 客户端,包含支付、转账、卡片、交易搜索及其他业务操作。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"dairus01-interswitch": {
"command": "npx",
"args": [
"-y",
"interswitch-mcp-server"
],
"env": {
"INTERSWITCH_CLIENT_ID": "<INTERSWITCH_CLIENT_ID>",
"INTERSWITCH_CLIENT_SECRET": "<INTERSWITCH_CLIENT_SECRET>",
"INTERSWITCH_ENV": "<INTERSWITCH_ENV>",
"INTERSWITCH_READ_ONLY": "<INTERSWITCH_READ_ONLY>"
}
}
}
}
启动命令npx -y interswitch-mcp-server
需要配置的环境变量
INTERSWITCH_CLIENT_IDInterswitch OAuth2 client ID (from Interswitch Developer Console)
INTERSWITCH_CLIENT_SECRET密钥Interswitch OAuth2 client secret
INTERSWITCH_ENVTarget environment: sandbox (default) or production
INTERSWITCH_READ_ONLYSet to true to block all write/transfer operations

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npminterswitch-mcp-server0.1.3

工具

74

收录的工具列表 · 更新于 2 周前

参数类型必填说明
extraobject否
confirmboolean否写入或高风险工具必须设为 true。
amountKobonumber否以 kobo 为单位的金额。请勿与 amountNaira 同时使用。
customerIdstring是
amountNairanumber否以尼日利亚奈拉为单位的金额。请勿与 amountKobo 同时使用。
payableCodestring否
redirectUrlstring是
currencyCodenumber否
merchantCodestring否
transactionRefstring是

详细介绍

Interswitch MCP 服务

一个 Model Context Protocol(MCP) 服务,可让 AI 助手通过 Interswitch API 处理支付、转账、VAS、无卡支付码、交易搜索、Card 360、借贷、付款、代理银行业务和金融科技卡处理工具。

警告

**公开预览:**此 MCP 服务目前处于公开预览阶段。它同时支持 Interswitch 沙盒和生产环境,请谨慎使用,先从只读模式开始,并报告遇到的任何问题。

快速开始

通过 npm 安装并运行(推荐):

npx interswitch-mcp-server

或全局安装:

npm install -g interswitch-mcp-server
interswitch-mcp-server

或者克隆并构建以进行本地开发:

git clone https://github.com/Dairus01/Interswitch-mcp-server.git
cd Interswitch-mcp-server
npm install
npm run build

然后配置 MCP 客户端以使用此服务(请参阅客户端集成)。

要求

  • Node.js v18+
  • npm 或 yarn
  • 要使用的各个域的 Interswitch API 凭据
  • 根据使用场景所需的 Interswitch 商户、应付、发起实体、终端或特定域标识符

配置选项

环境变量用途
INTERSWITCH_CLIENT_ID用于支付、转账、VAS、无卡支付、借贷、转账服务和付款的核心 OAuth2 客户端 ID
INTERSWITCH_CLIENT_SECRET核心 OAuth2 客户端密钥
INTERSWITCH_ENVAPI 环境:sandbox 或 production;默认为 sandbox
INTERSWITCH_READ_ONLY设置为 true 可在任何 API 调用前阻止写入工具;默认为 false
INTERSWITCH_REQUIRE_CONFIRMATION兼容性设置。工具确认由工具模式和风险级别强制执行。
INTERSWITCH_MERCHANT_CODE需要此代码的支付操作所用的商户代码
INTERSWITCH_PAYABLE_CODE需要此代码的支付操作所用的应付代码
INTERSWITCH_INITIATING_ENTITY_CODE转账操作所用的发起实体代码
INTERSWITCH_TERMINAL_ID需要终端标识的操作所用的终端 ID
CARD360_CLIENT_ID单独的 Card 360 客户端 ID
CARD360_CLIENT_SECRET单独的 Card 360 客户端密钥
CARD360_RSA_PUBLIC_KEY用于在本地加密 Card 360 PIN 载荷的 RSA 公钥
TRANSACTION_SEARCH_CLIENT_ID单独的交易搜索客户端 ID
TRANSACTION_SEARCH_CLIENT_SECRET单独的交易搜索客户端密钥
INTERSWITCH_AGENCY_MERCHANT_ID代理银行业务商户标识符
INTERSWITCH_AGENCY_TERMINAL_ID代理银行业务终端标识符
INTERSWITCH_LEGACY_AUTH_ENABLED启用受支持的、基于 InterswitchAuth 的旧版流程
DEBUG启用调试日志记录。请避免在生产环境中使用。

可通过 INTERSWITCH_ENV 选择 API 环境:

  1. 沙盒(默认): INTERSWITCH_ENV=sandbox
  2. 生产: INTERSWITCH_ENV=production

**安全说明:**生产模式使用真实的 Interswitch 生产端点。如果 INTERSWITCH_ENV=production、已配置有效的生产凭据、INTERSWITCH_READ_ONLY=false,并且调用写入工具时传入 confirm: true,服务就可以发起真实的生产 API 调用。

首次设置时,为了更加安全,请从只读模式开始:

INTERSWITCH_ENV=production \
INTERSWITCH_READ_ONLY=true \
INTERSWITCH_CLIENT_ID=your_production_client_id \
INTERSWITCH_CLIENT_SECRET=your_production_client_secret \
interswitch-mcp-server

在获得授权并准备好允许实时写入后,设置:

INTERSWITCH_READ_ONLY=false

客户端集成

Interswitch MCP 服务可与任何兼容 MCP 的客户端配合使用。以下是大多数客户端(Claude Desktop、ChatGPT Desktop、Cursor、Windsurf、VS Code、Claude Code 等)使用的标准配置架构。

使用 npm(推荐)

对于通过 npm 安装的服务:

{
  "mcpServers": {
    "interswitch": {
      "command": "npx",
      "args": ["-y", "interswitch-mcp-server"],
      "env": {
        "INTERSWITCH_ENV": "sandbox",
        "INTERSWITCH_READ_ONLY": "true",
        "INTERSWITCH_CLIENT_ID": "your_client_id",
        "INTERSWITCH_CLIENT_SECRET": "your_client_secret",
        "INTERSWITCH_MERCHANT_CODE": "your_merchant_code",
        "INTERSWITCH_PAYABLE_CODE": "your_payable_code",
        "INTERSWITCH_INITIATING_ENTITY_CODE": "your_entity_code"
      }
    }
  }
}

在生产环境中,请有意修改环境变量值:

{
  "mcpServers": {
    "interswitch": {
      "command": "npx",
      "args": ["-y", "interswitch-mcp-server"],
      "env": {
        "INTERSWITCH_ENV": "production",
        "INTERSWITCH_READ_ONLY": "true",
        "INTERSWITCH_CLIENT_ID": "your_production_client_id",
        "INTERSWITCH_CLIENT_SECRET": "your_production_client_secret",
        "INTERSWITCH_MERCHANT_CODE": "your_production_merchant_code",
        "INTERSWITCH_PAYABLE_CODE": "your_production_payable_code",
        "INTERSWITCH_INITIATING_ENTITY_CODE": "your_production_entity_code"
      }
    }
  }
}
使用本地构建

如果你已克隆并在本地构建了服务:

{
  "mcpServers": {
    "interswitch": {
      "command": "node",
      "args": ["/path/to/Interswitch-mcp-server/dist/index.js"],
      "env": {
        "INTERSWITCH_ENV": "sandbox",
        "INTERSWITCH_READ_ONLY": "true",
        "INTERSWITCH_CLIENT_ID": "your_client_id",
        "INTERSWITCH_CLIENT_SECRET": "your_client_secret"
      }
    }
  }
}

重要

设置 command: "node" 时,请确保使用的是 Node v18+。如果你使用包管理器,可能需要在命令行中运行以下命令来获取 Node 二进制文件的路径:

Linux 和 MacOS
which node
Windows
where node

获取路径后,将其用作 JSON 配置中 MCP 服务命令的值。例如:command: "path/to/installation/bin/node"

在哪里添加此配置
客户端配置文件位置
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
ChatGPT Desktop应用偏好设置中的 MCP 设置
Cursor.cursor/mcp.json 或全局 MCP 设置
Windsurf设置中的 MCP 配置
Claude Code~/.claude/mcp.json 或项目级 .mcp.json

工作原理

Interswitch MCP 服务通过专用 MCP 工具向 AI 助手开放 Interswitch API 域。该服务不会在运行时解析 OpenAPI 文件,而是为受支持的 Interswitch 域提供经过整理的类型化工具。

架构图
graph TD
    subgraph MCP Server
        A[Interswitch MCP Server]
        B[Tool Registry]
        C[Resource Registry]
    end

    subgraph Auth Layer
        D[OAuth2 Passport Manager]
        E[Card 360 Token Manager]
        F[Transaction Search Manager]
        G[Agency Banking Token Manager]
        H[Legacy Auth Manager]
    end

    subgraph Core Services
        I[Payments Service]
        J[VAS Services]
        K[Transfers Service]
        L[Cardless Services]
        M[Transaction Search Service]
        N[Card 360 Service]
        O[Lending Service]
        P[Transfer Service]
        Q[Payouts Service]
        R[Agency Service]
        S[Fintech Utilities]
    end

    subgraph Safety Layer
        J1[Confirmation Gate]
        J2[Read-Only Mode]
        J3[Redaction System]
        J4[Audit Logging]
    end

    A --> B
    A --> C
    A --> D
    A --> E
    A --> F
    A --> G
    A --> H
    B --> I
    B --> J
    B --> K
    B --> L
    B --> M
    B --> N
    B --> O
    B --> P
    B --> Q
    B --> R
    B --> S
    I --> J1
    J --> J1
    K --> J1
    L --> J1
    M --> J1
    N --> J1
    O --> J1
    P --> J1
    Q --> J1
    R --> J1
    S --> J1
    J1 --> J2
    J2 --> J3
    J3 --> J4
    J4 --> Z[External APIs]
    
    style MCP Server fill:#f0f8ff,stroke:#333,stroke-width:2px
    style Auth Layer fill:#e6f7e6,stroke:#333,stroke-width:1px
    style Core Services fill:#f9f9f9,stroke:#666,stroke-width:1px
    style Safety Layer fill:#fff0f0,stroke:#c33,stroke-width:1px
    style Z fill:#d4d4d4,stroke:#999,stroke-dasharray: 5 5

每个工具都会:

  1. 使用严格的架构验证输入
  2. 应用确认和只读安全防护
  3. 选择已配置的沙盒或生产环境基础 URL
  4. 使用该域对应的认证系统
  5. 仅在调用工具时才调用 Interswitch API
  6. 对返回数据中的敏感字段进行脱敏
  7. 返回标准化的 MCP 响应
认证系统
认证系统用途
OAuth2 Passport核心支付、转账、VAS、无卡服务、借贷、转账服务和付款
Card 360 令牌管理器Card 360 操作
Transaction Search 令牌管理器Transaction Search API
Legacy InterswitchAuth启用时用于旧版签名请求流程
Agency Banking 令牌管理器Agency Banking SOAP/XML 令牌流程
可用工具
工具描述
isw_initialize_payment初始化支付请求
isw_get_transaction_status检查交易状态
isw_get_transaction_by_reference按引用获取交易
isw_create_payment_link创建支付链接
isw_initiate_refund发起退款;高风险写入
isw_get_refund_status检查退款状态
isw_pay_bill支付账单
isw_get_billers列出账单服务商
isw_get_biller_packages列出账单服务商的套餐
isw_get_billers_by_category按类别列出账单服务商
isw_get_biller_details获取账单服务商详情
isw_validate_customer验证账单服务商客户
isw_pay_vas_bill支付 VAS 账单
isw_airtime_recharge充值话费
isw_get_airtime_epins请求话费 ePIN
isw_single_transfer发送单笔银行转账;高风险写入
isw_bulk_transfer发送批量转账;高风险写入;最多 100 笔交易
isw_resolve_bank_account查询银行账户详情
isw_get_bank_codes列出支持的银行代码
isw_agency_banking_cashout发起代理银行取款;高风险写入
isw_create_paycode创建无卡支付码
isw_create_bulk_paycodes创建批量支付码;高风险写入;最多 100 个支付码
isw_get_paycode_status检查支付码状态
isw_deactivate_paycode停用支付码
isw_transaction_search_quick_search使用快速搜索字段搜索交易
isw_transaction_search_reference_search按交易引用搜索
isw_transaction_search_bulk_search搜索多笔交易
isw_get_transaction_details获取交易详细信息
isw_create_card创建卡;高风险写入
isw_retry_card_creation重试创建卡
isw_initiate_card_data_prep发起卡数据准备
isw_fetch_data_prep_request获取数据准备请求
isw_fetch_prepared_cards获取已准备的卡
isw_bulk_card_production开始批量制卡;高风险写入
isw_reissue_card_pin重新签发卡 PIN;高风险写入
isw_change_card_pin更改卡 PIN;高风险写入
isw_get_pin在支持的情况下获取 PIN 相关响应;高风险读取
isw_block_card冻结卡;高风险写入
isw_unblock_card解冻卡;高风险写入
isw_block_prepaid_card冻结预付卡;高风险写入
isw_unblock_prepaid_card解冻预付卡;高风险写入
isw_link_card_to_account将卡关联到账户;高风险写入
isw_check_prepaid_balance检查预付卡余额
isw_check_debit_balance检查借记卡余额
isw_confirm_prepaid_sufficient确认预付卡余额充足
isw_confirm_debit_sufficient确认借记卡余额充足
isw_fetch_cards_by_issuer按发卡机构获取卡
isw_fetch_single_card_by_pan按 PAN 获取单张卡,并对信息进行遮盖
isw_fetch_cards_by_account按账户获取卡
isw_fetch_customer_card_details获取客户卡详情
isw_fetch_request_logs获取 Card 360 请求日志
isw_validate_card验证卡数据
isw_request_nano_loan申请小额贷款;高风险写入
isw_salary_lending启动薪资贷款流程;高风险写入
isw_value_financing启动价值融资流程;高风险写入
isw_get_customer_demographics获取客户人口统计信息
isw_get_financial_history获取客户财务历史记录
isw_get_financial_history_average获取财务历史记录平均值
isw_get_financial_habits获取客户财务习惯
isw_credit_inquiry执行信用查询
isw_complete_credit使用 OTP 完成授信;高风险写入
isw_requery_transfer重新查询转账状态
isw_get_receiving_institutions列出收款机构
isw_get_payout_channels列出付款渠道
isw_agency_get_token获取/缓存代理银行令牌
isw_fintech_validate_debit_payload验证借记负载结构
isw_fintech_validate_reversal_payload验证冲正负载结构
isw_fintech_validate_enquiry_payload验证查询负载结构
isw_fintech_validate_place_lien_payload验证设定留置权负载结构
isw_fintech_validate_debit_lien_payload验证借记留置权负载结构
isw_fintech_compute_mac计算 MAC;因接受密钥而属于高风险操作
isw_fintech_build_response构建金融科技响应负载;提供密钥时属于高风险操作
可用资源
资源URI描述
response_codesisw://response-codes常见的 Interswitch 响应码参考
config_summaryisw://config-summary安全的运行时配置摘要;仅返回凭据是否存在,不会返回机密
示例

当你向 AI 助手提出类似 “使用 Interswitch 为 [email protected] 初始化一笔 5000 NGN 的付款” 的请求时,幕后会发生以下情况:

  1. 助手选择 isw_initialize_payment
  2. 它传入明确的金额,例如 amountNaira: 5000
  3. 对于写入操作,必须包含 confirm: true
  4. 服务验证请求,在需要时安全地转换金额,使用 Interswitch 进行身份验证,并调用已配置的沙盒或生产环境端点
  5. 你会收到经过规范化处理且原始数据已脱敏的响应
提示词建议

使用此 MCP 服务时,若要获得最佳结果,请在提示词中明确说明需求,并始终在请求中包含“Interswitch”。

好的提示词:

  • “为 [email protected] 初始化一笔 50000 NGN 的 Interswitch 付款。”
  • “查询参考编号为 order-1001 的 Interswitch 交易状态。”
  • “使用银行代码 058 查询 Interswitch 银行账号 0123456789。”
  • “使用 Interswitch 发起一笔 1000 NGN 的单笔转账,并设置 confirm true。”
  • “读取 Interswitch 响应码资源。”

效果较差的提示词:

  • “列出我的交易”(未说明使用哪项服务,也未提供参考编号或搜索条件)
  • “转钱”(缺少收款人、银行、金额和确认详情)
  • “支付这张账单”(缺少账单发行方、套餐、客户和金额详情)

明确说明需求可确保大模型快速找到合适的工具,并减少歧义。

生产环境安全

设置 INTERSWITCH_ENV=production 后,此服务可将请求路由至 Interswitch 生产环境端点。能否安全用于生产环境,取决于凭据是否正确、Interswitch 账号权限以及组织的运营管控措施。

服务内置的安全行为:

  • 写入工具需要 confirm: true
  • 高风险敏感读取工具需要 confirm: true
  • INTERSWITCH_READ_ONLY=true 会在发起任何外部 API 调用前阻止所有写入操作
  • 低风险读取操作无需确认
  • 返回前会对原始响应进行脱敏
  • 工具输出不会主动返回令牌和机密
  • 配置所需 RSA 公钥后,卡 PIN 负载会在本地加密
  • 生产环境启动警告会写入 stderr,不会静默隐藏风险配置

建议的生产环境上线步骤:

  1. 配置生产环境凭据,但保持 INTERSWITCH_READ_ONLY=true
  2. 检查启动警告和配置摘要
  3. 先测试安全的只读工具
  4. 确认拟使用工具对应的域凭据
  5. 仅在已获准进行实时写入操作后,才将 INTERSWITCH_READ_ONLY=false
  6. 对包含 confirm: true 的提示词进行人工审核

开发

在本地运行(无需构建)

进行本地开发和测试时,可以直接运行 TypeScript 源码:

npm run dev
使用 MCP Inspector 运行
npm run inspect
构建
npm run build
运行测试
npm test
类型检查
npm run lint
预览 npm 软件包内容
npm pack --dry-run

故障排查

问题解决方案
服务在启动时静默退出在终端中运行,并检查 stderr;确认 Node v18+ 且环境变量有效
出现生产环境警告根据警告添加缺少的凭证组、设置 INTERSWITCH_READ_ONLY=true 或禁用 DEBUG
客户端中未显示工具确保服务正在运行,且客户端配置路径正确
写入工具被阻止传入 confirm: true;如果仍被阻止,请检查 INTERSWITCH_READ_ONLY
高风险读取被阻止传入 confirm: true
支付工具失败在需要时配置 INTERSWITCH_MERCHANT_CODE 和 INTERSWITCH_PAYABLE_CODE
转账工具失败在需要时配置 INTERSWITCH_INITIATING_ENTITY_CODE
Card 360 工具失败配置 CARD360_CLIENT_ID 和 CARD360_CLIENT_SECRET
PIN 操作失败配置有效的 CARD360_RSA_PUBLIC_KEY
Transaction Search 失败配置 TRANSACTION_SEARCH_CLIENT_ID 和 TRANSACTION_SEARCH_CLIENT_SECRET
Agency 工具失败配置 INTERSWITCH_AGENCY_MERCHANT_ID 和 INTERSWITCH_AGENCY_TERMINAL_ID
请求超时检查与已配置 Interswitch 环境的网络连接

贡献

欢迎提交拉取请求。对于重大更改,请先创建议题,讨论您希望进行的更改。

详情请参阅 CONTRIBUTING.md。

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。