Skip to main content
MCP responses are structured objects, not terminal output. Exact optional fields can vary by tool and operation, so use the returned schema and preserve identifiers exactly.

For AI agents

  • Preserve account_id, dataset_id, search_handle, agent_run_id, and workflow_run_id.
  • Do not claim completion from a start response; inspect the terminal status.
  • Use get_dataset_fields for the current dataset schema.
  • Keep error and confirmation objects visible to the user.

Search response

Use get_search_result for a returned search handle. If an agent_run_id is present, use get_agent_run or wait_for_agent_run and use the list/latest tools when the trigger response was lost.

Dataset and upload responses

Dataset inspection responses can include metadata, row counts, processing state, column names, lineage, and a preview. Upload responses identify the created dataset; inspect it with get_dataset before treating the upload as ready.

Match and enrichment responses

Match responses can contain candidate identifiers, confidence, and a matched dataset or workflow run. Enrichment and contact-enrichment responses can return a workflow_run_id and an output dataset ID only after polling completes. Preserve the exact IDs and inspect the terminal result before starting the next operation.

Account and operation context

Account-scoped responses should retain account_id. A response may also carry session_id, search_handle, agent_run_id, workflow_run_id, dataset_id, output_dataset_id, a quote, or an error code. These values are opaque identifiers: do not derive one from another or replace one with a new request after a timeout.

Workflow response

Use get_workflow_run until the status is terminal. A failed or cancelled workflow must be inspected before deciding whether a new request is appropriate.

Confirmation and error response

See MCP limits and credits and MCP troubleshooting.