About io.github.csitte/mailwarden
io.github.csitte/mailwarden is an MCP server published by csitte in the Search category: native Gmail MCP server: search, labels, archive, trash, attachments, and snooze.
Recent commit activity is the strongest signal that reported issues will get attention.
Install
claude mcp add io-github-csitte-mailwarden -- npx -y mailwardennpx -y mailwardenThis server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.
Tools (12)
create_filterCreate a server-side auto-triage rule (criteria → label actions only; **no forwarding** — see below). Optionally `applyToExisting` to also sweep matching mail already in the mailbox
Parameters not published.
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 exists
Parameters not published.
delete_filterDelete a filter by id
Parameters not published.
download_attachmentSave an attachment to a local path (never overwrites — collisions get a numeric suffix)
Parameters not published.
get_profileConnected account's address, total message/thread counts and the mailbox's current `historyId` — confirm *which* mailbox is wired up before acting
Parameters not published.
get_threadFull thread: headers, plaintext + HTML bodies, attachment metadata. Every message also carries `authentication` — SPF/DKIM/DMARC as the receiving server reported them, plus the domains each check validated (`signedBy`/`mailedBy`/`headerFrom`), who asserts it (`authservId`), the `returnPath`, `alsoReported` for results that contradict each other, `otherReports` for reports that were not read, and `unchecked: true` when the message carried no report at all — see [Judging a sender](#judging-a-sender--what-authentication-answers-and-what-it-doesnt). `full: false` fetches headers and labels only — it then **omits** `plaintextBody`/`htmlBody`/`attachments` and sets `metadataOnly: true`, rather than reporting them empty for a request that never looked
Parameters not published.
list_filtersAll Gmail filters (criteria + label actions); surfaces any `forward` address on existing filters for auditing
Parameters not published.
list_labelsAll labels (system + user)
Parameters not published.
list_unsubscribeWhat opt-out options a thread advertises (`List-Unsubscribe`), plus body links when it advertises none — contacts nobody
Parameters not published.
modify_labelsAdd/remove labels by **name or id** — an unknown name in `add` is auto-created (archive = remove `INBOX`, read = remove `UNREAD`)
Parameters not published.
searchGmail query syntax → thread summaries (from/subject/date/labels/snippet); read-state/category predicates are re-verified against each hit's live labels; paginated via `pageToken`/`nextPageToken`. Each hit carries `signals` — `newsletter` (List-Id / List-Unsubscribe / Precedence bulk or list), `automated` (Auto-Submitted, auto-reply/suppress headers, no-reply-style senders), `calendar` (text/calendar or .ics part), `replyToMismatch` (Reply-To on another domain than From; a subdomain of the same domain counts as the same) — read off the first message's headers/MIME, no extra call. **Spam and trash are excluded unless the query says `in:spam` / `in:trash`** — see [Looking in spam](#looking-in-spam)
Parameters not published.
what_changedMailbox events since a `historyId` you hold — arrivals, removals, labels on and off, in one call
Parameters not published.
Ask AI
Ask AI about io.github.csitte/mailwarden
Powered by Claude · Grounded in docs
Security checks
6 checks have not been run yet.