Stock Analyzer MCP
81 herramientas para el análisis del mercado de valores de Taiwán y EE. UU. Primer servidor MCP con cobertura profunda de TWSE/TPEx (flujos institucionales, datos de chips, ingresos mensuales). SQLite local, LLM BYOK.
Documentación
Stock Analyzer MCP
📡 El servidor Model Context Protocol incluido con Stock Analyzer — una aplicación de escritorio para macOS para el análisis del mercado de valores de Taiwán y EE. UU.
Un servidor MCP con cobertura profunda del mercado taiwanés (TWSE / TPEx + flujos de las tres grandes instituciones + datos de chips + ingresos mensuales). 95 herramientas en 15 categorías + 6 recursos. Local-first — se ejecuta en proceso dentro de la aplicación Electron, sin costos de API, sin dependencia de la nube.
Versión actual: servidor MCP 1.3.0 · aplicación Stock Analyzer 0.48.0-beta · Actualizado 2026-06-30
⚠️ Cómo funciona realmente este servidor MCP
Este repositorio contiene el código fuente del shim MCP (mcp-server.js + lib/ai-tools + Dockerfile). El shim es un puente delgado HTTP-a-stdio — cuando un cliente MCP invoca una herramienta, el shim envía la llamada a http://localhost:3000/api/*, donde el backend Express integrado de la aplicación de escritorio Stock Analyzer realiza el trabajo real (consulta de BD, cálculo, análisis).
El servidor MCP de este repositorio, ejecutado de forma independiente (p. ej. mediante
docker run), puede anunciar sus 95 herramientas mediante introspección pero no puede ejecutarlas. Necesitas Stock Analyzer ejecutándose en la misma máquina para que las herramientas realmente devuelvan datos.
Esta división es intencional — el motor de análisis + los datos de mercado + las funciones restringidas por licencia viven en la aplicación de escritorio de código cerrado; el shim MCP es de código abierto (MIT) para que la superficie de integración sea totalmente transparente.
Por qué existe este repositorio
La aplicación de escritorio Stock Analyzer en sí es un producto comercial (nivel Lite gratuito, Standard NT$1,499, Premium NT$2,999 — todas compras únicas, sin suscripción). Este repositorio existe para:
- Publicar como código abierto la capa del shim MCP bajo MIT para que los marketplaces (awesome-mcp-servers, mcpservers.org, PulseMCP, Glama) puedan compilar y verificar una imagen funcional
- Proporcionar un enlace canónico público para el descubrimiento de MCP
- Alojar la guía de integración por separado del código fuente cerrado de la aplicación
- Facilitar la configuración de Claude Desktop / Claude Code / frameworks de agentes contra el servidor MCP incluido
Compilación (Docker, para Glama / marketplaces)
docker build -t stock-analyzer-mcp .
docker run -i --rm stock-analyzer-mcp # stdio JSON-RPC on stdin/stdout
La imagen es de ~258 MB (node:20-alpine + 2 dependencias npm). La compilación omite better-sqlite3, Electron y otras dependencias solo de backend porque el shim nunca las importa — todas las llamadas de datos van por HTTP a los endpoints /api/* de la aplicación Stock Analyzer que se ejecuta localmente.
Qué contiene este servidor MCP
95 herramientas en 15 categorías
| Categoría | Herramientas | Ejemplos |
|---|---|---|
| market (14) | Cotizaciones, historial, mapa de calor, ranking de sectores, noticias, FX, estacionalidad, tenencias de ETF, estado de días de negociación | get_stock_price, get_market_heatmap, get_seasonality |
| chips (6) | Flujos de las tres grandes instituciones, diagrama Sankey de flujos de fondos, alertas de información privilegiada, bloques anormales, ranking de márgenes | get_institutional_flow, get_fund_flow_sankey |
| fundamentals (6) | Estados financieros, ingresos mensuales, dividendos, EPS, valoración DCF | get_financial_statements, calculate_dcf |
| technical (5) | RSI / MACD / KD / Bollinger / Beta / correlación / patrones de velas | get_technical_indicators, detect_kline_patterns |
| macro (8) | Política de la FED, curva de rendimiento, inflación, empleo, calendario de resultados | get_macro_snapshot, get_fed_policy_stance |
| sentiment (6) | Sentimiento de noticias, sentimiento del mercado, sentimiento por acción, pronósticos, estrategias de entrada, ratio put/call de TAIFEX | get_stock_sentiment_v2, get_sentiment_forecasts |
| portfolio (11) | Tenencias, ganancias/pérdidas, rendimiento, concentración, señales, CRUD de operaciones | get_portfolio, get_portfolio_concentration |
| backtest (5) | Acción individual, multiestrategia, búsqueda en cuadrícula, minería de factores MC, cartera aleatoria | backtest_strategy, monte_carlo_factor_mining |
| risk (6) | VaR, riesgo sistémico, optimización de cartera, contribución marginal/por componente al VaR, prueba de estrés, propagación de estrés por escenarios | get_systemic_risk, get_risk_contribution, run_scenario |
| ai workflow (7) | Análisis completo de acciones, screener, flujos de trabajo, notas, + debate en profundidad + informe diario + comparación de candidatos + revisión posterior a la operación | research_stock_deep_dive, portfolio_daily_briefing |
| thesis (7) | CRUD de hipótesis de inversión + evaluación de calidad | upsert_thesis, evaluate_thesis_quality |
| watchlist (4) | CRUD de lista de seguimiento | add_watchlist |
| alert (3) | Alertas de precios | set_price_alert |
| backfill (2) | Relleno administrativo de datos | trigger_backfill |
| forecast (5) | Cono de probabilidad de precios (Monte Carlo GBM), historial de calibración de pronósticos no manipulable, contexto transversal de la preapertura de Taiwán, reproducción de conocimiento hasta la fecha (calibración multimétodo), liderazgo estadounidense en preapertura por acción | get_price_forecast, get_asof_replay, get_stock_preopen_lead |
Cada herramienta incluye:
annotations.readOnlyHint— si la herramienta modifica estado (los clientes confirman automáticamente antes de operaciones destructivas)annotations.destructiveHint—delete_*/cancel_*marcados como verdaderosannotations.idempotentHint—upsert_*/update_*marcados como verdaderos_meta.tw.stockanalyzer/estimated_cost_usd— costo de LLM en el peor caso (la mayoría de las herramientas $0; deep-dive ~$0.16)
6 recursos (mencionables con @ en Claude Desktop)
Inyecta contexto en tu conversación sin gastar llamadas de herramientas:
| Recurso | Contenido |
|---|---|
saa://portfolio | Tenencias completas (TW + US, precios unificados USD/TWD, ganancias/pérdidas no realizadas) |
saa://watchlist | Todas las entradas de la lista de seguimiento con cotizaciones en vivo + estados de alerta |
saa://thesis | Tesis de inversión activas (hipótesis, niveles clave, próximas fechas de revisión) |
saa://market/today | Flujos de las tres grandes instituciones / ganadores por sector / riesgo sistémico / FX |
saa://reports/recent | Último informe de cartera (gratuito; no activa automáticamente el LLM) |
saa://system/info | Introspección del servidor (versión, versión del esquema, perfil activo, número de herramientas) |
Perfiles (filtra lo que se expone)
Configura la variable de entorno SAA_MCP_PROFILE para controlar qué herramientas son visibles para el cliente LLM:
| Perfil | Herramientas expuestas | Caso de uso |
|---|---|---|
default (omitir) | Las 95 | Tu Claude Desktop personal |
safe_readonly | 80 herramientas de solo lectura | Clientes LLM compartidos / no confiables — bloquea add_trade / delete_* / upsert_thesis / set_price_alert / etc. |
Los recursos permanecen disponibles en ambos perfiles (son de solo lectura por definición).
Comparación
| Servidor | Cobertura TW | Cobertura US | Local | Modelo de licencia |
|---|---|---|---|---|
| Alpha Vantage MCP | ⚠️ Solo cotizaciones con retraso | ✅ Completa | ❌ API en la nube | Pago por llamada |
| Financial Datasets MCP | ❌ Ninguna | ✅ Completa | ❌ API en la nube | Suscripción |
| EODHD MCP | ⚠️ Solo cierre | ✅ Completa | ❌ API en la nube | Suscripción |
| Lambda Finance | ❌ Ninguna | ✅ Completa + opciones | ❌ Nube | Suscripción |
| Stockflow (Yahoo) | ⚠️ Datos TW irregulares | ✅ Completa | ❌ Nube | Gratuito (con límite de tasa) |
| Stock Analyzer MCP | ✅ TWSE + TPEx profundo + institucional + chips | ✅ Completa | ✅ SQLite local | Licencia única (Lite gratuito) |
Para lectores fuera de Taiwán: el mercado de valores taiwanés tiene su propio ecosistema de datos (TWSE, TPEx OpenAPI, las tres grandes instituciones inversoras, informes de ingresos mensuales) que está casi ausente en las plataformas de datos financieros en inglés. Si quieres un agente de IA que pueda responder "¿Cómo están operando los inversores institucionales de TSMC últimamente?" o "Encuéntrame small-caps taiwanesas con crecimiento de ingresos interanual >30%", Stock Analyzer MCP está construido exactamente para esto — herramientas deterministas de chips/institucional/ingresos TW que los servidores MCP centrados en inglés generalmente no tienen.
Inicio rápido: Claude Desktop
1. Instala Stock Analyzer
Obtén el nivel Lite gratuito en stockanalyzer.tw. La versión 0.47.4-beta o posterior incluye el servidor MCP v1.2.0.
2. Configura Claude Desktop
Edita ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"stock-analyzer": {
"command": "/Applications/Stock Analyzer.app/Contents/Resources/app.asar.unpacked/bin/saa-mcp",
"env": { "PORT": "3000" }
}
}
}
¿Por qué el wrapper? Ejecutar
node mcp-server.jsdirectamente provoca un desajuste de ABI debetter-sqlite3(el binding está compilado para el Node de Electron, no el del sistema). El wrapperbin/saa-mcpencuentra automáticamente el runtime Electron de SAA y ejecuta el servidor MCP conELECTRON_RUN_AS_NODE=1. Las configuraciones antiguas que apuntan anodedeberán actualizarse.
3. (Opcional) Restringir al modo de solo lectura
Si el cliente LLM no es totalmente confiable (proyecto compartido de Claude, agente de terceros), añade:
"env": { "PORT": "3000", "SAA_MCP_PROFILE": "safe_readonly" }
Esto bloquea 15 herramientas de escritura (add_trade, delete_trade, upsert_thesis, set_price_alert, etc.) pero mantiene todas las herramientas de lectura + los 6 recursos.
4. Reinicia completamente Claude Desktop (cmd+Q y luego vuelve a abrirlo)
5. Pruébalo
"Lista todas las herramientas de stock-analyzer de SAA"
"Analiza 2330 — flujo institucional del último mes + impulso de 3 meses + puntuación radar + dame una opinión de compra/venta"
"@saa://portfolio — ¿cuál es mi mayor riesgo de concentración?"
"Compara 2330, 2454 y 3008 como candidatos. Incluye sus tesis si existen."
Claude orquestará múltiples llamadas de herramientas (o menciones @ para recursos) y sintetizará un informe de investigación.
Herramientas destacadas (2026-05-18)
🎭 research_stock_deep_dive — nivel Premium
5 agentes de IA especializados debaten en paralelo:
- 🐂 Alcista (solo ve evidencia que respalda una tesis alcista)
- 🐻 Bajista (solo ve evidencia que respalda una tesis bajista)
- 📰 Sentimiento (señales de noticias + sociales)
- 🛡️ Riesgo (volatilidad, historial de drawdown, contexto de régimen)
- 🎯 Sintetizador (ve los cuatro; produce una acción de 6 niveles:
strong_buy→avoid)
Cada agente usa un subconjunto distinto de las 95 herramientas. La salida incluye el razonamiento de cada agente + acción final + puntuación de confianza. Costo de LLM de ~$0.16/llamada (Anthropic Sonnet / OpenAI).
🌅 portfolio_daily_briefing — nivel Lite
Informe de cartera previo o posterior al mercado. Agrega tenencias actuales, ganancias/pérdidas no realizadas, exposición sectorial, macro / flujo institucional relevante en un resumen accionable.
mode='get'→ lee el último informe en caché (gratuito, instantáneo)mode='generate'→ genera uno nuevo (~10-20s, costo de LLM de ~$0.04/llamada)
🔍 compare_investment_candidates — Lite, costo $0
Análisis profundo lado a lado de 2-5 acciones candidatas. Expansión en paralelo de get_full_stock_analysis (fundamentales + técnico + chips + institucional + niveles) por candidato, más el estado de las tesis existentes. Determinista — el agente ve evidencia cruda en lugar de una opinión sintetizada por LLM, lo que empíricamente produce mejor razonamiento.
📓 post_trade_review — Lite, costo $0
Reflexión de los últimos N días. Agrega analyze_trade_performance (ganancias/pérdidas FIFO, tasa de acierto, tiempo de tenencia) + get_trade_journal (operaciones recientes) + get_portfolio_signals (estado actual). Detecta automáticamente patrones observables:
low_win_rate(< 40%) → problema sistemático de selección o de timingover_trading(tenencia promedio < 5 días) → las comisiones están comiendo los rendimientoslopsided_pnl(pérdida promedio > ganancia promedio) → mala disciplina de stop-loss
Entrega al agente indicadores objetivos para redactar una revisión narrativa.
Documentación
- Guía completa de uso de MCP (zh-TW + en):
MCP-USAGE-GUIDE.md— configuración de Claude Desktop, solución de problemas, ejemplos de conversación - Publicación de lanzamiento del blog (bilingüe):
docs/mcp-launch-2026-05.md— contexto sobre el panorama financiero MCP 2026 + por qué la cobertura TW era el vacío - Referencia de herramientas: incluida en la aplicación en Configuración → 🔌 MCP / Agente
Filosofía de diseño
- Local-first: Todos los datos viven en
~/.twse-analyzer/stock_history.db(SQLite, archivo único). El servidor MCP se ejecuta en proceso dentro de la aplicación Electron mediante transporte stdio. - LLM BYOK: SAA en sí tiene un AI Hub que consume las mismas 95 herramientas. Trae tus propias claves (Claude / GPT / Gemini / Ollama). El servidor MCP en sí no está vinculado a ningún LLM — solo expone datos deterministas + algunos agregadores respaldados por LLM.
- Metodología transparente: 16 páginas de metodología bilingües (zh-TW + en) explican la fórmula, la fuente de datos y las limitaciones de cada herramienta analítica. Disponibles en
/methodology.htmldentro de la aplicación. - Sin señales activas de trading: Solo salida de investigación — no ejecución de órdenes. Decisión regulatoria + de posicionamiento del producto.
- Honestidad de costos: Cada herramienta muestra su costo máximo de LLM por adelantado mediante
_meta.tw.stockanalyzer/estimated_cost_usd. Sin gasto oculto de API en la nube.
Versionado
El servidor MCP usa dos números de versión:
| Campo | Significado | Se incrementa cuando |
|---|---|---|
server_version | Versión binaria del MCP de SAA (se muestra en initialize) | Cada lanzamiento de la aplicación SAA |
tools_schema_version (en saa://system/info) | Versión de la forma de herramientas/recursos | Herramienta añadida/eliminada/renombrada/cambio de requisitos |
| Reglas: |
- patch — aditivo (nueva herramienta, nuevo recurso)
- minor — nuevo parámetro obligatorio, nueva restricción de enumeración, cambio de
readOnlyHint - major — renombrado, eliminación, cambio de claves obligatorias
Actual: servidor 1.2.0, esquema 1.2.0. Registro de cambios dentro del encabezado mcp-server.js.
Licencia
Este repositorio de documentación tiene licencia MIT (ver LICENSE). La aplicación Stock Analyzer en sí es software comercial de código cerrado.
Contacto
- Sitio web: stockanalyzer.tw
- Correo electrónico: hello@stockanalyzer.tw
- Problemas: Usa GitHub Issues en este repositorio para preguntas de integración con MCP
- Para solicitudes de funciones o informes de errores de la aplicación: correo electrónico anterior