Junto Mcp
About
The payment protocol for people and agents. One MCP server, any payment rail. Multi-provider routing (Woovi/Pix, Stripe, Belvo), spending guardrails, human-in-the-loop confirmation, and audit logging.
Details
- Author
- vrllrv
- Downloads
- 276
- Categories
- Other, AI
Jump to
- Universal payment toolkit accessible via MCP protocol
- Supports pay, charge, status, refund, balance, providers, and limits tools
- Configurable spending limits per day and per transaction
- Human-in-the-loop confirmation for high-value payments
- Provider allowlisting and destination type filtering
- Full audit ledger stored as JSONL files
Setting up with Highlight
This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:
- Download and install Highlight from highlightai.com/download
- Navigate to the plugins tab and select "Add Custom Plugin"
-
Configure the plugin with the settings below
Plugin Name
Junto McpCommand (node, npx, python, etc.)Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.
- Enable "Start Automatically" if you want the plugin to start when Highlight launches
From the repository
Install globally with npm install -g junto-mcp, set your provider API key (e.g., WOOVI_APP_ID), then run junto-mcp. For Claude Desktop or Cursor, add the server configuration in the mcpServers JSON block with the appropriate environment variables.
pay
Send money to a destination via the best available provider. Amount in cents.
charge
Create a payment request, invoice, or QR code.
status
Check payment or charge status by correlation ID.
refund
Refund a completed payment by correlation ID.
balance
Check available funds on a payment provider.
providers
List configured payment providers and their capabilities.
limits
Check current spending limits and today's usage (all values in cents).
Claude Desktop / Cursor
Paste into your MCP client config file to install this server.
{
"mcpServers": {
"junto mcp": {
"junto-mcp": {
"command": "npx",
"args": [
"-y",
"junto-mcp"
],
"env": {
"WOOVI_APP_ID": "your-woovi-app-id",
"JUNTO_DAILY_LIMIT": "50000",
"JUNTO_TX_MAX": "10000",
"JUNTO_CONFIRM_ABOVE": "5000"
}
}
}
}
}
McpServers
{
"junto-mcp": {
"command": "npx",
"args": [
"-y",
"junto-mcp"
],
"env": {
"WOOVI_APP_ID": "your-woovi-app-id",
"JUNTO_DAILY_LIMIT": "50000",
"JUNTO_TX_MAX": "10000",
"JUNTO_CONFIRM_ABOVE": "5000"
}
}
}
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
- [x] Core MCP server with universal tool interface
- [x] Woovi/OpenPix provider (Pix)
- [x] Guardrails (daily limits, per-tx max, HITL confirmation)
- [x] Audit ledger
- [x] 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
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.




