- Environments
- Authentication
- Connecting a client
- Tools
- Example prompts
- Calling the server directly
- Errors
- Rate limits
- Managing connected apps
- Security best practices
- FAQ
Environments
Sandbox and production each have their own MCP server:
The two environments are completely separate:
- Sandbox API keys, OAuth connections, balances and payouts do not exist in production, and production ones do not exist in sandbox.
- Sandbox data is test data. Production data is your real account.
- You can connect both in the same client. Give them different names, such
as
yativo-sandboxandyativo, so you can always tell them apart.
POST to the endpoint. GET and DELETE return
405 Method Not Allowed.
Authentication
You can sign in to the MCP server in either of two ways:
Both methods act on the same business account, and both follow your
team permissions. A team member who can’t view
payouts in the dashboard can’t view them through MCP either.
OAuth sign-in works like this:
- You enter your Yativo account email.
- You enter the 6-digit code we send to that email.
- If you use two-factor authentication, you also enter the code from your authenticator app.
- You review what the app will be able to do and click Allow access.
Connecting a client
The examples below use the production URL. For sandbox, usehttps://smtp.yativo.com/mcp and a sandbox key.
claude.ai (web, desktop and mobile)
- In claude.ai, open Settings → Connectors → Add custom connector.
- Name it Yativo, or Yativo Sandbox, and enter the MCP endpoint URL.
- Click Connect. A Yativo sign-in page opens.
- Sign in with your email code, and your 2FA code if you use 2FA, then click Allow access.
Claude Code
With OAuth (Claude Code opens the sign-in page in your browser):/mcp inside Claude Code, select yativo and choose
Authenticate.
With an API key:
Claude Desktop (API key)
The simplest option is to add Yativo as a connector in claude.ai (see above). It then appears in Claude Desktop automatically. To use an API key instead, go through themcp-remote bridge, which requires
Node.js 18 or later. Add this to claude_desktop_config.json
(Settings → Developer → Edit Config):
Cursor
Add this to~/.cursor/mcp.json, or to .cursor/mcp.json in a project:
headers. Cursor then opens the
Yativo sign-in page.
VS Code
Add this to.vscode/mcp.json. VS Code prompts for the secret once and
keeps it in secure storage:
headers and inputs.
Any other client
Any client that supports the Streamable HTTP transport can connect. It can either send the two API-key headers, or follow the MCP OAuth flow. The server advertises OAuth through/.well-known/oauth-protected-resource/mcp and supports dynamic client
registration and PKCE (S256).
Tools
Every tool is marked
readOnlyHint: true. None of them moves money or
changes your account.
Each tool returns a JSON document as text content.
get-wallet-balances
Balances are in major units, so 1250.5 means 1,250.50.
usd_equivalent uses a live reference rate and is for display only. It is
null if no rate is available for that currency.
List tools
list-payouts, list-deposits and list-beneficiaries are paginated. The
default page size is 15 and the maximum is 50.
PII Protection & Identifier Safety
- Public UUID boundary: All object IDs exposed through MCP (
payout_id,deposit_id) are UUIDs. Internal integer primary keys are strictly rejected at the tool boundary. - Beneficiary PII Masking: Under default MCP scopes (
mcp:use), sensitive beneficiary personal identifiable information is automatically redacted:- Email addresses are masked (e.g.
j***@e***.com). - Bank account numbers, IBANs, CLABEs, phone numbers and crypto addresses are masked to the last 4 digits (
****1234). - National/tax IDs (RUC, RUT, CPF, DNI, SSN, etc.) and physical street address lines are omitted.
- Email addresses are masked (e.g.
Example prompts
- “What’s my current Yativo balance in each currency?”
- “Show my last 10 payouts that failed and summarise why.”
- “Did the deposit
9b1f...complete?” - “Which payout methods do you support for CLP?”
- “Which Yativo environment are you connected to?”
Calling the server directly
You can test the server without an AI client. Send one JSON-RPC request perPOST:
initialize response’s serverInfo.name is yativo-mcp (version 1.0.0).
The environment context (Sandbox vs. Production) is indicated in the server’s instructions.
Errors
Authentication errors are returned before the request reaches the MCP server. They are plain HTTP responses in the standard Yativo error format, not JSON-RPC:
Every
401 includes a WWW-Authenticate header that points to the
server’s OAuth metadata. OAuth clients use it to start or renew sign-in
automatically.
isError: true. The assistant sees the message and can
act on it:
per_page above 50, also return
isError: true, with the validation message as the text. The server returns a
JSON-RPC error object only for protocol problems such as an unknown tool
name or malformed JSON.
Rate limits
Each account can make 60 MCP requests per minute. Everytools/call,
tools/list and initialize counts toward the limit. Above it, the server
returns 429 Too Many Requests with a Retry-After header.
Managing connected apps
Apps that connected with OAuth are managed through the REST API. The endpoints use the environment’s usual base URL (https://api.yativo.com/api/v1
or https://smtp.yativo.com/api/v1) and the same authentication as any
other endpoint.
Connections belong to the person who approved them. These endpoints always
list and revoke your own connections, even when you are a team member.
They take the dashboard bearer token. Since 15 October 2026 a bearer token
is accepted only from the Yativo dashboard (https://app.yativo.com), so call
them from the dashboard; the curl examples below show the request shape.
List connected apps
GET /mcp/connections
Revoke a connected app
DELETE /mcp/connections/{client_id}
client_id with no active connection returns
404 Connection not found.
API-key connections are managed from your API keys instead. Revoking a key
disconnects every client that uses it.
Security best practices
- Try it in sandbox first. Connect the sandbox endpoint, then connect production.
- Use team permissions. A team member without permission to view payouts, deposits or beneficiaries can’t view them through MCP either. Connect assistants as members with the least access they need.
- Use one key or connection per assistant or machine. Label API keys, e.g. “Cursor – Ana’s laptop”, and disconnect apps you no longer use.
- Keep secrets out of repositories. Use environment variables, VS Code
inputs, OAuth sign-in, or your client’s secret storage. - Treat tool output as sensitive. Beneficiary data includes names, emails and saved bank details. Only connect AI apps your company allows to process that data.
FAQ
Can the assistant send money? No. The MCP server is read-only. Quoting and sending payouts require the dashboard or the REST API. Can a team member use it? Yes. Team members sign in with OAuth and act on the team’s business account with their own permissions. API keys act as the team owner. A dashboard session token (Authorization: Bearer <token>) also works, but since
15 October 2026 only from the Yativo dashboard (https://app.yativo.com);
AI apps and scripts must use OAuth or an API key from a whitelisted IP.
Which data can the assistant see?
Only data for the account you signed in to, or that owns the API key: its
wallets, payouts, deposits and beneficiaries, plus the public list of payout
methods.
How do I know if I’m on sandbox or production?
The server identifies its environment in its instructions. You can also ask the assistant “Which Yativo environment are you connected to?”.
Can I use a sandbox key on production, or the other way round?
No. Each environment only accepts its own keys and OAuth connections.
