People Data Labs MCP Server
The People Data Labs MCP Server provides access to PDL's data models and search capabilities for enrichment and search of various entities:
Person API: Enrich individual profiles, bulk enrich multiple profiles, and search people using SQL-like queries
Company API: Enrich company profiles and search companies
Additional APIs: Search schools, locations, job titles, and skills
Utilities: Get autocomplete suggestions for fields like company, school, title, skill, and location
Used for package management and running scripts to build and configure the MCP server.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@People Data Labs MCP Serverenrich the person profile for john.doe@example.com"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
People Data Labs MCP Server
This is a Model Context Protocol (MCP) server that wraps the People Data Labs API. It provides comprehensive access to People Data Labs' various data models and search capabilities.
Features
Person API
Person Enrichment: Enrich a person's profile with additional data
People Search: Search for people matching specific criteria using SQL-like queries
Bulk Person Enrichment: Enrich multiple person profiles in a single request
Company API
Company Enrichment: Enrich a company profile with additional data
Company Search: Search for companies matching specific criteria
Additional Data Models
School Search: Search for schools matching specific criteria
Location Search: Search for locations matching specific criteria
Job Title Search: Search for job titles matching specific criteria
Skill Search: Search for skills matching specific criteria
Utilities
Autocomplete: Get autocomplete suggestions for various fields
Related MCP server: LinkedIn MCP Server
Setup
Clone this repository
Install dependencies:
npm installBuild the project:
npm run buildConfigure your People Data Labs API key using one of the provided configuration scripts
Configuration
Automatic Configuration
This project includes scripts to automatically configure the MCP server for both Claude Desktop and VS Code:
For Claude Desktop:
npm run config:claudeFor VS Code:
npm run config:vscodeBoth scripts will:
Check if the configuration file exists and create it if needed
Prompt you for your People Data Labs API key
Add the MCP server configuration to the appropriate file
Provide instructions for next steps
Manual Configuration
If you prefer to configure the MCP server manually, you need to add it to your MCP settings file. The location of this file depends on your environment:
For VS Code:
%APPDATA%\Code\User\globalStorage\rooveterinaryinc.roo-cline\settings\mcp_settings.jsonFor Claude Desktop:
%APPDATA%\Claude\claude_desktop_config.json
Add the following configuration to the mcpServers object in your MCP settings file:
{
"mcpServers": {
"peopledatalabs": {
"command": "node",
"args": ["path/to/peopledatalabs-mcp/build/index.js"],
"env": {
"PDL_API_KEY": "your-api-key-here"
}
}
}
}Replace:
path/to/peopledatalabs-mcp/build/index.jswith the actual path to the built index.js fileyour-api-key-herewith your actual People Data Labs API key
Available Tools
Person API Tools
enrich_person
Enrich a person profile with additional data from People Data Labs.
Parameters:
email(string, optional): Email address of the personphone(string, optional): Phone number of the personname(string, optional): Full name of the personprofile(array of strings, optional): Social media profile URLs of the personlocation(string, optional): Location of the person (city, state, country)company(string, optional): Company name where the person workstitle(string, optional): Job title of the personmin_likelihood(number, optional): Minimum likelihood score (0-1) for the match
Note: At least one of email, phone, name, or profile must be provided.
search_people
Search for people matching specific criteria using SQL-like queries.
Parameters:
query(string, required): SQL-like query to search for peoplesize(number, optional): Number of results to return (max 100)
bulk_person_enrich
Enrich multiple person profiles in a single request.
Parameters:
requests(array, required): Array of person enrichment requests
Company API Tools
enrich_company
Enrich a company profile with additional data.
Parameters:
name(string, optional): Name of the companywebsite(string, optional): Website of the companyprofile(array of strings, optional): Social media profile URLs of the companyticker(string, optional): Stock ticker symbol of the company
Note: At least one of name, website, profile, or ticker must be provided.
search_companies
Search for companies matching specific criteria.
Parameters:
query(string, required): SQL-like query to search for companiessize(number, optional): Number of results to return (max 100)
School API Tools
search_schools
Search for schools matching specific criteria.
Parameters:
query(string, required): SQL-like query to search for schoolssize(number, optional): Number of results to return (max 100)
Location API Tools
search_locations
Search for locations matching specific criteria.
Parameters:
query(string, required): SQL-like query to search for locationssize(number, optional): Number of results to return (max 100)
Job Title API Tools
search_job_titles
Search for job titles matching specific criteria.
Parameters:
query(string, required): SQL-like query to search for job titlessize(number, optional): Number of results to return (max 100)
Skill API Tools
search_skills
Search for skills matching specific criteria.
Parameters:
query(string, required): SQL-like query to search for skillssize(number, optional): Number of results to return (max 100)
Utility Tools
autocomplete
Get autocomplete suggestions for a partial query.
Parameters:
field(string, required): Field to autocomplete (company, school, title, skill, location)text(string, required): Partial text to autocompletesize(number, optional): Number of results to return (max 100)
Example Usage
Person API Examples
<use_mcp_tool>
<server_name>peopledatalabs</server_name>
<tool_name>enrich_person</tool_name>
<arguments>
{
"email": "john.smith@example.com"
}
</arguments>
</use_mcp_tool><use_mcp_tool>
<server_name>peopledatalabs</server_name>
<tool_name>search_people</tool_name>
<arguments>
{
"query": "SELECT * FROM person WHERE location='San Francisco' AND job_title='Software Engineer'",
"size": 5
}
</arguments>
</use_mcp_tool>Company API Examples
<use_mcp_tool>
<server_name>peopledatalabs</server_name>
<tool_name>enrich_company</tool_name>
<arguments>
{
"name": "Apple Inc."
}
</arguments>
</use_mcp_tool><use_mcp_tool>
<server_name>peopledatalabs</server_name>
<tool_name>search_companies</tool_name>
<arguments>
{
"query": "SELECT * FROM company WHERE location='New York' AND industry='Finance'",
"size": 5
}
</arguments>
</use_mcp_tool>Autocomplete Example
<use_mcp_tool>
<server_name>peopledatalabs</server_name>
<tool_name>autocomplete</tool_name>
<arguments>
{
"field": "company",
"text": "Goog"
}
</arguments>
</use_mcp_tool>License
Apache 2.0
Available Tools
10 toolsautocompleteB
Get autocomplete suggestions for a partial query
| Name | Required | Description | Default |
|---|---|---|---|
| field | Yes | Field to autocomplete (company, school, title, skill, location) | |
| size | No | Number of results to return (max 100) | |
| text | Yes | Partial text to autocomplete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. While 'Get' implies a read operation, it doesn't address authentication requirements, rate limits, error conditions, or what the suggestions look like (format, ranking, source). For a tool with no annotation coverage, this leaves significant behavioral gaps.
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 a single, efficient sentence that states the core functionality without any fluff. It's appropriately sized for a straightforward autocomplete tool and front-loads the essential 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 a read-only autocomplete tool with good schema coverage but no output schema, the description provides the basic purpose but lacks important context. Without annotations or output schema, it should ideally mention what the suggestions look like, any limitations, or how results are ordered. It's minimally adequate but has clear 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%, so the schema already documents all three parameters thoroughly. The description adds no additional parameter semantics beyond what's in the schema - it doesn't explain relationships between parameters, provide examples, or clarify edge cases. Baseline 3 is appropriate when the schema does the heavy lifting.
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 ('Get') and resource ('autocomplete suggestions') with the scope ('for a partial query'), making the purpose immediately understandable. It doesn't explicitly differentiate from sibling tools like search_* tools, but the focus on autocomplete rather than full search provides some implicit distinction.
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 provides no guidance on when to use this tool versus alternatives like the various search_* sibling tools. There's no mention of prerequisites, limitations, or comparative scenarios, leaving the agent to infer usage context entirely from the tool name and parameters.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bulk_person_enrichC
Enrich multiple person profiles in a single request
| Name | Required | Description | Default |
|---|---|---|---|
| requests | Yes | Array of person enrichment requests |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states this is for enrichment but doesn't disclose what enrichment entails, whether it's read-only or creates/modifies data, rate limits, authentication requirements, or what happens when requests fail partially. The description is too minimal for a mutation-like operation.
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?
Extremely concise single sentence with zero waste. Every word contributes to the core purpose. The description is front-loaded with the essential action and scope.
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 tool with no annotations, no output schema, and potentially complex enrichment behavior, the description is inadequate. It doesn't explain what enrichment means, what data is returned, error handling for bulk operations, or how this differs from individual enrichment. The minimal description leaves too many questions unanswered.
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 the single 'requests' parameter with its structure. The description adds no additional parameter information beyond implying bulk processing through 'multiple person profiles', which aligns with the array structure but doesn't provide format examples or constraints.
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 ('enrich') and resource ('multiple person profiles') with the scope 'in a single request'. It distinguishes from the sibling 'enrich_person' by specifying bulk/multiple operations, but doesn't fully differentiate from other enrichment/search tools in terms of use case.
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?
No guidance on when to use this tool versus alternatives like 'enrich_person' or search tools. The description implies batch processing but doesn't specify scenarios where bulk enrichment is preferred over individual enrichment or when search tools might be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
enrich_companyC
Enrich a company profile with additional data
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Name of the company | |
| profile | No | Social media profile URLs of the company | |
| ticker | No | Stock ticker symbol of the company | |
| website | No | Website of the company |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions 'enrich' but doesn't disclose if this is a read-only lookup, requires authentication, has rate limits, or what happens on failure. For a tool with no annotations, this is a significant gap in behavioral 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?
The description is a single, efficient sentence that front-loads the core purpose. There's no wasted text, and it's appropriately sized for the tool's complexity, making it easy for an agent to parse quickly.
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?
Given no annotations, no output schema, and a tool that likely returns enriched data, the description is incomplete. It doesn't explain what 'additional data' includes, the format of results, or error handling. For a data enrichment tool with these gaps, more context is needed to be fully helpful.
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%, with clear parameter descriptions in the schema. The tool description adds no additional meaning about parameters beyond implying they're inputs for enrichment. Since the schema does the heavy lifting, the baseline score of 3 is appropriate, as the description doesn't compensate but also doesn't detract.
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 the action ('enrich') and resource ('company profile'), but it's vague about what 'additional data' means. It doesn't differentiate from sibling tools like 'search_companies' or 'bulk_person_enrich', which might also provide company data. The purpose is understandable but lacks specificity.
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?
No guidance is provided on when to use this tool versus alternatives like 'search_companies' or 'enrich_person'. The description implies it's for enhancing existing company profiles, but it doesn't specify prerequisites, context, or exclusions, leaving the agent to guess based on tool names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
enrich_personC
Enrich a person profile with additional data from People Data Labs
| Name | Required | Description | Default |
|---|---|---|---|
| company | No | Company name where the person works | |
| No | Email address of the person | ||
| location | No | Location of the person (city, state, country) | |
| min_likelihood | No | Minimum likelihood score (0-1) for the match | |
| name | No | Full name of the person | |
| phone | No | Phone number of the person | |
| profile | No | Social media profile URLs of the person | |
| title | No | Job title of the person |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'enrich' but doesn't specify whether this is a read-only lookup or a write operation, what data sources are used, potential rate limits, or error handling. This leaves critical behavioral traits undefined for a tool with 8 parameters.
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 a single, efficient sentence that directly states the tool's function without unnecessary words. It is front-loaded with the core action and resource, making it highly concise and well-structured.
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?
Given the tool's complexity (8 parameters, no output schema, and no annotations), the description is insufficient. It doesn't explain what 'enrich' entails, the type of data returned, or how to interpret results like 'min_likelihood'. For a data-fetching tool with multiple inputs, more context is needed to guide effective use.
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 has 100% description coverage, so the schema already documents all 8 parameters thoroughly. The description adds no additional parameter semantics beyond implying that 'additional data' is fetched, which doesn't enhance the schema's details. This meets the baseline of 3 for high schema coverage.
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 ('enrich') and resource ('person profile') with the source ('People Data Labs'), making the purpose evident. However, it doesn't explicitly differentiate from sibling tools like 'bulk_person_enrich' or 'search_people', which limits the score to 4 instead of 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 provides no guidance on when to use this tool versus alternatives like 'bulk_person_enrich' or 'search_people'. It lacks context about prerequisites, such as which parameters are required or how to choose between them, leaving the agent without usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_companiesC
Search for companies matching specific criteria
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | SQL-like query to search for companies | |
| size | No | Number of results to return (max 100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure but offers minimal information. It states the tool searches based on 'specific criteria' but doesn't describe what those criteria entail, how results are returned (e.g., pagination, sorting), error conditions, or performance characteristics like rate limits. For a search tool with zero annotation coverage, this is insufficient to inform the agent adequately.
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 a single, efficient sentence with zero waste. It's front-loaded with the core purpose and appropriately sized for a simple search tool, avoiding unnecessary elaboration. Every word earns its place by conveying essential information without redundancy.
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?
Given the tool's complexity (a search operation with 2 parameters), lack of annotations, and no output schema, the description is incomplete. It doesn't explain what the search returns (e.g., company details, IDs), how results are structured, or any limitations beyond the schema's 'size' constraint. For a tool that likely returns structured data, more context is needed to guide the agent effectively.
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%, with both parameters ('query' and 'size') well-documented in the schema. The description adds no additional meaning beyond what the schema provides—it doesn't explain the 'SQL-like query' format or provide examples, nor does it clarify the 'size' parameter's role in result management. Baseline 3 is appropriate as the schema handles the heavy lifting.
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 tool's purpose as 'Search for companies matching specific criteria', which includes a specific verb ('Search') and resource ('companies'). It distinguishes this tool from siblings like 'search_people' or 'search_schools' by specifying the company domain, though it doesn't explicitly differentiate from similar search tools in terms of scope or methodology.
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 provides no guidance on when to use this tool versus alternatives. It doesn't mention when to choose 'search_companies' over 'autocomplete' or 'enrich_company', nor does it specify prerequisites, exclusions, or contextual triggers for usage. This lack of comparative guidance leaves the agent to infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_job_titlesC
Search for job titles matching specific criteria
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | SQL-like query to search for job titles | |
| size | No | Number of results to return (max 100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but offers minimal behavioral insight. It mentions 'matching specific criteria' but doesn't disclose key traits like whether this is a read-only operation, how results are returned (e.g., pagination, sorting), or any limitations (e.g., rate limits, authentication needs). The description is too vague to inform agent behavior effectively.
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 a single, efficient sentence with no wasted words. It's front-loaded with the core action ('Search for job titles'), making it easy to parse. However, it could be more structured by explicitly separating purpose from constraints, but its brevity is appropriate for the minimal content provided.
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?
Given the complexity of a search tool with 2 parameters, no annotations, and no output schema, the description is incomplete. It lacks details on behavioral traits, result format, and usage context. While the schema covers parameters well, the description fails to provide sufficient context for an agent to understand how to invoke and interpret this tool effectively.
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 description adds no parameter semantics beyond what the input schema provides. Schema description coverage is 100%, with clear documentation for 'query' (SQL-like search) and 'size' (result count with max 100). Since the schema does the heavy lifting, the baseline score of 3 is appropriate, as the description doesn't compensate or add extra meaning.
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 'Search for job titles matching specific criteria' clearly states the verb ('search') and resource ('job titles'), but it's vague about what 'specific criteria' entails. It distinguishes from siblings like 'search_people' or 'search_companies' by focusing on job titles, but lacks specificity about scope or functionality beyond basic search.
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 provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, exclusions, or compare to sibling tools like 'search_skills' or 'autocomplete' for related tasks. Usage is implied by the name and description alone, with no explicit context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_locationsC
Search for locations matching specific criteria
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | SQL-like query to search for locations | |
| size | No | Number of results to return (max 100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions 'search' but doesn't specify if this is read-only, has rate limits, requires authentication, or details the return format. For a search tool with zero annotation coverage, this is a significant gap in transparency.
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 a single, efficient sentence with zero waste. It's appropriately sized and front-loaded, clearly stating the tool's function without unnecessary elaboration.
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?
Given the complexity of a search tool with no annotations and no output schema, the description is incomplete. It doesn't explain behavioral traits, return values, or usage context, leaving the agent with insufficient information for effective tool 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 description coverage is 100%, so the schema already documents both parameters (query and size) with details like SQL-like syntax and max/min values. The description adds no additional meaning beyond what the schema provides, but the high coverage justifies a baseline score of 3.
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 the tool searches for locations with specific criteria, which clarifies the verb (search) and resource (locations). However, it doesn't distinguish this from sibling tools like search_companies or search_people, leaving ambiguity about what makes location searches unique. The purpose is clear but lacks sibling differentiation.
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?
No guidance is provided on when to use this tool versus alternatives. The description doesn't mention prerequisites, exclusions, or comparisons to sibling tools like autocomplete or other search functions. This leaves the agent without context for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_peopleC
Search for people matching specific criteria
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | SQL-like query to search for people | |
| size | No | Number of results to return (max 100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure but only states the basic action. It doesn't cover aspects like whether this is a read-only operation, potential rate limits, authentication needs, or what the response format looks like (e.g., pagination, result structure). This leaves significant gaps for a search tool.
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 a single, efficient sentence with zero waste. It's appropriately sized and front-loaded, clearly stating the tool's purpose without unnecessary elaboration, making it easy to parse quickly.
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?
Given the complexity of a search tool with no annotations and no output schema, the description is incomplete. It lacks details on behavioral traits, result handling, and differentiation from siblings, failing to provide enough context for effective agent use despite the concise structure.
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 description coverage is 100%, so the input schema already documents both parameters ('query' as SQL-like search and 'size' with constraints). The description adds no additional meaning beyond this, such as examples of query syntax or usage tips, resulting in a baseline score of 3.
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 the tool's purpose as searching for people with specific criteria, which is clear but vague. It uses a specific verb ('search') and resource ('people'), but doesn't distinguish from sibling tools like 'enrich_person' or 'search_companies', leaving ambiguity about scope and differentiation.
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 provides no guidance on when to use this tool versus alternatives. It doesn't mention when to choose 'search_people' over sibling tools like 'enrich_person' or 'search_companies', nor does it specify prerequisites or exclusions, leaving usage context unclear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_schoolsC
Search for schools matching specific criteria
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | SQL-like query to search for schools | |
| size | No | Number of results to return (max 100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions 'search' but doesn't disclose behavioral traits such as read-only vs. mutative nature, authentication needs, rate limits, or result format. The description is too minimal to compensate for the lack of annotations.
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 a single, efficient sentence with zero waste. It's appropriately sized and front-loaded, stating the core action without unnecessary elaboration, making it easy to parse quickly.
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?
Given no annotations and no output schema, the description is incomplete. It doesn't explain what the search returns, how results are structured, or behavioral aspects like pagination. For a search tool with two parameters, this leaves significant gaps in understanding the tool's operation.
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 the two parameters ('query' and 'size'). The description adds no meaning beyond the schema, as 'matching specific criteria' is vague and doesn't clarify parameter usage or syntax. Baseline 3 is appropriate since the schema does the heavy lifting.
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 the tool's purpose ('Search for schools') with the resource ('schools') and verb ('search'), but it's vague about what 'matching specific criteria' entails. It doesn't differentiate from sibling tools like 'search_companies' or 'search_people' beyond the resource type, lacking specificity in scope or method.
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?
No guidance is provided on when to use this tool versus alternatives. It doesn't mention prerequisites, context for 'specific criteria', or compare to siblings like 'autocomplete' or other search tools, leaving the agent without usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_skillsC
Search for skills matching specific criteria
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | SQL-like query to search for skills | |
| size | No | Number of results to return (max 100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'search' but doesn't specify whether this is a read-only operation, if it requires authentication, rate limits, or what the output format might be. It lacks critical behavioral context for a search tool.
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 a single, efficient sentence with no wasted words. It's appropriately sized for a simple search tool and front-loads the core action ('search for skills').
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?
Given no annotations and no output schema, the description is incomplete. It doesn't explain what 'skills' are in this context, how results are returned, or any behavioral traits. For a search tool with two parameters, it lacks sufficient context for effective agent use.
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 has 100% description coverage, clearly documenting the 'query' as a SQL-like string and 'size' with numeric constraints. The description adds no additional parameter semantics beyond what's in the schema, so it meets the baseline for high schema coverage without compensating value.
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 'Search for skills matching specific criteria' states a clear verb ('search') and resource ('skills'), but it's vague about what 'skills' means in this context and doesn't distinguish from sibling tools like search_people or search_companies. It provides basic purpose but lacks specificity about the domain or scope.
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 offers no guidance on when to use this tool versus alternatives like search_people or search_companies, nor does it mention prerequisites or exclusions. It's a generic statement that leaves the agent to infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
10 tool updates
v1.0.0- First observed
autocomplete - First observed
bulk_person_enrich - First observed
enrich_company - First observed
enrich_person - First observed
search_companies - First observed
search_job_titles - First observed
search_locations - First observed
search_people - First observed
search_schools - First observed
search_skills
TDQS
Each tool has a clearly distinct purpose with no ambiguity. The tools are organized around specific resources (person, company, job titles, locations, schools, skills) and actions (enrich, search, autocomplete, bulk), making it easy for an agent to select the right tool for each task without confusion.
All tool names follow a consistent verb_noun pattern using snake_case. The verbs are clear and appropriate (enrich, search, autocomplete, bulk_person_enrich), and nouns specify the target resource, creating a predictable and readable naming convention throughout the set.
With 10 tools, this server is well-scoped for its purpose of data enrichment and search. Each tool earns its place by covering distinct aspects of the People Data Labs domain, such as enriching person/company profiles and searching across various entities, without being overly sparse or bloated.
The tool set provides complete coverage for the domain of data enrichment and search. It includes enrichment for both person and company profiles, bulk operations for efficiency, and comprehensive search capabilities across multiple entities (people, companies, job titles, locations, schools, skills), with no obvious gaps that would hinder agent workflows.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
People Data Labs MCP — wraps the PDL person/company enrichment API
Enrich and search people and companies, resolve identities, and enrich IP addresses.
17-model LLM gateway + 350+ data/KYB/sanctions tools. Pay-per-call USDC via x402, no API key.
People-enrich: work email + phone, company & domain enrichment. Pay-per-call USDC, no key.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables interaction with Linear's API for managing issues, teams, and projects programmatically through the Model Context Protocol.7833MIT
- -licenseNot gradedqualityNot gradedmaintenanceA Model Context Protocol implementation that bridges language models with LinkedIn's API, enabling profile access, posting content, searching people, and retrieving company information through standardized tools.-
- AlicenseNot gradedqualityCmaintenanceEnables interaction with FireHydrant's incident management API through the Model Context Protocol. Provides programmatic access to FireHydrant's features for managing incidents, retrospectives, and operational workflows.6,5475MIT
- AlicenseNot gradedqualityFmaintenanceEnables interacting with Hubspot tools and services through a unified API and the Model Context Protocol.1MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/phxdev1/peopledatalabs-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server