Currency Exchange & Crypto Rates
Conversão em tempo real de forex e criptomoedas com failover multi-fonte em 5 provedores. Mais de 60 moedas fiduciárias, mais de 30 criptomoedas, sem necessidade de chaves de API.
Documentação
Servidor MCP de Câmbio de Moedas e Criptomoedas
Um servidor MCP de câmbio de moedas para taxas forex em tempo real e preços de criptomoedas via Model Context Protocol. Converta entre mais de 60 moedas fiduciárias e mais de 30 criptomoedas — com failover de múltiplas fontes, resolução inteligente de moedas, conversão em lote e consultas de taxas históricas. Não são necessárias chaves de API para as fontes de dados upstream.
Ferramentas
convert_currency
Converta um valor entre qualquer par de moedas fiduciárias ou criptomoedas suportado.
Entrada:
{ "amount": 100, "from": "USD", "to": "INR" }
Saída:
{
"amount": 100,
"from": "USD",
"to": "INR",
"result": 8312,
"rate": 83.12,
"inverseRate": 0.012031,
"timestamp": "2026-02-14T12:00:00.000Z",
"source": "exchangerate-api",
"cached": false
}
Linguagem natural também funciona:
{ "amount": 1, "from": "bitcoin", "to": "rupees" }
batch_convert
Converta um valor de uma moeda para múltiplos destinos em uma única chamada. Mais econômico do que múltiplas conversões individuais.
Entrada:
{ "amount": 1000, "from": "USD", "to": ["EUR", "GBP", "INR", "JPY", "BTC"] }
Saída:
{
"amount": 1000,
"from": "USD",
"conversions": [
{ "to": "EUR", "result": 920, "rate": 0.92, "inverseRate": 1.086957, "source": "exchangerate-api", "cached": false },
{ "to": "GBP", "result": 790, "rate": 0.79, "inverseRate": 1.265823, "source": "exchangerate-api", "cached": false },
{ "to": "INR", "result": 83120, "rate": 83.12, "inverseRate": 0.012031, "source": "exchangerate-api", "cached": false },
{ "to": "JPY", "result": 149500, "rate": 149.5, "inverseRate": 0.006689, "source": "exchangerate-api", "cached": false },
{ "to": "BTC", "result": 0.02, "rate": 0.00002, "inverseRate": 50000, "source": "coinbase", "cached": false }
],
"timestamp": "2026-02-14T12:00:00.000Z"
}
Suporta até 50 destinos por chamada. Moedas duplicadas e iguais à origem são filtradas automaticamente.
get_exchange_rates
Obtenha taxas de câmbio atuais para uma moeda base em relação a múltiplos destinos.
Entrada:
{ "base": "USD" }
Retorna taxas para as 20 principais moedas (USD, EUR, GBP, JPY, INR, AED, CAD, AUD, CHF, CNY, SGD, HKD, KRW, BRL, MXN, ZAR, TRY, THB, SAR, BTC) por padrão, ou especifique os destinos:
{ "base": "BTC", "targets": ["USD", "EUR", "INR", "GBP"] }
Saída:
{
"base": "BTC",
"rates": {
"USD": 51234.56,
"EUR": 47345.12,
"INR": 4258567.12,
"GBP": 40567.89
},
"timestamp": "2026-02-14T12:00:00.000Z",
"source": "coinbase",
"cached": false
}
get_historical_rate
Obtenha taxas de câmbio históricas para uma única data ou um intervalo de datas (máximo 365 dias).
Data única:
{ "base": "USD", "target": "INR", "date": "2025-01-15" }
Saída:
{
"base": "USD",
"target": "INR",
"date": "2025-01-15",
"rate": 86.45,
"source": "frankfurter",
"cached": false
}
Intervalo de datas:
{ "base": "USD", "target": "EUR", "startDate": "2025-01-01", "endDate": "2025-01-31" }
Saída:
{
"base": "USD",
"target": "EUR",
"period": { "startDate": "2025-01-01", "endDate": "2025-01-31" },
"rates": [
{ "date": "2025-01-02", "rate": 0.9234 },
{ "date": "2025-01-03", "rate": 0.9241 }
],
"change": {
"high": 0.9312,
"low": 0.9189,
"average": 0.9248,
"changePct": 0.94
},
"source": "frankfurter",
"cached": false
}
Moedas Suportadas
Fiduciárias (mais de 60 moedas)
| Principais | Golfo/Oriente Médio | Ásia-Pacífico | Américas | Europa | África |
|---|---|---|---|---|---|
| USD | AED | INR | BRL | EUR | ZAR |
| EUR | SAR | JPY | MXN | GBP | NGN |
| GBP | KWD | CNY | ARS | CHF | KES |
| JPY | QAR | SGD | CLP | SEK | EGP |
| AUD | BHD | HKD | COP | NOK | GHS |
| CAD | OMR | KRW | PEN | DKK | MAD |
| CHF | JOD | TWD | UYU | PLN | TND |
| CNY | ILS | THB | CZK | ||
| INR | EGP | MYR | HUF | ||
| IQD | PHP | RON | |||
| IRR | IDR | BGN | |||
| LBP | VND | ISK | |||
| BDT | RUB | ||||
| PKR | UAH | ||||
| LKR | HRK |
Criptomoedas (30 moedas)
| Símbolo | Nome | Símbolo | Nome |
|---|---|---|---|
| BTC | Bitcoin | XRP | Ripple |
| ETH | Ethereum | LTC | Litecoin |
| SOL | Solana | BCH | Bitcoin Cash |
| DOGE | Dogecoin | ATOM | Cosmos |
| ADA | Cardano | NEAR | NEAR Protocol |
| DOT | Polkadot | APT | Aptos |
| AVAX | Avalanche | ARB | Arbitrum |
| MATIC | Polygon | OP | Optimism |
| LINK | Chainlink | SHIB | Shiba Inu |
| UNI | Uniswap | USDT | Tether |
| BNB | BNB | USDC | USD Coin |
| XLM | Stellar | ALGO | Algorand |
| FIL | Filecoin | AAVE | Aave |
| CRO | Cronos | PEPE | Pepe |
| SUI | Sui | TRX | Tron |
Resolução Inteligente de Moedas
Aceita códigos ISO 4217, símbolos de criptomoedas e linguagem natural:
| Entrada | Resolve Para |
|---|---|
USD, dollars, bucks | USD |
EUR, euro, euros | EUR |
GBP, pounds, sterling | GBP |
INR, rupees, rupee | INR |
JPY, yen | JPY |
CNY, yuan, renminbi, rmb | CNY |
AED, dirham, dirhams | AED |
SAR, riyal, riyals | SAR |
BTC, bitcoin | BTC |
ETH, ethereum, ether | ETH |
SOL, solana | SOL |
DOGE, dogecoin | DOGE |
Fontes de Dados
| Dados | Primária | Fallback |
|---|---|---|
| Taxas fiduciárias (atuais) | ExchangeRate-API (160 moedas, diárias) | fawazahmed0/exchange-api (CDN, mais de 150 moedas) |
| Taxas de criptomoedas (atuais) | Coinbase Public API (mais de 200 moedas, tempo real) | CoinGecko (mais de 10 mil moedas, sem chave) |
| Taxas históricas | Frankfurter.app (dados do BCE, 33 moedas, desde 1999) | Endpoints de data do fawazahmed0 |
Todas as APIs upstream são sem autenticação (nenhuma chave de API necessária).
Recursos
- Fallback de múltiplas fontes — failover automático entre provedores
- Conversões fiduciária-para-fiduciária, cripto-para-fiduciária, fiduciária-para-cripto e cripto-para-cripto
- Cripto-para-cripto via taxa cruzada em USD (ex.: BTC para ETH)
- Conversão em lote — converta para até 50 moedas em uma única chamada
- Resolução inteligente de moedas — linguagem natural, códigos ISO e símbolos de criptomoedas
- Taxas históricas com séries temporais e estatísticas de variação (máxima, mínima, média, % de variação)
- Cache LRU com TTLs em camadas — 30 min para fiduciárias, 2 min para cripto, 24 horas para históricas
- Limitação de taxa por domínio (1,5s entre requisições para a mesma API upstream)
- Validação de esquema Zod em todas as entradas das ferramentas
- Validação de datas — rejeita datas futuras, formatos inválidos, intervalos acima de 365 dias
Preços
| Evento | Descrição | Preço (USD) |
|---|---|---|
currency-convert | Conversão de par único | $0,003 |
batch-convert | Converter para até 50 moedas de uma vez | $0,008 |
exchange-rates | Consulta de taxas de câmbio | $0,003 |
historical-rate | Consulta de taxa histórica | $0,008 |
Limitações
- Taxas históricas de criptomoedas: Não suportadas — Frankfurter e fawazahmed0 cobrem apenas moedas fiduciárias
- Cobertura do Frankfurter: Apenas ~33 moedas do BCE — moedas do Golfo (AED, SAR, KWD, QAR) usam fallback do fawazahmed0 para dados históricos
- Atualização das taxas fiduciárias: ExchangeRate-API atualiza diariamente, não em tempo real
- Atualização das taxas de criptomoedas: Armazenadas em cache por 2 minutos para respeitar os limites das APIs upstream
- Séries temporais: Disponível apenas para moedas suportadas pelo Frankfurter (BCE)
- Limites das APIs upstream: CoinGecko sem chave tem ~10 req/min; Coinbase ~10 req/seg
- Limite de resposta de 1MB por requisição
- Limitado a 1 requisição a cada 1,5 segundos por domínio upstream
Uso
Endpoint MCP: POST /mcp
# Convert 100 USD to INR
curl -X POST https://your-actor.apify.actor/mcp \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_APIFY_API_TOKEN" \
-d '{"jsonrpc":"2.0","method":"tools/call","params":{"name":"convert_currency","arguments":{"amount":100,"from":"USD","to":"INR"}},"id":1}'
# Get BTC exchange rates
curl -X POST https://your-actor.apify.actor/mcp \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_APIFY_API_TOKEN" \
-d '{"jsonrpc":"2.0","method":"tools/call","params":{"name":"get_exchange_rates","arguments":{"base":"BTC","targets":["USD","EUR","INR"]}},"id":2}'
# Historical rate for a specific date
curl -X POST https://your-actor.apify.actor/mcp \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_APIFY_API_TOKEN" \
-d '{"jsonrpc":"2.0","method":"tools/call","params":{"name":"get_historical_rate","arguments":{"base":"USD","target":"INR","date":"2025-01-15"}},"id":3}'
Executando Localmente
npm install
npm run start:dev
O servidor inicia em http://localhost:3000/mcp.
Conecte ao Seu Cliente de IA
Adicione isto à configuração do seu cliente MCP (Claude Desktop, Cline, Cursor, etc.):
{
"mcpServers": {
"currency-exchange": {
"url": "https://vector384--currency-exchange-mcp.apify.actor/mcp",
"headers": {
"Authorization": "Bearer YOUR_APIFY_API_TOKEN"
}
}
}
}
Substitua YOUR_APIFY_API_TOKEN pelo seu token de API do Apify.
Implantação
apify login
apify push
Configure o modo standby na plataforma Apify após o envio.
FAQ
Preciso de chaves de API para os provedores de taxas de câmbio upstream? Não. Todas as 5 fontes de dados (ExchangeRate-API, fawazahmed0, Frankfurter, Coinbase, CoinGecko) são públicas e gratuitas. Você só precisa de um token de API do Apify para o seu Actor implantado.
Como funciona o failover de múltiplas fontes? Cada requisição tenta o provedor primário primeiro. Se falhar ou expirar, o servidor tenta automaticamente com o provedor fallback. Fiduciárias: ExchangeRate-API → fawazahmed0. Cripto: Coinbase → CoinGecko. Históricas: Frankfurter → fawazahmed0.
Posso converter entre duas criptomoedas (ex.: BTC para ETH)? Sim. Conversões cripto-para-cripto usam uma taxa cruzada em USD automaticamente.
Qual é a atualização das taxas? Taxas fiduciárias atualizam diariamente. Taxas de criptomoedas são armazenadas em cache por 2 minutos. Taxas históricas são armazenadas em cache por 24 horas.
Taxas históricas de criptomoedas são suportadas? Não. As fontes de dados históricos (Frankfurter/BCE e fawazahmed0) cobrem apenas moedas fiduciárias.
Como executo localmente?
npm install && npm run start:dev — o endpoint MCP estará disponível em http://localhost:3000/mcp.