StockFlow
Proporciona datos de acciones en tiempo real y análisis de opciones de Yahoo Finance, permitiendo acceso a datos de mercado, análisis de acciones y evaluación de estrategias de opciones.
Documentación
Servidor MCP StockFlow
Un servidor FastMCP tipado para metadatos de acciones, historial de precios, indicadores técnicos, estados financieros, calendarios y cadenas de opciones a través de yfinance. Soporta transporte stdio local y HTTP Streamable en contenedores.
Herramientas
get_stock_data_v2(symbol, include_financials=False, include_analysis=False, include_calendar=False)get_historical_data_v2(symbol, period, interval='1d', prepost=False)get_options_chain_v2(symbol, expiration_date=None, include_greeks=False)
Las descargas históricas utilizan explícitamente precios no ajustados, reparación habilitada, retención de zona horaria, un tiempo de espera y un índice plano de símbolo único. Las filas conservan las marcas de tiempo y omiten la columna de cierre ajustado por separado. La volatilidad se anualiza para cada intervalo solicitado, utiliza 252/5 para barras de cinco días y escala los períodos intradía para sesiones extendidas. El RSI utiliza la semilla canónica de promedio simple de Wilder seguida de suavizado recursivo, con comportamiento definido de ganancia/pérdida cero. Cuando se solicita, los griegos de opciones son estimaciones teóricas europeas de Black-Scholes por acción (theta por día; vega/rho por punto porcentual); los metadatos de la tasa libre de riesgo identifican el respaldo configurado.
uv sync --locked
uv run python stockflow.py
El servidor utiliza stdio. Yahoo Finance es una fuente no oficial de uso personal y puede estar retrasada, incompleta, limitada en velocidad, carecer de campos o cambiar estructuralmente. Los dividendos y el ejercicio anticipado de estilo estadounidense no se modelan en los griegos. Los resultados no son asesoramiento de inversión ni datos en tiempo real garantizados.
Docker / HTTP Streamable
El contenedor se ejecuta como un usuario sin privilegios, instala las dependencias de producción bloqueadas y sirve MCP en http://127.0.0.1:8000/mcp. Inícielo con:
docker compose up --build -d
Invoke-RestMethod http://127.0.0.1:8000/health
Conecte un cliente MCP compatible con HTTP Streamable a http://127.0.0.1:8000/mcp. Para evitar una colisión de puertos al ejecutar múltiples servidores, establezca MCP_HOST_PORT antes de iniciar Compose, por ejemplo $env:MCP_HOST_PORT=8003. Detenga y elimine el contenedor con docker compose down.
El mapeo de Compose se vincula intencionalmente a localhost. El endpoint no tiene autenticación ni TLS y no debe exponerse a una red no confiable sin un proxy inverso y control de acceso configurados adecuadamente.
Vincular solo al loopback no hace que el endpoint sea privado: un navegador aún puede alcanzarlo mediante rebinding de DNS, por lo que el servidor valida los encabezados Host y Origin antes de que una solicitud llegue a una sesión MCP. Las solicitudes que llevan un Host extranjero se responden con 421 Misdirected Request y las que llevan un Origin extranjero con 403 Forbidden, mientras que el tráfico loopback de mismo origen y los clientes que no son navegadores que no envían Origin no se ven afectados.
| Variable | Predeterminado | Propósito |
|---|---|---|
MCP_TRANSPORT | stdio | stdio, http o streamable-http. |
MCP_HOST | 127.0.0.1 | Interfaz a la que se vincula el servidor HTTP. |
MCP_PORT | 8000 | Puerto dentro del contenedor. |
MCP_PATH | /mcp | Ruta del endpoint HTTP Streamable. |
MCP_HOST_PORT | 8000 | Puerto del host que Compose publica en 127.0.0.1. |
MCP_HOST_ORIGIN_PROTECTION | true | true, auto o false. Deshabilite solo detrás de un proxy que realice la misma validación. |
MCP_ALLOWED_HOSTS | sin establecer | Nombres de host adicionales separados por comas permitidos en Host. |
MCP_ALLOWED_ORIGINS | sin establecer | Orígenes de navegador adicionales separados por comas permitidos en Origin. |
Coloque el nombre de host del proxy inverso en MCP_ALLOWED_HOSTS al poner el contenedor al frente; de lo contrario, la protección rechaza el Host proxyado. Ejecutar uv run python stockflow.py sigue siendo el predeterminado compatible con stdio fuera de Docker.
Ejecute la validación con uv lock --check, uv run ruff check ., uv run mypy ., uv run pytest, uv build y uv run python scripts/verify_wheel.py. CI también construye el contenedor y realiza comprobaciones de salud y de descubrimiento de herramientas MCP a través de HTTP Streamable. La cobertura de ramas de dominio/proveedor está limitada al 90%. Establezca YFINANCE_LIVE=1 para optar por pruebas de humo de forma en vivo.