vet_personBackground-check a subject from public sources.
When your agent is handed a name — a candidate, a co-investor, a sales lead, a journalist asking for comment — it needs more than a Google search. vet_person pulls public-record signal, employment history, social presence, recent activity and risk markers from across the open web, scores them, and returns one structured object the agent can reason over. One MCP call. Five credits. Two seconds.
When to call this tool
Hand an agent a name and a context, and it almost always wants a structured background read before it does anything else. Recruiting flows want to know if the candidate's stated employment matches the public record. Sales agents want to know whether the lead is at a stable company and whether they've publicly recommended a competitor. Journalism pipelines want to know whether the source is who they claim to be. Investment workflows want a public-record sweep before a first call. vet_person is the canonical first step for any of these flows. It is intentionally conservative: it never invents claims, it surfaces sources for every assertion, and it flags when its own confidence is low.
Internally the tool composes seven sub-queries — name resolution, employment, education, social, mention scan, risk surface, citation — and merges them into a deduplicated, source-cited summary. The agent gets back a single object; the work behind it is a small fan-out the agent never sees.
Input schema
{ "name": "string // required, full name as best known", "context_company": "string // optional, narrows disambiguation", "context_role": "string // optional, e.g. 'CFO' or 'staff writer'", "depth": "enum: 'quick' | 'standard' | 'deep' // default 'standard'", "include_risk": "boolean // default true" }
Output schema
{ "subject": { "name", "resolved_handle", "confidence" }, "summary": "string // 4-8 sentence narrative summary", "employment": [{ "company", "role", "start", "end", "source_url" }], "social_presence": [{ "platform", "handle", "followers", "verified" }], "recent_activity": [{ "date", "platform", "summary", "link" }], "risk_markers": [{ "type", "severity", "detail", "source_url" }], "score": { "trust": 0-100, "relevance": 0-100 }, "sources": ["url"], "credits_used": 5 }
Example invocations
1. Claude Desktop
With the FoxAPIs MCP server registered in claude_desktop_config.json, just ask Claude in plain language. The tool fires automatically.
// User prompt Vet Marc Andreessen for me before our 4pm call. Focus on his last 12 months of public commentary. // Claude calls vet_person internally vet_person({ "name": "Marc Andreessen", "context_company": "Andreessen Horowitz", "depth": "standard" })
2. ChatGPT custom GPT
Add the FoxAPIs action to a custom GPT. The Action schema includes vet_person directly. The model picks it whenever a user asks for a profile read.
// In the GPT's instructions
When the user asks you to "vet", "background", "look up" or
"profile" a person, call vet_person before responding. Cite
each claim from the sources array.
3. Cursor MCP
In Cursor's MCP settings, point at the FoxAPIs endpoint. Then ask Cursor to scaffold a vetting CLI:
// In Cursor
Use the foxapis vet_person tool to build a CLI:
node vet.js "Saul Garcia" --depth deep --json > saul.json
4. n8n node (in progress)
The dedicated n8n node is being built in a sibling repo. Until it ships, use the generic HTTP Request node against the MCP JSON-RPC endpoint:
{ "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "vet_person", "arguments": { "name": "Patrick Collison" } } }
5. Raw curl
curl -X POST https://www.mentionfox.com/mcp \ -H "Authorization: Bearer $FOXAPIS_KEY" \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"vet_person","arguments":{"name":"Tobi Lütke","depth":"quick"}}}'
Sample output (real, redacted)
{ "subject": { "name": "Tobi Lütke", "resolved_handle": "@tobi", "confidence": 0.97 }, "summary": "CEO and co-founder of Shopify since 2004. Active engineer-CEO. Public commentary clusters around developer culture, AI tooling, and remote work. No surfaced risk markers in public record.", "employment": [ { "company": "Shopify", "role": "CEO", "start": "2004", "end": null } ], "social_presence": [ { "platform": "x", "handle": "@tobi", "followers": 540000, "verified": true } ], "score": { "trust": 94, "relevance": 88 }, "credits_used": 5 }
Credit cost & rate limits
Standard depth is 5 credits. Quick is 3. Deep is 9 (it triggers an extra mention-scan pass). Rate limit is 60 requests per minute per key, with a soft burst window of 90/min for the first 60 seconds. Hard cap on a single key is 1,000 vet_person calls per 24 hours; contact us if you need more.
Error codes & recovery
404 NOT_RESOLVEDThe name could not be uniquely resolved. Retry with a context_company or context_role.409 AMBIGUOUSMultiple plausible matches. Response includes a candidates array; let the agent pick and re-call.422 INSUFFICIENT_SIGNALSubject has too thin a public footprint to score. Use depth: 'deep' or accept the partial response.429 RATE_LIMITEDBack off 30s. The header x-foxapis-retry-after tells you exactly how long.503 UPSTREAM_SLOWOne source is timing out. Retry with the same arguments; the tool will route around it.Privacy & legal
Every claim returned by vet_person is from a public source and is delivered with the source URL. The tool does not access paywalled court records, credit data, or any consumer-reporting information regulated under the FCRA. It is not a substitute for a regulated background check. Use it for what it is — a fast, agent-callable, public-source first-pass.