MCP Tools Reference
34 tools for managing email, calendar, storage, webhooks, trusted senders, and scheduled emails. All tools automatically use the agent associated with your API key.
get_agent_infoGet the current agent's name, email address, slug, description, and status.
read_inboxList emails in the agent's inbox with optional filters and pagination.
status(string | null)— Filter: received, read, sent, draft, archivedlimit(int)— Max results (1-100, default 20)offset(int)— Skip N emails (default 0)read_emailGet the full content of a specific email including headers, body (text and HTML), and attachment list.
email_id*(string)— UUID of the email to readsend_emailSend an email from the agent's email address with support for threading (replies) and file attachments.
to*(list[string])— Recipient email addressesbody_text*(string)— Plain text bodysubject(string | null)— Email subject linecc(list[string] | null)— CC recipientsbcc(list[string] | null)— BCC recipientsbody_html(string | null)— HTML body (optional)in_reply_to_email_id(string | null)— UUID of email being replied to (for threading)attachments(list[dict] | null)— File attachments: [{filename, data (base64), content_type?}]. Max 10, 10 MB total.get_threadGet all emails in a conversation thread, sorted chronologically.
thread_id*(string)— UUID of the threadlist_attachmentsList all attachments for a specific email with filenames, types, and sizes.
email_id*(string)— UUID of the emaildownload_attachmentGet a pre-signed URL to download an attachment. URL is valid for 15 minutes.
attachment_id*(string)— UUID of the attachmentmark_emailUpdate an email's status or starred flag.
email_id*(string)— UUID of the emailaction*(string)— One of: read, unread, starred, unstarred, archivedsearch_emailsSemantic search across emails and document attachments (PDF, DOCX, XLSX, PPTX, CSV, TXT) using natural language. Results include source_type (email_body or attachment) and attachment_id when matching attachment content.
query*(string)— Natural language search querylimit(int)— Max results (1-50, default 10)get_attachment_textGet the extracted text content of a document attachment. Returns full text from PDF, DOCX, XLSX, PPTX, CSV, and TXT files processed by the RAG pipeline. Useful for reading document content found via search_emails.
attachment_id*(string)— UUID of the attachmentlist_collectionsList all document collections for the current agent, showing name, description, and document count.
store_documentStore a JSON document in a named collection. Auto-creates the collection if it doesn't exist. Documents are automatically embedded for semantic search.
collection*(string)— Collection name (auto-created if missing)data*(dict)— JSON document data to storemetadata(dict | null)— Optional metadata for filteringget_documentRetrieve a specific document by ID from a collection.
collection*(string)— Collection namedocument_id*(string)— UUID of the documentquery_documentsList and filter documents in a collection with optional metadata containment filter.
collection*(string)— Collection namemetadata_filter(dict | null)— JSONB containment filter (e.g. {"category": "notes"})limit(int)— Max results (1-100, default 20)update_documentReplace a document's data and metadata. Re-generates embeddings for search.
collection*(string)— Collection namedocument_id*(string)— UUID of the documentdata*(dict)— New document datametadata(dict | null)— New metadata (replaces existing)delete_documentDelete a document and its embeddings from a collection.
collection*(string)— Collection namedocument_id*(string)— UUID of the documentsearch_storageSearch stored documents by semantic similarity using natural language. Returns ranked results with relevance scores.
query*(string)— Natural language search querycollection(string | null)— Limit search to a specific collectionlimit(int)— Max results (1-50, default 10)ask_storageAsk a question and get an AI-generated answer based on stored documents (RAG). Retrieves relevant documents via semantic search, then generates a grounded answer with source citations.
question*(string)— Natural language questioncollection(string | null)— Limit to a specific collectionlimit(int)— Number of source docs to retrieve (1-20, default 5)list_webhooksList all webhooks configured for the current agent, including URL, events, active status, and creation date.
create_webhookCreate a new webhook to receive HTTP notifications for agent events. Returns a signing secret (shown once) for HMAC-SHA256 verification.
url*(string)— Target URL to receive POST requestsevents*(list[string])— Events: email.received, email.sent, calendar.event_reminder, scheduled_email.sent, scheduled_email.failed, document.createddescription(string | null)— Optional label for the webhookdelete_webhookDelete a webhook by ID. Removes the webhook and all its delivery history.
webhook_id*(string)— UUID of the webhook to deletelist_webhook_deliveriesList recent delivery attempts for a webhook, showing event type, HTTP status, success/failure status, and timestamps.
webhook_id*(string)— UUID of the webhooklimit(int)— Max results (1-100, default 20)is_trusted_sender computed from this list.list_trusted_sendersList all trusted senders for the current agent. The agent owner is always the default trusted sender.
add_trusted_senderAdd an email address to the trusted senders list. Emails from this address will have is_trusted_sender=true.
email_address*(string)— Email address to trustname(string | null)— Optional display nameremove_trusted_senderRemove a trusted sender by ID. The default trusted sender (agent owner) cannot be removed.
sender_id*(string)— UUID of the trusted sender to removelist_calendar_eventsList calendar events with optional date range and status filters.
start_after(string | null)— ISO 8601 datetime — events starting after this timestart_before(string | null)— ISO 8601 datetime — events starting before this timestatus(string | null)— Filter: confirmed, tentative, cancelledlimit(int)— Max results (1-200, default 50)create_calendar_eventCreate a new calendar event with optional recurrence, attendees, location, and timezone.
title*(string)— Event titlestart_time*(string)— ISO 8601 start datetimeend_time(string | null)— ISO 8601 end datetimetimezone(string)— IANA timezone (default UTC)is_all_day(bool)— Whether this is an all-day eventdescription(string | null)— Event descriptionrecurrence_rule(string | null)— iCal RRULE (e.g. FREQ=WEEKLY;BYDAY=MO)attendees(list[dict] | null)— Attendees: [{email, name}]location(string | null)— Event locationmetadata(dict | null)— Optional metadatastatus(string)— confirmed, tentative, or cancelled (default confirmed)get_calendar_eventGet full details of a calendar event by ID.
event_id*(string)— UUID of the eventupdate_calendar_eventUpdate any fields of a calendar event. Only pass the fields you want to change.
event_id*(string)— UUID of the eventtitle(string | null)— New titlestart_time(string | null)— New start time (ISO 8601)end_time(string | null)— New end time (ISO 8601)timezone(string | null)— New timezoneis_all_day(bool | null)— All-day flagdescription(string | null)— New descriptionrecurrence_rule(string | null)— New recurrence ruleattendees(list[dict] | null)— New attendees listlocation(string | null)— New locationmetadata(dict | null)— New metadatastatus(string | null)— New statusdelete_calendar_eventDelete a calendar event by ID.
event_id*(string)— UUID of the eventsearch_calendarSearch calendar events by natural language using vector embeddings.
query*(string)— Natural language search querylimit(int)— Max results (1-50, default 10)schedule_emailSchedule an email to be sent at a future time. Optionally link to a calendar event.
send_at*(string)— ISO 8601 datetime (must be in the future)to*(list[string])— Recipient email addressesbody_text*(string)— Plain text bodysubject(string | null)— Email subjectcc(list[string] | null)— CC recipientsbcc(list[string] | null)— BCC recipientsbody_html(string | null)— HTML bodycalendar_event_id(string | null)— UUID of calendar event to linklist_scheduled_emailsList scheduled emails for the current agent with optional status filter.
status(string | null)— Filter: pending, sent, cancelled, failedlimit(int)— Max results (1-200, default 50)cancel_scheduled_emailCancel a pending scheduled email before it's sent.
scheduled_id*(string)— UUID of the scheduled email