datamerge avatar

DataMerge MCP

ai.datamerge/mcp

Gives Claude access to a massive B2B database covering over 375 million companies worldwide. You can pull legal entity information, map out corporate hierarchies to understand parent-subsidiary relationships, and retrieve contact data for business outreach. Reach for this when you need to enrich CRM data, research potential clients, verify company details, or build lead lists without switching between multiple data providers. The streamable HTTP transport means you can integrate it directly into workflows where Claude needs to validate or supplement company information on the fly.

tools
23
auth
Secret needed
transport
HTTP
last updated
Feb 27, 2026

Install

From registry metadata
$ npx add-mcp https://mcp.datamerge.ai --name datamerge --header 'Authorization: Bearer ${API_TOKEN}'

Run in your terminal. add-mcp asks which agents to add it to, then asks for each value it needs. Add -g to install it for every project.

Review the command, arguments and environment values before installing. MCP servers run with your local permissions.

Other ways

Claude Code

$ claude mcp add --transport http datamerge https://mcp.datamerge.ai --header 'Authorization: YOUR_AUTHORIZATION'

Run in your terminal. Add --scope user to make it available in every project.

Tools

Verified live · 23 tools

Verified live against the running server on Nov 6, 2026.

configure_datamergeConfigure DataMerge API authentication (required before using other tools if DATAMERGE_API_KEY is not set).2 params

Configure DataMerge API authentication (required before using other tools if DATAMERGE_API_KEY is not set).

Parameters* required
apiKeystring
DataMerge API key. Get one at https://app.datamerge.ai (20 free credits).
baseUrlstring
Optional custom API base URL (default: https://api.datamerge.ai).
start_company_enrichmentPOST /v1/company/enrich. Enrich one or more companies by domain. Returns a job_id (async). Single: domain. Batch: domains, country_code, global_ultimate, list, skip_if_exists.9 params

POST /v1/company/enrich. Enrich one or more companies by domain. Returns a job_id (async). Single: domain. Batch: domains, country_code, global_ultimate, list, skip_if_exists.

Parameters* required
company_namestring
Company name (used when domain is not available).
country_codestring
Optional ISO 2-letter country code to improve matching.
domainstring
Company website domain (e.g. example.com).
domainsarray
Batch: multiple domains to enrich.
global_ultimateboolean
When true, always return the global ultimate parent.
liststring
List slug to add enriched companies to.
skip_if_existsboolean
When true, skip domains that are already in the list.
strict_matchboolean
When true, require a strict match for enrichment.
webhook_urlstring
Optional webhook URL to receive job completion notifications.
get_company_enrichment_resultGET /v1/company/enrich/{job_id}/status. Poll until status is "completed" or "failed". Response includes record_ids. Status values: queued · processing · completed · failed.1 params

GET /v1/company/enrich/{job_id}/status. Poll until status is "completed" or "failed". Response includes record_ids. Status values: queued · processing · completed · failed.

Parameters* required
job_id*string
The enrichment job ID returned by start_company_enrichment. Poll until status is "completed" or "failed".
start_company_enrichment_and_waitPOST /v1/company/enrich then poll GET /v1/company/enrich/{job_id}/status until status is "completed" or "failed" or timeout. Same params as start_company_enrichment plus poll_interval_seconds and timeout_seconds.11 params

POST /v1/company/enrich then poll GET /v1/company/enrich/{job_id}/status until status is "completed" or "failed" or timeout. Same params as start_company_enrichment plus poll_interval_seconds and timeout_seconds.

Parameters* required
company_namestring
Company name (used when domain is not available).
country_codestring
Optional ISO 2-letter country code to improve matching.
domainstring
Company website domain (e.g. example.com).
domainsarray
Batch: multiple domains to enrich in one job.
global_ultimateboolean
When true, always return the global ultimate parent.
liststring
List slug to add enriched companies to.
poll_interval_secondsnumber
How often to poll the job status (in seconds). Defaults to 5 seconds.
skip_if_existsboolean
When true, skip domains already in the list.
strict_matchboolean
When true, require a strict match for enrichment.
timeout_secondsnumber
Maximum time to wait for completion (in seconds). Defaults to 60 seconds.
webhook_urlstring
Optional webhook URL to receive job completion notifications.
run_company_enrichmentAgent-friendly company enrichment. On the first call provide enrichment params (domain, domains, company_name, country_code, etc.); the server starts the job and polls internally for up to ~25s. If the job is still running, the response will be {status:"pending", continuation_...12 params

Agent-friendly company enrichment. On the first call provide enrichment params (domain, domains, company_name, country_code, etc.); the server starts the job and polls internally for up to ~25s. If the job is still running, the response will be {status:"pending", continuation_...

Parameters* required
company_namestring
continuation_tokenstring
Opaque token from a prior pending response. When set, all other params are ignored.
country_codestring
domainstring
Company website domain.
domainsarray
Batch: multiple domains in one job.
global_ultimateboolean
liststring
List slug to add enriched companies to.
max_wait_secondsnumber
Server-side wait budget per call. Default 25, hard-capped to stay under 30s timeouts.
refreshboolean
When true, bypass DataMerge dedup: always re-enrich and charge credits even if the domain is already on a list. Use for multi-tenant resellers (e.g. Faro).
skip_if_existsboolean
strict_matchboolean
webhook_urlstring
run_contact_enrichAgent-friendly contact enrichment. On the first call provide contacts and enrich_fields; the server starts the job and polls internally for up to ~25s. If still running, returns {status:"pending", continuation_token, attempt, elapsed_seconds} — you MUST immediately call run_co...6 params

Agent-friendly contact enrichment. On the first call provide contacts and enrich_fields; the server starts the job and polls internally for up to ~25s. If still running, returns {status:"pending", continuation_token, attempt, elapsed_seconds} — you MUST immediately call run_co...

Parameters* required
contactsarray
Array of contacts. Identify each with `linkedin_url` and/or (`firstname`+`lastname`). ALWAYS include `domain` (company website) when you know it — FullEnrich's email accuracy drops sharply without...
continuation_tokenstring
Opaque token from a prior pending response. When set, all other params are ignored.
enrich_fieldsarray
e.g. ["contact.emails","contact.phones"].
max_wait_secondsnumber
Server-side wait budget per call. Default 25, hard-capped to stay under 30s timeouts.
refreshboolean
When true, bypass DataMerge dedup: always re-enrich every contact and charge credits, even if the same contact was enriched in the last 30 days. Use for multi-tenant resellers (e.g. Faro).
return_any_domainboolean
Set to true to allow enrichment for contacts that have no `domain`. FullEnrich will pick whichever current employer it considers most probable, which may not match what you expect for people with m...
run_contact_searchAgent-friendly contact search. On the first call provide domains and enrich_fields; the server starts the job and polls internally for up to ~25s. If still running, returns {status:"pending", continuation_token, attempt, elapsed_seconds} — you MUST immediately call run_contact...10 params

Agent-friendly contact search. On the first call provide domains and enrich_fields; the server starts the job and polls internally for up to ~25s. If still running, returns {status:"pending", continuation_token, attempt, elapsed_seconds} — you MUST immediately call run_contact...

Parameters* required
company_liststring
Alternative to `domains`: company list slug.
continuation_tokenstring
Opaque token from a prior pending response. When set, all other params are ignored.
domainsarray
Company domains to search for contacts at.
enrich_fieldsarray
At least one of "contact.work_emails", "contact.emails", "contact.phones".
job_titlesobject
Optional include/exclude job title filters.
liststring
Target contact list slug for results.
locationobject
Optional include/exclude location filters.
max_results_per_companyinteger
Max contacts to return per company.
max_wait_secondsnumber
Server-side wait budget per call. Default 25, hard-capped to stay under 30s timeouts.
refreshboolean
When true, downstream enrichment bypasses dedup and always charges credits for each contact. Use for multi-tenant resellers (e.g. Faro).
get_companyGet a single company record. GET /v1/company/get?datamerge_id={id} or ?record_id={uuid}. Provide either datamerge_id (charges 1 credit) or record_id (free). Not both. Optional: add_to_list — list slug to add the company to (only with datamerge_id).3 params

Get a single company record. GET /v1/company/get?datamerge_id={id} or ?record_id={uuid}. Provide either datamerge_id (charges 1 credit) or record_id (free). Not both. Optional: add_to_list — list slug to add the company to (only with datamerge_id).

Parameters* required
add_to_liststring
List slug to add the company to. Only valid when using datamerge_id.
datamerge_idstring
DataMerge company ID. Charges 1 credit.
record_idstring
Your record UUID from a previous enrichment. Does not consume credits.
get_company_hierarchyGet all entities in the same global ultimate hierarchy. GET /v1/company/hierarchy?datamerge_id={id}. Parameters: include_names (bool, charges 1 credit), include_branches (bool), only_subsidiaries (bool), max_level (int), country_code (array), page (int).7 params

Get all entities in the same global ultimate hierarchy. GET /v1/company/hierarchy?datamerge_id={id}. Parameters: include_names (bool, charges 1 credit), include_branches (bool), only_subsidiaries (bool), max_level (int), country_code (array), page (int).

Parameters* required
country_codearray
Filter entities by ISO 2-letter country code(s).
datamerge_id*string
DataMerge company ID. Required.
include_branchesboolean
Include branch entities.
include_namesboolean
Include entity names. Charges 1 credit.
max_levelinteger
Maximum hierarchy depth.
only_subsidiariesboolean
Return only subsidiaries.
pageinteger
Page number for paginated results (1-based).
contact_searchPOST /v1/contact/search. Search for contacts at specified companies. Returns a job_id (async, 202). enrich_fields required (at least one of contact.emails or contact.phones). Use company_list (slug) instead of domains to search a saved list.7 params

POST /v1/contact/search. Search for contacts at specified companies. Returns a job_id (async, 202). enrich_fields required (at least one of contact.emails or contact.phones). Use company_list (slug) instead of domains to search a saved list.

Parameters* required
company_liststring
List slug instead of domains.
domainsarray
Company domains to search.
enrich_fields*array
At least one of "contact.emails" or "contact.phones". Each email costs 1 credit; phone 4 credits.
job_titlesobject
Optional include/exclude job title filters.
locationobject
Location filters: include/exclude with type and value (country, region, city).
max_results_per_companynumber
Max contacts per company.
webhookstring
Optional webhook URL to notify when the job completes.
get_contact_search_statusGET /v1/contact/search/{job_id}/status. Poll until status is "completed" or "failed". Response includes record_ids.1 params

GET /v1/contact/search/{job_id}/status. Poll until status is "completed" or "failed". Response includes record_ids.

Parameters* required
job_id*string
The contact search job ID returned by contact_search. Poll until status is "completed" or "failed".
contact_enrichPOST /v1/contact/enrich. Enrich specific contacts by LinkedIn URL or name+domain. Returns a job_id (async, 202).2 params

POST /v1/contact/enrich. Enrich specific contacts by LinkedIn URL or name+domain. Returns a job_id (async, 202).

Parameters* required
contacts*array
Array of contacts: either { linkedin_url } or { firstname, lastname, domain }.
enrich_fields*array
Fields to enrich, e.g. ["contact.emails", "contact.phones"].
get_contact_enrich_statusGET /v1/contact/enrich/{job_id}/status. Poll until status is "completed" or "failed". Response includes record_ids.1 params

GET /v1/contact/enrich/{job_id}/status. Poll until status is "completed" or "failed". Response includes record_ids.

Parameters* required
job_id*string
The contact enrich job ID returned by contact_enrich. Poll until status is "completed" or "failed".
get_contactGET /v1/contact/get?record_id={uuid}. Retrieve a specific contact by record UUID. Never charges credits.1 params

GET /v1/contact/get?record_id={uuid}. Retrieve a specific contact by record UUID. Never charges credits.

Parameters* required
record_id*string
Contact record UUID from a previous contact_search or contact_enrich job. Does not consume credits.
list_listsGET /v1/lists. Optional: object_type=company or object_type=contact.1 params

GET /v1/lists. Optional: object_type=company or object_type=contact.

Parameters* required
object_typestring
Filter lists by object type: company or contact.one of company · contact
create_listPOST /v1/lists. Body: name, object_type (company or contact).2 params

POST /v1/lists. Body: name, object_type (company or contact).

Parameters* required
name*string
Display name for the new list.
object_type*string
Whether the list holds company or contact records.one of company · contact
get_list_itemsGET /v1/lists/{object_type}/{list_slug}. object_type: company or contact. list_slug: e.g. target-accounts. Parameters: page, page_size (max 100), sort_by, sort_order (asc/desc).6 params

GET /v1/lists/{object_type}/{list_slug}. object_type: company or contact. list_slug: e.g. target-accounts. Parameters: page, page_size (max 100), sort_by, sort_order (asc/desc).

Parameters* required
list_slug*string
URL-safe list identifier (e.g. target-accounts).
object_type*string
Type of list: company or contact.one of company · contact
pagenumber
Page number for pagination (1-based).
page_sizenumber
Items per page (max 100).
sort_bystring
Field name to sort by.
sort_orderstring
Sort direction: asc or desc.one of asc · desc
remove_list_itemDELETE /v1/lists/{object_type}/{list_slug}/{item_id}.3 params

DELETE /v1/lists/{object_type}/{list_slug}/{item_id}.

Parameters* required
item_id*string
Record UUID of the company or contact to remove from the list.
list_slug*string
List slug containing the item.
object_type*string
Type of list: company or contact.one of company · contact
delete_listDELETE /v1/lists/{object_type}/{list_slug}. System lists cannot be deleted.2 params

DELETE /v1/lists/{object_type}/{list_slug}. System lists cannot be deleted.

Parameters* required
list_slug*string
List slug of the list to delete. System lists cannot be deleted.
object_type*string
Type of list: company or contact.one of company · contact
get_credits_balanceGET /v1/credits/balance. Returns credits_balance and balances (one_off, recurring, rollover, total).1 params

GET /v1/credits/balance. Returns credits_balance and balances (one_off, recurring, rollover, total).

Parameters* required
_string
This tool takes no required parameters. Call with no arguments.
health_checkCheck if the DataMerge API client is configured and can connect. Uses /auth/info.1 params

Check if the DataMerge API client is configured and can connect. Uses /auth/info.

Parameters* required
_string
This tool takes no required parameters. Call with no arguments.
contact_search_unenrichedPOST /v1/contact/search/unenriched. Find contacts without running email/phone enrichment. Returns a job_id; contacts are created in `unconfirmed` status with stable ids. BETA: requires the `contact_search_unenriched` flag on the account.6 params

POST /v1/contact/search/unenriched. Find contacts without running email/phone enrichment. Returns a job_id; contacts are created in `unconfirmed` status with stable ids. BETA: requires the `contact_search_unenriched` flag on the account.

Parameters* required
company_liststring
Alternative to domains: list slug to search across.
domainsarray
Company domains to search.
job_titlesobject
Optional include/exclude job title filters (priority-keyed include).
locationobject
max_results_per_companyinteger
webhookstring
run_contact_search_unenrichedPOST /v1/contact/search/unenriched/sync. Synchronous unenriched contact search — returns contacts inline (no polling). Requires the `contact_search_unenriched` beta flag. Limits: 10 domains and max_results_per_company ≤ 10. Response includes credits_consumed computed as 0.5 ×...5 params

POST /v1/contact/search/unenriched/sync. Synchronous unenriched contact search — returns contacts inline (no polling). Requires the `contact_search_unenriched` beta flag. Limits: 10 domains and max_results_per_company ≤ 10. Response includes credits_consumed computed as 0.5 ×...

Parameters* required
domains*array
Up to 10 company domains.
job_titlesobject
Optional include/exclude job title filters.
liststring
Target contact list slug.
locationobject
Optional include/exclude locations.
max_results_per_companyinteger
Max contacts per company (1–10).

Sponsors

Details

Categories
Sales & Marketing, Data & Analytics
Transport
HTTP
Auth
Required
Registry
MCP registry, active
Prompts
2
Tools verified
Nov 6, 2026

Related Sales & Marketing MCP servers

View all
1openlead-ai avatarOpenleadopenlead-ai/openlead-mcpB2B lead generation and prospecting: find companies like your customers and the people to contact.0stars
2bcssewl avatarTalaLevelbcssewl/talalevelSales CRM: read leads, calls, texts and emails, update deals, and send texts and emails.0stars
3chris-eaccountability avatarLLM SEO MCP — Elephant Accountabilitychris-eaccountability/elephant-accountability-mcpLLM SEO and Agent Discoverability for B2B SaaS. Pricing, fit assessment, audit requests.0stars
4ayinbox avatarAY Inboxayinbox/ayinbox-mcpCold email from your agent: contact lists, campaigns, campaign brains, reply drafts and a CRM.0stars
5earlywire avatarEarlywire — Marketing & Growth Intelligencecom.barisasa.earlywire/wireMarketing, growth & SEO intel: 120+ practitioner sources, judged daily, with citable summaries.0stars
6catchintent avatarCatchintentcom.catchintent/catchintentThe intent layer for B2B outbound. Find, triage, and act on warmth-scored leads.0stars