Herramienta gratuita

De API REST a servidor MCP en TypeScript

Lo que hace falta de verdad para exponer una API REST como servidor MCP en TypeScript: el SDK, una herramienta que funciona y la parte que decide si un agente la usa bien.

SDK oficial modelcontextprotocol/typescript-sdk
Instalación
npm install @modelcontextprotocol/sdk zod
Una herramienta MCP que funciona en TypeScript
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { z } from "zod";

const server = new McpServer({ name: "my-server", version: "1.0.0" });

server.tool(
  "get_order",
  "Look up one order by its id and return its current status.",
  { orderId: z.string().describe("The order id to look up") },
  async ({ orderId }) => ({ content: [{ type: "text", text: await fetchOrder(orderId) }] })
);

Funciona. Nadie más puede verlo.

Un servidor que funciona es donde acaba el esfuerzo y empieza la venta. Apunta MCP Showcase hacia él y obtén un playground en vivo que tus clientes pueden probar, con documentación generada para cada herramienta.

Cómo funciona

link
Instala el SDK

Se muestra arriba, junto con si está mantenido oficialmente o es un proyecto de la comunidad, algo que importa más en unos lenguajes que en otros.

play_circle
Envuelve un endpoint

Empieza con una sola herramienta, no con toda tu API. Las definiciones de herramientas se envían al modelo en cada petición, y el acierto al elegir baja según crece la lista.

checklist
Pruébalo antes de conectar un agente

Pasa la URL desplegada por el MCP Inspector para confirmar que el handshake se completa y que las herramientas aparecen como querías.

El SDK de TypeScript

npm install @modelcontextprotocol/sdk zodmodelcontextprotocol/typescript-sdk, mantenido oficialmente.

Tu esquema Zod es el contrato que ve el modelo

El SDK de TypeScript construye el JSON Schema a partir de Zod, así que `.describe()` en cada campo no es documentación para tus compañeros: es lo que le dice al modelo qué poner ahí. Los esquemas escritos sin eso validan perfectamente y dejan al agente adivinando en cada parámetro.

Envolver un endpoint REST

Un servidor MCP es una capa fina sobre código que ya tienes. Cada herramienta necesita tres cosas: un nombre, una descripción que diga qué hace y cuándo elegirla, y un esquema de entrada. El SDK de TypeScript se encarga del protocolo; lo que escribes tú es la correspondencia entre esos argumentos y tu llamada HTTP existente.

Empieza por un endpoint y no por toda tu API. Las definiciones de herramientas se reenvían al modelo en cada petición, así que cada una es un coste de contexto permanente, y el acierto del modelo al elegir baja según crece la lista. Ocho herramientas bien descritas ganan a ochenta.

La parte que no va de TypeScript

Sea cual sea el lenguaje, las descripciones deciden si el agente se comporta. Las lee el modelo, no tus compañeros, y una herramienta descrita en tres palabras se llama a ciegas. Puedes revisar las tuyas con el linter de esquemas MCP y ver qué cuesta la lista por petición con la calculadora de tokens.

Herramientas y guías relacionadas

Un servidor que funciona es la mitad del trabajo

Una vez que arranca, queda el problema de que nadie puede saber qué hace. Un cliente potencial no puede leer tu código TypeScript y no instalará un cliente para averiguarlo. MCP Showcase apunta a la misma URL y produce un playground en vivo con documentación generada para cada herramienta, de modo que evaluar tu servidor cueste un clic.

Preguntas frecuentes

Envuelve en una herramienta cada endpoint que quieras que un agente alcance: un nombre, una frase sobre qué hace y cuándo usarla, y un esquema de entrada. El SDK de TypeScript se encarga del protocolo; lo que escribes tú es la correspondencia entre los argumentos de la herramienta y tu llamada HTTP existente.

No, y este es el error más común. Las definiciones de herramientas se reenvían en cada petición: ochenta endpoints son ochenta descripciones en la ventana de contexto de cada turno, y la capacidad del modelo para elegir la correcta cae con claridad según crece la lista. Empieza por las pocas que un agente necesita de verdad.

La etiqueta sobre el código te lo dice. Donde no hay SDK oficial, las opciones de la comunidad siguen la especificación con mayor o menor fidelidad: comprueba cuándo siguió la biblioteca una revisión del protocolo por última vez, sobre todo en transportes, antes de construir sobre ella.

Streamable HTTP para todo lo desplegado. Los clientes lo intentan cada vez más en primer lugar y algunos ya no recurren al antiguo HTTP+SSE, lo que se manifiesta como un cliente que simplemente no ve tu servidor y no como un error.

No puedes saberlo releyendo tu propio código, porque ya sabes qué hacen las herramientas. Pasa el servidor por el linter de esquemas: revisa las descripciones y los esquemas de entrada como los lee un modelo y señala los que obligarían a un agente a adivinar.

Más herramientas MCP gratuitas