DataLayer MCP
This server provides B2B data enrichment and analysis tools for AI agents, with access to 60M+ companies and 300M+ verified contacts for lead generation, market research, and sales intelligence.
Enrich Companies (
enrich_company): Full company profiles including industry, headcount, revenue, tech stack, funding history, web traffic, Google ad spend, and employee growth rate.Enrich People (
enrich_person): Complete contact profiles with verified email, phone, job title, seniority, LinkedIn URL, and current employer.Search Companies (
search_companies): Search 60M+ companies using filters like industry, location, employee size, tech stack, funding, ad spend, web traffic, and growth rate.Search People (
search_people): Search 300M+ contacts by job title, seniority, function, company, location, and filter by verified email or phone availability.Lookup a Person (
lookup_person): Find a specific individual using email, phone, LinkedIn URL, or name + company domain.Lookup a Company (
lookup_company): Find a specific company by domain, LinkedIn URL, or name.List Company Employees (
company_employees): Browse employees with filters for seniority, job function, and email availability.Company Headcount Breakdown (
company_headcount): Department-level headcount across 15 departments.Company Tech Stack (
company_technographics): Full technology stack across 16 categories (CRM, cloud, marketing automation, analytics, etc.).Company Job Openings (
company_jobs): Open job counts by department as a hiring intent signal.Buying Intent Signals (
find_intent_signals): Companies ranked by buying intent based on web traffic, Google ad spend, hiring velocity, employee growth, and recent funding (5 credits per result).
Use cases include building targeted lead lists, CRM enrichment, recruitment sourcing, competitive analysis, and investment due diligence.
Enables identification of companies spending on Google Ads as part of buying intent signals and company intelligence analysis.
Allows enrichment of CRM data by providing company and contact information that can be integrated into HubSpot workflows and pipelines.
Supports automation workflows by enabling data enrichment triggers from Make platform for prospecting and CRM data management.
Enables automation workflows by providing data enrichment triggers from n8n platform for lead generation and CRM data management.
Provides tech stack analysis capabilities including identifying CRM, marketing automation, and other technology usage at companies like Notion.
Provides the MCP server package distribution and installation through npm registry.
Enables candidate sourcing by identifying companies using specific technologies like React for recruitment and talent mapping purposes.
Allows enrichment of CRM data by providing company and contact information that can be integrated into Salesforce workflows and pipelines.
Provides company and employee data enrichment capabilities for e-commerce platforms like Shopify, including contact finding and organizational analysis.
Provides company and contact enrichment capabilities for financial technology companies like Stripe, including executive identification and email verification.
Enables candidate sourcing by identifying companies using specific technologies like TypeScript for recruitment and talent mapping purposes.
DataLayer MCP Server
Give your AI agent access to 60M+ companies and 300M+ verified contacts. Enrich leads, find work emails, discover tech stacks, and identify buying intent — directly from Claude, Cursor, Windsurf, or any MCP-compatible AI agent.
🚀 New: Hosted MCP server. The recommended way to connect to DataLayer is now the hosted remote MCP server at
https://api.datalayer.sh/mcp. It uses Streamable HTTP (MCP spec 2025-11-25) and OAuth 2.1 + Dynamic Client Registration — paste the URL into Claude.ai, click Approve, done. No install, no API key in the agent. See "Hosted MCP Server: One URL, OAuth, No Install" for the full setup. This npm package (stdio transport) is still maintained as a fallback for environments that can't reach a remote server.
Recommended: Hosted Server (no install)
URL: https://api.datalayer.sh/mcpClient | Setup |
Claude.ai | Settings → Connectors → Add custom connector → paste URL → click Approve |
Claude Code |
|
Cursor |
|
Headless |
|
OAuth metadata (RFC 9728): https://api.datalayer.sh/.well-known/oauth-protected-resource
The rest of this README covers the legacy stdio package for environments where the hosted server isn't reachable.
Related MCP server: Prospeo MCP Server
What is this (the stdio package)?
DataLayer is a B2B data enrichment API. This MCP server lets AI agents call it directly — no code, no HTTP requests, just natural language.
Ask your agent:
"Find the VP of Engineering at Stripe and get their verified email"
"Show me all SaaS companies in the US using Salesforce with 50+ employees that are actively hiring"
"What's the tech stack at HubSpot? Do they use AWS or GCP?"
"Find companies spending $10K+/mo on Google Ads with employee growth above 15%"
The agent calls the right DataLayer tool, gets structured data back, and reasons about it.
Install
Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"datalayer": {
"command": "npx",
"args": ["-y", "@datalayer-sh/mcp"],
"env": {
"DATALAYER_API_KEY": "sk_live_your_key_here"
}
}
}
}Cursor
Add to .cursor/mcp.json in your project root:
{
"mcpServers": {
"datalayer": {
"command": "npx",
"args": ["-y", "@datalayer-sh/mcp"],
"env": {
"DATALAYER_API_KEY": "sk_live_your_key_here"
}
}
}
}Windsurf / Other MCP Clients
Same config pattern. Set the DATALAYER_API_KEY environment variable and run npx -y @datalayer-sh/mcp via stdio.
Get your API key
Sign up at datalayer.sh (free, no credit card)
Go to Dashboard → API Keys → Create key
Copy the
sk_live_...key into your config
10 free credits included — enough to test every tool.
What Can You Do?
Find People & Emails
Tool | What it does | Credits |
| Get name, verified email, phone, job title, seniority, LinkedIn URL for any contact | 1 |
| Find a person by email, phone number, LinkedIn URL, or name + company | 1 |
| Search 300M+ contacts by title, seniority, function, company, location | 1/result |
| List decision-makers at any company, filtered by role and seniority | 1 |
Example: "Find all VPs of Engineering at Shopify with verified emails"
Research Companies
Tool | What it does | Credits |
| Full company profile — industry, headcount, revenue, funding, tech stack, traffic, ad spend | 1 |
| Find a company by domain, LinkedIn URL, or name | 1 |
| Search 60M+ companies by industry, size, tech stack, funding, traffic, growth | 1/result |
Example: "Show me Series A fintech companies in the US with 50-200 employees"
Company Intelligence
Tool | What it does | Credits |
| Full tech stack across 16 categories — CRM, cloud, marketing automation, analytics, etc. | 1 |
| Department breakdown (engineering, sales, marketing, etc. — 15 departments) | 1 |
| Open roles by department — a hiring intent signal | 1 |
Example: "What CRM does Notion use? What about their marketing automation stack?"
Buying Intent Signals
Tool | What it does | Credits |
| Companies ranked by buying intent — web traffic, Google ad spend, hiring velocity, employee growth, recent funding | 5/result |
Example: "Find companies in the SaaS industry that are spending heavily on Google Ads and growing fast"
Use Cases
For Sales & GTM Teams
Build targeted lead lists: "Find CTOs at SaaS companies with 50-500 employees using AWS"
Enrich CRM data: Pipe company + contact data into HubSpot or Salesforce
Identify buying intent: Find companies actively hiring + spending on ads = ready to buy
Competitor analysis: "What tech stack does [competitor] use? Who are their key hires?"
For Recruiters
Source candidates: "Find senior engineers at companies using React and TypeScript in San Francisco"
Map org charts: Get headcount by department for any company
Track hiring signals: Companies with many open roles = growing = recruiting opportunities
For Investors & Analysts
Due diligence: Full company profile with funding history, growth rate, tech stack
Deal sourcing: "Find recently funded AI companies with high employee growth"
Market mapping: Search by industry, size, technology, and geography
For Developers & AI Agents
Automate prospecting: Build Claude Code pipelines that enrich leads automatically
n8n / Make workflows: Trigger enrichment from any automation platform
CRM enrichment bots: Agents that keep your CRM data fresh and complete
Data Coverage
Metric | Coverage |
Companies | 60M+ worldwide |
Contacts | 300M+ verified professionals |
Emails | Verified with 90-day re-verification cycle |
Phone numbers | Direct dials and mobile numbers |
Tech stack | 16 categories (CRM, cloud, marketing, analytics, etc.) |
Signals | Google Ad Spend, web traffic, employee growth, funding, hiring velocity |
Geography | Global — US, EU, APAC, LATAM |
How Credits Work
1 credit = 1 enrichment (company or person)
Search results: 1 credit per result returned
Intent signals: 5 credits per result (premium data)
Failed lookups (404): Free — no credits consumed
Credits never expire on top-up packs
10 free credits on signup. Plans from $49/mo.
Environment Variables
Variable | Required | Description |
| Yes | Your API key from datalayer.sh |
| No | Override API base URL (default: |
Why DataLayer?
DataLayer | Apollo | Clay | ZoomInfo | |
MCP server | Yes | Limited | No | No |
REST API | Yes | Limited | No | Limited |
Intent signals | Yes (unique) | Some | No | Yes |
Pricing | From $49/mo | $49+/user/mo | $185+/mo | $6K+/yr |
Credits expire | Never | Monthly | Monthly | Annual |
Legal risk | Licensed data | OK | Varies | OK |
Failed lookups | Free | Charged | Charged | Charged |
Links
Live Demo — try the data, no signup required
FAQ
Do I need to write code to use this? No. Install the MCP server, add your API key, and talk to your AI agent in natural language. The agent handles everything.
What AI tools does this work with? Any MCP-compatible client: Claude Desktop, Claude Code, Cursor, Windsurf, Cline, Continue, and more.
Is the data scraped from LinkedIn? No. DataLayer uses licensed, GDPR/CCPA-compliant data. No scraping, no legal risk. (ProxyCurl was shut down for scraping — we don't have that problem.)
How fresh is the data? Contacts are re-verified on a 90-day cycle. Company data is refreshed monthly.
What happens if a lookup returns no results? You're not charged. Failed lookups (404s) are free.
Contributing
Issues and pull requests are welcome. Please open an issue first to discuss what you'd like to change.
License
Available Tools
11 toolscompany_employeesC
List employees at a company, filterable by seniority and function.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Company domain (e.g., stripe.com) | |
| seniority | No | Filter by seniority (e.g., VP, Director, C-Suite) | |
| function | No | Filter by function (e.g., Engineering, Sales) | |
| has_email | No | Only return people with an email | |
| page | No | Page number (default 1) | |
| per_page | No | Results per page (max 100, default 25) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states it's a listing/filtering operation. It doesn't disclose behavioral traits like pagination behavior (implied by 'page' and 'per_page' parameters but not explained), rate limits, authentication requirements, data freshness, or what happens when no results are found. The description adds minimal context beyond the basic 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?
Single sentence, front-loaded with the core purpose, zero waste. Every word earns its place by specifying the action, resource, and key filtering capabilities 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?
For a tool with 6 parameters, no annotations, and no output schema, the description is inadequate. It doesn't explain the return format (e.g., list of employee objects with what fields), pagination behavior, error conditions, or how filtering logic works (AND/OR). Given the complexity and lack of structured data, the description should provide more context to be complete.
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 6 parameters thoroughly. The description mentions 'filterable by seniority and function', which aligns with two parameters but doesn't add meaning beyond what the schema provides (e.g., explaining how filters combine or providing examples). With high schema coverage, baseline 3 is appropriate as the description doesn't significantly enhance parameter understanding.
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 action ('List employees') and resource ('at a company'), with specific filtering capabilities ('filterable by seniority and function'). It distinguishes from some siblings like 'company_headcount' or 'company_jobs' by focusing on individual employees rather than aggregate counts or job postings, though it doesn't explicitly differentiate from 'search_people' which might have overlapping functionality.
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 explicit guidance on when to use this tool versus alternatives like 'search_people', 'lookup_person', or 'enrich_person'. The description mentions filtering by seniority and function, but doesn't specify prerequisites (e.g., needing a company domain) or when other tools might be more appropriate for different use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
company_headcountC
Get headcount breakdown by department (15 departments) for a company.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Company domain (e.g., stripe.com) |
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 'Get headcount breakdown', implying a read-only operation, but does not specify data sources, accuracy, rate limits, authentication needs, or potential errors. This leaves significant gaps in understanding how the tool behaves beyond its basic function.
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 purpose without unnecessary words. It is front-loaded with the core action and resource, making it easy to parse quickly, and every part of the sentence contributes to understanding the tool's function.
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 lack of annotations and output schema, the description is incomplete. It does not explain what the output looks like (e.g., format, structure of the breakdown), potential limitations, or how it integrates with sibling tools. For a tool with no structured behavioral data, more detail is needed to fully guide the agent.
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, with the 'domain' parameter clearly documented. The description adds minimal value by implying the domain is for a company but does not provide additional context like format examples beyond the schema or explain how the domain maps to the headcount data. This meets the baseline 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 action ('Get headcount breakdown') and resource ('by department for a company'), specifying the scope of 15 departments. However, it does not explicitly differentiate from sibling tools like 'company_employees' or 'lookup_company', which might provide overlapping or related company data, leaving some ambiguity in tool selection.
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 such as 'company_employees' or 'lookup_company'. It lacks context on prerequisites, exclusions, or specific scenarios where this tool is preferred, leaving the agent to infer usage based on the purpose alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
company_jobsB
Get open job counts by department — a hiring intent signal.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Company domain (e.g., stripe.com) |
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 the tool gets data but doesn't disclose behavioral traits like whether it's read-only, requires authentication, has rate limits, or what format the output returns. The phrase 'hiring intent signal' adds some context but lacks operational details needed for safe invocation.
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 extremely concise with two short phrases that directly convey purpose and context. Every word earns its place: 'Get open job counts by department' states the action, and '— a hiring intent signal' adds value without redundancy. It's front-loaded and wastes no space.
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 low complexity (1 parameter, no output schema, no annotations), the description is minimally adequate. It covers the basic purpose but lacks details on output format, error handling, or integration with sibling tools. Without annotations or output schema, more behavioral context would improve completeness for reliable 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?
Schema description coverage is 100%, with the single parameter 'domain' fully documented in the schema. The description doesn't add any parameter-specific information beyond what the schema provides, such as examples or constraints. Baseline 3 is appropriate since the schema handles parameter documentation adequately.
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: 'Get open job counts by department' specifies the verb (get) and resource (open job counts by department). It distinguishes from siblings like 'company_employees' or 'company_headcount' by focusing on job openings rather than employee data. However, it doesn't explicitly differentiate from 'find_intent_signals' which might overlap conceptually.
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 minimal usage guidance with '— a hiring intent signal' hinting at context, but it doesn't specify when to use this tool versus alternatives like 'company_headcount' for total employees or 'find_intent_signals' for broader intent analysis. No explicit when-not-to-use or prerequisite information is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
company_technographicsC
Get the full tech stack of a company across 16 categories — CRM, cloud, marketing automation, analytics, and more.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Company domain (e.g., stripe.com) |
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. It states what the tool does (retrieves tech stack) but provides no information about authentication requirements, rate limits, data freshness, error conditions, or response format. For a data retrieval tool with zero annotation coverage, this leaves significant behavioral gaps unaddressed.
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 appropriately concise - a single sentence that communicates the core functionality efficiently. It's front-loaded with the main purpose and includes helpful examples. No wasted words or redundant information, though it could potentially benefit from slightly more structure given the behavioral gaps.
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 data retrieval tool with no annotations and no output schema, the description is insufficiently complete. It doesn't explain what the return format looks like, whether the response includes all 16 categories or just some, how comprehensive the 'full tech stack' claim is, or any limitations. Given the complexity of tech stack data and lack of structured output documentation, more context is needed.
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 information beyond what the schema already provides. With 100% schema description coverage (the domain parameter is well-documented in the schema), the baseline is 3. The description doesn't elaborate on domain format requirements, validation rules, or edge cases, so it doesn't add value beyond the structured 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 tool's purpose: 'Get the full tech stack of a company across 16 categories' with specific examples (CRM, cloud, marketing automation, analytics). It distinguishes from siblings like company_employees or company_headcount by focusing on technology rather than personnel. However, it doesn't explicitly differentiate from enrich_company which might also provide tech stack information.
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. With siblings like enrich_company, lookup_company, and search_companies that might provide overlapping or complementary information, there's no indication of when this specific tech stack retrieval tool is most appropriate. No prerequisites or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
enrich_companyB
Get a full company profile with signals — industry, headcount, revenue, tech stack, funding, traffic, Google ad spend, employee growth rate.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | No | Company domain (e.g., stripe.com) | |
| linkedin_url | No | Company LinkedIn URL | |
| name | No | Company name | |
| location | No | City/country to disambiguate name lookup |
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 describes what data is retrieved but lacks details on permissions, rate limits, data freshness, or response format. For a tool with no annotation coverage, this is a significant gap in transparency about how the tool behaves.
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 lists key data points without unnecessary words. It's front-loaded with the core purpose and provides specific examples of signals, making it easy to scan and understand 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 adequate for a read-only tool but incomplete. It covers what data is retrieved but lacks details on response structure, error handling, or limitations. For a tool with 4 parameters and no structured output, more context would improve 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 already documents all four parameters. The description doesn't add any parameter-specific details beyond what the schema provides, such as usage examples or constraints. Baseline 3 is appropriate when the schema handles parameter documentation.
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 with a specific verb ('Get') and resource ('full company profile'), listing specific data points like industry, headcount, revenue, and tech stack. It distinguishes from siblings like company_employees or company_headcount by offering a comprehensive profile rather than specific data slices, though it doesn't explicitly name alternatives.
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 for obtaining a broad company profile with signals, but it doesn't explicitly state when to use this tool versus alternatives like lookup_company or search_companies. No guidance on prerequisites, exclusions, or specific contexts is provided, leaving usage somewhat open to interpretation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
enrich_personB
Get a full contact profile — name, email, phone, job title, seniority, LinkedIn, current employer.
| Name | Required | Description | Default |
|---|---|---|---|
| No | Email address | ||
| linkedin_url | No | LinkedIn profile URL | |
| first_name | No | First name (combine with domain) | |
| last_name | No | Last name | |
| domain | No | Company domain (use with first_name) |
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 what data is returned but doesn't disclose behavioral traits like rate limits, authentication needs, data freshness, or error conditions. The description is purely functional without operational 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?
Single sentence efficiently lists the tool's purpose and output fields. No wasted words, front-loaded with the core action ('Get a full contact profile'). Every element earns its place by specifying the scope of enrichment.
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 no annotations and no output schema, the description adequately covers what data is returned. However, it lacks context about data sources, accuracy, or limitations given the tool's complexity and the absence of structured behavioral hints.
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 5 parameters. The description adds no parameter-specific information beyond implying that email or LinkedIn URL might be used to fetch the profile, which is already clear from parameter names. Baseline 3 is appropriate when 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 the resource 'full contact profile', listing specific data fields (name, email, phone, job title, seniority, LinkedIn, current employer). It distinguishes from siblings like lookup_person or search_people by emphasizing comprehensive enrichment rather than basic lookup.
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 explicit guidance on when to use this tool versus alternatives like lookup_person or search_people. The description implies it provides richer data but doesn't specify prerequisites, constraints, or trade-offs compared to sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_intent_signalsA
Find companies showing buying intent — scored by web traffic, Google ad spend, hiring velocity, employee growth, and funding. Costs 5 credits per result.
| Name | Required | Description | Default |
|---|---|---|---|
| min_monthly_traffic | No | Min monthly web traffic | |
| min_google_adspend | No | Min monthly Google ad spend ($) | |
| min_open_roles | No | Min total open roles across departments | |
| min_employee_growth_rate | No | Min employee growth rate (0.1 = 10%) | |
| min_total_funding | No | Min total funding ($) | |
| industries | No | Filter by industries | |
| country_codes | No | ISO country codes | |
| page | No | Page number (default 1) | |
| per_page | No | Results per page (max 100, default 25) |
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 effectively reveals key traits: the tool returns scored results based on multiple intent signals and has a cost implication ('5 credits per result'). However, it lacks details on rate limits, authentication needs, error handling, or what 'scored' means operationally (e.g., ranking methodology).
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 extremely concise and front-loaded: the first clause states the core purpose, followed by scoring criteria and cost information. Every sentence earns its place with no wasted words, making it easy for an agent to quickly grasp the tool's function and implications.
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 (9 parameters, no output schema, no annotations), the description is minimally complete. It covers purpose, scoring dimensions, and cost, but lacks details on output format, error conditions, or how results are structured (e.g., pagination behavior implied by parameters but not described). For a tool with significant parameter complexity and no output schema, more contextual information would be beneficial.
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 9 parameters thoroughly. The description adds no parameter-specific semantics beyond implying that parameters filter or score intent signals (e.g., 'scored by web traffic' relates to 'min_monthly_traffic'). This meets the baseline for high schema coverage but doesn't enhance understanding 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 tool's purpose: 'Find companies showing buying intent' with specific scoring criteria (web traffic, Google ad spend, hiring velocity, employee growth, funding). It distinguishes itself from siblings like 'search_companies' by focusing on intent signals rather than general search, though it doesn't explicitly contrast with all 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 usage for finding companies with buying intent based on specific metrics, but provides no explicit guidance on when to use this tool versus alternatives like 'search_companies' or 'lookup_company'. The cost disclosure ('Costs 5 credits per result') offers some practical context but not comparative usage rules.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lookup_companyC
Find a specific company by domain, LinkedIn URL, or name.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | No | Company domain (e.g., stripe.com) | |
| linkedin_url | No | Company LinkedIn URL | |
| name | No | Company name | |
| location | No | City/country to disambiguate name lookup |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states what the tool does, not how it behaves. It lacks information about response format, error handling, rate limits, authentication needs, or whether it's read-only or has side effects.
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 wasted words. It's appropriately sized for a simple lookup 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 lookup tool with no annotations and no output schema, the description is insufficient. It doesn't explain what information is returned, how results are structured, or behavioral aspects like whether all parameters are required or how conflicts between them are resolved.
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 four parameters thoroughly. The description adds minimal value by listing three of the four parameters (domain, LinkedIn URL, name) but doesn't explain the 'location' parameter or provide additional context 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 action ('Find') and resource ('a specific company'), specifying three lookup methods (domain, LinkedIn URL, or name). It distinguishes from siblings like 'search_companies' by focusing on specific lookup rather than broader search, though it doesn't explicitly mention this 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?
No guidance is provided about when to use this tool versus alternatives like 'search_companies' or 'enrich_company'. The description implies it's for finding specific companies but doesn't clarify use cases, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lookup_personA
Find a specific person by email, phone, LinkedIn URL, or name + company domain.
| Name | Required | Description | Default |
|---|---|---|---|
| No | Email address | ||
| phone | No | Phone number | |
| linkedin_url | No | LinkedIn profile URL | |
| name | No | Full name (combine with domain) | |
| domain | No | Company domain (use with name) |
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 what the tool does but lacks behavioral details like whether it returns partial matches, error handling for invalid inputs, rate limits, or authentication needs. For a lookup tool with zero annotation coverage, this is a significant gap.
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 front-loads the purpose and clearly lists the search criteria, making it easy to parse.
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 minimal but covers the core purpose. However, for a lookup tool with 5 parameters, it lacks details on return values, error cases, and behavioral constraints, making it only adequate.
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 5 parameters. The description lists the parameters but doesn't add meaningful semantics beyond what the schema provides (e.g., format examples, precedence rules). Baseline 3 is appropriate when 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 'Find' and the resource 'a specific person', specifying the search criteria (email, phone, LinkedIn URL, or name+domain). It distinguishes from siblings like 'search_people' (likely broader search) and 'enrich_person' (likely adds 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 implies usage when you have specific identifiers (email, phone, etc.) to find a person, contrasting with siblings like 'search_people' (likely for broader queries). However, it doesn't explicitly state when NOT to use it or name alternatives, leaving some ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_companiesA
Search 60M+ companies by industry, location, size, tech stack, funding, traffic, growth, and more. Returns paginated results.
| Name | Required | Description | Default |
|---|---|---|---|
| industries | No | Industry names (e.g., Computer Software, Financial Services) | |
| country_codes | No | ISO country codes (e.g., US, GB) | |
| employee_ranges | No | Size ranges (e.g., "11 to 50", "51 to 200") | |
| crm_tech | No | CRM tools (e.g., Salesforce, HubSpot) | |
| cloud_provider | No | Cloud providers (e.g., AWS, GCP) | |
| min_monthly_traffic | No | Min monthly web traffic | |
| min_google_adspend | No | Min monthly Google ad spend ($) | |
| min_total_funding | No | Min total funding ($) | |
| min_employee_growth_rate | No | Min employee growth rate (0.1 = 10%) | |
| page | No | Page number (default 1) | |
| per_page | No | Results per page (max 100, default 25) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the paginated behavior and the database scale, but lacks critical details like rate limits, authentication requirements, cost implications, or error handling. For a search tool with 11 parameters and no annotations, 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 front-loads key information (scale, searchable fields, pagination) with zero wasted words. Every phrase ('60M+ companies', 'by industry...', 'Returns paginated results') directly contributes to understanding the tool's purpose and behavior.
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 11-parameter complexity and no output schema, the description is minimally adequate. It covers the core functionality and pagination but lacks details on result format, error cases, or performance characteristics. With no annotations to supplement, it leaves the agent to infer many operational aspects from the schema alone.
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 11 parameters. The description adds value by summarizing the searchable fields (e.g., 'tech stack, funding, traffic') which helps contextualize the parameters, but doesn't provide additional syntax or format details beyond what the schema already specifies.
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 specific action ('Search 60M+ companies') and resource ('companies'), distinguishing it from siblings like 'lookup_company' or 'enrich_company' by emphasizing broad filtering capabilities across multiple attributes. It explicitly mentions the scale ('60M+') and the paginated return format.
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 through the listed searchable fields (industry, location, etc.), suggesting it's for broad queries, but doesn't explicitly state when to use it versus alternatives like 'lookup_company' (likely for specific company lookups) or 'search_people'. No explicit when-not-to-use guidance or prerequisite context is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_peopleB
Search 300M+ contacts by title, seniority, function, company, location, and more. Returns paginated results.
| Name | Required | Description | Default |
|---|---|---|---|
| titles | No | Job title keywords (e.g., VP Engineering, CTO) | |
| seniorities | No | Seniority levels: C-Suite, VP, Director, Manager, Staff, Entry, Intern | |
| functions | No | Job functions (e.g., Engineering, Sales) | |
| company_domains | No | Filter by employer domain | |
| company_name | No | Company name (fuzzy match) | |
| country_codes | No | ISO country codes (e.g., US, GB) | |
| has_email | No | Only return people with a verified email | |
| has_phone | No | Only return people with a phone number | |
| is_current | No | Only return people in their current role | |
| page | No | Page number (default 1) | |
| per_page | No | Results per page (max 100, default 25) |
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 'Returns paginated results', which is useful, but doesn't cover other critical behaviors like rate limits, authentication requirements, data freshness, error conditions, or whether this is a read-only operation. For a search tool with 11 parameters, this leaves significant gaps in understanding how the tool behaves.
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 extremely concise with just two sentences that efficiently convey scope ('300M+ contacts'), searchable fields, and pagination behavior. Every word earns its place with zero redundancy or 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 tool's complexity (11 parameters, no annotations, no output schema), the description is incomplete. While it efficiently states purpose and pagination, it lacks crucial context about authentication, rate limits, result format, error handling, and differentiation from sibling tools. For a search tool of this scale, more behavioral and usage context would be 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?
The description lists example search fields (title, seniority, function, company, location) which aligns with the input schema parameters. Since schema description coverage is 100%, the schema already documents all parameters thoroughly. The description adds minimal value beyond what's in the schema, meeting the baseline score 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 tool's purpose with specific verbs ('Search 300M+ contacts') and resources ('contacts'), and distinguishes it from siblings by specifying it searches by multiple attributes like title, seniority, function, company, and location. This is more comprehensive than sibling tools like 'lookup_person' or 'enrich_person' which likely focus on individual records.
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 'lookup_person', 'enrich_person', or 'company_employees'. It mentions what the tool does but doesn't specify use cases, prerequisites, or exclusions, leaving the agent to infer usage from the parameter list 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.
11 tool updates
v0.1.3- First observed
company_employees - First observed
company_headcount - First observed
company_jobs - First observed
company_technographics - First observed
enrich_company - First observed
enrich_person - First observed
find_intent_signals - First observed
lookup_company - First observed
lookup_person - First observed
search_companies - First observed
search_people
TDQS
Scored across 11 tools
Each tool has a clearly distinct purpose with no significant overlap: company-focused tools (employees, headcount, jobs, technographics, enrich, lookup, search) and person-focused tools (enrich, lookup, search) are well-separated, and even within categories (e.g., company_employees vs. company_headcount vs. company_jobs) target different data aspects. The descriptions reinforce these distinctions, making misselection unlikely.
Tool names follow a highly consistent verb_noun pattern throughout, using snake_case uniformly: company_employees, company_headcount, company_jobs, company_technographics, enrich_company, enrich_person, find_intent_signals, lookup_company, lookup_person, search_companies, search_people. This predictability aids agent navigation and understanding.
With 11 tools, the count is well-scoped for a data layer server covering company and person enrichment, search, and intent signals. Each tool earns its place by addressing a specific need (e.g., detailed profiles, filtered searches, headcount breakdowns), avoiding bloat while providing comprehensive coverage for the domain.
The toolset offers complete CRUD-like coverage for the data domain: lookup and search for discovery, enrich for detailed profiles, and specialized tools for headcount, jobs, technographics, and intent signals. There are no obvious gaps; agents can perform end-to-end workflows from finding entities to analyzing their attributes and signals.
Maintenance
Related MCP Connectors
Search companies, enrich contacts, and reveal emails and phones from your AI agent.
Lead enrichment for AI agents: email finder, company enrichment, people data, firmographics.
B2B lead and company data for AI agents: free audience sizing, search, enrich, emails, phones.
Real-time B2B data for agents: search and enrich 1B+ people and 200M+ company profiles.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceBytemine MCP Server – Search 130M+ B2B contacts and enrich profiles with verified emails & phone numbers directly from Claude, Cursor, and other AI assistants via the Model Context Protocol.4-

Prospeo MCP Serverofficial
AlicenseAqualityFmaintenanceEnables AI tools to search and enrich B2B leads, including finding professional emails, company profiles, and filtering people and companies by various criteria.5343 npmMIT- FlicenseNot gradedqualityCmaintenanceArgorant MCP Server — give your AI agent direct access to 614M verified B2B contacts. Query by industry, role, geography, and 100+ filters, then export emails verified by a live SMTP probe at request time (catch-alls flagged, invalids free). OAuth-secured. Works with Claude, ChatGPT, Cursor, and any MCP client. Endpoint: https://mcp.argorant.com/mcp1-

Signaliz MCPofficial
FlicenseNot gradedqualityDmaintenanceProvides MCP clients with 60+ APIs for B2B data enrichment, lead generation, email verification, company intelligence, and agentic GTM workflows.-