io.github.vrllrv/junto-mcp

平台与服务

by vrllrv

面向个人与智能代理的支付协议:一个 MCP server 即可接入多种 payment rail,统一处理支付流程。

什么是 io.github.vrllrv/junto-mcp

面向个人与智能代理的支付协议:一个 MCP server 即可接入多种 payment rail,统一处理支付流程。

README

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

bash
npm install -g junto-mcp

Set your provider API key:

bash
export WOOVI_APP_ID="your-woovi-app-id"

Run as CLI (human mode):

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

Run as MCP server (for AI clients):

bash
junto --mcp

Portuguese / Portugues

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

bash
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

json
{
  "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.

code
⚠️ 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

code
┌─────────────────────────────────────┐
│  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🟢 Live (tested with real Pix transactions)
EbanxBrazil + LATAMPix payouts, Boleto, Cards🟡 Next
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
  • Verified: charge, status, and payment flows tested with real Pix transactions (March 2026)

Demo

code
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:

typescript
// 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

bash
npm test              # Guardrail unit tests
npm run test:smoke    # Full flow smoke tests (mock provider)

Live testing with real Pix

bash
# Create a Pix charge (R$1.00)
WOOVI_APP_ID=your-key npx tsx test/live-pix.ts charge 100 "Test charge"

# Check status
WOOVI_APP_ID=your-key npx tsx test/live-pix.ts status <correlation-id>

# Send a Pix payment
WOOVI_APP_ID=your-key npx tsx test/live-pix.ts pay 100 user@email.com EMAIL

# Refund
WOOVI_APP_ID=your-key npx tsx test/live-pix.ts refund <correlation-id>

Interactive demo

bash
npx tsx demo/demo.ts          # Full demo with typewriter narration + real API calls
npx tsx demo/demo.ts --fast   # Fast mode for rehearsals

Audit Log

Every transaction is logged to ~/.junto/audit-YYYY-MM-DD.jsonl:

json
{
  "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) — live-tested with real transactions
  • Guardrails (daily limits, per-tx max, HITL confirmation)
  • Audit ledger
  • junto-skill (Claude behavioral layer)
  • Interactive demo (npx tsx demo/demo.ts)
  • Ebanx provider (Pix payouts, Boleto, Cards — Brazil + LATAM)
  • 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 — Ebanx, 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

常见问题

io.github.vrllrv/junto-mcp 是什么?

面向个人与智能代理的支付协议:一个 MCP server 即可接入多种 payment rail,统一处理支付流程。

相关 Skills

MCP构建

by anthropics

Universal
热门

聚焦高质量 MCP Server 开发,覆盖协议研究、工具设计、错误处理与传输选型,适合用 FastMCP 或 MCP SDK 对接外部 API、封装服务能力。

想让 LLM 稳定调用外部 API,就用 MCP构建:从 Python 到 Node 都有成熟指引,帮你更快做出高质量 MCP 服务器。

平台与服务
未扫描123.0k

Slack动图

by anthropics

Universal
热门

面向Slack的动图制作Skill,内置emoji/消息GIF的尺寸、帧率和色彩约束、校验与优化流程,适合把创意或上传图片快速做成可直接发送的Slack动画。

帮你快速做出适配 Slack 的动图,内置约束规则和校验工具,少踩上传与播放坑,做表情包和演示都更省心。

平台与服务
未扫描123.0k

邮件模板

by alirezarezvani

Universal
热门

快速搭建生产可用的事务邮件系统:生成 React Email/MJML 模板,接入 Resend、Postmark、SendGrid 或 AWS SES,并支持本地预览、i18n、暗色模式、反垃圾优化与追踪埋点。

面向营销与服务场景,快速搭建高质量邮件模板,省去反复设计与切图成本,成熟度和社区认可都很高。

平台与服务
未扫描12.5k

相关 MCP Server

Slack 消息

编辑精选

by Anthropic

热门

Slack 是让 AI 助手直接读写你的 Slack 频道和消息的 MCP 服务器。

这个服务器解决了团队协作中需要 AI 实时获取 Slack 信息的痛点,特别适合开发团队让 Claude 帮忙汇总频道讨论或发送通知。不过,它目前只是参考实现,文档有限,不建议在生产环境直接使用——更适合开发者学习 MCP 如何集成第三方服务。

平台与服务
84.2k

by netdata

热门

io.github.netdata/mcp-server 是让 AI 助手实时监控服务器指标和日志的 MCP 服务器。

这个工具解决了运维人员需要手动检查系统状态的痛点,最适合 DevOps 团队让 Claude 自动分析性能数据。不过,它依赖 NetData 的现有部署,如果你没用过这个监控平台,得先花时间配置。

平台与服务
78.5k

by d4vinci

热门

Scrapling MCP Server 是专为现代网页设计的智能爬虫工具,支持绕过 Cloudflare 等反爬机制。

这个工具解决了爬取动态网页和反爬网站时的头疼问题,特别适合需要批量采集电商价格或新闻数据的开发者。不过,它依赖外部浏览器引擎,资源消耗较大,不适合轻量级任务。

平台与服务
38.1k

评论