Servidor MCP de tu servicio|INEMA.CLUB-PRO

En esta lección vas a

  1. 1Host, client, transport y server: quién llama a quién
  2. 2La tool es una acción que el modelo elige; el resource es un dato que el client lee; el prompt es una plantilla que la persona elige
  3. 3La revisión vigente del protocolo es la 2026-07-28, y lo que salió de ella
  4. 4Listar las piezas del server del kit en un comando

Objetivo: separar tool, resource y prompt y decir quién es host, client, server y transport en tu servicio.

01De la aplicación a tu servicio

Haz clic en cada bloque.

Haz clic en cada bloque del diagrama para ver qué hace.

División de control según la documentación del SDK oficial v2 (páginas Tools, Resources y Prompts), leída el 19/10/2026.

02Las tres cosas que ofrece un servidor

En el kit, un servicio ficticio de grupos de curso.

1. Tool (herramienta)

Una función que el modelo decide llamar a partir del nombre, la descripción y el esquema de entrada. Puede solo leer o puede cambiar algo en el mundo.

En el kit: buscar_turmas (solo lectura) y reservar_vaga (tiene consecuencias).

Pregunta que lleva al modelo a llamar¿Hay un grupo de MCP con plazas?

03Revisión 2026-07-28: lo que cambió, en una pantalla

La versión vigente del protocolo es la 2026-07-28 (página de versionado de MCP, leída el 19/10/2026). La anterior era la 2025-11-25.

Lo que más cambia para quien viene de 2025: ya no hay apretón de manos initialize ni sesión (Mcp-Session-Id); cada pedido lleva versión y capacidades en _meta; el cliente descubre el servidor con server/discover; y el servidor que necesita preguntarle algo al usuario devuelve input_required en vez de abrir un pedido propio. Roots, Sampling y Logging quedaron en desuso.

El SDK oficial que implementa esto es la línea v2 (@modelcontextprotocol/server y @modelcontextprotocol/client, 2.3.1, del 05/10/2026). El paquete antiguo @modelcontextprotocol/sdk (1.32.1) todavía habla la 2025-11-25: es el que vas a encontrar en la mayoría de los tutoriales.

04Lista las piezas del servidor del kit

Necesitas el kit instalado (clase 2, primer bloque). El cliente habla con el servidor en el mismo proceso, sin puerto.

Terminal · listar
cd ~/projetos/formacao-webmcp-mcp-v72/kit
node listar.mjs; echo "saída: $?"
Archivo · kit/listar.mjs
// listar.mjs — conecta un cliente MCP al servidor de turmas, en el mismo proceso (sin puerto),
// y muestra la anatomía: era del protocolo, ferramentas, recursos y prompts.
import { Client, StreamableHTTPClientTransport } from '@modelcontextprotocol/client';
import { createMcpHandler } from '@modelcontextprotocol/server';
import { createServer } from './servidor.mjs';

const handler = createMcpHandler(createServer);
const transporte = new StreamableHTTPClientTransport(new URL('http://teste.local/mcp'), {
  fetch: (url, init) => handler.fetch(new Request(url, init))
});
// mode 'auto': pregunta server/discover; si el servidor es antiguo, cae en initialize.
const cliente = new Client({ name: 'listar', version: '1.0.0' }, { versionNegotiation: { mode: 'auto' } });
await cliente.connect(transporte);

const { tools } = await cliente.listTools();
const { resources } = await cliente.listResources();
const { prompts } = await cliente.listPrompts();
console.log(`era: ${cliente.getProtocolEra()}`);
for (const t of tools) console.log(`ferramenta: ${t.name} · readOnlyHint=${t.annotations?.readOnlyHint}`);
for (const r of resources) console.log(`recurso: ${r.uri}`);
for (const p of prompts) console.log(`prompt: ${p.name}`);
console.log(`${tools.length} ferramentas · ${resources.length} recurso · ${prompts.length} prompt`);

await cliente.close();
await handler.close();
Ejemplo del repositorio
era: modern
ferramenta: buscar_turmas · readOnlyHint=true
ferramenta: reservar_vaga · readOnlyHint=false
recurso: turmas://catalogo
prompt: convite_turma
2 ferramentas · 1 recurso · 1 prompt
saída: 0

era: modern significa que cliente y servidor acordaron la revisión 2026-07-28. Con mode: 'legacy' (el valor por defecto del cliente v2) caerían en el initialize de 2025.

05Práctica

Ensayo en el kit y el mapa de tu servicio.

E1 · Ver las piezas

5 min

Corre el bloque listar después de instalar el kit (clase 2, primer bloque).

Listo cuando: node listar.mjs → 2 ferramentas · 1 recurso · 1 prompt, con era: modern y saída: 0.

E2 · Tu servicio en tres columnas

15 min

En un archivo mapa-mcp.md, enumera qué haría tu servicio como tool, como resource y como prompt. Marca cada tool como lectura o consecuencia.

Listo cuando: grep -c -E "leitura|consequência" mapa-mcp.md → al menos 3.

06Prueba de la clase

Pregunta 1 de 4

¿Quién decide llamar a una tool del MCP?competencia

07En tres frases

PiezasHost con modelo, client dentro de él, transport y tu servidor.
PrimitivasTool (el modelo elige), resource (el client lee), prompt (la persona elige).
Revisión2026-07-28, sin initialize ni sesión; el SDK v2 2.3.1 la implementa.

Para ir más allá

Siguiente clase