crm_search

Full-text search across accounts, contacts, deals, and activities.

Category
CRM
Stability
Beta
Version
v1
Auth
cf-access

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.