Skip to main content
Glama

People Data Labs MCP by usefulapi

Server Details

Enrich and search people and companies, resolve identities, and enrich IP addresses.

Ownership verified
Status
Healthy
Uptime
77.4% over 73 days
Last Tested
Transport
Streamable HTTP · MCP 2025-06-18
URL
Repository
m190/usefulapi-mcp
GitHub Stars
0

TDQS

A4/5.0

Scored across 8 tools

Disambiguation5/5

The three person tools (enrich, identify, search) could easily blur together, but the descriptions explicitly delineate them: enrich is 1:1 best match, identify returns up to 20 ranked profiles for ambiguous inputs, and search is open-ended. Company enrich vs. company search, IP enrich, autocomplete, and job posting search all target clearly distinct resources and actions.

Naming Consistency4/5

Seven of eight tools follow a clean pdl_{resource}_{action} pattern (pdl_person_search, pdl_company_enrich, pdl_ip_enrich, etc.) in consistent snake_case. The lone deviation is pdl_autocomplete, which drops the resource segment, but it remains readable and prefixed consistently.

Tool Count5/5

Eight tools is well-scoped for a data enrichment/search API, with no redundant or filler entries. Each tool maps to a distinct dataset operation, and the count is comfortable for an agent to reason over.

Completeness4/5

Core lifecycle is covered: autocomplete for query building, enrich/search for both person and company, plus IP enrich and job posting search. Minor gaps exist, such as no company-level identify equivalent and no school-dataset coverage, but these are workable around.

Available Tools

8 tools
pdl_autocompleteAutocomplete search valuesA
Read-only
Inspect

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.

NameRequiredDescriptionDefault
sizeNoMax suggestions to return. Default 10.
textNoPartial text to get suggestions for, e.g. 'stanf'.
fieldYesField to autocomplete: e.g. company, school, location, region, country, industry, title, role, sub_role, skill, major.
prettyNoPretty-print the JSON response.
titlecaseNoTitlecase the returned data.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so safety is covered. The description adds pricing/cost context ('Free on all plans') which is genuinely useful behavioral info, but does not describe pagination, result ordering, or what happens when text is omitted.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight clauses: purpose, benefit, cost/endpoint. Front-loaded with the value proposition and zero filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Complete enough for a simple read-only lookup: purpose, cost, and endpoint are stated, and the return concept (values + counts) is described despite no output schema. Minor gap is absence of pagination/ordering behavior, but nothing critical is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, including a documented field list and a partial-text example. The description adds no parameter-level detail beyond the schema, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Get suggested values for a search field') with the added distinction of returning record counts. Clearly separates itself from the sibling search/enrich tools, which return records rather than suggestion values.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly frames the use case: 'useful for building valid Person/Company Search queries.' This tells the agent when to reach for it (pre-query, to construct valid values), though it doesn't explicitly name or exclude alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pdl_company_enrichEnrich a companyA
Read-only
Inspect

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.

NameRequiredDescriptionDefault
nameNoCompany name, e.g. 'People Data Labs'.
pdl_idNoPDL id for a company record.
prettyNoPretty-print the JSON response.
regionNoCompany state / region.
tickerNoStock ticker for a public company, e.g. 'AAPL'.
countryNoCompany country.
profileNoCompany social profile URL, e.g. a LinkedIn company URL.
websiteNoCompany website, e.g. 'google.com' (most reliable).
localityNoCompany city / locality.
locationNoCompany location free-text.
titlecaseNoTitlecase the returned data.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so safety is covered. The description adds real behavioral context: the input-must-be-non-ambiguous constraint and the 404 'no match' body on failure. It doesn't touch auth or rate limits, but it exceeds what the annotation provides.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the purpose, then input requirement, return shape, and endpoint in a tight sequence. No filler; every sentence carries information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With readOnly annotations covering safety, 100% schema coverage, and no output schema, the description is complete enough: it names the return payload (firmographics) and the failure mode (404). Only minor gaps remain around pagination/field selection, which don't affect correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds value beyond the schema by specifying that name OR website OR ticker OR profile are the identifying inputs and that website/ticker/profile resolve more reliably than name. That reliability ranking is not in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'Find the single best-matching company record' with firmographics as the payload. This distinguishes it from a broad search, though it doesn't name any sibling tool explicitly. Purpose is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states an input requirement (non-ambiguous input from name/website/ticker/profile) and a resolution-reliability ordering, which is implied guidance on how to invoke correctly. However, there is no explicit 'when to use this vs pdl_company_search or pdl_person_enrich' routing, so usage context is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pdl_ip_enrichEnrich an IP addressA
Read-only
Inspect

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.

NameRequiredDescriptionDefault
ipYesThe IP address to enrich, e.g. '72.212.42.169'.
prettyNoPretty-print the JSON response.
titlecaseNoTitlecase the returned data.
return_personNoInclude associated person data if available.
min_confidenceNoMinimum confidence level required to return a match.

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

readOnlyHint=true already tells the agent this is a safe, non-mutating call, so the description's burden is lighter. It adds the '1:1 match' semantics and the API endpoint, but does not say what happens on a miss, how confidence gating affects results, or whether person data is dropped when unavailable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tightly written sentences with no padding; the value proposition is front-loaded and the endpoint reference trails it. Every clause carries information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and five parameters, the description carries more return-value burden than usual, and it does enumerate the main returned entities (location, company, optional person). It omits pagination/shape details, but for a read-only enrichment endpoint that is a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all five parameters are already fully documented, which sets the baseline at 3. The description only reinforces one parameter implicitly ('optionally associated person data' for return_person) and adds no new syntax, format, or behavior detail beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (enrich) and resource (IP address) and names the returned fields: location, company, and optionally associated person data. It also pins the lookup mechanism ('1:1 match against PDL's IP dataset'), which separates it conceptually from the sibling person/company enrichment tools, though it never names an alternative explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: the agent infers this is the tool for IP-based enrichment because the resource is an IP. There is no statement of when to prefer it over pdl_person_enrich or pdl_company_enrich, nor any exclusion or prerequisite guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pdl_person_enrichEnrich a personA
Read-only
Inspect

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.

NameRequiredDescriptionDefault
lidNoLinkedIn numerical ID.
nameNoFull name, e.g. 'Sean Thorne'.
emailNoEmail address, or an array of email addresses.
phoneNoPhone number (E.164 or local).
pdl_idNoPDL persistent ID for a person record.
prettyNoPretty-print the JSON response.
regionNoState / region, e.g. 'california'.
schoolNoSchool name or website the person attended.
companyNoCompany name, website, or PDL company id the person works at.
countryNoCountry name, e.g. 'united states'.
profileNoSocial profile URL(s), e.g. a LinkedIn URL. String or array.
localityNoCity / locality, e.g. 'san francisco'.
locationNoFree-text location, e.g. 'San Francisco, CA, USA'.
requiredNoOnly return a match that contains these fields, e.g. 'emails AND mobile_phone'.
last_nameNoLast / family name.
titlecaseNoTitlecase the returned data (default false = lowercase).
birth_dateNoBirth date (yyyy or yyyy-mm-dd).
first_nameNoFirst / given name.
postal_codeNoPostal / ZIP code (assumed US if no country).
min_likelihoodNoOnly return a 200 if match confidence >= this (1-10).

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

readOnlyHint=true already covers the safety profile, and the description adds genuinely non-annotated behavior: exactly one record is returned, a likelihood score (1-10) accompanies it, and a 404 body signals no match. It stops short of noting auth requirements, rate limits, or how multiple input attributes are combined.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the core action and return shape. The trailing 'API: GET /person/enrich' is mildly redundant but low-cost and could help an agent reason about the call.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 20-parameter, no-output-schema tool, the description compensates by describing the return (one record + likelihood score) and the no-match response. Remaining gaps are authentication and the semantics of combining many optional attributes, but nothing critical for correct invocation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% across all 20 parameters, so the schema already carries the per-field semantics; this is the baseline case. The description's only addition is the general hint to prefer uniquely-identifying inputs, without saying which parameters those are or how they interact.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb+resource: find the single best-matching person profile from identifying attributes. The phrase 'single best-matching' implicitly distinguishes it from the multi-result pdl_person_search, but it never names that sibling or pdl_person_identify, so an agent must infer the routing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Use uniquely-identifying inputs for best results' gives practical input guidance, and the 404 note implies behavior on failure. However, there is no explicit when-to-use guidance versus pdl_person_search, pdl_person_identify, or pdl_autocomplete, which are the tools an agent would realistically weigh against this one.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pdl_person_identifyIdentify a personA
Read-only
Inspect

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.

NameRequiredDescriptionDefault
lidNoLinkedIn numerical ID.
nameNoFull name, e.g. 'Sean Thorne'.
emailNoEmail address, or an array of email addresses.
phoneNoPhone number (E.164 or local).
pdl_idNoPDL persistent ID for a person record.
prettyNoPretty-print the JSON response.
regionNoState / region, e.g. 'california'.
schoolNoSchool name or website the person attended.
companyNoCompany name, website, or PDL company id the person works at.
countryNoCountry name, e.g. 'united states'.
profileNoSocial profile URL(s), e.g. a LinkedIn URL. String or array.
localityNoCity / locality, e.g. 'san francisco'.
locationNoFree-text location, e.g. 'San Francisco, CA, USA'.
last_nameNoLast / family name.
titlecaseNoTitlecase the returned data (default false = lowercase).
birth_dateNoBirth date (yyyy or yyyy-mm-dd).
first_nameNoFirst / given name.
postal_codeNoPostal / ZIP code (assumed US if no country).

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds useful behavior beyond that: a cap of 20 results, ranking by match score, and the underlying endpoint (GET /person/identify). It omits auth, rate-limit, and pagination/truncation behavior, keeping it short of a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, all front-loaded: purpose first, then positioning, then the raw endpoint. Nothing is redundant with the title or annotations, and there is no padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the return-behavior burden and does so — result count (up to 20), ordering (ranked by match score), and the ambiguity-tolerance intent. Combined with 100% schema coverage and readOnlyHint, an agent has everything needed to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every one of the 18 parameters is already documented in the schema. The description adds no extra semantics about how attributes combine or which are stronger signals, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('return up to 20 strongly-related profiles ranked by match score') and explicitly positions itself against the sibling tools enrich (1:1) and search (open-ended). An agent can distinguish pdl_person_identify from pdl_person_enrich and pdl_person_search without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly names when to use it ('ideal when you can't uniquely resolve someone') and frames it between the two alternatives it is not ('sits between enrich (1:1) and search (open-ended)'). The selection condition is spelled out rather than left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables threat intelligence for SOC and DFIR workflows, including IOC enrichment, CVE and threat actor lookup, domain scanning, and account-based scan management.
    2
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Provides 25 tools to enrich company, person, contact, school, and job data via the Enrich Layer API, enabling lookups, profiles, and contact discovery.
    25
    30 npm
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables MCP clients to look up domains, URLs, IPs/ASNs, email addresses, phone numbers, crypto wallets, and business records; run autonomous investigations; collect crawl artifacts; and perform evidence-backed scam checks with traceable provenance.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.