Search deals, people, companies and prospects by text
crm.search
Finds CRM records by text, of any age: deals, people, companies and prospects (all four by default, or the kinds you pass). A record matches when the text appears in its title, name, email, phone or company, or when every word of the text starts a word of those fields (accents and word order do not matter: «perez juan» finds «Juan Pérez»); a phone matches by its digits («11 5555 1234» finds «+54 9 11 5555-1234»). Deals and prospects of the people and companies that match come too (the deal's main contact or company, the prospect's person or company). Returns up to 40 hits (limit) sorted by last update, each with its kind and id so you can read it with the right get operation; has_more is true when more records matched (narrow the text or raise limit). Archived records and closed deals are included (the screen's global search hides them by default): each hit's is_archived and status tell them apart. A seller with a scope only sees what the scope allows. Words of one letter are ignored; prefer crm.persons.lookup when you have an exact email or phone, and the list operations with filters when you know the kind and a field. With LinkedIn or TikTok, their terms limit it through the API and the MCP: what they do not allow answers 403 platform_terms_restricted, and their records are left out of the response (the permissions guide lists what each platform allows).
- Scope
crm:read- Permission
- View the module
- MCP tool
crm_searchOn the full surface; on the compact one,mb_execute_operationwithid: "crm.search".
Declared cost: up to 450 reads and 0 writes per call (they count against the daily quota).
Parameters
querystringqueryWhat to look for: a name, an email, a phone, a domain or a deal title (2 to 200 characters).
kindsarray<enum>queryoptionalOnly these kinds of record; without it, all four.
Values: deal, person, company, prospect
limitintegerqueryoptionalHow many hits at most (up to 40); has_more says when there were more.
Default: 10
Response
resultsarray<object>has_morebooleantrue when more records matched than were returned.
Errors
Example
curl "https://api.mb-suite.com/v1/crm/search?query=QUERY" \
-H "Authorization: Bearer $MB_API_KEY"Try it with your test API key
With a test API key the request always goes to your practice organization: example data you can reset.
curl "https://api.mb-suite.com/v1/crm/search?query=QUERY" \
-H "Authorization: Bearer $MB_TEST_KEY"