InvestBrain

Servidor MCP de pesquisa de investimentos com IA, incluindo GraphRAG, detecção de padrões de comportamento, análise de diário de negociação e integração de dados de mercado.

Documentação

InvestBrain — Segundo Cérebro de Investimentos

Ferramenta de disciplina autônoma para investidores experientes, resolvendo o problema de "unir conhecimento e ação" Não é consultoria de investimentos, não dá conselhos, mas sim um "espelho" + "âncora de disciplina"

License: AGPL v3 Python 3.10+ MCP Desktop

English README llms.txt 行为模式挖掘

Registro de ideias × RAG de investimentos × Sistema de memória × Gatilhos de lembrete × Mineração de padrões comportamentais


Experiência rápida em 5 minutos

Duas formas de uso: Cliente desktop (recomendado) ou MCP Server.

Opção A: Cliente desktop (Windows, recomendado)

  1. Baixe e instale o InvestBrain_0.1.2_x64_en-US.msi (veja Releases)
  2. Abra o aplicativo desktop e veja a barra de status "Cérebro carregado" e o guia de conversa inicial
  3. Para conversar, preencha sua própria chave de LLM na página de configurações para usar o fluxo de conversa real

Os dados do desktop são armazenados em %APPDATA%\InvestBrain\data; a página de configurações mostra a localização dos dados diretamente.

Opção B: MCP Server (qualquer cliente MCP)

# 1. 安装 MCP Server 依赖
cd src/mcp_server && pip install -r requirements.txt

# 2. 配置你自己的 LLM API Key(见下文「你的 Key,自己填」)
cp .env.example .env
# 编辑 .env,把 DEEPSEEK_API_KEY 填成你从 DEEPSEEK 后台拿到的 key

# 3. 启动 MCP Server
python server.py

Dica de primeira execução: o banco vetorial (Chroma + ONNX Embedding) baixará cerca de 80MB de arquivos de modelo na primeira vez. Se quiser pular o banco vetorial e usar apenas as ferramentas, mantenha os comentários relevantes em server.py como estão; para a experiência RAG completa, descomente as linhas dentro de server.py após o download.

Após a inicialização, o servidor aceita chamadas de clientes MCP via stdio. Para configurar o Claude Desktop, veja Integração com Claude Desktop abaixo.


Sua chave, você mesmo preenche

Importante: este repositório não inclui nenhuma chave de API de usuário. Em data/config/llm.json, o api_key é null por padrão (não é um placeholder real de chave); .env.example é apenas um modelo; webhook.json é um schema vazio.

Você precisa solicitar / rotacionar as chaves nos seguintes painéis oficiais:

ServiçoUsoEndereço do painel
DeepSeek APILLM principal (obrigatório)https://platform.deepseek.com → API Keys
Tushare ProDados financeiros/históricos de ações A (opcional)https://tushare.pro/register
DashScopeLLM alternativo Alibaba Tongyi (opcional)https://dashscope.console.aliyun.com
Against FinanceDados alternativos (opcional)https://www.against.com
Robô FeishuNotificações (opcional)https://open.feishu.cn → Robô → Webhook

Onde os 4 tipos de chave são configurados (nenhum vai para o git)

  • Obrigatório para iniciar o MCP: variável de ambiente DEEPSEEK_API_KEY (recomendado: variável de ambiente do sistema no nível do usuário, ou CLAUDE.md / .env)
  • Opcional: TUSHARE_TOKEN / DASHSCOPE_API_KEY / AGAINST_API_KEY (variáveis de ambiente)
  • Webhook do Feishu: campo feishu em data/config/webhook.json (protegido por .gitignore)

Regras de segurança

  • Sua chave é sua — não compartilhe, não faça commit, não envie em nenhuma conversa
  • Chaves no histórico do git (por exemplo, versões antigas com commit) podem ser usadas indevidamente mesmo após rotação → se detectar vazamento, rotacione imediatamente na plataforma correspondente
  • O repositório já tem .gitignore protegendo data/config/*.json (incluindo configurações de LLM/webhook) + data/memory/*.db (memória do usuário, conforme decisão do CLAUDE.md "dados do usuário armazenados localmente, não enviados à nuvem"), não remova a proteção com !

Nota: o histórico do repositório já teve placeholders de chave commitados (commit 22e6c72). Se já foi enviado ao remoto, as chaves antigas ainda podem ser lidas no histórico do clone — limpar o histórico é caro; normalmente aceite + rotacione


Início rápido: configuração de push

Do zero até receber a primeira notificação via WeChat, cerca de 3 minutos. Sem necessidade de ler qualquer documentação.

Opção 1: Script de um clique (recomendado, Windows)

No diretório raiz do repositório, abra o PowerShell e execute:

powershell -ExecutionPolicy Bypass -File scripts/configure_pushplus.ps1

O script guiará você interativamente por todas as etapas: mostra os passos para obter o token do PushPlus → cole o token (validação automática de formato) → grava em data/config/webhook.json e ativa o canal pushplus → chama automaticamente send_notification para enviar uma mensagem de teste → imprime o motivo de sucesso/falha.

Opção 2: Configuração via conversa (dentro do cliente MCP)

Diretamente em qualquer cliente MCP, peça à IA para configurar:

1. 查看当前配置状态:notify_get_notifier_config()
2. 配置 PushPlus 并发送测试:notify_configure_notifier(channel="pushplus", token="你的token", enabled=true, send_test=true)

Passos para obter o token do PushPlus

  1. Escaneie o QR code com o WeChat e siga a conta pública: https://www.pushplus.plus
  2. Acesse "Centro Pessoal" → copie o token da página
  3. Preencha em qualquer uma das opções acima

Validação de sucesso: receba a mensagem de teste, ou notify_get_notifier_config() retorna "enabled_channels": ["pushplus"]. Quando o canal não está configurado, o caminho de gatilho de lembrete (price_checker / scheduler) retorna com a mensagem de orientação setup_guide em vez de falhar silenciosamente.

Nota de segurança: data/config/webhook.json está protegido por .gitignore; o token não vai para o git; não envie o token em nenhuma conversa nem faça commit no repositório.


Que problema ele resolve

Problema central: investidores são levados pela narrativa, operam sem disciplina e se arrependem depois.

Dor comumResposta do InvestBrain
Ver uma ação subir muito e comprar na altaRegistro obrigatório do motivo da compra + associação com decisões históricas semelhantes
Vender por pânico quando caiGatilho de busca RAG sobre a visão de mestres sobre "pânico"
Repetir o mesmo tipo de erroMineração de padrões comportamentais identifica automaticamente o padrão "comprar na alta, vender na baixa"
Esquecer pontos importantes de tempo/preçoMonitoramento de preço/tempo/condições + push via Feishu
Não lembrar dos próprios julgamentos passadosSistema de memória + retrospectiva de cartões de decisão

Capacidades principais

FunçãoDescrição
Registro de ideiasUsuário diz uma frase, a IA analisa + associa ao histórico + gera um cartão
RAG de investimentosBusca e respostas sobre o pensamento de mestres (16 mestres × 5 conceitos centrais)
Sistema de memóriaPerfil do usuário, decisões históricas, mineração de padrões comportamentais
Gatilhos de lembreteMonitoramento de preço/tempo/condições, com push multicanal via Feishu/DingTalk/Bark
Mineração de padrões comportamentaisDescoberta automática de padrões de viés do investidor

Exemplos de conversa

Abaixo estão fluxos reais de conversa para três cenários de valor central (funcionam em qualquer cliente MCP):

Cenário 1: Perguntas e respostas RAG — Colisão de ideias de mestres

Usuário: Como Duan Yongping vê "dinheiro rápido" e "dinheiro lento"?

Chamada: rag_ask_investment(question="段永平怎么看快钱和慢钱")

Resposta da IA: O ponto central de Duan Yongping é que "dinheiro rápido" parece ter mais oportunidades, mas tem maior exposição a risco; "dinheiro lento" depende de juros compostos e certeza. No corpus de «Duan Yongping», há 12 passagens relacionadas. Trechos:

"A velocidade do investimento não deve ser maior que a velocidade do aprendizado." "O que você pode posicionar pesado é o negócio que você entende; o resto não é oportunidade." Conceitos relacionados: círculo de competência, margem de segurança, juros compostos.

Cenário 2: Análise de padrões comportamentais — Encontrar erros repetidos

Usuário: Quais são os problemas nas minhas negociações recentes?

Chamada: memory_get_behavior_patterns()

Resposta da IA: Detectei dois padrões comportamentais seus (últimos 30 dias, 11 negociações):

  1. Padrão de compra na alta (confiança 0,83) Amostras de gatilho: compra de NVDA/TSLA em D+1/D+2 após alta diária > 5%, taxa de acerto 25%, retorno médio -3,2% Sugestão: antes de comprar, consulte obrigatoriamente rag_ask_investment(question="追高的代价")

  2. Padrão de venda por pânico (confiança 0,71) Amostras de gatilho: venda em até 5 dias após perda > 15% na posição, com recuperação de 67% nos 30 dias seguintes Sugestão: ao gatilho, enviar automaticamente push via Feishu + citação da fala original do mestre

Cenário 3: Lembrete inteligente — Âncora de disciplina

Usuário: Me lembre de reavaliar quando a NVDA chegar a 950 dólares.

Chamada: reminder_set_reminder(condition={ticker:"NVDA", operator:"<=", threshold:950, action:"review"})

Resposta da IA: Lembrete criado: quando NVDA <= 950 USD, acionar "reavaliação". Ao acionar, serão buscados automaticamente: preço atual, seus cartões de decisão históricos sobre esse ativo e citações relevantes de mestres. O lembrete foi sincronizado com o canal de notificação (se configurado).


Integração com Claude Desktop

Conecte o InvestBrain ao Claude Desktop (comum para macOS / Windows):

Localização do arquivo de configuração:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Conteúdo da configuração (ajuste o caminho conforme o local do seu clone):

{
  "mcpServers": {
    "investbrain": {
      "command": "python",
      "args": [
        "D:/claudework/invest-brain/src/mcp_server/server.py"
      ],
      "env": {
        "DEEPSEEK_API_KEY": "sk-your-key-here"
      }
    }
  }
}

Após a configuração, reinicie o Claude Desktop; o ícone "Assistente de Investimentos" aparecerá na barra de ferramentas (39 ferramentas, consistente com a lista registrada em server.json).


Licença de código aberto e roadmap

Este projeto é licenciado sob GNU Affero General Public License v3.0 (AGPLv3). Em resumo: você pode usar, modificar e distribuir livremente, mas obras derivadas fornecidas como serviço de rede também devem ser de código aberto sob a mesma licença. Veja LICENSE.

NívelFunçãoStatus
Camada gratuitaMCP Server local✅ Disponível
RAG com 16 mestres✅ Disponível
Detecção de padrões comportamentais✅ Disponível
Sistema de lembretes✅ Disponível
Armazenamento de memória ilimitado✅ Disponível
Versão pessoalRelatórios semanais/mensais na nuvem (gerados por IA)Planejado (¥39/mês)
Sincronização de dados entre dispositivosPlanejado
Versão equipeColaboração em equipe e base de conhecimento compartilhadaPlanejado (¥199/mês)

Arquitetura

src/mcp_server/            # MCP Server(39 个工具)
├── server.py               # 主入口
├── tools/                  # 工具集
│   ├── thought_tools.py    # 想法记录
│   ├── rag_tools.py        # 投资 RAG
│   ├── memory_tools.py     # 记忆系统
│   ├── reminder_tools.py   # 提醒系统
│   ├── pattern_tools.py    # 行为模式
│   ├── report_tools.py     # 周报/月报
│   ├── roundtable_tools.py # 大师圆桌
│   └── notifier_tools.py   # 多通道通知
├── datasources/            # 数据源
│   ├── akshare_datasource.py
│   └── tushare_datasource.py
├── knowledge/              # 知识库
│   ├── vector_store.py     # Chroma 向量存储
│   └── graph_client.py     # 图存储
├── memory/                 # 记忆存储
├── patterns/               # 行为模式挖掘
├── llm/                    # LLM 客户端
│   ├── llm_router.py       # 通用 LLM 路由
│   ├── providers.py        # Provider 配置
│   └── deepseek_client.py
└── api_server.py           # REST API (LLM 配置)

data/
├── graph/                  # 知识图谱(16 位大师 + 概念)
├── knowledge/
│   └── vectors/            # 向量索引(Chroma)
├── memory/                 # 用户记忆
├── cards/                  # 想法卡片
├── reminders/              # 提醒条件
└── config/                 # 配置文件

Ferramentas MCP (40)

// 想法记录(3)
"thought_record_thought(text)",
"thought_search_memories(query)",
"thought_get_thought_cards(ticker)",

// 投资 RAG(4)
"rag_ask_investment(question)",
"rag_get_master_view(master, topic)",
"rag_search_knowledge(query)",
"rag_search_reports(query, top_k)",

// 记忆系统(3)
"memory_get_user_profile()",
"memory_record_decision(data)",
"memory_get_behavior_patterns()",

// 提醒系统(3)
"reminder_set_reminder(condition)",
"reminder_get_reminders()",
"reminder_delete_reminder(id)",

// 行为模式(3)
"pattern_run_pattern_detection()",
"pattern_get_pattern_summary()",
"pattern_get_pattern_report(id)",

// 周报/月报(1)
"report_run_scheduled_report(range)",

// 大师圆桌(1)
"invest_roundtable(question)",

// 通知配置(2)
"notify_configure_notifier(channel, webhook_url)",
"notify_get_notifier_config()",

// 行情数据 — AKShare(5)
"market_get_stock_quote(ticker)",
"market_get_stock_history(ticker, period)",
"market_get_index_components(index_code)",
"market_get_valuation(ticker)",
"market_get_market_sentiment()",

// 行情数据 — Tushare(15)
"tushare_get_daily_price(ts_code)",
"tushare_get_weekly_price(ts_code)",
"tushare_get_realtime_quote(ts_code)",
"tushare_get_index_daily(index_code)",
"tushare_get_financial_indicator(ts_code)",
"tushare_get_income_statement(ts_code)",
"tushare_get_balance_sheet(ts_code)",
"tushare_get_cash_flow(ts_code)",
"tushare_get_index_components(index_code)",
"tushare_get_industry_classification(ts_code)",
"tushare_get_valuation_multi(ts_code)",
"tushare_get_market_top_movers()",
"tushare_get_stock_pledge_status(ts_code)",
"tushare_convert_ticker(ticker)",
"tushare_check_token_status()"

Lista completa de ferramentas em src/mcp_server/tools/.


Base de conhecimento

16 mestres de investimento: Buffett, Munger, Duan Yongping, Howard Marks, Li Lu, Graham, Damodaran, Ackman, Cathie Wood, Michael Burry, Pabrai, Taleb, Lynch, Fisher, Druckenmiller

5 conceitos centrais: Fosso econômico, margem de segurança, círculo de competência, pensamento de segunda ordem, risco assimétrico

Conhecimento do setor: Estruturas de pesquisa aprofundada para 28 setores da classificação Shenwan (recuperadas no banco vetorial, sem publicação do texto original, protegendo a propriedade intelectual da metodologia central)


Fontes de dados

Fonte de dadosUsoStatus
AKShareCotações em tempo real✅
TushareDados financeiros/históricos✅
ChromaÍndice vetorial✅
SQLiteMemória local✅

Desenvolvimento

# 启动 REST API Server(用于 LLM 配置)
python src/mcp_server/api_server.py
# 访问 http://localhost:8000/api/llm/config

# 启动前端(Next.js 落地页 + 设置面板)
npm install
npm run dev
# 访问 http://localhost:3000

Testes:

pytest tests/

Projetos relacionados

ProjetoUso
invest-buddy-petProduto de acompanhamento para iniciantes (teste de personalidade)
mangoviewSite de sistema superprofissional (análise profissional)

🛠️ Conjunto de ferramentas recomendado

As recomendações abaixo são geradas a partir do mapeamento cenário→ferramenta do SKILL.md do awesome-finai-tools-zn, com 1 melhor ferramenta por categoria. A lista completa está na página inicial do repositório.

Ferramenta recomendadaFunçãoInstalação
ashare-mcpMCP Server de ações A de nível de produção, 30 ferramentas (cotações em tempo real/K-line/lista de limite de alta/ranking de dragões e tigres/relatórios financeiros/fluxo de capital por setor)git clone https://github.com/CharmYue/ashare-mcp && cd ashare-mcp && uv sync
opencli-eastmoney-quoteCLI sem configuração, cotações em tempo real de ações A/HK/US em segundosnpm install -g @jackwener/opencli
opencli-xueqiu-searchBusca de ações no Xueqiu + análise de sentimento de posts populares, em chinês ou códigonpm install -g @jackwener/opencli
QlibFramework de quant da Microsoft, mineração automática de fatores + treinamento de modelos + avaliação por backtestpip install pyqlib
MCP Yingmi Fund69 ferramentas MCP padronizadas + 16 componentes de habilidade, incluindo backtest de carteiras/simulação de Monte CarloContate a plataforma de IA aberta da Yingmi para obter a chave de API

A lógica de recomendação é baseada em awesome-finai-tools-zn/data/institution-skills.json, atualizada automaticamente toda semana.


🔗 Integração do ecossistema de ferramentas

Este repositório faz parte do ecossistema de ferramentas FinAI, colaborando com outros repositórios:

RepositórioPosicionamentoRelação com este repositório
awesome-finai-tools-znBase de dadosFornece lista de ferramentas + dados de habilidades institucionais
invest-brainMotor de recomendação de ferramentasRecomenda ferramentas automaticamente com base no cenário
investment-buddy-petConsultoria personalizadaCombina ferramentas conforme a personalidade de investimento
SoloAdvisor-ToolkitKit de ferramentas de fluxo de consultoriaKYC→alocação→carteira→relatório
knowledge-workflowGestão de conhecimentoColeta→etiquetagem→armazenamento→produção

🗺️ Roadmap

Documento detalhado de requisitos de transformação: docs/改造需求-roadmap.md

Transformações centrais P0 (visão de base de conhecimento pessoal):

  • 🔴 Base de conhecimento RAG personalizável pelo usuário (permitir que o framework do próprio usuário seja referenciado pelo RAG)
  • 🔴 Lembretes acionados por notícias/eventos (compra de ouro por bancos centrais, conflitos geopolíticos, congelamento de títulos dos EUA, etc.)
  • 🔴 Ferramenta de gestão de framework de investimento (registro estruturado das regras e condições de gatilho do usuário)

Fontes de dados P1:

  • 🟡 Dados em tempo real de ouro à vista / índice do dólar / rendimento de títulos dos EUA
  • 🟡 Correção de dados de ETFs de ouro (518880 / GLD)

Otimização de experiência P2:

  • 🟢 Bug de extração NLU no cartão de pensamento (reconhecimento incorreto de números/nomes em inglês)

Progresso recente (2026-07-29):

  • ✅ Framework central de investimento em ouro gravado no cartão de pensamento (thought_8)
  • ✅ Simulação de ouro baseada em dados reais gravada no cartão de pensamento (thought_9)
  • ✅ Documento de requisitos de transformação criado (docs/改造需求-roadmap.md)

Versão: v0.1.2 Data de criação: 2026-06-24 Licença: AGPL v3