Skip to main content
Glama
JohnnieEmmanuel

paystack-mcp-server

README.md
# MCP Paystack Server

This project is a **ModelContextProtocol (MCP)** compatible server for Paystack, enabling you to interact with your Paystack account using MCP tools and LLMs. It is built with **Node.js**, **TypeScript*

## 🔧 Features

- **`get-total-transactions`**: Get the total number and amount of all your Paystack transactions.
- **`create-checkout-link`**: Instantly generate a Paystack payment link for a customer to pay a specified amount.
- **`verify-transaction`**: Verify the status of a transaction using its reference code.


## 📦 Installation

```bash
git clone "https://github.com/JohnnieEmmanuel/paystack-mcp-server.git"
cd <project-folder>
npm install
```


## 🚀 Usage

### Build the project:

```bash
npm run build
```

### Run the server:

```bash
node build/index.js
```

> Ensure the MCP consumer you're connecting to is set up to use STDIO transport.


## 🛠 Tools

### 1️⃣ `get-total-transactions`

Fetches the total number and amount of all your Paystack transactions.

**Input:**

```json
{
  "apiKey": "sk_test_xxx"
}
```

**Output (MCP):**

* Text block summarizing total transactions and total amount.

---

### 2️⃣ `create-checkout-link`

Generates a Paystack payment link for a customer.

**Input:**

```json
{
  "apiKey": "sk_test_xxx",
  "amount": 5000,
  "email": "customer@email.com",
  "metadata": { "orderId": "1234" }
}
```

*Amount is in Naira (₦).*

**Output (MCP):**

* The payment/checkout link URL.

---

### 3️⃣ `verify-transaction`

Verifies a transaction by its reference code.

**Input:**

```json
{
  "apiKey": "sk_test_xxx",
  "reference": "transaction_ref"
}
```

**Output (MCP):**

* Status and details of the transaction.

---

## 🧱 Tech Stack

* **Node.js** + **TypeScript**
* **Zod** for schema validation
* **node-fetch** for HTTP requests
* **MCP SDK** for server integration and transport

---

## 📄 License

MIT License

---

## 🧠 Credits

Built by [John Emmanuel || Red John || https://github.com/JohnnieEmmanuel] 

---