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
| Categoria | Ferramentas | Exemplos |
|---|---|---|
| market (14) | Cotações, histórico, heatmap, ranking de setores, notícias, câmbio, sazonalidade, participações em ETFs, status de dias de negociação | get_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 margem | get_institutional_flow, get_fund_flow_sankey |
| fundamentals (6) | Demonstrações financeiras, receita mensal, dividendos, EPS, valuation por DCF | get_financial_statements, calculate_dcf |
| technical (5) | RSI / MACD / KD / Bollinger / Beta / correlação / padrões de candlestick | get_technical_indicators, detect_kline_patterns |
| macro (8) | Política do FED, curva de juros, inflação, emprego, calendário de resultados | get_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 TAIFEX | get_stock_sentiment_v2, get_sentiment_forecasts |
| portfolio (11) | Posições, P&L, desempenho, concentração, sinais, CRUD de negociações | get_portfolio, get_portfolio_concentration |
| backtest (5) | Ação única, multi-estratégia, busca em grade, mineração de fatores MC, portfólio aleatório | backtest_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ários | get_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ção | research_stock_deep_dive, portfolio_daily_briefing |
| thesis (7) | CRUD de hipóteses de investimento + avaliação de qualidade | upsert_thesis, evaluate_thesis_quality |
| watchlist (4) | CRUD de lista de acompanhamento | add_watchlist |
| alert (3) | Alertas de preço | set_price_alert |
| backfill (2) | Backfill administrativo de dados | trigger_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ção | get_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.destructiveHint—delete_*/cancel_*marcados como verdadeirosannotations.idempotentHint—upsert_*/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:
| Recurso | Conteúdo |
|---|---|
saa://portfolio | Posições completas (TW + EUA, precificação unificada USD/TWD, P&L não realizado) |
saa://watchlist | Todas as entradas da lista de acompanhamento com cotações ao vivo + estados de alerta |
saa://thesis | Teses de investimento ativas (hipótese, níveis-chave, próximas datas de revisão) |
saa://market/today | Fluxos 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/info | Introspecçã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:
| Perfil | Ferramentas expostas | Caso de uso |
|---|---|---|
default (omitir) | Todas as 95 | Seu Claude Desktop pessoal |
safe_readonly | 80 ferramentas somente leitura | Clientes 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
| Servidor | Cobertura TW | Cobertura EUA | Local | Modelo de licença |
|---|---|---|---|---|
| Alpha Vantage MCP | ⚠️ Apenas cotações atrasadas | ✅ Completa | ❌ API em nuvem | Pagamento por chamada |
| Financial Datasets MCP | ❌ Nenhuma | ✅ Completa | ❌ API em nuvem | Assinatura |
| EODHD MCP | ⚠️ Apenas fim do dia | ✅ Completa | ❌ API em nuvem | Assinatura |
| Lambda Finance | ❌ Nenhuma | ✅ Completa + opções | ❌ Nuvem | Assinatura |
| Stockflow (Yahoo) | ⚠️ Dados TW irregulares | ✅ Completa | ❌ Nuvem | Gratuito (com limite de taxa) |
| Stock Analyzer MCP | ✅ TWSE + TPEx profundo + institucional + chips | ✅ Completa | ✅ SQLite local | Licenç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.jsdiretamente causa uma incompatibilidade de ABIbetter-sqlite3(o binding é compilado para o Node do Electron, não o do sistema). O wrapperbin/saa-mcpencontra automaticamente o runtime Electron do SAA e executa o servidor MCP comELECTRON_RUN_AS_NODE=1. Configurações antigas que apontam paranodeprecisarã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_buy→avoid)
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 timingover_trading(manutenção média < 5 dias) → taxas corroendo retornoslopsided_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.htmldentro 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:
| Campo | Significado | Incremento quando |
|---|---|---|
server_version | Versã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/recursos | Ferramenta 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