Uses FinBERT model from Hugging Face for sentiment analysis of financial news articles, providing positive/negative/neutral sentiment scores with confidence levels.
Referenced as an educational resource for technical analysis concepts used in the trading signals generation.
📈 MCP Trading Quantitative Analysis Server
Sistema de análisis de trading cuantitativo implementado como servidor MCP (Model Context Protocol) que permite a Claude acceder y analizar datos financieros, calcular indicadores técnicos, evaluar sentiment de noticias y generar señales de trading para acciones y forex.
✨ Características Principales
12 herramientas MCP organizadas en 4 categorías funcionales
Análisis técnico con 28+ indicadores técnicos (RSI, MACD, Bollinger Bands, etc.)
Análisis de sentiment usando FinBERT para noticias financieras
Señales de trading técnicas, fundamentales e híbridas con scores de confianza
Datos en tiempo real mediante Alpha Vantage API
Arquitectura modular y extensible para fácil integración de nuevas fuentes
🏗️ Arquitectura
El sistema está organizado en capas modulares:
Servidor MCP: Implementación del protocolo MCP con 12 herramientas
Datos de Mercado: Cliente Alpha Vantage para precios y datos históricos
Indicadores Técnicos: Cálculo automatizado con pandas-ta
Análisis NLP: FinBERT para sentiment analysis de noticias financieras
Generador de Señales: Combina análisis técnico y fundamental
Configuración: Variables de entorno con python-dotenv
🚀 Instalación
Requisitos
Python 3.12+
API Key de Alpha Vantage (gratis: https://www.alphavantage.co/support/#api-key)
API Key de NewsData.io (gratis: https://newsdata.io/)
Pasos
Clonar el repositorio
Crear entorno virtual
Instalar dependencias
Configurar API keys
Agregar tus claves:
Probar conexión
Configurar Claude
Para Claude Desktop
Editar archivo de configuración según tu sistema operativo:
Linux:
macOS:
Windows:
Agregar configuración (reemplazar con tu ruta real):
Para Claude Code (VSCode)
El archivo .mcp.json ya está configurado en la raíz del proyecto.
Asegúrate de tener en .claude/settings.local.json:
Recarga VSCode: Ctrl+Shift+P → "Developer: Reload Window"
Verificación
Pregunta a Claude:
Deberías ver las 12 herramientas de trading listadas.
🛠️ Tecnologías
Componente | Tecnología | Versión |
Protocol | MCP SDK | 1.0.0+ |
Data API | Alpha Vantage | API v2 |
News API | NewsData.io | API v1 |
Análisis Técnico | pandas-ta | Latest |
NLP Sentiment | FinBERT (transformers) | 4.57+ |
ML Framework | PyTorch | 2.0+ |
Data Processing | pandas, numpy | Latest |
📂 Estructura del Proyecto
🔧 Herramientas MCP Disponibles
📊 Grupo 1: Datos de Mercado (3)
get_current_price
Obtiene precio actual de acciones o forex.
get_historical_data
Datos históricos OHLCV con múltiples intervalos (1min a monthly).
get_quote_info
Información completa: precio, fundamentales, empresa.
📈 Grupo 2: Indicadores Técnicos (4)
calculate_trend_indicators
8 indicadores: SMA, EMA, MACD, ADX, AROON, PSAR, SUPERTREND, DEMA
calculate_momentum_indicators
8 indicadores: RSI, STOCHASTIC, CCI, WILLR, ROC, MFI, TSI, MOMENTUM
calculate_volatility_indicators
6 indicadores: BBANDS, ATR, KELTNER, STDDEV, DONCHIAN, ULCER
calculate_volume_indicators
6 indicadores: OBV, VWAP, AD, CMF, VO, PVT
📰 Grupo 3: Análisis de Noticias (2)
get_financial_news
Obtiene últimas noticias financieras del activo.
analyze_news_sentiment
Analiza sentiment con FinBERT (positive/negative/neutral + score).
🎯 Grupo 4: Señales de Trading (3)
generate_technical_signal
Señales basadas en indicadores técnicos (simple o compuestas).
generate_fundamental_signal
Señales basadas en sentiment de noticias con FinBERT.
generate_hybrid_signal
Combina análisis técnico + fundamental con pesos configurables.
📖 Ejemplos de Uso
Análisis Básico
Análisis Técnico Completo
Análisis de Sentiment
Señal de Trading Completa
🔑 Características Técnicas
Procesamiento de Datos
Caché inteligente para optimizar requests a APIs
Manejo de errores robusto con reintentos automáticos
Validación de datos con pandas para limpieza automática
Análisis de Sentiment
FinBERT especializado en textos financieros
Modelo pre-entrenado de Hugging Face (ProsusAI/finbert)
Análisis por artículo con agregación ponderada
Descarga automática del modelo en primera ejecución
Generación de Señales
Estrategias simples: RSI, MACD, SMA Cross, Bollinger Bands
Estrategias compuestas: Múltiples indicadores con pesos
Confluence scoring: Combina señales para mayor confianza
Pesos configurables: Ajusta balance técnico/fundamental
⚠️ Limitaciones
Técnicas
Alpha Vantage gratis: 25 requests/día, 5 requests/minuto
NewsData.io gratis: 200 noticias/día
Delay de datos: Hasta 15 minutos en plan gratuito
FinBERT: Requiere 2GB RAM + 2GB disco para modelo
Funcionales
Solo acciones globales y forex (no opciones/futuros)
Sentiment analysis en inglés únicamente
Solo análisis y señales (no ejecuta trades)
Indicadores calculados sobre datos históricos disponibles
🐛 Troubleshooting
El servidor no se conecta
Error de API keys
FinBERT no descarga
Rate limit exceeded
Solución temporal: Esperar reset diario (medianoche UTC)
Solución permanente: Upgrade a plan premium de Alpha Vantage
Workaround: Implementar caché local con Redis/SQLite
Claude no reconoce servidor (VSCode)
🔐 Seguridad
NUNCA subas a Git:
.envcon API keysArchivos
*.pyco__pycache__/Directorio
.venv/
Ya configurado en
Para producción:
Usa variables de entorno del sistema
Rota API keys periódicamente
Monitorea uso de APIs
📝 Desarrollo
Agregar un Nuevo Indicador
Edita
src/indicators/calculator.pyAgrega método para el nuevo indicador
Registra en
server.pyen la tool correspondienteActualiza documentación
Ejemplo:
Testing Local
🌐 Recursos
Documentación APIs
Librerías Python
pandas-ta - Indicadores técnicos
transformers - Hugging Face
FinBERT - Sentiment financiero
Trading Education
📋 Comandos Útiles
👤 Autoría y Desarrollo
Diseño y Arquitectura: Jean Carlo Gómez Ponce
Conceptualización del sistema
Decisiones de arquitectura MCP
Dirección del desarrollo
Integración de herramientas
Implementación: Código generado con Claude AI (Anthropic) bajo supervisión y especificaciones del autor
Nota sobre el uso de IA: Este proyecto fue desarrollado mediante pair programming con IA. El diseño, la arquitectura y las decisiones técnicas son del autor humano. La implementación del código fue asistida por Claude AI siguiendo las especificaciones proporcionadas.
🙏 Agradecimientos
Anthropic por Claude AI
MCP Protocol por el estándar de comunicación
Alpha Vantage por datos de mercado
NewsData.io por noticias financieras
Hugging Face por FinBERT
Comunidad open source de Python
⚖️ Licencia
Este proyecto es para uso educativo únicamente. No se ofrece ninguna garantía.
⚠️ Disclaimer
IMPORTANTE: Este software es solo para propósitos educativos e informativos. NO constituye asesoría financiera, de inversión, ni recomendación de trading.
El trading y la inversión en mercados financieros conllevan riesgos significativos y pueden resultar en pérdida parcial o total del capital. Los resultados pasados no garantizan rendimientos futuros.
Siempre consulta con un asesor financiero profesional antes de tomar decisiones de inversión. El autor no se hace responsable de las pérdidas o daños que puedan resultar del uso de este software.
Versión: 1.0.0 Última actualización: 2025-11-01 Estado: Producción (Educational Use Only)
⭐ Si este proyecto te fue útil, considera darle una estrella en GitHub
This server cannot be installed
remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
Enables quantitative trading analysis with 12 tools for real-time market data, 28+ technical indicators, FinBERT-powered news sentiment analysis, and automated trading signal generation for stocks and forex.
- ✨ Características Principales
- 🏗️ Arquitectura
- 🚀 Instalación
- 🛠️ Tecnologías
- 📂 Estructura del Proyecto
- 🔧 Herramientas MCP Disponibles
- 📖 Ejemplos de Uso
- 🔑 Características Técnicas
- ⚠️ Limitaciones
- 🐛 Troubleshooting
- 🔐 Seguridad
- 📝 Desarrollo
- 🌐 Recursos
- 📋 Comandos Útiles
- 👤 Autoría y Desarrollo
- 🙏 Agradecimientos
- ⚖️ Licencia
- ⚠️ Disclaimer