Tool Reference
This page documents every tool the Crunchbase MCP server exposes, for AI developers building agents and workflows on Crunchbase data, and for anyone who wants to understand exactly what the server can do.
In normal use, your AI assistant selects and calls these tools automatically; you never invoke them by name. Understanding them helps you write better prompts, debug unexpected results, and build reliable automated workflows.
All tools are served from https://mcp.crunchbase.com over Streamable HTTP. Every call is authenticated and runs as the signed-in user; see Connecting AI Tools for authentication.
How the tools fit together
The tools form a pipeline that most workflows follow in some order:
- Understand the schema with
cb_reference, or explore what's answerable withcb_expert_query_domain. - Resolve names to identifiers with
cb_entity_autocompleteorcb_expert_resolve_entity. Crunchbase tools operate on identifiers (UUIDs and permalinks), not display names. - Find entities with
cb_expert_build_search(natural language) orcb_search_query(explicit criteria), or answer a question directly withcb_expert_query_answer. - Retrieve full profiles for the entities that matter with
cb_entity_get. - Persist results to Crunchbase lists with the
cb_list_*tools.
Expert tools trade control for convenience: they accept plain language and handle schema resolution internally. Structured tools trade convenience for precision: they require exact field IDs and operators but produce deterministic, repeatable queries. Production workflows typically use expert tools to discover the right query shape, then move to structured tools for anything that runs repeatedly or where completeness matters.
Expert tools
cb_expert_query_answer
cb_expert_query_answerAnswers a natural-language question using live Crunchbase data. The expert service interprets the question, constructs and executes the necessary queries, and returns an answer with supporting results.
Use it for exploratory and analytical questions where you want an answer rather than a result set to process: "How many Series B rounds closed in fintech last quarter?" or "Who are the most active seed investors in climate tech?"
Each response includes a request_id. Keep it: it's required to submit feedback via cb_expert_submit_feedback, and negative feedback can trigger the service to rewrite the query and return corrected results.
cb_expert_build_search
cb_expert_build_searchTranslates a natural-language description of the entities you want into a compiled, structured Crunchbase search, handling field resolution, operator selection, and value formatting automatically.
Use it when you know what you're looking for but not the schema: "US-headquartered healthcare companies that raised a seed round in the last 90 days." A productive pattern for repeatable workflows is to use this tool once to discover the compiled predicates, then run those predicates directly through cb_search_query for deterministic execution afterward.
cb_expert_query_domain
cb_expert_query_domainAnswers meta-questions about the shape of the Crunchbase data domain: what entities, fields, and relationships exist, and whether a draft question is answerable. It does not query actual records.
| Parameter | Type | Notes |
|---|---|---|
intent | string | "discover" (default) browses the domain catalog; "assess" evaluates a draft question. |
question | string | Required for assess; optional for discover. |
focus | array | Up to 10 focus tokens to narrow scope, e.g. ["funding", "biotech"]. |
max_suggestions | integer | 1–5, default 5. |
discover returns a domain map, suggested analytical paths, and example questions. assess returns diagnostics on answerability, clarifications that would improve the question, and recommended reformulations. Prefer cb_reference when you already know which entity or field area to inspect; it returns precise structured answers without the expert-service round trip.
cb_expert_resolve_entity
cb_expert_resolve_entityDisambiguates an entity name against the Crunchbase catalog and resolves it to a canonical entity. Returns a single match when confident, otherwise a ranked candidate list.
| Parameter | Type | Notes |
|---|---|---|
name | string | Required. 1–100 characters. |
collection_id | string | Collection to search within, e.g. "organizations", "people", "principal.investors". Defaults to organizations + people. An entity_def_id (e.g. "organization") is accepted and converted. |
domains | array | Website domains, e.g. ["acme.com"]. Strongly preferred whenever available, even partially: domain lookup takes precedence over name matching and is significantly more accurate. |
context | string | Up to 10,000 characters of free-text background (surrounding conversation, industry, geography, related entities). More context produces better ranking of ambiguous matches. |
cb_entity_get | object or null | When a match is found, the full profile is fetched automatically and returned in entity. Pass an object with field_ids, card_ids, or related_entity_limit to customize it, or null to disable. |
This is the right tool for ambiguous inputs ("Scale", "Beacon", "Marc at Andreessen Horowitz"). For simple identifier lookup where ambiguity is unlikely, cb_entity_autocomplete is lighter.
cb_expert_submit_feedback
cb_expert_submit_feedbackRecords user feedback on a previous cb_expert_query_answer result.
| Parameter | Type | Notes |
|---|---|---|
subject_request_id | string | Required. The request_id from the answer being rated. |
sentiment | string | Required. "positive", "neutral", or "negative". |
feedback | string | Optional elaboration, up to 1,000 characters. |
Negative feedback may trigger the expert service to rewrite the query; when it does, the corrected result set is returned in the feedback response. In agent workflows, wiring user reactions to this tool improves answer quality over time.
Structured tools
cb_reference
cb_referenceThe schema reference for everything else. Returns Markdown documentation for a given path; call with an empty path (or "index") for the full navigable index. Every response lists the paths you can drill into next; use them verbatim rather than constructing your own. An unrecognized path never errors: it returns the index plus a closest-match hint.
| Path pattern | Returns |
|---|---|
entities | All searchable entity types and their collection_id values. |
entities/<entity_def_id> | Overview of one entity type. |
entities/<entity_def_id>/fields | Field catalog: field_id, field type, whether sortable/filterable. |
entities/<entity_def_id>/fields/<field_id> | Valid operators, example predicate JSON, enum values, and live sample data for one field. |
entities/<entity_def_id>/cards | Relationship cards for the entity type. |
field_types / field_types/<field_type_id> | Field-type and operator reference. |
operators | Generic operator and predicate reference. |
guidance/search_query, guidance/build_search, guidance/query_answer | Detailed usage guides for the corresponding tools. |
The per-field path is the single most important call when constructing structured queries: it is the authoritative source for which operators a field accepts and what its values look like.
cb_entity_autocomplete
cb_entity_autocompleteSearches Crunchbase entities by name and returns matching identifiers with short descriptions. This is how you obtain valid identifiers before calling other tools.
| Parameter | Type | Notes |
|---|---|---|
query | string | Required. The name to search. |
collection_ids | string | Comma-separated collections to search, e.g. "organizations", "locations", "categories". Blank searches all. entity_def_id values are accepted and converted. |
limit | integer | Default 10, max 25. |
Beyond companies and people, use it to resolve filter values: locations (collection_ids="locations") and categories (collection_ids="categories") before using them in search predicates. See Working with identifiers.
cb_entity_get
cb_entity_getRetrieves the full profile for one already-identified entity: fields (financials, leadership, locations, categories) plus relationship cards (funding rounds raised, investments made, employees, and so on).
| Parameter | Type | Notes |
|---|---|---|
entity_id | string | Required. UUID or permalink. Must be a real identifier obtained from another tool; never guessed or fabricated. |
entity_def_id | string | Entity type, e.g. "organization", "person", "funding_round". Defaults to "organization". Required for non-organization entities; use the entity_def_id from the identifier that supplied the entity_id. |
field_ids | array | Specific fields to include. Defaults to all. Pass [] to skip top-level fields entirely (saves tokens on follow-up calls). |
card_ids | array | Specific cards to include. Defaults to all readable cards. When specified, the related_entity_limit budget is dedicated to the listed cards. |
related_entity_limit | integer | Maximum total related entities across all cards. Default 100, max 2,000, distributed evenly across included cards. |
after_id | string | Card pagination cursor; see below. |
Card pagination. When a card holds more entities than fit in one response, has_more_entities is true. Fetch the next page by calling again with card_ids set to that single card, after_id set to the identifier.uuid of the last entity in the previous response, and field_ids=[].
Cost discipline. This is the most expensive call in the toolset, and cards on well-connected entities (a major investor's raised rounds, for example) can be very large. Do discovery through cb_search_query with explicit field_ids, and reserve cb_entity_get for the entities that survive screening, scoping follow-ups tightly with card_ids and field_ids=[].
cb_search_query
cb_search_queryExecutes a structured search and returns matching entities with the requested fields. This is the precision instrument: deterministic, repeatable, and completeness-friendly.
| Parameter | Type | Notes |
|---|---|---|
collection_id | string | Required. Collection to search, e.g. "organization.companies", "funding_rounds". Discover values via cb_reference('entities'); an entity_def_id is accepted and converted. |
predicates | array | Flat filters: {"field_id", "operator_id", "values"} objects. Mutually exclusive with query. |
query | array | Full recursive query items supporting subqueries; each item carries a type of "predicate" or "sub_query". Mutually exclusive with predicates. See cb_reference('guidance/search_query'). |
field_ids | array | Columns to return. Defaults to the entity type's default display columns; specify explicitly for predictable output. |
order | array | Sort clauses: {"field_id", "sort": "asc"/"desc", "nulls": "first"/"last"}. Fields must be sortable per their metadata. |
limit | integer | Default 20; maximum depends on your access, up to 1,000. |
after_id | string | Pagination cursor: the UUID of the last entity from the previous page. |
Resolve before you filter. For every field used in a predicate or sort, call cb_reference('entities/<ed>/fields/<field_id>') first. It returns the valid operators, example predicates, enum values, and live sample data. Guessed operators and value formats are the dominant cause of failed or, worse, silently empty searches.
Validation errors are instructions. A rejected search returns a description of exactly what's wrong (invalid field, unsupported operator for the field type, bad value format). Fix the named problem rather than abandoning the structured query for a vaguer one.
Result URLs. Each entity in the results carries a url field linking to its Crunchbase profile. Surface these links when presenting results; they're the user's path from an AI answer back to the source.
A minimal example, finding recently funded early-stage US companies:
{
"collection_id": "funding_rounds",
"predicates": [
{"field_id": "announced_on", "operator_id": "gte", "values": ["2026-06-01"]},
{"field_id": "investment_type", "operator_id": "includes", "values": ["seed", "series_a"]},
{"field_id": "funded_organization_location", "operator_id": "includes", "values": ["united-states"]}
],
"field_ids": ["identifier", "announced_on", "investment_type", "money_raised", "funded_organization_identifier"],
"order": [{"field_id": "announced_on", "sort": "desc"}],
"limit": 50
}Note the location value: "united-states", an identifier, not "United States". See the next section.
Working with identifiers
Crunchbase tools operate on identifiers: UUIDs and permalinks. Display names are for humans; identifiers are for queries. Three rules keep searches reliable:
- Never fabricate an identifier. Obtain them from
cb_entity_autocomplete,cb_expert_resolve_entity, or previous results. - Identifier-valued filter fields expect identifier values. Location fields such as
location_identifiersandfunded_organization_locationtake permalinks likeunited-statesorunited-kingdom. A display name like"United States"is not an error; it simply matches nothing, so the search returns zero rows. Resolve locations first withcb_entity_autocomplete(query, collection_ids="locations")and use the returned permalink. The same applies to categories (collection_ids="categories"). - When a search unexpectedly returns zero rows, loosen one filter at a time, starting with identifier-valued filters. An unresolved location or category value is the most common cause of silent empty results.
Money fields take plain integer USD values (15000000, not "$15M"). Dates are ISO format ("2026-06-01").
List tools
Lists connect agent research to the Crunchbase platform: an AI-built list is immediately visible and usable by the whole team in Crunchbase.
cb_list_query
cb_list_queryReturns all saved lists owned by the caller, with names, entity counts, and timestamps. Call this first to find a list_id.
cb_list_create
cb_list_createCreates a new empty list. Takes a single name parameter; populate it with cb_list_add_entities.
cb_list_add_entities
cb_list_add_entitiesAppends entities to an existing list. Takes list_id and an array of entity_ids (entity UUIDs, e.g. from search results).
cb_list_get
cb_list_getReturns the entity identifiers in a list. Takes list_id, with after_id for pagination (the UUID of the last entity from the previous page).
These are the toolset's write operations: they modify data in your Crunchbase workspace. In clients with per-tool permission controls, they're the ones to keep on manual approval until you trust the workflow.
Utilities
cb_metering_get_state
cb_metering_get_stateReturns the caller-visible meter states for the current user: which limits apply and how they affect each tool. Takes no parameters. Call it after any metering-related failure from another tool to understand what limit was hit, or proactively in long-running agent workflows to budget remaining quota.
Programmatic access
The tools above are documented as your AI assistant uses them through an interactive, user-authenticated connection. Crunchbase also offers options for programmatic MCP access: headless agents, backend services, and automated workflows that connect without an interactive user session.
These arrangements have their own authentication, identity, and data-access considerations, so they're set up individually; contact your Customer Success Manager for guidance before building against the server programmatically.
Updated about 8 hours ago

