MCP Server

@monnify/mcp-server is a Model Context Protocol (MCP) server that lets you use natural language with your AI client (Claude Desktop, Cursor, VS Code, and others) to accept payments, verify identities, manage virtual accounts, and query transactions, instead of writing direct API integration code.

It exposes tools across four categories:

  • Collections: accept payments, create and manage virtual accounts, check transaction status, and issue refunds.
  • Direct Debit: create mandates, debit customers, and check mandate or debit status.
  • Verification: verify bank accounts, BVN, and NIN.
  • Utilities: look up supported banks and their codes.

See the package README for the full list of tools under each category. You can restrict a running server to a subset of these categories with the --tools flag, e.g. --tools=collections,verification.


How it works

  1. You give an instruction in natural language, e.g. "create a reserved account for this customer".
  2. Your AI client sends the request to the Monnify MCP server, which is running locally.
  3. The MCP server converts the instruction into the corresponding Monnify API call.
  4. Monnify processes the request and the result is relayed back to you through your AI client.

Prerequisites

  • Node.js 20 or later.
  • A Monnify account with API access enabled.
  • Your API Key, Secret Key, and Contract Code from the Monnify Dashboard > Developer > API Keys & Contracts.

Run the MCP server

The server runs directly through npx: there's no package to install globally. Your AI client starts it for you using the command you configure in the next step, but you can also run it standalone to try it out.

Set your credentials as environment variables rather than pasting them straight into the command, to keep them out of your shell history:


Connect your AI client

The server speaks the MCP stdio protocol, supported by all major AI tools. Register it in your client's MCP config, using your own API Key, Secret Key, and Contract Code in place of the placeholders below. Where a client supports it, pass credentials through the config's env block rather than embedding them in args, so they don't end up committed to a shared config file.

Mac: ~/Library/Application Support/Claude/claude_desktop_config.json. Windows: %APPDATA%\Claude\claude_desktop_config.json.

claude_desktop_config.json

Restart your client after saving. You'll see "monnify" appear in its tools panel.


Try it out

With your AI client connected, try a few prompts against sandbox to confirm everything is wired up correctly.

Payment collection

  • "Initiate a payment of ₦15,000 for invoice #INV-2024-007 and send me the checkout link"
  • "Create a dedicated virtual account for customer cust_089 so they can pay anytime by bank transfer"
  • "Get me the status of transaction TRX-20240601-001"

Engineering / integrations

  • "List all banks and their codes so I can populate a dropdown in my checkout form"
  • "Create a sandbox reserved account for [email protected] so I can test my webhook handler"
  • "Show me the raw response from initiating a bank transfer so I can model my TypeScript types"
  • "Check the status of mandate MND-2024-001 while I debug my direct debit flow"

Rate this page

How helpful is the content on this page?

Copyright © 2026 Monnify
instagramfacebookicon