peopledatalabs
Server Details
Enrich and search people and companies, resolve identities, and enrich IP addresses.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- m190/usefulapi-mcp
- GitHub Stars
- 0
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 4.2/5 across 8 of 8 tools scored.
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 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. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation already marks this as read-only, and the description reinforces this with 'API: GET /autocomplete' and 'Free on all plans.' It also discloses return behavior by mentioning suggested values and available record counts, adding value beyond the structured 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?
Two concise sentences with no filler. The primary purpose is front-loaded, and the extra details (free tier, API method) are brief and useful for invoking the tool correctly.
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?
Despite having no output schema, the description explains what the response contains (suggested values and record counts) and why the tool matters. For a low-complexity autocomplete tool with rich parameter schema and a read-only annotation, this is sufficient for an agent 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 the schema already documents all five parameters with examples. The description does not add much parameter-specific meaning, but it also does not need to because the schema carries the detail.
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: 'Get suggested values for a search field' with the added benefit of record counts. It is clearly distinct from the search/enrichment sibling tools because it is an autocomplete endpoint for building valid queries.
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 mentions it is useful for building valid Person/Company Search queries, giving a clear context for when to use it. It does not formally name alternatives or exclusion conditions, but the intended usage is evident from the description.
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. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With readOnlyHint already covering safety, the description adds useful behavioral disclosure: it returns firmographics or a 404 'no match' body and notes relative reliability of inputs. It does not contradict the read-only 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 short sentences deliver purpose, prerequisites, return behavior, and endpoint with no filler. The core action is front-loaded.
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 11-parameter read-only enrichment tool with no output schema, the description covers the essential call contract: input requirement, expected return shape, no-match failure mode, and API method. It could be more explicit about how multiple parameters combine and that pdl_id is also an accepted key.
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 by grouping accepted identifiers and ranking their reliability (website/ticker/profile over name). The omission of pdl_id from that identifier list is a minor gap.
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 opens with a specific operation, 'Find the single best-matching company record,' and identifies the resource and endpoint. 'Single best-matching' plus the firmographics return clearly distinguishes this enrichment tool from sibling search/identify tools.
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 gives clear applicable context by requiring a 'non-ambiguous input' and names the preferred identifier types. It does not explicitly state when to prefer pdl_company_search or other siblings, so it stops short of full alternative routing.
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. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=true, so the description adds valuable operational context: each record costs 1 credit, pagination uses scroll_token, and the API endpoint is POST /company/search. These details go beyond what the annotations provide.
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?
The description is three compact sentences, each earning its place: purpose and query modes, pagination mechanism, and cost/endpoint. The most important information is front-loaded.
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?
The description provides enough to invoke the tool correctly: search modes, pagination, cost, and endpoint. Since there is no output schema, it could have mentioned the response shape more explicitly, but scroll_token's origin is inferable from the schema.
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 the baseline is 3. The description adds useful context by framing query and sql as alternative modes and highlighting scroll_token for pagination, but it does not deeply elaborate on parameter behavior 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?
The description clearly states the verb 'Search' and the resource 'full PDL Company Dataset', and specifies two query modes: Elasticsearch query object or SQL string. It distinguishes itself from person-focused siblings, though it does not explicitly name sibling tools.
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 intended use is implied: search the full company dataset using ES/SQL or paginate with scroll_token. However, there is no explicit guidance on when to choose this over pdl_company_enrich, pdl_autocomplete, or other sibling tools, and no exclusions are stated.
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. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as read-only, and the description reinforces this with 'GET /ip/enrich'. It adds behavior beyond the schema: a 1:1 match against PDL's IP dataset, returning location/company data and optionally person data. It does not discuss rate limits or no-match behavior, but the readOnlyHint lowers the burden.
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?
The description is only two sentences and each one earns its place: the first states the purpose and output, the second gives the exact endpoint. There is no filler, redundancy, or repetition of the tool name/title.
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 enrichment tool with one required parameter and fully documented optional parameters, the description covers what the tool does and how to invoke it. The lack of an output schema is partially mitigated by naming the returned data categories, though the exact response shape and no-match behavior are not specified.
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 the baseline of 3 applies. The description's 'optionally associated person data' loosely maps to return_person, but it adds no extra semantics for ip, pretty, titlecase, or min_confidence beyond what the schema already provides.
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 specifies a concrete verb ('enrich'), resource ('IP address'), and outcome ('location, company, and (optionally) associated person data'). It also names the matching mode ('1:1 match') and the API endpoint, which clearly distinguishes it from the person/company search and identify siblings.
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 exact-match lookup ('1:1 match') and hints at a person-data use case, giving some context for when to call it. However, it never explicitly tells an agent when to prefer this tool over pdl_person_identify or the other search/enrich siblings, nor does it state any exclusions.
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. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint annotation, the description discloses meaningful operational behavior: the API is Beta and may return HTTP 403 without plan access, each returned posting costs 1 credit, and the endpoint is POST /job_posting/search. This adds cost and auth context that annotations do not provide.
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?
The description is compact and front-loaded with the tool's core purpose and dataset, followed by caveats and endpoint. Every sentence carries useful information, and there is no filler or repetition of schema details.
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?
The description covers the key operational factors: dataset scope, query modes, beta/auth caveat, credit cost, and endpoint. With no output schema, it does not describe the response shape or pagination flow, but the scroll_token parameter in the schema partially covers pagination.
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 the schema already explains all five parameters. The description adds a high-level note about the two query modes but does not add substantive semantics for individual parameters beyond what the schema already provides.
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 uses a specific verb ('Search') and a distinct resource ('PDL's Job Posting Dataset'), and clarifies the dataset is sourced from company career pages. This clearly separates it from the sibling tools that search people, companies, or IP data.
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 clearly establishes the dataset domain and the two supported query modes (Elasticsearch query object OR SQL string), which gives an agent enough context to select this tool. However, it does not explicitly state when to prefer SQL over Elasticsearch or mention exclusions relative to sibling search tools.
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). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the description adds meaningful behavioral detail: it returns one record with a likelihood score (1-10) or a 404 'no match' body, and clarifies the HTTP method. This goes beyond the annotation without contradicting it.
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?
The description is four short sentences with no filler: purpose, return behavior, usage guidance, and API endpoint all earn their place. The most important scoping information is front-loaded.
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 enrichment endpoint with no output schema, the description adequately covers the return shape, match confidence behavior, and likely failure mode. With 20 parameters fully documented in the schema, the description does not need to enumerate them, though a concrete example of combining inputs would have added completeness.
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 the schema fully documents all 20 parameters. The description adds a general conceptual framing ('identifying attributes') but no parameter-specific details beyond what the schema already provides, so the baseline of 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?
The description clearly states a specific action ('Find the single best-matching person profile') on a specific resource, and it names the kinds of identifying attributes accepted. It does not explicitly distinguish itself from the sibling pdl_person_identify or pdl_person_search, though 'enrich' and 'single best-matching' imply a distinct purpose.
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 advises using uniquely-identifying inputs for best results, which gives useful context about how to call the tool effectively. However, it does not state when to prefer this tool over pdl_person_identify, pdl_person_search, or pdl_company_enrich, nor does it mention any exclusion criteria.
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). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint annotation, the description discloses that it returns up to 20 profiles ranked by match score and gives the REST endpoint. It does not describe error or no-match behavior, but for a read-only identify endpoint the disclosed limits and ranking are useful added context.
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 sentences front-load the core behavior, then the positioning statement, then the API route. Every sentence earns its place and there is no redundant restating of the tool title.
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 tool with no output schema and a broad parameter set, the description covers return count, ranking, and when to choose it. It stops short of saying whether at least one attribute parameter is required to call the API, which is a minor gap given 0 required params are declared.
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?
The input schema already describes all 18 parameters at 100% coverage, so the description does not need to repeat them. The phrase 'broad, possibly-ambiguous attributes' adds a little framing, but it does not add per-parameter meaning 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?
The description names a specific action — take broad person attributes and return up to 20 ranked profiles — and immediately contrasts with enrich (1:1) and search (open-ended). This is enough for an agent to tell pdl_person_identify apart from its siblings without opening schemas.
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 explicitly says the tool sits between enrich and search and is 'ideal when you can't uniquely resolve someone', which tells the agent the selection condition versus the obvious alternatives. This is the strongest guidance possible for a sibling-disambiguation problem.
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. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the readOnlyHint annotation by disclosing sorting by completeness, scroll_token pagination, a credit cost per returned record, the API endpoint, and the two supported query languages. An agent can anticipate the operation's side effects and response behavior.
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?
Each sentence adds a distinct fact: what it searches, how to query, return/pagination behavior, cost, and API route. The most important capabilities are front-loaded, and there is no 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?
For an 8-parameter, no-output-schema tool, the description covers query selection, pagination, result ordering, and cost. It stops short of describing the actual response fields or the tradeoffs between sql and query, but the schema and context signals cover the remaining parameter-level detail.
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?
The schema already covers all 8 parameters, but the description adds the crucial relationship that sql and query are alternative modes (OR), clarifies pagination via scroll_token, and frames the search as over the Person Schema. This is meaningful value beyond the individual property descriptions.
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 an explicit action — search the full PDL Person Dataset — plus the two query modes (Elasticsearch query object or SQL string). This makes the tool's scope immediately distinct from siblings like pdl_person_enrich and pdl_person_identify, even though it doesn't 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?
The description clearly conveys general context (full-dataset search via query or SQL, pagination, credit cost) and implies it is for searching rather than enriching or identifying a known person. However, it never explicitly states when to prefer this tool over person_enrich or person_identify, nor does it give exclusions or alternative conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Frequently Asked Questions
Claiming proves that you control a remote MCP connector. It does not move, proxy, or interrupt the server.
Open the connector listing, choose Claim ownership, and sign in to Glama.
Complete one verification method:
GitHub identity — fastest for official registry listings. For a namespace such as
io.github.alice/server, link the matching GitHub user or an account that owns the GitHub organization, then choose Claim with GitHub.HTTP challenge — works when you can deploy a public file. Generate a token, publish the exact JSON Glama shows at
/.well-known/glama.jsonon the same origin as the connector, then choose Check HTTP challenge.DNS challenge — works when you control DNS but cannot change the server. Generate a token, create the exact TXT record Glama shows, wait for it to propagate, then choose Check DNS challenge.
After verification, Glama sends a confirmation email and gives you access to listing details, thumbnails, health checks, and analytics. Keep the HTTP file or DNS record in place: Glama periodically checks it and ownership remains verified while the token is discoverable.
The HTTP ownership file has this structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"claim": "glama_claim_..."
}Claim tokens are opaque, stable, and bound to the signed-in Glama account. They contain no email address or other personal information. If Glama can no longer discover a verified HTTP or DNS token, it starts a seven-day grace period before removing claim-based access. Restore the same token during that period to keep ownership verified. Never publish an email address, Glama session token, GitHub token, or connector credential as ownership proof.
If verification fails, confirm that you copied the current token exactly. The HTTP file must be public, return valid JSON with a successful HTTP response, and stay on the connector's origin. DNS changes may need more time to propagate. A claim cannot transfer to a different origin or hostname: if the connector target changes, Glama starts the grace period and the new target must be claimed separately after the previous claim is released.
For a connector linked to the official MCP Registry, registry updates continue to replace its name, description, and URL by default. After claiming, open Manage connector and enable Use Glama listing details as the source of truth if edits made on Glama should be preserved. Categories and thumbnails are always managed on Glama; registry linkage and technical connection settings continue to sync.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
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.1MIT- AlicenseAqualityBmaintenanceProvides 25 tools to enrich company, person, contact, school, and job data via the Enrich Layer API, enabling lookups, profiles, and contact discovery.2540MIT
- AlicenseNot gradedqualityDmaintenanceProvides comprehensive IP and domain security intelligence, enabling analysis of IP addresses and domains for threat and reputation information.MIT
- AlicenseNot gradedqualityBmaintenanceAccount-based marketing enrichment for AI agents. Enriches people and companies from email, LinkedIn URL, or domain with cited multi-source fields.631MIT