Skip to main content
Glama

Senegal Payments (Flutterwave — Orange Money / Wave)

Server Details

Senegal payments for AI agents — Orange Money / Wave via Flutterwave. Never holds funds.

Status
Unhealthy
Last Tested
Transport
Streamable HTTP
URL

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.3/5 across 3 of 3 tools scored.

Server CoherenceA
Disambiguation5/5

Each tool has a clearly distinct purpose: creating a payment link, querying payment status, and refunding a payment. There is no overlap or ambiguity between the three operations.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern (create_payment_link, query_payment_status, refund_payment), making them predictable and easy to understand.

Tool Count5/5

Three tools is appropriate for a focused payments server, covering the essential operations without unnecessary bloat or missing core functionality.

Completeness4/5

The tool set covers the key lifecycle of a payment: creation, status querying, and refund. A minor gap is the lack of a cancel or void operation for unpaid links, but the core workflows are well-covered.

Available Tools

6 tools
cancel_subscriptionA
DestructiveIdempotent
Inspect

Cancel a subscription so it will not renew. Requires the subscription_id, which you get from query_subscription (Flutterwave does not expose it at creation time — the buyer must complete the first payment, then query_subscription returns it).

ParametersJSON Schema
NameRequiredDescriptionDefault
subscription_idYesThe subscription_id returned by query_subscription
Behavior4/5

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

Annotations indicate destructiveHint=true and idempotentHint=true; the description adds context about the subscription lifecycle (first payment, then query_subscription). This explains the behavioral constraint of needing a subscription_id from a specific source, going beyond annotations.

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, focused sentences. First sentence states the purpose, second explains the prerequisite. No unnecessary words, front-loaded with the action.

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 tool with one parameter and no output schema, the description covers the essential: purpose, parameter prerequisite, and workflow. It does not describe success/failure behavior, but annotations fill idempotency. Nearly complete.

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?

Schema coverage is 100% with a clear description for subscription_id. The tool description reinforces this and adds workflow context (why it must come from query_subscription). While no new format details, the additional context improves understanding.

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 clearly states the action ('Cancel a subscription') and the result ('so it will not renew'). It also explains the prerequisite for the parameter, distinguishing it from sibling tools like create_subscription_link or query_subscription.

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

Usage Guidelines5/5

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

The description explicitly specifies when to use this tool (after the first payment is complete and the subscription_id is obtained from query_subscription) and implies when not to use it (without the subscription_id). It names the prerequisite tool, providing clear usage guidance.

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

query_payment_statusA
Read-only
Inspect

Check whether a Senegal payment (created by create_payment_link) has been paid. Queries Flutterwave directly — pull-based, no webhook needed. paid=true when status is PAID.

ParametersJSON Schema
NameRequiredDescriptionDefault
tx_refYesThe tx_ref returned by create_payment_link
Behavior4/5

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

Discloses direct query to Flutterwave, pull-based, no webhook. States paid=true condition (status PAID). Annotations confirm readOnlyHint, openWorldHint; description adds behavioral detail beyond.

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?

Three concise, front-loaded sentences. No filler, every sentence adds unique value.

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?

Adequately covers purpose, parameter source, and behavior. Lacks mention of error cases or response format, but acceptable given simplicity and no output schema.

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?

Schema describes tx_ref as 'returned by create_payment_link'. Description explicitly mentions origin, linking to sibling. Schema coverage 100% so baseline 3; adds value via context.

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?

Description states exact purpose: check whether a Senegal payment (created by create_payment_link) has been paid. Verb 'check' with resource 'payment status' is clear. Sibling tools (create, refund) differentiate by action.

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?

Indicates pull-based polling vs webhook, implying when to use. Could explicitly state not for creating/refunding, but context of siblings makes it clear.

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

query_subscriptionA
Read-only
Inspect

Check a subscription created by create_subscription_link. Query by customer_email (required); pass plan_id (returned at creation) to disambiguate when the same email has several plans. active=true when the subscription status is ACTIVE; NOT_SUBSCRIBED_YET means the buyer has not completed the first payment yet. The result includes subscription_id — keep it to cancel later.

ParametersJSON Schema
NameRequiredDescriptionDefault
plan_idNoOptional plan_id returned by create_subscription_link (disambiguates multiple subscriptions on the same email).
customer_emailYesThe buyer email used in create_subscription_link
Behavior4/5

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

Annotations indicate readOnlyHint=true and openWorldHint=true. The description reinforces that the tool is a read operation by stating 'Check a subscription.' It also describes status values (ACTIVE vs NOT_SUBSCRIBED_YET) and the resulting subscription_id, adding behavioral context beyond annotations.

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 concise (3-4 sentences), front-loaded with the core purpose, and avoids extraneous information. Every sentence serves a clear function: purpose, parameter guidance, status explanation, and output hint.

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?

Given no output schema, the description adequately covers expected outputs (active flag, subscription_id) and provides next-step guidance ('keep it to cancel later'). It is complete for a read-only tool with moderate complexity.

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?

Schema coverage is 100%, so baseline is 3. The description adds value by explaining the purpose of plan_id ('disambiguate when the same email has several plans') and that customer_email is required and tied to create_subscription_link, going beyond the schema's descriptions.

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 clearly states the tool's purpose: 'Check a subscription created by create_subscription_link.' It specifies the required parameter (customer_email) and optional plan_id for disambiguation, effectively distinguishing it from sibling tools like cancel_subscription and create_subscription_link.

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 provides context on when to use the tool (after creating a subscription link) and how to handle disambiguation. It does not explicitly list when not to use it or alternatives, but the sibling names are provided separately, reducing the need.

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

refund_paymentA
Destructive
Inspect

Refund a paid payment (created by create_payment_link). Full refund by default; pass amount for a partial refund where supported. Refunds respect the same owner policy guardrails (x-agentpay-max-amount) as payments — the amount is checked before anything is sent to the gateway.

ParametersJSON Schema
NameRequiredDescriptionDefault
amountNoOptional partial-refund amount in the local currency major unit. Omit for a full refund.
tx_refYesThe tx_ref of the paid payment (same id used by query_payment_status)
Behavior4/5

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

Beyond annotations (destructiveHint=true), description discloses that refunds respect owner policy guardrails and that partial refund support varies. No contradiction with annotations.

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?

Three sentences with no extraneous words. First sentence states core purpose immediately. Highly concise and well-structured.

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?

Covers purpose, parameter usage, and behavioral guardrails. Lacks details on errors or return values, but tool is simple (2 params, no output schema). Adequate for expected use.

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 coverage is 100%, so baseline 3. Description reinforces schema by explaining default and 'where supported' nuance, adding moderate value beyond schema definitions.

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?

Description clearly states the verb 'Refund' and resource 'paid payment', and distinguishes from siblings (create_payment_link, query_payment_status). It specifies the default full refund and optional partial refund.

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?

Provides clear guidance on when to use (refunding a paid payment) and how to use parameters (full vs. partial). Mentions guardrails and gateway checks. Lacks explicit exclusion of alternatives, but context with siblings makes it clear.

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

Discussions

No comments yet. Be the first to start the discussion!

Try in Browser

Your Connectors

Sign in to create a connector for this server.

Resources