Everything MCP Server

Un servidor de prueba que demuestra todas las características del protocolo MCP, incluyendo prompts, herramientas, recursos y muestreo.

Documentación

Everything MCP Server

Este servidor MCP intenta ejercitar todas las características del protocolo MCP. No está pensado para ser un servidor útil, sino más bien un servidor de prueba para desarrolladores de clientes MCP. Implementa prompts, herramientas, recursos, sampling y más para mostrar las capacidades de MCP.

Componentes

Herramientas

  1. echo

    • Herramienta simple para devolver mensajes de entrada
    • Entrada:
      • message (string): Mensaje a devolver
    • Devuelve: Contenido de texto con el mensaje devuelto
  2. add

    • Suma dos números
    • Entradas:
      • a (number): Primer número
      • b (number): Segundo número
    • Devuelve: Resultado de texto de la suma
  3. longRunningOperation

    • Demuestra notificaciones de progreso para operaciones largas
    • Entradas:
      • duration (number, default: 10): Duración en segundos
      • steps (number, default: 5): Número de pasos de progreso
    • Devuelve: Mensaje de finalización con duración y pasos
    • Envía notificaciones de progreso durante la ejecución
  4. sampleLLM

    • Demuestra la capacidad de sampling de LLM usando la función de sampling de MCP
    • Entradas:
      • prompt (string): El prompt a enviar al LLM
      • maxTokens (number, default: 100): Máximo de tokens a generar
    • Devuelve: Respuesta generada del LLM
  5. getTinyImage

    • Devuelve una pequeña imagen de prueba
    • No requiere entradas
    • Devuelve: Datos de imagen PNG codificados en Base64
  6. printEnv

    • Imprime todas las variables de entorno
    • Útil para depurar la configuración del servidor MCP
    • No requiere entradas
    • Devuelve: Cadena JSON de todas las variables de entorno
  7. annotatedMessage

    • Demuestra cómo se pueden usar las anotaciones para proporcionar metadatos sobre el contenido
    • Entradas:
      • messageType (enum: "error" | "success" | "debug"): Tipo de mensaje para demostrar diferentes patrones de anotación
      • includeImage (boolean, default: false): Si se debe incluir una imagen de ejemplo
    • Devuelve: Contenido con anotaciones variadas:
      • Mensajes de error: Prioridad alta (1.0), visibles tanto para el usuario como para el asistente
      • Mensajes de éxito: Prioridad media (0.7), enfocados al usuario
      • Mensajes de depuración: Prioridad baja (0.3), enfocados al asistente
      • Imagen opcional: Prioridad media (0.5), enfocada al usuario
    • Ejemplos de anotaciones:
      {
        "priority": 1.0,
        "audience": ["user", "assistant"]
      }
      
  8. getResourceReference

    • Devuelve una referencia a un recurso que puede ser utilizada por clientes MCP
    • Entradas:
      • resourceId (number, 1-100): ID del recurso a referenciar
    • Devuelve: Una referencia a un recurso con:
      • Introducción de texto
      • Recurso incrustado con type: "resource"
      • Instrucción de texto para usar la URI del recurso

Recursos

El servidor proporciona 100 recursos de prueba en dos formatos:

  • Recursos con números pares:

    • Formato de texto plano
    • Patrón de URI: test://static/resource/{even_number}
    • Contenido: Descripción de texto simple
  • Recursos con números impares:

    • Formato de blob binario
    • Patrón de URI: test://static/resource/{odd_number}
    • Contenido: Datos binarios codificados en Base64

Características de los recursos:

  • Soporta paginación (10 elementos por página)
  • Permite suscribirse a actualizaciones de recursos
  • Demuestra plantillas de recursos
  • Actualiza automáticamente los recursos suscritos cada 5 segundos

Prompts

  1. simple_prompt

    • Prompt básico sin argumentos
    • Devuelve: Intercambio de un solo mensaje
  2. complex_prompt

    • Prompt avanzado que demuestra el manejo de argumentos
    • Argumentos requeridos:
      • temperature (number): Configuración de temperatura
    • Argumentos opcionales:
      • style (string): Preferencia de estilo de salida
    • Devuelve: Conversación de múltiples turnos con imágenes
  3. resource_prompt

    • Demuestra la incrustación de referencias a recursos en prompts
    • Argumentos requeridos:
      • resourceId (number): ID del recurso a incrustar (1-100)
    • Devuelve: Conversación de múltiples turnos con una referencia a un recurso incrustada
    • Muestra cómo incluir recursos directamente en los mensajes de prompt

Registro

El servidor envía mensajes de log de nivel aleatorio cada 15 segundos, por ejemplo:

{
  "method": "notifications/message",
  "params": {
	"level": "info",
	"data": "Info-level message"
  }
}

Uso con Claude Desktop (usa transporte stdio)

Añade a tu claude_desktop_config.json:

{
  "mcpServers": {
    "everything": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-everything"
      ]
    }
  }
}

Uso con VS Code

Para una instalación rápida, usa uno de los botones de instalación con un clic a continuación...

Install with NPX in VS Code Install with NPX in VS Code Insiders

Install with Docker in VS Code Install with Docker in VS Code Insiders

Para la instalación manual, añade el siguiente bloque JSON a tu archivo de Configuración de Usuario (JSON) en VS Code. Puedes hacerlo presionando Ctrl + Shift + P y escribiendo Preferences: Open User Settings (JSON).

Opcionalmente, puedes añadirlo a un archivo llamado .vscode/mcp.json en tu espacio de trabajo. Esto te permitirá compartir la configuración con otros.

Ten en cuenta que la clave mcp no es necesaria en el archivo .vscode/mcp.json.

NPX

{
  "mcp": {
    "servers": {
      "everything": {
        "command": "npx",
        "args": ["-y", "@modelcontextprotocol/server-everything"]
      }
    }
  }
}

Ejecución desde el código fuente con transporte HTTP+SSE (obsoleto desde 2025-03-26)

cd src/everything
npm install
npm run start:sse

Ejecutar desde el código fuente con transporte Streamable HTTP

cd src/everything
npm install
npm run start:streamableHttp

Ejecución como paquete instalado

Instalación

npm install -g @modelcontextprotocol/server-everything@latest

Run the default (stdio) server

npx @modelcontextprotocol/server-everything

O especificar stdio explícitamente

npx @modelcontextprotocol/server-everything stdio

Ejecutar el servidor SSE

npx @modelcontextprotocol/server-everything sse

Ejecutar el servidor HTTP streamable

npx @modelcontextprotocol/server-everything streamableHttp