← Notas
Por que MCP e não mais botões
mcp·ux·claude

Por que MCP e não mais botões

Substituímos seis páginas de dashboard por uma janela de chat. O custo foi uma hora de engenharia; a economia foi a cauda longa inteira de UI que nunca precisamos construir.

· Mikhail Savchenko · Atualizado

Um trading control plane é uma árvore de pequenas decisões. Pausar esta estratégia. Aprovar aquele rebalanceamento. Mover 50k do cash para o balanced. Mostrar o drawdown de ontem do paper_levels_bob. Cada decisão é um botão em algum lugar. Depois de um ano você tem noventa páginas, doze dropdowns e um operador clicando no errado às 3 da manhã.

A gente tentou o óbvio primeiro: melhor arquitetura de informação. Abas. Busca. Atalhos de teclado. Ajudou. Não consertou o problema de fundo, que é nenhuma UI fixa serve para a cauda longa de perguntas one-shot. “Mostra as operações acima de 10k desta semana nos sleeves que viraram de fase” não merece uma página própria. Então você não pergunta. Então você não vê.

O que o MCP muda

O Model Context Protocol expõe ferramentas server-side ao Claude. Escrevemos 14 - get_state, set_mode, approve_trade, allocate_to_long, e assim por diante. Cada uma encapsula um serviço existente no nosso codebase. Cada uma é gateada por papel (viewer / operator / admin) pelo mesmo RBAC que a UI web usa.

Você instala uma vez, gera um bearer token, e cola um config de 4 linhas no Claude Desktop. Depois disso, a árvore de decisões vira um chat:

mostra o estado atual do balanced

O Claude detecta a skill strateg-overview, chama get_state, mostra patrimônio / drawdown / regime / modo / aprovações pendentes. Uma frase de entrada. Cinco linhas de saída.

coloca o balanced em CAUTIOUS

O Claude detecta a skill strateg-set-mode, pede confirmação, chama set_mode(strategy="balanced", mode="CAUTIOUS"), relê o novo estado para verificar. Duas mensagens, uma chamada de tool, audit log idempotente.

move 50k do cash para o trading no paper_levels_bob

O Claude chama get_my_balance para puxar a árvore de capital, formata o movimento proposto (“cash $100,000 → $50,000; trading paper_levels_bob $0 → $50,000”), espera “yes”, chama allocate_to_trading. A tool retorna {ok: true, audit_ref, balance} e o Claude relê os totais novos.

O que não precisamos construir

  • Uma página de “busca por intervalo de datas, sleeve e lado”.
  • Um wizard de “mover dinheiro entre baldes com checagens de segurança e preview de saldo”.
  • Uma view de “comparar estratégias lado a lado”.
  • 14 modais de fluxos de confirmação.

O Claude faz tudo isso de graça. As skills ensinam qual tool usar e o que confirmar antes de escrever. As skills são arquivos markdown no seu config - você edita, forka, proíbe a gente de atualizar.

O que mantivemos

O dashboard não vai a lugar nenhum. Continuam existindo sete páginas de UI: cockpit, grade de estratégias, operações, painel de controle, fila de aprovações, settings, conta. Cards-and-charts ganham do chat para monitorar - seu olho pega mudanças de regime mais rápido que qualquer LLM. Chat ganha para editar - digitar uma frase é mais rápido que caçar um menu.

A gente só parou de tentar projetar UI para cada ação possível. Projetamos sete páginas de monitoramento e deixamos o MCP cuidar do resto.

A parte audit-grade

Cada chamada de tool escreve uma linha em audit_log com id do operador, ação, valor antigo + novo, e chave de idempotência. Fluxos de capital têm audit_ref para retries não duplicarem. Trocas de modo entram no mode_history com tag “via mcp:user#7”. O chat é conveniente; a trilha é a mesma que de botões clicados.

Se um regulador perguntar “quem pausou o trading às 03:14 do dia 22 de abril”, a resposta está em audit_log, não no seu histórico de Slack.

Tente

curl -fsSL https://inite.fund/install.sh | sh

Gere um token em /account, cole o config MCP no Claude Desktop, e pergunte: show me current state of balanced. Três minutos do zero.

Notas relacionadas
Todas as notas →