Skip to main content
Glama

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 claude

Manual Installation

npm install -g @kohasummons/paystack-mcp

Usage

Start the server by running:

paystack-mcp

Or 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%20Paystack

After installation, set your Paystack secret key in the extension settings.

Install the package globally:

npm install -g @kohasummons/paystack-mcp

Set 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 Windows

Start the server by running:

paystack-mcp

Or use with NPX directly:

PAYSTACK_SECRET_KEY=your_paystack_secret_key_here npx -y @kohasummons/paystack-mcp

Add 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 build

Run as a standalone server

docker-compose up -d

Use 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:

  1. Clone the repository

  2. Install dependencies: npm install

  3. Build the project: npm run build

  4. Run 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" > .env

Debugging

To debug your server, you can use the MCP Inspector.

First build the server

npm run build

Run the following command in your terminal:

# Start MCP Inspector and server
npm run dev:debug

Add 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 tools
balance_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

    B3/5.0

    Scored across 28 tools

    Disambiguation4/5

    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.

    Naming Consistency4/5

    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.

    Tool Count2/5

    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.

    Completeness3/5

    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

    Related MCP Servers

    • F
      license
      Not graded
      quality
      Not graded
      maintenance
      Enables 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
      -
    • A
      license
      A
      quality
      D
      maintenance
      Enables AI assistants to interact with the full range of Paystack APIs, allowing operations like transaction management, customer creation, and payments through natural language.
      2
      152 npm
      56
      MIT