A tool below is one the server NAMES. Nobody has called it. That is the same two tier honesty rule the rest of the directory runs on: a named tool is research, and BENCH-TESTED stays the only claim that anybody ran anything.
-
configure_datamerge
Configure DataMerge API authentication (required before using other tools if DATAMERGE_API_KEY is not set).
evidence: answered tools/list · calling it reads
-
contact_enrich
POST /v1/contact/enrich. Enrich specific contacts by LinkedIn URL or name+domain. Returns a job_id (async, 202).
evidence: answered tools/list · calling it writes · required: contacts, enrich_fields
-
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
evidence: answered tools/list · calling it writes · required: enrich_fields
-
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.
evidence: answered tools/list · calling it writes
-
create_list
POST /v1/lists. Body: name, object_type (company or contact).
evidence: answered tools/list · calling it writes · required: name, object_type
-
delete_list
DELETE /v1/lists/{object_type}/{list_slug}. System lists cannot be deleted.
evidence: answered tools/list · calling it writes · required: object_type, list_slug
-
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...
evidence: answered tools/list · calling it reads
-
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.
evidence: answered tools/list · calling it reads · required: job_id
-
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
evidence: answered tools/list · calling it reads · required: datamerge_id
-
get_contact
GET /v1/contact/get?record_id={uuid}. Retrieve a specific contact by record UUID. Never charges credits.
evidence: answered tools/list · calling it reads · required: record_id
-
get_contact_enrich_status
GET /v1/contact/enrich/{job_id}/status. Poll until status is "completed" or "failed". Response includes record_ids.
evidence: answered tools/list · calling it reads · required: job_id
-
get_contact_search_status
GET /v1/contact/search/{job_id}/status. Poll until status is "completed" or "failed". Response includes record_ids.
evidence: answered tools/list · calling it reads · required: job_id
-
get_credits_balance
GET /v1/credits/balance. Returns credits_balance and balances (one_off, recurring, rollover, total).
evidence: answered tools/list · calling it reads
-
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).
evidence: answered tools/list · calling it reads · required: object_type, list_slug
-
health_check
Check if the DataMerge API client is configured and can connect. Uses /auth/info.
evidence: answered tools/list · calling it reads
-
list_lists
GET /v1/lists. Optional: object_type=company or object_type=contact.
evidence: answered tools/list · calling it reads
-
remove_list_item
DELETE /v1/lists/{object_type}/{list_slug}/{item_id}.
evidence: answered tools/list · calling it writes · required: object_type, list_slug, item_id
-
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 wil
evidence: answered tools/list · calling it reads
-
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_second
evidence: answered tools/list · calling it reads
-
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} -
evidence: answered tools/list · calling it reads
-
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...
evidence: answered tools/list · calling it writes · required: domains
-
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.
evidence: answered tools/list · calling it writes
-
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.
evidence: answered tools/list · calling it writes
141 of the 741 entries that record an official or community MCP server carry a harvested tool list. The other 600 are unmeasured, which is not the same as empty. Harvest last run 2026-09-27. Every name across every server is on the tools index.