cinetpay-mcp
OfficialEnables sending money to Airtel mobile money users, checking transaction status, and managing payments via the CinetPay API in supported African countries.
Enables sending money to Orange Money users, checking payment status, initiating payments, and managing transfers via the CinetPay API in supported African countries.
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., "@cinetpay-mcpWhat's the balance on the CI account?"
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.
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 account balance for a country |
| Check payment status by ID |
| Create a new payment (returns payment URL) |
| Send money to a phone number |
| Check transfer status by ID |
| List operators for a country |
| Show configured countries |
Installation
Claude Code
claude mcp add cinetpay -- npx cinetpay-mcpThen 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
Multi-country (recommended)
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_passwordSingle country
CINETPAY_API_KEY=sk_test_...
CINETPAY_API_PASSWORD=your_password
CINETPAY_COUNTRY=CI # Default: CIOptional
CINETPAY_BASE_URL=https://api.cinetpay.co # Default: auto-detected from key prefix
CINETPAY_FORCE_IPV4=true # Force IPv4 DNS resolutionEnvironments
Key prefix | API URL | Environment |
|
| Sandbox |
|
| 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 toolscheck_payment_statusB
Check the status of a CinetPay payment by transaction ID or merchant transaction ID
| Name | Required | Description | Default |
|---|---|---|---|
| country | Yes | Country code (e.g. CI, SN) | |
| identifier | Yes | Payment token, CinetPay transaction ID, or merchant transaction ID |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| country | Yes | Country code (e.g. CI, SN) | |
| transaction_id | Yes | CinetPay transaction ID of the transfer |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | Transfer amount (integer) | |
| reason | Yes | Reason for the transfer | |
| country | Yes | Country code (e.g. CI, SN) | |
| currency | Yes | Currency code: XOF, XAF, GNF, CDF, or USD | |
| notify_url | Yes | Webhook URL for transfer status notifications | |
| phone_number | Yes | Recipient phone number in international format (e.g. +2250707000001) | |
| payment_method | Yes | Mobile money operator (e.g. OM_CI, WAVE_SN, MTN_CM) | |
| merchant_transaction_id | Yes | Unique transaction ID from your system |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| country | Yes | Country code (e.g. CI, SN, CM) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | Payment amount in the smallest currency unit (integer, e.g. 1000 = 1000 XOF) | |
| channel | No | Payment channel: PUSH, OTP, or QRCODE (default: PUSH) | |
| country | Yes | Country code (e.g. CI, SN) | |
| currency | Yes | Currency code: XOF, XAF, GNF, CDF, or USD | |
| failed_url | Yes | Redirect URL after failed payment | |
| notify_url | Yes | Webhook URL for payment status notifications | |
| designation | Yes | Payment description shown to the customer | |
| success_url | Yes | Redirect URL after successful payment | |
| client_email | Yes | Customer email address | |
| client_last_name | Yes | Customer last name | |
| client_first_name | Yes | Customer first name | |
| merchant_transaction_id | Yes | Unique transaction ID from your system (max 30 chars) |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| country | Yes | Country code (e.g. CI, SN, CM, BJ) |
TDQS
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.
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.
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.
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.
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.
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.
7 tool updates
v0.1.1- First observed
check_payment_status - First observed
check_transfer_status - First observed
create_transfer - First observed
get_balance - First observed
initialize_payment - First observed
list_configured_countries - First observed
list_payment_methods
TDQS
Scored across 7 tools
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).
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.
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.
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
Related MCP Connectors
- ZapierOAuthcom.zapier
Hosted MCP server connecting AI assistants to 9,000+ apps and 40,000+ actions via Zapier.
MCP server connecting AI agents to 100+ apps (Gmail, Slack, Notion, GitHub) via one-click OAuth.
MCP server for Pixapi: check live credit pricing and balance, then generate images and video.
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceAn MCP server that enables AI assistants to interact with Flutterwave payment services, providing tools for transaction management, payment link generation, and automated customer support.394TypeScriptMIT

PayLink MCP Serverofficial
FlicenseNot gradedqualityDmaintenanceOpen-source MCP server that streamlines payment integration for AI agents and financial apps in Africa, providing unified tools for providers like M-Pesa.1-- AlicenseAqualityDmaintenanceMCP server for the Monei API that gives AI agents access to wallets, transfers, crypto sends, swaps, offramp, and bill payments through natural language.2416MIT
- AlicenseNot gradedqualityCmaintenanceAn 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