Cómo crear un servidor MCP en TypeScript

Cómo crear un servidor MCP

Cómo crear un servidor MCP en TypeScript (SDK v2) | We.Inc

Crea un servidor MCP funcional con el SDK oficial de TypeScript v2: instálalo, registra una herramienta con un esquema Zod, conéctala por stdio y pruébala en el Inspector.

Instala el paquete oficial @modelcontextprotocol/server y Zod, crea un McpServer con un nombre y una versión, registra cada herramienta con registerTool, una descripción y un esquema de entrada Zod, y luego conecta un StdioServerTransport. Ejecuta npx @modelcontextprotocol/inspector para invocar tus herramientas a mano antes de que ninguna aplicación de IA las toque.

Las piezas que necesitas

Marca cada paso a medida que avanzas. La lista de comprobación guarda tu progreso, y cada paso tiene el comando o el archivo exacto que necesitas. El servidor terminado busca en una pequeña lista de notas, suficiente para ver todas las piezas en movimiento sin una base de datos.

Preguntas frecuentes

¿Qué paquete npm instalo?

Para la versión 2 del SDK, instala @modelcontextprotocol/server para servidores y @modelcontextprotocol/client para clientes. El paquete anterior de la v1, @modelcontextprotocol/sdk, vive en una rama v1.x y recibe correcciones de errores y de seguridad durante al menos seis meses después del lanzamiento de la v2.

¿Necesito Zod?

El README de la v2 usa Zod v4 para los esquemas de entrada y lo importa desde zod/v4, y dice que otras librerías de Standard Schema como Valibot y ArkType también funcionan. Instala la que elijas junto al SDK.

¿El servidor puede ejecutarse en Bun o Deno?

El README del SDK dice que funciona en Node.js, Bun y Deno. El Inspector es una herramienta de Node aparte y su README pide Node 22.19.0 o posterior.

¿Cómo hago que el servidor esté disponible en remoto?

Cambia el transporte stdio por Streamable HTTP y aloja el proceso en algún lugar accesible. Añade autenticación antes de exponer cualquier herramienta que modifique datos, porque cualquiera que pueda llegar a la URL puede enviar peticiones.

¿Cómo sé que una aplicación de IA entenderá mi herramienta?

Lee tu descripción y tu esquema como si no supieras nada más del proyecto. Si un desconocido no pudiera saber cuándo invocar la herramienta y qué pasarle, un modelo también tendrá que adivinar. El Inspector muestra exactamente lo que verá un host.

Por qué empezar con stdio

Cómo diseñar la respuesta del handler

El servidor completo

Dos archivos. Cambia el array de notas por lo que tu servidor deba buscar.

type module permite ejecutar directamente la sintaxis import de ES; el script start usa tsx para que te saltes el paso de compilación.

Una herramienta con un esquema Zod, una función de búsqueda simple y una conexión stdio. Los logs van a stderr para que nunca se mezclen con los mensajes del protocolo.

Pruébalo con el Inspector

El Inspector tiene tres modos. La interfaz web es el sitio más fácil para empezar; el modo CLI va bien para scripts y CI.

Modos del Inspector

En la interfaz web, conéctate con el comando que arranca tu servidor (npx tsx server.ts) y luego abre la lista de herramientas.

Instala el SDK, Zod y un ejecutor de TypeScript

Escribe server.ts con una herramienta

Arranca el servidor una vez para comprobar que no falla

Abre el Inspector y conéctalo a tu servidor

Lista las herramientas e invoca notes_search a mano

Lista de comprobación

{n} de {v} pasos hechos

Quitar marcas

Copiar comando

Empieza gratis · Sin tarjeta de crédito

Relacionado: Guías

Producto

Para quién es

Funciones

Recursos

Empresa

Mapa del sitio