Skip to content
This page has been auto-translated and may contain errors.View in English

Ejecutar Model Context Protocol localmente ​

Usa esta página para ejecutar el servidor MCP de clima extraído en tu computadora y llamar su herramienta de clima desde MCP Inspector. Dos cosas difieren de lo que podrías esperar: el script de inicio necesita una herramienta que el proyecto olvidó listar, y el servidor nunca abre una página propia. Se comunica con el programa que lo inicia, a través de la entrada y salida de la terminal, así que lo pruebas con Inspector, que lo inicia por ti y te da una página para hacer clic.

Lo que necesitas primero ​

Instala Node.js 24, que incluye npm. MCP Inspector necesita Node 22.19 o más nuevo, y Node 24 está cómodamente por encima de eso.

Verifica la versión. La tuya puede ser más nueva:

bash
$ node --version
v24.18.0

No necesitas ninguna clave de API ni archivo .env: los datos del clima están escritos en el código del servidor.

JunoLo que necesitas primero Instala Node 24 y verifica que node --version imprima una versión que comience con 24 o superior. Esa es la lista completa: sin clave, sin archivo .env.
JunoLo que necesitas primero El servidor en sí funcionaría en versiones antiguas de Node. La versión importa porque el mismo Node también ejecuta Inspector, la herramienta con la que lo pruebas, y la versión actual de Inspector necesita 22.19 o más nuevo.
JunoLo que necesitas primero En las versiones de Node 22 anteriores a 22.19, npx no rechaza Inspector: silenciosamente elige la versión más nueva que acepta ese Node, la versión 1 deprecada. Entonces el problema aparece como un Inspector diferente, no como un error.

Instala los paquetes y agrega tsx ​

Abre una terminal en la carpeta del proyecto extraído. Es la que contiene package.json y server.ts:

bash
$ cd path-to-your-extracted-project

El script de inicio del proyecto ejecuta tsx server.ts. tsx es la herramienta que ejecuta un archivo TypeScript directamente, pero package.json no la lista, así que una instalación normal la deja fuera y npm start se detiene con sh: tsx: command not found. Instala los paquetes listados, luego agrega tsx:

bash
$ npm ci
added 91 packages, and audited 92 packages in 3s
…
$ npm install --save-dev tsx
added 3 packages, and audited 95 packages in 7s
…

npm también puede reportar vulnerabilidades y sugerir npm audit fix. Déjalas por ahora. También puede imprimir una advertencia que comience con npm warn allow-scripts y nombre esbuild; eso no impide que tsx funcione.

JunoInstala los paquetes y agrega tsx En la carpeta con package.json, ejecuta npm ci, luego npm install --save-dev tsx. Cada uno reporta cuántos paquetes agregó.

Si npm dice que no encuentra package.json, estás en la carpeta equivocada.

JunoInstala los paquetes y agrega tsxnpm ci instala exactamente lo que el lockfile enviado registra, y tsx no está en él. --save-dev lo agrega a package.json y el lockfile, así que el script de inicio lo encuentra en node_modules de ahora en adelante.
JunoInstala los paquetes y agrega tsx Registrar tsx en el proyecto, en lugar de instalarlo globalmente, es lo que permite que un cliente de escritorio inicie este servidor más tarde con npm exec desde cualquier carpeta: el ejecutor viaja con el proyecto en lugar de depender del PATH de alguien.

Verifica que el servidor inicie ​

Inicia el servidor una vez por sí solo:

bash
$ npm start

> [email protected] start
> tsx server.ts

🌤️  Weather MCP Server Started!
🛠️  Tool: getWeatherDataByCityName
📚 Resource: weather://cities
🏙️  Supported Cities: New York, London
✅ Server ready!

Después de Server ready! la terminal se queda callada. Ese es un servidor que funciona: está esperando que un programa le envíe un mensaje, y nunca imprime una dirección para abrir. Detenlo con Ctrl+C antes de que inicies Inspector.

JunoVerifica que el servidor inicie Ejecuta npm start y espera a que aparezca Server ready!. Nada más sucederá, y nada debería: presiona Ctrl+C y continúa con Inspector.
JunoVerifica que el servidor inicie Un servidor MCP sobre entrada y salida estándar no tiene puerto. Lee solicitudes de cualquier programa que lo inició, así que tu terminal puede iniciarlo pero no puede comunicarse con él. Ese es el trabajo de Inspector.
JunoVerifica que el servidor inicie Las cinco líneas de estado van a la salida de error a propósito: la salida estándar está reservada para mensajes de protocolo, y un console.log extraviado allí rompiría la conexión con cualquier cliente.

Llama la herramienta de clima en MCP Inspector ​

Desde la misma carpeta del proyecto, ejecuta el MCP Inspector oficial, seguido por el comando que inicia tu servidor:

bash
$ npx @modelcontextprotocol/inspector npx tsx server.ts

La primera vez, npx pregunta antes de descargar Inspector. Verifica que el paquete sea @modelcontextprotocol/inspector, luego escribe y:

text
Need to install the following packages:
@modelcontextprotocol/[email protected]
Ok to proceed? (y)

Inspector imprime su dirección y la abre en tu navegador:

text
Starting MCP inspector...
…
MCP Inspector Web is up and running at:
   http://127.0.0.1:6274?MCP_INSPECTOR_API_TOKEN=…
…
Opening browser...

Si no se abre ningún navegador, copia la dirección completa, incluido el token, en uno.

La página lista un servidor, npx, marcado como Disconnected. Ignora la nota Read-only session arriba de él. Activa el interruptor junto al servidor: Inspector inicia tu servidor y la etiqueta cambia a Connected. Luego:

  1. Abre Tools en la parte superior y selecciona getWeatherDataByCityName.
  2. Escribe New York en el campo city y haz clic en Execute Tool.
  3. El resultado aparece bajo Results:
json
{
  "temp": "22°C",
  "forecast": "Partly cloudy with a breeze"
}

London también funciona. Cualquier otra ciudad devuelve el mensaje Weather data not available for this city del curso, lo que significa que la herramienta funciona como está escrita. El capítulo de uso de herramientas explica qué le da una herramienta como esta a un modelo.

Resources lista weather://cities, pero seleccionarlo muestra Read Error e Invalid URL. Eso viene de cómo el código de la lección registra el recurso, no de tu configuración; la herramienta es la parte que debes probar.

Cuando termines, presiona Ctrl+C en la terminal. Eso detiene Inspector y el servidor que inició.

JunoLlama la herramienta de clima en MCP Inspector Ejecuta el comando de Inspector, escribe y si npx pregunta, y activa el servidor en la página que se abre. Luego ve a Tools, elige la herramienta de clima, escribe New York y haz clic en Execute Tool.

Si la etiqueta dice Failed en lugar de Connected, abre la pestaña Console de Inspector a la derecha y busca la línea que comienza con Error.

JunoLlama la herramienta de clima en MCP Inspector Aquí Inspector es el cliente. Todo lo que viene después del nombre del paquete es el comando que ejecuta para iniciar tu servidor, así que inicia tsx server.ts él mismo y se comunica con él a través de la entrada y salida de ese proceso. La página es de Inspector; tu servidor aún no tiene ninguna.
JunoLlama la herramienta de clima en MCP Inspector El recurso falla porque el SDK lee los argumentos de server.resource como nombre, dirección, luego opciones. La lección pasa la dirección primero y una descripción segundo, así que el recurso se lista bajo el nombre weather://cities con List of supported cities como su dirección, que no es una URL, y la función de lectura nunca se registra.

Conecta otro cliente MCP ​

Un cliente MCP de escritorio también inicia el servidor, pero desde su propia carpeta de trabajo, así que necesita rutas completas. Copia la ruta absoluta de la carpeta del proyecto extraído, luego dale al cliente este comando y estos argumentos, con ambas rutas de ejemplo reemplazadas:

text
command: npm
arguments:
  - --prefix
  - /absolute/path/to/project
  - exec
  - --
  - tsx
  - /absolute/path/to/project/server.ts

--prefix le dice a npm qué tsx del proyecto usar, sin importar desde dónde inicia el cliente. Mantén cada argumento como un elemento separado, así una ruta que contenga espacios permanece como un valor, y no agregues URL ni puerto.

Cada cliente nombra estos campos de forma diferente, así que pon el comando y los argumentos donde sus instrucciones de configuración MCP digan, luego reinicia el cliente. No necesitas ninguna descarga adicional: este es el servidor que ya probaste. El capítulo de agentes cubre el bucle que ejecuta un cliente cuando su modelo usa una herramienta como esta.

JunoConecta otro cliente MCP Establece el comando a npm, agrega los seis argumentos con la ruta de tu proyecto en ambos lugares, y reinicia el cliente.

El servidor ya funcionó en Inspector, así que si el cliente no puede alcanzarlo, verifica primero las rutas en su configuración.

JunoConecta otro cliente MCP El cliente ejecuta el mismo servidor, pero a través de npm --prefix, así que el inicio funciona desde la carpeta propia del cliente: --prefix elige el proyecto, y exec -- tsx ejecuta su archivo de servidor.
JunoConecta otro cliente MCP Los clientes de escritorio rara vez heredan el PATH de tu terminal, así que un comando tsx desnudo solo funciona donde una instalación global resulta ser visible. Ir a través de npm --prefix vincula el inicio al tsx registrado en este proyecto. Si el cliente dice que no encuentra npm, usa la ruta completa que which npm imprime como comando.

Solución de problemas ​

npm start dice sh: tsx: command not found: tsx aún no está instalado en el proyecto. Ejecuta npm install --save-dev tsx en la carpeta del proyecto. Para un cliente de escritorio, también verifica que su comando sea npm y sus argumentos comiencen con --prefix y la ruta absoluta del proyecto.

Inspector dice @modelcontextprotocol/inspector v1 is deprecated: Tu Node es más antiguo que 22.19, así que npx obtuvo el Inspector antiguo. Instala Node 24, abre una nueva terminal, verifica node --version, y ejecuta el comando de Inspector de nuevo.

El servidor muestra Failed, e Inspector's Console tab dice Cannot find module terminando en server.ts: Inspector se inició fuera de la carpeta del proyecto. Detenlo con Ctrl+C, cd a la carpeta que contiene server.ts, y ejecuta el comando de nuevo.

JunoSolución de problemas Haz coincidir lo que ves con un encabezado en negrita arriba. Cuando Inspector muestra Failed, la razón está en su pestaña Console, no en tu terminal.
JunoSolución de problemas Mantén tres pasos separados: npm encontrando tsx, npx eligiendo un Inspector que tu Node pueda ejecutar, e Inspector iniciando tu servidor. Cada uno falla en un lugar diferente: la terminal, la terminal, luego la pestaña Console de Inspector.
JunoSolución de problemas Inspector recopila la salida de error estándar del servidor en su pestaña Console, que es por qué un archivo faltante o un bloqueo al inicio aparece allí mientras la terminal que ejecuta Inspector permanece callada.