Finviz MCP
Finviz MCP
Servidor MCP que proporciona a Claude (o cualquier cliente MCP) acceso a datos de acciones de Finviz: indicadores de una acción, noticias y búsquedas de screener, así como datos históricos de precios reales (Yahoo Finance). Los datos se obtienen en vivo con las bibliotecas finvizfinance y yfinance, por lo que no se necesitan claves API.
Herramientas
get_stock(ticker)– indicadores de Finviz para una acción (P/E, capitalización de mercado, márgenes, rendimientos, etc.)get_stock_news(ticker)– titulares de noticias recientes de la acciónget_price_history(ticker, days=7)– datos históricos reales a nivel diario (Apertura/Máximo/Mínimo/Cierre/Volumen) de Yahoo Finance hasta 365 días, más un análisis listo de qué día habría sido la mejor compra (precio más bajo y mejor rendimiento en comparación con el último cierre). Finviz en sí no tiene API de datos históricos, solo una instantánea actual y una imagen de gráfico estática.screen_stocks(...)– screener de Finviz con parámetros naturales (market_cap,sector,pe_max,rsi,dividend_yield_min,signal, ...). Claude no necesita conocer los nombres internos de los filtros de Finviz – el servidor traduce automáticamente los parámetros al valor más cercano compatible con Finviz. Solo funciona cuando se ejecuta localmente, no en un servidor en la nube publicado – ver Limitaciones.list_screener_filters(search=None)/list_screener_signals()– herramientas auxiliares para Claude, si necesita algún filtro quescreen_stocksaún no cubre con un parámetro nombrado. El valor encontrado se puede pasar como parámetroscreen_stocks(extra_filters={...}).
Los parámetros de screen_stocks siempre se ajustan al "cubo" más cercano que ofrece Finviz (p. ej., pe_max=18 → "Under 20"), porque el screener de Finviz solo admite rangos de valores predefinidos, no números arbitrarios.
Related MCP server: Yahoo Finance MCP Server
1. Pruebas locales
Requiere Python 3.10+:
pip install -r requirements.txt
python server.pyEl servidor se inicia en http://localhost:8000/mcp (Streamable HTTP).
Probado de extremo a extremo en este entorno (instalación, inicio, handshake
initializey las cinco herramientas con datos reales de Finviz). Durante las pruebas se descubrió quefinvizfinance1.3.0 de PyPI aún no estaba actualizado con la nueva plantilla de Finviz:get_stockfallaba por completo (la antigua clase CSSquote-linksahora esquote-header_categories, con contenido diferente), y la columna Ticker descreen_stockstenía una letra inicial extra (p. ej., "NVDA" → "NNVDA", debido al nuevo marcador de posición del logotipo de Finviz).server.pycorrige ambos directamente (ver comentario al inicio del archivo) – si Finviz vuelve a cambiar su página, estas correcciones son lo primero a revisar.
Si no tienes Python instalado pero sí Docker, puedes probar sin instalación local de Python:
docker build -t finviz-mcp .
docker run -p 8000:8000 finviz-mcpPrueba rápida de funcionalidad desde la línea de comandos (requiere curl y que el servidor esté en ejecución):
curl -X POST http://localhost:8000/mcp -H "Content-Type: application/json" -H "Accept: application/json, text/event-stream" -d "{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"tools/list\"}"La respuesta debería mostrar seis herramientas: get_stock, get_stock_news, get_price_history, screen_stocks, list_screener_filters, list_screener_signals.
2. Publicación (p. ej., Render)
Sube esta carpeta a tu propio repositorio Git (GitHub/GitLab).
Render → New + → Web Service → conecta el repositorio.
Render detecta automáticamente el
Dockerfile. No se necesitan variables de entorno adicionales – el servidor lee el puerto de la variablePORTestablecida por Render.Tras la publicación, obtendrás una URL como
https://finviz-mcp.onrender.com. El endpoint MCP es/mcpdespués de esta, es decir:https://finviz-mcp.onrender.com/mcp.
Railway, Fly.io, etc. funcionan con el mismo principio (hosting Python basado en Dockerfile, variable de entorno PORT).
3. Conexión con Claude
Claude → Settings → Connectors → Add custom connector → pega la URL MCP (https://<tu-dirección>/mcp).
Claude admite servidores MCP remotos a través de Streamable HTTP, por lo que funciona directamente.
4. Ejemplos de prompts
"Get me the Finviz fundamentals for NVDA."
"Find oversold technology stocks with market cap over $10B."
"Show me 15 large-cap dividend stocks with yield over 4% and P/E under 20."
"What's the latest news on TSLA?"
"Find stocks flagged as Top Gainers today with average volume over 1M."
Limitaciones
screen_stocks(ylist_screener_filters/list_screener_signals) no funciona en un servidor en la nube publicado (probado en Render): Finviz devuelve 403 Forbidden específicamente para el endpoint del screener (finviz.com/screener.ashx) desde direcciones IP de centros de datos, aunqueget_stock/get_stock_news/get_price_historyfuncionan perfectamente desde el mismo servidor (usan endpoints diferentes y menos protegidos). No se pudo solucionar ajustando las cabeceras HTTP – parece ser un bloqueo intencional de IP de centro de datos por parte de Finviz solo para el screener. Si necesitas la funcionalidad descreen_stocks, ejecuta el servidor localmente (python server.py) y conéctate a él mediante un túnel comocloudflared/ngrok, para que las solicitudes salgan desde la IP de tu red doméstica.Los datos se extraen de los sitios web de Finviz/Yahoo Finance (sin claves API oficiales), por lo que pueden romperse si cambian la estructura de sus páginas.
screen_stockslimita los resultados a 20 filas por defecto y un máximo de 50, para que la solicitud sea rápida.get_price_historylimita el parámetrodaysa un máximo de 365.No incluye autenticación – si el servicio es público en Internet, cualquiera que conozca la URL puede invocarlo. Los datos son públicos, pero tenlo en cuenta si más adelante añades funciones de pago/restringidas.
This server cannot be deployed
Maintenance
Related MCP Connectors
Scrape stock quotes, historical prices, and financial statements from Yahoo Finance.
Analyze stocks with summaries, price targets, and analyst recommendations. Track SEC filings, divi…
Stock market data for AI agents: real-time quotes, financials, options, SEC filings and news.
Fetch current stock prices and key data for symbols across global markets. Look up companies like…
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceProvides comprehensive financial market data and news through the Finnhub API. Enables real-time stock quotes, company profiles, financial metrics, analyst recommendations, and market news access.1MIT
- AlicenseNot gradedqualityDmaintenanceProvides real-time stock quotes, historical price data, financial news, and multi-stock comparisons using Yahoo Finance data. Enables users to access comprehensive financial market information through natural language queries.243 npmMIT
- FlicenseNot gradedqualityDmaintenanceProvides real-time stock market data through Yahoo Finance without requiring an API key. Get quotes, historical data, company information, financial statements, and ticker search capabilities.-
- AlicenseNot gradedqualityCmaintenanceProvides real-time stock quotes, historical data, and stock search via Yahoo Finance, enabling AI assistants to access and analyze financial market data.57 npm19MIT