ClaudeCodeMod

All shelves / MCP servers

io.github.codespar/mcp-rinne

io.github.codespar/mcp-rinne · 273 stars · TypeScript · MIT

MCP server Brazilian card acquiring API — merchants, cards-on-file, 3DS, PIX, banking, pricing.

Install

The repo has no one-line install. Follow its README.

Published as

  • npm@codespar/mcp-rinnestdio

From the server's entry in the official MCP Registry.

Open the repo

Configuration

NameSet asWhat it is
RINNE_API_KEYRequired · SecretEnv varAPI key sent as x-api-key header on every request. Organization-level keys see all merchants; merchant-level keys are scoped to one merchant.
RINNE_SANDBOXOptionalEnv varDefaults to sandbox (https://api-sandbox.rinne.com.br/core). Set to "false" for production (https://api.rinne.com.br/core).
RINNE_EMAILOptionalEnv varLogin identifier for the access-management tools (API Keys, Roles, Permissions, org Users, Zipcode lookup), which reject x-api-key by design and require a JWT session.
RINNE_PASSWORDOptional · SecretEnv varLogin password paired with RINNE_EMAIL.
RINNE_COMPANY_IDOptionalEnv varCompany to select after JWT login, for accounts with access to multiple companies.

Files

packages/payments/rinne/README.md

@codespar/mcp-rinne

MCP server for Rinne — Brazilian card acquiring, PIX, banking, and payment infrastructure, covering the full API surface

npm License: MIT

What is Rinne?

Rinne is a Brazilian payment infrastructure API. It runs a B2B2B model: your Organization manages any number of Merchants, each merchant onboards via KYC and connects to a payment provider (Rinne itself, Cappta, Celcoin, ...) through an Affiliation, and everything downstream flows through that affiliation — card and PIX transactions, cards-on-file, 3D Secure, cashouts/payouts, ledger, and pricing.

This MCP server wraps the entire Rinne REST API — not just card acquiring — so AI agents can manage merchants, run transactions, move money, and administer access in sandbox or production.

Quick Start

Claude Desktop

Add to ~/.config/claude/claude_desktop_config.json:

{
  "mcpServers": {
    "rinne": {
      "command": "npx",
      "args": ["-y", "@codespar/mcp-rinne"],
      "env": {
        "RINNE_API_KEY": "your-api-key",
        "RINNE_SANDBOX": "true"
      }
    }
  }
}

Claude Code

claude mcp add rinne -- npx @codespar/mcp-rinne

Cursor / VS Code

Add to .cursor/mcp.json or .vscode/mcp.json:

{
  "servers": {
    "rinne": {
      "command": "npx",
      "args": ["-y", "@codespar/mcp-rinne"],
      "env": {
        "RINNE_API_KEY": "your-api-key",
        "RINNE_SANDBOX": "true"
      }
    }
  }
}

Tools (62)

Company

Tool Purpose
get_company Get the authenticated company (org or merchant, depending on key scope)
update_company Update the authenticated company

Merchants

Tool Purpose
create_merchant Create a merchant under your organization (KYC)
list_merchants List merchants
get_merchant Get merchant details by ID
update_merchant Update a merchant

Affiliations

Tool Purpose
create_affiliation Create a merchant account with a payment provider (Rinne, Cappta, Celcoin, ...)
register_affiliation Register a gateway-mode affiliation using existing provider credentials
list_affiliations List affiliations, org-wide or for one merchant
get_affiliation Get a specific affiliation

Cards on file

Tool Purpose
store_card Save a card for reuse in future transactions
list_cards List stored cards
get_card Get a stored card by ID
delete_card Delete a stored card

3D Secure

Tool Purpose
create_3ds_session Create a 3DS authentication session ahead of a transaction

Transactions

Tool Purpose
create_transaction Create a card (raw, stored, or Apple Pay/Google Pay) or PIX transaction
authenticate_transaction Complete 3DS for a transaction awaiting authentication
get_transaction Get transaction details and status, including refunds
list_transactions List transactions, org-wide or for one merchant
cancel_transaction Cancel a pending transaction (e.g. unpaid bolepix)
refund_transaction Refund a transaction, fully or partially
cancel_refund Cancel a refund that hasn't settled yet
get_transaction_receipt Get a transaction's receipt (base64 PDF)
simulate_pay_transaction Sandbox only — mark a transaction as paid

PIX (collection keys)

Tool Purpose
create_pix_collection_key Create a PIX key the merchant uses to receive payments
list_pix_collection_keys List the merchant's PIX collection keys

Ledger

Tool Purpose
list_ledger_entries List ledger entries for the authenticated company
get_ledger_entry Get a single ledger entry

Banking

Tool Purpose
create_bank_account Register an external bank account (payout destination)
update_bank_account Set a bank account as primary
register_cashout_pix_key Register an external PIX key as a payout destination
get_balance Get the current balance
topup_balance Sandbox only — simulate funding the balance
get_statement Get a merchant's balance statement for a date range
create_internal_transfer Transfer funds between your org's own bank accounts
list_judicial_blockages List court-ordered account freezes affecting balances

Cashouts

Tool Purpose
create_cashout Create a payout to a bank account or PIX key
list_cashouts List cashouts
get_cashout Get a single cashout
get_cashout_receipt Get a cashout's receipt

Pricing

Tool Purpose
list_fee_policies List fee policies (what you charge merchants)
create_fee_policy Create a fee policy
replace_fee_policy Replace a fee policy in full
update_fee_policy Partially update a fee policy
list_cost_policies List cost policies (what providers charge you)
list_mccs List Merchant Category Codes

Webhooks

Tool Purpose
get_webhook_dashboard_url Get the URL to configure webhook endpoints/events

System

Tool Purpose
get_health Check API health status

Access management — JWT required

Tool Purpose
create_api_key Create an API key (shown once)
list_api_keys List API keys (prefix + last 4 only)
revoke_api_key Revoke an API key
create_role Create a custom role
list_roles List roles
list_permissions List all available permissions
get_current_session Whoami for the JWT session

Users

Tool Purpose
create_user Create a user (merchant scope: x-api-key; org scope: JWT)
list_users List users
update_user Update a user's name/roles — JWT, org only
suspend_user Suspend a user — JWT, org only
activate_user Reactivate a user — JWT, org only

Zipcode — JWT required

Tool Purpose
lookup_zipcode Look up a Brazilian address by CEP

Sandbox

Tool Purpose
get_sandbox_guide Return test cards, the amount-based decline rule, and which tools need JWT

Card data is never sent in the clear

Rinne does not accept a raw card number or CVV over this API. Every number/cvv field (and, for Apple Pay/Google Pay, network_token/cryptogram) must already be an encrypted token ("ev:...") produced by the rinne-js Card/Wallet Element running in a browser — a raw PAN/CVV is rejected with 400 VALIDATION_ERROR, and there is no server-side encryption path.

In practice, this server is the second half of a checkout: run a rinne-js flow (see rinne-js docs) to collect and encrypt the card client-side, then hand the resulting token to store_card or create_transaction here to finish the operation. Alternatively, use card_id on create_transaction to charge a card already saved via store_card.

Organization vs. merchant scope

Every resource that operates on transactions, cards, 3DS sessions, affiliations, or banking accepts an optional merchant_id:

  • Omitted — acts at the organization/self level.
  • Provided — acts on that specific merchant (/v1/merchants/{merchant_id}/...), for an organization managing multiple merchants.

refund_transaction, get_statement, and create_pix_collection_key/list_pix_collection_keys always require merchant_id — they only exist at the merchant level.

Two PIX key resources — don't confuse them

Rinne has two distinct PIX-key resources with similarly-named endpoints:

  • create_pix_collection_key (/v1/merchants/{id}/pix/keys) — a key the merchant uses to receive PIX payments, tied to a provider affiliation (provider, key_type).
  • register_cashout_pix_key (/v1/merchants/{id}/pix-keys or /v1/companies/me/pix-keys) — an external key registered as a payout destination for cashouts (key, primary).

Authentication

Most of the API uses x-api-key, but Rinne's access-management surface deliberately rejects it — a leaked API key must not be able to create other keys, roles, or users. Those tools need a JWT session instead:

Auth Used by
x-api-key (RINNE_API_KEY) Everything else — merchants, affiliations, cards, 3DS, transactions, PIX, banking, cashouts, pricing, webhooks, merchant-scoped users
JWT (RINNE_EMAIL + RINNE_PASSWORD) create_api_key, list_api_keys, revoke_api_key, create_role, list_roles, list_permissions, get_current_session, lookup_zipcode, and org-scoped create_user/list_users/update_user/suspend_user/activate_user

This server logs in lazily on the first JWT-gated tool call and caches the token, re-logging-in once on a 401. If RINNE_COMPANY_ID is set, it selects that company right after login (for accounts with access to multiple companies). If RINNE_EMAIL/RINNE_PASSWORD aren't set, JWT-gated tools return a clear error instead of failing silently — the rest of the server works fine without them.

Sandbox / Testing

Defaults to sandbox (https://api-sandbox.rinne.com.br/core). Set RINNE_SANDBOX=false for production (https://api.rinne.com.br/core).

Sandbox simulation rules

Call get_sandbox_guide for the full JSON, or see below:

Test cards

Card number Brand 3DS
5155901222280001 Mastercard No
4012001037141112 Visa No
4242424242424242 Visa Challenge

Outcome by amount

The last two digits of the amount (in cents) determine the result — not the card number:

Last 2 digits Result
00 Approved
51 Refused — insufficient funds
05 Refused — do not honor
54 Refused — expired card

Example: amount: 1051 → REFUSED with code 51.

PIX

Use simulate_pay_transaction (sandbox only) to mark a WAITING_PAYMENT PIX transaction as paid.

Reference: Rinne testing guide

Environment Variables

Variable Required Description
RINNE_API_KEY Yes API key, sent as x-api-key
RINNE_SANDBOX No Defaults to sandbox; set to "false" for production
RINNE_EMAIL No Login identifier for JWT-gated tools
RINNE_PASSWORD No Login password, paired with RINNE_EMAIL
RINNE_COMPANY_ID No Company to select after login, for multi-company accounts

Links

Enterprise

Need governance, budget limits, and audit trails for agent payments? CodeSpar Enterprise adds policy engine, payment routing, and compliance templates on top of these MCP servers.

License

MIT

Facts

Kind
MCP server
Repo
codespar/mcp-dev-latam
Group
Uncategorized
Stars
273
License
MIT
Language
TypeScript
Last push
2026-09-27
Forks
50
MCP Registry
io.github.codespar/mcp-rinne
Homepage
codespar.dev/servers
Topics
agentic-commerce, ai-agents, brazil, claude, fintech, latin-america, llm-tools, mcp, model-context-protocol, nfe, open-finance, payments, pix

More on this shelf

  1. 1REAio.github.morluto/reaReverse engineer anything from your terminal or agent with one CLI and MCP server.125.3k
  2. 2com.browser-use/browser-usecom.browser-use/browser-useControl a real Chrome browser to complete any task: fill forms, extract data, book flights.117.7k
  3. 3World Monitorapp.worldmonitor/mcpLive markets, conflicts, country risk, chokepoints, energy, and China decision signals. 93 tools.88.3k
  4. 4Scrapling MCP Serverd4vinci/scrapling🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl! Don't be shy, join here: https://discord.gg/EMgGbDceNQ and follow here for daily tips and tricks: https://x.com/Scraplingdev86.9k
  5. 5Everythingmodelcontextprotocol/serversThis MCP server attempts to exercise all the features of the MCP protocol. It is not intended to be a useful server, but rather a test server for builders of MCP clients. It implements prompts, tools, resources, sampling, and more to showcase MCP capabilities.85.8k
  6. 6Fetchmodelcontextprotocol/serversA Model Context Protocol server that provides web content fetching capabilities. This server enables LLMs to retrieve and process content from web pages, converting HTML to markdown for easier consumption.85.8k