An MCP (Model Context Protocol) server for the Pipl Search API — enabling AI assistants to search for people by email, phone, name, address, username, social URL, and more.
Pipl is the world's leading provider of online identity information. Pipl's identity database includes over 3 billion online identities cross-referenced from more than 25 billion individual records, gathered from public records, business listings, phone directories, social networks, web documents, and deep web archives.
Pipl Search helps organizations gather information on customers and contacts across multiple use cases:
- Identity Verification (IDV) — Fraud & risk management, IDV platforms, e-commerce, AML, fintech & KYC
- Investigation — OSINT platforms, law enforcement, government, news media, cyber security & insurance
- Consumer People Search — Background reporting
- Contact Enrichment — Lead enrichment, recruitment, real estate & sales intelligence
This MCP server wraps the Pipl Search API so that AI assistants (Cursor, Claude Desktop, and other MCP clients) can run identity searches directly within their workflows.
| Resource | URL |
|---|---|
| Pipl Search API Docs | docs.pipl.com |
| Getting Started Guide | docs.pipl.com/docs/welcome-to-the-pipl-search-api |
| API Reference | docs.pipl.com/reference |
| API Demo Page | search.pipl.com/api/demo |
| Manage API Keys | search.pipl.com/api/manage/keys |
| Pipl Website | pipl.com |
- Node.js >= 18.0.0
- A Pipl API key — sign in at search.pipl.com/api/manage/keys, or contact Pipl to get access
git clone https://github.com/piplcom/piplapis-search-mcp.git
cd piplapis-search-mcp
npm installAdd to your MCP client settings:
Cursor (.cursor/mcp.json):
{
"mcpServers": {
"piplapis-search": {
"command": "node",
"args": ["/absolute/path/to/piplapis-search-mcp/index.js"],
"env": {
"PIPL_API_KEY": "YOUR_API_KEY"
}
}
}
}Claude Desktop (claude_desktop_config.json):
{
"mcpServers": {
"piplapis-search": {
"command": "node",
"args": ["/absolute/path/to/piplapis-search-mcp/index.js"],
"env": {
"PIPL_API_KEY": "YOUR_API_KEY"
}
}
}
}Replace /absolute/path/to/ with the actual path to this repository and YOUR_API_KEY with your Pipl API key.
Security: The API key is read from the
PIPL_API_KEYenvironment variable and is never logged or exposed in tool outputs.
| Tool | Description |
|---|---|
search_by_email |
Search by email address |
search_by_phone |
Search by phone number (international format, e.g. +15551234567) |
search_by_name |
Search by name, optionally combined with email, phone, or address |
search_by_address |
Search by physical address |
search_by_username |
Search by social username (e.g. superman@facebook) |
search_by_url |
Search by social profile URL (e.g. LinkedIn, Facebook) |
search_by_search_pointer |
Follow up on a previous result using a search pointer |
search_by_person |
Advanced search with a structured person JSON object |
search_raw |
Raw API call with any combination of parameters (returns full JSON) |
The Pipl Search API returns one of three outcomes:
- Person Match — A single high-confidence person was found (
personfield). This is a definitive match. - Possible Persons — Multiple candidates found (
possible_personsarray). Each candidate includes a@search_pointeryou can use withsearch_by_search_pointerto resolve a specific person. - No Match — No person found (
@persons_count: 0).
Important: A match score of
0does not mean "no match" — it means the confidence level is undetermined (not enough data to rank). All returned possible persons are real candidates.
For more details on response structure, see the API Reference — Response Types.
Once configured, you can ask your AI assistant natural-language questions like:
- "Search for john.smith@example.com"
- "Find the person with phone number +14155550123"
- "Look up the LinkedIn profile linkedin.com/in/johndoe"
- "Search for Jane Doe in San Francisco"
The assistant will select the appropriate tool and return the identity data from Pipl.
Any query containing the email clark.kent@example.com is free and returns static example output — useful for testing your setup without consuming API credits.
search_by_email({ email: "clark.kent@example.com" })