CurrencyTransfer MCP Server
OfficialThis server lets AI assistants interact with the CurrencyTransfer FX platform, with read-only tools enabled by default and financial write/RSI tools available behind opt-in flags.
Reference data – fetch tradable currency pairs, RSI pairs, supported currencies, countries, holidays, same-currency transfers, bank account fields, and address requirements.
User info – view the authenticated user's profile, permissions, activated features, and relationship manager.
Quotes & trades – request and refresh FX quotes, list/view trades, book trades, upload/delete trade documents, and manage trade payments.
Beneficiaries – list, create, update, validate, verify, and soft-delete beneficiaries; request bank details via email; check payment purpose requirements; view beneficiary payments.
Balances – list account balances, get deposit details, and initiate payments from a balance account.
Rate alerts – create, list, view, update, validate, and delete target-rate alerts, with optional auto-booking of trades.
RSI (MOEX) market orders – create, list, view, update, and delete RSI-triggered alerts/market orders with optional tranches, beneficiary payments, and auto-booking (only when
CT_ENABLE_UNVERIFIED=1).
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@CurrencyTransfer MCP Server show me my account balances"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mcp-currencytransfer
MCP server for the CurrencyTransfer API. Lets AI assistants trade FX, manage beneficiaries, check balances, request quotes, and configure rate alerts, market orders and RSI alerts/market orders.
Prerequisites
Node.js 22 or newer (tested on Node 22 and 24 LTS)
A CurrencyTransfer account with API credentials
Related MCP server: Mono Banking MCP Server
Setup
git clone https://github.com/currencytransfer/mcp-currencytransfer.git
cd mcp-currencytransfer
npm install
npm run buildEnvironment variables
Variable | Required | Description |
| Yes | Your CurrencyTransfer account ID (Basic auth username) |
| Yes | Your CurrencyTransfer API key (Basic auth password) |
| No | Which environment to connect to: |
| No | Advanced override of the full base URL. Wins over |
| No | Set to |
| No | Set to |
| No | Set to |
Choosing an environment
Select the tier by name with CT_ENV:
| Base URL |
|
|
|
|
|
|
Each tier has its own credentials, so run one server instance per environment.
In your MCP host, add a separate entry per tier — e.g. "CurrencyTransfer (Prod)"
with CT_ENV=production and its production key, and "CurrencyTransfer (Stage)"
with CT_ENV=stage and its stage key. Don't try to switch tiers within a single
running server. On startup the server logs the resolved environment to stderr so a
prod/stage mix-up is immediately visible.
Supported surface
By default the server registers only read-only tools. Financial write tools
(create/update/delete beneficiaries, payments, trades, quotes, alerts, top-ups) are
hidden and rejected unless CT_ENABLE_WRITES=1. RSI market-order tools are disabled
unless CT_ENABLE_UNVERIFIED=1. Disabled tools are absent from discovery and
rejected if invoked directly.
MCP client configuration
This server uses stdio transport. Your MCP client will start it automatically — you do not need to run it in a terminal.
Add the following to your client's MCP config file. Most clients nest servers
under an mcpServers key; VS Code's native .vscode/mcp.json uses servers
instead (see the VS Code note below).
Client | Config file | Top-level key |
Cursor |
|
|
Claude Desktop |
|
|
VS Code |
|
|
Windsurf |
|
|
{
"mcpServers": {
"currencytransfer": {
"command": "node",
"args": ["<git-repo-clone-location>/mcp-currencytransfer/dist/stdio.js"],
"env": {
"CT_API_KEY": "your-account-id",
"CT_API_SECRET": "your-api-key",
"CT_ENV": "stage"
}
}
}
}For VS Code, use servers instead of mcpServers:
{
"servers": {
"currencytransfer": {
"command": "node",
"args": ["<git-repo-clone-location>/mcp-currencytransfer/dist/stdio.js"],
"env": {
"CT_API_KEY": "your-account-id",
"CT_API_SECRET": "your-api-key"
}
}
}
}Restart your MCP client after saving the config. The server should then appear in the client's MCP settings or tool list.
Tools
The server exposes tools for:
Currencies — tradable pairs, RSI pairs, payment methods, cut-off times
Countries — supported countries and payment methods
User — authenticated user profile and permissions
Quotes — FX quote requests
Trades — create, list, and manage trades and documents
Beneficiaries — manage payment beneficiaries
Balances — account balances
Rate alerts — standard and RSI (MOEX) rate alerts and market orders
Available Tools
51 toolscheck_payment_purpose_requiredA
Checks if a payment purpose is required when creating a payment to a specific beneficiary.
Inputs: uuid (required).
create_beneficiaryB
Creates a new beneficiary (recipient bank account).
Inputs: nickname (required), type (required), currency (required), bank_account_country (required), +17 more.
create_beneficiary_email_requestB
Sends an email to a beneficiary asking them to provide their bank account details.
Inputs: email (required), currency (required), bank_account_country (required), nickname.
create_quoteA
Creates a quote for a currency exchange. Returns broker quotations valid for 15 seconds. Use refresh_quote to get new quotations after expiry.
Inputs: sell_currency (required), buy_currency (required), side (required), amount (required), +3 more.
create_rate_alertA
Creates a rate alert. When the market rate reaches target_rate, you are notified. If book=true the trade is automatically booked.
Inputs: sell_currency (required), buy_currency (required), side (required), amount (required), +7 more.
create_rsi_alertA
Creates an RSI (MOEX) market order. Triggers when the RSI indicator for the currency pair reaches target_rsi. Optionally auto-books the trade and splits the total amount into tranches.
Inputs: sell_currency (required), buy_currency (required), side (required), amount (required), +11 more.
create_tradeA
Books a trade using a broker quotation UUID. The client must agree to terms. Broker quotations expire after 15 seconds — use refresh_quote if needed.
Inputs: broker_quotation_uuid (required), agree_to_terms (required).
create_trade_paymentB
Creates a payment for a trade, allocating funds to a beneficiary.
Inputs: trade_uuid (required), beneficiary_uuid (required), amount (required), reference, +3 more.
delete_beneficiaryC
Soft-deletes a beneficiary.
Inputs: uuid (required).
delete_beneficiary_email_requestB
Cancels a pending beneficiary email request.
Inputs: uuid (required), request_uuid (required).
delete_rate_alertB
Cancels and deletes a rate alert.
Inputs: uuid (required).
delete_rsi_alertC
Cancels and deletes an RSI (MOEX) market order.
Inputs: uuid (required).
delete_trade_documentA
Deletes an attached invoice or proof of settlement document from a trade.
Inputs: trade_uuid (required), uuid (required).
delete_trade_paymentB
Deletes a payment from a trade.
Inputs: trade_uuid (required), uuid (required).
get_address_requirementsB
Returns address requirements for all countries.
Inputs: no named parameters.
get_address_requirements_by_countryC
Returns address requirements for a specific country.
Inputs: country_code (required).
get_balance_deposit_detailsC
Returns bank account details for depositing funds to top up a balance.
Inputs: no named parameters.
get_bank_account_fieldsC
Returns required bank account fields per currency and country combination.
Inputs: currency, bank_account_country.
get_beneficiaryC
Returns detailed information about a specific beneficiary.
Inputs: uuid (required).
get_currency_holidaysA
Returns holidays for each currency that affect settlement dates.
Inputs: no named parameters.
get_currency_pairsA
Returns currency pairs the user is allowed to trade and the earliest delivery date for each pair.
Inputs: no named parameters.
get_rate_alertC
Returns details of a specific rate alert.
Inputs: uuid (required).
get_rsi_alertA
Returns details of a specific RSI (MOEX) market order.
Inputs: uuid (required).
get_rsi_currency_pairsA
Returns currency pairs the user is allowed to create RSI (MOEX market order) alerts with.
Inputs: no named parameters.
get_same_currency_transfersB
Returns information about supported same-currency transfer options.
Inputs: no named parameters.
get_supported_countriesB
Returns all countries supported by the platform.
Inputs: no named parameters.
get_supported_currenciesA
Returns all currencies supported by the platform.
Inputs: no named parameters.
get_tradeA
Returns detailed information about a specific trade including settlement accounts and documents.
Inputs: uuid (required).
get_trade_metadataC
Returns metadata for a specific trade.
Inputs: uuid (required).
get_trade_paymentA
Returns details of a specific payment within a trade.
Inputs: trade_uuid (required), uuid (required).
get_userA
Returns information about the current authenticated trading user, including permissions, activated features, and relationship manager details.
Inputs: no named parameters.
initiate_balance_paymentC
Initiates a payment from a balance account.
Inputs: uuid (required), beneficiary_uuid (required), amount (required), reference, +1 more.
list_balancesB
Returns balance information for all accounts.
Inputs: no named parameters.
list_beneficiariesC
Returns a paginated list of beneficiaries.
Inputs: page, per_page, currency, order.
list_beneficiary_email_requestsB
Returns email requests sent to a beneficiary asking them to provide bank account details.
Inputs: uuid (required).
list_beneficiary_paymentsC
Returns a list of payments made to a specific beneficiary.
Inputs: uuid (required), page, per_page.
list_rate_alertsB
Returns a list of rate alerts (target-rate market orders). Active alerts auto-book a trade when the target rate is reached if book=true.
Inputs: page, per_page, status.
list_rsi_alertsC
Returns a list of RSI (MOEX) market orders. These trigger automatically when the RSI indicator reaches the target_rsi threshold.
Inputs: page, per_page, status.
list_trade_paymentsC
Returns a list of payments associated with a trade.
Inputs: trade_uuid (required), page, per_page.
list_tradesB
Returns a paginated list of trades.
Inputs: page, per_page, buy_currency, sell_currency, +4 more.
refresh_quoteA
Refreshes broker quotations for an existing quote after the 15-second validity window has expired.
Inputs: uuid (required).
update_beneficiaryC
Updates an existing beneficiary.
Inputs: uuid (required), nickname, email, line1, +5 more.
update_beneficiary_email_requestC
Updates and resends a pending beneficiary email request.
Inputs: uuid (required), request_uuid (required), email, currency, +1 more.
update_rate_alertC
Updates an existing rate alert.
Inputs: uuid (required), target_rate, expiration_date, note, +2 more.
update_rsi_alertC
Updates an existing RSI (MOEX) market order.
Inputs: uuid (required), expiration_date, minimal_rate, book_remaining_amount_on_expiration, +3 more.
update_trade_paymentC
Updates an existing payment within a trade.
Inputs: trade_uuid (required), uuid (required), amount, reference, +3 more.
upload_trade_documentB
Uploads an invoice or proof of settlement document for a trade.
Inputs: trade_uuid (required), category (required), file_name (required), content_type (required), +1 more.
validate_beneficiaryB
Validates beneficiary parameters before creating. Returns any validation errors.
Inputs: nickname, type, currency, bank_account_country, +7 more.
validate_rate_alertA
Validates rate alert parameters before creating or updating. Returns any validation errors.
Inputs: sell_currency, buy_currency, side, amount, +4 more.
validate_trade_paymentC
Validates payment parameters before creating a payment for a trade.
Inputs: trade_uuid (required), beneficiary_uuid (required), amount (required), reference, +2 more.
verify_beneficiaryC
Verifies a beneficiary bank account (e.g. CoP check in the UK).
Inputs: uuid, account_number, sort_code, iban, +2 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 51 tools
Each tool targets a specific resource-action pair (e.g., create_beneficiary, validate_beneficiary, verify_beneficiary). Even closely related tools are differentiated by their verb, leaving no ambiguity.
All tool names follow the verb_noun pattern in snake_case (e.g., create_quote, refresh_quote, get_trade). The convention is strictly applied across all 51 tools.
With 51 tools, the server offers comprehensive coverage of currency exchange operations, but the large number may overwhelm agents and could be modularized into smaller, focused servers.
The tool surface covers core CRUD for beneficiaries, trades, payments, alerts, and metadata queries. Minor gaps exist (e.g., no delete_trade or update_trade, no list_quotes), but the essential workflow is fully supported.
Related MCP Connectors
Give your AI agent a wallet: live FX rates, swaps and payments in 140+ local currencies.
Live & historical FX rates and currency conversion for AI agents. No API keys.
Live & historical FX rates and currency conversion for AI agents. No API keys.
Connect AI agents to bank accounts, transactions, balances, and investments.
Related MCP Servers
AlicenseAqualityDmaintenanceEnables AI tools to manage financial operations through the Cresium Partner API, including transactions, payments, invoices, and wallet balances. It supports secure workflows such as bank address lookups, transfer previews, and signature request management.125MIT- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to perform Nigerian banking operations including account management, payments, and identity verification through the Mono Open Banking API.59MIT
- AlicenseNot gradedqualityBmaintenanceBridges AI assistants with the Revolut Business API to enable banking operations such as listing accounts, checking balances, viewing transactions, managing counterparties, and initiating transfers through natural language.88 npm38MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to perform forex trading operations through brokerages with risk controls and safety guardrails.MIT