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 theYahia/WWmcp --skill verify-webhookgit clone --depth 1 https://github.com/theYahia/WWmcpWrote 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/theyahia/wwmcp/verify-webhook)<a href="https://agentmods.dev/skills/theyahia/wwmcp/verify-webhook"><img src="https://agentmods.dev/badge/skills/theyahia/wwmcp/verify-webhook/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/theyahia/wwmcp/verify-webhook"><img src="https://agentmods.dev/badge/skills/theyahia/wwmcp/verify-webhook.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
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.00017 | $0.00424 |
| Opus 5 | $0.00009 | $0.00212 |
| Sonnet 5 | $0.00003 | $0.00085 |
| Haiku 4.5 | $0.00002 | $0.00042 |
Grade A, and why
verify-webhook 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 6d ago.
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.
What it actually says
/verify-webhook — Webhook validation
Algorithm
- Take order_id, amount and pay_token out of the webhook payload the user received. Never act on the payload's status field alone — that field is attacker-controllable if the notif_url is reachable from the internet.
- Call
validate_webhookwith order_id, amount and pay_token. This re-queries Orange Money's transactionstatus endpoint, so the answer comes from Orange, not from the payload. - Compare the authoritative status to what the payload claimed. If they differ, treat the payload as forged and say so loudly.
- Compare the amount to the order total on the user's side. A matching order_id with a smaller amount is the classic underpayment attack.
- If anything is inconclusive, call
get_payment_statuswith the same three fields for a second read before releasing goods.
Response format
## Webhook validation — CMD-2026-0142
| Field | Payload said | Orange says |
|-------|--------------|-------------|
| status | SUCCESS | SUCCESS |
| amount | 15,000 XOF | 15,000 XOF |
**Verdict**: VALID — safe to fulfil.
Notes
- A mismatch verdict means do not fulfil. Say that plainly rather than hedging.
- Orange Money retries notifications; the same order_id arriving twice is normal. Fulfilment must be idempotent on order_id.
- This tool proves the transaction state. It does not prove the request came from Orange — that is why re-querying rather than signature-checking is the pattern here.
Examples
/verify-webhook CMD-2026-0142 15000 abc123token
/verify-webhook ORDER-88 5000 xyz789token
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.
- 6d ago First seen · 50 lines · 17 tokens per session scan A f0553610f787
verify-webhook is a skill published in the GitHub repository theYahia/WWmcp (29 stars, last pushed 5d ago), licensed MIT. It adds 17 tokens to every session and 424 once invoked, about $0.0001 per session on Opus 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-09-06.
Other skills, from other repositories
brc-products
Fetch Brainrot Creations products for contextual promotion.
lemonsqueezy-tier-setup
Discovers and verifies the subscription tier structure of a Lemon Squeezy store and emits the .env lines and a summary table needed to wire it into your app. Use when the user says "tier setup", "set up subscription tiers in Lemon Squeezy", "verify my Lemon Squeezy tiers", "match variants to my config", or after…
lemonsqueezy
Operate Lemon Squeezy — the Merchant of Record for digital products and SaaS — via its JSON:API REST endpoints. Covers stores, products, variants, checkouts, orders, subscriptions, customers, and license keys. Use when the user wants MoR billing (EU VAT, chargebacks, sales tax all handled for 5% + fees) instead of…
javascript-typescript
Professional JavaScript and TypeScript development skill covering modern ES6+, TypeScript, Node.js, Express, React, testing frameworks, and best practices. Use this skill when developing JavaScript/TypeScript applications, building React/Node.js projects, implementing RESTful APIs, or need guidance on modern JS/TS…
product-price-monitor
Watch product, flight, or listing prices; alert on target.
okx-cex-trade
Use when the user asks to 'buy BTC', 'sell ETH', 'place a limit order', 'place a market order', 'cancel my order', 'amend my order', 'long BTC perp', 'short ETH swap', 'open a position', 'close a position', 'set take profit', 'limit take profit', 'immediate TP', 'set stop loss', 'self-trade prevention', 'stpMode'…