Gravatar

Interactúa con avatares, perfiles e intereses inferidos de Gravatar.

Documentación

NPM Type Definitions Node Node-LTS

GitHub branch status Node.js CI Tested

MCP Server Gravatar

El servidor MCP oficial de Gravatar, que permite acceder a avatares, perfiles e intereses inferidos.

Instalación rápida

Para una instalación rápida en VS Code, haz clic en uno de los botones de instalación a continuación:

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

Requisitos

Node.js

Este servidor MCP requiere:

  • Node.js: 20.0.0 o superior
  • npm: 10.0.0 o superior

El servidor está probado y soportado en:

  • Node.js 20 (LTS activo)
  • Node.js 22 (LTS actual)
  • Node.js 24 (Actual)

Instalación

Puedes instalar y ejecutar este servidor usando npx (recomendado) o compilándolo desde el código fuente.

Herramientas

  1. get_profile_by_id

    • Recupera información completa del perfil de Gravatar usando un identificador de perfil
    • Entradas requeridas:
    • Devuelve: Objeto de perfil como JSON con información completa del usuario
  2. get_profile_by_email

    • Recupera información completa del perfil de Gravatar usando una dirección de correo electrónico
    • Entradas requeridas:
      • email (string): La dirección de correo electrónico asociada al perfil de Gravatar. Puede ser cualquier formato de correo válido: el sistema normalizará y aplicará un hash al correo automáticamente para la búsqueda.
    • Devuelve: Objeto de perfil como JSON con información completa del usuario
  3. get_inferred_interests_by_id

    • Obtén intereses inferidos por IA para un perfil de Gravatar usando un identificador de perfil
    • Entradas requeridas:
    • Devuelve: Lista de nombres de intereses inferidos por IA como JSON
  4. get_inferred_interests_by_email

    • Obtén intereses inferidos por IA para un perfil de Gravatar usando una dirección de correo electrónico
    • Entradas requeridas:
      • email (string): La dirección de correo electrónico asociada al perfil de Gravatar. Puede ser cualquier formato de correo válido: el sistema normalizará y aplicará un hash al correo automáticamente para la búsqueda.
    • Devuelve: Lista de nombres de intereses inferidos por IA como JSON
  5. get_avatar_by_id

    • Recupera la imagen de avatar para un perfil de Gravatar usando un identificador de avatar
    • Entradas requeridas:
    • Entradas opcionales:
      • size (number, default: undefined): Tamaño deseado del avatar en píxeles (1-2048). Las imágenes son cuadradas, por lo que esto establece tanto el ancho como el alto. Tamaños comunes: 80 (web predeterminada), 200 (web de alta resolución), 512 (pantallas grandes).
      • defaultOption (string, default: undefined): Estilo de imagen de respaldo cuando no existe un avatar. Opciones: '404' (devuelve un error HTTP 404 en lugar de una imagen), 'mp' (silueta de persona misteriosa), 'identicon' (patrón geométrico), 'monsterid' (monstruo generado), 'wavatar' (cara generada), 'retro' (estilo de 8 bits), 'robohash' (robot), 'blank' (transparente).
      • forceDefault (boolean, default: undefined): Cuando es true, siempre devuelve la imagen predeterminada en lugar del avatar del usuario. Útil para probar opciones predeterminadas o garantizar imágenes de marcador de posición consistentes.
      • rating (string, default: undefined): Clasificación de contenido máxima a mostrar. 'G' (público general), 'PG' (orientación parental), 'R' (restringido), 'X' (explícito). Si el avatar del usuario supera esta clasificación, se muestra la imagen predeterminada en su lugar.
    • Devuelve: Imagen de avatar en formato PNG
  6. get_avatar_by_email

    • Recupera la imagen de avatar para un perfil de Gravatar usando una dirección de correo electrónico
    • Entradas requeridas:
      • email (string): La dirección de correo electrónico asociada al perfil de Gravatar. Puede ser cualquier formato de correo válido: el sistema normalizará y aplicará un hash al correo automáticamente para la búsqueda.
    • Entradas opcionales:
      • size (number, default: undefined): Tamaño deseado del avatar en píxeles (1-2048). Las imágenes son cuadradas, por lo que esto establece tanto el ancho como el alto. Tamaños comunes: 80 (web predeterminada), 200 (web de alta resolución), 512 (pantallas grandes).
      • defaultOption (string, default: undefined): Estilo de imagen de respaldo cuando no existe un avatar. Opciones: '404' (devuelve un error HTTP 404 en lugar de una imagen), 'mp' (silueta de persona misteriosa), 'identicon' (patrón geométrico), 'monsterid' (monstruo generado), 'wavatar' (cara generada), 'retro' (estilo de 8 bits), 'robohash' (robot), 'blank' (transparente).
      • forceDefault (boolean, default: undefined): Cuando es true, siempre devuelve la imagen predeterminada en lugar del avatar del usuario. Útil para probar opciones predeterminadas o garantizar imágenes de marcador de posición consistentes.
      • rating (string, default: undefined): Clasificación de contenido máxima a mostrar. 'G' (público general), 'PG' (orientación parental), 'R' (restringido), 'X' (explícito). Si el avatar del usuario supera esta clasificación, se muestra la imagen predeterminada en su lugar.
    • Devuelve: Imagen de avatar en formato PNG

Opciones de avatar predeterminadas

  • 404: Devuelve un error HTTP 404 en lugar de una imagen cuando no existe un avatar
  • mp: (mystery-person) Un contorno simple de una persona en estilo caricatura con silueta
  • identicon: Un patrón geométrico basado en un hash de correo electrónico
  • monsterid: Un 'monstruo' generado con diferentes colores, caras, etc.
  • wavatar: Caras generadas con diferentes rasgos y fondos
  • retro: Increíbles caras pixeladas generadas en estilo arcade de 8 bits
  • robohash: Un robot generado con diferentes colores, caras, etc.
  • blank: Una imagen PNG transparente

Opciones de clasificación

  • G: Adecuado para mostrarse en todos los sitios web con cualquier tipo de audiencia
  • PG: Puede contener gestos groseros, personas vestidas de forma provocativa, insultos leves o violencia moderada
  • R: Puede contener lenguaje profano fuerte, violencia intensa, desnudez o uso de drogas duras
  • X: Puede contener imágenes sexuales o violencia extremadamente perturbadora

Configuración

Clave de API de Gravatar

Algunas partes de la API de Gravatar se pueden usar sin autenticación. Sin embargo, se recomienda usar una clave de API, ya que aumenta los límites de velocidad para tus consultas. Puedes generar tu propia clave de API visitando el Panel de desarrollador.

Una vez que tengas tu clave de API, puedes configurarla en Claude Desktop o VS Code como se muestra en las secciones siguientes.

Configuración de Claude Desktop

Agrega lo siguiente a tu claude_desktop_config.json:

Con clave de API (recomendado)

{
  "mcpServers": {
    "gravatar": {
      "command": "npx",
      "args": [
        "-y",
        "@automattic/mcp-server-gravatar"
      ],
      "env": {
        "GRAVATAR_API_KEY": "your-api-key-here"
      }
    }
  }
}

Sin clave de API

[!NOTE]

  • Sin una clave de API, se aplicarán límites de velocidad estrictos.
  • Una versión futura de este servidor puede incluir herramientas que solo estarán disponibles con una clave de API.
{
  "mcpServers": {
    "gravatar": {
      "command": "npx",
      "args": [
        "-y",
        "@automattic/mcp-server-gravatar"
      ]
    }
  }
}

Configuración de VS Code

Para la instalación manual, agrega uno de los siguientes bloques JSON a tu archivo de Configuración de usuario (JSON) en VS Code. Puedes hacerlo presionando Cmd + Shift + P (o Ctrl + Shift + P en Windows/Linux) y escribiendo Preferences: Open Settings (JSON).

Con entrada de clave de API (recomendado)

Esta configuración solicita una clave de API y la almacena de forma segura:

{
  "mcp": {
    "inputs": [
      {
        "type": "promptString",
        "id": "gravatar_api_key",
        "description": "Gravatar API Key (optional)",
        "password": true
      }
    ],
    "servers": {
      "gravatar": {
        "command": "npx",
        "args": ["-y", "@automattic/mcp-server-gravatar"],
        "env": {
          "GRAVATAR_API_KEY": "${input:gravatar_api_key}"
        }
      }
    }
  }
}

Sin clave de API

[!NOTE]

  • Sin una clave de API, se aplicarán límites de velocidad estrictos.
  • Una versión futura de este servidor puede incluir herramientas que solo estarán disponibles con una clave de API.
{
  "mcp": {
    "servers": {
      "gravatar": {
        "command": "npx",
        "args": ["-y", "@automattic/mcp-server-gravatar"]
      }
    }
  }
}

Opcionalmente, puedes agregar cualquiera de las configuraciones a un archivo llamado .vscode/mcp.json en tu espacio de trabajo. Esto te permitirá compartir la configuración con otras personas.

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

Compilación desde archivos fuente locales

Si deseas compilar y ejecutar el servidor MCP desde archivos fuente locales:

# Clone the repository
git clone https://github.com/Automattic/mcp-server-gravatar.git
cd mcp-server-gravatar

# Install dependencies
npm install

Luego actualiza la configuración de tu cliente MCP:

{
  "mcpServers": {
    "gravatar": {
      "command": "npx",
      "args": [
        "/path/to/mcp-server-gravatar"
      ],
      "env": {
        "GRAVATAR_API_KEY": "your-api-key-here"
      }
    }
  }
}

O sin una clave de API:

{
  "mcpServers": {
    "gravatar": {
      "command": "npx",
      "args": [
        "/path/to/mcp-server-gravatar"
      ]
    }
  }
}

Tipos de identificadores

El servidor MCP de Gravatar utiliza diferentes tipos de identificadores para acceder a los datos de perfiles y avatares:

Identificadores de perfil

Un identificador de perfil puede ser uno de los siguientes:

  1. Hash SHA256 (preferido): Una dirección de correo electrónico que ha sido normalizada (en minúsculas y sin espacios) y luego sometida a hash con SHA256
  2. Hash MD5 (obsoleto): Una dirección de correo electrónico que ha sido normalizada (en minúsculas y sin espacios) y luego sometida a hash con MD5
  3. Slug de URL: La parte del nombre de usuario de una URL de perfil de Gravatar (por ejemplo, 'username' de gravatar.com/username)

Identificadores de avatar

Un identificador de avatar es una dirección de correo electrónico que ha sido normalizada (en minúsculas y sin espacios) y luego sometida a hash con cualquiera de los siguientes:

  1. SHA256 (preferido)
  2. MD5 (obsoleto)

Importante: A diferencia de los identificadores de perfil, los identificadores de avatar no pueden usar slugs de URL; solo se admiten hashes de correo electrónico.

Direcciones de correo electrónico

Al usar herramientas basadas en correo electrónico, puedes proporcionar cualquier formato de correo válido. El sistema automáticamente:

  1. Normalizará el correo (lo convertirá a minúsculas y eliminará espacios en blanco)
  2. Generará el hash apropiado para las solicitudes de API
  3. Procesará el correo de forma segura sin almacenarlo

Desarrollo

Uso del Inspector

El Inspector MCP es una herramienta que ayuda a validar la implementación de tu servidor MCP. Para ejecutar el inspector:

make inspector

Esto compilará el proyecto y luego ejecutará el Inspector MCP contra tu servidor, validando las herramientas y sus esquemas.

Flujo de trabajo de desarrollo

Inicia el compilador de TypeScript en modo de observación:

make dev

Esto observará los cambios en tus archivos TypeScript y los recompilará automáticamente.

Para ejecutar el servidor después de la compilación:

npm start

Pruebas

Ejecuta el conjunto de pruebas:

npm test

Ejecuta las pruebas con cobertura:

npm run test:coverage

Ejecuta las pruebas en modo de observación:

npm run test:watch

Pruebas multi-Node

Este proyecto se prueba con múltiples versiones de Node.js para garantizar la compatibilidad. El pipeline de CI prueba automáticamente en:

  • Node.js 20 (LTS activo)
  • Node.js 22 (LTS actual)
  • Node.js 24 (Actual)

Para probar localmente con diferentes versiones de Node usando nvm:

# Test with Node 20
nvm use 20
npm ci
npm run type-check
npm test

# Test with Node 22
nvm use 22
npm ci
npm run type-check
npm test

# Test with Node 24
nvm use 24
npm ci
npm run type-check
npm test

Sistema de generación

Este proyecto utiliza una arquitectura basada en Make para toda la generación de código con dependencias adecuadas basadas en archivos:

# Generate everything (API client + MCP schemas)
make generate-all
# OR
npm run generate-all

# Generate just the OpenAPI client
make generate-client
# OR  
npm run generate-client

# Generate just the MCP schemas (requires client)
make generate-schemas
# OR
npm run generate-schemas

La generación de esquemas se configura mediante scripts/schemas.config.json y admite:

  • Extracción de esquemas configurable a partir de modelos OpenAPI
  • Envoltura de matrices para respuestas que necesitan contenedores estructurados
  • Esquemas de salida limpios que coinciden exactamente con la especificación MCP
  • Seguimiento automático de dependencias mediante Make

Otros comandos útiles

El proyecto incluye un Makefile con varios comandos útiles:

  • make download-spec: Descarga la especificación OpenAPI de Gravatar
  • make generate-client: Genera el cliente de API de Gravatar a partir de la especificación OpenAPI
  • make generate-schemas: Genera los esquemas de salida MCP a partir del cliente de API
  • make generate-all: Genera el cliente de API y los esquemas MCP
  • make build: Compila el proyecto TypeScript
  • make lint: Ejecuta el linting
  • make lint-fix: Ejecuta el linting con corrección automática
  • make format: Formatea el código con Prettier
  • make format-check: Verifica el formato del código
  • make quality-check: Ejecuta el linting y la verificación de formato
  • make clean: Limpia los artefactos de compilación y las dependencias

Ejecuta make help para ver todos los comandos disponibles.

Variables de entorno

  • GRAVATAR_API_KEY: Clave de API opcional para la API de Gravatar. Si se proporciona, se usará para las solicitudes de API, lo que aumenta los límites de velocidad y brinda acceso a funciones adicionales.

  • GRAVATAR_API_KEY_ENV_VAR: Nombre opcional de la variable de entorno que contiene la clave de API. El valor predeterminado es GRAVATAR_API_KEY. Esto es útil si necesitas usar un nombre de variable de entorno diferente en tu entorno de implementación.

Al ejecutar el servidor localmente, puedes configurar estas variables de entorno en tu shell antes de iniciar el servidor:

# Set API key (recommended)
export GRAVATAR_API_KEY=your_api_key_here

# Start the server
npm start

O puedes proporcionarlas en línea al iniciar el servidor:

GRAVATAR_API_KEY=your_api_key_here npm start

Al configurar el servidor en Claude Desktop o VS Code, puedes establecer estas variables de entorno en la configuración como se muestra en la sección de Configuración anterior.

Licencia

Este servidor MCP está licenciado bajo la Mozilla Public License Versión 2.0 (MPL-2.0). Esto significa que eres libre de usar, modificar y distribuir el software, sujeto a los términos y condiciones de la MPL-2.0. Para más detalles, consulta el archivo LICENSE en el repositorio del proyecto.