mcpbeat

DataMerge MCP Server

ai.datamerge/mcp
answering

DataMerge MCP is answering right now. Last checked 10 min ago. It exposes 23 tools.

B2B data enrichment for 375M+ companies: legal entities, corporate hierarchies, and contacts.

Uptime history 41 hours of history
41 hours agonow
100.0%
Uptime 24h
91 of 91 checks
23
Tools
read from the server
248 ms
Response time
average over 24h
open, no key
Access
streamable-http

Connect this server

Endpoint below is the one we actually reach during checks — not the one copied from a README. Last verified 10 min ago.

run in your terminal
claude mcp add mcp --transport http https://mcp.datamerge.ai
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "mcp": {
      "url": "https://mcp.datamerge.ai"
    }
  }
}
~/.codex/config.toml
[mcp_servers.mcp]
url = "https://mcp.datamerge.ai"
.cursor/mcp.json
{
  "mcpServers": {
    "mcp": {
      "url": "https://mcp.datamerge.ai"
    }
  }
}
.vscode/mcp.json
{
  "mcpServers": {
    "mcp": {
      "url": "https://mcp.datamerge.ai"
    }
  }
}

Available tools 23

Read directly from the server with tools/list, grouped by what they act on. If a tool disappears, we record the date.

contact
contact_enrich
POST /v1/contact/enrich. Enrich specific contacts by LinkedIn URL or name+domain. Returns a job_id (async, 202).
contact_search
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
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.
get_contact
GET /v1/contact/get?record_id={uuid}. Retrieve a specific contact by record UUID. Never charges credits.
get_contact_enrich_status
GET /v1/contact/enrich/{job_id}/status. Poll until status is "completed" or "failed". Response includes record_ids.
get_contact_search_status
GET /v1/contact/search/{job_id}/status. Poll until status is "completed" or "failed". Response includes record_ids.
run_contact_enrich
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
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
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).
company
get_company
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
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
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).
run_company_enrichment
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.
start
start_company_enrichment
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
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.
configure
configure_datamerge
Configure DataMerge API authentication (required before using other tools if DATAMERGE_API_KEY is not set).
create
create_list
POST /v1/lists. Body: name, object_type (company or contact).
credits
get_credits_balance
GET /v1/credits/balance. Returns credits_balance and balances (one_off, recurring, rollover, total).
delete
delete_list
DELETE /v1/lists/{object_type}/{list_slug}. System lists cannot be deleted.
health
health_check
Check if the DataMerge API client is configured and can connect. Uses /auth/info.
item
remove_list_item
DELETE /v1/lists/{object_type}/{list_slug}/{item_id}.
items
get_list_items
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).
lists
list_lists
GET /v1/lists. Optional: object_type=company or object_type=contact.

Endpoints

URLTransportStateLatencyChecked
https://mcp.datamerge.ai streamable-http answering 218 ms 10 min ago

DataMerge MCP — questions

Answers built from our own checks of this server.

What can DataMerge MCP do?
It exposes 23 tools, read directly from the server on our last check. Among them: configure_datamerge, contact_enrich, contact_search, contact_search_unenriched, create_list, delete_list and 17 more. The full list with descriptions is on this page — we take it from the server itself via tools/list, not from a README. How MCP servers expose tools in the first place →
What is DataMerge MCP mostly used for?
Its tools cluster around contact, company and start. That is what this server is built to work with — the grouping comes from the actual tool names, not from a category we assigned.
Is DataMerge MCP working right now?
We send a real MCP handshake every 15 minutes. Over the last 24 hours 91 of 91 checks got a reply (100.0%), average response time 248 ms. The bar chart above shows every period we have measured.
How do I connect DataMerge MCP?
Copy the ready config from this page — we generate it for Claude Code, Claude Desktop, Codex, Cursor and VS Code, each with the file path that client actually reads. It is a remote server, so there is nothing to install — the client connects to the address.
Does DataMerge MCP need an API key?
No. DataMerge MCP completed a full MCP handshake with us as an anonymous client and listed its tools without asking for anything. All 23 of them are readable on this page. This is what we observed, not what the docs claim.
How fast is DataMerge MCP?
It answers our handshake in 248 ms on average, which is faster than 53% of all working MCP servers we measure. The comparison comes from our own checks across the whole registry, every 15 minutes.