SearchContactsTool
Searches contacts whose DISPLAY_NAME_PRIMARY matches query (SQL LIKE substring; %, _ and \ in query match literally), then attaches every match's phone numbers and email addresses with a single ContactsContract.Data query (CONTACT_ID IN (...)). Requires READ_CONTACTS. Output: contacts (list of {id, name, phones (list of strings), emails (list of strings)}), count, and the echoed query, capped at limit (1–100, default 10).