Connection check
verified live · 20h ago
datamerge-mcp
B2B data enrichment for 375M+ companies: legal entities, corporate hierarchies, and contacts.
Tools
23
GitHub stars
—
Installs / wk
—
Licence
—
Transport
streamable-http
Last checked
20h ago
Tools & capabilities
23 toolsRead from the running server on 20h ago.
configure_datamerge
apiKeybaseUrl
Configure DataMerge API authentication (required before using other tools if DATAMERGE_API_KEY is not set). Configure DataMerge API authentication (required before using other tools if DATAMERGE_API_KEY is not set).
contact_enrich
contacts*enrich_fields*
POST /v1/contact/enrich. Enrich specific contacts by LinkedIn URL or name+domain. Returns a job_id (async, 202). POST /v1/contact/enrich. Enrich specific contacts by LinkedIn URL or name+domain. Returns a job_id (async, 202).
contact_search
domainswebhooklocationjob_titlescompany_listenrich_fields*
+1
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 c… 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.
contact_search_unenriched
domainswebhooklocationjob_titlescompany_listmax_results_per_company
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: requ… 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.
create_list
name*object_type*
POST /v1/lists. Body: name, object_type (company or contact). POST /v1/lists. Body: name, object_type (company or contact).
delete_list
can modify data
list_slug*object_type*
DELETE /v1/lists/{object_type}/{list_slug}. System lists cannot be deleted. DELETE /v1/lists/{object_type}/{list_slug}. System lists cannot be deleted.
get_company
read-only
record_idadd_to_listdatamerge_id
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… 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).
get_company_enrichment_result
read-only
job_id*
GET /v1/company/enrich/{job_id}/status. Poll until status is "completed" or "failed". Response includes record_ids. Status values: queued · processing · completed · failed. GET /v1/company/enrich/{job_id}/status. Poll until status is "completed" or "failed". Response includes record_ids. Status values: queued · processing · completed · failed.
get_company_hierarchy
read-only
pagemax_levelcountry_codedatamerge_id*include_namesinclude_branches
+1
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), on… 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).
get_contact
read-only
record_id*
GET /v1/contact/get?record_id={uuid}. Retrieve a specific contact by record UUID. Never charges credits. GET /v1/contact/get?record_id={uuid}. Retrieve a specific contact by record UUID. Never charges credits.
get_contact_enrich_status
read-only
job_id*
GET /v1/contact/enrich/{job_id}/status. Poll until status is "completed" or "failed". Response includes record_ids. GET /v1/contact/enrich/{job_id}/status. Poll until status is "completed" or "failed". Response includes record_ids.
get_contact_search_status
read-only
job_id*
GET /v1/contact/search/{job_id}/status. Poll until status is "completed" or "failed". Response includes record_ids. GET /v1/contact/search/{job_id}/status. Poll until status is "completed" or "failed". Response includes record_ids.
get_credits_balance
read-only
_
GET /v1/credits/balance. Returns credits_balance and balances (one_off, recurring, rollover, total). GET /v1/credits/balance. Returns credits_balance and balances (one_off, recurring, rollover, total).
get_list_items
read-only
pagesort_bylist_slug*page_sizesort_orderobject_type*
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). 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).
health_check
read-only
_
Check if the DataMerge API client is configured and can connect. Uses /auth/info. Check if the DataMerge API client is configured and can connect. Uses /auth/info.
list_lists
read-only
object_type
GET /v1/lists. Optional: object_type=company or object_type=contact. GET /v1/lists. Optional: object_type=company or object_type=contact.
remove_list_item
can modify data
item_id*list_slug*object_type*
DELETE /v1/lists/{object_type}/{list_slug}/{item_id}. DELETE /v1/lists/{object_type}/{list_slug}/{item_id}.
run_company_enrichment
listdomaindomainsrefreshwebhook_urlcompany_name
+6
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 f… 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_token, attempt, elapsed_seconds}. When you see status "pending" you MUST immediately call run_company_enrichment again with only continuation_token set — do not ask the user, do not call any other tool first. Typical jobs finish within 5 attempts (~125s). On completion the response contains record_ids and full company records.
run_contact_enrich
refreshcontactsenrich_fieldsmax_wait_secondsreturn_any_domaincontinuation_token
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 {s… 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_contact_enrich again with only continuation_token set. Do not ask the user. Typical jobs finish within 5 attempts. On completion the response contains record_ids and full contact records.
run_contact_search
listdomainsrefreshlocationjob_titlescompany_list
+4
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… 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_search again with only continuation_token set. Do not ask the user. On completion the response contains record_ids, full contact records, and credits_consumed.
run_contact_search_unenriched
listdomains*locationjob_titlesmax_results_per_company
POST /v1/contact/search/unenriched/sync. Synchronous unenriched contact search — returns contacts inline (no polling). Requires the `contact_search_unenriched` beta flag. Limits: 1… 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 × len(contacts).
start_company_enrichment
listdomaindomainswebhook_urlcompany_namecountry_code
+3
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. 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.
start_company_enrichment_and_wait
listdomaindomainswebhook_urlcompany_namecountry_code
+5