Aula 10 - MCP com Aplicações Web 🌐
Objetivo
Objetivo: Compreender como integrar o protocolo MCP em aplicações frontend, criando interfaces ricas que permitem a interação entre o usuário final, modelos de IA e ferramentas de sistema.
1. O Fluxo de Comunicação na Web 🔄
Em uma aplicação web conectada ao MCP, o fluxo envolve um passo extra: o Usuário.
graph LR
User[Usuário / Navegador] -- "Pergunta" --> App[App Web / Frontend]
App -- "API / WebSocket" --> Client[MCP Client (Backend)]
Client -- "Executa Tool" --> Server[MCP Server]
Server -- "Resultado" --> Client
Client -- "Gera Resposta" --> App
App -- "Exibe UX" --> User
2. Bibliotecas e SDKs para Frontend 📦
Embora a maioria dos servidores MCP rode no backend (Node/Python), existem bibliotecas para facilitar a conversa com o front:
- MCP Web SDK: Permite conexões via SSE diretamente do navegador (quando o servidor é remoto).
- Proxy-based: O frontend conversa com um backend próprio, que atua como o Cliente MCP.
3. Experiência do Usuário (UX) Conectada 🎨
Diferente de um chat comum, uma aplicação MCP precisa mostrar o que está acontecendo "nos bastidores".
Transparência de Ação
- Indicador de Chamada: "IA está consultando o banco de dados..."
- Confirmação Humana: "A IA deseja deletar este arquivo. Você autoriza?"
- Visualização de Dados: Em vez de apenas texto, o frontend pode renderizar o JSON da Tool em um gráfico ou tabela bonita.
4. Segurança no Lado do Cliente (Frontend) 🛡️
- Não exponha Credenciais: Nunca coloque chaves de API do seu Servidor MCP no código Javascript do frontend.
- Sanitização: Filtre as respostas da IA antes de renderizá-las para evitar ataques de XSS (Cross-Site Scripting).
5. Prática: Dashboard de Ferramentas 💻
Imagine um frontend que lista as ferramentas disponíveis no seu Servidor MCP.
$ npm run start-demo-app
[INFO] Servidor rodando em http://localhost:8080
[CONNECTED] Cliente MCP detectado.
[UI] Renderizando botões para as Tools:
- [Check Weather]
- [Send Email]
- [Update CRM]
[SUCCESS] Clique e veja a IA agir no sistema!
6. Mini-Projeto: Assistente Web 🧪
- Desenhe um esboço de interface para um chat de suporte.
- Adicione um componente lateral que mostra quais "fontes de dados" (Resources) a IA está consultando no momento.
- Crie um botão de "Histórico de Ações" para que o usuário veja tudo o que o MCP executou durante a conversa.
7. Exercícios de Fixação 📝
- Por que é recomendável usar um backend como intermediário entre o Frontend e o Servidor MCP?
- Explique a importância da "Confirmação Humana" em aplicações web que usam MCP para ações destrutivas.
- Como a renderização de dados (gráficos/tabelas) melhora a percepção do usuário sobre o trabalho da IA?
Dica
Use WebSockets para conexões de longa duração se o seu servidor MCP precisar enviar notificações de progresso em tempo real para o usuário.
Próxima Aula: MCP e Arquitetura de Microsserviços 🔌