Currency Exchange & Crypto Rates
Conversión de forex y criptomonedas en tiempo real con conmutación por error de múltiples fuentes en 5 proveedores. Más de 60 monedas fiduciarias, más de 30 criptomonedas, sin necesidad de claves API.
Documentación
Servidor MCP de Currency Exchange & Crypto Rates
Un servidor MCP de cambio de divisas para tipos de cambio forex en tiempo real y precios de criptomonedas mediante el Protocolo de Contexto de Modelo. Convierte entre más de 60 monedas fiduciarias y más de 30 criptomonedas, con conmutación por error de múltiples fuentes, resolución inteligente de divisas, conversión por lotes y consultas de tipos de cambio históricos. No se necesitan claves API para las fuentes de datos ascendentes.
Herramientas
convert_currency
Convierte un importe entre cualquier par de monedas fiduciarias o criptomonedas compatible.
Entrada:
{ "amount": 100, "from": "USD", "to": "INR" }
Salida:
{
"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
}
El lenguaje natural también funciona:
{ "amount": 1, "from": "bitcoin", "to": "rupees" }
batch_convert
Convierte un importe de una moneda a múltiples destinos en una sola llamada. Más rentable que múltiples conversiones individuales.
Entrada:
{ "amount": 1000, "from": "USD", "to": ["EUR", "GBP", "INR", "JPY", "BTC"] }
Salida:
{
"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"
}
Admite hasta 50 destinos por llamada. Las divisas duplicadas y las iguales a la fuente se filtran automáticamente.
get_exchange_rates
Obtén los tipos de cambio actuales de una moneda base frente a múltiples destinos.
Entrada:
{ "base": "USD" }
Devuelve los tipos de las 20 principales divisas (USD, EUR, GBP, JPY, INR, AED, CAD, AUD, CHF, CNY, SGD, HKD, KRW, BRL, MXN, ZAR, TRY, THB, SAR, BTC) por defecto, o especifica destinos:
{ "base": "BTC", "targets": ["USD", "EUR", "INR", "GBP"] }
Salida:
{
"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
Obtén tipos de cambio históricos para una fecha única o un rango de fechas (máximo 365 días).
Fecha única:
{ "base": "USD", "target": "INR", "date": "2025-01-15" }
Salida:
{
"base": "USD",
"target": "INR",
"date": "2025-01-15",
"rate": 86.45,
"source": "frankfurter",
"cached": false
}
Rango de fechas:
{ "base": "USD", "target": "EUR", "startDate": "2025-01-01", "endDate": "2025-01-31" }
Salida:
{
"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
}
Divisas Compatibles
Fiduciarias (más de 60 divisas)
| Principales | Golfo/Oriente Medio | Asia-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 |
Criptomonedas (30 monedas)
| Símbolo | Nombre | Símbolo | Nombre |
|---|---|---|---|
| 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 |
Resolución Inteligente de Divisas
Acepta códigos ISO 4217, símbolos de criptomonedas y lenguaje natural:
| Entrada | Se Resuelve A |
|---|---|
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 |
Fuentes de Datos
| Datos | Principal | Respaldo |
|---|---|---|
| Tipos fiduciarios (actuales) | ExchangeRate-API (160 divisas, diario) | fawazahmed0/exchange-api (CDN, más de 150 divisas) |
| Tipos de criptomonedas (actuales) | Coinbase Public API (más de 200 monedas, tiempo real) | CoinGecko (más de 10K monedas, sin clave) |
| Tipos históricos | Frankfurter.app (datos BCE, 33 divisas, desde 1999) | Endpoints de fecha de fawazahmed0 |
Todas las API ascendentes son de autenticación cero (no se requieren claves API).
Características
- Respaldo de múltiples fuentes: conmutación por error automática entre proveedores
- Conversiones fiduciaria-a-fiduciaria, cripto-a-fiduciaria, fiduciaria-a-cripto y cripto-a-cripto
- Cripto-a-cripto mediante tipo cruzado USD (p. ej., BTC a ETH)
- Conversión por lotes: convierte a hasta 50 divisas en una sola llamada
- Resolución inteligente de divisas: lenguaje natural, códigos ISO y símbolos de criptomonedas
- Tipos históricos con series temporales y estadísticas de cambio (máximo, mínimo, promedio, % de cambio)
- Caché LRU con TTL escalonados: 30 min fiduciarias, 2 min cripto, 24 horas históricas
- Limitación de velocidad por dominio (1,5 s entre solicitudes a la misma API ascendente)
- Validación de esquema Zod en todas las entradas de herramientas
- Validación de fechas: rechaza fechas futuras, formatos no válidos, rangos superiores a 365 días
Precios
| Evento | Descripción | Precio (USD) |
|---|---|---|
currency-convert | Conversión de par único | $0,003 |
batch-convert | Convertir a hasta 50 divisas a la vez | $0,008 |
exchange-rates | Consulta de tipos de cambio | $0,003 |
historical-rate | Consulta de tipo histórico | $0,008 |
Limitaciones
- Tipos históricos de criptomonedas: No compatibles: Frankfurter y fawazahmed0 solo cubren fiduciarias
- Cobertura de Frankfurter: Solo ~33 divisas del BCE: las divisas del Golfo (AED, SAR, KWD, QAR) usan el respaldo de fawazahmed0 para históricos
- Actualidad de tipos fiduciarios: ExchangeRate-API se actualiza a diario, no en tiempo real
- Actualidad de tipos cripto: Se almacenan en caché durante 2 minutos para respetar los límites de la API ascendente
- Series temporales: Solo disponibles para divisas compatibles con Frankfurter (BCE)
- Límites de velocidad ascendentes: CoinGecko sin clave tiene ~10 solicitudes/min; Coinbase ~10 solicitudes/seg
- Límite de tamaño de respuesta de 1 MB por solicitud
- Limitado a 1 solicitud por cada 1,5 segundos por dominio ascendente
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}'
Ejecución Local
npm install
npm run start:dev
El servidor se inicia en http://localhost:3000/mcp.
Conéctate a Tu Cliente de IA
Añade esto a la configuración de tu 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"
}
}
}
}
Reemplaza YOUR_APIFY_API_TOKEN con tu token de API de Apify.
Implementación
apify login
apify push
Configura el modo de espera en la plataforma Apify después de enviar.
Preguntas Frecuentes
¿Necesito claves API para los proveedores de tipos de cambio ascendentes? No. Las 5 fuentes de datos (ExchangeRate-API, fawazahmed0, Frankfurter, Coinbase, CoinGecko) son públicas y gratuitas. Solo necesitas un token de API de Apify para tu Actor implementado.
¿Cómo funciona la conmutación por error de múltiples fuentes? Cada solicitud intenta primero con el proveedor principal. Si falla o se agota el tiempo de espera, el servidor reintenta automáticamente con el proveedor de respaldo. Fiduciarias: ExchangeRate-API → fawazahmed0. Cripto: Coinbase → CoinGecko. Históricos: Frankfurter → fawazahmed0.
¿Puedo convertir entre dos criptomonedas (p. ej., BTC a ETH)? Sí. Las conversiones cripto-a-cripto usan un tipo cruzado USD automáticamente.
¿Cuál es la actualidad de los tipos? Los tipos fiduciarios se actualizan a diario. Los tipos cripto se almacenan en caché durante 2 minutos. Los tipos históricos se almacenan en caché durante 24 horas.
¿Se admiten tipos históricos de criptomonedas? No. Las fuentes de datos históricos (Frankfurter/BCE y fawazahmed0) solo cubren divisas fiduciarias.
¿Cómo lo ejecuto localmente?
npm install && npm run start:dev: el endpoint MCP estará disponible en http://localhost:3000/mcp.