Skip to content

MCP Tools Reference

Complete reference for all Gmail Secretary MCP tools.

AI-Native Design

These aren't protocol wrappers—they're secretary workflows designed for AI assistants:

  • Signals for intelligent reasoning, not raw data
  • Staged mutations that require user confirmation
  • Time-boxed batches with continuation states for large mailboxes

Tool Categories

CategoryPurpose
Email & SearchRead, search, and analyze emails
CalendarManage calendar events and availability
IntelligenceDaily briefings, triage, and smart cleanup

Safety Classifications

All tools are classified by their mutation behavior:

ClassificationDescriptionConfirmation Required
Read-OnlyQuery data, no changesNo
StagingPrepare changes (drafts)No
MutationExecute changesYes

Read-Only Tools (Always Safe)

  • get_unread_messages - Fetch unread emails
  • search_emails / gmail_search - Search emails
  • get_email_details - Get full email content
  • get_thread / gmail_get_thread - Get conversation thread
  • summarize_thread - Summarized thread for AI context
  • check_calendar / list_calendar_events - Query calendar
  • get_daily_briefing - Combined email + calendar intelligence
  • quick_clean_inbox - Identify cleanup candidates (doesn't move)
  • triage_priority_emails - Identify priority emails
  • triage_remaining_emails - Identify remaining emails
  • semantic_search_emails - Search by meaning (pgvector only)
  • find_related_emails - Find similar emails (pgvector only)
  • get_embedding_status - Check semantic search health

Staging Tools (Safe)

  • create_draft_reply - Create draft in Gmail Drafts folder
  • suggest_reschedule - Suggest meeting times (no calendar changes)

Mutation Tools (Require Confirmation)

  • send_email 🔴 - Send email (always show draft first)
  • mark_as_read / mark_as_unread 🔴 - Change read status
  • move_email 🔴 - Move to folder
  • modify_gmail_labels 🔴 - Add/remove labels
  • execute_clean_batch 🔴 - Execute approved cleanup
  • create_calendar_event 🔴 - Create calendar event
  • process_meeting_invite 🔴 - Accept/decline invite

Response Format

All tools return MCP-standard responses:

Success:

json
{
  "content": [
    {
      "type": "text",
      "text": "Found 5 unread emails..."
    }
  ],
  "isError": false
}

Error:

json
{
  "content": [
    {
      "type": "text", 
      "text": "Error: Invalid folder name"
    }
  ],
  "isError": true
}

Signals System

Intelligence tools return signals for AI reasoning:

SignalMeaning
is_addressed_to_meUser's email in To: field
mentions_my_nameUser's full name in body
is_from_vipSender in vip_senders config
is_importantGmail IMPORTANT label
has_questionContains ? or request language
mentions_deadlineEOD, ASAP, urgent, etc.
mentions_meetingmeet, schedule, calendar, etc.

Signals inform decisions—they don't make them. Context matters:

  • "Urgent" from a vendor on Friday 5pm → probably low priority
  • Calm question from CEO on Monday → probably high priority

Time-Boxed Batch Tools

Large mailboxes use continuation states to avoid timeouts:

python
# First call - processes ~5 seconds worth
result = quick_clean_inbox()
# {"status": "partial", "has_more": true, "continuation_state": "..."}

# Continue from where we left off
result = quick_clean_inbox(continuation_state=result["continuation_state"])
# {"status": "complete", "has_more": false, "candidates": [...]}

Tools with continuation support:

  • quick_clean_inbox
  • triage_priority_emails
  • triage_remaining_emails

Semantic Search Tools

When PostgreSQL + pgvector is configured:

ToolPurpose
semantic_search_emailsFind emails by meaning ("budget concerns")
find_related_emailsFind emails similar to a reference email
get_embedding_statusCheck embeddings health

See Semantic Search Guide for setup.

Quick Reference

Email Operations

ToolPurposeClassification
get_unread_messagesFetch recent unreadRead-only
search_emailsStructured searchRead-only
gmail_searchGmail query syntaxRead-only
list_foldersList all synced foldersRead-only
get_email_detailsFull email contentRead-only
get_threadConversation threadRead-only
summarize_threadThread summaryRead-only
send_emailSend emailMutation
create_draft_replyCreate draftStaging
mark_as_readMark as readMutation
mark_as_unreadMark as unreadMutation
move_emailMove to folderMutation
modify_gmail_labelsModify labelsMutation
process_emailGeneric email actionMutation
trigger_syncForce email syncRead-only

Calendar Operations

ToolPurposeClassification
get_calendar_availabilityCheck availabilityRead-only
list_calendar_eventsList eventsRead-only
suggest_rescheduleFind meeting timesStaging
create_calendar_eventCreate eventMutation
respond_to_meetingAccept/decline inviteMutation

Intelligence Operations

ToolPurposeClassification
get_daily_briefingCalendar + email intelligenceRead-only
summarize_threadThread summaryRead-only
quick_clean_inboxIdentify cleanup candidatesRead-only
execute_clean_batchExecute approved cleanupMutation
triage_priority_emailsIdentify priority emailsRead-only
triage_remaining_emailsProcess remaining emailsRead-only

Semantic Search (PostgreSQL + pgvector)

ToolPurposeClassification
semantic_search_emailsSearch by meaningRead-only
semantic_search_filteredMetadata + semantic searchRead-only
find_related_emailsFind similar emailsRead-only

Utility Operations

ToolPurposeClassification
setup_smart_labelsSetup folder hierarchyStaging
create_taskCreate task in tasks.mdStaging

Rate Limits

Gmail has rate limits that the server respects:

  • IMAP connections: ~15 concurrent connections per account
  • Email operations: ~250 quota units/second

The server uses connection pooling and doesn't implement additional rate limiting.

Next Steps

Released under the MIT License.