PTENES
MÓDULO 2.2

📦 Instalando Node.js y npm

Configura Node.js y npm, la alternativa para crear MCP Servers en TypeScript.

6
Temas
20
Minutos
Básico
Nivel
Práctico
Tipo
1

🌐 Qué es Node.js

Node.js es un runtime que permite ejecutar JavaScript fuera del navegador, directamente en tu computadora o servidor. Creado en 2009 por Ryan Dahl, revolucionó el desarrollo web al permitir usar el mismo lenguaje en el frontend y el backend. En el contexto de MCP, Node.js es esencial para crear servidores en TypeScript, el segundo lenguaje más popular del ecosistema MCP.

💎 Concepto principal

Node.js es un runtime de JavaScript basado en el motor V8 de Chrome. Permite ejecutar código JavaScript y TypeScript en el servidor, fuera del navegador. El SDK oficial de MCP mantenido por Anthropic está disponible en TypeScript (@modelcontextprotocol/sdk), lo que convierte a Node.js en una alternativa poderosa a Python para crear MCP Servers — especialmente para equipos que ya trabajan con tecnologías web.

📊 Datos e investigación

Node.js es usado por más de 6,3 millones de sitios web en todo el mundo. El registro de npm tiene más de 2,1 millones de paquetes, siendo el ecosistema de paquetes open-source más grande del mundo. En el ecosistema MCP, muchos de los servidores oficiales —como el filesystem server, Servidor de GitHub e Server de Slack — están escritos en TypeScript y se ejecutan en Node.js, lo que demuestra la madurez de la plataforma para MCP.

2

📥 Cómo instalar Node.js

La forma recomendada de instalar Node.js es usando el nvm (Node Version Manager), que permite instalar y alternar fácilmente entre varias versiones de Node. Esto es especialmente útil cuando distintos proyectos requieren versiones diferentes. Para MCP, recomendamos Node.js 20 LTS (Long Term Support).

💎 Concepto principal

O nvm (Node Version Manager) es una herramienta que gestiona varias instalaciones de Node.js en la misma computadora. En lugar de instalar Node directamente en el sistema (lo que puede causar conflictos de versiones), nvm instala cada versión en un directorio aislado y permite cambiar entre ellas con un simple nvm use 20. Esto es análogo a lo que uv hace para Python: entornos aislados y controlados.

📋 Instalación por sistema operativo
macOS / Linux — Paso 1: Instalar nvm

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash

Cierra y vuelve a abrir la terminal después de la instalación.

macOS / Linux — Paso 2: Instalar Node 20

nvm install 20

nvm instala Node.js 20 LTS y lo configura como versión predeterminada.

Windows

Accede nodejs.org y descarga el instalador LTS. Ejecuta el instalador con las opciones predeterminadas. npm se instala automáticamente junto con Node.js.

🚨 Alerta

¡Evita instalar Node.js mediante apt en Ubuntu! Los repositorios predeterminados de Ubuntu suelen incluir versiones muy antiguas de Node.js (como la versión 12 o 14). Usa siempre nvm o el repositorio oficial de NodeSource para asegurarte de obtener una versión actual y compatible con el SDK de MCP.

3

📦 Entendiendo npm

O npm (Node Package Manager) es el administrador de paquetes que viene incluido con Node.js. Así como uv administra paquetes de Python, npm administra paquetes de JavaScript y TypeScript. Se encarga de instalar dependencias, ejecutar scripts y administrar el archivo package.json — el equivalente a pyproject.toml de Python.

💎 Concepto principal

O npm son tres cosas al mismo tiempo: un registry (repositorio en línea con millones de paquetes), una CLI (herramienta de línea de comandos para instalar y gestionar paquetes) y un gestor de dependencias (que controla las versiones mediante package.json y package-lock.json). Cuando instalas Node.js, npm ya viene incluido; no es necesario instalarlo por separado.

💡 Consejo práctico

Comandos esenciales de npm que usarás en el curso:

  • •npm init — Crea un proyecto nuevo (package.json)
  • •npm install pacote — Instala una dependencia
  • •npm run script — Ejecuta un script definido en package.json
  • •npm list — Muestra los paquetes instalados en el proyecto
4

🔧 Entendiendo npx

O npx es una herramienta que viene incluida con npm y permite ejecutar paquetes directamente sin instalarlos globalmente. Esto es especialmente importante en el ecosistema MCP, donde muchos servidores se ejecutan mediante npx, como el servidor de filesystem y el servidor para crear plantillas.

💎 Concepto principal

O npx (Node Package Execute) descarga y ejecuta un paquete temporalmente, sin instalarlo de forma permanente en el sistema. Esto es esencial para MCP porque permite ejecutar servidores como npx @modelcontextprotocol/server-filesystem sin contaminar tu entorno global. npx siempre busca la versión más reciente del paquete, lo que garantiza que uses la versión actualizada sin tener que gestionar las actualizaciones manualmente.

❌ Evitar
  • •npm install -g @modelcontextprotocol/server-filesystem
  • •Instalar servidores MCP globalmente
  • •Usar versiones fijas desactualizadas
  • •Ejecutar con sudo npm install -g
✅ Hacer
  • •npx @modelcontextprotocol/server-filesystem
  • •Ejecutar MCP servers mediante npx
  • •Siempre usa la versión más reciente
  • •Mantener limpio el entorno global
5

✅ Verificando la instalación

Al igual que hicimos con Python y uv, es esencial verificar que Node.js, npm y npx estén instalados correctamente y sean accesibles desde la terminal. Los problemas en esta etapa pueden causar errores confusos más adelante, así que vale la pena dedicar unos minutos a la verificación.

💎 Concepto principal

La verificación confirma tres componentes: el Node.js (entorno de ejecución de JavaScript), el npm (gestor de paquetes) y el npx (gestor de paquetes). Los tres deben devolver sus versiones al consultarlos desde la terminal. Si alguno falla, el problema suele estar en el PATH del sistema o en una instalación incompleta.

📋 Lista de verificación
Paso 1 — Verificar Node.js

Ejecuta node -v. Debe mostrar v20.x.x o superior.

Paso 2 — Verificar npm

Ejecuta npm -v. Debe mostrar la versión de npm (generalmente 10.x.x con Node 20).

Paso 3 — Verificar npx

Ejecuta npx --version. Debe mostrar la misma versión de npm.

🚨 Alerta — Problemas comunes
  • •"node: command not found" — Si usaste nvm, cierra y vuelve a abrir la terminal. Verifica con nvm list si Node se instaló.
  • •Versión antigua — Si node -v muestra v14 o v16, ejecuta nvm install 20 && nvm use 20.
  • •Permiso denegado — Nunca uses sudo con npm. Si te pide sudo, la instalación no se hizo correctamente: usa nvm.
6

🧪 Primera prueba

Hagamos una prueba práctica usando el create-server oficial de MCP: un generador de templates que crea la estructura completa de un servidor MCP en TypeScript. Si este comando funciona, tu entorno de Node.js está 100% listo para el curso.

💎 Concepto principal

El paquete @modelcontextprotocol/create-server es un generador oficial que crea la estructura completa de un MCP Server en TypeScript. Genera automáticamente el package.json, o tsconfig.json, el código fuente inicial con ejemplos de tools, resources y prompts, y scripts de compilación y ejecución. Es el equivalente a uv init + uv add fastmcp del mundo de Python.

💡 Consejo práctico

Ejecuta el siguiente comando en el terminal para crear tu primer MCP Server en TypeScript:

npx @modelcontextprotocol/create-server meu-server

El generador te preguntará el nombre y la descripción del servidor. Cuando termine, entra en la carpeta con cd meu-server y explora los archivos generados. Si todo funcionó sin errores, tu entorno Node.js está listo para MCP!

📝 Resumen del módulo

  • ✓ Node.js es el runtime que permite ejecutar JavaScript/TypeScript fuera del navegador, algo esencial para los MCP Servers en TS.
  • ✓ La instalación recomendada es mediante nvm, que permite administrar varias versiones de Node sin conflictos.
  • ✓ npm viene incluido con Node.js y gestiona las dependencias mediante package.json.
  • ✓ npx ejecuta paquetes sin instalarlos globalmente; es ideal para ejecutar MCP Servers.
  • ✓ Comprobar node -v, npm -v y npx --version confirma que el entorno es correcto.
  • ✓ El create-server oficial genera una plantilla completa de MCP Server en TypeScript.

Siguiente Módulo: 2.3 — Conociendo la terminal