Stock Analyzer MCP

81 ferramentas para análise do mercado de ações de Taiwan + EUA. Primeiro servidor MCP com cobertura profunda de TWSE/TPEx (fluxos institucionais, dados de chips, receita mensal). SQLite local-first, BYOK LLM.

Documentação

Stock Analyzer MCP

📡 O servidor Model Context Protocol incluído no Stock Analyzer — um aplicativo desktop para macOS de análise do mercado de ações de Taiwan + EUA.

Um servidor MCP com cobertura profunda de ações de Taiwan (TWSE / TPEx + fluxos das três principais instituições + dados de chips + receita mensal). 95 ferramentas em 15 categorias + 6 recursos. Local-first — roda in-process dentro do aplicativo Electron, sem custos de API, sem dependência de nuvem.

Versão atual: servidor MCP 1.3.0 · aplicativo Stock Analyzer 0.48.0-beta · Atualizado em 2026-06-30


⚠️ Como este servidor MCP realmente funciona

Este repositório contém o código-fonte do shim MCP (mcp-server.js + lib/ai-tools + Dockerfile). O shim é uma ponte fina de HTTP para stdio — quando um cliente MCP invoca uma ferramenta, o shim faz proxy da chamada para http://localhost:3000/api/*, onde o backend Express embutido do aplicativo desktop Stock Analyzer faz o trabalho real (consulta ao banco de dados, cálculo, análise).

O servidor MCP neste repositório, executado de forma independente (ex.: via docker run), pode anunciar suas 95 ferramentas por introspecção, mas não pode executá-las. Você precisa do Stock Analyzer rodando na mesma máquina para que as ferramentas realmente retornem dados.

Essa divisão é intencional — o mecanismo de análise + dados de mercado + recursos protegidos por licença vivem no aplicativo desktop de código fechado; o shim MCP é open-source (MIT), então a superfície de integração é totalmente transparente.


Por que este repositório existe

O aplicativo desktop Stock Analyzer em si é um produto comercial (nível Lite gratuito, Standard NT$1.499, Premium NT$2.999 — todos pagamento único, sem assinatura). Este repositório existe para:

  • Disponibilizar como open-source a camada do shim MCP sob MIT, para que marketplaces (awesome-mcp-servers, mcpservers.org, PulseMCP, Glama) possam criar e verificar uma imagem funcional
  • Fornecer um link canônico público para descoberta do MCP
  • Hospedar o guia de integração separadamente do código-fonte fechado do aplicativo
  • Facilitar a configuração do Claude Desktop / Claude Code / frameworks de agentes contra o servidor MCP incluído

Build (Docker, para Glama / marketplaces)

docker build -t stock-analyzer-mcp .
docker run -i --rm stock-analyzer-mcp   # stdio JSON-RPC on stdin/stdout

A imagem tem ~258 MB (node:20-alpine + 2 dependências npm). O build ignora better-sqlite3, Electron e outras dependências exclusivas do backend, porque o shim em si nunca as importa — todas as chamadas de dados vão via HTTP para os endpoints /api/* do aplicativo Stock Analyzer rodando localmente.


O que há neste servidor MCP

95 ferramentas em 15 categorias

CategoriaFerramentasExemplos
market (14)Cotações, histórico, heatmap, ranking de setores, notícias, câmbio, sazonalidade, participações em ETFs, status de dias de negociaçãoget_stock_price, get_market_heatmap, get_seasonality
chips (6)Fluxos das três principais instituições, Sankey de fluxo de fundos, alertas de insider, blocos anormais, ranking de margemget_institutional_flow, get_fund_flow_sankey
fundamentals (6)Demonstrações financeiras, receita mensal, dividendos, EPS, valuation por DCFget_financial_statements, calculate_dcf
technical (5)RSI / MACD / KD / Bollinger / Beta / correlação / padrões de candlestickget_technical_indicators, detect_kline_patterns
macro (8)Política do FED, curva de juros, inflação, emprego, calendário de resultadosget_macro_snapshot, get_fed_policy_stance
sentiment (6)Sentimento de notícias, sentimento de mercado, sentimento por ação, previsões, estratégias de entrada, razão put/call da TAIFEXget_stock_sentiment_v2, get_sentiment_forecasts
portfolio (11)Posições, P&L, desempenho, concentração, sinais, CRUD de negociaçõesget_portfolio, get_portfolio_concentration
backtest (5)Ação única, multi-estratégia, busca em grade, mineração de fatores MC, portfólio aleatóriobacktest_strategy, monte_carlo_factor_mining
risk (6)VaR, risco sistêmico, otimização de portfólio, contribuição marginal/componente do VaR, teste de estresse, propagação de estresse em cenáriosget_systemic_risk, get_risk_contribution, run_scenario
ai workflow (7)Análise completa de ações, screener, fluxos de trabalho, notas, + debate aprofundado + briefing diário + comparação de candidatos + revisão pós-negociaçãoresearch_stock_deep_dive, portfolio_daily_briefing
thesis (7)CRUD de hipóteses de investimento + avaliação de qualidadeupsert_thesis, evaluate_thesis_quality
watchlist (4)CRUD de lista de acompanhamentoadd_watchlist
alert (3)Alertas de preçoset_price_alert
backfill (2)Backfill administrativo de dadostrigger_backfill
forecast (5)Cone de probabilidade de preço (Monte Carlo GBM), histórico de calibração de previsões à prova de manipulação, contexto de pré-abertura TW entre mercados, replay de conhecimento até a data (calibração multi-método), liderança de pré-abertura dos EUA por açãoget_price_forecast, get_asof_replay, get_stock_preopen_lead

Cada ferramenta carrega:

  • annotations.readOnlyHint — se a ferramenta modifica estado (clientes confirmam automaticamente antes de operações destrutivas)
  • annotations.destructiveHintdelete_* / cancel_* marcados como verdadeiros
  • annotations.idempotentHintupsert_* / update_* marcados como verdadeiros
  • _meta.tw.stockanalyzer/estimated_cost_usd — custo de LLM no pior caso (a maioria das ferramentas custa $0; deep-dive ~$0,16)

6 recursos (mencionáveis com @ no Claude Desktop)

Injete contexto na sua conversa sem gastar chamadas de ferramenta:

RecursoConteúdo
saa://portfolioPosições completas (TW + EUA, precificação unificada USD/TWD, P&L não realizado)
saa://watchlistTodas as entradas da lista de acompanhamento com cotações ao vivo + estados de alerta
saa://thesisTeses de investimento ativas (hipótese, níveis-chave, próximas datas de revisão)
saa://market/todayFluxos das três principais instituições / vencedores por setor / risco sistêmico / câmbio
saa://reports/recentÚltimo briefing de portfólio (gratuito; não aciona LLM automaticamente)
saa://system/infoIntrospecção do servidor (versão, versão do schema, perfil ativo, contagem de ferramentas)

Perfis (filtre o que é exposto)

Defina a variável de ambiente SAA_MCP_PROFILE para controlar quais ferramentas ficam visíveis para o cliente LLM:

PerfilFerramentas expostasCaso de uso
default (omitir)Todas as 95Seu Claude Desktop pessoal
safe_readonly80 ferramentas somente leituraClientes LLM compartilhados / não confiáveis — bloqueia add_trade / delete_* / upsert_thesis / set_price_alert / etc.

Os recursos permanecem disponíveis em ambos os perfis (são somente leitura por definição).


Como se compara

ServidorCobertura TWCobertura EUALocalModelo de licença
Alpha Vantage MCP⚠️ Apenas cotações atrasadas✅ Completa❌ API em nuvemPagamento por chamada
Financial Datasets MCP❌ Nenhuma✅ Completa❌ API em nuvemAssinatura
EODHD MCP⚠️ Apenas fim do dia✅ Completa❌ API em nuvemAssinatura
Lambda Finance❌ Nenhuma✅ Completa + opções❌ NuvemAssinatura
Stockflow (Yahoo)⚠️ Dados TW irregulares✅ Completa❌ NuvemGratuito (com limite de taxa)
Stock Analyzer MCPTWSE + TPEx profundo + institucional + chips✅ CompletaSQLite localLicença de pagamento único (Lite gratuito)

Para leitores fora de Taiwan: o mercado de ações de Taiwan tem seu próprio ecossistema de dados (TWSE, TPEx OpenAPI, três principais investidores institucionais, relatórios de receita mensal) que é quase ausente nas plataformas de dados financeiros em inglês. Se você quer um agente de IA que possa responder "Como os investidores institucionais estão negociando a TSMC ultimamente?" ou "Encontre small caps de TW com crescimento de receita YoY >30%", o Stock Analyzer MCP foi construído exatamente para isso — ferramentas determinísticas de chips/institucional/receita de TW que servidores MCP focados em inglês geralmente não têm.


Início rápido: Claude Desktop

1. Instale o Stock Analyzer

Obtenha o nível Lite gratuito em stockanalyzer.tw. A versão 0.47.4-beta ou posterior inclui o servidor MCP v1.2.0.

2. Configure o Claude Desktop

Edite ~/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 que o wrapper? Executar node mcp-server.js diretamente causa uma incompatibilidade de ABI better-sqlite3 (o binding é compilado para o Node do Electron, não o do sistema). O wrapper bin/saa-mcp encontra automaticamente o runtime Electron do SAA e executa o servidor MCP com ELECTRON_RUN_AS_NODE=1. Configurações antigas que apontam para node precisarão ser atualizadas.

3. (Opcional) Restringir ao modo somente leitura

Se o cliente LLM não for totalmente confiável (projeto Claude compartilhado, agente de terceiros), adicione:

"env": { "PORT": "3000", "SAA_MCP_PROFILE": "safe_readonly" }

Isso bloqueia 15 ferramentas de escrita (add_trade, delete_trade, upsert_thesis, set_price_alert, etc.), mas mantém todas as ferramentas de leitura + todos os 6 recursos.

4. Reinicie completamente o Claude Desktop (cmd+Q e depois reabra)

5. Experimente

"Liste todas as ferramentas do SAA stock-analyzer"

"Analise 2330 — fluxo institucional do último mês + momentum de 3 meses + pontuação radar + dê uma visão de compra/venda"

"@saa://portfolio — qual é meu maior risco de concentração?"

"Compare 2330, 2454 e 3008 como candidatos. Inclua as teses deles, se existirem."

O Claude orquestrará múltiplas chamadas de ferramentas (ou menções @ para recursos) e sintetizará um relatório de pesquisa.


Ferramentas em destaque (2026-05-18)

🎭 research_stock_deep_dive — nível Premium

5 agentes de IA especializados debatem em paralelo:

  • 🐂 Bull (vê apenas evidências que apoiam uma tese de alta)
  • 🐻 Bear (vê apenas evidências que apoiam uma tese de baixa)
  • 📰 Sentimento (sinais de notícias + sociais)
  • 🛡️ Risco (volatilidade, histórico de drawdown, contexto de regime)
  • 🎯 Sintetizador (vê todos os quatro; produz uma ação em 6 níveis: strong_buyavoid)

Cada agente usa um subconjunto distinto das 95 ferramentas. A saída inclui raciocínio por agente + ação final + pontuação de confiança. Custo de LLM ~$0,16/chamada (Anthropic Sonnet / OpenAI).

🌅 portfolio_daily_briefing — nível Lite

Briefing de portfólio pré-mercado ou pós-mercado. Agrega posições atuais, P&L não realizado, exposição setorial, macro relevante / fluxos institucionais em um resumo acionável.

  • mode='get' → lê o briefing em cache mais recente (gratuito, instantâneo)
  • mode='generate' → gera um novo (~10-20s, custo de LLM ~$0,04/chamada)

🔍 compare_investment_candidates — Lite, custo $0

Análise aprofundada lado a lado de 2-5 ações candidatas. Fan-out paralelo de get_full_stock_analysis (fundamentals + technical + chip + institucional + níveis) por candidato, além do status de teses existentes. Determinístico — o agente vê evidências brutas em vez de uma opinião sintetizada por LLM, o que empiricamente produz melhor raciocínio.

📓 post_trade_review — Lite, custo $0

Reflexão dos últimos N dias. Agrega analyze_trade_performance (P&L FIFO, taxa de acerto, tempo de manutenção) + get_trade_journal (negociações recentes) + get_portfolio_signals (estado atual). Detecta automaticamente padrões observáveis:

  • low_win_rate (< 40%) → problema sistemático de seleção ou timing
  • over_trading (manutenção média < 5 dias) → taxas corroendo retornos
  • lopsided_pnl (perda média > ganho médio) → disciplina ruim de stop-loss

Entrega ao agente indicadores objetivos para escrever uma revisão narrativa.


Documentação

  • Guia completo de uso do MCP (zh-TW + en): MCP-USAGE-GUIDE.md — configuração do Claude Desktop, solução de problemas, exemplos de conversa
  • Post de lançamento do blog (bilíngue): docs/mcp-launch-2026-05.md — contexto sobre o cenário financeiro MCP 2026 + por que a cobertura TW era a lacuna
  • Referência de ferramentas: incluída no aplicativo em Configurações → 🔌 MCP / Agente

Filosofia de design

  • Local-first: Todos os dados vivem em ~/.twse-analyzer/stock_history.db (SQLite, arquivo único). O servidor MCP roda in-process dentro do aplicativo Electron via transporte stdio.
  • BYOK LLM: O próprio SAA tem um AI Hub que consome as mesmas 95 ferramentas. Traga suas próprias chaves (Claude / GPT / Gemini / Ollama). O servidor MCP em si não está vinculado a nenhum LLM — ele apenas expõe dados determinísticos + alguns agregadores com suporte de LLM.
  • Metodologia transparente: 16 páginas de metodologia bilíngues (zh-TW + en) explicam a fórmula, a fonte de dados e as limitações de cada ferramenta analítica. Disponível em /methodology.html dentro do aplicativo.
  • Sem sinais ativos de negociação: Apenas saída de pesquisa — não execução de ordens. Decisão regulatória + de posicionamento de produto.
  • Honestidade de custos: Cada ferramenta expõe seu custo de LLM no pior caso antecipadamente via _meta.tw.stockanalyzer/estimated_cost_usd. Sem gastos ocultos com API em nuvem.

Versionamento

O servidor MCP usa dois números de versão:

CampoSignificadoIncremento quando
server_versionVersão binária do MCP do SAA (mostrada em initialize)A cada release do aplicativo SAA
tools_schema_version (em saa://system/info)Versão da forma das ferramentas/recursosFerramenta adicionada/removida/renomeada/requisito alterado
Regras:
  • patch — aditivo (nova ferramenta, novo recurso)
  • minor — novo parâmetro obrigatório, nova restrição de enum, mudança de readOnlyHint
  • major — renomeação, remoção, mudança de chaves obrigatórias

Atual: servidor 1.2.0, esquema 1.2.0. Changelog dentro do cabeçalho mcp-server.js.


Licença

Este repositório de documentação é licenciado sob MIT (veja LICENSE). O aplicativo Stock Analyzer em si é software comercial de código fechado.


Contato

  • Website: stockanalyzer.tw
  • Email: hello@stockanalyzer.tw
  • Issues: Use o GitHub Issues neste repositório para perguntas de integração com MCP
  • Para solicitações de recursos ou relatórios de bugs do aplicativo: envie um e-mail para o endereço acima