Skip to main content
Glama
CapyKkuing

naver-mail-mcp

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
NAVER_IDNoNaver ID for IMAP/SMTP login. Required for stdio mode or fixed-token mode; OAuth users enter it at login.
PUBLIC_URLNoPublic URL of the deployed Worker, e.g. http://localhost:8787 for local development.
ALLOWED_USERSNoComma-separated Naver IDs allowed to connect. If empty, anyone can connect with their own account as a public server.
SAVE_SENT_COPYNoWhether to save a copy of sent messages in the Sent mailbox. Set to false if Naver automatically saves SMTP-sent messages and duplicates occur.true
MCP_BEARER_TOKENNoA long random string used for fixed bearer-token authentication without OAuth.
NAVER_APP_PASSWORDNoNaver application password for IMAP/SMTP login. Required for stdio mode or fixed-token mode; OAuth users enter it at login. Regular login passwords are rejected.

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
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_profileA

Returns the connected Naver Mail address, total messages and unread count in the inbox. Use it to confirm which account is connected.

search_threadsA

IMPORTANT: results are previews (up to 5 messages per thread, from this page only). Never answer questions about the latest or unread email from previews alone; call get_thread to read relevant threads in full. Lists email threads in the Naver Mail account matching a query, newest first, with pagination. Each thread has its id, messageCount (messages from this page) and messages with id, sender, recipients, date, labelIds, subject and snippet. Use it to find thread ids before reading full threads or acting on emails.

get_threadA

Retrieves an email thread (conversation) with all its messages, oldest first, across folders (inbox, sent, user folders). Drafts are omitted. Threads are reconstructed from Message-ID/References headers. Use PLAIN_TEXT to save context.

get_messageA

Retrieves a single email message by id, including body and attachment metadata. For whole conversations use get_thread. Use PLAIN_TEXT to prevent context exhaustion.

get_attachmentA

Downloads one attachment of a message. Returns text for text-like files (txt, csv, html, json, ics) and base64 data (up to 8MB).

list_labelsA

Lists labels with message and unread counts. In Naver Mail labels are folders: system labels INBOX, SENT, DRAFT, TRASH, SPAM map to the matching folders; user labels are folder paths. STARRED (important mark) and UNREAD are flags. Use the returned id with label tools.

create_labelA

Creates a new user label (a Naver Mail folder). Nested labels use '/', e.g. 'Projects/Alpha'; missing parents are created.

update_labelC

Renames a user label (folder).

delete_labelA

Deletes a user label. WARNING: in Naver Mail a label is a folder, so the messages inside it are deleted too. Confirm with the user first.

label_messageA

Adds labels to a message: STARRED marks important, UNREAD marks unread, a folder label moves it. Moving changes the message id; the new id is returned.

unlabel_messageA

Removes labels from a message, e.g. remove UNREAD to mark as read, STARRED to unstar. Moving changes the message id; the new id is returned.

update_message_labelsA

Adds and/or removes labels on a message in one call. Moving changes the message id; the new id is returned.

label_threadA

Adds labels to every message in a thread (e.g. STARRED, or a folder label to move the conversation).

unlabel_threadA

Removes labels from every message in a thread, e.g. remove UNREAD to mark the whole conversation as read.

trash_messageA

Moves a message to Trash (soft delete). Default tool when the user asks to delete a message without asking for permanent deletion.

trash_threadA

Moves every message of a thread to Trash (soft delete).

untrash_messageA

Moves a message out of Trash (to Sent if you sent it, otherwise Inbox).

untrash_threadB

Moves the messages of a thread out of Trash.

mark_message_spamC

Moves a message to the Spam folder.

mark_thread_spamA

Moves every message of a thread to the Spam folder.

unmark_message_spamA

Moves a message out of Spam back to the Inbox.

unmark_thread_spamB

Moves the messages of a thread out of Spam.

send_messageA

Sends an email immediately from the Naver Mail account (SMTP) and saves a copy in Sent. To send an existing draft, give draftId. To thread under an existing conversation give replyThreadId or replyToMessageId. Confirm recipients and content with the user before sending.

replyA

Replies to a message (to the sender, or everyone with replyAll). The original is quoted below the reply and threading headers are set. To reply in a thread, use the id of its latest message from get_thread. body or htmlBody is required. Confirm with the user before sending.

forwardA

Forwards a message with its original attachments. Optional comments go above the forwarded message via forwardText (plain) or htmlBody. Confirm with the user before sending.

create_draftA

Creates a draft in the Naver Mail drafts folder (임시보관함). If replyToMessageId is given, threading headers are set and the original message is quoted below the body; recipients default to the original sender. Returns the draft id.

update_draftA

Updates a draft with merge semantics: given (non-empty) fields overwrite, omitted fields are kept. If only body is given the HTML body is cleared. WARNING: attachments are NOT merged; re-provide them or they are removed. The draft id changes (returned).

delete_draftC

Deletes a draft.

list_draftsA

Lists drafts, optionally filtered by a query (same syntax as search_threads).

get_draftC

Retrieves a draft by id.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3.3/5.0

Scored across 30 tools

Disambiguation3/5

Most tools target a clear resource+action pair (message vs thread vs label vs draft), but there is real redundancy: update_message_labels duplicates what label_message + unlabel_message already do, and reply overlaps heavily with send_message when replyToMessageId is supplied. The message-vs-thread variants (trash_message/trash_thread, mark_message_spam/mark_thread_spam) are distinguishable only via the name suffix, which descriptions support but don't strongly disambiguate.

Naming Consistency4/5

Strong verb_noun snake_case pattern with predictable prefixes (label_/unlabel_, trash_/untrash_, mark_/unmark_, create_/update_/delete_). A few bare-verb outliers (reply, forward, send_message) break the pattern slightly, but overall it is highly predictable.

Tool Count3/5

30 tools is heavy and crosses the comfortable range, though a full mail client (messages, threads, drafts, labels, spam/trash, sending) is a genuinely broad domain. Removing the redundant update_message_labels and collapsing mark/unmark pairs would bring it to a well-scoped size.

Completeness4/5

Covers the full lifecycle for messages, threads, drafts (create/get/update/delete), labels (CRUD), plus send/reply/forward and attachment download. Minor gaps: no way to attach files when sending and no permanent-delete operation, but these are likely deliberate and workaroundable.

Maintenance

ActivityMaintained
ResponsivenessNo issues