From SDK to MCP server — two layers of abstraction for Moneroo
Same API. Two completely different interfaces. Two types of users.
moneroo-tools contains two packages:
packages/sdk/ → moneroo v0.1.1
packages/mcp/ → moneroo-mcp v0.4.2
Understanding why both exist means understanding two different levels of abstraction.
Layer 1 — the SDK
If you haven't read the SDK introduction yet: There was no TypeScript SDK for Moneroo →
moneroo is a TypeScript SDK. You install it in your project, you call it from your code.
import { Moneroo } from 'moneroo';
const moneroo = new Moneroo({ secretKey: process.env.MONEROO_SECRET_KEY! });
const { data } = await moneroo.payments.initialize({ amount: 5000, currency: 'XOF', ... });You write code. You control everything. It's the developer's tool.
Audience: developers integrating Moneroo into a Node.js app.
Layer 2 — the MCP server
moneroo-mcp is an MCP server — Model Context Protocol.
MCP is an open standard that lets AI assistants (Claude, Cursor, Windsurf...) use external tools. Instead of writing code to query Moneroo, you just talk:
"Show me the last 10 failed payments."
"What's this week's conversion rate compared to last week?"
"Generate a PDF report of March's transactions."
Claude calls the tools in the background. You just read the results.
Audience: developers and non-developers who want to operate Moneroo from an AI assistant.
28 tools, 6 categories
| Category | Tools |
|---|---|
| Payments (4) | list_payments, get_payment, verify_payment, create_payment_link |
| Payouts (4) | list_payouts, get_payout, create_payout, verify_payout |
| Analytics (6) | revenue report, payment methods, peak hours, conversion rate, period comparison, trends |
| Insights (5) | failure analysis, anomaly detection, churn risk, revenue prediction, optimization suggestions |
| Automations (5) | payment reminders, recurring payments, scheduled transfers, webhook alerts, alert setup |
| Exports & Reports (4) | CSV, accounting, invoice, PDF report |
Plus 3 additional MCP resources: API documentation, payment methods by country, status codes.
The link between the two
The MCP is built on top of the SDK. The 28 tools call the SDK under the hood — they don't reimplement the API calls.
Claude → calls the MCP tool → SDK → Moneroo API
All the verification logic, error handling, and typing — in the SDK, once. The MCP exposes a different interface on top of it.
That's a pnpm monorepo used well: sharing logic without duplicating it.
Setup — Claude Desktop
{
"mcpServers": {
"moneroo": {
"command": "npx",
"args": ["-y", "moneroo-mcp"],
"env": {
"MONEROO_SECRET_KEY": "sk_..."
}
}
}
}Restart Claude Desktop. The tools appear in the panel.
Also works with Cursor, Windsurf, and any MCP client compatible via stdio:
MONEROO_SECRET_KEY=sk_... npx moneroo-mcpSDK or MCP — depends on who you are and what you're doing.
The SDK: you build. The MCP: you ask.
→ See how to use the SDK in a complete payment flow: Integrating Moneroo into Next.js + Convex → moneroo-tools PR #1: feat(mcp): add moneroo CLI