Skip to main content
Glama

Server Details

Company and people checks: red flags, funding, leadership. Every claim cited. Free to try.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
99.7% over 35 days
Last Tested
Transport
Streamable HTTP · MCP 2025-03-26
URL
ChatGPT
–
Claude
–

TDQS

A4.1/5.0

Scored across 10 tools

Disambiguation3/5

The set has a cluster of overlapping research tools — get_snapshot, get_dossier, and get_full_report all retrieve information about a subject, differing mainly in depth and cost. The descriptions do explicitly cross-reference each other (e.g., 'for the long version, use get_full_report'), which helps, but an agent can still misselect among them. Other tools (enrich_person, compare_people, source_check, export_report, find_buyers_now, scan_for_mentions, get_my_recent_research) are clearly distinct.

Naming Consistency4/5

All names use snake_case and most follow a verb_noun pattern (compare_people, enrich_person, export_report, get_snapshot, scan_for_mentions). source_check is the main deviation, using noun_verb order, and get_my_recent_research inserts a possessive, but overall the convention is predictable.

Tool Count4/5

10 tools is a reasonable, well-scoped number for a research and due-diligence platform. The only redundancy is the three report-depth tools (snapshot, dossier, full report), which could potentially be consolidated, but the count itself is appropriate.

Completeness4/5

The surface covers looking up known people, comparing them, verifying credentials, scanning mentions, finding buyers, generating reports, and exporting. Some gaps exist — there is no way to discover people by role or criteria (enrich_person explicitly only looks up named people), and no company-level search beyond find_buyers_now — but core workflows are covered.

Available Tools

10 tools
compare_peopleCompare 2+ people side-by-sideA
Read-onlyIdempotent
Inspect

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

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

NameRequiredDescription
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.

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.

enrich_personPerson's contact detailsA
Read-onlyIdempotent
Inspect

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

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

NameRequiredDescription
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.

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.

export_reportMake a sendable fileA
Destructive
Inspect

Turn something you already have into a file you can send someone: a web page, a print-ready page you can save as a PDF, or plain text. Nothing about MentionFox appears on it, and you can put your own name, logo and colours on it, so it goes to a client as your work. Use it for "send me that as a PDF", "I need this as a document for the client", "put our branding on it". This makes a fixed copy of what exists now — for something that keeps up to date as the information changes, share the live link instead. Costs 5 credits. Plans and credits: https://mentionfox.com/pricing

NameRequiredDescriptionDefault
formatNohtml: a web page. pdf: a print-ready page to save as a PDF. markdown: plain text. Default html.html
brandingNoOptional. Your own branding on the file, so it goes out as your work.
report_idYesWhich one. For a dossier, the person id from get_dossier (person_profile_id). For a compare, the names separated by commas, for example "Ada Lovelace, Alan Turing". For the others, the id the earlier result gave.
report_typeYesWhat to turn into a file: dossier (the file on one person), compare (a side-by-side), or one of the evaluation types.

Output Schema

NameRequiredDescription
errorNoPresent when the call could not do the work; says why and that nothing was charged where that is so.
titleNoThe file's title.
formatNohtml, pdf or markdown.
contentNoThe file itself (the page or the text).
messageNoA plain note about the answer, for example why candidates were returned instead of a result.
summaryNoWhat the file contains.
report_typeNoWhat was turned into a file.
download_urlNoA link to download the file.
pricing_noteNoWhat this call cost and what a repeat costs.
credits_chargedNoCredits this call took. 0 when nothing was charged.
file_size_bytesNoSize of the file.
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.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations only declare the mutation/non-idempotent profile; the description adds the behavior that actually matters — each call produces a frozen snapshot rather than a live artifact, costs 5 credits, strips MentionFox branding, and supports custom logo/colours. It does not state whether a failed or repeated call still burns credits, which is the main open risk given idempotentHint=false.

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 what the tool produces, then the snapshot-vs-live caveat, then cost. The example utterances and pricing URL are slightly padding, but each sentence carries usable signal and nothing is repeated.

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?

For a 4-parameter export tool with a full output schema and rich annotations, the description covers the dimensions an agent needs: output formats, branding scope, snapshot semantics, and cost. Minor gaps remain — the report_id cross-references to get_dossier are documented in the schema rather than the description, and error behavior is unaddressed.

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 description coverage is 100%, so every parameter including the nested branding object and both enums is already documented in the schema. The description adds no format or report_id nuance beyond what the schema says, so the baseline 3 applies.

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 action and output: converts an existing report into a sendable file in html/pdf/markdown, with branding applied and no MentionFox watermark. The vague opener 'something you already have' is resolved by the schema's report_type enum, but the description itself never names the report kinds it accepts, so the agent must open the schema to know what 'something' means.

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 gives explicit trigger phrases ('send me that as a PDF', 'put our branding on it') and, critically, an explicit when-not: for anything that must stay current, share the live link instead of making a fixed copy. The 5-credit cost and pricing link let the agent weigh the call against a cheaper alternative.

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

find_buyers_nowCompanies with a filed reason to buy from youA
Read-onlyIdempotent
Inspect

Give the website of the business you sell for. MentionFox reads it to learn what you sell, then searches recent filed events for up to 10 companies with a reason to buy from you now: new funding filings, a new chief executive, finance chief, operations chief or general counsel, IPO filings, activist stakes of 5% or more, layoff filings and state layoff notices, crowdfunding raises and new Y Combinator companies. US companies only. Investment funds and real estate filings are left out. Every result carries the record it came from (record_url, for example the SEC filing or the state notice list), so you can check it yourself; the why_now line is written from that record, and fit is a short note on why the company matches what you sell. searched_feeds lists every feed searched with the date of its newest record. Fewer than 10 means fewer were found; the list is never padded. Costs 1 credit when companies come back; a search that finds none costs nothing. The same search is free to try at https://mentionfox.com/buyers. Plans and credits: https://mentionfox.com/pricing

NameRequiredDescriptionDefault
urlYesThe website of the business you sell for, for example acme.com.
daysNoHow far back to look: 30 or 90 days.
limitNoAt most this many companies.
stateNoOptional. A two-letter US state code (for example TX) to keep only companies based there.
trigger_typesNoOptional. Only these kinds of event (layoff covers layoff filings and state layoff notices). Left out, the kinds that fit what you sell are chosen for you.

Output Schema

NameRequiredDescription
okNoTrue when the search ran.
daysNoHow many days back the search looked.
countNoHow many companies came back (never padded to 10).
errorNoPresent when the call could not do the work; says why and that nothing was charged where that is so.
offerNoWhat you sell, as read from that website.
domainNoThe website read to learn what you sell.
statusNoWhy there is no list, when there is none.
messageNoA plain note about the answer, for example why candidates were returned instead of a result.
resultsNoEach company: name, the event, why_now, fit and record_url, the record it came from.
pricing_noteNoWhat this call cost and what a repeat costs.
searched_feedsNoEvery feed searched, with the date of its newest record.
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.
see_it_on_the_webNoThe same search on mentionfox.com.

TDQS

A4.6/5.0
Behavior5/5

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

Annotations only declare read-only, idempotent, open-world behavior; the description adds real substance on top: 1 credit charged only when results come back, zero cost on empty searches, results never padded, provenance via record_url, and searched_feeds exposing which feeds were queried and their freshness. That is exactly the kind of cost/coverage disclosure annotations cannot carry.

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 required action, then behavior, then cost — a sensible order with little filler. It loses a point for re-listing every trigger type already enumerated in the schema and for the trailing promotional links (free trial, pricing) that are not needed to invoke the tool correctly.

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?

For a 5-parameter, open-world search with an output schema, everything an agent needs is present: input meaning, geographic and category limits, default trigger selection, result-size honesty, cost model, and field-level meaning of the return. The output schema makes the return-value explanation optional, so its inclusion is surplus rather than a requirement.

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, but the description adds meaning the schema does not: it explains that url is read to infer what you sell, that the cap is 10 companies, and crucially that omitting trigger_types makes the service pick event kinds matching your offering rather than defaulting to all. Only the days/state semantics are left entirely to the schema.

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?

States a concrete action and resource: reads your website, then searches recent filed events for up to 10 companies with a buy signal, enumerating the event categories. It is clearly distinguishable from the person-centric siblings (enrich_person, compare_people, get_dossier) without opening any schema.

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?

Tells the agent the required input ('the website of the business you sell for'), scopes results to US companies, and explicitly excludes investment funds and real estate filings. It also points to a free web trial as an alternative route, though it never names a sibling tool or says when not to call this one.

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

get_dossierEverything on file about a personA
Read-onlyIdempotent
Inspect

Everything on file about one person, in sections: what they have done, who they work with, how they are spoken about, what they have written or said in public, and what has been in the news about them lately. Broader than a short brief and not written for any one purpose — this is the file, not the verdict. Use it for "tell me everything about her", "what am I walking into with this person", "is this creator worth working with", "background on him before the call". If you only need an email, ask for their contact details instead — that is far cheaper. If a short written assessment is what you want, ask for a brief. If the name matches more than one person you get the candidates and nothing is charged; nothing is charged when nobody matches.Costs 30 credits the first time, and nothing at all if you have looked this person up before. 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

NameRequiredDescriptionDefault
nameNoThe full name of the person, for example "Jane Doe". Give either name or person_id.
formatNosummary: the most useful sections only. full: every section that has something in it.summary
companyNoOptional. Where they work, so a common name finds the right person, for example "Acme".
refreshNoSet true only to build the file again from scratch instead of returning the one already on file; that is charged again.
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

NameRequiredDescription
nameNoThe person.
depthNoHow full the file is.
errorNoPresent when the call could not do the work; says why and that nothing was charged where that is so.
titleNoTheir current role.
formatNosummary or full, as asked.
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.
photo_urlNoA link to their photo.
share_urlNoA link to the file you can share.
candidatesNoPeople or companies the name could mean, each with an id and enough to tell them apart. Nothing is charged for this list.
word_countNoLength of the file in words.
enriched_atNoWhen the file was last built (ISO date and time).
pricing_noteNoWhat this call cost and what a repeat costs.
credits_chargedNoCredits this call took. 0 when nothing was charged.
markdown_contentNoThe file, as text with headings.
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.
person_profile_idNoThe id of this person's file; pass it to export_report to make a sendable copy.

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already establish read-only, idempotent, non-destructive behavior, and the description adds the parts annotations cannot express: the 30-credit cost, free repeat lookups, no charge on ambiguous or empty name matches, re-charge on refresh, and the prepended MentionFox company check. The cost and ambiguity handling materially change how an agent should plan a call.

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?

Scope and cost are front-loaded, and the routing guidance follows in priority order. It runs long, and the closing pricing URL plus the company-check paragraph are somewhat tangential to the core definition, but nothing is redundant enough to hurt comprehension.

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?

For a multi-parameter, paid, read-only lookup with an output schema available, the description covers scope, cost, ambiguity, refresh semantics, and partial-result behavior. 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 an extra point by explaining the operational consequence of person_id (from an earlier candidate list) and that refresh rebuilds from scratch and is charged again. The format parameter's summary/full trade-off is left entirely to the schema, which is acceptable given full coverage.

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?

The description names a specific resource ('everything on file about one person') and enumerates its sections, then explicitly scopes it against cheaper alternatives: a brief, contact details. An agent can tell what this returns and what it is not without opening the schema.

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 gives concrete trigger phrases ('tell me everything about her', 'background on him before the call') and explicit when-not routing: use contact details if you only need an email, use a brief if you want a short assessment, both flagged as cheaper. That is precisely the when/when-not/alternative structure that leads to correct tool selection.

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

get_full_reportFull written report on one subjectAInspect

The long version: a full written report on one subject, section by section, ending with the sources it drew on. Where the short brief runs to a page, this runs to several thousand words. It is fixed at the moment it is made — it records what the record said on that day and is never edited afterwards, so what you show someone in six months is what you bought. If you want a fresher picture, you ask for a new one: it is written and paid for separately and the old one stays exactly as it was. Asking again for a subject you already have a report on hands you the one you already bought, free. Writing takes a few minutes; if it is still being written when the call comes back you get a link and can return to it. Costs 50 credits and needs the Pro plan. Subject types you can ask for: accelerator (50 credits), company (50 credits), counterparty (50 credits), crypto_coin (50 credits), donor (50 credits), executive (50 credits), expert_witness (50 credits), founder (50 credits), insurance_underwriting (50 credits), investor (50 credits), journalism_person (50 credits), journalist (50 credits), litigation_funder (50 credits), nft_collection (50 credits), pe_firm (50 credits), penny_stock (50 credits), physician (50 credits), pre_ipo_secondary (50 credits), publication (50 credits), source (50 credits), spac_sponsor (50 credits), specific_fund (50 credits), vc_firm (50 credits), wealth_advisor (50 credits). For a company, put its website in company (for example subject "Flock Safety", company "flocksafety.com") and the report starts on that company straight away; a website on its own as the subject works too. If you give only a name and more than one company goes by it, nothing is charged: you get a short list of the companies it could be, each with its website and a line on what it does, and you call again with the right website in company. Use this when someone says "I need the full write-up", "proper due diligence before we commit", "the long one". 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

NameRequiredDescriptionDefault
companyNoOptional. The organisation they are with, or its website, when the name on its own could mean several. For a company report, put the company's website here (for example flocksafety.com) so the report runs on exactly that company without a follow-up question.
subjectYesWho or what the report is about — a person's name, a firm, a publication, or a company name or website.
new_reportNoSet this only when you want a NEW report on a subject you already have one for. It writes and charges for a second report; the earlier one is left untouched. Leaving it off returns the report you already bought, free.
subject_typeYesWhich kind of subject this is. The accepted values are listed in this tool's description; they are read from the live price list, so ask for one of those exactly.

Output Schema

NameRequiredDescription
noteNoA short note about this answer.
errorNoPresent when the call could not do the work; says why and that nothing was charged where that is so.
reportNoThe written brief or report: text, or sections with their sources.
made_atNoWhen it was written (ISO date and time). It is never edited afterwards.
messageNoA plain note about the answer, for example why candidates were returned instead of a result.
subjectNoWho or what the brief or report is about.
candidatesNoCompanies the name could mean, each with its website and a line on what it does.
public_urlNoA link to the formatted page you can share.
upgrade_urlNoWhere to see plans, when the subject type needs a plan the account does not have.
did_you_meanNoThe closest accepted subject type, when the one given was not accepted.
pricing_noteNoWhat this call cost and what a repeat costs.
subject_typeNoThe kind of subject it was written for.
needs_websiteNoTrue when several companies share the name; call again with the website in company.
still_writingNoTrue when a long report is still being written; come back to public_url.
subject_typesNoThe subject types that can be asked for, when the one given was not one of them.
already_boughtNoTrue when this is one you already had, handed back free.
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.

TDQS

A4.5/5.0
Behavior5/5

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

Beyond the annotations, it discloses that the artefact is immutable once written, that a refresh is a separate paid write, that generation takes minutes and may return a link instead of content, that the call costs 50 credits and requires the Pro plan, and that ambiguous subjects are not charged. This is exactly the cost/permission/latency context the annotations (readOnlyHint=false, openWorldHint=true) do not convey.

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

Conciseness3/5

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

It is front-loaded and the immutability rule leads, but it restates that point twice ('never edited afterwards' / 'the old one stays exactly as it was') and lists the same 50-credit price 24 times in the subject_type roster, which is avoidable padding. The required value list earns its place; the repetition does not.

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?

For a paid, non-idempotent, open-world generation call, the description covers cost, plan gating, latency, caching semantics, immutability, disambiguation, and the full enum of subject types, and an output schema exists to cover return shape. Nothing an agent needs to call this correctly is missing.

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 baseline is 3, but the description adds real meaning: it enumerates the 24 accepted subject_type values (the schema defers to the description rather than declaring an enum), explains the company parameter convention with a worked example ('Flock Safety' / 'flocksafety.com'), and clarifies that a bare website works as subject.

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?

The description names a specific verb+resource: a long-form written report on one subject, section by section, ending with sources. It explicitly contrasts itself with 'the short brief' that 'runs to a page' versus several thousand words, so an agent can distinguish this from lighter-weight siblings like get_snapshot or get_dossier.

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?

It gives concrete user phrasings that should trigger this tool ('I need the full write-up', 'proper due diligence before we commit', 'the long one') and spells out the re-request rule (cached report returned free unless new_report is set). It also handles the ambiguous-company case with a defined follow-up flow at no charge. It stops short of naming sibling tools as explicit alternatives, which keeps it from a 5.

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

get_my_recent_researchYour recent research historyA
Read-onlyIdempotent
Inspect

What you have already looked up. Free: nothing is charged. Lists the people you have researched, the write-ups you have had made, and the calls you have run here recently — yours only, nobody else's. Worth calling before you pay for something: if you looked this person up last month, you already have it. Use it for "have I checked this person before", "what did I look at last week", "show me what I have". Nothing is looked up and nothing is charged. Plans and credits: https://mentionfox.com/pricing

NameRequiredDescriptionDefault
limitNoHow many items of each kind to list, 1 to 50. Default 10.

Output Schema

NameRequiredDescription
errorNoPresent when the call could not do the work; says why and that nothing was charged where that is so.
messageNoA plain note about the answer, for example why candidates were returned instead of a result.
summaryNoWhat you have, in a sentence.
pricing_noteNoWhat this call cost and what a repeat costs.
dossier_countNoHow many full files you have.
profile_countNoHow many people you have looked up.
credits_chargedNoCredits this call took. 0 when nothing was charged.
recent_dossiersNoYour most recent full files.
recent_profilesNoThe people you looked up most recently.
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.
recent_connector_invocationsNoYour most recent calls to these tools.

TDQS

A4.4/5.0
Behavior5/5

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

Beyond the read-only and non-destructive annotations, it discloses that the operation is free, performs no new lookup, and exposes only the current user's history. These billing, execution, and data-scope details are directly useful when deciding whether invocation is safe and appropriate.

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

Conciseness3/5

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

The purpose is front-loaded and the examples are easy to scan, but the definition repeats the free/no-charge point and ends with a pricing link that is unnecessary for tool selection or invocation. It is clear but noticeably more verbose than needed.

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?

Together with the complete parameter schema, annotations, and output schema, the description supplies nearly everything needed to invoke this simple zero-required-parameter tool correctly. It could be more complete by defining what 'recently' means or explicitly directing agents to a sibling when they need fresh research or full report contents.

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 sole limit parameter already has complete schema documentation, including its range, default, and per-category behavior. The description adds no further parameter semantics, so the high schema coverage supports the baseline score.

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?

The description clearly identifies a history-listing operation covering researched people, requested write-ups, and previous calls, restricted to the current user. Emphasizing what was already looked up distinguishes it from siblings that perform fresh enrichment, scans, or report retrieval.

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 gives an explicit decision point—call this before paying for research that may already exist—and supplies three concrete natural-language use cases. The statement that nothing new is looked up also helps prevent using it as a substitute for fresh-research tools.

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

get_snapshotShort brief on one subjectAInspect

A short brief on one subject: for a company, its red flags with sources (lawsuits, bankruptcy and SEC filings, executive departures, layoffs), who runs it and who funded it; for a person or a publication, who they are and what the record shows. It is written from what is on the record and returned as text plus a link to a formatted page you can share. Say who the subject is and what kind of subject they are, because the brief is written for the kind: what matters about a founder is not what matters about a doctor. What comes back is about a page: who they are, what the record shows, what stands out, and what to be careful of. Ask for the same subject twice and the second time is free — you are handed the brief already written, unchanged, rather than paying for it again. Nothing is charged when there is no such subject or too little on the record to say anything useful. Subject types you can ask for, and what each costs: company (5 credits), counterparty (5 credits), crypto_coin (5 credits), donor (5 credits), executive (5 credits), expert_witness (5 credits), founder (5 credits), insurance_underwriting (5 credits), investor (5 credits), journalism_person (5 credits), journalist (5 credits), litigation_funder (5 credits), nft_collection (5 credits), pe_firm (5 credits), penny_stock (5 credits), physician (10 credits), pre_ipo_secondary (5 credits), publication (5 credits), source (5 credits), spac_sponsor (5 credits), specific_fund (5 credits), vc_firm (5 credits), wealth_advisor (5 credits). Use this when someone says "who is this", "what should I know before I meet them", "quick read on this firm". For the long version, use get_full_report. 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

NameRequiredDescriptionDefault
companyNoOptional. The organisation they are with, or the domain, when the name on its own could mean several people.
subjectYesWho or what the brief is about — a person's name, a firm, a publication. Add the employer or domain to it if the name alone is common.
new_reportNoSet this only when you want a fresh brief on a subject you already have one for. It writes and charges for a second brief and leaves the earlier one untouched. Leaving it off hands you the brief you already bought, free.
subject_typeYesWhich kind of subject this is. The accepted values are listed in this tool's description, each with its price; they are read from the live price list, so ask for one of those exactly.

Output Schema

NameRequiredDescription
noteNoA short note about this answer.
errorNoPresent when the call could not do the work; says why and that nothing was charged where that is so.
reportNoThe written brief or report: text, or sections with their sources.
made_atNoWhen it was written (ISO date and time). It is never edited afterwards.
messageNoA plain note about the answer, for example why candidates were returned instead of a result.
subjectNoWho or what the brief or report is about.
candidatesNoCompanies the name could mean, each with its website and a line on what it does.
public_urlNoA link to the formatted page you can share.
upgrade_urlNoWhere to see plans, when the subject type needs a plan the account does not have.
did_you_meanNoThe closest accepted subject type, when the one given was not accepted.
pricing_noteNoWhat this call cost and what a repeat costs.
subject_typeNoThe kind of subject it was written for.
needs_websiteNoTrue when several companies share the name; call again with the website in company.
still_writingNoTrue when a long report is still being written; come back to public_url.
subject_typesNoThe subject types that can be asked for, when the one given was not one of them.
already_boughtNoTrue when this is one you already had, handed back free.
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.

TDQS

A4.5/5.0
Behavior4/5

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

Annotations declare readOnlyHint=false, openWorldHint=true, idempotentHint=false, destructiveHint=false, but say nothing about cost. The description fills that gap with per-subject-type pricing, a free cached repeat, and no charge when the subject is unknown or thin — behavior an agent cannot infer from the annotations. It loses a point because the cost table is buried in prose rather than stated as a rule up front, and the interaction between new_report and billing is only fully clear in the schema.

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

Conciseness3/5

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

Purpose and return shape are front-loaded, which is good, but the 23-item inline subject-type price list dominates the middle of the description and is delivered as undifferentiated prose. The free-repeat rule is stated twice in near-identical terms, and the pricing URL trails a sentence that has already moved on to the MentionFox check. It is informative but not tightly structured.

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?

For a paid, open-world research tool with four parameters, the description covers everything an agent needs before spending credits: what it returns (text plus a shareable link), cost per subject type, caching behavior, the zero-result policy, and the sibling alternative. An output schema exists, yet the extra return detail is additive rather than redundant.

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, but the description adds real meaning beyond the schema: it justifies subject_type ('what matters about a founder is not what matters about a doctor') and supplies the full accepted-value list with prices, which the schema itself lacks (no enums). It does not add anything for the optional 'company' parameter beyond what the schema already says.

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?

The description states a concrete verb and artifact (a one-page brief on a single subject) and enumerates what the brief covers for each kind of subject: red flags with sources, leadership, funding, record highlights. It also names the sibling it is not — 'For the long version, use get_full_report' — so an agent can route between the two without opening either schema.

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 gives explicit trigger phrases ('who is this', 'what should I know before I meet them', 'quick read on this firm') and an explicit alternative with the condition that selects it (get_full_report for the long version). It also states the free-repeat and no-charge-on-miss rules, which affect whether the agent should call at all.

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

scan_for_mentionsScan platforms for brand mentionsA
Read-only
Inspect

What people said about something in the last day. Name a brand, a product, a topic or a person and this comes back with the posts, comments, articles and videos that mention it — each one with where it was said, a link to it, and whether it read as positive, negative or neither. It also marks the ones that sound like somebody about to buy, so this is the tool for "who is asking for something like ours". Use it for "what are people saying about us today", "did anyone pick up the launch", "anything new on this topic this week". It looks across 55 places by default and you can narrow that. It does not build a picture of a person — for that, ask for a brief. Costs 3 credits for each place it looks, so a default run of five places is about 15. 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

NameRequiredDescriptionDefault
topicYesThe brand, product, topic or person to look for, for example "Notion" or "AI note-taking".
sourcesNoOptional. Only these places, by name (for example ["reddit", "hackernews"]). Left out, the default set is searched.
hours_backNoHow many hours back to look, 1 to 24. Default 24.

Output Schema

NameRequiredDescription
okNoTrue when the scan ran.
noteNoA note about the scan, for example a place that could not be searched.
errorNoPresent when the call could not do the work; says why and that nothing was charged where that is so.
topicNoWhat was searched for.
messageNoA plain note about the answer, for example why candidates were returned instead of a result.
mentionsNoEach mention: where it was said, a link, the text, the sentiment and whether it sounds like someone about to buy.
pricing_noteNoWhat this call cost and what a repeat costs.
mention_countNoHow many mentions came back.
mentionfox_urlNoThe scan in MentionFox.
credits_chargedNoCredits this call took. 0 when nothing was charged.
sources_scannedNoThe places searched.
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.
credits_charged_totalNoCredits this scan took in total.

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already cover read-only, open-world and non-destructive behavior, but the description adds substantial context the annotations cannot: a credit cost of 3 per source, the automatic MentionFox record check prepended to results, and the absence of person profiling. The one flaw is an internal inconsistency — 'looks across 55 places by default' versus 'a default run of five places is about 15' — which could mislead an agent about default scope and cost.

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

Conciseness3/5

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

The core capability is front-loaded and the example phrasings are useful, but the text is chatty and padded with a pricing URL, credit arithmetic and a restated MentionFox behavior. The contradictory source counts (55 vs five) are wasted-and-confusing content rather than economy.

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?

For a read-only search tool with a full output schema, the description covers costs, default scope, special-case output (MentionFox check), and an exclusion to a sibling. The remaining gap is the unresolved default-source count, which matters because it drives both result breadth and credit spend.

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 description coverage is 100%, so the schema already defines topic, sources and hours_back with examples and bounds. The description adds only a vague 'you can narrow that' for sources and never mentions the hours_back parameter or its 1–24 cap, so it contributes little beyond the structured fields.

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 conveys the resource (posts, comments, articles, videos mentioning a named topic) and the added signals (source, link, sentiment, buyer intent). It also separates itself from sibling tools by stating it 'does not build a picture of a person — for that, ask for a brief.' The verb is delivered indirectly through examples rather than a crisp statement, which keeps it just short of a 5.

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?

Concrete trigger phrases are supplied ('what are people saying about us today', 'did anyone pick up the launch', 'anything new on this topic this week'), plus one explicit exclusion pointing to the person-brief tool. It does not name the sibling tools directly (e.g. get_dossier, find_buyers_now), so the routing is clear in intent but not in exact tool identity.

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

source_checkCheck a source is who they say they areAInspect

Someone says they are a doctor, a lawyer, a broker, a professor, a director of a company. This checks those particular claims against the official lists that would record them. Paste whatever you have — the pitch email, a name, a link — and the claims are read out of it. You get one of four answers: verified, partly verified, could not verify, or contradicted by the record. Under it: each claim that was confirmed, where it was confirmed and a link to the entry; each claim that was not, saying exactly which list was searched and came back empty; and a plain list of what was not checked at all, so a gap looks like a gap instead of a clean bill of health. It will never tell you somebody is fake. There is no such answer, because failing to find someone on a list is not evidence they are lying — plenty of real people are not on the list that would cover them, and "could not verify" means one search, on one day, in one place. What comes back is fixed at the moment it was made and never edited; checking again later produces a new one and leaves the first alone. Use it for "is this person who they say they are", "check this expert before I quote them", "should I trust this pitch", "is this doctor actually registered". Costs 25 credits and takes a few seconds. 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

NameRequiredDescriptionDefault
nameNoOptional. The subject's name, if it is not obvious from the input.
inputYesThe pasted pitch, name, email address or link naming the person to check. Paste it whole — the claims are read out of it.
titleNoOptional. The role or credential they state, if it is not obvious from the input.
employerNoOptional. The organisation they say they are with, if it is not obvious from the input.

Output Schema

NameRequiredDescription
okNoTrue when the check ran and was saved.
tagNoA short code for why a check was refused, when it was.
errorNoPresent when the call could not do the work; says why and that nothing was charged where that is so.
checksNoEach claim checked: what was claimed, where it was looked up, what was found and a link to the entry.
messageNoA plain note about the answer, for example why candidates were returned instead of a result.
subjectNoWho the check is about, as read from the input.
verdictNoOne of: verified, partly verified, could not verify, contradicted by the record.
citationNoA line to cite this check by.
report_idNoId of the saved check. A check is never edited; checking again makes a new one.
created_atNoWhen the check was made (ISO date and time).
report_refNoShort reference to quote for this check.
not_checkedNoClaims that were not checked at all, so a gap reads as a gap.
cost_creditsNoThe price of one check.
pricing_noteNoWhat this call cost and what a repeat costs.
credits_chargedNoCredits this call took. 0 when nothing was charged.
credits_returnedNoCredits given back when the check could not finish.
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.
verdict_sentenceNoThe verdict in one plain sentence.
balance_credits_beforeNoThe credit balance before this check.

TDQS

A4.6/5.0
Behavior5/5

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

Goes well beyond the annotations budget: 25 credits and a few seconds of latency, an immutable snapshot that is never edited and never overwritten by re-checking, and a description of the four-outcome response shape plus the MentionFox prefix behavior. It also proactively discloses the tool's central limitation — "could not verify" means one search on one day in one place — which is exactly the failure mode an agent could misread. Consistent with annotations (non-idempotent, non-destructive, open-world).

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?

Effectively front-loaded: what it checks, what you get back, then the epistemic caveat, then use cases and cost. The anti-overreach paragraph is worth its length given the risk of an agent treating "could not verify" as "fraudulent," though it repeats the same point twice across two sentences. The pricing URL is a minor tail.

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?

Covers everything an agent needs despite an output schema being present: cost, latency, immutability semantics, the meaning of each of the four verdicts, and the conditional MentionFox prefix. Nothing material is left ambiguous for a call with one required free-text parameter.

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 schema already defines all four fields, giving a baseline of 3. The description adds real guidance the schema doesn't: paste the material whole rather than extracting fields, since the claims are parsed out of the input — which explains why name/title/employer are all optional and secondary. It stops short of describing how the optional fields interact with the parsed input.

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?

States a specific verb and resource ("checks those particular claims against the official lists that would record them") scoped to a concrete class of claims: doctor, lawyer, broker, professor, company director. This is clearly distinct from siblings like enrich_person or get_dossier, which build a profile rather than adjudicate credential claims.

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?

Gives several concrete trigger phrasings ("is this person who they say they are", "check this expert before I quote them", "should I trust this pitch") that map intent to the tool. It also bounds the answer set (it will never conclude someone is fake), which steers interpretation. What's missing is explicit routing to siblings — nothing says when to prefer enrich_person or compare_people instead.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 10 tool updates
    • Changedcompare_people1 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."
        +}
    • Changedenrich_person1 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."
        +}
    • Changedexport_report1 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."
        +}
    • Changedfind_buyers_now1 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."
        +}
    • Changedget_dossier1 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."
        +}
    • Changedget_full_report1 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."
        +}
    • Changedget_my_recent_research1 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."
        +}
    • Changedget_snapshot1 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."
        +}
    • Changedscan_for_mentions1 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."
        +}
    • Changedsource_check1 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. 10 tool updates
    • Changedcompare_people2 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"
        +}
    • Changedenrich_person4 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"
        +}
    • Changedexport_report11 fields changed
      • changedInput schema / properties / branding / description
        Previous value: -"Optional white-label branding override"New value: +"Optional. Your own branding on the file, so it goes out as your work."
      • addedInput schema / properties / branding / properties / company_name / description
        Added value: +"Your company name, shown in the header."
      • addedInput schema / properties / branding / properties / font_family / description
        Added value: +"A font name, for example Inter."
      • addedInput schema / properties / branding / properties / footer_text / description
        Added value: +"A line for the footer, for example your address or a disclaimer."
      • addedInput schema / properties / branding / properties / logo_url / description
        Added value: +"A link to your logo image, for example https://example.com/logo.png."
      • addedInput schema / properties / branding / properties / primary_color / description
        Added value: +"Main colour as a hex code, for example #0F172A."
      • addedInput schema / properties / branding / properties / secondary_color / description
        Added value: +"Accent colour as a hex code, for example #F27A3A."
      • addedInput schema / properties / format / description
        Added value: +"html: a web page. pdf: a print-ready page to save as a PDF. markdown: plain text. Default html."
      • changedInput schema / properties / report_id / description
        Previous value: -"For dossier: person_profile_id. For compare: comma-separated names. For others: the eval/report row id."New value: +"Which one. For a dossier, the person id from get_dossier (person_profile_id). For a compare, the names separated by commas, for example \"Ada Lovelace, Alan Turing\". For the others, the id the earlier result gave."
      • addedInput schema / properties / report_type / description
        Added value: +"What to turn into a file: dossier (the file on one person), compare (a side-by-side), or one of the evaluation types."
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "content": {
        +      "description": "The file itself (the page or the text).",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "credits_charged": {
        +      "description": "Credits this call took. 0 when nothing was charged.",
        +      "type": [
        +        "number",
        +        "null"
        +      ]
        +    },
        +    "download_url": {
        +      "description": "A link to download the file.",
        +      "type": [
        +        "string",
        +        "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"
        +      ]
        +    },
        +    "file_size_bytes": {
        +      "description": "Size of the file.",
        +      "type": [
        +        "number",
        +        "null"
        +      ]
        +    },
        +    "format": {
        +      "description": "html, pdf or markdown.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "message": {
        +      "description": "A plain note about the answer, for example why candidates were returned instead of a result.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "pricing_note": {
        +      "description": "What this call cost and what a repeat costs.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "report_type": {
        +      "description": "What was turned into a file.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "summary": {
        +      "description": "What the file contains.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "title": {
        +      "description": "The file's title.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    }
        +  },
        +  "title": "A sendable file",
        +  "type": "object"
        +}
    • Changedfind_buyers_now1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "count": {
        +      "description": "How many companies came back (never padded to 10).",
        +      "type": [
        +        "number",
        +        "null"
        +      ]
        +    },
        +    "credits_charged": {
        +      "description": "Credits this call took. 0 when nothing was charged.",
        +      "type": [
        +        "number",
        +        "null"
        +      ]
        +    },
        +    "days": {
        +      "description": "How many days back the search looked.",
        +      "type": [
        +        "number",
        +        "null"
        +      ]
        +    },
        +    "domain": {
        +      "description": "The website read to learn what you sell.",
        +      "type": [
        +        "string",
        +        "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"
        +      ]
        +    },
        +    "message": {
        +      "description": "A plain note about the answer, for example why candidates were returned instead of a result.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "offer": {
        +      "description": "What you sell, as read from that website.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "ok": {
        +      "description": "True when the search ran.",
        +      "type": [
        +        "boolean",
        +        "null"
        +      ]
        +    },
        +    "pricing_note": {
        +      "description": "What this call cost and what a repeat costs.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "results": {
        +      "description": "Each company: name, the event, why_now, fit and record_url, the record it came from.",
        +      "type": [
        +        "array",
        +        "null"
        +      ]
        +    },
        +    "searched_feeds": {
        +      "description": "Every feed searched, with the date of its newest record.",
        +      "type": [
        +        "array",
        +        "null"
        +      ]
        +    },
        +    "see_it_on_the_web": {
        +      "description": "The same search on mentionfox.com.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "status": {
        +      "description": "Why there is no list, when there is none.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    }
        +  },
        +  "title": "Companies with a filed reason to buy",
        +  "type": "object"
        +}
    • Changedget_dossier6 fields changed
      • changedInput schema / properties / company / description
        Previous value: -"Company name — disambiguation hint when name is ambiguous."New value: +"Optional. Where they work, so a common name finds the right person, for example \"Acme\"."
      • changedInput schema / properties / format / description
        Previous value: -"summary = the most actionable subset; full = every populated section"New value: +"summary: the most useful sections only. full: every section that has something in it."
      • 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."
      • changedInput schema / properties / refresh / description
        Previous value: -"Force a fresh enrichment instead of reading cache (charges 30 cr)."New value: +"Set true only to build the file again from scratch instead of returning the one already on file; that is charged again."
      • 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"
        +      ]
        +    },
        +    "depth": {
        +      "description": "How full the file is.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "enriched_at": {
        +      "description": "When the file was last built (ISO date and time).",
        +      "type": [
        +        "string",
        +        "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"
        +      ]
        +    },
        +    "format": {
        +      "description": "summary or full, as asked.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "markdown_content": {
        +      "description": "The file, as text with headings.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "message": {
        +      "description": "A plain note about the answer, for example why candidates were returned instead of a result.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "name": {
        +      "description": "The person.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "person_profile_id": {
        +      "description": "The id of this person's file; pass it to export_report to make a sendable copy.",
        +      "type": [
        +        "string",
        +        "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"
        +      ]
        +    },
        +    "share_url": {
        +      "description": "A link to the file you can share.",
        +      "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"
        +      ]
        +    },
        +    "title": {
        +      "description": "Their current role.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "word_count": {
        +      "description": "Length of the file in words.",
        +      "type": [
        +        "number",
        +        "null"
        +      ]
        +    }
        +  },
        +  "title": "Everything on file about a person",
        +  "type": "object"
        +}
    • Changedget_full_report1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "already_bought": {
        +      "description": "True when this is one you already had, handed back free.",
        +      "type": [
        +        "boolean",
        +        "null"
        +      ]
        +    },
        +    "candidates": {
        +      "description": "Companies the name could mean, each with its website and a line on what it does.",
        +      "type": [
        +        "array",
        +        "null"
        +      ]
        +    },
        +    "credits_charged": {
        +      "description": "Credits this call took. 0 when nothing was charged.",
        +      "type": [
        +        "number",
        +        "null"
        +      ]
        +    },
        +    "did_you_mean": {
        +      "description": "The closest accepted subject type, when the one given was not accepted.",
        +      "type": [
        +        "string",
        +        "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"
        +      ]
        +    },
        +    "made_at": {
        +      "description": "When it was written (ISO date and time). It is never edited afterwards.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "message": {
        +      "description": "A plain note about the answer, for example why candidates were returned instead of a result.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "needs_website": {
        +      "description": "True when several companies share the name; call again with the website in company.",
        +      "type": [
        +        "boolean",
        +        "null"
        +      ]
        +    },
        +    "note": {
        +      "description": "A short note about this answer.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "pricing_note": {
        +      "description": "What this call cost and what a repeat costs.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "public_url": {
        +      "description": "A link to the formatted page you can share.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "report": {
        +      "description": "The written brief or report: text, or sections with their sources."
        +    },
        +    "still_writing": {
        +      "description": "True when a long report is still being written; come back to public_url.",
        +      "type": [
        +        "boolean",
        +        "null"
        +      ]
        +    },
        +    "subject": {
        +      "description": "Who or what the brief or report is about.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "subject_type": {
        +      "description": "The kind of subject it was written for.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "subject_types": {
        +      "description": "The subject types that can be asked for, when the one given was not one of them.",
        +      "type": [
        +        "array",
        +        "null"
        +      ]
        +    },
        +    "upgrade_url": {
        +      "description": "Where to see plans, when the subject type needs a plan the account does not have.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    }
        +  },
        +  "title": "Full report on one subject",
        +  "type": "object"
        +}
    • Changedget_my_recent_research2 fields changed
      • addedInput schema / properties / limit / description
        Added value: +"How many items of each kind to list, 1 to 50. Default 10."
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "credits_charged": {
        +      "description": "Credits this call took. 0 when nothing was charged.",
        +      "type": [
        +        "number",
        +        "null"
        +      ]
        +    },
        +    "dossier_count": {
        +      "description": "How many full files you have.",
        +      "type": [
        +        "number",
        +        "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"
        +      ]
        +    },
        +    "message": {
        +      "description": "A plain note about the answer, for example why candidates were returned instead of a result.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "pricing_note": {
        +      "description": "What this call cost and what a repeat costs.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "profile_count": {
        +      "description": "How many people you have looked up.",
        +      "type": [
        +        "number",
        +        "null"
        +      ]
        +    },
        +    "recent_connector_invocations": {
        +      "description": "Your most recent calls to these tools.",
        +      "type": [
        +        "array",
        +        "null"
        +      ]
        +    },
        +    "recent_dossiers": {
        +      "description": "Your most recent full files.",
        +      "type": [
        +        "array",
        +        "null"
        +      ]
        +    },
        +    "recent_profiles": {
        +      "description": "The people you looked up most recently.",
        +      "type": [
        +        "array",
        +        "null"
        +      ]
        +    },
        +    "summary": {
        +      "description": "What you have, in a sentence.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    }
        +  },
        +  "title": "Your recent research",
        +  "type": "object"
        +}
    • Changedget_snapshot1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "already_bought": {
        +      "description": "True when this is one you already had, handed back free.",
        +      "type": [
        +        "boolean",
        +        "null"
        +      ]
        +    },
        +    "candidates": {
        +      "description": "Companies the name could mean, each with its website and a line on what it does.",
        +      "type": [
        +        "array",
        +        "null"
        +      ]
        +    },
        +    "credits_charged": {
        +      "description": "Credits this call took. 0 when nothing was charged.",
        +      "type": [
        +        "number",
        +        "null"
        +      ]
        +    },
        +    "did_you_mean": {
        +      "description": "The closest accepted subject type, when the one given was not accepted.",
        +      "type": [
        +        "string",
        +        "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"
        +      ]
        +    },
        +    "made_at": {
        +      "description": "When it was written (ISO date and time). It is never edited afterwards.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "message": {
        +      "description": "A plain note about the answer, for example why candidates were returned instead of a result.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "needs_website": {
        +      "description": "True when several companies share the name; call again with the website in company.",
        +      "type": [
        +        "boolean",
        +        "null"
        +      ]
        +    },
        +    "note": {
        +      "description": "A short note about this answer.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "pricing_note": {
        +      "description": "What this call cost and what a repeat costs.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "public_url": {
        +      "description": "A link to the formatted page you can share.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "report": {
        +      "description": "The written brief or report: text, or sections with their sources."
        +    },
        +    "still_writing": {
        +      "description": "True when a long report is still being written; come back to public_url.",
        +      "type": [
        +        "boolean",
        +        "null"
        +      ]
        +    },
        +    "subject": {
        +      "description": "Who or what the brief or report is about.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "subject_type": {
        +      "description": "The kind of subject it was written for.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "subject_types": {
        +      "description": "The subject types that can be asked for, when the one given was not one of them.",
        +      "type": [
        +        "array",
        +        "null"
        +      ]
        +    },
        +    "upgrade_url": {
        +      "description": "Where to see plans, when the subject type needs a plan the account does not have.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    }
        +  },
        +  "title": "Short brief on one subject",
        +  "type": "object"
        +}
    • Changedscan_for_mentions4 fields changed
      • addedInput schema / properties / hours_back / description
        Added value: +"How many hours back to look, 1 to 24. Default 24."
      • changedInput schema / properties / sources / description
        Previous value: -"Optional source filter (default = all 50+)"New value: +"Optional. Only these places, by name (for example [\"reddit\", \"hackernews\"]). Left out, the default set is searched."
      • changedInput schema / properties / topic / description
        Previous value: -"Topic, brand, or person to scan for"New value: +"The brand, product, topic or person to look for, for example \"Notion\" or \"AI note-taking\"."
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "credits_charged": {
        +      "description": "Credits this call took. 0 when nothing was charged.",
        +      "type": [
        +        "number",
        +        "null"
        +      ]
        +    },
        +    "credits_charged_total": {
        +      "description": "Credits this scan took in total.",
        +      "type": [
        +        "number",
        +        "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"
        +      ]
        +    },
        +    "mention_count": {
        +      "description": "How many mentions came back.",
        +      "type": [
        +        "number",
        +        "null"
        +      ]
        +    },
        +    "mentionfox_url": {
        +      "description": "The scan in MentionFox.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "mentions": {
        +      "description": "Each mention: where it was said, a link, the text, the sentiment and whether it sounds like someone about to buy.",
        +      "type": [
        +        "array",
        +        "null"
        +      ]
        +    },
        +    "message": {
        +      "description": "A plain note about the answer, for example why candidates were returned instead of a result.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "note": {
        +      "description": "A note about the scan, for example a place that could not be searched.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "ok": {
        +      "description": "True when the scan ran.",
        +      "type": [
        +        "boolean",
        +        "null"
        +      ]
        +    },
        +    "pricing_note": {
        +      "description": "What this call cost and what a repeat costs.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "sources_scanned": {
        +      "description": "The places searched.",
        +      "type": [
        +        "array",
        +        "null"
        +      ]
        +    },
        +    "topic": {
        +      "description": "What was searched for.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    }
        +  },
        +  "title": "Mentions found",
        +  "type": "object"
        +}
    • Changedsource_check1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "balance_credits_before": {
        +      "description": "The credit balance before this check."
        +    },
        +    "checks": {
        +      "description": "Each claim checked: what was claimed, where it was looked up, what was found and a link to the entry.",
        +      "type": [
        +        "array",
        +        "null"
        +      ]
        +    },
        +    "citation": {
        +      "description": "A line to cite this check by.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "cost_credits": {
        +      "description": "The price of one check.",
        +      "type": [
        +        "number",
        +        "null"
        +      ]
        +    },
        +    "created_at": {
        +      "description": "When the check was made (ISO date and time).",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "credits_charged": {
        +      "description": "Credits this call took. 0 when nothing was charged.",
        +      "type": [
        +        "number",
        +        "null"
        +      ]
        +    },
        +    "credits_returned": {
        +      "description": "Credits given back when the check could not finish.",
        +      "type": [
        +        "number",
        +        "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"
        +      ]
        +    },
        +    "message": {
        +      "description": "A plain note about the answer, for example why candidates were returned instead of a result.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "not_checked": {
        +      "description": "Claims that were not checked at all, so a gap reads as a gap.",
        +      "type": [
        +        "array",
        +        "null"
        +      ]
        +    },
        +    "ok": {
        +      "description": "True when the check ran and was saved.",
        +      "type": [
        +        "boolean",
        +        "null"
        +      ]
        +    },
        +    "pricing_note": {
        +      "description": "What this call cost and what a repeat costs.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "report_id": {
        +      "description": "Id of the saved check. A check is never edited; checking again makes a new one.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "report_ref": {
        +      "description": "Short reference to quote for this check.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "subject": {
        +      "description": "Who the check is about, as read from the input."
        +    },
        +    "tag": {
        +      "description": "A short code for why a check was refused, when it was.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "verdict": {
        +      "description": "One of: verified, partly verified, could not verify, contradicted by the record.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "verdict_sentence": {
        +      "description": "The verdict in one plain sentence.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    }
        +  },
        +  "title": "Source check result",
        +  "type": "object"
        +}
  3. 1 tool update
    • Addedfind_buyers_now
  4. 1 tool update
    • Changedget_full_report2 fields changed
      • changedInput schema / properties / company / description
        Previous value: -"Optional. The organisation they are with, or the domain, when the name on its own could mean several people."New value: +"Optional. The organisation they are with, or its website, when the name on its own could mean several. For a company report, put the company's website here (for example flocksafety.com) so the report runs on exactly that company without a follow-up question."
      • changedInput schema / properties / subject / description
        Previous value: -"Who or what the report is about — a person's name, a firm, a publication."New value: +"Who or what the report is about — a person's name, a firm, a publication, or a company name or website."
  5. 9 tool updates
    • First observedcompare_people
    • First observedenrich_person
    • First observedexport_report
    • First observedget_dossier
    • First observedget_full_report
    • First observedget_my_recent_research
    • First observedget_snapshot
    • First observedscan_for_mentions
    • First observedsource_check

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables screening companies or people against OFAC, UN, EU and UK sanctions lists, looking up SEC EDGAR records, checking domain age and email records, and compiling due-diligence reports with source links and a clear, review, or hold verdict.
    -
  • F
    license
    Not graded
    quality
    C
    maintenance
    Cross-checks company/entity records against 23 national commercial registries (GLEIF, SIRENE, VIES, TED, Companies House) to flag missing or inconsistent registrations. Free tier: 100 calls/month via hosted API.
    -
  • A
    license
    A
    quality
    B
    maintenance
    Domain and company intelligence for AI agents. Enables vetting companies, qualifying leads, and mapping targets from free public data without API keys.
    6
    2 npm
    1
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources