io.github.vrllrv/junto-mcp
The payment protocol for people and agents. One MCP server, any payment rail.
Ask AI about io.github.vrllrv/junto-mcp
Powered by Claude Β· Grounded in docs
I know everything about io.github.vrllrv/junto-mcp. Ask me about installation, configuration, usage, or troubleshooting.
0/500
Reviews
Documentation
Junto
The payment protocol for people and agents.
Send and receive money through any AI assistant. Any payment rail. Built-in guardrails.
Named after Benjamin Franklin's Junto β a society of tradesmen who built civic infrastructure together. Different providers, same table, mutual benefit.
Why
AI assistants are starting to move real money β paying invoices, splitting bills, sending transfers. But every payment provider has a different API, different auth, different settlement times. Nobody should have to teach their assistant how Pix works vs Stripe vs Wise.
Junto fixes that with one MCP server that:
- Exposes a universal payment toolkit to any MCP-compatible client (Claude, Cursor, custom agents)
- Routes to the right provider based on currency, country, and rail
- Enforces spending limits so agents can't go rogue
- Supports human-in-the-loop confirmation for high-value transactions
- Logs every action for audit and accountability
Tools
| Tool | Description |
|---|---|
pay | Send money to a destination (Pix key, email, IBAN, etc.) |
charge | Create a payment request / invoice / QR code |
status | Check payment status by correlation ID |
refund | Reverse a completed transaction |
balance | Check available funds on a provider |
providers | List configured providers and their capabilities |
limits | Show spending limits and today's usage |
Quick Start
npm install -g junto-mcp
Set your provider API key:
export WOOVI_APP_ID="your-woovi-app-id"
Run:
junto-mcp
Add to Claude Desktop or Cursor
{
"mcpServers": {
"junto": {
"command": "npx",
"args": ["-y", "junto-mcp"],
"env": {
"WOOVI_APP_ID": "your-woovi-app-id"
}
}
}
}
That's it. Your AI assistant now has payment tools.
Guardrails
All amounts are in cents (smallest currency unit).
| Setting | Env Var | Default | Meaning |
|---|---|---|---|
| Daily limit | JUNTO_DAILY_LIMIT | 50000 (R$500) | Max total spend per day |
| Per-tx max | JUNTO_PER_TX_MAX | 20000 (R$200) | Max single transaction |
| Confirm above | JUNTO_CONFIRM_ABOVE | 5000 (R$50) | Ask human before sending |
| Allowed providers | JUNTO_ALLOWED_PROVIDERS | (all) | Comma-separated allowlist |
| Allowed destinations | JUNTO_ALLOWED_DESTINATIONS | (all) | Comma-separated type allowlist |
When an agent tries to send above the JUNTO_CONFIRM_ABOVE threshold, the server pauses and returns a confirmation prompt. The agent must relay this to the user and get approval before proceeding.
β οΈ Confirmation required
Amount: BRL 150.00
To: maria@email.com
Reason: Amount (15000 cents) exceeds confirmation threshold (5000 cents)
Please confirm with the user before proceeding.
Architecture
βββββββββββββββββββββββββββββββββββββββ
β MCP Client (Claude, Cursor, etc.) β
ββββββββββββββββ¬βββββββββββββββββββββββ
β MCP Protocol (stdio)
ββββββββββββββββΌβββββββββββββββββββββββ
β junto-mcp β
β β
β βββββββββββββ ββββββββββββββββββ β
β β Router β β Guardrails β β
β β (picks β β (spend caps, β β
β β provider) β β HITL confirm, β β
β β β β audit log) β β
β βββββββ¬ββββββ ββββββββββββββββββ β
β β β
β βββββββΌββββββββββββββββββββββββββ β
β β Provider Adapters β β
β β ββββββββββ ββββββββ ββββββ β β
β β β Woovi β βStripeβ βWiseβ β β
β β ββββββββββ ββββββββ ββββββ β β
β βββββββββββββββββββββββββββββββββ β
β β
β βββββββββββββββββββββββββββββββββ β
β β Audit Ledger (JSONL) β β
β βββββββββββββββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββ
Providers
| Provider | Region | Rails | Status |
|---|---|---|---|
| Woovi/OpenPix | Brazil | Pix | π’ Shipped |
| Belvo | Brazil | Open Finance (all banks) | π‘ Next |
| Stripe | Global | Cards, ACH, SEPA | π‘ Next |
| Wise | Global | Bank transfers | π΄ Planned |
| Mercado Pago | LATAM | Pix, Cards | π΄ Planned |
| PayPal | Global | Email-based | π΄ Planned |
Why Woovi/Pix first?
- Pix settles instantly (perfect for demos and real use)
- Brazil's Central Bank mandates open APIs for payments
- 180M+ Pix users, 80B+ transactions in 2025
- Pix AutomΓ‘tico (launched June 2025) enables recurring payments
- Low fees, no intermediaries
Demo
You: "Pay R$25 to maria@email.com via Pix"
Agent: I'll send the following payment:
Amount: R$ 25,00
To: maria@email.com (Pix)
Via: Woovi
Shall I go ahead?
You: "Yes"
Agent: Done! Payment sent.
Amount: R$ 25,00
To: maria@email.com
Via: Pix (Woovi)
Status: Completed
ID: junto-1739612345-a1b2c3
Adding a Provider
Each provider is a single file implementing the PaymentProvider interface:
// src/providers/your-provider.ts
import { PaymentProvider } from "../types.js";
export class YourProvider implements PaymentProvider {
name = "your-provider";
supportedCurrencies = ["USD"];
supportedRails = ["card"];
settlementTime = "1-3 days";
async pay(req) { /* send money */ }
async charge(req) { /* create invoice */ }
async status(id) { /* check status */ }
async refund(id) { /* reverse payment */ }
async balance() { /* check funds */ }
info() { /* return capabilities */ }
}
Copy src/providers/_template.ts to get started, then register your provider in src/index.ts.
Testing
npm test
Runs guardrail tests covering: amount limits, daily budget tracking, confirmation thresholds, provider allowlists, and destination type filtering.
Audit Log
Every transaction is logged to ~/.junto/audit-YYYY-MM-DD.jsonl:
{
"timestamp": "2026-02-15T14:32:07Z",
"type": "payment",
"action": "pay",
"tool": "pay",
"amount": 2500,
"currency": "BRL",
"provider": "woovi",
"destination": "maria@email.com",
"status": "executed"
}
Roadmap
- Core MCP server with universal tool interface
- Woovi/OpenPix provider (Pix)
- Guardrails (daily limits, per-tx max, HITL confirmation)
- Audit ledger
- junto-skill (Claude behavioral layer)
- Belvo provider (Open Finance β all Brazilian banks)
- Stripe provider (Cards, ACH, SEPA)
- junto-approve (Telegram/WhatsApp confirmation for HITL)
- junto-dashboard (web UI for tx history and limits)
- junto-compute (agent-to-agent budget delegation)
- AP2 compatibility layer (Google Agent Payments Protocol)
- Wise provider (international bank transfers)
Contributing
We need help with:
- Provider adapters β Stripe, Wise, Belvo, Mercado Pago, PayPal, UPI
- Routing logic β Cheapest vs fastest vs most reliable provider selection
- HITL patterns β Approval flows across different MCP clients
- Security audit β Review of the guardrails and auth system
- Multi-currency β FX handling, cross-border routing
- Docs β Compliance and regulatory guides per region
License
MIT
