Voltar as noticias
Dando um Cérebro ao Seu App de Contabilidade: NestJS 'MCP'
MCP ProtocolMediaEN

Dando um Cérebro ao Seu App de Contabilidade: NestJS 'MCP'

Dev.to - MCP·23 de abril de 2026

Recapitulação

Vamos ser realistas: no último blog estávamos rodando um servidor MCP local no meu pc, conectando-o ao GitHub Copilot como cientistas malucos. Foi incrível. Mas foi um experimento de laboratório. O "cérebro" estava preso à minha máquina.

Então... e se construíssemos o cérebro dentro do próprio aplicativo?

O Sistema

Então aqui está a configuração. Temos três jogadores neste jogo:

O Aplicativo Web: React, Vite, Redux Toolkit. O chat vive em /magic-bookkeeping.
O Backend: NestJS, PostgreSQL, Redis. É aqui que o trabalho real acontece.
O Serviço de IA: Claude Haiku 3.5 via Requesty.AI, sentado entre eles.

O usuário diz: E aí, que itens temos?
Agente: Chama a ferramenta itemAll para verificar o inventário de itens e então pausa legal RENDERIZA um Componente UI Completo com detalhes do item! Não textos!
Também funciona para inputs em Bengali e de voz, a propósito.

sistema

O Contrato do frontend:

conexão do frontend com o serviço mcp

Isso é o que os mantém conectados.

A Camada MCP: Mas Não É Realmente MCP?

Reviravolta: chamamos de MCP, mas não é realmente o Modelo de Protocolo de Contexto. Não há stdio. Sem SSE. Sem @modelcontextprotocol/sdk. Sem JSON-RPC. Basicamente, construímos nossa própria fachada de chamada de ferramenta que se parece com a especificação de função da OpenAI, para que Claude saiba o que fazer com isso.

mcp

Como isso já era um sistema ERP pesado o suficiente, com muito código que foi escrito antes da era da IA, adaptá-lo a um servidor mcp separado não seria tão fácil, além de que também significaria que teríamos que manter outro servidor.

O Controlador (apenas dois endpoints!):

controlador de ferramenta mcp

quando um usuário solicita qualquer informação pela primeira vez, list_tool listará todas as ferramentas disponíveis para o modelo de IA
call_tool é onde a mágica acontece, passamos um prompt de sistema para o serviço de IA para que ele saiba como selecionar as ferramentas para quaisquer operações específicas ou quais ferramentas chamar para, digamos, obter itens ou adicionar um novo item ao inventário.

o dto da ferramenta:

call tool dto

por que "qualquer" ?
Porque cada ferramenta tem uma estrutura diferente.
arguments: any é provavelmente o tipo TypeScript mais honesto já escrito.

E aqui está como as ferramentas são despachadas:

despacho de ferramenta mcp

tools.json é lido do disco a cada solicitação, não é armazenado em cache. O padrão de switch significa que adicionar uma ferramenta requer editar tanto o arquivo JSON quanto este serviço. (me dê um desconto, foi a primeira vez que construí coisas assim :))

Anatomia de uma ferramenta mcp

existem dois tipos de ferramentas para este projeto

  • Ferramentas de Dados
  • Ferramentas de Componente as ferramentas de dados lidam com as chamadas de serviço reais e os payloads de resposta, enquanto a ferramenta de componente é usada apenas para UI generativa, que chegaremos a mais tarde.

aqui está uma ferramenta de dados declarada dentro do tools.json:

declaração de ferramenta mcp

esta é a forma como lidamos com a ferramenta através do nosso serviço mcp:

manipulador de ferramenta de dados mcp

O resultado é a entidade bruta retornada pelo serviço de domínio.

Agora compare com a ferramenta de componente
uma ferramenta de criar item em tools.json:

ferramenta de criar item mcp

manipulador em mcp.service.ts:

manipulador de ferramenta mcp

Contexto Triplo Up

A implementação de um sistema de IA em aplicativos pode transformar a forma como as empresas brasileiras gerenciam suas operações. A adaptação de ferramentas de IA como Claude pode otimizar processos e melhorar a experiência do usuário. A construção de uma camada MCP personalizada pode facilitar a integração de novas funcionalidades.

Noticias relacionadas

Gostou do conteudo?

Receba toda semana as principais novidades sobre WebMCP.