crm_search
Full-text search across accounts, contacts, deals, and activities.
Input schema
{
"type": "object",
"properties": {
"q": { "type": "string", "description": "Free-text query" },
"types": {
"type": "array",
"items": { "type": "string", "enum": ["account", "contact", "deal", "activity"] },
"description": "Restrict result types. Default: all."
},
"limit": { "type": "integer", "minimum": 1, "maximum": 50, "default": 10 }
},
"required": ["q"]
}
Output schema
{
"type": "object",
"properties": {
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": { "type": "string" },
"id": { "type": "string" },
"score": { "type": "number" },
"snippet": { "type": "string" }
}
}
}
}
}
Example invocation
{
"tool": "crm_search",
"arguments": { "q": "acme bistro pricing", "types": ["deal", "activity"], "limit": 5 }
}
Example response
{
"results": [
{ "type": "deal", "id": "D-2026-00084", "score": 0.91, "snippet": "ACME-0042 — pricing sent 2026-04-25" },
{ "type": "activity", "id": "A-2026-04-08991", "score": 0.72, "snippet": "Lunch with Jean — pricing discussion" }
]
}
Lexical today, backed by D1 FTS5. Semantic search is deferred until the embeddings surface lands — see chapter 42-mcp-tools for the decision trail.