Servidor MCP de StockScreen
Un servidor de Protocolo de Contexto de Modelo (MCP) que ofrece funciones integrales de selección de acciones a través de Yahoo Finance. Permite a los LLM seleccionar acciones según criterios técnicos, fundamentales y de opciones, con soporte para la gestión de listas de seguimiento y el almacenamiento de resultados.
Características
Selección de acciones
Evaluación de análisis técnico
Filtros de precio y volumen
Promedios móviles (SMA de 20, 50 y 200)
Indicadores RSI
Rango verdadero promedio (ATR)
Análisis de tendencias (cambios en 1 día, 5 días y 20 días)
Cálculos de distancia MA
Detección fundamental
Filtros de capitalización de mercado
Análisis de la relación precio-beneficio
Criterios de rendimiento de dividendos
Métricas de crecimiento de los ingresos
Métricas específicas de ETF (AUM, ratio de gastos)
Evaluación de opciones
Filtros de volatilidad implícita (IV)
Volumen de opciones e interés abierto
Análisis de la relación put/call
Evaluación del diferencial entre oferta y demanda
Verificaciones de proximidad de la fecha de ganancias
Gestión de datos
Creación y gestión de listas de vigilancia
Almacenamiento de resultados de detección
Categorías de símbolos predeterminadas
Mega capitalización (>$200 mil millones)
Gran capitalización ($10 mil millones a $200 mil millones)
Mediana capitalización ($2 mil millones a $10 mil millones)
Pequeña capitalización (300 millones de dólares - 2 mil millones de dólares)
Micro capitalización (<$300 millones)
ETF
Related MCP server: Yahoo Finance MCP for LLaMA 3.2 3B
Instalación
# Install dependencies
pip install -r requirements.txt
# Clone the repository
git clone https://github.com/twolven/mcp-stockscreen.git
cd mcp-stockscreenUso
Agregue a su configuración de Claude: En su
claude-desktop-config.json, agregue lo siguiente a la secciónmcpServers:
{
"mcpServers": {
"stockscreen": {
"command": "python",
"args": ["path/to/stockscreen.py"]
}
}
}Reemplace "path/to/stockscreen.py" con la ruta completa donde guardó el archivo stockscreen.py.
Herramientas disponibles
Herramientas disponibles
run_stock_screen
Criterios de selección técnica
{
"screen_type": "technical",
"criteria": {
"min_price": float, # Minimum stock price
"max_price": float, # Maximum stock price
"min_volume": int, # Minimum average volume
"above_sma_200": bool, # Price above 200-day SMA
"above_sma_50": bool, # Price above 50-day SMA
"min_rsi": float, # Minimum RSI value
"max_rsi": float, # Maximum RSI value
"max_atr_pct": float, # Maximum ATR as percentage of price
"category": str # Optional: market cap category filter
},
"watchlist": str, # Optional: name of watchlist to screen
"save_result": str # Optional: name to save results
}Criterios fundamentales de selección
{
"screen_type": "fundamental",
"criteria": {
"min_market_cap": float, # Minimum market capitalization
"min_pe": float, # Minimum P/E ratio
"max_pe": float, # Maximum P/E ratio
"min_dividend": float, # Minimum dividend yield (%)
"min_revenue_growth": float, # Minimum revenue growth rate
"category": str, # Optional: market cap category filter
# ETF-specific criteria
"min_aum": float, # Minimum assets under management
"max_expense_ratio": float, # Maximum expense ratio
"min_volume": float # Minimum trading volume
},
"watchlist": str, # Optional: name of watchlist to screen
"save_result": str # Optional: name to save results
}Criterios de la pantalla de opciones
{
"screen_type": "options",
"criteria": {
"min_iv": float, # Minimum implied volatility (%)
"max_iv": float, # Maximum implied volatility (%)
"min_option_volume": int, # Minimum options volume
"min_put_call_ratio": float, # Minimum put/call ratio
"max_spread": float, # Maximum bid-ask spread (%)
"min_days_to_earnings": int, # Minimum days until earnings
"max_days_to_earnings": int, # Maximum days until earnings
"category": str # Optional: market cap category filter
},
"watchlist": str, # Optional: name of watchlist to screen
"save_result": str # Optional: name to save results
}Criterios de la pantalla de noticias
{
"screen_type": "news",
"criteria": {
"keywords": List[str], # Keywords to search for in news
"exclude_keywords": List[str], # Keywords to exclude from results
"min_days": int, # Minimum days back to search
"max_days": int, # Maximum days back to search
"management_changes": bool, # Filter for management changes
"require_all_keywords": bool, # Require all keywords to match
"category": str # Optional: market cap category filter
},
"watchlist": str, # Optional: name of watchlist to screen
"save_result": str # Optional: name to save results
}
Criterios de pantalla personalizados
{
"screen_type": "custom",
"criteria": {
"category": str, # Optional: market cap category filter
"technical": {
# Any technical criteria from above
},
"fundamental": {
# Any fundamental criteria from above
},
"options": {
# Any options criteria from above
},
"news": {
# Any news criteria from above
}
},
"watchlist": str, # Optional: name of watchlist to screen
"save_result": str # Optional: name to save results
}Valores de categoría
Categorías de capitalización de mercado disponibles para filtrar:
"mega_cap": >$200 mil millones
"gran capitalización": 10 mil millones de dólares a 200 mil millones de dólares
"mid_cap": $2 mil millones - $10 mil millones
"small_cap": $300 millones - $2 mil millones
"micro_cap": <$300 millones
"etf": instrumentos ETF
manage_watchlist
{
"action": str, # Required: "create", "update", "delete", "get"
"name": str, # Required: watchlist name (1-50 chars, alphanumeric with _ -)
"symbols": List[str] # Required for create/update: list of stock symbols
}get_screening_result
{
"name": str # Required: name of saved screening result
}Formatos de respuesta
Respuesta técnica de la pantalla
{
"screen_type": "technical",
"criteria": dict, # Original criteria used
"matches": int, # Number of matching stocks
"results": [ # List of matching stocks
{
"symbol": str,
"price": float,
"volume": float,
"rsi": float,
"sma_20": float,
"sma_50": float,
"sma_200": float,
"atr": float,
"atr_pct": float,
"price_changes": {
"1d": float, # 1-day price change %
"5d": float, # 5-day price change %
"20d": float # 20-day price change %
},
"ma_distances": {
"pct_from_20sma": float,
"pct_from_50sma": float,
"pct_from_200sma": float
}
}
],
"rejected": [ # List of stocks that didn't match
{
"symbol": str,
"rejection_reasons": List[str]
}
],
"timestamp": str
}Aviso de uso para Claude
He habilitado las herramientas de selección de stock, que ofrecen funciones de selección de stock. Puedes usar tres funciones principales:
Pantallas de stock con varios tipos de criterios:
Técnico: Precio, volumen, RSI, medias móviles, ATR
Fundamental: capitalización de mercado, precio/beneficio, dividendos, crecimiento
Opciones: IV, volumen, fechas de ganancias
Personalizado: combinar varios tipos de criterios
Administrar listas de seguimiento:
Crear y actualizar listas de símbolos
Eliminar listas de seguimiento existentes
Recuperar el contenido de la lista de seguimiento
Acceder a los resultados de detección guardados:
Cargar resultados de pantalla anteriores
Revisar los símbolos y criterios coincidentes
Todas las funciones incluyen manejo de errores, datos detallados del mercado y respuestas integrales".
Requisitos
Python 3.12+
Servidor MCP
yfinanzas
pandas
Numpy
asincronía
Limitaciones
Datos procedentes de Yahoo Finance con posibles retrasos.
Límites de tarifas basados en las restricciones de la API de Yahoo Finance
La disponibilidad de datos de opciones depende del horario del mercado.
Algunas métricas financieras pueden retrasarse o no estar disponibles
Contribuyendo
¡Agradecemos sus contribuciones! No dude en enviar una solicitud de incorporación de cambios.
Licencia
Este proyecto está licenciado bajo la licencia MIT: consulte el archivo de LICENCIA para obtener más detalles.
Autor
Todd Wolven - ( https://github.com/twolven )
Expresiones de gratitud
Construido con el Protocolo de Contexto de Modelo (MCP) de Anthropic
Datos proporcionados por Yahoo Finance
Desarrollado para su uso con Claude de Anthropic