MCP Integration

Your AI assistant can read the FXaaS documentation directly. Once connected, you can ask about authentication, customers, recipients, quotes, transactions and webhooks without leaving your editor — and the answers come from this documentation, not from the model's memory.

This page walks you through the whole setup. No prior knowledge of MCP is required.

What is the MCP Server?


MCP (Model Context Protocol) is a standard way for an AI assistant to connect to an external source of knowledge. The FXaaS MCP Server is that source, hosted and maintained by Remessa Online.

Three things are worth knowing before you start:

  • You don't install anything. The server runs on our side. You only tell your AI tool where it is and prove who you are.
  • Your assistant gains access to the real documentation. API endpoints, request and response fields, business domains, operation purposes and error meanings — all served from the same specification that powers this portal.
  • Answers are anchored in the documentation. When something isn't covered, the server says so instead of inventing an answer.
📘

What it does not do

This is a documentation service. It has no access to your real customers, quotes or transactions, and it cannot execute operations. If you ask about the status of a real transaction or about pricing, it will tell you that this is out of scope rather than guess.

Before you start


📍 1. Your FXaaS credentials

You need the same client_id and client_secret you received after signing the contract — the ones you already use on POST /v1/api/auth. See Authentication.

❗️

No new credentials are needed

There is no separate API key for the MCP Server, and no registration step. If you can authenticate against the FXaaS API, you can connect.

The x-token header is not used here — only client_id and client_secret.

If you have not received your credentials yet, contact your Remessa Online representative.

📍 2. Which environment your credentials belong to

The MCP Server currently runs in Sandbox. Use your sandbox credentials — production credentials will not be accepted by the sandbox server.

📍 3. A compatible AI tool

The tool you use must support remote MCP servers over HTTP and must let you set a custom header. These four are covered step by step below:

ToolWhere you configure it
Claude Codea single terminal command
Claude Desktopclaude_desktop_config.json
Cursor.cursor/mcp.json
GitHub Copilot (VS Code).vscode/mcp.json
❗️

Claude on the web is not supported

Custom connectors added at claude.ai only accept OAuth, and the FXaaS MCP Server authenticates with your existing client_id and client_secret. Use one of the four tools above instead.

Step 1 — Create your connection key


Your AI tool authenticates with a single line of text called a connection key. It is just your client_id and your client_secret joined by a colon and encoded in Base64 — the same scheme the FXaaS API already uses.

Pick the option that matches your system.

📍 macOS / Linux

printf '%s:%s' "YOUR_CLIENT_ID" "YOUR_CLIENT_SECRET" | base64 | tr -d '\n'

📍 Windows (PowerShell)

$pair = "YOUR_CLIENT_ID:YOUR_CLIENT_SECRET"
[Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes($pair))

The output is one long line of letters and numbers, for example YWJjMTIzOnNlY3JldDQ1Ng==. That is your connection key.

👍

Using Claude Code?

You can skip this step. The command in Step 2 generates the key for you.

❗️

Treat the key as a password

The connection key is your credential in another format — anyone holding it can connect as you. Never commit it to a repository, never paste it into a public channel, and never include it in a screenshot.

Step 2 — Connect your AI tool


The server address is the same for every tool:

📍 Claude Code

Run this in your terminal, replacing the two values:

claude mcp add --transport http fxaas-remessaonline \
  https://mcp-fx-sandbox.remessaonline.com.br/mcp \
  --header "Authorization: Basic $(printf '%s:%s' "YOUR_CLIENT_ID" "YOUR_CLIENT_SECRET" | base64 | tr -d '\n')"

How to know it worked: type /mcp inside Claude Code. The server fxaas-remessaonline should appear as connected.

📍 Claude Desktop

Open the configuration file — create it if it does not exist:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Add the block below, replacing <your-connection-key> with the key from Step 1:

{
  "mcpServers": {
    "fxaas-remessaonline": {
      "type": "http",
      "url": "https://mcp-fx-sandbox.remessaonline.com.br/mcp",
      "headers": {
        "Authorization": "Basic <your-connection-key>"
      }
    }
  }
}

If the file already has other servers inside mcpServers, add this one next to them instead of replacing the file.

How to know it worked: quit Claude Desktop completely and reopen it. The FXaaS tools appear in the tools menu of the message box.

❗️

If the server does not show up

Older versions of Claude Desktop only accept local servers in this file. In that case use the bridge below, which requires Node.js installed. Replace <your-connection-key> with the key from Step 1 and keep the header exactly as written — with no space after the colon, since some versions of Claude Desktop mangle spaces inside args:

{
  "mcpServers": {
    "fxaas-remessaonline": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "https://mcp-fx-sandbox.remessaonline.com.br/mcp",
        "--header",
        "Authorization:${AUTH_HEADER}"
      ],
      "env": {
        "AUTH_HEADER": "Basic <your-connection-key>"
      }
    }
  }
}

📍 Cursor

Create the file .cursor/mcp.json in your project — or ~/.cursor/mcp.json to enable it in every project — with the same content:

{
  "mcpServers": {
    "fxaas-remessaonline": {
      "type": "http",
      "url": "https://mcp-fx-sandbox.remessaonline.com.br/mcp",
      "headers": {
        "Authorization": "Basic <your-connection-key>"
      }
    }
  }
}

How to know it worked: open Settings → MCP. The server appears in the list with a green indicator.

❗️

Add the file to .gitignore

.cursor/mcp.json holds your connection key. If it lives inside a repository, exclude it from version control.

📍 GitHub Copilot (VS Code)

Create the file .vscode/mcp.json in your project. Note that VS Code uses servers, not mcpServers:

{
  "servers": {
    "fxaas-remessaonline": {
      "type": "http",
      "url": "https://mcp-fx-sandbox.remessaonline.com.br/mcp",
      "headers": {
        "Authorization": "Basic <your-connection-key>"
      }
    }
  }
}

How to know it worked: open Copilot Chat, switch it to Agent mode and open the tools list. The FXaaS tools are listed there.

❗️

Add the file to .gitignore

The same warning applies: .vscode/mcp.json holds your connection key.

Step 3 — Check that it worked


Ask your assistant:

List the FXaaS API endpoints.

A correct answer lists real endpoints grouped by area — quotes, customers, recipients, transactions, webhooks — with their HTTP method and path. If instead you get a generic answer with no endpoint names, the server is not connected.

You can also check that the service itself is up, without any credential:

curl https://mcp-fx-sandbox.remessaonline.com.br/health

The expected response is {"status":"ok"}.

📘

Answers may come in Portuguese

The FXaaS domain content is written in Portuguese, so your assistant may answer in Portuguese even when you ask in English. Just ask it to reply in English and it will. Questions work equally well in either language.

Step 4 — Set up your integration profile


The MCP Server holds the documentation for every FXaaS flow. A partner who only sends money abroad for companies would still see, mixed into every list, endpoints that exist solely in the receiving flow — noise that an AI assistant might suggest as if it applied.

The onboarding fixes that. You answer three questions about how you intend to operate, and from then on the documentation comes back ordered by your actual flow.

📘

Nothing is ever hidden

The profile reorders and annotates the documentation — it never removes anything. Whatever leaves the main list reappears in a section named Fora do seu perfil ("Outside your profile") at the end of the answer, each item with the reason why. You can always ask about anything.

📍 1. Start the onboarding

The onboarding is a ready-made prompt provided by the server.

  • Claude Code: type / and pick /mcp__fxaas-remessaonline__onboarding
  • Claude Desktop: open the attachment menu of the message box, choose the fxaas-remessaonline server and select onboarding
  • Cursor and Copilot: type / in the chat and look for the onboarding prompt of the fxaas-remessaonline server

Your assistant then asks the three questions below, one at a time.

📍 2. Question 1 — Customer types

Which kinds of end customer will you serve?

ValueMeaning
INDIVIDUALAn individual person
BUSINESSA company

If you serve both, say both — there is no "both" value, you simply list the two.

📍 3. Question 2 — Direction

In which direction will you operate?

ValueMeaning
OUTBOUNDSending money abroad
INBOUNDReceiving money from abroad

Again, if you operate in both directions, list the two.

📘

Direction is not a separate set of endpoints

No FXaaS route contains inbound or outbound in its path — direction is a field in the request body. What changes between the two flows is which endpoints matter and which fields are required, and that is exactly what the profile makes explicit.

📍 4. Question 3 — Purposes

The purpose (natureza) is what justifies a foreign exchange operation before the Brazilian Central Bank. It determines which documents and which fields are required, so it is the single most consequential answer of the three.

Your assistant shows only the purposes available for the direction you gave in question 2. A few common ones:

PurposeTypical use
SERVICEPaying for or receiving payment for services
COMEXForeign trade — import and export of goods
FAMILY_MAINTENANCESending money to support family abroad
EDUCATION_EXPENSESTuition and study expenses abroad
OWN_ACCOUNT_ABROADTransferring to your customer's own account abroad

You do not need to know the codes. Describe the operation in plain words — for example "paying suppliers abroad for imported goods" — and your assistant proposes the matching purpose and confirms it with you before saving.

📍 5. What happens next

Your assistant saves the answers to your partner account at Remessa Online. From that point on, every documentation answer:

  • opens with a line stating the profile in effect, starting with Priorizado para o seu perfil:
  • lists what serves your declared flow first
  • closes with the Fora do seu perfil section, holding everything else with the reason it was moved
  • tells you which body variant to send on POST /v1/api/customers, based on the customer types you declared
📘

What gets stored

Only the three answers above — a statement about how you intend to integrate. No customer, quote or transaction data is involved, and the profile is tied to the credentials you connected with, so it is only ever visible to you.

📍 6. Warnings you may receive

The confirmation may include warnings. They are worth reading:

WarningWhat it means
Purpose not recognised by the APIThat purpose was not saved because it is not part of the FXaaS vocabulary. The other answers were saved normally
Purpose with no documented quoteIt was saved, but it does not appear in any quotation direction, so it produces no prioritisation
Quote and transaction disagreeThe purpose is valid for a quote but rejected by the transaction for that customer type

The last one is the most valuable. COMEX on INBOUND is a real example: the quote accepts it, but a transaction for an individual customer does not. Getting that warning during setup is considerably cheaper than discovering it when the transaction fails.

📍 7. Skipping, changing and undoing

  • Skipping a question is fine. Say you're not sure and your assistant moves on. That dimension simply stays unprioritised, and the documentation for it remains complete.
  • To change the profile, run the onboarding again. The new answers replace the previous ones entirely.
  • To go back to the generic behaviour, run it again and leave all three answers empty.

Example prompts


Copy any of these into your assistant once it is connected.

Getting oriented

Explain the FXaaS integration flow from authentication to the first transaction.
Which business domains exist in FXaaS? Give me a one-line summary of each.

Customers and recipients

What fields are required to create a BUSINESS customer? Show me a sample request body.
How do I register a recipient, and which bank details are required for a transfer to the United States?

Quotes and transactions

Walk me through creating a quote and turning it into an outbound transaction, step by step.
Which purposes are accepted for an inbound transaction for an individual customer?

Webhooks

How do I subscribe to webhooks and what events will I receive during a transaction lifecycle?

When something fails

I got a 422 on POST /v1/api/transactions with the message "purpose not allowed". What should I check?
👍

Tip

Ask follow-up questions in the same conversation. The assistant keeps the context, so "and what changes if the customer is an individual?" works without repeating everything.

What the MCP Server can and cannot do


It canIt cannot
Explain any endpoint, its parameters and its responseLook up a real customer, quote or transaction
Show request and response schemasReturn balances, rates, spread or pricing
Explain business domains and their lifecyclesCreate, update or cancel anything
List the purposes valid for each directionAccess production data of any kind
Help you interpret an error you receivedAnswer about features not covered by the documentation

When a question falls outside this scope, the server says so explicitly instead of producing a plausible but unverified answer.

Troubleshooting


StatusWhat it meansWhat to do
401Missing, malformed or invalid credentialRebuild the connection key from Step 1 and confirm you are using sandbox credentials. Check that the key has no line break in the middle
403The request did not arrive over HTTPSMake sure the URL starts with https://
421The address was not recognised by the serverUse exactly the URL documented here, with no proxy rewriting it
429Too many requestsWait the number of seconds given in the Retry-After header. Most AI clients do this automatically
503FXaaS temporarily unable to validate the credentialDo not discard your credentials — they are still valid. Retry shortly
400Your client uses an unsupported MCP protocol versionUpdate your AI tool to a recent version

The server connects but no tools appear. The tool is likely configured for a local (stdio) server rather than a remote one. Confirm that your configuration has "type": "http" and a url, not a command.

A revoked credential still works. Validated credentials are cached for up to 10 minutes. A revoked credential stops being accepted once that window closes.

Usage limits


Each credential may issue up to 60 requests per minute, with a burst allowance of 20. Going over that returns 429 with a Retry-After header, and your AI client waits automatically before retrying.

These limits are generous for interactive use — a normal question consumes a single request.


Did this page help you?