Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Descripción del creador (original en inglés)
MCP Server to interact with Flutterwave APIs.
Estos tres nunca se combinan en una sola puntuación: las opiniones, las mediciones y la popularidad son cosas distintas.
Todavía no escribimos un resumen sencillo para este. Abajo están los datos que leímos del registro.
Elige la app de IA que usas y copia la configuración.
FLW_SECRET_KEYLos valores marcados como secretos son llaves de tu cuenta. Nunca los compartas ni los pegues en un chat.
Necesitas
¿Qué app usas?
Elige tu app arriba. La recordamos, así que la próxima vez el botón dirá “Instalar en …”.
Abre Claude Desktop → Settings → Developer → Edit Config y pega esto en claude_desktop_config.json
{
"mcpServers": {
"flutterwave": {
"command": "npx",
"args": [
"-y",
"mcp-flutterwave"
],
"env": {
"FLW_SECRET_KEY": "your-value"
}
}
}
}Ejecuta esto en tu terminal
claude mcp add flutterwave --env FLW_SECRET_KEY=your-value -- npx -y mcp-flutterwaveCompleta los valores vacíos antes de ejecutarlo.
Pégalo en .cursor/mcp.json de tu proyecto, o en ~/.cursor/mcp.json
{
"mcpServers": {
"flutterwave": {
"command": "npx",
"args": [
"-y",
"mcp-flutterwave"
],
"env": {
"FLW_SECRET_KEY": "your-value"
}
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
Pégalo en .vscode/mcp.json de tu proyecto
{
"servers": {
"flutterwave": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"mcp-flutterwave"
],
"env": {
"FLW_SECRET_KEY": "your-value"
}
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
Este se ejecuta en tu computadora, y ChatGPT solo puede conectarse a servidores en internet. Elige otra app.
Tu elección se guarda en una cookie en este dispositivo; no necesitas cuenta.
Esta configuración se genera a partir de la ficha del creador en el registro. Si el README dice otra cosa, sigue el README.
Se ejecuta en tu computadora; la lista de herramientas aparece en tu app de IA después de instalarlo.
Revisamos información que cualquiera puede ver; no hemos leído el código. Las revisiones que no aplican no se cuentan. · Revisado el 7 nov 2026
El nombre en el registro se verificó con la cuenta de GitHub bajoski34, dueña del repo
Todavía no hemos leído este repo en GitHub
Todavía no hemos leído este repo en GitHub
Este se ejecuta en tu computadora; no hay endpoint en internet
Se ejecuta en tu computadora y usa ajustes locales en su lugar
Se ejecuta en tu computadora; solo podemos leer listas de herramientas de endpoints en internet
Comparado con todos los servidores activos de esta categoría en el registro. Las estrellas solo cuentan cuando quien lo publica es dueño del repo.
Superó 1 de 1 revisiones básicas aplicables. No hemos leído el código. Antes de agregar una clave o un token, revisa qué acceso pide el servidor y usa una clave que tenga solo los permisos que necesitas.
Debes completar: FLW_SECRET_KEY
Se ejecuta en tu computadora. Tu app de IA lo inicia cuando hace falta, y los datos no pasan por los servidores del creador (a menos que el propio servidor llame a un servicio en línea).
El repo de GitHub cambió por última vez –, y la última versión (1.2.0) llegó al registro hace 13 meses.
Las apps compatibles con MCP, como Claude Desktop, Claude Code, Cursor y VS Code. También necesitas Node.js en tu computadora.
En la misma categoría: Spec Driven Development, Remote Desktop Commander, FactLot
Servidores de la misma categoría hechos por otros creadores, ordenados por estrellas.
Cómo leer una tarjeta:★ Estrellas de GitHubiTres pilares: reseñas · revisiones · usoiActualizado = fecha en que se publicó la última versión en el registroi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Cited CRE facts and deterministic calculators for agents: rent, CAM, debt sizing, IRR, parcel IDs.
Copiado tal cual del repo del creador. PopNx MCP no lo ha revisado ni lo respalda. Se quitaron HTML, imágenes y scripts. Los enlaces llevan fuera de este sitio.
An MCP (Model Context Protocol) server that enables AI assistants to interact with the Flutterwave API — create payment links, charge customers directly, manage transfers, collect via virtual accounts, pay bills, and more.
Note: This server currently targets the Flutterwave v3 API. Support for v4 is coming soon.
Also ships with a built-in web app that connects to the MCP server and lets you talk to a Claude-powered Flutterwave assistant directly in your browser.
npm install -g mcp-flutterwave
npx mcp-flutterwave --tools=all
Pull the image:
docker pull ghcr.io/bajoski34/mcp-flutterwave:latest
The server communicates over stdio, so it must be launched by an MCP client — not run standalone. Configure Claude Desktop to use the Docker image as the MCP server:
{
"mcpServers": { "flutterwave": { "command": "docker", "args": [ "run", "--rm", "-i", "-e", "FLW_SECRET_KEY=YOUR_SECRET_KEY", "-e", "FLW_ENCRYPTION_KEY=YOUR_ENCRYPTION_KEY", "ghcr.io/bajoski34/mcp-flutterwave:latest" ] } } }
The -i flag keeps stdin open so Claude Desktop can communicate with the server over stdio.
Requirements: Node.js 20 or later (for npm/npx).
| Tool | Description |
|---|---|
create_checkout | Create a hosted Flutterwave payment link |
disable_checkout | Disable an existing payment link |
| Tool | Description |
|---|---|
charge_card | Directly charge a debit or credit card — handles PIN, AVS, 3DS, and OTP flows |
charge_bank_account | Debit a bank account (NGN / GHS) |
charge_mobile_money | Mobile money — Ghana, Uganda, Rwanda, Zambia, Francophone Africa |
charge_mpesa | M-Pesa charge (KES) |
charge_ussd | USSD charge (NGN) |
validate_charge | Validate a pending charge using OTP |
| Tool | Description |
|---|---|
read_transaction | Get transaction details by ID |
read_transaction_with_reference | Get transaction details by tx_ref |
read_transaction_timeline | View the event timeline for a transaction |
resend_transaction_webhook | Resend a failed webhook |
| Tool | Description |
|---|---|
create_transfer | Initiate a bank transfer |
create_beneficiary | Save a new transfer beneficiary |
list_beneficiaries | List all saved beneficiaries |
| Tool | Description |
|---|---|
create_payment_plan | Create a recurring payment plan |
get_payment_plans | List payment plans with optional filters |
| Tool | Description |
|---|---|
create_virtual_account | Create a dedicated bank account number for a customer (NGN or GHS) |
get_virtual_account | Retrieve a virtual account's status and details by order_ref |
update_virtual_account | Link or update the BVN on an NGN virtual account |
list_virtual_account_bulk | List all accounts created in a bulk batch |
| Tool | Description |
|---|---|
get_bill_categories | List available bill categories (AIRTIME, CABLEBILLS, UTILITYBILLS, etc.) |
get_bill_providers | List billers/providers for a category |
get_bill_items | List payable items for a specific biller |
validate_bill_customer | Validate a customer account before payment (meter number, smartcard, etc.) |
pay_bill | Submit a bill payment |
get_bill_status | Check payment status and retrieve prepaid tokens (electricity) |
| Tool | Description |
|---|---|
request_fx_quote | Submit a Request For Quote (RFQ) for a currency conversion |
get_fx_quote | Poll the quote status — wait for READY before trading |
initiate_fx_trade | Lock in a READY quote and execute the trade |
get_fx_trade | Poll trade status until SETTLED or FAILED |
| Tool | Description |
|---|---|
initiate_bvn_verification | Begin a BVN identity check — returns a single-use customer consent URL |
get_bvn_details | Retrieve full BVN identity data after consent is given |
resolve_bank_account | Look up the account holder name for a bank account number |
verify_card_bin | Look up card brand, type, issuer, and country from the first 6 digits |
| Tool | Description |
|---|---|
get_stablecoin_fee | Get the transfer fee before sending — shows net amount the recipient receives |
send_stablecoin | Send USDC or USDT to a Polygon wallet address |
convert_to_stablecoin | Convert NGN or USD fiat balance into USDC or USDT |
Direct card charges are multi-step. The charge_card tool handles every stage automatically and tells Claude what to do next.
1. charge_card(card details)
│ ├─ mode: "pin" → ask customer for PIN │ charge_card(same params + authorization: { mode: "pin", pin: "..." }) │ │ │ ├─ mode: "otp" → validate_charge(flw_ref, otp) │ └─ mode: "redirect" → send customer to 3DS URL │ ├─ mode: "avs_noauth" → ask customer for billing address │ charge_card(same params + authorization: { mode: "avs_noauth", city, address, ... }) │ │ │ ├─ mode: "otp" → validate_charge(flw_ref, otp) │ └─ mode: "redirect" → send customer to 3DS URL │ ├─ mode: "redirect" → send customer to 3DS URL, then read_transaction to verify │ └─ (none) → charge complete — read_transaction to verify
When a second call is needed, pass authorization alongside the original card details:
// PIN flow
{ "authorization": { "mode": "pin", "pin": "3310" } }
// AVS flow { "authorization": { "mode": "avs_noauth", "city": "Lagos", "address": "12 Victoria Island", "state": "LA", "country": "NG", "zipcode": "100001" } }
American Express transactions require the card_holder_name field in addition to standard card details.
Card payloads are encrypted with 3DES-ECB using your FLW_ENCRYPTION_KEY before they are sent to Flutterwave (PCI DSS requirement). The encryption is handled automatically — set the environment variable and the server does the rest.
Virtual accounts give each customer a dedicated bank account number to make transfers into. Flutterwave notifies your webhook when a payment arrives.
| Feature | NGN | GHS |
|---|---|---|
| Dynamic (one-time) | ✓ — set amount, expires in ~1 hr | ✓ — use frequency and duration |
| Static (reusable) | ✓ — is_permanent: true, BVN required | ✓ — is_permanent: true |
| BVN required | Static accounts only | No |
{
"email": "customer@example.com", "currency": "NGN", "tx_ref": "VA-NGN-001", "is_permanent": true, "bvn": "22415929481" }
{
"email": "customer@example.com", "currency": "GHS", "tx_ref": "VA-GHS-001", "amount": 500, "frequency": 5, "duration": 7 }
After creation, save the order_ref — it is the key for retrieving or updating the account via get_virtual_account and update_virtual_account.
Bill payments follow a 6-step discovery flow. Skip validate_bill_customer for airtime and mobile data.
1. get_bill_categories
↓ choose a category (e.g. UTILITYBILLS)
| Code | Description |
|---|---|
AIRTIME | Mobile airtime top-up |
MOBILEDATA | Data bundle purchase |
CABLEBILLS | Cable TV (DSTV, GOTV, StarTimes) |
INTSERVICE | Internet service subscriptions |
UTILITYBILLS | Electricity (prepaid & postpaid) |
TAX | Government tax payments |
DONATIONS | Charitable donations |
TRANSLOG | Transport / logistics |
DEALPAY | Deal payments |
RELINST | Religious institutions |
SCHPB | School / education payments |
Bill payments are available for Nigeria only (
country: NG).
Currency conversion uses a two-step quote-then-trade flow. Quotes are valid for 5 minutes and available weekdays only (Monday–Friday).
1. request_fx_quote(base_currency, target_currency, quantity)
↓ returns quote_id, status: NEW
Solo se muestra el principio; lee el resto en el repo