Skip to main content
Glama
hasan-imam

mcp-outlook-applescript

by hasan-imam

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_accountsA

List all mail accounts configured in Microsoft Outlook for Mac. Use this to discover account IDs needed by other tools (e.g., list_folders with account_id filter). Returns an array of accounts, each with id, name, email, and type fields. Note: only Exchange, IMAP, and POP account types are returned; newer Microsoft 365 account types may not appear. Requires Outlook to be running or returns an error.

list_foldersA

List all mail folders in Outlook with their message and unread counts. Use this to discover folder IDs needed by list_emails, search_emails, prepare_move_email, and other folder-based tools. Returns an array of folders, each with id, name, messageCount, and unreadCount. When account_id is provided, returns folders grouped by account. Returns an error if Outlook is not running.

list_emailsA

List email summaries in a specific mail folder, ordered newest first. Each result includes a 500-char body preview for browsing without needing get_email. Returns {items, count, hasMore} — when hasMore is true, increment offset by limit to fetch the next page. Use after/before (ISO 8601) to filter by received date. For full email content, use get_email. Requires Outlook to be running.

search_emailsA

Search emails by matching the query against subject line and sender address. Returns metadata only (subject, sender, date, flags) — no body preview. For email content, call get_email on a matching ID. Returns {items, count, hasMore} — increment offset by limit when hasMore is true. Use after/before (ISO 8601) to filter by received date. Use folder_id to scope to one folder. Pagination is fast at any offset.

get_emailA

Get full details of a single email including its body content. Use this after list_emails or search_emails to read the complete message. Returns all summary fields plus recipients, body (plain text when strip_html is true, the default), attachments list, messageId, and conversationId. Set strip_html to false to also receive the raw HTML in the htmlBody field. Returns an error if the email ID does not exist. Set include_body to false for metadata only.

get_unread_countA

Get the count of unread emails, either across all folders or for a specific folder. Use this for a quick check without fetching full email lists. Returns an object with a single "count" field (number). Optionally pass folder_id to limit the count to a specific folder (get folder IDs from list_folders). Requires Outlook to be running.

list_attachmentsA

List attachment metadata for a specific email. Use this before download_attachment to discover attachment indices and sizes. Returns an array of attachment objects with index, name, size (bytes), and contentType. Returns an error if the email ID does not exist. Returns an empty array if the email has no attachments.

download_attachmentA

Download and save an email attachment to a file on disk. Use this after list_attachments to get the 1-based attachment index. Returns the saved file path, name, and size in bytes. Writes the file to the specified save_path — the parent directory must already exist. Returns an error if the email or attachment does not exist, the directory is invalid, or the attachment exceeds the size limit.

list_calendarsA

List all calendar folders configured in Outlook. Use this to discover calendar IDs for filtering in list_events or specifying a target calendar in create_event. Returns an array of calendar objects with id, name, and accountId. Requires Outlook to be running or returns an error.

list_eventsA

List calendar events with optional date range or calendar filtering. Returns {items, count, hasMore} — increment offset by limit when hasMore is true. Filter by date range (start_date + end_date in ISO 8601) and/or calendar_id (from list_calendars). Use get_event for full details including attendees and description.

get_eventA

Get full details of a single calendar event. Use this after list_events or search_events to see the complete event including location, description, organizer, and attendees list. Returns all summary fields plus location, description, organizer, attendees (with name and status), and recurrence IDs. Returns an error if the event ID does not exist.

search_eventsA

Search calendar events by matching the query against event titles. Returns {items, count, hasMore} — increment offset by limit when hasMore is true. Use after/before (ISO 8601) to filter by event start date. For full event details including attendees, call get_event on a matching ID.

create_eventA

Create a new calendar event in Outlook. Use this to schedule meetings or reminders. Returns the created event with id, title, start/end dates, calendar_id, and is_recurring flag. Optionally specify a target calendar_id (from list_calendars), location, description, all-day flag, or recurrence pattern. Returns an error if start_date is not before end_date or if the calendar is unavailable. Use delete_event to remove a created event.

respond_to_eventA

Respond to a meeting invitation with accept, decline, or tentative. Updates your RSVP status in Outlook and by default sends a response notification to the organizer (set send_response to false to suppress). Returns a confirmation message. Use get_event first to review the event details before responding. Returns an error if the event ID does not exist or event response is unavailable.

delete_eventA

Delete a calendar event from Outlook. For recurring events, use apply_to to choose between deleting a single instance or the entire series. Returns a confirmation message. This action is permanent and cannot be undone. Returns an error if the event ID does not exist. Use get_event to verify the event before deleting.

update_eventA

Update a calendar event in Outlook. Only the fields you specify will be changed — omitted fields remain unchanged. For recurring events, use apply_to to choose between updating a single instance or the entire series. Returns a confirmation with the event ID and list of updated field names. Returns an error if the event ID does not exist or start_date is not before end_date. Use get_event to review current values before updating.

list_contactsA

List contact summaries from Outlook with pagination. Returns {items, count, hasMore} — increment offset by limit when hasMore is true. For full details including emails, phones, and addresses, use get_contact. Use search_contacts to find contacts by name.

search_contactsA

Search contacts by matching the query against contact names. Returns {items, count, hasMore} — increment offset by limit when hasMore is true. For full contact details, call get_contact on a matching ID.

get_contactA

Get full details of a single contact. Use this after list_contacts or search_contacts to see complete information. Returns all summary fields plus firstName, lastName, company, jobTitle, department, emails (with type and address), phones (with type and number), addresses, and notes. Returns an error if the contact ID does not exist.

list_tasksA

List task summaries from Outlook with pagination and optional completion filtering. Returns {items, count, hasMore} — increment offset by limit when hasMore is true. Set include_completed to false to see only incomplete tasks. For full details including body and reminder, use get_task.

search_tasksA

Search tasks by matching the query against task names. Returns {items, count, hasMore} — increment offset by limit when hasMore is true. For full task details, call get_task on a matching ID.

get_taskA

Get full details of a single task. Use this after list_tasks or search_tasks to see the complete task. Returns all summary fields plus startDate, completedDate, body, hasReminder, reminderDate, and categories. Returns an error if the task ID does not exist.

list_notesA

List note summaries from Outlook with pagination. Returns {items, count, hasMore} — increment offset by limit when hasMore is true. For full details including body content, use get_note. Use search_notes to find notes by title.

get_noteA

Get full details of a single note. Use this after list_notes or search_notes to read the complete note content. Returns all summary fields plus body, createdDate, and categories. Returns an error if the note ID does not exist.

search_notesA

Search notes by matching the query against note titles/names only (does not search body content). Returns {items, count, hasMore} — increment offset by limit when hasMore is true. For full note content, call get_note on a matching ID.

send_emailA

Send an email from Outlook with optional CC, BCC, file attachments, inline images, and HTML formatting. This action sends the email immediately and cannot be undone. Returns the sent message_id and sent_at timestamp. Use list_accounts to find account_id if sending from a non-default account. Returns an error if required fields (to, subject) are missing or if attachment file paths do not exist.

prepare_delete_emailA

Prepare to delete an email (move to trash). Returns a preview of the email and an approval token with expiration time. Call confirm_delete_email with the token to execute the deletion. Returns an error if the email ID does not exist. The token expires after 5 minutes.

confirm_delete_emailA

Confirm and execute deletion of an email using a token from prepare_delete_email. Moves the email to the Deleted Items folder. Returns a success message. Returns an error if the token is invalid, expired, already used, or if the email has changed since the prepare step.

prepare_move_emailA

Prepare to move an email to another folder. Returns a preview of the email, destination folder details, and an approval token. Call confirm_move_email with the token to execute the move. Returns an error if the email or destination folder ID does not exist. The token expires after 5 minutes.

confirm_move_emailA

Confirm and execute moving an email using a token from prepare_move_email. Moves the email to the destination folder specified during the prepare step. Returns a success message. Returns an error if the token is invalid, expired, already used, or if the email has changed since the prepare step.

prepare_archive_emailA

Prepare to archive an email (move to Archive folder). Returns a preview of the email and an approval token. Call confirm_archive_email with the token to execute. Returns an error if the email ID does not exist. The token expires after 5 minutes.

confirm_archive_emailA

Confirm and execute archiving an email using a token from prepare_archive_email. Moves the email to the Archive folder. Returns a success message. Returns an error if the token is invalid, expired, already used, or if the email has changed since the prepare step.

prepare_junk_emailA

Prepare to mark an email as junk (move to Junk folder). Returns a preview of the email and an approval token. Call confirm_junk_email with the token to execute. Returns an error if the email ID does not exist. The token expires after 5 minutes.

confirm_junk_emailA

Confirm and execute marking an email as junk using a token from prepare_junk_email. Moves the email to the Junk folder. Returns a success message. Returns an error if the token is invalid, expired, already used, or if the email has changed since the prepare step.

prepare_delete_folderA

Prepare to delete a mail folder and all its messages. Returns a preview of the folder (with message count) and an approval token. Call confirm_delete_folder with the token to execute. Returns an error if the folder ID does not exist. The token expires after 5 minutes.

confirm_delete_folderA

Confirm and execute deletion of a mail folder using a token from prepare_delete_folder. Permanently deletes the folder and all its messages. Returns a success message. Returns an error if the token is invalid, expired, already used, or if the folder has changed since the prepare step.

prepare_empty_folderA

Prepare to empty a mail folder by deleting all its messages. Returns a preview of the folder (with message count) and an approval token. Call confirm_empty_folder with the token to execute. Returns an error if the folder ID does not exist. The token expires after 5 minutes.

confirm_empty_folderA

Confirm and execute emptying a mail folder using a token from prepare_empty_folder. Deletes all messages in the folder. Returns a success message. Returns an error if the token is invalid, expired, already used, or if the folder has changed since the prepare step.

prepare_batch_delete_emailsA

Prepare to delete multiple emails (up to 50). Returns individual approval tokens per email so you can selectively confirm. Call confirm_batch_operation with the desired tokens to execute. Returns an error if any email ID does not exist. Tokens expire after 5 minutes.

prepare_batch_move_emailsA

Prepare to move multiple emails (up to 50) to a destination folder. Returns individual approval tokens per email so you can selectively confirm. Call confirm_batch_operation with the desired tokens to execute. Returns an error if any email or the destination folder ID does not exist. Tokens expire after 5 minutes.

confirm_batch_operationA

Confirm and execute a batch operation using tokens from prepare_batch_delete_emails or prepare_batch_move_emails. You may selectively confirm by including only the desired token/email pairs. Returns per-email results with success/failure status and a summary with total, succeeded, and failed counts. Individual tokens that are invalid, expired, or already used will fail without blocking others.

mark_email_readA

Mark an email as read in Outlook. Use this to clear unread indicators on a message. Returns a success confirmation. Returns an error if the email ID does not exist. Use mark_email_unread to reverse this action.

mark_email_unreadA

Mark an email as unread in Outlook. Use this to restore the unread indicator on a message. Returns a success confirmation. Returns an error if the email ID does not exist. Use mark_email_read to reverse this action.

set_email_flagA

Set the follow-up flag status on an email. Use flag_status 1 for flagged, 2 for completed, or 0 to clear. Returns a success confirmation. For a simpler clear-only operation, use clear_email_flag instead. Returns an error if the email ID does not exist.

clear_email_flagA

Clear the follow-up flag from an email, setting it to "not flagged". This is a convenience shortcut equivalent to set_email_flag with flag_status 0. Returns a success confirmation. Returns an error if the email ID does not exist.

set_email_categoriesA

Set categories on an email, replacing any existing categories. Use this to organize emails with color-coded labels. Pass an empty array to clear all categories. Returns a success confirmation. Returns an error if the email ID does not exist. Use get_email to check current categories before modifying.

create_folderA

Create a new mail folder in Outlook. Creates a top-level folder by default, or a subfolder if parent_folder_id is specified. Returns the created folder with id, name, messageCount, and unreadCount. Use list_folders to discover existing folder IDs for the parent. Returns an error if the parent folder does not exist.

rename_folderA

Rename a mail folder in Outlook. Changes the display name of the folder without moving it. Returns a success confirmation with the new name. Returns an error if the folder ID does not exist. Use list_folders to find folder IDs.

move_folderA

Move a mail folder under a different parent folder in Outlook. Relocates the folder and all its contents to the new parent. Returns a success confirmation. Returns an error if either the source or destination folder ID does not exist. Use list_folders to find folder IDs.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/hasan-imam/mcp-outlook-applescript'

If you have feedback or need assistance with the MCP directory API, please join our Discord server