People Data Labs MCP by usefulapi
Server Details
Enrich and search people and companies, resolve identities, and enrich IP addresses.
- Status
- Healthy
- Uptime
- 70.4% over 54 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
- Repository
- m190/usefulapi-mcp
- GitHub Stars
- 0
TDQS
Scored across 8 tools
Each tool targets a clearly distinct operation: person enrichment, person identify, person search, company enrichment, company search, IP enrichment, job posting search, and autocomplete. Even the closely related person tools are explicitly differentiated by match semantics (1:1, up to 20 ranked, open-ended search).
All tools follow a consistent pdl_<entity>_<operation> pattern with snake_case names, making the tool surface predictable. The only slight deviation is pdl_autocomplete, but it still fits the overall style cleanly.
Eight tools is well-scoped for a people-data and company-data platform. Each tool covers a distinct data access pattern without redundancy or unnecessary bulk.
The tool set covers the core read-only workflows for the domain: person lookup, person identification, person search, company lookup, company search, IP enrichment, job posting search, and query-building autocomplete. No obvious dead ends or missing critical operations are apparent.
Available Tools
8 toolspdl_autocompleteAutocomplete search valuesRead-onlyInspect
Get suggested values for a search field along with the number of available records for each — useful for building valid Person/Company Search queries. Free on all plans. API: GET /autocomplete.
| Name | Required | Description | Default |
|---|---|---|---|
| size | No | Max suggestions to return. Default 10. | |
| text | No | Partial text to get suggestions for, e.g. 'stanf'. | |
| field | Yes | Field to autocomplete: e.g. company, school, location, region, country, industry, title, role, sub_role, skill, major. | |
| pretty | No | Pretty-print the JSON response. | |
| titlecase | No | Titlecase the returned data. |
pdl_company_enrichEnrich a companyRead-onlyInspect
Find the single best-matching company record. Requires a non-ambiguous input — name OR website OR ticker OR profile (website/ticker/profile resolve more reliably than name). Returns firmographics (industry, size, location, etc.) or a 404 'no match' body. API: GET /company/enrich.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Company name, e.g. 'People Data Labs'. | |
| pdl_id | No | PDL id for a company record. | |
| pretty | No | Pretty-print the JSON response. | |
| region | No | Company state / region. | |
| ticker | No | Stock ticker for a public company, e.g. 'AAPL'. | |
| country | No | Company country. | |
| profile | No | Company social profile URL, e.g. a LinkedIn company URL. | |
| website | No | Company website, e.g. 'google.com' (most reliable). | |
| locality | No | Company city / locality. | |
| location | No | Company location free-text. | |
| titlecase | No | Titlecase the returned data. |
pdl_company_searchSearch companiesRead-onlyInspect
Search the full PDL Company Dataset with an Elasticsearch query object OR a SQL string over the Company Schema (e.g. all SaaS companies with 50-200 employees in the US). Paginate with scroll_token. Each returned record costs 1 credit. API: POST /company/search.
| Name | Required | Description | Default |
|---|---|---|---|
| sql | No | SQL query string, e.g. SELECT * FROM company WHERE industry='computer software'. | |
| from | No | Legacy offset (0-9999). Prefer scroll_token. | |
| size | No | Number of records to return (1-100). Default 1. | |
| query | No | Elasticsearch query as a JSON string, e.g. {"query":{"term":{"industry":"computer software"}}} — pass the value of "query". | |
| pretty | No | Pretty-print the JSON response. | |
| titlecase | No | Titlecase the returned data. | |
| scroll_token | No | Pagination token from a previous response. |
pdl_ip_enrichEnrich an IP addressRead-onlyInspect
Enrich an IP address with its location, company, and (optionally) associated person data via a 1:1 match against PDL's IP dataset. API: GET /ip/enrich.
| Name | Required | Description | Default |
|---|---|---|---|
| ip | Yes | The IP address to enrich, e.g. '72.212.42.169'. | |
| pretty | No | Pretty-print the JSON response. | |
| titlecase | No | Titlecase the returned data. | |
| return_person | No | Include associated person data if available. | |
| min_confidence | No | Minimum confidence level required to return a match. |
pdl_job_posting_searchSearch job postingsRead-onlyInspect
Search PDL's Job Posting Dataset (millions of active & historical postings sourced from company career pages) with an Elasticsearch query object OR a SQL string. Beta — may require plan access (HTTP 403 if not enabled). Each returned posting costs 1 credit. API: POST /job_posting/search.
| Name | Required | Description | Default |
|---|---|---|---|
| sql | No | SQL query string over the job posting dataset. | |
| size | No | Number of records to return (1-100). Default 1. | |
| query | No | Elasticsearch query as a JSON string, e.g. {"query":{"term":{"title_role":"engineering"}}} — pass the value of "query". | |
| pretty | No | Pretty-print the JSON response. | |
| scroll_token | No | Pagination token from a previous response. |
pdl_person_enrichEnrich a personRead-onlyInspect
Find the single best-matching person profile for a set of identifying attributes (name, email, phone, profile URL, company, etc.). Returns one record plus a likelihood score (1-10), or a 404 'no match' body. Use uniquely-identifying inputs for best results. API: GET /person/enrich.
| Name | Required | Description | Default |
|---|---|---|---|
| lid | No | LinkedIn numerical ID. | |
| name | No | Full name, e.g. 'Sean Thorne'. | |
| No | Email address, or an array of email addresses. | ||
| phone | No | Phone number (E.164 or local). | |
| pdl_id | No | PDL persistent ID for a person record. | |
| pretty | No | Pretty-print the JSON response. | |
| region | No | State / region, e.g. 'california'. | |
| school | No | School name or website the person attended. | |
| company | No | Company name, website, or PDL company id the person works at. | |
| country | No | Country name, e.g. 'united states'. | |
| profile | No | Social profile URL(s), e.g. a LinkedIn URL. String or array. | |
| locality | No | City / locality, e.g. 'san francisco'. | |
| location | No | Free-text location, e.g. 'San Francisco, CA, USA'. | |
| required | No | Only return a match that contains these fields, e.g. 'emails AND mobile_phone'. | |
| last_name | No | Last / family name. | |
| titlecase | No | Titlecase the returned data (default false = lowercase). | |
| birth_date | No | Birth date (yyyy or yyyy-mm-dd). | |
| first_name | No | First / given name. | |
| postal_code | No | Postal / ZIP code (assumed US if no country). | |
| min_likelihood | No | Only return a 200 if match confidence >= this (1-10). |
pdl_person_identifyIdentify a personRead-onlyInspect
Given broad, possibly-ambiguous attributes about a person, return up to 20 strongly-related profiles ranked by match score. Sits between enrich (1:1) and search (open-ended) — ideal when you can't uniquely resolve someone. API: GET /person/identify.
| Name | Required | Description | Default |
|---|---|---|---|
| lid | No | LinkedIn numerical ID. | |
| name | No | Full name, e.g. 'Sean Thorne'. | |
| No | Email address, or an array of email addresses. | ||
| phone | No | Phone number (E.164 or local). | |
| pdl_id | No | PDL persistent ID for a person record. | |
| pretty | No | Pretty-print the JSON response. | |
| region | No | State / region, e.g. 'california'. | |
| school | No | School name or website the person attended. | |
| company | No | Company name, website, or PDL company id the person works at. | |
| country | No | Country name, e.g. 'united states'. | |
| profile | No | Social profile URL(s), e.g. a LinkedIn URL. String or array. | |
| locality | No | City / locality, e.g. 'san francisco'. | |
| location | No | Free-text location, e.g. 'San Francisco, CA, USA'. | |
| last_name | No | Last / family name. | |
| titlecase | No | Titlecase the returned data (default false = lowercase). | |
| birth_date | No | Birth date (yyyy or yyyy-mm-dd). | |
| first_name | No | First / given name. | |
| postal_code | No | Postal / ZIP code (assumed US if no country). |
pdl_person_searchSearch peopleRead-onlyInspect
Search the full PDL Person Dataset with an Elasticsearch query object OR a SQL string over the Person Schema (e.g. everyone with job_title_role='engineering' at a company). Returns matching profiles sorted by completeness; paginate with scroll_token. Each returned record costs 1 credit. API: POST /person/search.
| Name | Required | Description | Default |
|---|---|---|---|
| sql | No | SQL query string, e.g. SELECT * FROM person WHERE job_company_name='people data labs'. | |
| from | No | Legacy offset (0-9999). Prefer scroll_token. | |
| size | No | Number of records to return (1-100). Default 1. | |
| query | No | Elasticsearch query as a JSON string, e.g. {"query":{"term":{"job_company_name":"people data labs"}}} — pass the value of "query". | |
| pretty | No | Pretty-print the JSON response. | |
| dataset | No | Dataset(s) to search: resume, email, phone, mobile_phone, street_address, consumer_social, developer, all. Comma-separate; prefix '-' to exclude. | |
| titlecase | No | Titlecase the returned data. | |
| scroll_token | No | Pagination token from a previous response. |
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
8 tool updates
- Changed
pdl_autocomplete1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
pdl_company_enrich1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
pdl_company_search1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
pdl_ip_enrich1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
pdl_job_posting_search1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
pdl_person_enrich1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
pdl_person_identify1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
pdl_person_search1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
8 tool updates
- First observed
pdl_autocomplete - First observed
pdl_company_enrich - First observed
pdl_company_search - First observed
pdl_ip_enrich - First observed
pdl_job_posting_search - First observed
pdl_person_enrich - First observed
pdl_person_identify - First observed
pdl_person_search
Related MCP Connectors
Find companies and B2B contacts, enrich profiles, and look up work emails and business phones.
- EnvoAPIOAuthcom.envoapi
People, company, job and LinkedIn post data, plus email finding and verification.
1 Enrich contacts by email or LinkedIn URL and build targeted B2B audiences.
- SalesQLOAuthcom.salesql
Find verified B2B emails and phone numbers; search and enrich people and companies for prospecting.
Related MCP Servers
AlicenseNot gradedqualityCmaintenanceEnables threat intelligence for SOC and DFIR workflows, including IOC enrichment, CVE and threat actor lookup, domain scanning, and account-based scan management.2MIT- AlicenseAqualityCmaintenanceProvides 25 tools to enrich company, person, contact, school, and job data via the Enrich Layer API, enabling lookups, profiles, and contact discovery.2533 npmMIT
- AlicenseNot gradedqualityDmaintenanceProvides comprehensive IP and domain security intelligence, enabling analysis of IP addresses and domains for threat and reputation information.MIT
- FlicenseNot gradedqualityBmaintenanceEnriches domains into full company profiles with firmographics and buying signals.-
Glama MCP Gateway
Add one secure layer between your agents and this server.