MCP Inspector

MCP Inspector es una herramienta para desarrolladores que permite probar, depurar e inspeccionar servidores MCP a través de una interfaz web y un flujo de trabajo proxy.

Documentación

MCP Inspector

El inspector MCP es una herramienta para desarrolladores que permite probar y depurar servidores MCP.

MCP Inspector Screenshot

Descripción general de la arquitectura

El MCP Inspector consta de dos componentes principales que trabajan juntos:

  • MCP Inspector Client (MCPI): Una interfaz web basada en React que proporciona una interfaz interactiva para probar y depurar servidores MCP
  • MCP Proxy (MCPP): Un servidor Node.js que actúa como puente de protocolo, conectando la interfaz web a servidores MCP mediante varios métodos de transporte (stdio, SSE, streamable-http)

Ten en cuenta que el proxy no es un proxy de red para interceptar tráfico. En cambio, funciona tanto como cliente MCP (conectándose a tu servidor MCP) como servidor HTTP (sirviendo la interfaz web), lo que permite la interacción basada en navegador con servidores MCP que utilizan diferentes protocolos de transporte.

Ejecutar el Inspector

Requisitos

  • Node.js: ^22.7.5

Inicio rápido (modo UI)

Para ponerte en marcha rápidamente con la UI, simplemente ejecuta lo siguiente:

npx @modelcontextprotocol/inspector

El servidor se iniciará y la UI será accesible en http://localhost:6274.

Desde un repositorio de servidor MCP

Para inspeccionar una implementación de servidor MCP, no es necesario clonar este repositorio. En su lugar, usa npx. Por ejemplo, si tu servidor está construido en build/index.js:

npx @modelcontextprotocol/inspector node build/index.js

Puedes pasar tanto argumentos como variables de entorno a tu servidor MCP. Los argumentos se pasan directamente a tu servidor, mientras que las variables de entorno se pueden configurar usando la bandera -e:

# Pass arguments only
npx @modelcontextprotocol/inspector node build/index.js arg1 arg2

# Pass environment variables only
npx @modelcontextprotocol/inspector -e key=value -e key2=$VALUE2 node build/index.js

# Pass both environment variables and arguments
npx @modelcontextprotocol/inspector -e key=value -e key2=$VALUE2 node build/index.js arg1 arg2

# Use -- to separate inspector flags from server arguments
npx @modelcontextprotocol/inspector -e key=$VALUE -- node build/index.js -e server-flag

El inspector ejecuta tanto una UI de cliente MCP Inspector (MCPI) (puerto predeterminado 6274) como un servidor MCP Proxy (MCPP) (puerto predeterminado 6277). Abre la UI del cliente MCPI en tu navegador para usar el inspector. (Estos puertos se derivan del mapeo del teclado T9 de MCPI y MCPP respectivamente, como regla mnemotécnica). Puedes personalizar los puertos si es necesario:

CLIENT_PORT=8080 SERVER_PORT=9000 npx @modelcontextprotocol/inspector node build/index.js

Para más detalles sobre las formas de usar el inspector, consulta la sección Inspector del sitio de documentación de MCP. Para obtener ayuda con la depuración, consulta la guía de depuración.

Exportación de archivo de servidores

El MCP Inspector proporciona botones convenientes para exportar configuraciones de lanzamiento de servidores para su uso en clientes como Cursor, Claude Code o la CLI del Inspector. El archivo generalmente se llama mcp.json.

  • Server Entry - Copia una entrada de configuración de servidor individual a tu portapapeles. Esto se puede agregar a tu archivo mcp.json dentro del objeto mcpServers con el nombre de servidor que prefieras.

    Ejemplo de transporte STDIO:

    {
      "command": "node",
      "args": ["build/index.js", "--debug"],
      "env": {
        "API_KEY": "your-api-key",
        "DEBUG": "true"
      }
    }
    

    Ejemplo de transporte SSE:

    {
      "type": "sse",
      "url": "http://localhost:3000/events",
      "note": "For SSE connections, add this URL directly in Client"
    }
    
  • Servers File - Copia una estructura completa de archivo de configuración MCP a tu portapapeles, con tu configuración de servidor actual agregada como default-server. Esto se puede guardar directamente como mcp.json.

    Ejemplo de transporte STDIO:

    {
      "mcpServers": {
        "default-server": {
          "command": "node",
          "args": ["build/index.js", "--debug"],
          "env": {
            "API_KEY": "your-api-key",
            "DEBUG": "true"
          }
        }
      }
    }
    

    Ejemplo de transporte SSE:

    {
      "mcpServers": {
        "default-server": {
          "type": "sse",
          "url": "http://localhost:3000/events",
          "note": "For SSE connections, add this URL directly in Client"
        }
      }
    }
    

Estos botones aparecen en la UI del Inspector después de que hayas configurado los ajustes de tu servidor, lo que facilita guardar y reutilizar tus configuraciones.

Para conexiones de transporte SSE, el Inspector proporciona funcionalidad similar para ambos botones. El botón "Server Entry" copia la configuración de URL SSE que se puede agregar a tu archivo de configuración existente, mientras que el botón "Servers File" crea un archivo de configuración completo que contiene la URL SSE para uso directo en clientes.

Puedes pegar la Server Entry en tu archivo mcp.json existente bajo el nombre de servidor que elijas, o usar el payload completo de Servers File para crear un nuevo archivo de configuración.

Autenticación

El inspector admite autenticación con token bearer para conexiones SSE. Ingresa tu token en la UI al conectarte a un servidor MCP, y se enviará en el encabezado Authorization. Puedes anular el nombre del encabezado usando el campo de entrada en la barra lateral.

Consideraciones de seguridad

El MCP Inspector incluye un servidor proxy que puede ejecutar y comunicarse con procesos MCP locales. El servidor proxy no debe exponerse a redes no confiables, ya que tiene permisos para iniciar procesos locales y puede conectarse a cualquier servidor MCP especificado.

Autenticación

El servidor proxy del MCP Inspector requiere autenticación de forma predeterminada. Al iniciar el servidor, se genera un token de sesión aleatorio y se imprime en la consola:

🔑 Session token: 3a1c267fad21f7150b7d624c160b7f09b0b8c4f623c7107bbf13378f051538d4

🔗 Open inspector with token pre-filled:
   http://localhost:6274/?MCP_PROXY_AUTH_TOKEN=3a1c267fad21f7150b7d624c160b7f09b0b8c4f623c7107bbf13378f051538d4

Este token debe incluirse como token Bearer en el encabezado Authorization para todas las solicitudes al servidor. El inspector abrirá automáticamente tu navegador con el token prellenado en la URL.

Apertura automática del navegador - El inspector ahora abre automáticamente tu navegador con el token prellenado en la URL cuando la autenticación está habilitada.

Alternativa: Configuración manual - Si ya tienes el inspector abierto:

  1. Haz clic en el botón "Configuration" en la barra lateral
  2. Busca "Proxy Session Token" e ingresa el token que se muestra en la consola del proxy
  3. Haz clic en "Save" para aplicar la configuración

El token se guardará en el almacenamiento local de tu navegador para uso futuro.

Si necesitas deshabilitar la autenticación (NO RECOMENDADO), puedes configurar la variable de entorno DANGEROUSLY_OMIT_AUTH:

DANGEROUSLY_OMIT_AUTH=true npm start

Vinculación solo local

De forma predeterminada, tanto el servidor proxy como el cliente del MCP Inspector se vinculan solo a localhost para evitar el acceso a la red. Esto garantiza que no sean accesibles desde otros dispositivos de la red. Si necesitas vincularlos a todas las interfaces con fines de desarrollo, puedes anular esto con la variable de entorno HOST:

HOST=0.0.0.0 npm start

Advertencia: Solo vincula a todas las interfaces en entornos de red confiables, ya que esto expone la capacidad del servidor proxy para ejecutar procesos locales y ambos servicios al acceso de red.

Protección contra reenlace de DNS

Para prevenir ataques de reenlace de DNS, el MCP Inspector valida el encabezado Origin en las solicitudes entrantes. De forma predeterminada, solo se permiten solicitudes del origen del cliente (respeta CLIENT_PORT si está configurado, con valor predeterminado en el puerto 6274). Puedes configurar orígenes adicionales permitidos estableciendo la variable de entorno ALLOWED_ORIGINS (lista separada por comas):

ALLOWED_ORIGINS=http://localhost:6274,http://localhost:8000 npm start

Configuración

El MCP Inspector admite los siguientes ajustes de configuración. Para cambiarlos, haz clic en el botón Configuration en la UI del MCP Inspector:

AjusteDescripciónPredeterminado
MCP_SERVER_REQUEST_TIMEOUTTiempo de espera para solicitudes al servidor MCP (ms)10000
MCP_REQUEST_TIMEOUT_RESET_ON_PROGRESSRestablecer tiempo de espera en notificaciones de progresotrue
MCP_REQUEST_MAX_TOTAL_TIMEOUTTiempo de espera total máximo para solicitudes enviadas al servidor MCP (ms) (Usar con notificaciones de progreso)60000
MCP_PROXY_FULL_ADDRESSConfigura esto si estás ejecutando el MCP Inspector Proxy en una dirección no predeterminada. Ejemplo: http://10.1.1.22:5577""
MCP_AUTO_OPEN_ENABLEDHabilitar la apertura automática del navegador cuando se inicia el inspector (funciona con autenticación habilitada). Solo como variable de entorno, no configurable en el navegador.true

Estos ajustes se pueden modificar en tiempo real a través de la UI y persistirán entre sesiones.

El inspector también admite archivos de configuración para almacenar ajustes de diferentes servidores MCP. Esto es útil cuando se trabaja con múltiples servidores o configuraciones complejas:

npx @modelcontextprotocol/inspector --config path/to/config.json --server everything

Ejemplo de archivo de configuración de servidor:

{
  "mcpServers": {
    "everything": {
      "command": "npx",
      "args": ["@modelcontextprotocol/server-everything"],
      "env": {
        "hello": "Hello MCP!"
      }
    },
    "my-server": {
      "command": "node",
      "args": ["build/index.js", "arg1", "arg2"],
      "env": {
        "key": "value",
        "key2": "value2"
      }
    }
  }
}

Consejo: Puedes generar fácilmente este formato de configuración usando los botones Server Entry y Servers File en la UI del Inspector, como se describe en la sección Exportación de archivo de servidores anterior.

También puedes configurar el tipo inicial transport, serverUrl, serverCommand y serverArgs mediante parámetros de consulta, por ejemplo:

http://localhost:6274/?transport=sse&serverUrl=http://localhost:8787/sse
http://localhost:6274/?transport=streamable-http&serverUrl=http://localhost:8787/mcp
http://localhost:6274/?transport=stdio&serverCommand=npx&serverArgs=arg1%20arg2

También puedes configurar ajustes iniciales mediante parámetros de consulta, por ejemplo:

http://localhost:6274/?MCP_SERVER_REQUEST_TIMEOUT=10000&MCP_REQUEST_TIMEOUT_RESET_ON_PROGRESS=false&MCP_PROXY_FULL_ADDRESS=http://10.1.1.22:5577

Ten en cuenta que si tanto el parámetro de consulta como el elemento correspondiente de localStorage están configurados, el parámetro de consulta tendrá prioridad.

Desde este repositorio

Si estás trabajando en el propio inspector:

Modo de desarrollo:

npm run dev

Nota para usuarios de Windows: En Windows, usa el siguiente comando en su lugar:

npm run dev:windows

Modo de producción:

npm run build
npm start

Modo CLI

El modo CLI permite la interacción programática con servidores MCP desde la línea de comandos, ideal para scripting, automatización e integración con asistentes de codificación. Esto crea un ciclo de retroalimentación eficiente para el desarrollo de servidores MCP.

npx @modelcontextprotocol/inspector --cli node build/index.js

El modo CLI admite la mayoría de las operaciones en herramientas, recursos y prompts. Algunos ejemplos:

# Basic usage
npx @modelcontextprotocol/inspector --cli node build/index.js

# With config file
npx @modelcontextprotocol/inspector --cli --config path/to/config.json --server myserver

# List available tools
npx @modelcontextprotocol/inspector --cli node build/index.js --method tools/list

# Call a specific tool
npx @modelcontextprotocol/inspector --cli node build/index.js --method tools/call --tool-name mytool --tool-arg key=value --tool-arg another=value2

# List available resources
npx @modelcontextprotocol/inspector --cli node build/index.js --method resources/list

# List available prompts
npx @modelcontextprotocol/inspector --cli node build/index.js --method prompts/list

# Connect to a remote MCP server (default is SSE transport)
npx @modelcontextprotocol/inspector --cli https://my-mcp-server.example.com

# Connect to a remote MCP server (with Streamable HTTP transport)
npx @modelcontextprotocol/inspector --cli https://my-mcp-server.example.com --transport http

# Call a tool on a remote server
npx @modelcontextprotocol/inspector --cli https://my-mcp-server.example.com --method tools/call --tool-name remotetool --tool-arg param=value

# List resources from a remote server
npx @modelcontextprotocol/inspector --cli https://my-mcp-server.example.com --method resources/list

Modo UI vs Modo CLI: Cuándo usar cada uno

Caso de usoModo UIModo CLI
Desarrollo de servidoresInterfaz visual para pruebas interactivas y depuración durante el desarrolloComandos scriptables para pruebas rápidas e integración continua; crea ciclos de retroalimentación con asistentes de codificación de IA como Cursor para desarrollo rápido
Exploración de recursosNavegador interactivo con navegación jerárquica y visualización JSONListado y lectura programática para automatización y scripting
Pruebas de herramientasEntrada de parámetros basada en formularios con visualización de respuestas en tiempo realEjecución de herramientas desde la línea de comandos con salida JSON para scripting
Ingeniería de promptsMuestreo interactivo con respuestas en streaming y comparación visualProcesamiento por lotes de prompts con salida legible por máquina
DepuraciónHistorial de solicitudes, errores visualizados y notificaciones en tiempo realSalida JSON directa para análisis de registros e integración con otras herramientas
AutomatizaciónN/AIdeal para pipelines de CI/CD, procesamiento por lotes e integración con asistentes de codificación
Aprender MCPLa interfaz visual enriquecida ayuda a los nuevos usuarios a comprender las capacidades del servidorComandos simplificados para aprendizaje enfocado de endpoints específicos

Licencia

Este proyecto está licenciado bajo la Licencia MIT: consulta el archivo LICENSE para más detalles.