CryptoScholar
Servidor MCP de análisis técnico de criptomonedas en vivo — EMA, RSI, MACD, ATR, Bandas de Bollinger, puntuación TSS y debate alcista/bajista con Claude AI a través de la API gratuita de CoinGecko
Documentación
CryptoScholar
Análisis técnico de criptomonedas, directamente dentro de Claude. CryptoScholar es un servidor de Model Context Protocol (MCP) que le brinda a Claude capacidades de análisis técnico en tiempo real — sin cambiar de gráficos, sin copiar y pegar datos, sin pérdida de contexto.
Pregúntale a Claude "¿Está SOL listo para un trade de swing?" y obtendrá datos en vivo de Binance, ejecutará un conjunto completo de indicadores, los puntuará y ofrecerá un debate alcista/ bajista fundamentado — todo en una sola respuesta.
Qué hace
CryptoScholar expone 15 herramientas MCP que Claude puede invocar de forma nativa:
analyze_coin
Instantánea completa de análisis técnico para cualquier moneda. Obtiene 300 días de velas OHLCV reales de Binance (con respaldo de CoinGecko) y calcula:
| Indicador | Detalles |
|---|---|
| Tendencia | Alineación EMA-20, EMA-50, EMA-200 + pendiente semanal de EMA |
| Momentum | RSI-14, MACD (línea / señal / histograma), ADX-14 |
| Volatilidad | ATR-14, ancho de Bandas de Bollinger, Volatilidad Histórica (anualizada a 20 días) |
| Fuerza Relativa | Moneda vs BTC (cambio del ratio a 20 días) |
| Múltiples marcos temporales | Alineación EMA en 4H — ±3 puntos de bonificación/penalización TSS según EMA-20 vs EMA-50 en 4H |
| Divergencia RSI | Alcista / bajista / ninguna — precio vs extremos de RSI en los últimos 30 barras |
| Tendencia OBV | Dirección del Volumen en Balance (creciente / decreciente / plano) — ±2 puntos de confirmación TSS |
| Tasa de financiación | Tasa de financiación actual del perpetuo USDT-M — extremos positivos = largos sobreapalancados |
| Régimen | Volatilidad baja / media / alta — clasificada por GaussianHMM de 3 estados (con respaldo basado en reglas) |
| TSS | Puntaje de Fuerza de Tendencia — compuesto de 0–100 (40% tendencia + 30% momentum + 30% RS ± MTF ± OBV) |
rank_coins
Pasa una lista de símbolos y recíbelos clasificados por TSS. Se ejecuta en paralelo (hasta 8 workers) para obtener resultados rápidos en listas grandes. Cada resultado incluye TSS, régimen, alineación EMA, alineación MTF en 4H, divergencia RSI, tendencia OBV, tasa de financiación, RSI-14, ADX-14 y RS vs BTC.
top_coins
No se necesita lista de símbolos. Obtiene las 50 monedas principales por capitalización de mercado de CoinGecko y las devuelve clasificadas por TSS. El filtrado inteligente elimina automáticamente:
- Stablecoins (USDT, USDC, DAI, etc.)
- Tokens envueltos / sintéticos (WBTC, WETH, stETH, cbBTC, etc.)
- Monedas de baja liquidez con < $10M de volumen diario
correlate_coins
Calcula la correlación de Pearson por pares de los retornos diarios a 30 días entre 2 y 20 monedas. Devuelve la matriz de correlación completa, clústeres de alta correlación (>0.85) y pares no correlacionados (<0.30) — útil para análisis de diversificación de cartera.
market_context
Señales macro de mercado para enmarcar el análisis de monedas individuales. Utiliza datos globales de CoinGecko, oferta de stablecoins de DefiLlama y el Índice de Miedo y Codicia de Alternative.me. Devuelve:
| Señal | Descripción |
|---|---|
| Dominancia de BTC | % actual y cambio a 30 días — cayendo = capital rotando hacia alts |
| Ratio ETH/BTC | Tendencia a 20 días — subiendo = rally en ampliación |
| TOTAL3 | Capitalización de mercado de altcoins (ex-BTC, ex-ETH) cambio a 30 días |
| Oferta de stablecoins | Capitalización total de stablecoins y tendencia a 30 días (subiendo = más poder de compra) |
| Miedo y Codicia | Índice de Alternative.me (0–100) — miedo/codicia extrema aplica modificador ±5 al MRS |
| ARS | Puntaje de Rotación de Altcoins 0–100 — qué tan favorable es el macro para las alts |
| MRS | Puntaje de Preparación del Mercado 0–100 — preparación general del mercado para movimientos alcistas |
debate
Claude lee los datos de TA en vivo y genera un debate alcista/bajista estructurado fundamentado en valores reales de indicadores — no en opiniones alucinadas. Devuelve:
- Caso alcista — lo que dicen los técnicos a favor
- Caso bajista — lo que podría salir mal
- Conclusión — síntesis en una frase
Herramientas de lista de seguimiento
Listas de monedas persistentes almacenadas en SQLite (~/.cryptoscholar/watchlist.db).
| Herramienta | Qué hace |
|---|---|
watchlist_add | Agrega símbolos a una lista con nombre (crea la lista si es necesario) |
watchlist_remove | Elimina símbolos; también borra sus alertas |
watchlist_show | Muestra todos los símbolos + alertas configuradas para una lista |
watchlist_lists | Lista todas las listas de seguimiento con nombre y conteo de símbolos |
watchlist_scan | Ejecuta un análisis TSS completo en cada moneda de la lista — vista de resumen paralela |
alert_set | Configura una alerta de tss_above, tss_below o regime_change en cualquier símbolo |
alert_check | Obtiene TA en vivo para todos los símbolos con alertas, informa cuáles alertas se activaron, actualiza la línea base |
train_regime_model
Activa manualmente un reentrenamiento del modelo HMM de régimen de volatilidad con historial de precios de BTC reciente. El modelo se reentrena automáticamente cada 7 días — usa esto después de un cambio importante en la estructura del mercado para forzar una actualización inmediata. Acepta un flag opcional force=True para omitir el período de espera de 7 días.
generate_report
Genera un informe de análisis estructurado para una o más monedas. Utiliza un pipeline de 3 etapas:
- Agrupar — agrupa señales de TA en secciones temáticas (tendencia, momentum, volumen/on-chain, volatilidad, fuerza relativa)
- Redactar — Claude escribe un párrafo narrativo para cada sección basado en las señales agrupadas
- Ensamblar — combina las secciones en un informe markdown formateado con una tabla de estadísticas clave al inicio
Soporta análisis profundos de una sola moneda e informes comparativos de múltiples monedas (p. ej. ["BTC", "ETH", "SOL"]). Pasa output_format="json" para salida estructurada en lugar de markdown. Hasta 10 símbolos por llamada.
No se requiere clave API para datos de mercado. ANTHROPIC_API_KEY es necesaria para las herramientas debate y generate_report.
Novedades en v0.7.0
- Herramienta
generate_report(herramienta #15) — pipeline de 3 etapas Agrupar → Redactar → Ensamblar que produce un informe markdown formateado para cualquier moneda o lista de monedas. La Etapa 1 agrupa señales de TA en clústeres temáticos; la Etapa 2 usa Claude para escribir secciones narrativas; la Etapa 3 ensambla un informe con una tabla de estadísticas clave. - Comparación de múltiples monedas — pasa hasta 10 símbolos y obtén un informe comparativo con resúmenes por moneda, una llamada de configuración más fuerte/débil y un resumen comparativo general.
- Opción de salida JSON — pasa
output_format="json"para obtener el dict completo del informe estructurado en lugar de markdown, útil para procesamiento posterior. - Análisis en paralelo — los datos de monedas para informes de múltiples símbolos se obtienen en paralelo (hasta 8 workers) antes de la etapa de redacción de Claude.
Inicio rápido
Requisitos: Python 3.11+
git clone https://github.com/cryptographer11/cryptoscholar.git
cd cryptoscholar
make install
cp .env.example .env
# Add your ANTHROPIC_API_KEY to .env (only needed for debate tool)
cryptoscholar
Agregar a Claude Code
En ~/.claude/.mcp.json:
{
"mcpServers": {
"cryptoscholar": {
"command": "python",
"args": ["-m", "cryptoscholar"],
"env": {
"ANTHROPIC_API_KEY": "your_key_here"
}
}
}
}
Reinicia Claude Code. Ahora puedes preguntar:
- "Analiza BTC para mí"
- "Clasifica ETH, SOL, AVAX y LINK por fuerza de tendencia"
- "Muéstrame las 50 monedas principales clasificadas por fuerza de tendencia"
- "¿Cómo se ve el mercado macro en este momento?"
- "Dame el caso alcista y bajista para DOGE basado en el TA actual"
- "¿Qué tan correlacionados están BTC, ETH, SOL y AVAX en el último mes?"
- "Agrega BTC, ETH y SOL a mi lista de seguimiento principal"
- "Configura una alerta en BTC si TSS cae por debajo de 35"
- "Revisa mis alertas"
- "Dame el resumen de mi lista de seguimiento principal"
Capturas de pantalla
Clasificación de BTC, ETH y XRP por Puntaje de Fuerza de Tendencia — luego profundizando en el caso bajista para XRP
rank_coins puntúa cada moneda en tendencia, momentum y fuerza relativa vs BTC y las devuelve ordenadas por TSS. Aquí BTC lidera con 63.7, ETH con 53.0 y XRP queda atrás con 47.8 — todas en régimen low_vol. Preguntar por el caso bajista de XRP inmediatamente después revela las razones técnicas específicas: una pendiente semanal de EMA más pronunciada, MACD debilitándose y un rendimiento inferior de ETH vs BTC señalado como presión temprana de salida institucional.
Instantánea completa de análisis técnico para SOL — indicadores, puntuación y caso bajista en una sola respuesta
analyze_coin devuelve un desglose estructurado que cubre la alineación del stack EMA, RSI, MACD, ADX, ATR, ancho de Bandas de Bollinger, tendencia OBV, tasa de financiación y fuerza relativa vs BTC — todo calculado a partir de 300 días de velas en vivo de Binance. Claude luego lee los valores brutos de los indicadores para generar un caso bajista fundamentado: resistencia EMA-200, pendiente semanal pronunciándose y riesgo de cruce a la baja del MACD. Sin cambiar de gráficos, sin copiar y pegar — el contexto completo de TA ya está en la ventana de Claude.
Ejemplo de salida
market_context()
{
"btc_price_30d_change_pct": -8.4,
"btc_dominance_current": 54.2,
"btc_dominance_30d_change_pct": 2.1,
"eth_btc_20d_change_pct": -5.3,
"total3_30d_change_pct": -14.6,
"stablecoin_supply_usd": 196500000000,
"stablecoin_30d_change_pct": 2.8,
"fear_greed_value": 22,
"fear_greed_label": "Fear",
"btc_trend_score": 35.0,
"ars": 28.5,
"stablecoin_score": 60.0,
"fear_greed_modifier": 0.0,
"mrs": 42.3
}
analyze_coin("SOL")
{
"symbol": "SOL",
"data_source": "binance",
"price": 142.30,
"tss": 79.2,
"regime": "mid_vol",
"regime_source": "hmm",
"vrs": 55,
"ema_alignment": "full_bull",
"mtf_alignment_4h": "bullish",
"rsi_divergence": "none",
"obv_trend": "rising",
"funding_rate": 0.00012,
"indicators": {
"rsi_14": 61.4,
"macd_hist": 0.42,
"adx_14": 28.1,
"atr_14": 6.82,
"hv_20": 68.4,
"rs_btc": 4.2,
"bb_width": 0.18,
"rsi_divergence": "none",
"obv_trend": "rising"
}
}
correlate_coins(["BTC", "ETH", "SOL", "BNB"])
{
"symbols": ["BTC", "ETH", "SOL", "BNB"],
"lookback_days": 30,
"matrix": {
"BTC": {"BTC": 1.0, "ETH": 0.91, "SOL": 0.78, "BNB": 0.83},
"ETH": {"BTC": 0.91, "ETH": 1.0, "SOL": 0.82, "BNB": 0.79},
"SOL": {"BTC": 0.78, "ETH": 0.82, "SOL": 1.0, "BNB": 0.71},
"BNB": {"BTC": 0.83, "ETH": 0.79, "SOL": 0.71, "BNB": 1.0}
},
"high_correlation_pairs": [
{"symbol_a": "BTC", "symbol_b": "ETH", "correlation": 0.91}
],
"uncorrelated_pairs": []
}
debate("SOL")
{
"bull_case": "SOL is in a full bullish EMA stack with RSI at 61 — healthy momentum without overbought conditions. ADX at 28 confirms trending structure, and relative strength vs BTC is positive at +4.2%, signalling capital rotation into SOL. Rising OBV confirms volume is flowing in on up-days.",
"bear_case": "Historical volatility at 68% is elevated, and Bollinger Band width is widening — conditions that often precede sharp reversals. A break below EMA-20 would invalidate the current trend structure. Funding rate at 0.012% hints at building long leverage.",
"bottom_line": "Technicals are constructive for continuation but volatility is high; position sizing should reflect the risk."
}
Configuración
| Variable | Predeterminado | Descripción |
|---|---|---|
ANTHROPIC_API_KEY | — | Requerida para la herramienta debate |
CRYPTOSCHOLAR_MODEL | claude-haiku-4-5-20251001 | Modelo Claude usado para debates (cámbialo por Sonnet/Opus para análisis más profundo) |
CRYPTOSCHOLAR_LOG_DIR | /tmp | Directorio para archivos de registro rotativos |
CRYPTOSCHOLAR_DATA_DIR | ~/.cryptoscholar | Directorio para la base de datos SQLite de listas de seguimiento |
Monedas compatibles
CryptoScholar funciona con cualquier moneda listada en CoinGecko o Binance — solo pasa el símbolo del ticker. No se necesita configuración.
Un mapa de símbolos integrado cubre 65 monedas principales para resolución instantánea — el universo completo de las 50 principales por capitalización de mercado, incluyendo BTC, ETH, SOL, BNB, XRP, ADA, AVAX, DOGE, LINK, DOT, SUI, TIA, WIF, BONK y más. Para cualquier cosa fuera de esa lista, CryptoScholar consulta automáticamente la API de búsqueda de CoinGecko para resolver el símbolo y recurre a OHLCV de CoinGecko si la moneda no está disponible en Binance.
En la práctica: si se negocia en algún lugar y tiene un listado en CoinGecko, funcionará.
Arquitectura
Sin estado por diseño — sin base de datos, sin programador. Cada llamada de herramienta obtiene datos frescos.
Claude (MCP call)
└── server.py FastMCP entry point
├── tools/
│ ├── analyze.py Orchestrates fetch → indicators → regime → score
│ ├── rank.py Runs analyze_coin in parallel, sorts by TSS
│ ├── top_coins.py Fetches top N by market cap, delegates to rank_coins
│ ├── correlate.py Pairwise Pearson correlation of 30-day returns
│ ├── watchlist.py Watchlist + alert tools (7 tools)
│ ├── debate.py Builds prompt from TA data, calls Claude API
│ └── market_context.py ARS + MRS + macro signals
├── ta/
│ ├── indicators.py pandas-ta + custom HV / RS / OBV functions
│ ├── scoring.py TSS: trend + momentum + RS ± MTF ± OBV bonuses
│ ├── regime.py HMM-first regime classifier with rule-based fallback
│ └── hmm_regime.py GaussianHMM train / persist / classify / auto-retrain
├── market/
│ └── context.py BTC dominance, ETH/BTC, TOTAL3, F&G, ARS, MRS
└── data/
├── binance.py Binance klines + funding rate (1,200 req/min, no auth)
├── coingecko.py CoinGecko client, 5-min TTL cache, OHLCV builder
├── alternative_me.py Fear & Greed Index (Alternative.me, 1-hr cache)
├── defillama.py DefiLlama stablecoin supply history
└── watchlist_db.py SQLite watchlist + alert persistence (~/.cryptoscholar/)
Flujo de datos para analyze_coin("SOL"):
- Mapear símbolo → ID de CoinGecko (
SOL→solana) - Obtener OHLCV diario de 300 días de Binance (velas
SOLUSDT); recurrir a CoinGecko si no está disponible - Obtener OHLCV de 200 barras en 4H de Binance para análisis de múltiples marcos temporales
- Obtener tasa de financiación del perpetuo USDT-M de Binance Futures (null si no hay perpetuo)
- Calcular todos los indicadores diarios vía pandas-ta (EMA, RSI, MACD, ADX, ATR, BB, HV, OBV, RS vs BTC)
- Calcular tendencia OBV (EMA-10 de la pendiente OBV en los últimos 5 barras)
- Calcular indicadores en 4H (EMA-20/50) y derivar bonificación de alineación MTF (±3 pts TSS)
- Detectar divergencia RSI en los últimos 30 barras (alcista/bajista/ninguna)
- Clasificar régimen vía GaussianHMM (hv_20 + ATR normalizado + BBW); recurrir a reglas si no hay modelo
- Calcular TSS (compuesto ponderado de tendencia, momentum, RS vs BTC ± bonificación MTF ± bonificación OBV)
- Obtener datos de mercado actuales (precio, capitalización de mercado, cambio 24h) de CoinGecko
- Devolver dict estructurado a Claude
Flujo de datos para market_context():
- Obtener historial de capitalización total de mercado (30d) de CoinGecko
/global/market_cap_chart - Obtener historial de gráficos de mercado de BTC y ETH (30d) de CoinGecko
- Obtener historial de oferta de stablecoins de DefiLlama
- Obtener Índice de Miedo y Codicia de Alternative.me (caché de 1 hora)
- Calcular tendencia de dominancia de BTC, tendencia del ratio ETH/BTC, cambio de TOTAL3
- Puntuar en ARS (rotación de altcoins) y MRS (preparación del mercado + modificador F&G)
Desarrollo
make test # run test suite
make test-parallel # run tests in parallel (pytest-xdist)
make coverage # coverage report
make lint-security # bandit security scan
222 pruebas, 0 fallos.
Hoja de ruta
Consulta ROADMAP.md para las versiones planificadas. Destacados:
- v0.8 —
research_coinherramienta: búsqueda web + lector Jina para noticias y contexto narrativo - v0.9 — Clasificación de estructura de mercado (HH/HL/LH/LL) mediante detección de puntos de giro; nuevo campo
market_structureenanalyze_coin - v1.0 — Zonas de soporte y resistencia agrupadas a partir de pivotes de giro;
support_zones+resistance_zonesenanalyze_coin - v1.1 — Puntuación de confluencia de configuración (1–5) que mide la alineación de señales; aparece en
analyze_coin,rank_coins,watchlist_scan - v1.2 — Bloque de plan de trading:
entry_zone,take_profit,stop_loss,risk_reward_ratiocalculados a partir de zonas S/R + ATR - v1.3 — Indicador Pi Cycle en
market_context; herramientabrief: resumen de configuración de un párrafo de Claude Haiku - v1.4 — Filtro EV:
ev_score+ev_signalmarcan configuraciones de EV negativo antes de actuar sobre un plan de trading - v1.5 — Herramienta
backtest_strategy: simulación walk-forward, R ajustado por comisiones, tasa de aciertos, drawdown máximo
Licencia
MIT