paystack-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@paystack-mcp List all products"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Paystack MCP Server
The Paystack Model Context Protocol (MCP) server allows AI agents to interact with Paystack through standardized MCP clients via tool calling. This protocol supports various tools to interact with different Paystack services.
Features
Create and manage products in your Paystack store
Handle customer management (create, list, update, validate)
Process transactions (initialize, verify, charge authorization)
Manage authorizations and payments
Access bank information and country data
Export transaction data and view transaction totals
Related MCP server: Paylo MCP Server
Setup
Make sure to replace your_paystack_secret_key_here with your actual Paystack secret key.
To install Paystack MCP for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @kohasummons/paystack-mcp --client claudeManual Installation
npm install -g @kohasummons/paystack-mcpUsage
Start the server by running:
paystack-mcpOr use with npx in your MCP configuration:
{
"mcpServers": {
"paystack-mcp": {
"command": "npx",
"args": [
"-y",
"@kohasummons/paystack-mcp"
],
"env": {
"PAYSTACK_SECRET_KEY": "your_paystack_secret_key_here"
}
}
}
}Add the following to your claude_desktop_config.json. See here for more details.
{
"mcpServers": {
"paystack-mcp": {
"command": "npx",
"args": ["-y", "@kohasummons/paystack-mcp"],
"env": {
"PAYSTACK_SECRET_KEY": "your_paystack_secret_key_here"
}
}
}
}Copy and paste the link below into a browser address bar to add this extension to goose desktop:
goose://extension?cmd=npx&arg=-y&arg=@kohasummons/paystack-mcp&id=paystack-mcp&name=Paystack%20MCP&description=process%20payments%20with%20PaystackAfter installation, set your Paystack secret key in the extension settings.
Install the package globally:
npm install -g @kohasummons/paystack-mcpSet your Paystack secret key as an environment variable:
export PAYSTACK_SECRET_KEY=your_paystack_secret_key_here # For macOS/Linux
# OR
set PAYSTACK_SECRET_KEY=your_paystack_secret_key_here # For WindowsStart the server by running:
paystack-mcpOr use with NPX directly:
PAYSTACK_SECRET_KEY=your_paystack_secret_key_here npx -y @kohasummons/paystack-mcpAdd this to your Cursor MCP configuration:
{
"mcpServers": {
"paystack-mcp": {
"command": "npx",
"args": ["-y", "@kohasummons/paystack-mcp"],
"env": {
"PAYSTACK_SECRET_KEY": "your_paystack_secret_key_here"
}
}
}
}You can run the Paystack MCP server via Docker:
Build the image
docker-compose buildRun as a standalone server
docker-compose up -dUse with Cursor
Add to your .cursor/mcp.json:
{
"mcpServers": {
"paystack-mcp": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-e",
"PAYSTACK_SECRET_KEY=your_paystack_secret_key_here",
"kohasummons/paystack-mcp"
]
}
}
}Use with Claude Desktop
{
"mcpServers": {
"paystack-mcp": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-e",
"PAYSTACK_SECRET_KEY=your_paystack_secret_key_here",
"kohasummons/paystack-mcp"
]
}
}
}See DOCKER.md for detailed Docker instructions.
Tools
Products
Tool | Description | Example Prompt |
create_product | Create a new product | "Create a new product called 'Premium Plan' with a price of 5000 naira" |
list_products | List all products | "Show me all the products in my Paystack store" |
get_product | Get details of a specific product | "Get the details of product ID 12345" |
update_product | Update an existing product's details | "Update the price of product ID 12345 to 6000 naira" |
Customers
Tool | Description | Example Prompt |
create_customer | Create a new customer | "Create a new customer with email john@example.com" |
list_customers | List all customers | "Show me all my customers" |
get_customer | Get details of a specific customer | "Get the details for customer with email john@example.com" |
update_customer | Update a customer's details | "Update John Doe's phone number to +2341234567890" |
validate_customer | Validate a customer's identity with their bank account | "Verify customer CUS_123 with their bank account details" |
set_customer_risk_action | Whitelist or blacklist a customer | "Blacklist customer CUS_123 from making transactions" |
Transactions
Tool | Description | Example Prompt |
initialize_transaction | Initialize a payment transaction | "Start a new payment of 5000 naira for customer john@example.com" |
verify_transaction | Verify the status of a transaction | "Check the status of transaction with reference TR_123456" |
fetch_transaction | Get details of a transaction | "Get details of transaction ID 12345" |
list_transactions | List transactions with various filters | "Show me all successful transactions in the last month" |
charge_authorization | Charge a previously authorized card | "Charge customer john@example.com 5000 naira using their saved card" |
partial_debit | Charge a partial amount from authorized card | "Charge a partial amount of 3000 naira from john@example.com's saved card" |
deactivate_authorization | Deactivate a payment authorization | "Remove the saved card with authorization code AUTH_123" |
transaction_totals | Get total amount received on your account | "What's the total amount received in my account last month?" |
export_transactions | Export a list of transactions | "Export all my transactions from January 2023" |
Banking Information
Tool | Description | Example Prompt |
list_banks | Get a list of banks supported by Paystack | "Show me all supported banks in Nigeria" |
list_countries | Get a list of countries supported by Paystack | "Which countries does Paystack support?" |
list_states | Get a list of states for a country | "List all states in Nigeria for address verification" |
Contributing
We welcome contributions to help improve this project and implement the remaining Paystack API endpoints! There are many more Paystack features that could be added as tools, including:
Payment Pages
Subaccounts
Plans
Subscriptions
Apple Pay
Virtual Accounts
Invoices
Refunds
And more!
See CONTRIBUTING.md for detailed instructions on how to contribute, including:
Setting up your development environment
Guide for implementing new tools
Code style guidelines
Pull request process
Development
To work on this project:
Clone the repository
Install dependencies:
npm installBuild the project:
npm run buildRun the Inspector:
npm run dev:debug
You'll need to set up your Paystack secret key as an environment variable:
# Create a .env file in the project root
echo "PAYSTACK_SECRET_KEY=your_paystack_secret_key_here" > .envDebugging
To debug your server, you can use the MCP Inspector.
First build the server
npm run buildRun the following command in your terminal:
# Start MCP Inspector and server
npm run dev:debugAdd your PAYSTACK_SECRET_KEY to the enviroment variable in the Inspector UI. Debug away!
Docker Support
See DOCKER.md for details on building and running with Docker.
License
MIT
Available Tools
28 toolsbalance_ledgerC
Fetch all pay-ins and pay-outs that occurred on your Paystack integration
Inputs: page (required), perPage (required), to, from.
charge_authorizationB
Charge a previously authorized card
Inputs: email (required), amount (required), authorization_code (required), currency, +2 more.
check_balanceB
Get the available balance on your Paystack integration
Inputs: no named parameters.
create_customerB
Create a new customer in Paystack
Inputs: email (required), phone, metadata, last_name, +1 more.
create_productC
Create a new product on your Paystack integration
Inputs: name (required), price (required), currency (required), description (required), +2 more.
deactivate_authorizationB
Deactivate a payment authorization when a card needs to be forgotten
Inputs: authorization_code (required).
disable_transfers_otpC
Disable OTP requirement for transfers
Inputs: no named parameters.
enable_transfers_otpB
Enable OTP requirement for transfers
Inputs: no named parameters.
export_transactionsC
Export a list of transactions carried out on your integration
Inputs: page (required), perPage (required), to, from, +7 more.
fetch_transactionB
Get details of a transaction by ID
Inputs: id (required).
finalize_disable_otpB
Finalize the request to disable OTP on your transfers
Inputs: otp (required).
get_customerA
Get details of a specific customer by email or code
Inputs: email_or_code (required).
get_productA
Get details of a specific product by ID
Inputs: id (required).
initialize_transactionC
Initialize a transaction to accept payment on Paystack
Inputs: email (required), amount (required), reference (required), plan, +8 more.
list_banksC
Get a list of all banks supported by Paystack and their properties
Inputs: country (required), perPage (required), use_cursor (required), next, +8 more.
list_countriesA
Get a list of countries that Paystack currently supports
Inputs: no named parameters.
list_customersB
List customers available on your Paystack integration
Inputs: page (required), perPage (required), to, from.
list_productsB
List products available on your Paystack integration with pagination support
Inputs: to, from, page, perPage.
list_statesA
Get a list of states for a country for address verification
Inputs: country (required).
list_transactionsC
List transactions with pagination and filtering options
Inputs: page (required), perPage (required), to, from, +5 more.
partial_debitB
Charge a partial amount from a previously authorized card
Inputs: email (required), amount (required), currency (required), authorization_code (required), +2 more.
resend_transfers_otpC
Generates a new OTP and sends to customer for transfer verification
Inputs: reason (required), transfer_code (required).
set_customer_risk_actionC
Whitelist or blacklist a customer
Inputs: customer (required), risk_action (required).
transaction_totalsC
Get total amount received on your account
Inputs: page (required), perPage (required), to, from.
update_customerC
Update a customer's details
Inputs: code (required), last_name (required), first_name (required), phone, +1 more.
update_productB
Update an existing product by ID
Inputs: id (required), name, price, currency, +3 more.
validate_customerC
Validate a customer's identity with bank account
Inputs: bvn (required), code (required), type (required), country (required), +5 more.
verify_transactionC
Verify a transaction's status using the transaction reference
Inputs: reference (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 28 tools
Most tools have distinct resource-action pairs, but a few could be confused, such as verify_transaction vs fetch_transaction (reference vs ID) and charge_authorization vs partial_debit (full vs partial charge). Descriptions help clarify these differences, making the boundaries mostly clear.
The vast majority of tools follow a consistent verb_noun pattern (e.g., list_products, create_customer, initialize_transaction). However, a few tools like balance_ledger and transaction_totals use noun compounds instead of verb-first names, which is a minor deviation from an otherwise consistent style.
With 28 tools, this server is above the typical well-scoped range (3-15) and exceeds the 25-tool threshold for being considered too heavy. While the broad Paystack domain justifies many operations, the count feels excessive for a single MCP server and may overwhelm agents.
The tool set covers core workflows for products, customers, transactions, balances, and OTP settings. However, notable gaps exist: there is no delete operation for products or customers, no refund tool for transactions, and transfer OTP management tools without corresponding transfer initiation/list tools. These gaps could force agents to work around missing functionality.
Related MCP Connectors
Nigeria payments for AI agents — bank transfer / USSD via Paystack. Never holds funds.
Stripe payments for AI agents. Create links, verify, manage customers.
South Africa payments for AI agents — cards / EFT via Paystack. Never holds funds.
Manage GoCardless payments, mandates, subscriptions, refunds and payouts via AI assistants.
Related MCP Servers
- FlicenseNot gradedqualityNot gradedmaintenanceEnables AI agents to interact with multiple payment providers (Stripe, Paystack) through a unified API. Supports payment initialization, verification, refunds, customer management, and invoicing without requiring knowledge of specific provider implementations.2-
- AlicenseAqualityBmaintenanceEnables AI agents to interact with the Paylo commerce ecosystem, allowing them to discover merchants, search products, manage shopping carts, and facilitate transactions through Paystack.6MIT

paystack-mcp-serverofficial
AlicenseAqualityDmaintenanceEnables AI assistants to interact with the full range of Paystack APIs, allowing operations like transaction management, customer creation, and payments through natural language.2152 npm56MIT- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to accept payments, verify transactions, and manage customers via Paystack API through natural language.MIT