Skip to main content
Glama

Zambia Payments (Flutterwave — mobile money)

Server Details

Zambia payments for AI agents — mobile money 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.4/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 processing refunds. No ambiguity or overlap exists.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern (create_payment_link, query_payment_status, refund_payment) using underscores, making them predictable.

Tool Count5/5

With 3 tools, the set is lean but perfectly scoped for a payment gateway integration: create, check status, and refund. Each tool is necessary and none are redundant.

Completeness4/5

The set covers the core lifecycle: create a payment, query its status, and refund. Missing a cancel operation for unpaid links, but this is a minor gap given the scope.

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
Behavior3/5

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

Annotations already indicate destructiveHint=true and readOnlyHint=false, so the destructive nature is clear. Description adds prerequisite context but no additional behavioral traits 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 sentences, 30 words, front-loaded with action and no wasted words.

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

Completeness5/5

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

Complete for a simple tool with one parameter, good annotations, and no output schema. Covers what it does, what it needs, and how to get the required parameter.

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

Parameters5/5

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

Schema has 100% coverage with description of subscription_id. The tool description adds significant context: explains the source (query_subscription), timing (after first payment), and Flutterwave's behavior. This exceeds the schema's description.

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?

Clearly states 'Cancel a subscription so it will not renew' with specific verb and resource. Distinguishes from siblings like query_subscription by explaining the source of subscription_id.

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?

Explicitly explains how to obtain the required subscription_id via query_subscription after first payment, providing clear usage context. Does not explicitly state when not to use but the process flow is unambiguous.

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 Zambia 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
Behavior5/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true. Description adds context: queries Flutterwave directly, output semantics for paid=true, and no webhook dependency. No contradictions.

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 with no wasted words. Front-loaded with purpose, clearly structured.

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

Completeness5/5

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

For a simple read-only tool with one parameter and no output schema, the description fully explains what it does, how it works, and the meaning of the key output field. Complete.

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%, baseline 3. Description repeats the schema's parameter info but adds no new semantics beyond mentioning the parent function. Adequate but no added value.

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?

Clear verb 'Check whether' with specific resource 'Zambia payment status', distinguishes from sibling tools (create_payment_link creates, refund_payment refunds) and adds pull-based detail.

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?

Explicitly states when to use (to check payment status), pull-based mechanism, and that no webhook is needed. Could mention when not to use or alternatives like waiting for webhook, but still 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
Behavior5/5

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

The description explains the meaning of the active field and NOT_SUBSCRIBED_YET status, and mentions that the result includes subscription_id for later cancellation. This adds behavioral context beyond the readOnlyHint and openWorldHint 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: two sentences covering main purpose and status explanations, plus a note about subscription_id. It is front-loaded and every sentence adds value.

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

Completeness5/5

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

Without an output schema, the description explains key return values (active, NOT_SUBSCRIBED_YET, subscription_id) and their implications for the agent. This is complete for a read-only query tool.

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% with good descriptions. The description adds marginal value but does not significantly enhance understanding beyond the schema's parameter 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 checks a subscription created by create_subscription_link, specifying the required customer_email and optional plan_id for disambiguation. It differentiates by linking to a specific sibling tool.

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?

It provides usage context: query by email, use plan_id to disambiguate, and explains status values. It does not explicitly exclude alternatives or compare to siblings like query_payment_status, but the guidance is sufficient.

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?

Annotations already indicate destructiveHint=true, so the description adds value by specifying that refunds respect owner policy guardrails (x-agentpay-max-amount) and that the amount is checked before sending to the gateway. This provides behavioral context beyond the annotation flags.

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 (two sentences) with no wasted words. The first sentence states the purpose and scope, the second adds details on partial refunds and policy guardrails. Information is front-loaded and easy to parse.

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?

The description adequately covers the refund action, parameters, and policy constraints. However, it does not describe the return value or response format (e.g., whether it returns a confirmation or error details). With no output schema, this information would be helpful for the agent to handle the tool's result.

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?

Both parameters have schema descriptions (100% coverage). The description adds value by stating 'Full refund by default; pass amount for a partial refund where supported', clarifying the amount parameter's behavior and default. It also ties tx_ref to the same id used by query_payment_status, linking to sibling tool.

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 explicitly states 'Refund a paid payment', specifying both the action (refund) and the resource (paid payment created by create_payment_link). It clearly differentiates from sibling tools: create_payment_link creates payments and query_payment_status queries status, while this tool performs refunds.

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 indicates when to use the tool: for refunding a paid payment created by create_payment_link. It explains default full refund and optional partial refund via amount parameter. It does not explicitly state when not to use it or mention prerequisites like checking payment status first, but the context with sibling tools implies such checks.

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