junto-mcp
Planned compatibility with the Google Agent Payments Protocol (AP2) to standardize payment interactions for AI agents.
Planned integration to support payment processing via Pix and cards across Latin America.
Planned integration for facilitating email-based global payments.
Enables instant payments in Brazil, allowing agents to send money, create payment requests/QR codes, and check transaction statuses via the Woovi/OpenPix adapter.
Supports Euro-denominated bank transfers as a payment rail, planned for implementation through Stripe and other global providers.
Upcoming integration to handle global payments via cards, ACH, and SEPA rails.
Planned for use in human-in-the-loop (HITL) workflows, allowing users to approve high-value transactions via Telegram.
Planned for use in human-in-the-loop (HITL) workflows, allowing users to approve high-value transactions via WhatsApp.
Planned integration for routing international bank transfers globally.
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
Related MCP server: Payments MCP
Tools
Tool | Description |
| Send money to a destination (Pix key, email, IBAN, etc.) |
| Create a payment request / invoice / QR code |
| Check payment status by correlation ID |
| Reverse a completed transaction |
| Check available funds on a provider |
| List configured providers and their capabilities |
| Show spending limits and today's usage |
Quick Start
npm install -g junto-mcpSet 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 balanceRun as MCP server (for AI clients):
junto --mcpPortuguese / 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 saldoSee 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 |
| 50000 (R$500) | Max total spend per day |
Per-tx max |
| 20000 (R$200) | Max single transaction |
Confirm above |
| 5000 (R$50) | Ask human before sending |
Allowed providers |
| (all) | Comma-separated allowlist |
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, 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
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-a1b2c3Adding 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 # Guardrail unit tests
npm run test:smoke # Full flow smoke tests (mock provider)Live testing with real Pix
# 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
npx tsx demo/demo.ts # Full demo with typewriter narration + real API calls
npx tsx demo/demo.ts --fast # Fast mode for rehearsalsAudit 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) — 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
Available Tools
7 toolsbalanceB
Check available funds on a payment provider.
| Name | Required | Description | Default |
|---|---|---|---|
| provider | No | Which provider to check. Checks all if omitted. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. While 'Check' implies a read-only operation, the description lacks critical details: whether data is real-time or cached, what format/currency the balance is returned in, error handling for invalid providers, or rate limiting.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence of six words with zero redundancy. It efficiently conveys the core action without filler, making it appropriately sized for quick comprehension.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one optional parameter, no nested objects), the description adequately covers the basic invocation pattern. However, lacking an output schema, it omits what the agent/user receives (e.g., balance amount, currency, timestamp), which would be necessary for the agent to handle the response correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage (the 'provider' parameter is fully documented in the schema as optional with default behavior), the description meets the baseline. It references 'payment provider' aligning with the parameter name, but adds no semantic value regarding valid provider formats or examples beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a clear verb ('Check') and identifies the specific resource ('available funds on a payment provider'). However, it does not differentiate from the sibling tool 'limits', which could also relate to financial thresholds or quotas, potentially causing selection confusion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus siblings like 'limits' or 'status'. It fails to mention common workflows such as checking balance before invoking 'charge' or 'pay', and does not note prerequisites like authentication requirements.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chargeC
Create a payment request, invoice, or QR code.
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | Amount in cents | |
| currency | No | ISO 4217 currency code | BRL |
| description | No | What the charge is for | |
| customer_email | No | Customer email | |
| customer_name | No | Customer name | |
| expires_in | No | Seconds until expiry | |
| provider | No | Force a specific provider |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosure but fails to explain side effects (e.g., whether emails are sent), idempotency, or which of the three output types is generated under what conditions. It does not indicate what the tool returns or how expiration behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single terse sentence of six words. While it avoids redundancy, it is insufficiently detailed for a financial tool with seven parameters and three potential output variants, leaving critical behavioral questions unanswered.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a payment creation tool with multiple output formats and no output schema or annotations, the description is incomplete. It fails to resolve the ambiguity of 'payment request, invoice, or QR code' (mutually exclusive? selected how?) or describe the response structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, documenting all seven parameters including units (cents) and formats (ISO 4217). The description adds no specific parameter guidance beyond what the schema already provides, meeting the baseline expectation for well-documented schemas.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the action ('Create') and the resources ('payment request, invoice, or QR code'), which distinguishes it from siblings like 'refund' or 'pay'. However, it does not explicitly clarify the relationship between these three distinct outputs or when to expect each one.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'pay' (which likely sends funds) or when to prefer specific output types. There are no stated prerequisites, conditions, or exclusions for its use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
limitsA
Check current spending limits and today's usage (all values in cents).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure and adds critical context that output values are 'in cents,' explaining the data format. However, it omits other behavioral details such as whether the data is real-time, cached, or subject to rate limiting.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single-sentence description is efficiently front-loaded with the action verb and packs essential information about the resource and data format without waste. Every clause serves a distinct purpose: identifying the action, the resources, and the value format.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (no parameters) and lack of output schema, the description adequately covers the return values by specifying both spending limits and today's usage with their monetary unit. It fulfills the minimum requirements for a read-only status tool, though it could further clarify the scope.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema contains zero parameters, establishing a baseline score of 4, and the description appropriately does not invent parameter details. The schema coverage is vacuously 100%.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Check' and clearly identifies the resource as 'current spending limits and today's usage,' distinguishing it from sibling tools like balance or status. While it effectively communicates the tool's function through resource specificity, it does not explicitly contrast with specific alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit guidance on when to select this tool over siblings such as balance or status, nor does it mention prerequisites. Users must infer applicability solely from the resource description without explicit when-to-use criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
payC
Send money to a destination via the best available provider. Amount in cents.
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | Amount in cents. Example: 5000 = R$50.00 | |
| currency | No | ISO 4217 currency code | BRL |
| destination | Yes | Recipient: Pix key, email, phone, CPF, CNPJ, IBAN | |
| destination_type | No | Type hint: EMAIL, PHONE, CPF, CNPJ, RANDOM, IBAN | |
| note | No | Payment memo | |
| provider | No | Force a specific provider |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'best available provider' selection logic but fails to disclose critical financial operation traits: whether the transaction is irreversible (requiring 'refund'), if it requires pre-authorization, rate limits, or failure behaviors.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The two-sentence structure is appropriately front-loaded with the action verb. While 'Amount in cents' appears redundant given complete schema coverage, it earns its place as critical safety information preventing decimal errors in financial transactions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the high schema coverage, the description meets minimum viability. However, for a high-stakes financial mutation tool lacking annotations and output schema, it omits expected safety context about fund availability checks and transaction finality.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, establishing a baseline of 3. The description repeats 'Amount in cents' which appears verbatim in the schema's amount parameter description, adding no new semantic value. It does not clarify parameter interdependencies (e.g., destination_type hinting destination format).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the core action ('Send money') and target ('destination'), distinguishing it from siblings like 'charge' (receive) and 'refund' (reverse). However, it stops short of explicitly clarifying that this debits funds from the user's account, which would strengthen differentiation from non-financial tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this versus 'charge' or 'refund', nor are prerequisites mentioned (e.g., verifying sufficient balance via the 'balance' tool first). The description lacks 'when-not-to-use' exclusions or alternative recommendations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
providersA
List configured payment providers and their capabilities.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Adds value by mentioning 'capabilities' (what providers can do), but lacks operational details like read-only safety, caching behavior, or response format that annotations would typically cover.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with zero waste. Front-loaded with verb and resource. Appropriate length for a simple discovery tool with no parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a low-complexity tool (0 params, no nested objects). Specifies return value content (providers + capabilities) even without output schema. Could improve by mentioning return format or structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has zero parameters. Per baseline rules for 0-param tools, score is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Uses specific verb 'List' with clear resource 'configured payment providers' and includes 'capabilities' to specify scope. Distinct from action-oriented siblings (charge, pay, refund) and status tools (balance, status, limits).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or alternative guidance provided. However, usage is implied by the contrast with transactional siblings - this is a discovery/configuration tool versus payment execution tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
refundB
Refund a completed payment by correlation ID.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Correlation ID of the payment to refund | |
| provider | No | Provider that handled the transaction |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. States the operation is a refund on completed payments, but lacks critical details: idempotency, failure modes, partial vs full refunds, or synchronous/asynchronous behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single 7-word sentence with zero redundancy. Action verb front-loaded. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
High-stakes financial mutation tool with no annotations, no output schema, and minimal behavioral description. Inadequate for the operational complexity and risk level.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% description coverage. Description mentions 'correlation ID' reinforcing the id parameter, but adds no semantic value for the optional 'provider' parameter or usage scenarios beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear specific verb 'Refund' and resource 'completed payment', clearly distinguishes from sibling tools like 'charge' or 'pay' which create payments rather than reverse them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage restriction via 'completed payment' (suggesting not for pending transactions), but lacks explicit when-to-use guidance or comparison to sibling alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
statusB
Check payment or charge status by correlation ID.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Payment or charge correlation ID | |
| provider | No | Provider that handled the transaction |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It fails to mention error handling (e.g., invalid ID), whether this requires specific permissions, what status values are returned, or if the operation is idempotent/safe. The word 'Check' implies read-only but doesn't confirm it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence of eight words with the action verb front-loaded. There is no redundant or wasted language; every word contributes to understanding the tool's function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple 2-parameter input schema with no output schema, the description is minimally adequate. However, it could be improved by describing the expected return value (status values, transaction details) or behavior when the ID is not found, especially since no output schema exists to document this.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the baseline is 3. The description mentions 'correlation ID' which aligns with the 'id' parameter description in the schema, but adds no additional semantic context (e.g., format, where to obtain it) beyond what the schema already provides for either parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Check' with the resource 'payment or charge status' and identifies the lookup key 'correlation ID'. It implicitly distinguishes from action-oriented siblings like 'charge', 'pay', and 'refund' by being a read operation, though it doesn't explicitly contrast with them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit guidance on when to use this tool versus alternatives. While the correlation ID requirement implies use for existing transactions (vs. creating new ones via 'charge' or 'pay'), there is no explicit 'when-to-use' or mention of prerequisites like obtaining the ID from a prior call.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool has a clearly distinct purpose with no ambiguity: balance checks funds, charge creates payment requests, limits checks spending, pay sends money, providers lists providers, refund processes refunds, and status checks status. The descriptions clearly differentiate these operations, making it easy for an agent to select the right tool.
All tool names follow a consistent, simple noun-based pattern (balance, charge, limits, pay, providers, refund, status) that is readable and predictable. There are no deviations in style or convention, making the set coherent and easy to navigate.
With 7 tools, this server is well-scoped for payment processing, covering key operations like checking funds, creating charges, sending payments, listing providers, handling refunds, and checking status. Each tool earns its place without feeling excessive or insufficient for the domain.
The tool set provides strong coverage for core payment workflows, including create (charge), read (balance, limits, providers, status), and update/delete-like actions (pay, refund). A minor gap is the lack of a tool for updating payment details or managing providers beyond listing, but agents can likely work around this with existing tools.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
PIX payments for Brazil: verify a settlement with no API key, or sell USDT/USDC for BRL over PIX.
Brazil payments for AI agents — Pix, cards, boleto via Mercado Pago. Never holds funds.
Issue registered Brazilian bank slips (boleto) and Pix charges on PagHiper with the official API. Cr
Digital account and billing on Asaas with the full official REST API v3 (api.asaas.com), balance, ch
Related MCP Servers
- FlicenseBqualityNot gradedmaintenanceEnables Claude to interact with the Vaultix Payment API for managing charges, customers, refunds, payment links, payouts, and balance transactions. Supports Brazilian payment methods including PIX, card, and boleto payments.32
- AlicenseNot gradedqualityDmaintenanceCentralizes payment gateway integrations for Pagar.me (customers, recipients, Pix, credit card, splits, charges) and Woovi/OpenPix (Pix charges, refunds, webhook verification) through MCP tools.12MIT
- AlicenseAqualityDmaintenanceEnables AI agents to generate static Pix QR codes for Brazilian payments using natural language, with EMV 4.0 compliance and no external API required.2293MIT

Intra Pay MCP Serverofficial
FlicenseNot gradedqualityDmaintenanceEnables Pix payment operations (cash-in/cash-out) and webhook management for Intra Pay via natural language, supporting multi-tenant authentication.1
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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