# PeopleSearch.im

> People search, LinkedIn lookup and verified work emails for AI agents. First search needs no login.

- name: im.peoplesearch/email-finder
- version: 1.2.0
- connection class: R0 (autonomous)
- trust: 83/100 flags: no-repository
- quality: 83/100 (good)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/im.peoplesearch%2Femail-finder
- tools: https://api.protogrid.dev/v1/servers/im.peoplesearch%2Femail-finder/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "email-finder": {
      "type": "http",
      "url": "https://peoplesearch.im/api/mcp",
      "headers": {
        "Authorization": "Bearer ${EMAIL_FINDER_TOKEN}"
      }
    }
  }
}
```

Placeholders to fill: `${EMAIL_FINDER_TOKEN}`.

## Trust

- hygiene: 80
- liveness: 100
- freshness: 100
- provenance: 55
- drivers: +dns-namespace +website +reachable +uptime-100% +updated-8d-ago -no-repository
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 83/100 (good)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 93 (weight 30)

- pass `tools.descriptions`: every tool has a description
- warn `tools.description_length`: 1 tools have descriptions over 1,024 characters, which crowds the context
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 13 of 13 tools declare readOnlyHint or destructiveHint
- pass `tools.directory_hints`: every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
- pass `tools.token_cost`: about 5,807 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 75 (weight 15)

- warn `stability.changes`: 20 tool changes in 30 days
- pass `stability.rug_pull`: no tool changed its meaning under the same name

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 13, about 5,807 tokens to load them all
- tool set hash: 4e90e4b4f5526118394fdc0b1cbaa9ec
- tools last changed: 2026-10-19T03:24:18.838Z
- badge: [![protogrid quality](https://protogrid.dev/badge/im.peoplesearch/email-finder.svg)](https://protogrid.dev/servers/im.peoplesearch/email-finder)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-10-19 `find_people` changed (inputSchema)
- 2026-10-19 `people_search` changed (inputSchema)
- 2026-10-18 `find_people` changed (inputSchema)
- 2026-10-18 `people_search` changed (inputSchema)
- 2026-10-17 `find_people` changed (inputSchema)
- 2026-10-17 `people_search` changed (inputSchema)
- 2026-10-13 `company_search` changed (description, inputSchema)
  - before: Search a global company database in plain English (for example 'Series B fintech companies in London with 50-200 employees') and get matching companies with industry, size, location and website. Searching companies is FREE and spends no credits. It also works before a PeopleSearch.im account is connected: without one it returns up to 3 companies per search, up to 10 searches a day.
  - after: Search a global company database and get matching companies with industry, size, location and website. Three ways to ask: a company's website ('warmly.ai') returns that one company, the most exact way to identify one; a company's name ('Warmly') returns the companies of that name; a description in plain English ('Series B fintech companies in London with 50-200 employees') returns the companies that fit it. Searching companies is FREE and spends no credits. It also works before a PeopleSearch.im account is connected: without one it returns up to 3 companies per search, up to 10 searches a day.
- 2026-10-13 `find_people` changed (inputSchema)
- 2026-10-13 `people_search` changed (inputSchema)
- 2026-10-11 `company_search` changed (description)
  - before: Search a global company database in plain English (for example 'Series B fintech companies in London with 50-200 employees') and get matching companies with industry, size, location and website. Searching companies is FREE and spends no credits.
  - after: Search a global company database in plain English (for example 'Series B fintech companies in London with 50-200 employees') and get matching companies with industry, size, location and website. Searching companies is FREE and spends no credits. It also works before a PeopleSearch.im account is connected: without one it returns up to 3 companies per search, up to 10 searches a day.

Full history: https://api.protogrid.dev/v1/servers/im.peoplesearch%2Femail-finder/changes

## Remotes

- https://peoplesearch.im/api/mcp (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

_none_

## Tools (13)

- `check_credits`: Return the current credit balance for the API key making the request. Free and read-only. Use it before a large find_people call to confirm there are enough credits.
- `company_search`: Search a global company database and get matching companies with industry, size, location and website. Three ways to ask: a company's website ('warmly.ai') returns that one company, the most exact way to identify one; a company's name ('Warmly') returns the companies of that name; a description in plain English ('Series B fintech companies in London with 50-200 employees') returns the companies that fit it. Searching companies is FREE and spends no credits. It also works before a PeopleSearch.im account is connected: without one it returns up to 3 companies per search, up to 10 searches a day.
- `fetch_email`: Look up the verified professional (work) email for a person you have already unlocked with find_people (or reveal_profile). Pass their `id`. Spends 1 credit, refunded automatically if no email is found. The lookup is live: if it returns emailStatus 'searching', call fetch_email again with the same id (no extra charge) to collect the result once it resolves. Returns a professional address, never a personal one; not every person has a findable work email.
- `find_company_emails`: Given a company domain or name, return the contactable role-based email addresses discovered for that organization (such as contact@, sales@, support@), each with a confidence level. Use this for reaching a company inbox, not a specific named person (for a named person use find_people or find_linkedin_profile). Spends 2 credits, refunded if none are found.
- `find_linkedin_profile`: Find the LinkedIn profile URL for a named person. Provide their first and last name; adding the company or domain sharply improves the match. Spends 2 credits, refunded if no confident match is found.
- `find_people`: The list-building tool. Runs a people search exactly as people_search does (the same `filters` or `query`, including its automatic broadening, reported in `broadenedBy`) and unlocks up to `count` full profiles in ONE atomic charge: 1 credit per newly unlocked person, and anyone you already own is free. Pass the same filters you checked with people_search, so you pay for the people you saw. Returns each person's real name, title, company, location, LinkedIn URL and an `id`. Emails are NOT fetched here (that is a separate credit): after unlocking, call fetch_email with each person's `id` to get their verified work email. WARNING for autonomous use: this can spend up to `count` credits in a single call, so choose `count` deliberately and confirm with the user before large batches. Returns an out-of-credits error instead of overspending.
- `find_work_email`: Find and verify the professional (work) email of a person you can name: give their first name, last name and the company they work at (its domain, such as acme.com, matches best; a company name also works). Returns the address with a confidence label (Verified or Likely) and their LinkedIn profile when it can be matched. Spends 2 credits, refunded automatically if no email is found. People who asked to be removed from PeopleSearch.im are never looked up. To find people you cannot name yet, use people_search or find_people, then fetch_email.
- `lookup_company`: Turn a LinkedIn company URL into firmographic data: industry, size, location and website. Spends 1 credit, refunded if the company cannot be retrieved.
- `lookup_linkedin_profile`: Turn a LinkedIn profile URL into clean structured data: name, current role and company, and location. Spends 2 credits, refunded if the profile cannot be retrieved.
- `people_search`: Search a global professional database for people and get a sample of matches plus the true total match count. Ask with `filters` (recommended: state each part exactly, for example {"job_titles": ["M&A Associate", "Investment Banking Associate"], "locations": ["Frankfurt", "Munich"], "industries": ["Investment Banking"], "schools": ["University of Mannheim"]}) or with `query`, a plain-English sentence that is parsed for you (for example 'Heads of Marketing at Series B SaaS in New York'). Results are masked previews (a masked name, role, industry, company size and location) and each one carries an opaque `token`. Searching is FREE and spends no credits: use it to check that the right people come back before you pay, and refine the filters if they do not. To look up one named person, give `first_name` and `last_name` with their company or company domain when known. For a kind of employer no industry names exactly, use `company_keywords` (words its own description contains, for example ["hostel"] or ["SEO"] with industries ["Marketing Services"]). If nothing matches exactly, the search broadens itself: a job title is read more broadly first (`broadenedRole` gives the title as asked and as searched), then the least essential filters are dropped and `broadenedBy` names them; `ignored` lists any filter that could not be applied. To get a person's real name, LinkedIn and verified email, pass their token to reveal_profile, or use find_people with the same filters to unlock a batch in one call. It also works before a PeopleSearch.im account is connected: without one it returns up to 3 previews per search, up to 10 searches a day.
- `reveal_profile`: Unlock ONE person from a people_search result. Pass the `token` from that result. Spends 1 credit and returns the full profile: real name, current title and company, location and LinkedIn URL. Set `include_email` to true to also look up their verified professional (work) email in the same call, which spends 1 more credit that is refunded if no email is found. Revealing the same person again is free (idempotent). The email is looked up live and may take a moment: if it returns emailStatus 'searching', call reveal_profile again with the same token (no extra charge) to collect it.
- `reverse_email_lookup`: Turn a professional email address into the real person behind it and their LinkedIn profile. Best for work emails; free-mailbox addresses often have no public profile to match. Spends 13 credits (this is the single most expensive lookup), refunded automatically if no match is found.
- `verify_email`: Check whether an email address exists and is safe to send to, before it bounces. Returns a deliverability verdict (deliverable, undeliverable, or unknown) without sending anything. Spends 1 credit, refunded if no verdict can be reached.
