Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add Tahsine/momo-mcp --skill momo-paymentsgit clone --depth 1 https://github.com/Tahsine/momo-mcpWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/tahsine/momo-mcp/momo-payments)<a href="https://agentmods.dev/skills/tahsine/momo-mcp/momo-payments"><img src="https://agentmods.dev/badge/skills/tahsine/momo-mcp/momo-payments/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/tahsine/momo-mcp/momo-payments"><img src="https://agentmods.dev/badge/skills/tahsine/momo-mcp/momo-payments.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00146 | $0.02645 |
| Opus 5.5 | $0.00058 | $0.01058 |
| Sonnet 5.5 | $0.00029 | $0.00529 |
| Haiku 4.5 | $0.00015 | $0.00265 |
Grade A, and why
momo-payments scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 202 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Mobile Money payments with momo-mcp
This skill teaches you how to drive the momo-mcp MCP server: a single integration
to collect and send Mobile Money payments on MTN MoMo across 12 African markets.
Prerequisite
The momo-mcp MCP server must be installed and configured (API keys in its .env).
Setup instructions: https://github.com/Tahsine/momo-mcp. This skill assumes its four
tools are already available to you.
The 4 tools
| Tool | Use it to |
|---|---|
request_payment |
Collect money from a customer (request-to-pay). Customer confirms with their PIN. |
disburse_payment |
Send money to someone (refund, salary, payout). Fund outflow — annotated destructiveHint. |
check_payment_status |
Read the final status of a payment or transfer. |
validate_account |
Check a number has an active Mobile Money account before paying it. |
All tools return a JSON dict. Success → {"ok": true, ...}. Failure → {"ok": false, "error": {...}}
(never a raw exception — see Errors). You must inspect ok before acting on the result.
Core flow: collecting a payment
request_payment is asynchronous. It returns immediately with status: "PENDING" and
a reference_id; the customer then confirms with their PIN on their phone. You must
poll check_payment_status to learn the outcome.
request_payment(phone_number, amount, currency, external_id, country)
-> {"ok": true, "reference_id": "...", "status": "PENDING", ...}
(customer confirms with PIN — seconds to minutes)
check_payment_status(reference_id, kind="collection", country)
-> status: "PENDING" | "SUCCESSFUL" | "FAILED"
Rules of thumb:
- Never tell the user a payment succeeded right after
request_payment— it is onlyPENDING. - Poll with
check_payment_statusuntil the status isSUCCESSFULorFAILED. Space calls out (e.g. every 5–10s); do not hammer the endpoint. - When sending money out, set
kind="disbursement". With the defaultkind="auto", the server tries collection then disbursement (one extra round-trip on 404). - Pass the same
countrytocheck_payment_statusas you used when creating the payment.
What ships with it
2 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- yesterday First seen · 202 lines · 146 tokens per session scan A caacb7e88b65
momo-payments is a skill published in the GitHub repository Tahsine/momo-mcp (1 stars, last pushed yesterday), licensed MIT. It adds 146 tokens to every session and 2,645 once invoked, about $0.0006 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-10-19.
Other skills, from other repositories
agentpay-vn
Collect VietQR bank-transfer payments from Vietnamese users inside an agent conversation. Use when the agent must charge money, take a deposit, sell a digital good, or gate delivery on payment, and the payer is in Vietnam (VND, bank transfer / QR). Generates a QR code, confirms settlement from the bank feed, and tells…
agentrisk
Pre-trade risk guardrails. Use before submitting, placing, changing, or canceling any trade or order through Robinhood MCP, Alpaca MCP, a broker API, or any custom execution tool. Every proposed trade goes through an AgentRisk risk check, and execution is gated on the verdict.
investment-decision
Run a clawock investment decision — read the prepared request, research with the host's own tools, write decision.json with evidence and an explicit bull/bear debate, and let Python validate and settle. Use when the user asks for an investment decision or a clawock run request is present.
Trading
Trading analysis and education. Technical analysis, chart patterns, risk management, and position sizing for stocks, forex, and crypto.
stripe
Query and manage Stripe resources (customers, payments, subscriptions). Reads from apps/website/.env. Write operations blocked on live keys.
sparebank1-accounts
Read accounts, balances, and transactions with the sb1 CLI (SpareBank 1). List accounts and totals, look up balances, browse and filter transactions by date/account, inspect a single transaction, and export to CSV. Use when a user wants to see their Norwegian bank balances, spending, recent transactions, or wants…