
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 toolsVerified 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).
apiKeystringbaseUrlstringstart_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.
company_namestringcountry_codestringdomainstringdomainsarrayglobal_ultimatebooleanliststringskip_if_existsbooleanstrict_matchbooleanwebhook_urlstringget_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.
job_id*stringstart_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.
company_namestringcountry_codestringdomainstringdomainsarrayglobal_ultimatebooleanliststringpoll_interval_secondsnumberskip_if_existsbooleanstrict_matchbooleantimeout_secondsnumberwebhook_urlstringrun_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_...
company_namestringcontinuation_tokenstringcountry_codestringdomainstringdomainsarrayglobal_ultimatebooleanliststringmax_wait_secondsnumberrefreshbooleanskip_if_existsbooleanstrict_matchbooleanwebhook_urlstringrun_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...
contactsarraycontinuation_tokenstringenrich_fieldsarraymax_wait_secondsnumberrefreshbooleanreturn_any_domainbooleanrun_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...
company_liststringcontinuation_tokenstringdomainsarrayenrich_fieldsarrayjob_titlesobjectliststringlocationobjectmax_results_per_companyintegermax_wait_secondsnumberrefreshbooleanget_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).
add_to_liststringdatamerge_idstringrecord_idstringget_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).
country_codearraydatamerge_id*stringinclude_branchesbooleaninclude_namesbooleanmax_levelintegeronly_subsidiariesbooleanpageintegercontact_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.
company_liststringdomainsarrayenrich_fields*arrayjob_titlesobjectlocationobjectmax_results_per_companynumberwebhookstringget_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.
job_id*stringcontact_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).
contacts*arrayenrich_fields*arrayget_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.
job_id*stringget_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.
record_id*stringlist_listsGET /v1/lists. Optional: object_type=company or object_type=contact.1 params
GET /v1/lists. Optional: object_type=company or object_type=contact.
object_typestringcompany · contactcreate_listPOST /v1/lists. Body: name, object_type (company or contact).2 params
POST /v1/lists. Body: name, object_type (company or contact).
name*stringobject_type*stringcompany · contactget_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).
list_slug*stringobject_type*stringcompany · contactpagenumberpage_sizenumbersort_bystringsort_orderstringasc · descremove_list_itemDELETE /v1/lists/{object_type}/{list_slug}/{item_id}.3 params
DELETE /v1/lists/{object_type}/{list_slug}/{item_id}.
item_id*stringlist_slug*stringobject_type*stringcompany · contactdelete_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.
list_slug*stringobject_type*stringcompany · contactget_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).
_stringhealth_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.
_stringcontact_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.
company_liststringdomainsarrayjob_titlesobjectlocationobjectmax_results_per_companyintegerwebhookstringrun_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 ×...
domains*arrayjob_titlesobjectliststringlocationobjectmax_results_per_companyintegerSponsors
Details
- Categories
- Sales & Marketing, Data & Analytics
- Transport
- HTTP
- Auth
- Required
- Registry
- MCP registry, active
- Prompts
- 2
- Tools verified
- Nov 6, 2026