Junto MCP Server

1

Add it to Claude Code

Run this in a terminal.

Run in terminal
claude mcp add -e "WOOVI_APP_ID=${WOOVI_APP_ID}" junto-mcp -- npx -y junto-mcp
Required:WOOVI_APP_ID+ 5 optional
README.md

The payment protocol for people and agents.

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 as CLI (human mode):

junto pay 25.00 maria@email.com
junto charge 10.00 "Coffee"
junto balance

Run as MCP server (for AI clients):

junto --mcp

Portuguese / Portugues

Junto auto-detects your system language, or set manually:

JUNTO_LANG=pt-BR junto ajuda
junto pagar 25.00 maria@email.com
junto cobrar 10.00 "Cafe"
junto saldo

See CLI.md for the full command reference in both languages.

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 🟢 Live (tested with real Pix transactions)
Ebanx Brazil + LATAM Pix payouts, Boleto, Cards 🟡 Next
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, 8

Tools (7)

paySend money to a destination (Pix key, email, IBAN, etc.)
chargeCreate a payment request / invoice / QR code
statusCheck payment status by correlation ID
refundReverse a completed transaction
balanceCheck available funds on a provider
providersList configured providers and their capabilities
limitsShow spending limits and today's usage

Environment Variables

WOOVI_APP_IDrequiredAPI identifier for Woovi provider
JUNTO_DAILY_LIMITMax total spend per day in cents
JUNTO_PER_TX_MAXMax single transaction amount in cents
JUNTO_CONFIRM_ABOVEThreshold in cents to trigger human-in-the-loop confirmation
JUNTO_ALLOWED_PROVIDERSComma-separated allowlist of payment providers
JUNTO_ALLOWED_DESTINATIONSComma-separated allowlist of destination types

Configuration

claude_desktop_config.json
{"mcpServers": {"junto": {"command": "npx", "args": ["-y", "junto-mcp"], "env": {"WOOVI_APP_ID": "your-woovi-app-id"}}}}

Try it

Check my current balance across all payment providers.
Create a payment request for 50.00 for a coffee consultation.
Send 25.00 to maria@email.com using my configured Pix provider.
What are my current daily spending limits and how much have I used today?
Check the status of the payment with correlation ID 12345.

Frequently Asked Questions

What are the key features of Junto?

Universal payment toolkit for multiple rails and providers. Built-in guardrails including daily and per-transaction spending limits. Human-in-the-loop confirmation for high-value transactions. JSONL audit trail for every action taken. Multi-provider routing based on currency and country.

What can I use Junto for?

Automating invoice payments for freelance work. Splitting bills between team members via AI agents. Managing business expenses with strict spending caps. Integrating instant Pix payments into AI-driven customer support workflows.

How do I install Junto?

Install Junto by running: npm install -g junto-mcp

What MCP clients work with Junto?

Junto works with any MCP-compatible client including Claude Desktop, Claude Code, Cursor, and other editors with MCP support.

Turn this server into reusable context

Keep Junto docs, env vars, and workflow notes in Conare so your agent carries them across sessions.

Need the old visual installer? Open Conare IDE.
Open Conare