Mailwarden MCP Server

Native Gmail MCP server: search, labels, archive, trash, attachments, and snooze.

Local serverstdio

What is the Mailwarden MCP Server?

Native Gmail MCP server: search, labels, archive, trash, attachments, and snooze.

What the server does

A reliable, native Gmail MCP server — full mailbox triage for AI assistants, with the feature nobody else ships: snooze.

  • Snooze — the feature nobody else ships. — Archive a thread now, have it resurface in the inbox
  • Search you can trust. — Gmail's own search index silently drops is:unread in some operator
  • Bulk operations that scale. — bulk_modify archives/labels everything matching a query at
  • Structured outputs. — Every tool declares an outputSchema and returns validated
  • Small attack surface. — No send tools (no exfiltration path for prompt-injected mail),
  • Correct with real-world mail. — RFC 2047 headers decoded (=?UTF-8?B?…?= → readable text),

More MCP options

Compare MCP servers by category, or browse hosted MCP servers if you prefer an endpoint over a local process.

Maintainer setup documentation.

Recorded tools

Check the linked publisher documentation and your connected client's tool list. Names and availability can vary with the server version and account permissions.

ToolWhat it does
Criteriafrom, to, subject, query (full Gmail search syntax), negatedQuery,
Actionslabel only): addLabels / removeLabels, by name or id (an unknown name in
search10 per list page, plus 40 for every candidate thread it fetches — about 1,000 at the default size, up to about 4,000 when the query carries a read-state or cate
get_threadFull thread: headers, plaintext + HTML bodies, attachment metadata. Every message also carries authentication — SPF/DKIM/DMARC as the receiving server reported
list_labelsAll labels (system + user)
get_profileConnected account's address, total message/thread counts and the mailbox's current historyId — confirm which mailbox is wired up before acting
what_changedMailbox events since a historyId you hold — arrivals, removals, labels on and off, in one call
list_unsubscribeWhat opt-out options a thread advertises (List-Unsubscribe), plus body links when it advertises none — contacts nobody
create_labelCreate a user label (idempotent; nested via Parent/Child) and return its id; an optional backgroundColor/textColor pair colours it, including one that already e
modify_labelsAdd/remove labels by name or id — an unknown name in add is auto-created (archive = remove INBOX, read = remove UNREAD)
download_attachmentSave an attachment to a local path (never overwrites — collisions get a numeric suffix)
list_filtersAll Gmail filters (criteria + label actions); surfaces any forward address on existing filters for auditing
create_filterCreate a server-side auto-triage rule (criteria → label actions only; no forwarding — see below). Optionally applyToExisting to also sweep matching mail already
delete_filterDelete a filter by id
bulk_modify5 per 500 matching messages, plus 50 per 1,000 modified; verify: true adds 40 per thread, crossCheck 5 per condition and 500 matches

How to install the Mailwarden MCP Server

{
  "mcpServers": {
    "mailwarden": {
      "command": "npx",
      "args": [
        "-y",
        "mailwarden"
      ]
    }
  }
}

From the project documentation. Replace placeholders and example paths before connecting.

Example prompts to try

  • “Use Mailwarden to search.”
  • “Use Mailwarden to get thread.”
  • “Use Mailwarden to list labels.”

Frequently asked questions

Native Gmail MCP server: search, labels, archive, trash, attachments, and snooze. Confirm the tools offered by your installed version in the connected client. Tool availability and permissions depend on the server and account configuration.