Two layers, one answer
MCP wraps the answer in a JSON-RPC message. The outerid matches your request, not a company ID.
Inside result, structuredContent contains the company data or error. content contains the
same answer as JSON text for clients that cannot read structured data. Do not count these as two
different results.
Check result.isError before using the answer. A successful HTTP request does not necessarily
mean the tool succeeded. Authentication and protocol failures may happen before a tool runs, so
also handle a non-success HTTP status or a top-level JSON-RPC error.
A search is still running
Forsearch_companies with background: true, read result.structuredContent.usage:
Pending usage excerpt
usage object, not a complete response. IDs and amounts are illustrative.
pending or processing means wait and call get_usage with that ID. Do not start another search
just because results are not ready. Polling does not consume another request unit. Stop polling
when you receive results or a terminal error, and avoid a tight retry loop.
A completed company search
The complete company result has the same shape as the HTTP API’s company search response. Open its response example to see every field, including fictional companies and their supporting evidence. Read these fields inresult.structuredContent:
For another page, keep the query, filters, and limit unchanged; add the returned cursor and a new
request key. For an identical retry of the same page, reuse its original key.
An empty list is not an error
companies: [] with a delivered usage means no deliverable companies were returned for this request.
It does not mean no company could need your product. Read the coverage limitations before changing
your search. Never manufacture a company or source to fill the list.
A tool could not complete the request
This complete response is returned whendiagnostic is called without its required
Idempotency-Key header. It does not consume a diagnostic request unit.
Tool error
structuredContent.error.code to decide the next step. Fix invalid inputs; do not retry them
unchanged. Respect supplied retry guidance for limits. Never ask someone to paste their API key
into a support conversation. See troubleshooting for individual errors.