Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
APPLE_TOOLS_INDEX_DAYS_BACKNoNumber of days back to index when building the search index30

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
smart_searchA

Intelligent search across Mail, Messages, and Calendar. Automatically determines which sources to search based on your query. Returns results grouped by time when multiple sources match. Use this for complex queries that might span multiple data sources.

mail_searchB

Semantic search for emails using AI embeddings. Finds emails by meaning, not just keywords. Supports filtering by sender, recipient, attachments, mailbox, sent/received, and flagged.

mail_recentA

Get most recent emails without semantic search. Use this when the user asks for 'recent emails', 'latest emails', 'what emails did I get', or 'unread emails'.

mail_dateB

Get all emails from a specific date. Supports natural language like 'today', 'yesterday', 'November 13', 'last Friday'. Use this when the user asks for emails on a specific date.

mail_readA

Read full email content. Use the file_path from mail_search or mail_recent results.

mail_findA

Exact email lookup in Mail's own database (not the semantic index, so it never waits on indexing and matches filters exactly). Returns JSON: one row per copy (the same Message-ID in INBOX and Sent is two rows) with message_id, subject, from, to, received, mailbox, account_id. Needs at least one of subject_prefix, subject_contains, from, to, message_ids. Trash is excluded unless include_trash or mailboxes asks for it. Pair with mail_trash message_ids to clear what it finds.

mail_linksA

Links in one email, decoded: each http(s) link with its visible text, from the HTML anchors (quoted-printable and base64 decoded, & unescaped) and bare URLs in the plain-text part. Use the id from mail_find. mail_read strips HTML, so it loses link targets; use this when you need the URL behind a button such as a sign-in or confirm link. Reads Mail's message file directly and never waits on the index. downloaded:false means Mail has not saved the file yet.

messages_searchB

Semantic search for iMessages/SMS using AI embeddings. Finds messages by meaning. Supports filtering by contact, group chats, specific group name, and attachments.

messages_recentA

Get most recent messages without semantic search. Use this when the user asks for 'recent messages', 'latest texts', or 'what messages did I get'. My own messages show a To: line naming the contact or group chat they were sent to.

messages_conversationA

Get full conversation history with a specific contact. Shows messages in chronological order.

calendar_searchB

Semantic search for calendar events using AI embeddings. Finds events by meaning. Supports filtering by calendar name and all-day events.

calendar_dateA

Get all events on a specific date. Supports natural language dates like 'today', 'tomorrow', 'next Tuesday', 'Jan 15'.

calendar_free_timeB

Find free time slots on a specific date. Analyzes calendar to find available time windows.

mail_sendersB

List most frequent email senders. Helps identify who you communicate with most.

rebuild_indexA

Rebuild the search index for one or more data sources. This clears the existing index and re-indexes all content from scratch. Use this if search results are stale, missing, or if the index is corrupted. Can rebuild emails, messages, calendar, or all sources at once.

audit_indexB

Audit search index against source data with 0% tolerance. Reports missing items, orphaned entries, and duplicates with detailed file paths and remediation suggestions. Validates 100% of source data.

messages_contactsB

List all contacts you've messaged, sorted by most recent. Shows message count and last message date.

calendar_upcomingA

Get next N upcoming events across all calendars. Simpler than calendar_search for quick schedule overview.

calendar_weekA

Get all events for the current week or a future week. Shows events grouped by day.

mail_threadB

Get all emails in a conversation thread. Finds related emails by matching subject lines.

calendar_recurringB

List recurring events (events that appear multiple times). Shows upcoming occurrences.

contacts_searchB

Search your contacts by name, email, phone, or organization. Returns matching contacts with all their details.

contacts_lookupB

Look up a specific contact by email, phone number, or name. Returns full contact details including all emails and phone numbers.

person_searchA

Search ALL communication with a specific person across Mail, Messages, and Calendar. Automatically finds their emails and phone numbers from Contacts to search all sources.

mail_sendA

Send an email through Mail.app. Success means the message was verified in Sent or is still in Outbox (still sending) — AppleScript send returning is not enough. Sending to more than one recipient in total (to + cc + bcc) requires confirm=true. dry_run and unconfirmed multi-recipient calls are not deliveries (MCP isError). A send hang is a timeout, not TCC, unless Mail reports -1743/-10004; hang recover matches To+subject (Message-ID when available), never subject alone. Clients must Sent-check before retrying a timed-out send.

mail_draftA

Save an email to Drafts without sending it. Drafts are never delivered, so no recipient confirmation is required.

mail_replyA

Reply to an existing email. The reply text is pasted above the quoted original in a visible Mail window (System Events focus on the message body, then Command-Up and clipboard paste — not Cmd-A, which would replace the quote; AppleScript content is not set because Mail 16 leaves it empty). reply_all=true fans out to every original recipient and requires confirm=true. A real send is verified in Sent/Outbox before success. A send hang is a timeout, not TCC, unless Mail reports -1743/-10004; hang recover uses In-Reply-To. Clients must Sent-check before retrying a timed-out send.

mail_forwardA

Forward an existing email to new recipients. An optional note is pasted above the forwarded original in a visible Mail window (same System Events prepend as mail_reply; AppleScript content is not set). More than one recipient requires confirm=true. A real send is verified in Sent/Outbox before success. A send hang is a timeout, not TCC, unless Mail reports -1743/-10004; hang recover matches intended To plus Fwd: subject or original Message-ID. Clients must Sent-check before retrying a timed-out send.

mail_markC

Mark an email as read or unread.

mail_archiveC

Move an email to its account's Archive mailbox.

mail_trashA

Move email to Trash. Destructive: requires confirm=true, otherwise the call only reports what would be trashed. One message: message_id or file_path. Many: message_ids (up to 500, e.g. from mail_find) moves every copy of each (INBOX, Sent, Archive...) to that account's Trash; each copy's Message-ID is re-checked before it moves. A bulk call stops starting new moves after ~35s and reports 'remaining'; run it again for the rest.

messages_sendA

Send an iMessage or SMS. Address it with 'to' (E.164 phone numbers like +15551234567, or Apple ID emails) or with 'chat_id' (a chat GUID from chat.db, e.g. 'iMessage;-;+15551234567' or 'iMessage;+;chat123456'). Group chats and multiple recipients require confirm=true.

calendar_list_calendarsA

List the calendars in Calendar.app with their writability, so events land on the intended calendar instead of the default.

calendar_addB

Create a calendar event. Times must be explicit local datetimes (YYYY-MM-DD HH:MM). Supports recurrence (FREQ=DAILY/WEEKLY/MONTHLY/YEARLY with INTERVAL, COUNT or UNTIL, BYDAY) and alerts in minutes before the start. Returns the new event id.

calendar_editA

Update an existing event by id. Pass only the fields to change. Setting alerts_minutes_before replaces the event's existing alerts.

calendar_removeA

Delete a calendar event by id. Destructive: requires confirm=true, otherwise the call only reports what would be deleted.

calendar_rsvpB

Respond to a calendar invitation: accept, decline, or tentative.

contacts_addC

Create a contact in Contacts.app. Returns the new contact id.

contacts_editB

Update a contact by id. Emails and phones are added unless replace_emails / replace_phones is set; replacing with an empty list removes them and requires confirm=true.

contacts_removeA

Delete a contact by id. Destructive: requires confirm=true, otherwise the call only reports what would be deleted.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3.4/5.0

Scored across 40 tools

Disambiguation4/5

Most tools have clearly distinct purposes and detailed descriptions that help differentiate them. However, some overlap exists (e.g., contacts_search vs contacts_lookup, multiple search variants across Mail and Calendar) that could cause occasional misselection.

Naming Consistency4/5

Tool names follow a consistent snake_case pattern with domain prefixes (mail_, messages_, calendar_, contacts_) for the vast majority of tools. A few cross-cutting tools (smart_search, person_search, rebuild_index, audit_index) lack prefixes, but are still readable and unambiguous.

Tool Count3/5

40 tools across four Apple apps plus indexing is on the heavy side. While the broad scope justifies many tools, some retrieval functions (e.g., mail_search, mail_find, mail_recent, mail_date, smart_search) feel redundant and could be consolidated.

Completeness4/5

The surface covers core CRUD and lifecycle operations for Mail, Messages, Calendar, and Contacts, plus indexing utilities. Minor gaps exist (e.g., message deletion, Mail flagging, calendar attendee management), but agents can work around them for most workflows.

Maintenance

ActivityActive
ResponsivenessNo issues