Gravatar

Interaja com avatares, perfis e interesses inferidos do Gravatar.

Documentação

NPM Type Definitions Node Node-LTS

GitHub branch status Node.js CI Tested

Servidor MCP Gravatar

O servidor MCP oficial do Gravatar, permitindo acesso a avatares, perfis e interesses inferidos.

Instalação Rápida

Para instalação rápida no VS Code, clique em um dos botões de instalação abaixo:

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

Requisitos

Node.js

Este servidor MCP requer:

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

O servidor é testado e suportado em:

  • Node.js 20 (LTS Ativo)
  • Node.js 22 (LTS Atual)
  • Node.js 24 (Atual)

Instalação

Você pode instalar e executar este servidor usando npx (recomendado) ou compilando a partir do código-fonte.

Ferramentas

  1. get_profile_by_id

    • Recupera informações abrangentes do perfil Gravatar usando um identificador de perfil
    • Entradas obrigatórias:
    • Retorna: Objeto de perfil como JSON com informações abrangentes do usuário
  2. get_profile_by_email

    • Recupera informações abrangentes do perfil Gravatar usando um endereço de e-mail
    • Entradas obrigatórias:
      • email (string): O endereço de e-mail associado ao perfil Gravatar. Pode ser qualquer formato de e-mail válido - o sistema normalizará e fará o hash do e-mail automaticamente para a consulta.
    • Retorna: Objeto de perfil como JSON com informações abrangentes do usuário
  3. get_inferred_interests_by_id

    • Busca interesses inferidos por IA para um perfil Gravatar usando um identificador de perfil
    • Entradas obrigatórias:
    • Retorna: Lista de nomes de interesses inferidos por IA como JSON
  4. get_inferred_interests_by_email

    • Busca interesses inferidos por IA para um perfil Gravatar usando um endereço de e-mail
    • Entradas obrigatórias:
      • email (string): O endereço de e-mail associado ao perfil Gravatar. Pode ser qualquer formato de e-mail válido - o sistema normalizará e fará o hash do e-mail automaticamente para a consulta.
    • Retorna: Lista de nomes de interesses inferidos por IA como JSON
  5. get_avatar_by_id

    • Recupera a imagem do avatar para um perfil Gravatar usando um identificador de avatar
    • Entradas obrigatórias:
    • Entradas opcionais:
      • size (número, padrão: indefinido): Tamanho desejado do avatar em pixels (1-2048). As imagens são quadradas, então isso define largura e altura. Tamanhos comuns: 80 (padrão web), 200 (web de alta resolução), 512 (telas grandes).
      • defaultOption (string, padrão: indefinido): Estilo de imagem substituta quando não existe avatar. Opções: '404' (retorna erro HTTP 404 em vez de imagem), 'mp' (silhueta de pessoa misteriosa), 'identicon' (padrão geométrico), 'monsterid' (monstro gerado), 'wavatar' (rosto gerado), 'retro' (estilo 8-bit), 'robohash' (robô), 'blank' (transparente).
      • forceDefault (booleano, padrão: indefinido): Quando verdadeiro, sempre retorna a imagem padrão em vez do avatar do usuário. Útil para testar opções padrão ou garantir imagens substitutas consistentes.
      • rating (string, padrão: indefinido): Classificação máxima de conteúdo a ser exibida. 'G' (público geral), 'PG' (orientação dos pais), 'R' (restrito), 'X' (explícito). Se o avatar do usuário exceder esta classificação, a imagem padrão é exibida.
    • Retorna: Imagem do avatar em formato PNG
  6. get_avatar_by_email

    • Recupera a imagem do avatar para um perfil Gravatar usando um endereço de e-mail
    • Entradas obrigatórias:
      • email (string): O endereço de e-mail associado ao perfil Gravatar. Pode ser qualquer formato de e-mail válido - o sistema normalizará e fará o hash do e-mail automaticamente para a consulta.
    • Entradas opcionais:
      • size (número, padrão: indefinido): Tamanho desejado do avatar em pixels (1-2048). As imagens são quadradas, então isso define largura e altura. Tamanhos comuns: 80 (padrão web), 200 (web de alta resolução), 512 (telas grandes).
      • defaultOption (string, padrão: indefinido): Estilo de imagem substituta quando não existe avatar. Opções: '404' (retorna erro HTTP 404 em vez de imagem), 'mp' (silhueta de pessoa misteriosa), 'identicon' (padrão geométrico), 'monsterid' (monstro gerado), 'wavatar' (rosto gerado), 'retro' (estilo 8-bit), 'robohash' (robô), 'blank' (transparente).
      • forceDefault (booleano, padrão: indefinido): Quando verdadeiro, sempre retorna a imagem padrão em vez do avatar do usuário. Útil para testar opções padrão ou garantir imagens substitutas consistentes.
      • rating (string, padrão: indefinido): Classificação máxima de conteúdo a ser exibida. 'G' (público geral), 'PG' (orientação dos pais), 'R' (restrito), 'X' (explícito). Se o avatar do usuário exceder esta classificação, a imagem padrão é exibida.
    • Retorna: Imagem do avatar em formato PNG

Opções de Avatar Padrão

  • 404: Retorna um erro HTTP 404 em vez de uma imagem quando não existe avatar
  • mp: (pessoa misteriosa) Um contorno simples de pessoa em estilo cartoon
  • identicon: Um padrão geométrico baseado no hash do e-mail
  • monsterid: Um 'monstro' gerado com diferentes cores, rostos, etc
  • wavatar: Rostos gerados com características e fundos diferentes
  • retro: Rostos pixelados incríveis gerados em estilo arcade 8-bit
  • robohash: Um robô gerado com diferentes cores, rostos, etc
  • blank: Uma imagem PNG transparente

Opções de Classificação

  • G: Adequado para exibição em todos os sites com qualquer tipo de público
  • PG: Pode conter gestos rudes, pessoas vestidas de forma provocante, palavrões leves ou violência leve
  • R: Pode conter palavrões fortes, violência intensa, nudez ou uso de drogas pesadas
  • X: Pode conter imagens sexuais ou violência extremamente perturbadora

Configuração

Chave da API Gravatar

Algumas partes da API Gravatar podem ser usadas sem autenticação. No entanto, usar uma chave de API é recomendado, pois aumenta os limites de taxa para suas consultas. Você pode gerar sua própria chave de API visitando o Painel do Desenvolvedor.

Depois de ter sua chave de API, você pode configurá-la no Claude Desktop ou VS Code conforme mostrado nas seções abaixo.

Configuração do Claude Desktop

Adicione o seguinte ao seu claude_desktop_config.json:

Com Chave de API (Recomendado)

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

Sem Chave de API

[!NOTE]

  • Sem uma chave de API, limites de taxa rigorosos serão aplicados.
  • Uma versão futura deste servidor pode incluir ferramentas que estarão disponíveis apenas com uma chave de API.
{
  "mcpServers": {
    "gravatar": {
      "command": "npx",
      "args": [
        "-y",
        "@automattic/mcp-server-gravatar"
      ]
    }
  }
}

Configuração do VS Code

Para instalação manual, adicione um dos seguintes blocos JSON ao seu arquivo de Configurações do Usuário (JSON) no VS Code. Você pode fazer isso pressionando Cmd + Shift + P (ou Ctrl + Shift + P no Windows/Linux) e digitando Preferences: Open Settings (JSON).

Com Entrada de Chave de API (Recomendado)

Esta configuração solicita uma chave de API e a armazena com segurança:

{
  "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}"
        }
      }
    }
  }
}

Sem Chave de API

[!NOTE]

  • Sem uma chave de API, limites de taxa rigorosos serão aplicados.
  • Uma versão futura deste servidor pode incluir ferramentas que estarão disponíveis apenas com uma chave de API.
{
  "mcp": {
    "servers": {
      "gravatar": {
        "command": "npx",
        "args": ["-y", "@automattic/mcp-server-gravatar"]
      }
    }
  }
}

Opcionalmente, você pode adicionar qualquer uma das configurações a um arquivo chamado .vscode/mcp.json no seu espaço de trabalho. Isso permitirá que você compartilhe a configuração com outras pessoas.

Observe que a chave mcp não é necessária no arquivo .vscode/mcp.json.

Compilando a partir dos Arquivos de Código-Fonte Local

Se você quiser compilar e executar o servidor MCP a partir dos arquivos de código-fonte local:

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

# Install dependencies
npm install

Em seguida, atualize sua configuração do Cliente MCP:

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

Ou sem uma Chave de API:

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

Tipos de Identificadores

O servidor MCP Gravatar usa diferentes tipos de identificadores para acessar dados de perfil e avatar:

Identificadores de Perfil

Um Identificador de Perfil pode ser um dos seguintes:

  1. Hash SHA256 (preferido): Um endereço de e-mail que foi normalizado (minúsculas e sem espaços) e depois submetido a hash com SHA256
  2. Hash MD5 (obsoleto): Um endereço de e-mail que foi normalizado (minúsculas e sem espaços) e depois submetido a hash com MD5
  3. Slug de URL: A parte do nome de usuário de uma URL de perfil Gravatar (por exemplo, 'username' de gravatar.com/username)

Identificadores de Avatar

Um Identificador de Avatar é um endereço de e-mail que foi normalizado (minúsculas e sem espaços) e depois submetido a hash com:

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

Importante: Ao contrário dos Identificadores de Perfil, os Identificadores de Avatar não podem usar slugs de URL - apenas hashes de e-mail são suportados.

Endereços de E-mail

Ao usar ferramentas baseadas em e-mail, você pode fornecer qualquer formato de e-mail válido. O sistema automaticamente:

  1. Normaliza o e-mail (converte para minúsculas e remove espaços)
  2. Gera o hash apropriado para solicitações de API
  3. Processa o e-mail com segurança sem armazená-lo

Desenvolvimento

Usando o Inspector

O MCP Inspector é uma ferramenta que ajuda a validar sua implementação do servidor MCP. Para executar o inspector:

make inspector

Isso compilará o projeto e depois executará o MCP Inspector contra seu servidor, validando as ferramentas e seus esquemas.

Fluxo de Trabalho de Desenvolvimento

Inicie o compilador TypeScript em modo de observação:

make dev

Isso observará alterações em seus arquivos TypeScript e os recompilará automaticamente.

Para executar o servidor após a compilação:

npm start

Testes

Execute a suíte de testes:

npm test

Execute testes com cobertura:

npm run test:coverage

Execute testes em modo de observação:

npm run test:watch

Testes Multi-Node

Este projeto é testado em múltiplas versões do Node.js para garantir compatibilidade. O pipeline de CI testa automaticamente em:

  • Node.js 20 (LTS Ativo)
  • Node.js 22 (LTS Atual)
  • Node.js 24 (Atual)

Para testar localmente com diferentes versões do 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 Geração

Este projeto usa uma arquitetura orientada por Make para toda a geração de código com dependências adequadas baseadas em arquivos:

# 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

A geração de esquemas é configurada via scripts/schemas.config.json e suporta:

  • Extração de esquema configurável de modelos OpenAPI
  • Encapsulamento de arrays para respostas que precisam de contêineres estruturados
  • Esquemas de saída limpos que correspondem exatamente à especificação MCP
  • Rastreamento automático de dependências via Make

Outros Comandos Úteis

O projeto inclui um Makefile com vários comandos úteis:

  • make download-spec: Baixar a especificação OpenAPI do Gravatar
  • make generate-client: Gerar cliente da API Gravatar a partir da especificação OpenAPI
  • make generate-schemas: Gerar esquemas de saída MCP a partir do cliente da API
  • make generate-all: Gerar cliente da API e esquemas MCP
  • make build: Compilar o projeto TypeScript
  • make lint: Executar linting
  • make lint-fix: Executar linting com correção automática
  • make format: Formatar código com Prettier
  • make format-check: Verificar formatação do código
  • make quality-check: Executar linting e verificação de formatação
  • make clean: Limpar artefatos de compilação e dependências

Execute make help para ver todos os comandos disponíveis.

Variáveis de Ambiente

  • GRAVATAR_API_KEY: Chave de API opcional para a API Gravatar. Se fornecida, será usada para solicitações de API, o que aumenta os limites de taxa e fornece acesso a recursos adicionais.

  • GRAVATAR_API_KEY_ENV_VAR: Nome opcional da variável de ambiente que contém a chave de API. O padrão é GRAVATAR_API_KEY. Isso é útil se você precisar usar um nome de variável de ambiente diferente no seu ambiente de implantação.

Ao executar o servidor localmente, você pode definir essas variáveis de ambiente no seu shell antes de iniciar o servidor:

# Set API key (recommended)
export GRAVATAR_API_KEY=your_api_key_here

# Start the server
npm start

Ou você pode fornecê-las inline ao iniciar o servidor:

GRAVATAR_API_KEY=your_api_key_here npm start

Ao configurar o servidor no Claude Desktop ou no VS Code, você pode definir essas variáveis de ambiente na configuração, conforme mostrado na seção Setup acima.

Licença

Este servidor MCP é licenciado sob a Mozilla Public License Versão 2.0 (MPL-2.0). Isso significa que você é livre para usar, modificar e distribuir o software, sujeito aos termos e condições da MPL-2.0. Para mais detalhes, consulte o arquivo LICENSE no repositório do projeto.