Skip to main content
Glama
TuokkiCode

Finviz MCP

by TuokkiCode

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ón

  • get_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 que screen_stocks aún no cubre con un parámetro nombrado. El valor encontrado se puede pasar como parámetro screen_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.

1. Pruebas locales

Requiere Python 3.10+:

pip install -r requirements.txt
python server.py

El servidor se inicia en http://localhost:8000/mcp (Streamable HTTP).

Probado de extremo a extremo en este entorno (instalación, inicio, handshake initialize y las cinco herramientas con datos reales de Finviz). Durante las pruebas se descubrió que finvizfinance 1.3.0 de PyPI aún no estaba actualizado con la nueva plantilla de Finviz: get_stock fallaba por completo (la antigua clase CSS quote-links ahora es quote-header_categories, con contenido diferente), y la columna Ticker de screen_stocks tenía una letra inicial extra (p. ej., "NVDA" → "NNVDA", debido al nuevo marcador de posición del logotipo de Finviz). server.py corrige 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-mcp

Prueba 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)

  1. Sube esta carpeta a tu propio repositorio Git (GitHub/GitLab).

  2. Render → New +Web Service → conecta el repositorio.

  3. Render detecta automáticamente el Dockerfile. No se necesitan variables de entorno adicionales – el servidor lee el puerto de la variable PORT establecida por Render.

  4. Tras la publicación, obtendrás una URL como https://finviz-mcp.onrender.com. El endpoint MCP es /mcp despué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 → SettingsConnectorsAdd 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 (y list_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, aunque get_stock/get_stock_news/get_price_history funcionan 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 de screen_stocks, ejecuta el servidor localmente (python server.py) y conéctate a él mediante un túnel como cloudflared/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_stocks limita los resultados a 20 filas por defecto y un máximo de 50, para que la solicitud sea rápida.

  • get_price_history limita el parámetro days a 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.

-
license - not tested
-
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

  • Real-time market data, screeners, technical analysis & backtesting for stocks, crypto and forex.

  • Real-time news with bias scoring, live market data, and AI-powered options pricing

  • Real SEC, 13F, insider, congress & macro data your AI agent can cite. Hosted MCP, 24 tools.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/TuokkiCode/finviz-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server