MCP Inspector

Una herramienta para desarrolladores que permite probar y depurar servidores MCP mediante una interfaz web.

Documentación

MCP Inspector

El MCP Inspector es una herramienta de desarrollo para 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:

  • Cliente MCP Inspector (MCPI): Una interfaz web basada en React que proporciona una interfaz interactiva para probar y depurar servidores MCP
  • Proxy MCP (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 su lugar, 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 interfaz, simplemente ejecuta lo siguiente:

npx @modelcontextprotocol/inspector

El servidor se iniciará y la interfaz 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 un cliente UI MCP Inspector (MCPI) (puerto predeterminado 6274) como un servidor Proxy MCP (MCPP) (puerto predeterminado 6277). Abre la interfaz 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 recurso mnemotécnico). 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 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 usar en clientes como Cursor, Claude Code o el CLI del Inspector. El archivo generalmente se llama mcp.json.

  • Entrada de Servidor - 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"
    }
    
  • Archivo de Servidores - 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 interfaz 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 "Entrada de Servidor" copia la configuración de URL SSE que se puede agregar a tu archivo de configuración existente, mientras que el botón "Archivo de Servidores" crea un archivo de configuración completo que contiene la URL SSE para uso directo en clientes.

Puedes pegar la Entrada de Servidor en tu archivo mcp.json existente bajo el nombre de servidor que elijas, o usar la carga útil completa del Archivo de Servidores para crear un nuevo archivo de configuración.

Autenticación

El inspector admite autenticación de token Bearer para conexiones SSE. Ingresa tu token en la interfaz 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 "Configuración" en la barra lateral
  2. Busca "Token de Sesión del Proxy" e ingresa el token que se muestra en la consola del proxy
  3. Haz clic en "Guardar" 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, el servidor proxy del MCP Inspector se vincula solo a 127.0.0.1 (localhost) para prevenir el acceso desde la red. Esto asegura que el servidor no sea accesible desde otros dispositivos en la red. Si necesitas vincularlo 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.

Protección contra Rebinding de DNS

Para prevenir ataques de rebinding 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://127.0.0.1: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 interfaz del MCP Inspector:

ConfiguraciónDescripció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 máximo total para solicitudes enviadas al servidor MCP (ms) (Usar con notificaciones de progreso)60000
MCP_PROXY_FULL_ADDRESSConfigúralo si estás ejecutando el Proxy del MCP Inspector en una dirección no predeterminada. Ejemplo: http://10.1.1.22:5577""
MCP_AUTO_OPEN_ENABLEDHabilitar apertura automática del navegador cuando el inspector se inicia (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 interfaz y persistirán entre sesiones.

El inspector también admite archivos de configuración para almacenar ajustes para 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 Entrada de Servidor y Archivo de Servidores en la interfaz del Inspector, como se describe en la sección Exportación de Archivo de Servidores anterior.

También puedes configurar el tipo transport inicial, 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 de configuración 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 inspector en sí:

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
npx @modelcontextprotocol/inspector --cli https://my-mcp-server.example.com

# 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 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 MCPInterfaz visual rica ayuda a 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.