En este artículo (6 apartados)
En las clases anteriores de «Programar con IA desde cero» vimos qué es un MCP y cómo se comunican cliente y servidor. Hoy pasamos a la práctica: vamos a crear un servidor MCP mínimo con el SDK oficial de TypeScript y conectarlo a una aplicación de IA.
Qué necesitas
- Node.js instalado (una versión LTS actual).
- Un editor y una aplicación host compatible con MCP (por ejemplo, Cursor o una app de chat de escritorio).
- El SDK oficial:
@modelcontextprotocol/sdk, documentado en modelcontextprotocol.io.
1. Crear el proyecto
mkdir mi-servidor-mcp && cd mi-servidor-mcp
npm init -y
npm install @modelcontextprotocol/sdk zod
2. Definir una herramienta
Un servidor MCP expone herramientas (acciones que el modelo puede pedir), recursos (datos que puede leer) y prompts (plantillas). Empezamos con una herramienta que suma dos números:
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import { z } from "zod";
const server = new McpServer({ name: "demo-controlz", version: "1.0.0" });
server.registerTool("sumar", {
description: "Suma dos números",
inputSchema: { a: z.number(), b: z.number() }
}, async ({ a, b }) => ({
content: [{ type: "text", text: String(a + b) }]
}));
await server.connect(new StdioServerTransport());
Los nombres exactos de la API pueden cambiar entre versiones del SDK: revisa siempre el README del paquete.
3. Conectarlo al host
Con el transporte stdio, el host lanza tu servidor como un proceso y habla con él por la entrada y salida estándar usando JSON-RPC 2.0. En la configuración MCP de tu host indicas el comando (node) y la ruta del archivo.
4. Probarlo
Pide al asistente «suma 2 y 3». El host verá la herramienta en tools/list, la llamará con tools/call y te mostrará el resultado. Para depurar, el proyecto oficial ofrece MCP Inspector.
Errores típicos
- Escribir logs con
console.logen un servidor stdio: ensucia el canal. Usaconsole.error. - Rutas relativas en la configuración del host: usa rutas absolutas.
En la próxima clase añadiremos recursos y conectaremos el servidor a una base de datos.
¿Quieres automatizar tu negocio? Hablemos
Cuéntanos qué tareas te quitan tiempo y te proponemos cómo automatizarlas.
Hablemos →