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

io.github.CapyKkuingPublished by GitHub account CapyKkuingv0.1.4Updated Nov 7, 2026
Read, search, reply to and organize Naver Mail with the same tools as the Gmail MCP (IMAP/SMTP).
Read, search, reply to, send and organize Naver Mail through IMAP/SMTP, with tool names matching the Gmail MCP.
Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.
Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.
Read https://sourceweft.com/mcp/io.github.CapyKkuing%2Fnaver-mail-mcp/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.Add this to your client's mcpServers config. The client completes OAuth sign-in on first connect.
{
"mcpServers": {
"naver-mail": {
"type": "http",
"url": "https://naver-mail-mcp.capykkuing.workers.dev/mcp"
}
}
}AI 에이전트가 지메일처럼 네이버 메일도 읽고, 요약하고, 답장하게 해 주는 MCP 서버입니다.
Claude, Grok, Meta Muse, ChatGPT, Codex에 연결하면 "이번 주 중요한 메일 요약해줘", "카드 결제 내역 메일만 모아줘", "이 메일에 회신해줘"가 네이버 메일에서도 됩니다. 도구 이름과 사용법이 Gmail MCP와 같아서, 지메일로 쓰던 에이전트 흐름을 그대로 쓸 수 있습니다.
[AI 비서가 네이버 메일에서 중요한 메일을 찾아 요약하고 답장하는 예시]
예시 화면 (가상의 메일)
네이버의 공식 서비스가 아닙니다. 네이버 메일이 제공하는 IMAP/SMTP로 동작합니다.
연결하려면 2단계 인증이 필수입니다. 평소 로그인 비밀번호가 아니라, 2단계 인증을 켜야 만들 수 있는 애플리케이션 비밀번호로 연결합니다.
① 2단계 인증 켜기
② 애플리케이션 비밀번호 만들기
③ POP3/IMAP 설정에서 IMAP 켜기
네이버는 메뉴 이름·위치를 가끔 바꿉니다. 메뉴가 안 보이면 네이버 ID 페이지에서 "애플리케이션 비밀번호"를 검색하세요.
공개 서버 주소: https://naver-mail-mcp.capykkuing.workers.dev/mcp
주소를 넣으면 로그인 화면이 열립니다. 네이버 아이디와 애플리케이션 비밀번호를 넣으면 끝입니다.
Node.js 20 이상이 필요하고, Claude Desktop·Claude Code·Codex 같은 PC 프로그램에서만 쓸 수 있습니다.
Claude Desktop (claude_desktop_config.json):
Claude Code: claude mcp add naver-mail -e NAVER_ID=내아이디 -e NAVER_APP_PASSWORD=앱비밀번호 -- npx -y naver-mail-mcp
버튼을 누르면 내 Cloudflare 계정(무료로 됨)에 똑같은 서버가 만들어집니다. 다 되면 나오는 https://naver-mail-mcp.<내 계정>.workers.dev/mcp를 방법 A처럼 넣으면 됩니다.
ALLOWED_USERS에 내 네이버 아이디를 넣으면 나만 쓸 수 있습니다. 비우면 누구나 자기 계정으로 연결할 수 있습니다.npm install → npx wrangler kv namespace create OAUTH_KV로 만든 id를 wrangler.jsonc에 넣기 → npx wrangler deploy요청 헤더에 Authorization: Bearer <MCP_BEARER_TOKEN>를 넣으면 OAuth 없이 위 계정으로 접속합니다.
이 서버가 다루는 가장 민감한 것은 애플리케이션 비밀번호입니다. 어디에 어떤 형태로 있는지 그대로 적습니다.
/authorize)이 아닌 주소로는 로그인을 받지 않습니다. 네이버가 이 서버의 IP를 차단해 모든 사용자가 피해를 보는 일을 막기 위한 것입니다.취약점을 발견하면 공개 이슈 대신 리포의 Security → Report a vulnerability로 알려 주세요.
get_profile과 get_attachment는 Gmail MCP에는 없는 추가 도구입니다.
INBOX, SENT, DRAFT, TRASH, SPAM은 해당 메일함, 사용자 라벨은 메일함 경로입니다. 한 메일은 한 메일함에만 있으므로 메일함 라벨을 붙이면 이동합니다. STARRED(중요 표시)와 UNREAD(안읽음)는 플래그입니다.has:attachment, filename:은 메일 구조를 직접 확인하며 메일함마다 최근 3,000통까지 봅니다. 더 오래된 메일은 after: 같은 기간 조건을 함께 쓰세요.category: 같은 Gmail 전용 조건은 무시하고 결과의 warnings에 알려 줍니다.2026년 10월, Meta Muse로 연결해 확인했습니다.
결제), 제목(subject:), 기간(newer_than:30d), 첨부(has:attachment, filename:pdf), 보낸메일함(in:sent)get_thread), 첨부 이름 읽기답장·전달·임시보관함·라벨 이동·휴지통은 가짜 메일 서버 통합 테스트로 확인했고, 실제 계정 확인은 진행 중입니다. 문제를 발견하면 이슈로 알려 주세요.
접속 정보: IMAP imap.naver.com:993(SSL), SMTP smtp.naver.com:465(SSL). 바뀐 내용은 CHANGELOG에 있습니다.
MIT
Source: README.md at commit 2f20f52
Returns the connected Naver Mail address, total messages and unread count in the inbox. Use it to confirm which account is connected.
Takes no parameters.
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.
viewquerypageSizepageTokenincludeTrashRetrieves 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.
threadIdrequiredmessageFormatRetrieves a single email message by id, including body and attachment metadata. For whole conversations use get_thread. Use PLAIN_TEXT to prevent context exhaustion.
messageIdrequiredmessageFormatDownloads one attachment of a message. Returns text for text-like files (txt, csv, html, json, ics) and base64 data (up to 8MB).
messageIdrequiredattachmentIdrequiredLists 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.
Takes no parameters.
Creates a new user label (a Naver Mail folder). Nested labels use '/', e.g. 'Projects/Alpha'; missing parents are created.
displayNamerequiredRenames a user label (folder).
labelIdrequireddisplayNamerequiredDeletes 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.
labelIdrequiredAdds 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.
labelIdsrequiredmessageIdrequiredRemoves 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.
labelIdsrequiredmessageIdrequiredAdds and/or removes labels on a message in one call. Moving changes the message id; the new id is returned.
messageIdrequiredaddLabelIdsremoveLabelIdsAdds labels to every message in a thread (e.g. STARRED, or a folder label to move the conversation).
labelIdsrequiredthreadIdrequiredRemoves labels from every message in a thread, e.g. remove UNREAD to mark the whole conversation as read.
labelIdsrequiredthreadIdrequiredMoves a message to Trash (soft delete). Default tool when the user asks to delete a message without asking for permanent deletion.
messageIdrequiredMoves every message of a thread to Trash (soft delete).
threadIdrequiredMoves a message out of Trash (to Sent if you sent it, otherwise Inbox).
messageIdrequiredMoves the messages of a thread out of Trash.
threadIdrequiredMoves a message to the Spam folder.
messageIdrequiredMoves every message of a thread to the Spam folder.
threadIdrequiredMoves a message out of Spam back to the Inbox.
messageIdrequiredMoves the messages of a thread out of Spam.
threadIdrequiredSends 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.
cctobccbodydraftIdsubjecthtmlBodyattachmentsreplyThreadIdreplyToMessageIdReplies 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.
cctobccbodyhtmlBodyreplyAllmessageIdrequiredattachmentsForwards a message with its original attachments. Optional comments go above the forwarded message via forwardText (plain) or htmlBody. Confirm with the user before sending.
cctobcchtmlBodymessageIdrequiredattachmentsforwardTextCreates 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.
cctobccbodysubjecthtmlBodyattachmentsreplyToMessageIdUpdates 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).
cctobccbodydraftIdrequiredsubjecthtmlBodyattachmentsDeletes a draft.
draftIdrequiredLists drafts, optionally filtered by a query (same syntax as search_threads).
viewquerypageSizepageTokenRetrieves a draft by id.
draftIdrequiredmessageFormat100% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
{ "mcpServers": { "naver-mail": { "command": "npx", "args": ["-y", "naver-mail-mcp"], "env": { "NAVER_ID": "내아이디", "NAVER_APP_PASSWORD": "애플리케이션비밀번호" } } }}npx wrangler secret put MCP_BEARER_TOKEN # 긴 무작위 문자열npx wrangler secret put NAVER_IDnpx wrangler secret put NAVER_APP_PASSWORDnpm installnpm test # 가짜 IMAP/SMTP 서버 통합 테스트 + 단위 테스트npm run typechecknpm run dev # 로컬 Worker: http://localhost:8787/mcpnpm run stdio # 로컬 stdio (NAVER_ID, NAVER_APP_PASSWORD 환경 변수)npm run build:stdio # npm 배포용 dist/stdio.js