=== 1. Production server: tools an AI client can use === [read ] calendar_list_events List events on the user's Google Calendar between two moments. Use it to answer [read ] calendar_free_busy Show when the user is busy between two moments, to find a free slot. [WRITE] calendar_create_event Create an event on the user's Google Calendar. Guests are only emailed when notify is [WRITE] calendar_update_event Change an event. Only the fields you pass are changed. Find the event ID with [WRITE] calendar_delete_event Delete an event from the user's Google Calendar. Confirm with the user first, and find the [read ] drive_search Search Google Drive files by name and type, newest first. [WRITE] drive_create_folder Create a folder in Google Drive. [read ] list_connected_apps List which apps this workspace has connected, so you know which tools will work. [read ] credit_balance Get the workspace's remaining AI credits. [read ] search_contacts Search WhatsApp contacts of this workspace by name or phone number. [read ] list_templates List WhatsApp message templates of this workspace with their approval status. [read ] gmail_search Search the connected Gmail inbox. [read ] gmail_read Read one Gmail message by its ID. [WRITE] gmail_draft Save an email as a Gmail draft. Nothing is sent. [WRITE] gmail_send Send an email immediately. Always confirm the recipient and text with the user first. [read ] monday_list_boards List Monday.com boards. [WRITE] monday_create_item Create an item on a Monday.com board. [WRITE] monday_change_status Set the status column of a Monday.com item. [read ] sheets_list Find Google Sheets by name. Use this first when the user names a sheet instead of [read ] sheets_tabs List the tabs (worksheets) of one Google Sheet, with their names and sizes. [WRITE] sheets_create Create a new Google Sheet, optionally with a header row and data rows. Use this when the [read ] sheets_read Read cells from a Google Sheet. [read ] sheets_search Find rows in a Google Sheet that contain a keyword. [WRITE] sheets_append_row Add one row at the end of a Google Sheet. [read ] whatsapp_recent_conversations Show the latest WhatsApp conversations: who wrote, the last message and its status. [read ] whatsapp_get_messages Read the latest messages exchanged with one WhatsApp contact, oldest first. [WRITE] whatsapp_send_text Send a WhatsApp text message to one contact. Only works when the contact wrote in the [WRITE] whatsapp_send_template Send an approved WhatsApp template message to one contact. This is the only way to [WRITE] whatsapp_add_contact Save a new WhatsApp contact, or return the existing one with the same number. [read ] whatsapp_list_broadcasts List recent WhatsApp broadcast campaigns with status and audience size. Read only: === 2. Demo tools through the real pipeline (workspace 7, role member) === demo_echo -> { "text": "hello", "workspace": 7, "role": "member" } demo_not_connected -> [ERROR] Google account is not connected for this workspace. demo_crash -> [ERROR] The tool failed unexpectedly. Please try again. -- same server, role changed to viewer -- demo_echo -> { "text": "hello", "workspace": 7, "role": "member" } demo_write -> [ERROR] Your role 'viewer' can read but cannot change data. -- workspace 8 asks the same question (cache must not leak) -- demo_echo -> { "text": "hello", "workspace": 8, "role": "member" }