Skip to main content
Glama

Compare 2+ people side-by-side

compare_people
Read-onlyIdempotent

Two to five people set out side by side, line by line — how they work, how they come across, where their careers have gone, how deep their experience runs, how visible they are, who they are connected to. You get a table you can read down a column for one person or across a row to see how they differ. Tell it what the comparison is for and the framing follows: people to pitch, partners to weigh, guests or speakers to prepare for. Not a consumer report: never for deciding whether to hire, admit, lend to or house anyone. It compares people you have already looked up; if fewer than two of them are on file it says so and charges nothing. If a name matches more than one person you get the candidates for that name, also free. Costs 15 credits per comparison, whatever the number of people. Plans and credits: https://mentionfox.com/pricing

Input Schema

NameRequiredDescriptionDefault
peopleYesTwo to five people. Either plain names — ["Ada Lovelace", "Alan Turing"] — or objects carrying name or person_id.
contextNoOptional. What the comparison is for, which sets the framing, for example "investment targets" or "speaking-spot candidates".

Output Schema

NameRequiredDescriptionDefault
okNoTrue when the comparison was made.
errorNoPresent when the call could not do the work; says why and that nothing was charged where that is so.
namesNoThe people compared.
statusNo"needs_disambiguation" when the name matched more than one person; pick one and call again with its person_id.
contextNoWhat the comparison is for, as given.
messageNoA plain note about the answer, for example why candidates were returned instead of a result.
summaryNoThe main differences in a few sentences.
next_stepNoWhat to do next, for example look up someone who was not on file.
candidatesNoPeople or companies the name could mean, each with an id and enough to tell them apart. Nothing is charged for this list.
dimensionsNoThe table: each line (how they work, career, visibility, connections ...) with each person's entry.
people_countNoHow many people were compared.
pricing_noteNoWhat this call cost and what a repeat costs.
mentionfox_urlNoThe comparison in MentionFox.
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.
cached_rows_foundNoHow many of them were already on file.

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. Changed2 schema fields changed
    • changedInput schema / properties / context / description
      Previous value: -"Optional context shaping the comparison framing (e.g. \"investment targets\", \"speaking-spot candidates\")"New value: +"Optional. What the comparison is for, which sets the framing, for example \"investment targets\" or \"speaking-spot candidates\"."
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "additionalProperties": true,
      +  "properties": {
      +    "cached_rows_found": {
      +      "description": "How many of them were already on file.",
      +      "type": [
      +        "number",
      +        "null"
      +      ]
      +    },
      +    "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"
      +      ]
      +    },
      +    "context": {
      +      "description": "What the comparison is for, as given.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "credits_charged": {
      +      "description": "Credits this call took. 0 when nothing was charged.",
      +      "type": [
      +        "number",
      +        "null"
      +      ]
      +    },
      +    "dimensions": {
      +      "description": "The table: each line (how they work, career, visibility, connections ...) with each person's entry."
      +    },
      +    "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"
      +      ]
      +    },
      +    "mentionfox_url": {
      +      "description": "The comparison 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"
      +      ]
      +    },
      +    "names": {
      +      "description": "The people compared.",
      +      "type": [
      +        "array",
      +        "null"
      +      ]
      +    },
      +    "next_step": {
      +      "description": "What to do next, for example look up someone who was not on file.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "ok": {
      +      "description": "True when the comparison was made.",
      +      "type": [
      +        "boolean",
      +        "null"
      +      ]
      +    },
      +    "people_count": {
      +      "description": "How many people were compared.",
      +      "type": [
      +        "number",
      +        "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": "The main differences in a few sentences.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    }
      +  },
      +  "title": "People side by side",
      +  "type": "object"
      +}
  3. First observed

TDQS

A4.5/5.0
Behavior5/5

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

Annotations cover the safety profile, and the description adds behavior they cannot express: a flat 15-credit cost regardless of headcount, two free failure paths (fewer than two people on file, ambiguous name returning candidates), and the tabular read-down/read-across output shape. Pricing and free-of-charge edge cases are exactly the kind of operational context an agent should know before calling.

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?

The opening sentence puts the core action and output format first, and pricing plus eligibility caveats follow logically. It is dense dashed prose with some restatement of the schema's two-to-five bound, but almost every clause carries new 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?

With an output schema handling return values and annotations covering safety and idempotency, the description fills the remaining gaps: cost, free paths, ambiguity handling, prerequisite of prior lookups, and an explicit prohibited use. An agent has everything needed to decide and invoke correctly.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3; the description earns the extra point by explaining the semantic effect of the optional context string — it steers the comparison framing — which the schema only hints at with examples. The people parameter is largely restated from the schema rather than extended.

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 names a specific verb and resource (side-by-side comparison of two to five people) and enumerates the comparison axes: how they work, career trajectory, experience depth, visibility, and connections. The only gap is that it never names a sibling tool (enrich_person, get_dossier) as a contrast, so differentiation from those has to be inferred.

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

Usage Guidelines5/5

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

It states concrete use cases (people to pitch, partners to weigh, guests or speakers to prepare for) with the framing effect of the context parameter. It also gives an explicit exclusion — never for hire, admit, lend, or house decisions — and a prerequisite that the people be already looked up, meaning enrichment comes first.

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