Sponsored by Deepsite.site

Junto Mcp

Created By
vrllrva month ago
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.
Overview

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

ToolDescription
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

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).

SettingEnv VarDefaultMeaning
Daily limitJUNTO_DAILY_LIMIT50000 (R$500)Max total spend per day
Per-tx maxJUNTO_PER_TX_MAX20000 (R$200)Max single transaction
Confirm aboveJUNTO_CONFIRM_ABOVE5000 (R$50)Ask human before sending
Allowed providersJUNTO_ALLOWED_PROVIDERS(all)Comma-separated allowlist
Allowed destinationsJUNTO_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

ProviderRegionRailsStatus
Woovi/OpenPixBrazilPix🟢 Shipped
BelvoBrazilOpen Finance (all banks)🟡 Next
StripeGlobalCards, ACH, SEPA🟡 Next
WiseGlobalBank transfers🔴 Planned
Mercado PagoLATAMPix, Cards🔴 Planned
PayPalGlobalEmail-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

Server Config

{
  "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"
      }
    }
  }
}
Recommend Servers
TraeBuild with Free GPT-4.1 & Claude 3.7. Fully MCP-Ready.
WindsurfThe new purpose-built IDE to harness magic
EdgeOne Pages MCPAn MCP service designed for deploying HTML content to EdgeOne Pages and obtaining an accessible public URL.
RedisA Model Context Protocol server that provides access to Redis databases. This server enables LLMs to interact with Redis key-value stores through a set of standardized tools.
Serper MCP ServerA Serper MCP Server
Jina AI MCP ToolsA Model Context Protocol (MCP) server that integrates with Jina AI Search Foundation APIs.
Amap Maps高德地图官方 MCP Server
MCP AdvisorMCP Advisor & Installation - Use the right MCP server for your needs
AiimagemultistyleA Model Context Protocol (MCP) server for image generation and manipulation using fal.ai's Stable Diffusion model.
ChatWiseThe second fastest AI chatbot™
CursorThe AI Code Editor
Y GuiA web-based graphical interface for AI chat interactions with support for multiple AI models and MCP (Model Context Protocol) servers.
Howtocook Mcp基于Anduin2017 / HowToCook (程序员在家做饭指南)的mcp server,帮你推荐菜谱、规划膳食,解决“今天吃什么“的世纪难题; Based on Anduin2017/HowToCook (Programmer's Guide to Cooking at Home), MCP Server helps you recommend recipes, plan meals, and solve the century old problem of "what to eat today"
MiniMax MCPOfficial MiniMax Model Context Protocol (MCP) server that enables interaction with powerful Text to Speech, image generation and video generation APIs.
Zhipu Web SearchZhipu Web Search MCP Server is a search engine specifically designed for large models. It integrates four search engines, allowing users to flexibly compare and switch between them. Building upon the web crawling and ranking capabilities of traditional search engines, it enhances intent recognition capabilities, returning results more suitable for large model processing (such as webpage titles, URLs, summaries, site names, site icons, etc.). This helps AI applications achieve "dynamic knowledge acquisition" and "precise scenario adaptation" capabilities.
Visual Studio Code - Open Source ("Code - OSS")Visual Studio Code
Tavily Mcp
Playwright McpPlaywright MCP server
DeepChatYour AI Partner on Desktop
Baidu Map百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
BlenderBlenderMCP connects Blender to Claude AI through the Model Context Protocol (MCP), allowing Claude to directly interact with and control Blender. This integration enables prompt assisted 3D modeling, scene creation, and manipulation.