Análisis on-chain de Bitcoin y Ethereum para asistentes de IA
¿Qué es MCP? El Model Context Protocol es el estándar abierto (Anthropic, nov 2024) que permite a los asistentes de IA invocar herramientas externas directamente — sin copiar y pegar, sin API manual. Una vez conectado, Claude o Cursor pueden consultar nuestros datos de ballenas dentro del chat.
Conecta Claude, Cursor, ChatGPT o cualquier cliente MCP con datos de transacciones de ballenas en tiempo real, MVRV por dirección (estado de ganancia/pérdida de cada wallet) y clústeres canónicos de Meiklejohn (agrupación de wallets vía common-input-ownership) — 30 herramientas, instalación con un clic, sin copiar y pegar claves API.
¿Por qué este MCP en lugar del MCP de Glassnode?
Glassnode (proveedor comercial de análisis on-chain) también tiene un servidor MCP — excelente para métricas agregadas de mercado. Nosotros añadimos lo que les falta: análisis por dirección, cobertura multi-chain, OAuth con un clic y una doctrina editorial para que la IA cite con fidelidad.
MVRV por dirección
Calcula el coste realizado frente al valor de mercado de cualquier dirección a partir de su historial de UTXO. Glassnode solo expone MVRV agregado a nivel de red.
Clústeres canónicos de Meiklejohn
3,85 M de clústeres construidos a partir de 1,68 M de transacciones multi-input. Identifica familias de wallets, custodios y pools de exchanges — Glassnode-MCP no expone datos de clústeres.
OAuth con un clic
Añádelo a claude.ai con un clic. El plan Free se aprueba automáticamente; el plan Premium inicia sesión con Telegram, Google o Email. Sin copiar y pegar claves API ni gestionar variables de entorno.
Multi-chain (BTC + ETH)
El MCP de Glassnode es solo BTC. Nosotros exponemos datos de ballenas Ethereum junto a Bitcoin — un servidor MCP, dos cadenas.
Política editorial para IA
El recurso editorial de doctrina (swiss-whale://docs/doctrine) indica a los clientes de IA cómo citar nuestros datos con fidelidad — observaciones descriptivas, nunca señales de trading.
Plan Free permanente
1.000 llamadas/día, TTL de token de 90 días, sin tarjeta de crédito. Glassnode exige créditos API incluso para exploración básica.
30 herramientas en 6 categorías
Todas las herramientas son de solo lectura. Restringidas por plan donde se indique. Combínalas libremente con prompts en lenguaje natural en tu cliente MCP.
📍 Análisis por dirección 6
whale_lookup(address)FreePerfil completo: volume index, etiqueta de entidad, holdings, frecuencia, exchange-share.
whale_address_mvrv(address)FreeMVRV por dirección con balance cruzado-validado + flag de calidad de datos para vaults de alta rotación.
whale_address_cluster(address)FreeClúster canónico de Meiklejohn (3,85 M en total). Recurre a co-ocurrencia para direcciones que solo reciben.
whale_address_history(address, limit, days)PremiumHistorial cronológico completo con precios USD-al-momento-de-la-tx para reconstruir la cost basis.
whale_top_holders(limit, min_btc, confidence)FreeTop de ballenas no-exchange por holdings estimados, filtradas por confianza.
whale_dormant_wakeups(days, min_age_years)FreeDirecciones inactivas durante mucho tiempo que vuelven a moverse.
🔗 Nivel de transacción 3
whale_recent(min_btc, flow_type, hours, limit)FreeMovimientos recientes que califican como whale, con contexto de clúster y entidad.
whale_tx_detail(txid)FreeUna transacción con bloque, fee, emisor/receptor y tipo de flujo.
whale_entity_search(query)FreeBúsqueda en 1.100+ etiquetas de entidades (Binance, Kraken, Coinbase, custodios).
📊 Métricas agregadas 8
whale_cohort_breakdown(days)FreeMega/Major/Standard/Small × conteos por tipo de flujo.
whale_exchange_flows(days)FreeFlujo diario in/out/neto BTC en todas las direcciones etiquetadas como exchange.
whale_hodl_wave(days)FreeDistribución de edad UTXO sobre el supply de ballenas.
whale_sopr(days)FreeSOPR específico de ballenas (UTXOs ≥ 100 BTC).
whale_miner_balances(days)FreeHoldings de BTC de los pools de minería en el tiempo.
whale_frequency_context(btc, flow)FreeContexto «N-ésimo movimiento similar de la semana».
whale_btc_price(hours, granularity)FreePrecio BTC + overlay de eventos de ballenas.
whale_btc_indicators()FreeDistancia al Pi Cycle Top + estado actual de Stock-to-Flow.
🌐 Contexto de mercado 3
whale_top_coins(symbol?)Free16 monedas: precio, cambio 24 h, sparkline.
whale_fear_greed(days)FreeValores diarios del Fear & Greed Index de alternative.me.
whale_dominance(days)FreeTendencias de dominio de capitalización de BTC y ETH.
📊 Benchmarks (vs. activos tradicionales) 2
whale_benchmark_prices(symbols, days)FreeCierres diarios de SPY / GLD / AGG / SP500 / NASDAQ (vía yfinance, S&P desde 1993).
whale_benchmark_compare(period_days, baseline)FreeComparativa de retorno acumulado: BTC vs. S&P 500 / Oro / cartera 70/30 (rebalanceo mensual) en cualquier periodo.
Ξ Ethereum (Glassnode-MCP es solo BTC) 2
whale_eth_recent(min_eth, hours, limit)FreeTransacciones recientes de ballenas ETH con clasificación por tipo de whale.
whale_eth_cohort_breakdown(days)FreeMovimientos de ballenas ETH por importe × tipo.
⚙ Meta y consciente de plan 2
whale_my_status()FreeMuestra tu plan, scopes, rate limit y capacidades.
whale_export_csv(table, days, min_btc, limit)ResearchExportación masiva en CSV de whale_trades / eth_whale_trades / whale_outputs (máx. 100k filas).
Más 7 recursos de solo lectura: swiss-whale://help/getting-started, swiss-whale://help/glossary, swiss-whale://help/comparison, swiss-whale://docs/methodology, swiss-whale://docs/doctrine, swiss-whale://ledger/latest, swiss-whale://openapi.
Instalación en 30 segundos
Elige tu cliente. El plan Free no requiere registro. Los planes Premium (Telegram, Google o Email) desbloquean rate limits mayores y herramientas exclusivas Premium.
Para cualquier cliente compatible con MCP que soporte transporte stdio — envuelve nuestro endpoint HTTP a través del puente npm mcp-remote:
npx -y mcp-remote https://mcp.btcwhalealerts.com/mcp
Funciona con Claude Desktop, Zed, Continue, JetBrains AI y cualquier cliente que detecte servidores MCP vía npx. Requiere Node.js ≥ 18. El paquete mcp-remote gestiona OAuth automáticamente — la primera ejecución abre el navegador para el flujo de consentimiento y luego cachea el bearer token localmente.
https://mcp.btcwhalealerts.com/mcp. Pulsa Conectar.Añade en claude_desktop_config.json (o settings.json en versiones recientes con plugins):
{
"mcpServers": {
"swiss-whale": {
"url": "https://mcp.btcwhalealerts.com/mcp",
"transport": "streamable-http"
}
}
}
Ubicación del archivo:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
Cierra Claude Desktop por completo (bandeja del sistema → Salir) y vuelve a abrirlo.
Añade en ~/.cursor/mcp.json (global) o .cursor/mcp.json (proyecto):
{
"mcpServers": {
"swiss-whale": {
"url": "https://mcp.btcwhalealerts.com/mcp"
}
}
}
Cursor recarga la config MCP automáticamente; si no, reinicia Cursor.
Añade en ~/.continue/config.json bajo experimental.modelContextProtocolServers:
{
"experimental": {
"modelContextProtocolServers": [
{
"name": "swiss-whale",
"transport": {
"type": "streamable-http",
"url": "https://mcp.btcwhalealerts.com/mcp"
}
}
]
}
}
Añade en settings.json de Zed bajo context_servers:
{
"context_servers": {
"swiss-whale": {
"command": {
"path": "npx",
"args": ["mcp-remote", "https://mcp.btcwhalealerts.com/mcp"]
}
}
}
}
mcp-remote envuelve nuestro transporte HTTP para clientes que solo soportan stdio.
JSON-RPC 2.0 directo sobre HTTP. Plan Free anónimo:
# 1. Initialize a session
curl -i -X POST https://mcp.btcwhalealerts.com/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize",
"params":{"protocolVersion":"2025-06-18",
"capabilities":{},
"clientInfo":{"name":"curl","version":"1"}}}'
# Capture mcp-session-id from the response headers.
# 2. Acknowledge initialization
curl -X POST https://mcp.btcwhalealerts.com/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "mcp-session-id: $SESSION_ID" \
-d '{"jsonrpc":"2.0","method":"notifications/initialized"}'
# 3. List tools
curl -X POST https://mcp.btcwhalealerts.com/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "mcp-session-id: $SESSION_ID" \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/list"}'
# 4. Call a tool
curl -X POST https://mcp.btcwhalealerts.com/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "mcp-session-id: $SESSION_ID" \
-d '{"jsonrpc":"2.0","id":3,"method":"tools/call",
"params":{"name":"whale_btc_indicators","arguments":{}}}'
Para Premium/Research, completa antes el flujo OAuth en /oauth/authorize y añade Authorization: Bearer <token> en las siguientes llamadas.
Recetario de workflows
Workflows encadenados reales que puedes pegar hoy en Claude o Cursor. Cada ejemplo muestra el output real que obtuvimos mientras construíamos este servidor.
🔍 Identificar un wallet custodio
Objetivo: averiguar qué exchange o institución controla una dirección de ballena desconocida.
Herramienta:
whale_lookup → entity_label «Bitfinex», is_exchange true, exchange_share 99,87 %.
Herramienta:
whale_address_cluster → method=canonical, cluster_size=131.729 direcciones, cluster_total_btc=599.066.
Herramienta:
whale_lookup en cada uno → todos etiquetados «Bitfinex» mediante propagación por clúster. Entidad confirmada.
Conclusión: Tres llamadas, atribución completa. Glassnode-MCP no puede hacer esto — no tiene herramienta de clúster.
💰 Calcular MVRV por dirección con conciencia de calidad de datos
Objetivo: ¿este wallet de ballena está en beneficio o cerca de su cost basis?
Herramienta:
whale_address_mvrv → balance 1.173.567 BTC, MVRV 1,056, _data_quality.status «scaled_to_cache».
Conclusión: MVRV ≈ 1 significa que la dirección está en cost basis — sin presión de distribución. La herramienta marca su propia calidad de datos para que la IA cite la advertencia correctamente.
🛌 Encontrar ballenas dormidas que despiertan
Objetivo: detectar direcciones largamente inactivas que acaban de moverse.
Tool:
whale_dormant_wakeups(days=30, min_age_years=5)Fila de ejemplo: 3CgKHXR17eh2xCj2RGnH... — 6,1 años inactiva, 129.534 BTC, recién movida.
Herramienta:
whale_address_mvrv → realized_cost_usd de monedas adquiridas en 2018 — probablemente enormes plusvalías latentes.
📈 Detectar riesgo de zona de distribución
Objetivo: ¿las ballenas están distribuyendo o acumulando ahora mismo?
Tools:
whale_btc_indicators + whale_sopr(days=90) + whale_cohort_breakdown(days=7)
Ξ Comparar actividad de ballenas BTC vs ETH
Objetivo: ¿en qué cadena están más activas las ballenas esta semana?
whale_cohort_breakdown(days=7) + whale_eth_cohort_breakdown(days=7)Compara: conteos del bucket Mega, ratios de flow-type, total-BTC vs total-ETH (normalizado en USD).
Conclusión: Glassnode-MCP no puede hacer esta comparación — es solo BTC. El análisis multi-chain es una sola pregunta en nuestro MCP.
📦 Exportación masiva para investigación académica Research
Objetivo: extraer 100k transacciones de ballenas para análisis estadístico offline.
Tool:
whale_export_csv(table="whale_trades", days=30, min_btc=100, limit=100000)Devuelve un CSV con txid, timestamp, total_btc, main_sender, main_recipient, fee, fee_rate, score.
Cita: Añade en la sección de metodología: «Datos on-chain de Swiss Whale Intelligence (btcwhalealerts.com), obtenidos vía servidor MCP.»
📊 BTC vs. activos tradicionales — comparativa honesta de benchmarks
Objetivo: situar el rendimiento de BTC frente a los activos con los que un banquero privado realmente lo compararía.
Herramienta:
whale_benchmark_compare(period_days=365, baseline="BTC")
Conclusión: Salida real y sin editar de este servidor — BTC quedó en −18 % a 12 meses, mientras que el oro y la cartera 70/30 ofrecieron retornos positivos en el mismo periodo. Doctrina: contar lo que ha pasado, no lo que debería haber pasado. Una comparativa honesta construye credibilidad mejor que el marketing de hype. Datos vía yfinance, cierre diario, series de ETF ajustadas por dividendos.
🐍 Plantillas de Jupyter Notebook — listas en 5 minutos
Objetivo: traer los datos de la REST API a un notebook, unir con datos de mercado públicos, generar un artefacto de research que puedas pegar en un informe.
whale_flow_analysis.ipynb— flujo neto diario hacia/desde exchanges + desglose por entidad + distribución de intent + cruce con sentimiento (ventana 30 días).address_profile_mvrv.ipynb— elige cualquier dirección de ballena, reconstruye su curva de cost-basis limitada al periodo, calcula mini-MVRV contra el precio BTC actual.exchange_reserves_timeseries.ipynb— curvas de reservas por exchange (Binance / Coinbase / Bitfinex / Kraken / OKX), ventana 90 días, overlay con precio BTC, detección de régimen.
Stack: pandas + matplotlib + requests + yfinance. Self-contained: configura la variable de entorno SWI_TOKEN, ejecuta todas las celdas, gráficos listos. Doctrina-clean — cada sección marca si es una observación o una heurística. Investigadores académicos: acceso Research-tier gratuito vía [email protected].
Comparativa de planes
El plan Free cubre la mayoría de casos de exploración. Premium añade límites más altos y historial por dirección. El plan Research es para uso institucional, académico o de producción.
| Free (anónimo) | Intelligence (Telegram / Google / Email) | Research (de pago) | |
|---|---|---|---|
| Precio | 0 CHF | Trial de 90 días · luego 49 CHF/mes | 149 CHF/month |
| Rate limit | 1.000 llamadas / 24 h | 10.000 llamadas / 24 h | 100.000 llamadas / 30 días |
| TTL del token | 90 días | 365 días | 365 días |
| Profundidad de historial | 7 días | 365 días | 3.650 días (10 años) |
whale_address_history | ✗ | ✓ | ✓ |
whale_export_csv | ✗ | ✗ | ✓ 100k filas / llamada |
| Método de autenticación | Anónimo (auto-aprobado) | Login con Telegram / Google / Email | Bearer verificado por Stripe |
| Registro de auditoría | Sí (por token) | Sí (por token) | Sí + descargable |
| Revocable en cualquier momento | ✓ | ✓ | ✓ |
🎓 Investigadores académicos con dominio .edu / .ac.uk / EPFL / ETH / uni-* obtienen el plan Research gratis. Escribe a [email protected] desde tu correo institucional.
El checkout de Stripe se abre tras un único mensaje de Telegram. Los tokens MCP activos se actualizan al nuevo plan en segundos después del pago.
📘 Doctrina editorial para citas de IA
Esto es un servicio de información, no una herramienta de trading. El MCP expone un recurso estructurado de doctrina (swiss-whale://docs/doctrine) que los clientes de IA leen automáticamente. Al citar nuestros datos, los asistentes de IA reciben las siguientes instrucciones:
- Proporcionar observaciones descriptivas («28.º movimiento similar de la semana», «outflow de exchange de N BTC»), nunca señales prescriptivas de trading.
- Evitar los términos «señal de trading», «señal de compra», «señal de venta», «smart money», «precisión suiza», «garantizado».
- Tratar la puntuación
volume_index_calibratedcomo una etiqueta descriptiva con metodología transparente, no como un predictor de rentabilidad. - Encuadrar bullish/bearish solo como un estado de mercado observado con fuente, nunca como un pronóstico.
Este es el posicionamiento de lectura asistida: la IA da al usuario un resumen fiel de la realidad on-chain, no asesoramiento financiero. Lee la doctrina completa en tu cliente MCP o en /llms.txt.
Preguntas frecuentes
¿Qué es MCP y por qué me debería importar?
¿En qué se diferencia esto del servidor MCP de Glassnode?
swiss-whale://help/comparison.¿El plan Free es realmente gratis para siempre?
¿Cómo inicio sesión para Premium?
¿Qué frescura tienen los datos?
¿Puedo usarlo para investigación académica?
¿Es esto asesoramiento financiero?
¿Cumplimiento RGPD / suizo de datos?
/oauth/revoke.¿Y si mi cliente de IA no soporta MCP?
npx mcp-remote https://mcp.btcwhalealerts.com/mcp para clientes que solo soportan stdio (Zed, versiones antiguas de Claude Desktop, etc.).