People Data Labs MCP by usefulapi
Server Details
Enrich and search people and companies, resolve identities, and enrich IP addresses.
- 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
Scored across 8 tools
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.
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.
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.
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 toolspdl_autocompleteAutocomplete search valuesARead-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. |
TDQS
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.
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.
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.
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.
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.
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 companyARead-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. |
TDQS
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.
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.
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.
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.
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.
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_company_searchSearch companiesARead-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. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=true, so the description carries real added value: it discloses the credit cost per returned record ('Each returned record costs 1 credit') and the underlying endpoint (POST /company/search). It does not mention rate limits or per-request credit caps, but the cost model is meaningful operational context beyond the annotation.
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?
Four tight sentences that front-load the core action and example, then pagination, then cost, then endpoint. No filler, though the parenthetical example and trailing API line are slightly redundant with the schema.
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?
For a read-only search with full schema coverage and no output schema, the description covers query modes, pagination, and cost. It omits expected return shape and any guidance on maximum credits consumed per call, but nothing essential to invoking it correctly is missing.
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 description coverage is 100%, so all seven parameters are already documented, including the scroll_token pagination pattern and the from/size offsets. The description reinforces the two query modes and pagination but adds no syntax or format detail the schema lacks, so baseline 3 applies.
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 specific verb (Search) and resource (full PDL Company Dataset), and the two supported query modes (Elasticsearch object or SQL string). Naming the 'Company Dataset' distinguishes it from siblings like pdl_person_search and pdl_job_posting_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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains how to query (ES object OR SQL) and how to page (scroll_token), but never states when to choose this search tool over pdl_company_enrich or when SQL is preferable to the ES query path. Usage is implied rather than explicitly framed.
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 addressARead-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. |
TDQS
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.
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.
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.
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.
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.
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_job_posting_searchSearch job postingsARead-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. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=true; the description adds substantive context beyond that: Beta/plan gating with HTTP 403, per-result credit cost, and the POST endpoint. These auth, cost, and error details are exactly the kind of behavioral disclosures that help an agent call the tool correctly.
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-loaded with purpose and query modes, followed by critical operational notes in compact sentences. Every clause earns its place with no filler or repetition.
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?
Covers dataset scope, query modes, access gating, cost, and endpoint, which is substantial for a multi-mode search tool with no output schema. It stops short of explaining return-field structure or whether sql and query are mutually exclusive, leaving minor gaps.
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 description coverage is 100% and the schema already documents sql, query, size, pretty, and scroll_token, including an Elasticsearch query example. The description mentions the Elasticsearch-or-SQL choice but adds no syntax, defaults, or format details beyond the schema, so the baseline 3 applies.
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 specific verb (Search) and resource (PDL's Job Posting Dataset), plus the two accepted query modes. The job-postings focus differentiates it from sibling person/company search tools without needing to name them.
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?
Provides clear operational context (Beta, plan access with HTTP 403, 1 credit per posting) that shapes when it can be used. It does not, however, name alternative sibling tools or explicitly state when not to use 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_enrichEnrich a personARead-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). |
TDQS
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.
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.
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.
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.
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.
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 personARead-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). |
TDQS
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.
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.
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.
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.
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.
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.
pdl_person_searchSearch peopleARead-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. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already declares the safety profile, and the description adds genuinely useful behavioral context: results are sorted by completeness, pagination uses scroll_token, and each returned record costs 1 credit. The credit-cost disclosure in particular is real value beyond the annotations. It stops at 4 because it does not mention rate limits or result-size constraints.
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?
Three dense sentences, front-loaded with what the tool does, then return/pagination behavior, then cost and endpoint. No filler; every sentence carries distinct information.
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?
For an 8-parameter read tool with no output schema, the description covers return shape (matching profiles sorted by completeness), pagination, and cost, which is close to what an agent needs. The absence of output schema is partially compensated, though nothing is said about the profile fields returned.
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 description coverage is 100%, so every parameter is already documented in the schema. The description reinforces the query/sql duality and scroll_token pagination but adds no syntax or format detail beyond what the schema provides, making 3 the correct baseline.
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 specific verb and resource ('Search the full PDL Person Dataset') and clarifies the two supported input modes, so the agent knows this is a bulk/query search rather than enrichment. It does not name the sibling tools (pdl_person_enrich, pdl_person_identify) to explicitly route between them, so it falls just short of a 5.
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 description implies usage context (querying the person dataset with ES or SQL) but never states when to choose this over pdl_person_enrich or pdl_person_identify, nor when to prefer the ES mode over SQL. Usage is implied rather than guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Related MCP Connectors
Company and contact enrichment: firmographics from a domain or IP, profiles from a work email.
Find companies and B2B contacts, enrich profiles, and look up work emails and business phones.
Search people and companies, enrich profiles, and find email and phone over MCP.
- BlitzAPIOAuthai.blitz-api
Search and enrich B2B companies and people: verified work emails, US phone numbers, job postings.
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.2530 npmMIT
- AlicenseNot gradedqualityCmaintenanceEnables 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
- AlicenseNot gradedqualityDmaintenanceProvides comprehensive IP and domain security intelligence, enabling analysis of IP addresses and domains for threat and reputation information.1MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.