Skip to content

DiscoLike MCP Tools Reference

The managed prospecting API documents the shared brief, limits, billing, and result contract.

ToolParametersDescription
start-prospectingbrief, idempotency_keyStart and automatically approve a durable run; reuse the same key for retries. Pass brief.customer_domains to find lookalikes of your customers, segment by segment. When the brief names no company count, defaults to 100 target companies (versus 1000 for REST/SDK) since approval, and the company and contact research spend it triggers, happens immediately. Email lookups wait for the person’s answer at the contacts review.
get-prospecting-runrun_id, offset=0, limit=100, events_after=0Poll every five seconds; limit accepts 1–100; partial results are paginated. Inspect stop_reason, even when status is completed. A needs_input run with a question waits on the person (see below); needs_input with no question is final.
cancel-prospectingrun_idStop scheduling work; incurred charges and completed results remain.
answer-prospectingrun_id, question_seq, text, idempotency_keySend the person’s answer to the run’s open question. Ask the person and send what they say; never answer for them. When question.replies is not empty, send one of its labels verbatim as text (1–4,000 characters). Pass question.question_seq as given, null included; a stale or missing question_seq returns an error, so poll again for the current question. Reuse the same key for retries.

MCP start automatically approves; the REST approval, list, rename, and delete operations are not additional MCP tools, and answer-prospecting covers answering a paused run. MCP responses omit the REST chat fields.

MCP runs decide the pilot, tail quality and top-up checkpoints on their own. They pause at needs_input only when the person has to answer, and get-prospecting-run then returns a question object:

FieldDescription
question_seqThe question message’s seq, or null for a stop that posted no question message. Pass it to answer-prospecting as given.
reasonThe run’s stop_reason.
contentThe question or stop text to show the person.
repliesExact reply labels; send one verbatim. Empty when the question takes free text.
estimateFor a contacts_review, the email estimate: checked, fit, matched, companies, lookups, find_rate, basis, expected_emails, minutes, records, early_lookups, early_found, and early_running. null otherwise.
  • contacts_review: the wave’s companies are checked and their contacts found and qualified, and no email has been looked up yet. Show the person content and estimate, then send “Find emails”, “Find more companies first” (offered only when more candidates exist) or “Finish”. Email lookups reserve records of the plan quota until each settles and bill only for emails found; the question shows a USD figure when the run has a spending limit.
  • provider_unavailable, stage_unavailable, account_unavailable: an outage or account problem stopped the run. After the person fixes it, send “Retry”; “Cancel” stops the run.
  • question: the run needs missing input. replies is empty; send the person’s own words.

question is null while an answer is still being read, so poll after answering instead of answering again. A needs_input run with no question (for example run_timeout or action_uncertain) is final. Answering returns an error while the account has no quota left, until it is refilled; cancel-prospecting still works.

The client’s assistant subscription does not supply backend model credentials. Intent interpretation and wizards use platform credentials; coordination and independent contact qualification use customer LLM integrations. Native contact extraction still needs a generative LLM for qualification, unless company checks also run on DiscoLike VibeCheck: a run on DiscoLike Groove and VibeCheck, or on VibeCheck with indexed contacts only or no contacts, uses no customer LLM and keeps contacts by title without persona assessment. Existing provider and processing charges apply. Otherwise, indexed and native generated candidates must satisfy persona assessment; similarity and upstream title labels alone do not establish acceptance.

ToolDescription
account-statusCheck subscription plan and limits
usage-statisticsView API usage for billing period
discover-similar-companiesFind companies matching examples, description, or natural language ICP prompt
count-matching-domainsCount matches before full search
list-industry-categoriesLook up industry category values and their definitions (full taxonomy, by name, or by search term)
business-profileGet firmographic data
digital-footprint-scoreGet score with breakdown
growth-metricsView quarterly trends
segment-domainsGroup companies into clusters
match-company-to-domainFind domain for company name
bulk-match-company-to-domainBatch match up to 1000 company names to domains with full bizdata appended
extract-website-textGet cached text content from pre-crawled websites
domain-redirectsGet redirect mappings for a domain
append-dataBulk-enrich domains with firmographics, growth, redirects, or domain status
vendor-and-technology-dataSee technologies a company uses
subsidiaries-and-parent-companiesExplore corporate hierarchies
public-company-linksFind related domains sharing contact info
ToolDescription
search-contactsSearch for business contacts. Response is keyed by company domain; each entry contains firmographic fields plus nested contacts[].
count-contactsCount contacts matching filters before running a full search
contact-lookupLook up a specific contact by persona ID, LinkedIn profile, or email
match-contactsMatch contacts by name/company via text search (lightweight, no usage cost)
bulk-match-contactsBatch match a list of names, emails or LinkedIn profile URLs to contacts with optional full-data enrichment; LinkedIn URLs, then emails, are exact-matched first
generate-contactsDiscover candidate contacts at given domains using your own search provider (BYOS) plus either your own LLM (BYOK) or DiscoLike Groove (discolike/groove), the native extractor. Pass integration_id as an LLM integration UUID, or native for keyless extraction with no title validation against icp_text; omit it for native when it is available and a search provider resolves, otherwise your default LLM integration. Web search always enabled. Returns a task ID; poll get-research-status for per-domain contact rows plus the company’s inferred email pattern, and for title_validation (llm or none). email is null unless a source shows it; pass find_emails=true to run the email finder over named, email-less rows before the task completes (fills email and email_status; found addresses bill under the finder’s rules). Otherwise no platform billing; results are candidate data, so validate before use.
find-emailsFind likely email addresses for up to 500 people (first name, last name, domain) by enumerating and SMTP-verifying pattern candidates per domain. Returns a batch_id immediately; poll get-email-results until every job is terminal. Only proven addresses (status found) bill as records; catch-all and pattern-guess results are free.
get-email-resultsPoll a find-emails batch by batch_id. Returns total/completed/failed counts plus per-job results (matched email + pattern). Keep polling until every job’s status is completed or failed.
ToolDescription
list-saved-queriesList saved queries with their domains for use in inclusion/exclusion
save-mcp-querySave MCP results as a reusable query
save-exclusion-listCreate an exclusion list from domains and/or persona IDs
list-tagsList all unique tags in your organization
add-tags-to-queryAdd tags to a saved query for organization
remove-tags-from-queryRemove tags from a saved query
get-domains-by-tagsGet all domains from queries matching specified tags
ToolDescription
research-companiesRun a DiscoGen research prompt against each domain in a list
research-contactsRun an LLM prompt against contacts, same as above but for people
get-research-statusPoll async DiscoGen task status and results
cancel-researchCancel a running DiscoGen task
list-research-providersCheck configured LLM and search providers before running DiscoGen. The LLM list also carries a native row, named “DiscoLike Groove”, for DiscoLike’s keyless contact extractor, usable only by generate-contacts
validate-icp-fitValidate whether a list of companies match your ICP description; integration_id: "native-icp" scores on DiscoLike’s own model at no LLM cost

Sync with HubSpot, Pipedrive, or Salesforce. Connect the CRM from app Settings > Integrations first. These tools are in beta: flows are live end-to-end, but expect rough edges while hardening completes. Full parameters and workflows: MCP CRM Tools.

ToolDescription
push-to-crmPush a saved query’s companies or contacts into the connected CRM (Salesforce: pick Leads or Accounts via sf_target_object)
crm-suppressSnapshot the CRM’s companies or contacts into an exclusion list so existing pipeline stops surfacing in discovery
crm-import-companiesImport the CRM’s companies as tagged DiscoLike domain lists
crm-match-companiesRun domain-less CRM records through company matching
crm-writeback-domainsWrite matched domains back onto CRM records by id
crm-match-contactsRun email-less CRM people through contact matching with enrichment
crm-writeback-emailsWrite matched emails back onto CRM records (keyed on the match task id)
crm-enrich-contactsFind contacts for the CRM’s companies and push them in (billed net-new for delivered contacts only)
crm-writeback-segmentsWrite segment labels onto CRM records by domain
crm-audit-companiesCheck each CRM company’s operating status (active / closed / redirected), tag the records, and save closed companies as a list
  1. “Find US-based SaaS companies with 50-200 employees that recently raised Series A”
  2. AI calls discover-similar-companies with icp_prompt, which automatically extracts filters (country: US, employee_range, category: SAAS), generates ICP text, suggests domains, and returns results in one call
  3. “Segment these into market categories”