Reference data

Label colors, view icons, the filter grammar, AI label rule and auto-forward options, icon names, folders and scheduling rules used by the MCP tools.

The facts on this page are the ones the server itself serves to the assistant with get_reference (one topic, or all) and as MCP resources maylee://reference/<topic>. They are generated from the same data, so they always match what the tools accept.

Label colors

Labels and AI labels use one of seven color names, case-sensitive. The MCP server refuses hex values and other names: the app would show them without color.

PinkPink
BlueBlue
RedRed
YellowYellow
GreenGreen
PurplePurple
OrangeOrange

A new manual label gets Pink in the app, and new AI labels rotate through the list in this order.

View icons

A view icon is exactly one emoji, not an icon name or text. These are the 48 emojis of the app picker. Most other single emojis are accepted too, but long combined emojis (several emojis joined, such as â¤ī¸â€đŸ”Ĩ or 👩đŸŊ‍đŸ’ģ) cannot be stored and are refused.

Smileys

😀😃😄😊😎😍😒🤔💡đŸ’Ē✨🎉🚀đŸ”Ĩâ¤ī¸đŸ‘

Objects

📧📋📅📌🔍🔒🔑đŸ’ŧđŸ“âœ‰ī¸đŸ“¨đŸ“ˆđŸ“ŠđŸ’°â°đŸ—‚ī¸

Symbols

âœ…âŒâ­âš ī¸â„šī¸â†Šī¸âžĄī¸đŸ”ƒđŸŽ¯đŸ¤đŸ’Ŧ🌟🚨💤🛑đŸŸĸ

A new view gets 😎 in the app.

Filter grammar

The grammar of view filters (create_view, update_view) and of the filters parameter of list_emails. It differs from the REST filter tree: conditions use field, operator and value, and groups add one level of nesting. Unlike the REST API, invalid dates are rejected, never ignored.

FilterSpec = {
  match: 'all' | 'any'
  conditions: Condition[]
  groups?: { match: 'all' | 'any'; conditions: Condition[] }[]
}
Condition = { field, operator, value? }
FieldOperatorsValueMeaning
mailboxisis_notmailbox id (from list_mailboxes)The email belongs (is) or does not belong (is_not) to that mailbox.
labelcontainsnot_containsMANUAL label id (from list_labels, isAiLabel false)The email has (contains) or does not have (not_contains) that manual label. An AI label id here matches nothing: use ai_label.
ai_labelcontainsnot_containsAI label id (from list_labels, isAiLabel true)The email has or does not have that AI label.
keyword_subjectcontainsnot_containstextThe subject contains (or does not contain) the text, ignoring case.
sender_addressequalscontainsemail address or fragmentCompares the sender ADDRESS only (not the display name), ignoring case.
sender_domainequalscontainsdomain such as acme.comequals: the sender address ends with @domain (subdomains do not match). contains: the text appears anywhere in the sender address, local part included.
datebeforeafterbetweenISO 8601 date-time; for between, "start|end" (both inclusive)Email date. before and after are strict (the instant itself is excluded); between includes both ends. A bare date such as 2026-09-30 means 00:00 UTC that day, so end a range with T23:59:59.999Z. Invalid dates are rejected.
read_statusis_trueis_falsenone (omit value)is_true = read, is_false = unread.
has_attachmentis_trueis_falsenone (omit value)The email has attachments (is_true) or not (is_false).
  • match all = every condition and group must hold; match any = at least one.
  • groups add one level of nesting: each group has its own match and conditions.
  • There is no folder field: choose the folder with list_emails folder (views show INBOX by default).
  • Only label, ai_label and keyword_subject have a negative operator (not_contains); a sender cannot be excluded with this grammar.
  • Label conditions take label ids, never names.
  • At most 50 conditions in total, 500 characters per value.
  • Queries are stopped after 10 seconds (QUERY_TIMEOUT).

Newsletters from two domains

{
  "match": "any",
  "conditions": [
    {
      "field": "sender_domain",
      "operator": "equals",
      "value": "substack.com"
    },
    {
      "field": "sender_domain",
      "operator": "equals",
      "value": "mailchimp.com"
    }
  ]
}

Unread invoices received in September 2026

{
  "match": "all",
  "conditions": [
    {
      "field": "ai_label",
      "operator": "contains",
      "value": "<id of the Invoices AI label>"
    },
    {
      "field": "read_status",
      "operator": "is_false"
    },
    {
      "field": "date",
      "operator": "between",
      "value": "2026-09-01T00:00:00.000Z|2026-09-30T23:59:59.999Z"
    }
  ]
}

Emails with attachments from client-a.com or client-b.com, except newsletters

{
  "match": "all",
  "conditions": [
    {
      "field": "has_attachment",
      "operator": "is_true"
    },
    {
      "field": "keyword_subject",
      "operator": "not_contains",
      "value": "newsletter"
    }
  ],
  "groups": [
    {
      "match": "any",
      "conditions": [
        {
          "field": "sender_domain",
          "operator": "equals",
          "value": "client-a.com"
        },
        {
          "field": "sender_domain",
          "operator": "equals",
          "value": "client-b.com"
        }
      ]
    }
  ]
}

AI label rules

An AI label rule is an AI label plus a plain-language condition. Maylee reads each new incoming email and applies the label when the condition matches. A rule can also prepare a reply draft (Auto-Draft), send it automatically (Auto-Reply) and hide matching emails from the main inbox.

FieldTypeDefaultMeaning
namestring, 1 to 50 charactersrequiredName of the AI label, unique among all labels (manual and AI). A duplicate fails with DUPLICATE_RULE.
colorone of Pink, Blue, Red, Yellow, Green, Purple, OrangerequiredColor of the AI label chip.
conditionstring, 1 to 500 charactersrequiredPlain-language criterion that Maylee's AI reads for every new incoming email, for example "Invoices, receipts or payment reminders from suppliers".
autoDraftEnabledbooleanfalseAuto-Draft: Maylee writes a reply draft (Magic Reply) for matching INBOX emails less than 24 hours old. Premium or Expert plan.
autoReplyEnabledbooleanfalseAuto-Reply: Maylee also SENDS that draft automatically. Requires autoDraftEnabled, a Premium or Expert plan, the Send permission and confirm true.
autoReplyConfidenceThresholdinteger 0 to 10085The draft is sent only if Maylee's confidence is at least this value; otherwise it stays in Drafts for review. When several rules match one email, the lowest threshold wins. The app's slider starts at 50.
autoReplyDelayMinutesinteger 0 to 150Wait before sending, so the user can cancel (cancel_auto_reply).
autoReplyNotifyOnSendbooleantrueSaved with the rule and shown in the app, but it has no effect today: notifications about automatic replies follow the user notification settings (event autoReply, see get_notification_settings).
hideFromInboxbooleanfalseKeep matching emails out of the main inbox. They stay in the INBOX folder and are listed with list_emails systemView hidden_by_filters and in views.
  • Classification is available on every plan and applies to INBOX emails synced after the rule exists. Each classified email uses the workspace monthly AI allowance, shared with Magic Reply and Auto-Draft; when it runs out, AI features pause until the 1st of the month.
  • Maylee has no notification that fires when a label is applied. The labels entries of update_notification_settings only mute or allow notifications about emails that carry an AI label.
  • classify_existing_emails applies the rules to emails already in the inbox (labels only: it never drafts, replies or forwards).
  • Deleting a rule deletes its AI label, which is removed from every email (emails are not deleted).
  • AI labels cannot be renamed or recolored with the label tools: use update_ai_label_rule.

Auto-forward rules

A rule forwards every new matching inbox email to another address, automatically.

conditionFieldconditionValueNote
labelexact NAME of an AI label, ignoring caseRules run once, when an email arrives, right after AI labeling: only AI labels trigger them, a manual label added later never does. Renaming the label breaks the rule; changing its AI rule changes what is forwarded.
sender_containstextChecked against the sender address and the sender display name, ignoring case.
sender_equalsaddress or display nameFull match against the sender address or display name, ignoring case.
subject_containstextThe subject contains the text, ignoring case.
subject_equalstextThe subject equals the text, ignoring case.
modeMeaning
normalStandard forward: subject prefixed with "Fwd:", original quoted below a forwarded-message header.
invisibleThe email is passed on unchanged (same subject and body, attachments included) with Reply-To set to the original sender, so the recipient answers the sender directly.
  • Rules run on new INBOX emails received less than 24 hours ago, from the moment the rule exists.
  • Forwarding to one of the workspace's own mailboxes or back to the original sender is ignored.
  • When several rules target the same destination, the first matching rule wins.
  • Failed forwards are not retried. get_auto_forward_logs shows the last 50 attempts of a rule.
  • Creating or changing a rule needs the Send permission and confirm true: it sends the user's email to a third party automatically and continuously.

Inbox filters

typevalue
senderexact email address (stored lowercased)
domaindomain such as acme.com (a leading @ is removed; subdomains do not match)
subjecttext contained in the subject, ignoring case
labellabel id (manual or AI)
  • Inbox filters hide matching emails from the main inbox only; they are not moved or deleted.
  • Filters are evaluated when the inbox is displayed, so they apply to past emails too and deleting a filter brings the emails back.
  • Custom views and other folders are never reduced by inbox filters.
  • Hidden emails are listed with list_emails systemView hidden_by_filters.

Snippet icons

Snippets (called smart links in the app) use one of these icon names, exactly as written:

CalendarPhoneAt SignLinkFileMessageBookmarkHashClockLocationStarHeartBriefcaseUsersShieldIdeaSendZapSparklesPen

Signature icons

PencilSignatureUsersShieldIdeaSendZapSparklesPen

Folders and system views

FolderMeaning
INBOXReceived emails.
SENTSent emails.
DRAFTSDrafts, including scheduled drafts (list them with systemView scheduled).
SPAMSpam.
TRASHTrash. move_emails with destination INBOX restores emails from here.
  • There is no Archive in Maylee. Provider folders such as Archive or custom Gmail labels are reported as folder OTHER.
  • Emails can be moved to INBOX or SPAM, and sent to TRASH with trash_emails. Drafts cannot be moved.
  • list_emails folder ALL covers every folder including spam and trash.
systemViewMeaning
waiting_for_replySent emails that Maylee thinks still expect an answer, oldest first. dismiss_waiting_for_reply removes emails from it.
scheduledDrafts scheduled to be sent, oldest first.
hidden_by_filtersINBOX emails hidden from the main inbox by inbox filters or by AI labels with hideFromInbox.

Scheduling

sendAt is YYYY-MM-DDTHH:mm, local wall-clock time in the workspace timezone, without offset, for example 2026-10-01T09:30. Allowed from 60 seconds to 365 days ahead.

StatusMeaning
PENDINGWaiting for its time.
QUEUEDPicked up for sending.
SENDINGBeing sent; it can no longer be cancelled.
FAILEDSending failed; the draft stays in Drafts and can be rescheduled.
  • The workspace timezone must be set once before scheduling (set_workspace_timezone). get_workspace tells whether it is set.
  • Once sent, a scheduled draft leaves Drafts and appears in Sent.
  • Daylight saving time: an ambiguous local time uses its first occurrence; a local time that does not exist is moved forward.
  • cancel_scheduled_send turns it back into an ordinary draft.

Resources

The same reference, one Markdown resource per topic, for clients that read MCP resources:

ResourceContent
maylee://reference/overviewWhat a Maylee workspace contains and how the tools are organized.
maylee://reference/label_colorsThe seven label color names accepted by Maylee and how they render.
maylee://reference/view_iconsA view icon is one emoji; the 48 emojis offered by the app picker.
maylee://reference/view_filtersThe filter grammar used by create_view, update_view and list_emails filters.
maylee://reference/ai_label_rulesEvery option of an AI label rule: condition, Auto-Draft, Auto-Reply, threshold, delay, notifications, hide from inbox.
maylee://reference/auto_forward_rulesCondition fields and modes of auto-forward rules, and when they run.
maylee://reference/inbox_filtersInbox filter types (sender, domain, subject, label) and their effect.
maylee://reference/snippet_iconsIcon names accepted for snippets (smart links).
maylee://reference/signature_iconsIcon names accepted for email signatures.
maylee://reference/folders_and_viewsMaylee folders and built-in lists (waiting for reply, scheduled, hidden by filters).
maylee://reference/schedulingHow scheduled sends work: local time format, allowed range, statuses.
maylee://reference/limitsRate limits, monthly quotas, bulk sizes, hourly safety budgets and field sizes.
maylee://reference/permissionsRead, write and send permissions and how to get them.
maylee://reference/securityHow to handle untrusted email content and irreversible actions.

On this page