Skip to main content
Glama
cinetpay

cinetpay-mcp

Official
by cinetpay

cinetpay-mcp

MCP Server for CinetPay — integrate mobile money payments into Claude, Cursor, and any MCP-compatible AI assistant.

What it does

This MCP server connects your AI assistant to the CinetPay API, enabling natural language interactions with mobile money payments across Africa.

Ask your assistant:

  • "What's the balance on the CI account?"

  • "Check the status of payment ORDER-12345"

  • "Initialize a payment of 5000 XOF for customer jean@email.com"

  • "Send 1000 XOF to +2250707000001 via Orange Money"

  • "What payment methods are available in Senegal?"

Related MCP server: PayLink MCP Server

Available Tools

Tool

Description

get_balance

Get account balance for a country

check_payment_status

Check payment status by ID

initialize_payment

Create a new payment (returns payment URL)

create_transfer

Send money to a phone number

check_transfer_status

Check transfer status by ID

list_payment_methods

List operators for a country

list_configured_countries

Show configured countries

Installation

Claude Code

claude mcp add cinetpay -- npx cinetpay-mcp

Then set your environment variables in .claude/settings.json:

{
  "mcpServers": {
    "cinetpay": {
      "command": "npx",
      "args": ["cinetpay-mcp"],
      "env": {
        "CINETPAY_API_KEY_CI": "sk_test_...",
        "CINETPAY_API_PASSWORD_CI": "your_password"
      }
    }
  }
}

Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "cinetpay": {
      "command": "npx",
      "args": ["cinetpay-mcp"],
      "env": {
        "CINETPAY_API_KEY_CI": "sk_test_...",
        "CINETPAY_API_PASSWORD_CI": "your_password"
      }
    }
  }
}

Cursor

Add to .cursor/mcp.json:

{
  "mcpServers": {
    "cinetpay": {
      "command": "npx",
      "args": ["cinetpay-mcp"],
      "env": {
        "CINETPAY_API_KEY_CI": "sk_test_...",
        "CINETPAY_API_PASSWORD_CI": "your_password"
      }
    }
  }
}

Configuration

Environment Variables

Set credentials per country using the pattern CINETPAY_API_KEY_{COUNTRY} / CINETPAY_API_PASSWORD_{COUNTRY}:

# Côte d'Ivoire
CINETPAY_API_KEY_CI=sk_test_...
CINETPAY_API_PASSWORD_CI=your_password

# Sénégal
CINETPAY_API_KEY_SN=sk_test_...
CINETPAY_API_PASSWORD_SN=your_password

# Cameroun
CINETPAY_API_KEY_CM=sk_live_...
CINETPAY_API_PASSWORD_CM=your_password

Single country

CINETPAY_API_KEY=sk_test_...
CINETPAY_API_PASSWORD=your_password
CINETPAY_COUNTRY=CI  # Default: CI

Optional

CINETPAY_BASE_URL=https://api.cinetpay.co  # Default: auto-detected from key prefix
CINETPAY_FORCE_IPV4=true                    # Force IPv4 DNS resolution

Environments

Key prefix

API URL

Environment

sk_test_...

https://api.cinetpay.net

Sandbox

sk_live_...

https://api.cinetpay.co

Production

The server auto-detects the environment from your API key prefix.

Supported Countries

Country

Code

Operators

Côte d'Ivoire

CI

Orange Money, Moov, MTN, Wave

Sénégal

SN

Orange Money, Free, Expresso, Wave

Cameroun

CM

Orange Money, MTN

Burkina Faso

BF

Orange Money, Moov, Wave

Mali

ML

Orange Money, Moov

Togo

TG

Moov, TMoney

Guinée

GN

Orange Money, MTN

Bénin

BJ

Moov, MTN

RD Congo

CD

Orange Money, Airtel, M-Pesa, Africell

Niger

NE

Airtel, Moov, Zamani

Security

  • API credentials are read from environment variables only — never hardcoded

  • The server uses the cinetpay-js SDK with all its security features:

    • HTTPS enforcement

    • Credential sanitization in logs

    • ES2022 private fields

    • Environment mismatch detection

  • Each user runs their own MCP server instance with their own credentials

Support

For CinetPay API questions: support@cinetpay.com

License

MIT

Available Tools

7 tools
check_payment_statusB

Check the status of a CinetPay payment by transaction ID or merchant transaction ID

ParametersJSON Schema
NameRequiredDescriptionDefault
countryYesCountry code (e.g. CI, SN)
identifierYesPayment token, CinetPay transaction ID, or merchant transaction ID

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

There are no annotations, so the description carries the full disclosure burden. It only states the action, without mentioning whether this is read-only, what the response contains, error behavior, or authentication needs. 'Check' weakly implies a read operation but does not disclose behavioral traits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no fluff or repetition. Every word adds meaning, and the core purpose is immediately actionable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple status-check tool with two documented parameters, the description is minimally adequate, but it omits usage context vs. check_transfer_status and does not describe the return format or edge cases. Given the absence of an output schema and annotations, a slightly richer description would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents both parameters. The description adds the phrase 'transaction ID or merchant transaction ID,' but it merely paraphrases the identifier parameter's schema description, contributing little extra semantic value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('check') and identifies the resource ('status of a CinetPay payment'), while specifying the acceptable identifiers. It is clear, though it does not explicitly name or distinguish itself from the sibling check_transfer_status beyond the payment/transfer contrast.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given about when to use this tool versus alternatives, such as check_transfer_status, or about any required sequence like initializing a payment first. The agent must infer use from the tool name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_transfer_statusB

Check the status of a CinetPay money transfer

ParametersJSON Schema
NameRequiredDescriptionDefault
countryYesCountry code (e.g. CI, SN)
transaction_idYesCinetPay transaction ID of the transfer

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. The verb 'Check' implies a read-only operation, but the description does not mention response format, authentication requirements, or any potential side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence with no filler or redundant wording. It is appropriately concise for a simple status-checking tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with only two fully documented parameters, the description is adequate but minimal. It lacks any clarification of expected response or how to distinguish it from 'check_payment_status', leaving some ambiguity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema covers both parameters with descriptions, including the country enum and transaction_id purpose. The tool description adds no semantic value beyond what the schema already provides, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific action ('Check') and resource ('status of a CinetPay money transfer'), making the basic purpose obvious. However, it does not differentiate this from the sibling 'check_payment_status', which could be easily confused.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance about when to use this tool versus alternatives like 'check_payment_status' or 'create_transfer'. The usage is only implied by the tool name and description, with no explicit conditions or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_transferC

Send money to a mobile money phone number via CinetPay

ParametersJSON Schema
NameRequiredDescriptionDefault
amountYesTransfer amount (integer)
reasonYesReason for the transfer
countryYesCountry code (e.g. CI, SN)
currencyYesCurrency code: XOF, XAF, GNF, CDF, or USD
notify_urlYesWebhook URL for transfer status notifications
phone_numberYesRecipient phone number in international format (e.g. +2250707000001)
payment_methodYesMobile money operator (e.g. OM_CI, WAVE_SN, MTN_CM)
merchant_transaction_idYesUnique transaction ID from your system

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries the full burden of behavioral disclosure. It reveals only that money is sent; it does not disclose that the operation is a tracked transfer identified by merchant_transaction_id, that results arrive asynchronously via notify_url, that it debits a balance, or whether it is idempotent. For a write tool moving real funds, this is a material gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with zero filler; the core action and target appear immediately. It is appropriately minimal, though the brevity is partly responsible for the behavioral gaps noted in other dimensions.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with 8 required parameters, no annotations, and no output schema, the one-sentence description is insufficient. An agent cannot infer how to select payment_method, whether execution is synchronous or webhook-driven, what the response signals, or what the country=CI restriction implies operationally. The schema covers parameter syntax but not the surrounding context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with every parameter documented and two enums constraining country and currency. The description adds no parameter-level meaning beyond the schema, which is acceptable given full coverage—baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (send), resource (money to a mobile money phone number), and channel (CinetPay). The payout framing clearly separates it from the read-only and listing siblings (get_balance, check_transfer_status, list_payment_methods). It does not explicitly contrast with initialize_payment, the closest potential confusable, but the 'send money to a phone number' description makes the distinction mostly evident.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus initialize_payment, which could plausibly be mistaken for a money-moving operation. No prerequisites are mentioned (funded balance, configured country, supported operators), and no exclusions or alternative routing are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_balanceA

Get the available balance of a CinetPay merchant account for a specific country

ParametersJSON Schema
NameRequiredDescriptionDefault
countryYesCountry code (e.g. CI, SN, CM)

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It clearly identifies this as a read-style operation, but it does not mention response format, potential errors, or whether the balance is currency-specific. It adds basic transparency but no deeper behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence with no filler. Every word contributes meaning: the action, the resource, the account type, and the scoping variable are all present and immediately understandable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter read-only tool, the description plus schema is mostly sufficient: the agent knows what action to take and what parameter to pass. The main gap is the absence of any indication of the returned balance format or units, but this is not critical for invoking the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents the country parameter and its enum. The description reinforces that country is the scoping dimension but does not add meaningful semantic detail beyond the schema, such as how the country affects the balance result or accepted value formats.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action ('Get'), a clear resource ('available balance of a CinetPay merchant account'), and a scoping dimension ('for a specific country'). It clearly distinguishes this from the sibling tools, which are about payments, transfers, and method/country listing rather than balance retrieval.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is used when a merchant balance is needed for a country, but it does not explicitly state when to use it versus alternatives or when not to use it. No sibling tool is mentioned, so an agent must infer the selection from the sibling names.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

initialize_paymentB

Initialize a new CinetPay web payment. Returns a payment URL to redirect the customer to.

ParametersJSON Schema
NameRequiredDescriptionDefault
amountYesPayment amount in the smallest currency unit (integer, e.g. 1000 = 1000 XOF)
channelNoPayment channel: PUSH, OTP, or QRCODE (default: PUSH)
countryYesCountry code (e.g. CI, SN)
currencyYesCurrency code: XOF, XAF, GNF, CDF, or USD
failed_urlYesRedirect URL after failed payment
notify_urlYesWebhook URL for payment status notifications
designationYesPayment description shown to the customer
success_urlYesRedirect URL after successful payment
client_emailYesCustomer email address
client_last_nameYesCustomer last name
client_first_nameYesCustomer first name
merchant_transaction_idYesUnique transaction ID from your system (max 30 chars)

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry the behavioral burden. It discloses that the tool creates a new payment session and returns a redirect URL, which is a concrete side-effect and output. However, it does not mention whether funds are captured immediately, how webhooks/notifications behave, idempotency around merchant_transaction_id, or response structure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, each informative: the operation and the returned redirect URL. No filler or redundancy. The key output is front-loaded in the second sentence. Well structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 12-parameter payment tool with no output schema, the description states the essential flow (initialize payment → get URL → redirect customer) but lacks response format details, lifecycle context (e.g., status checking via check_payment_status), and side-effect expectations. The schema covers parameters well, but the absence of any output schema or error/edge-case information leaves clear gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already covers all 12 parameters with descriptions (100% coverage), so the description does not need to add parameter details. It adds no parameter semantics, but the baseline of 3 applies since the schema carries the burden. No additional value beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Initialize' and the resource 'a new CinetPay web payment,' and specifies the key output (a payment URL for redirecting the customer). It is distinguishable from siblings like check_payment_status and create_transfer by its focus on starting a web payment, though it does not explicitly name any alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives such as create_transfer or check_payment_status. It does not state prerequisites, exclusions, or conditions that would route an agent to a sibling. This is a missing usage-guideline layer.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_configured_countriesA

List countries configured with API credentials in this MCP server

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the behavioral disclosure burden. It does disclose the key semantic — it lists only countries with API credentials configured, implying a read-only inspection of server configuration. However, it does not say whether the list reflects static configuration or live credential validation, nor what happens when no countries are configured. Adequate but minimal for a zero-param read-only tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, well-constructed sentence that conveys the resource, the selection criterion, and the scope with zero wasted words. The key information is front-loaded and nothing extraneous is included.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a parameterless list tool with no output schema, the description tells an agent what it will get (countries with configured API credentials) and the scope (this MCP server). The only minor gap is the lack of any hint about the return format — e.g., country codes, names, or objects — which would be nice given no output schema exists.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, and per the rubric the baseline is 4. The description correctly implies the tool needs no arguments; the empty schema requires no additional explanation. Nothing about parameters is missing.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Uses a specific verb and resource: 'List countries configured with API credentials in this MCP server.' It clearly distinguishes from payment-focused siblings like get_balance, create_transfer, and initialize_payment. Even without opening the schema, an agent knows exactly what this tool returns.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use or when-not-to-use statement, but the context is unmistakable: it is the only discovery/list tool among payment and transfer operations. The intended use — checking which countries are supported/configred before initiating payments — is clearly implied by the description, though no exclusions or alternatives are named.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_payment_methodsA

List available mobile money payment methods (operators) for a given country

ParametersJSON Schema
NameRequiredDescriptionDefault
countryYesCountry code (e.g. CI, SN, CM, BJ)

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the transparency burden. 'List' implies a read-only, non-mutating operation, which is a useful behavioral signal. However, it does not mention response format, possible empty results, or any other operational details beyond the listing action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, well-structured sentence states the action, object, and scope without any filler. It is front-loaded and immediately parseable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter list operation, the description is nearly complete. Since there is no output schema, a mention of what the returned list contains (e.g., operator codes or names) would make it fully self-sufficient, but the core usage is clear.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There is only one parameter, country, and the schema already fully documents it with an enum and examples. The description adds no new meaning beyond restating that the tool works 'for a given country,' so the schema-driven baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('List'), names the exact resource ('available mobile money payment methods (operators)'), and scopes it by country. This clearly differentiates it from siblings like get_balance, initialize_payment, and list_configured_countries.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description makes its usage context clear: use it when you need available payment methods for a specific country. It does not explicitly list alternatives or exclusions, but the purpose is specific enough that an agent can infer when to select it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 7 tool updatesv0.1.1
    • First observedcheck_payment_status
    • First observedcheck_transfer_status
    • First observedcreate_transfer
    • First observedget_balance
    • First observedinitialize_payment
    • First observedlist_configured_countries
    • First observedlist_payment_methods

TDQS

A3.7/5.0

Scored across 7 tools

Disambiguation5/5

Each tool targets a distinct resource and action: balance, transfer status, payment status, payment initialization, transfer creation, and listing operations. The two status-checking tools are clearly separated by transaction type (payment vs transfer).

Naming Consistency5/5

All tool names follow a consistent verb_noun snake_case pattern: get_, check_, initialize_, create_, list_. The verbs and nouns are predictable and match the operation performed.

Tool Count5/5

Seven tools is well-scoped for a payment-focused MCP server. Each tool covers a necessary aspect of the payment/transfer lifecycle without bloat or redundancy.

Completeness4/5

The core lifecycle is covered: initialize payment, check payment status, create transfer, check transfer status, get balance, and list required configuration/methods. Minor gaps exist such as refund/cancel operations, but agents can likely complete typical payment flows.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    An MCP server that enables AI assistants to interact with Flutterwave payment services, providing tools for transaction management, payment link generation, and automated customer support.
    39
    4
    TypeScript
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Open-source MCP server that streamlines payment integration for AI agents and financial apps in Africa, providing unified tools for providers like M-Pesa.
    1
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    An MCP server for Mobile Money in Francophone West Africa that enables AI agents to make payments via MTN MoMo (sandbox) using tools like request_payment, check_payment_status, and disburse_payment.
    MIT