Skip to main content
Glama
Automattic

Gravatar MCP Server

Official
by Automattic

Get Gravatar Profile by ID

get_profile_by_id
Read-onlyIdempotent

Retrieve a Gravatar user's profile details—personal info, social accounts, and avatars—using an email hash or username.

Instructions

Retrieve comprehensive Gravatar profile information using a profile identifier. Returns detailed profile data including personal information, social accounts, and avatar details. 'Get the profile for Gravatar user with ID abc123...' or 'Show me the profile for username johndoe.'

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
profileIdentifierYesProfile identifier for the Gravatar profile. A Profile Identifier is either an email address that has been normalized (e.g. lower-cased and trimmed) and then hashed with either SHA256 (preferred) or MD5 (deprecated), or Gravatar profile URL slug (e.g., 'username' from gravatar.com/username).

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
hashYesThe SHA256 hash of the user's primary email address.
linksNoA list of links the user has added to their profile. This is only provided in authenticated API requests.
companyYesThe user's current company's name.
galleryNoAdditional images a user has uploaded. This is only provided in authenticated API requests.
locationYesThe user's location.
paymentsNoThe user's public payment information. This is only provided in authenticated API requests.
pronounsYesThe pronouns the user uses.
timezoneNoThe timezone the user has. This is only provided in authenticated API requests.
interestsNoA list of interests the user has added to their profile. This is only provided in authenticated API requests.
job_titleYesThe user's job title.
languagesNoThe languages the user knows. This is only provided in authenticated API requests.
last_nameNoUser's last name. This is only provided in authenticated API requests.
avatar_urlYesThe URL for the user's avatar image if it has been set.
first_nameNoUser's first name. This is only provided in authenticated API requests.
descriptionYesThe about section on a user's profile.
profile_urlYesThe full URL for the user's profile.
contact_infoNoThe user's contact information. This is only available if the user has chosen to make it public. This is only provided in authenticated API requests.
display_nameYesThe user's display name. This is the name that is displayed on their profile.
header_imageNoThe header image used in the main profile card.
pronunciationYesThe phonetic pronunciation of the user's name.
avatar_alt_textYesThe alt text for the user's avatar image if it has been set.
is_organizationNoWhether user is an organization. This is only provided in authenticated API requests.
background_colorNoThe profile background color.
last_profile_editNoThe date and time (UTC) the user last edited their profile. This is only provided in authenticated API requests.
registration_dateNoThe date the user registered their account. This is only provided in authenticated API requests.
verified_accountsYesA list of verified accounts the user has added to their profile. This is limited to a max of 4 in unauthenticated requests.
number_verified_accountsNoThe number of verified accounts the user has added to their profile. This count includes verified accounts the user is hiding from their profile. This is only provided in authenticated API requests.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0-beta.4

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint, openWorldHint, and idempotentHint, so the description does not need to repeat those. It adds value by disclosing the nature of the returned data (personal information, social accounts, avatar details), which goes beyond the bare fact that it retrieves a profile. No contradictions exist between the description and annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence that front-loads the main action and resource, followed by an examples block that clarifies intended usage. It contains no redundancy or filler; every sentence contributes directly to the agent's understanding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is a simple read operation with one well-documented parameter, and an output schema is present, so return value details are not required in the description. The description covers the type of data returned and the accepted input forms. It lacks explicit handling of not-found cases or error behavior, but those are not essential for a straightforward retrieval tool given the annotations and schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides a thorough description of the profileIdentifier parameter, covering both email hashes (SHA256/MD5) and URL slugs. With 100% schema coverage, the description adds no additional meaning about the parameter itself; it merely reiterates the concept. The baseline of 3 applies because the schema carries the full semantic weight.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb (retrieve) and resource (comprehensive Gravatar profile) and explains the input (profile identifier). It includes illustrative examples that ground the usage. However, it does not explicitly distinguish this tool from the sibling get_profile_by_email, which is a similar operation keyed on a different input; the differentiation is only implied by the parameter description and title.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no explicit guidance on when to choose this tool over its siblings. While the examples imply it is for identifiers (hash or slug), there is no statement such as 'use get_profile_by_email when you have an email address' or any exclusions. The context of sibling tools is present, but the description does not reference them, leaving the selection decision partially to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.