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 doThis 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 neededThere 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-tokenheader is not used here — onlyclient_idandclient_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:
| Tool | Where you configure it |
|---|---|
| Claude Code | a single terminal command |
| Claude Desktop | claude_desktop_config.json |
| Cursor | .cursor/mcp.json |
| GitHub Copilot (VS Code) | .vscode/mcp.json |
Claude on the web is not supportedCustom connectors added at claude.ai only accept OAuth, and the FXaaS MCP Server authenticates with your existing
client_idandclient_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.
Treat the key as a passwordThe 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 upOlder 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 insideargs:{ "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.jsonholds 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.
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/healthThe expected response is {"status":"ok"}.
Answers may come in PortugueseThe 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 hiddenThe 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-remessaonlineserver and selectonboarding - Cursor and Copilot: type
/in the chat and look for theonboardingprompt of thefxaas-remessaonlineserver
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?
| Value | Meaning |
|---|---|
INDIVIDUAL | An individual person |
BUSINESS | A 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?
| Value | Meaning |
|---|---|
OUTBOUND | Sending money abroad |
INBOUND | Receiving money from abroad |
Again, if you operate in both directions, list the two.
Direction is not a separate set of endpointsNo FXaaS route contains
inboundoroutboundin 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:
| Purpose | Typical use |
|---|---|
SERVICE | Paying for or receiving payment for services |
COMEX | Foreign trade — import and export of goods |
FAMILY_MAINTENANCE | Sending money to support family abroad |
EDUCATION_EXPENSES | Tuition and study expenses abroad |
OWN_ACCOUNT_ABROAD | Transferring 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 storedOnly 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:
| Warning | What it means |
|---|---|
| Purpose not recognised by the API | That purpose was not saved because it is not part of the FXaaS vocabulary. The other answers were saved normally |
| Purpose with no documented quote | It was saved, but it does not appear in any quotation direction, so it produces no prioritisation |
| Quote and transaction disagree | The 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?
TipAsk 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 can | It cannot |
|---|---|
| Explain any endpoint, its parameters and its response | Look up a real customer, quote or transaction |
| Show request and response schemas | Return balances, rates, spread or pricing |
| Explain business domains and their lifecycles | Create, update or cancel anything |
| List the purposes valid for each direction | Access production data of any kind |
| Help you interpret an error you received | Answer 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
| Status | What it means | What to do |
|---|---|---|
401 | Missing, malformed or invalid credential | Rebuild the connection key from Step 1 and confirm you are using sandbox credentials. Check that the key has no line break in the middle |
403 | The request did not arrive over HTTPS | Make sure the URL starts with https:// |
421 | The address was not recognised by the server | Use exactly the URL documented here, with no proxy rewriting it |
429 | Too many requests | Wait the number of seconds given in the Retry-After header. Most AI clients do this automatically |
503 | FXaaS temporarily unable to validate the credential | Do not discard your credentials — they are still valid. Retry shortly |
400 | Your client uses an unsupported MCP protocol version | Update 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.
Updated about 5 hours ago

