Skip to main content
Glama

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

-
security - not tested
A
license - permissive license
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/vrllrv/junto-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server