Gravatar
Interactúa con avatares, perfiles e intereses inferidos de Gravatar.
Documentación
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:
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
-
get_profile_by_id- Recupera información completa del perfil de Gravatar usando un identificador de perfil
- Entradas requeridas:
profileIdentifier(string): Un identificador de perfil (consulta la sección Tipos de identificadores)
- Devuelve: Objeto de perfil como JSON con información completa del usuario
-
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
-
get_inferred_interests_by_id- Obtén intereses inferidos por IA para un perfil de Gravatar usando un identificador de perfil
- Entradas requeridas:
profileIdentifier(string): Un identificador de perfil (consulta la sección Tipos de identificadores)
- Devuelve: Lista de nombres de intereses inferidos por IA como JSON
-
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
-
get_avatar_by_id- Recupera la imagen de avatar para un perfil de Gravatar usando un identificador de avatar
- Entradas requeridas:
avatarIdentifier(string): Un identificador de avatar (consulta la sección Tipos de identificadores)
- 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
-
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 avatarmp: (mystery-person) Un contorno simple de una persona en estilo caricatura con siluetaidenticon: Un patrón geométrico basado en un hash de correo electrónicomonsterid: Un 'monstruo' generado con diferentes colores, caras, etc.wavatar: Caras generadas con diferentes rasgos y fondosretro: Increíbles caras pixeladas generadas en estilo arcade de 8 bitsrobohash: 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 audienciaPG: Puede contener gestos groseros, personas vestidas de forma provocativa, insultos leves o violencia moderadaR: Puede contener lenguaje profano fuerte, violencia intensa, desnudez o uso de drogas durasX: 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
mcpno 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:
- 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
- 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
- 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:
- SHA256 (preferido)
- 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:
- Normalizará el correo (lo convertirá a minúsculas y eliminará espacios en blanco)
- Generará el hash apropiado para las solicitudes de API
- 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 Gravatarmake generate-client: Genera el cliente de API de Gravatar a partir de la especificación OpenAPImake generate-schemas: Genera los esquemas de salida MCP a partir del cliente de APImake generate-all: Genera el cliente de API y los esquemas MCPmake build: Compila el proyecto TypeScriptmake lint: Ejecuta el lintingmake lint-fix: Ejecuta el linting con corrección automáticamake format: Formatea el código con Prettiermake format-check: Verifica el formato del códigomake quality-check: Ejecuta el linting y la verificación de formatomake 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 esGRAVATAR_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.