Voltar as noticias
Construindo Aplicativos MCP com Angular
MCP ProtocolAltaEN

Construindo Aplicativos MCP com Angular

Dev.to - MCP·25 de abril de 2026

Se você tem construído servidores MCP, você sabe como funciona: sua ferramenta retorna JSON, o host renderiza como texto, e o usuário aperta os olhos para uma string de timestamp. Aplicativos MCP mudam isso — eles permitem que seu servidor envie uma interface interativa que o host renderiza em um iframe, bem dentro da conversa.

Os Aplicativos MCP são construídos sobre o Modelo de Contexto de Protocolo — um padrão aberto. Eles não estão ligados ao Claude ou a qualquer provedor de IA específico. Qualquer host que implemente a especificação dos Aplicativos MCP (Claude Desktop, clientes de chat personalizados ou outros assistentes de IA que adotem o MCP) pode renderizar sua interface. Você a constrói uma vez, e ela funciona em todos os lugares onde o MCP é suportado.

Este post aborda a construção de Aplicativos MCP com Angular. Começaremos com uma única ferramenta, adicionaremos uma segunda ferramenta com sua própria interface, e então mostraremos como compartilhar código entre elas sem aumentar o tamanho de nenhum dos pacotes.

Como os Aplicativos MCP Funcionam (Recapitulando Rápido)

View (Aplicativo Angular) <--PostMessageTransport--> Host (AppBridge) <--Cliente MCP--> Servidor MCP
  • Servidor registra ferramentas e recursos. Cada ferramenta pode apontar para um URI de recurso contendo a interface.
  • Host (o cliente de chat) busca esse recurso e o renderiza em um iframe isolado.
  • View é seu aplicativo Angular rodando dentro desse iframe. Ele usa a classe App de @modelcontextprotocol/ext-apps para se comunicar com o host.

A chave para entender: sua interface é empacotada em um único arquivo HTML autossuficiente usando Vite e vite-plugin-singlefile. O host não precisa saber que é Angular — ele apenas carrega HTML.

Estrutura do Projeto

basic-server-angular/
├── mcp-app.html              # Ponto de entrada HTML para a interface #1
├── greeting-app.html         # Ponto de entrada HTML para a interface #2
├── src/
│   ├── main.ts               # Inicialização do Angular para a interface #1
│   ├── app.component.ts      # Componente Get Time
│   ├── greeting-main.ts      # Inicialização do Angular para a interface #2
│   ├── greeting.component.ts # Componente de Saudação
│   ├── shared/
│   │   └── mcp-app-setup.ts  # Configuração compartilhada de App + temas
│   └── global.css            # Variáveis CSS cientes do host
├── server.ts                 # Servidor MCP (registra ferramentas + recursos)
├── main.ts                   # Ponto de entrada do servidor (HTTP + stdio)
└── vite.config.ts            # Constrói cada HTML em um único arquivo

Passo 1: O Servidor

Todo Aplicativo MCP começa no lado do servidor. Você registra uma ferramenta (o que o LLM chama) e um recurso (o HTML que é renderizado). Eles estão ligados por um URI de recurso.

// server.ts
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import type { CallToolResult, ReadResourceResult } from "@modelcontextprotocol/sdk/types.js";
import fs from "node:fs/promises";
import path from "node:path";
import {
  registerAppTool,
  registerAppResource,
  RESOURCE_MIME_TYPE,
} from "@modelcontextprotocol/ext-apps/server";

const DIST_DIR = import.meta.filename.endsWith(".ts")
  ? path.join(import.meta.dirname, "dist")
  : import.meta.dirname;

export function createServer(): McpServer {
  const server = new McpServer({
    name: "Servidor Básico de Aplicativos MCP (Angular)",
    version: "1.0.0",
  });

  const resourceUri = "ui://get-time/mcp-app.html";

  // Registra a ferramenta — isso é o que o LLM chama
  registerAppTool(server, "get-time", {
    title: "Obter Hora",
    description: "Retorna a hora atual do servidor como uma string ISO 8601.",
    inputSchema: {},
    _meta: { ui: { resourceUri } }, // Liga esta ferramenta à sua interface
  }, async (): Promise<CallToolResult> => {
    const time = {
Contexto Triplo Up

As empresas brasileiras podem se beneficiar da criação de aplicativos interativos que se integram facilmente a diferentes plataformas de IA. Isso melhora a experiência do usuário e amplia as possibilidades de interação em serviços digitais. A adoção do MCP pode posicionar as empresas à frente na era da IA.

Noticias relacionadas

Gostou do conteudo?

Receba toda semana as principais novidades sobre WebMCP.