Skip to main content
Glama

Person's contact details

enrich_person
Read-onlyIdempotent

How to reach one person: their email address, phone number where there is one, and their profile links. Give a name — add their employer if the name is a common one — and you get back the person, their current role, and the ways to contact them. Use it when someone says "how do I get hold of her", "find his email", "I need to reach the person who runs marketing there". Do not use it to find out WHO to contact: this looks up somebody you can already name. If the name matches more than one person you get the list of candidates and nothing is charged; pick one and ask again. Nothing is charged when nobody matches either. Costs 5 credits when it finds them. If you name a company MentionFox holds a record for, the answer starts with the MentionFox check on it: red flags found, in how many sources, with a link to the full findings. Plans and credits: https://mentionfox.com/pricing

Input Schema

NameRequiredDescriptionDefault
nameNoThe full name of the person, for example "Jane Doe". Give either name or person_id.
companyNoOptional. Where they work, as a name or website (for example "Acme" or acme.com), so a common name finds the right person.
person_idNoThe id of one person from the candidate list an earlier call returned, when the name matched several people. Give either name or person_id.

Output Schema

NameRequiredDescriptionDefault
errorNoPresent when the call could not do the work; says why and that nothing was charged where that is so.
titleNoTheir current role.
emailsNoEmail addresses that are confirmed or published, each with its status.
phonesNoPhone numbers, where there are any.
statusNo"needs_disambiguation" when the name matched more than one person; pick one and call again with its person_id.
companyNoWhere they work now.
messageNoA plain note about the answer, for example why candidates were returned instead of a result.
summaryNoA one-paragraph summary of who they are.
locationNoWhere they are based.
full_nameNoThe person found.
photo_urlNoA link to their photo.
candidatesNoPeople or companies the name could mean, each with an id and enough to tell them apart. Nothing is charged for this list.
linkedin_urlNoTheir professional profile link.
pricing_noteNoWhat this call cost and what a repeat costs.
github_handleNoTheir code-hosting handle.
mentionfox_urlNoTheir page in MentionFox.
twitter_handleNoTheir X handle.
credits_chargedNoCredits this call took. 0 when nothing was charged.
mentionfox_checkNoPresent when the call named a company MentionFox holds a record for: MentionFox's own check on it (the sentence, red flags and notes with their source links, how many sources) and a link to the full findings.
retry_with_paramNoThe input to send on the next call with the chosen candidate.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedOutput schema / properties / mentionfox_check
      Added value: +{
      +  "description": "Present when the call named a company MentionFox holds a record for: MentionFox's own check on it (the sentence, red flags and notes with their source links, how many sources) and a link to the full findings."
      +}
  2. Changed4 schema fields changed
    • changedInput schema / properties / company / description
      Previous value: -"Company name or domain — disambiguation hint."New value: +"Optional. Where they work, as a name or website (for example \"Acme\" or acme.com), so a common name finds the right person."
    • changedInput schema / properties / name / description
      Previous value: -"Natural-language person name. Provide either name or person_id."New value: +"The full name of the person, for example \"Jane Doe\". Give either name or person_id."
    • changedInput schema / properties / person_id / description
      Previous value: -"UUID lock-in after disambiguation. Provide either name or person_id."New value: +"The id of one person from the candidate list an earlier call returned, when the name matched several people. Give either name or person_id."
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "additionalProperties": true,
      +  "properties": {
      +    "candidates": {
      +      "description": "People or companies the name could mean, each with an id and enough to tell them apart. Nothing is charged for this list.",
      +      "type": [
      +        "array",
      +        "null"
      +      ]
      +    },
      +    "company": {
      +      "description": "Where they work now.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "credits_charged": {
      +      "description": "Credits this call took. 0 when nothing was charged.",
      +      "type": [
      +        "number",
      +        "null"
      +      ]
      +    },
      +    "emails": {
      +      "description": "Email addresses that are confirmed or published, each with its status.",
      +      "type": [
      +        "array",
      +        "null"
      +      ]
      +    },
      +    "error": {
      +      "description": "Present when the call could not do the work; says why and that nothing was charged where that is so.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "full_name": {
      +      "description": "The person found.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "github_handle": {
      +      "description": "Their code-hosting handle.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "linkedin_url": {
      +      "description": "Their professional profile link.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "location": {
      +      "description": "Where they are based.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "mentionfox_url": {
      +      "description": "Their page in MentionFox.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "message": {
      +      "description": "A plain note about the answer, for example why candidates were returned instead of a result.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "phones": {
      +      "description": "Phone numbers, where there are any.",
      +      "type": [
      +        "array",
      +        "null"
      +      ]
      +    },
      +    "photo_url": {
      +      "description": "A link to their photo.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "pricing_note": {
      +      "description": "What this call cost and what a repeat costs.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "retry_with_param": {
      +      "description": "The input to send on the next call with the chosen candidate.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "status": {
      +      "description": "\"needs_disambiguation\" when the name matched more than one person; pick one and call again with its person_id.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "summary": {
      +      "description": "A one-paragraph summary of who they are.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "title": {
      +      "description": "Their current role.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "twitter_handle": {
      +      "description": "Their X handle.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    }
      +  },
      +  "title": "Contact details for one person",
      +  "type": "object"
      +}
  3. First observed

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already cover read-only, idempotent, open-world, non-destructive, so the bar is lower, yet the description adds substantial behavior: a 5-credit charge only on a successful match, no charge on ambiguity or no-match, the candidate-list return path, and the MentionFox red-flag check prefixed when a company is supplied. These are things an agent could not infer from the annotations or schema.

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

Conciseness4/5

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

Front-loaded with the resource and return shape, followed by usage triggers, exclusions, and cost model in a logical order. Slightly verbose with several quoted user phrasings and an appended pricing URL, but each sentence carries actionable information.

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

Completeness5/5

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

An output schema exists, so return values need not be described, and the description still covers cost, ambiguity handling, the person_id follow-up path, and the company-driven red-flag prelude. For a three-parameter lookup tool, nothing an agent needs in order to call it correctly is missing.

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?

Schema coverage is 100%, so baseline is 3; the schema already explains name, company, and person_id. The description reinforces the company parameter's purpose ("add their employer if the name is a common one") and situates person_id in the two-step flow, but adds little syntactic or semantic detail beyond what the schema states.

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

Purpose5/5

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

Opens with a specific verb+resource framing: "How to reach one person: their email address, phone number where there is one, and their profile links," then names the returned fields (person, current role, contact methods). This is clearly distinct from siblings like compare_people or get_dossier, which operate on multiple people or broader reports.

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

Usage Guidelines4/5

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

Explicitly states when to use ("how do I get hold of her", "find his email") and when not to ("Do not use it to find out WHO to contact: this looks up somebody you can already name"). It also documents the disambiguation loop — candidate list returned free, pick one and re-ask with person_id. The only gap is that it never names the sibling tool to use instead for the "who to contact" case.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources