Personal Email to Company Resolver MCP Server
Finds GitHub accounts whose public commits are signed with the given email address, using an optional GitHub token, to infer identity and employer information.
Runs exact Google searches for addresses without an employer to gather public web evidence and improve employer resolution.
Reads public Gravatar profiles for a given email address to help identify the person's name and likely employer.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Personal Email to Company Resolver MCP ServerWho does alice.jones@gmail.com work for? Show evidence."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Personal Email to Company Resolver MCP Server
Give it a free mail address (Gmail, Outlook, iCloud, Yahoo, and about 140 more consumer domains). Each run reads the public Gravatar profile for the address, the GitHub account whose public commits are signed with it, and, for a name with an employer, Mamba Labs Person LinkedIn URL Resolver. It returns one row per address with the person's name, likely employer, employer domain, and a confidence. It never contacts the mailbox and never opens LinkedIn.
What's Inside
Related MCP server: person-enrichment
What it does
match_statusisresolved(employer at 0.75 or more, billed),weak,name_only,corporate_email,not_found,invalid_email, orblocked, and onlyresolvedis billed.employer_sourcesays where the employer came from:gravatar,github,web_result,linkedin_headline, oremail_domain.evidence_urlslists the public pages.The LinkedIn step raises the confidence when a LinkedIn result shows the employer as current and lowers it when it shows it as former.
All of the work runs on Apify. This package is a thin client that starts the actor run, waits for it, and hands back the dataset rows.
Quick start
You need Node.js 18 or newer and an Apify account with an API token.
Add this to your Claude Desktop config (claude_desktop_config.json), Cursor, or any MCP client:
{
"mcpServers": {
"mamba-personal-email-to-company-resolver": {
"command": "npx",
"args": [
"-y",
"@mambalabsdev/mcp-personal-email-to-company-resolver"
],
"env": {
"APIFY_TOKEN": "your-apify-token"
}
}
}
}Restart the client. The resolve_personal_email_employer tool appears.
Prerequisites
Node.js 18 or newer.
An Apify API token from console.apify.com/account/integrations, set as
APIFY_TOKEN. The server lists its tool without a token; a call needs one.
Example prompts
"These ten signups used Gmail addresses. Which companies do they work at?"
"Find the employer behind this Outlook address and show me the evidence."
Tool
resolve_personal_email_employer. One tool. Example arguments:
{ "emails": ["sample.signup@gmail.com"] }Inputs
Every buyer facing input of the actor, unchanged. Omitted inputs take the actor's own defaults.
Input | Type | Description |
| string | One address |
| array | Up to 300 addresses |
| string | Optional, your own free GitHub token |
| string | true adds one exact Google search per address left without an employer. Default false |
| string | true (default) runs Person LinkedIn URL Resolver from your account, billed at its own price |
| string | Google country code. Default us |
| string | Optional cost cap for the run |
Pricing
Pay per event on Apify, billed to your Apify account. Prices in USD.
Event | Free plan | Bronze | Silver | Gold |
| $0.025 | $0.02375 | $0.0225 | $0.02125 |
| $0.0005 | $0.0005 | $0.0005 | $0.0005 |
Every other row is free. With use_linkedin_resolver on, Person LinkedIn URL Resolver bills its own events on top: $0.035 per person sent to it, found or not, plus $0.0005 per run on the free plan.
Your keys
The actor holds no key. github_token is optional and is your own, used for the run only. Mamba Labs pays the platform costs of the run, proxy traffic included.
Full actor documentation
apify.com/mambalabs/personal-email-to-company-resolver
License
MIT. See LICENSE.
Available Tools
1 toolresolve_personal_email_employerResolve the employer behind a personal emailARead-only
Find the likely employer behind a free mail address (Gmail, Outlook, iCloud, Yahoo, and about 140 more), from the public Gravatar profile for the address, the GitHub account whose public commits are signed with it, and Mamba Labs Person LinkedIn URL Resolver. Returns one row per address with person_name, employer_name, employer_domain when a source names it, employer_source, employer_confidence from 0 to 1, match_status (resolved at 0.75 or more, weak, name_only, corporate_email, not_found, invalid_email, blocked), the LinkedIn URL when found, and evidence_urls. It never contacts the mailbox and never opens LinkedIn. A run that does not succeed is returned as an error with its run ID. Read-only; requires an APIFY_TOKEN; Apify charges per resolved address, and the optional LinkedIn step is billed by Person LinkedIn URL Resolver at its own price.
| Name | Required | Description | Default |
|---|---|---|---|
| No | One email address, for example a signup on a Gmail address. | ||
| emails | No | Several addresses, up to 300. A company address returns its own domain, free. | |
| country | No | Two letter Google country code. Default us. | |
| search_web | No | true adds one exact Google search for an address that Gravatar and GitHub leave without an employer. Default false. | |
| github_token | No | Optional. Your own free GitHub token, for batches over about 25 addresses. Used for this run only and never stored. | |
| max_charge_usd | No | Optional. The run stops before a charge that would pass this amount; it is passed to the LinkedIn step too. | |
| use_linkedin_resolver | No | true (default) runs Mamba Labs Person LinkedIn URL Resolver from your account for the addresses with a name and an employer, billed at that actor's own price per person sent to it, found or not (0.035 USD on the free plan). false skips it. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds substantial context beyond the annotations: per-address Apify charges, separate billing from the LinkedIn resolver at its own price, the 0.75 confidence cutoff for 'resolved', and that failures come back as errors with a run ID. It also clarifies the non-contact guarantee, which is real behavioral information an agent would not otherwise have.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core purpose and the sources in the first sentence, then covers outputs and cost. The return-field enumeration is long but earns its place because there is no output schema; density is high but nothing is padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Because there is no output schema, the description carries the return-value burden and does so fully: named fields, the match_status taxonomy, and confidence scale. Combined with cost, authentication (APIFY_TOKEN), and error behavior, an agent has everything needed to call it and interpret results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the seven parameters are already documented, and the description largely restates them. It reinforces the LinkedIn step's billing (relevant to use_linkedin_resolver and max_charge_usd) but says nothing about email vs emails batching, country, search_web, or github_token, so it adds only marginal value over the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise verb and resource ('Find the likely employer behind a free mail address') and names the exact sources it draws on (Gravatar, signed GitHub commits, Person LinkedIn URL Resolver). No siblings exist, but the scope is unambiguous on its own.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The use case is clearly scoped to free mail addresses, and the description sets boundaries by stating it never contacts the mailbox or opens LinkedIn. It stops short of explicit when-not-to-use guidance (e.g. corporate addresses or when to prefer a different lookup), so it lands below a 5.
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 tool update
v1.0.0- First observed
resolve_personal_email_employer
TDQS
Scored across 1 tool
There is only one tool, so there is no possibility of misselection between tools. Its purpose (resolve the employer behind a personal email address) is stated explicitly and unambiguously.
The single name resolve_personal_email_employer is descriptive snake_case with a clear verb_noun_qualifier structure. With only one tool there is no convention clash, and the name reads predictably.
A single-purpose resolver plausibly needs only one operation, and the tool accepts multiple addresses per call, so the count is not wrong. However, one tool is a thin surface for a billed, asynchronous Apify actor, leaving no companion operation for run inspection or cost checks.
The tool covers the full resolution lifecycle for its narrow domain: multiple input addresses, rich per-row output (name, employer, domain, source, confidence, match_status, LinkedIn URL, evidence), and documented failure statuses. The main gap is that failed runs only return a run ID with no tool to retrieve that run's results or status, which is a dead end for recovery.
Maintenance
Related MCP Connectors
Reverse email lookup: find the person behind an email (name, title, company).
Corporate identity finder and email verification. Map real addresses and users to real people.
Free — no API key required. Enrich by domain or name. Country, contacts, social profiles.
Find and verify work emails with live SMTP checks and catch-all detection. Free 10 calls/day.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to verify email addresses through a multi-signal probabilistic pipeline, returning confidence scores and honest statuses (safe/risky/invalid/unknown) with evidence.Apache 2.0
- AlicenseNot gradedqualityCmaintenanceEnriches person profiles from email addresses, returning full name, job title, company, social links, and location. Works as a drop-in replacement for Apollo person enrichment at lower cost.MIT
- AlicenseNot gradedqualityBmaintenanceEnables free breach-exposure lookup by email address, revealing data breaches, exposed data classes, and risk scores without requiring an API key.7 npmMIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to search a global professional database in plain English, reveal full profiles, and fetch verified work emails, email verification, reverse email lookup, and LinkedIn and company lookups. Searches are free, while most lookups cost credits that are refunded automatically when nothing is found.MIT