| toolName | Tool Name | String | Name of the tool for the AI to call | Yes |
| toolDescription | Tool Description | String | Description of what this tool does | Yes |
| action | Action | String | The action to perform: send_message, send_media, send_location, get_messages, search_contacts, get_chats, get_profile, react, mark_read, download_media (required) | No |
| to | Recipient | String | WhatsApp JID or phone number (for send_message, send_media, send_location) | No |
| message | Message | String | Text message content (for send_message) | No |
| media_url | Media URL | String | URL of media file (for send_media) | No |
| media_type | Media Type | String | Type of media: image, video, audio, document (for send_media) | No |
| caption | Caption | String | Caption for media (for send_media) | No |
| latitude | Latitude | Number | Latitude coordinate (for send_location) | No |
| longitude | Longitude | Number | Longitude coordinate (for send_location) | No |
| name | Location Name | String | Name of location (for send_location) | No |
| chat_jid | Chat JID | String | JID of the chat (for get_messages, react, mark_read) | No |
| search | Search Query | String | Text to search for (for get_messages) | No |
| query | Contact Query | String | Name or phone to search (for search_contacts) | No |
| limit | Limit | Number | Max results to return (for get_messages, search_contacts, get_chats) | No |
| unread_only | Unread Only | Bool | Only show unread chats (for get_chats) | No |
| jid | JID | String | Contact JID (for get_profile) | No |
| phone_number | Phone Number | String | Phone number (for get_profile) | No |
| message_id | Message ID | String | ID of message (for react, download_media) | No |
| emoji | Emoji | String | Emoji to react with (for react) | No |
| message_ids | Message IDs | JSON | Array of message IDs (for mark_read) | No |
| quote_message_id | Quote Message ID | String | ID of message to reply to (for send_message) | No |