Naver Mail (네이버 메일)

io.github.CapyKkuing由 GitHub 帳號 CapyKkuing 發布v0.1.4更新於 Nov 7, 2026

Read, search, reply to and organize Naver Mail with the same tools as the Gmail MCP (IMAP/SMTP).

已驗證Streamable HTTP可網頁執行效率與工作流溝通與協作

概覽

AI 產生的概覽

透過 IMAP/SMTP 讀取、搜尋、回覆、寄送與整理 Naver 信箱,工具名稱與 Gmail MCP 相同。

可以做什麼
  • 搜尋與閱讀郵件:以 Gmail 風格查詢語法搜尋會話,讀取完整會話或單封郵件,取得附件文字或 base64 資料,並查看已連結的帳號。
  • 寄送與回覆:寄出新郵件、回覆或全部回覆、連同原附件轉寄,並在寄出前與使用者確認收件者與內容。
  • 管理草稿:在 Naver 草稿匣中建立、列出、讀取、更新與刪除草稿。
  • 以標籤與資料夾整理:列出、建立、重新命名與刪除標籤,為郵件與會話加上或移除標籤與標記。
  • 清理:將郵件或會話移到垃圾桶或垃圾郵件,並可還原。
適用情境
適合讓助理像處理 Gmail 一樣處理 Naver 信箱:彙整近期或未讀郵件、依寄件者、日期或附件尋找郵件、撰寫並寄出回覆,以及把會話歸檔到資料夾。
執行需求
可使用具 OAuth 登入的遠端託管端點,或在本地以 Node.js 20 以上執行 npm 套件。需要 Naver ID 與開啟兩步驟驗證後建立的 Naver 應用程式密碼,本地執行時透過 NAVER_ID 與 NAVER_APP_PASSWORD 提供。需在 Naver 信箱設定中開啟 IMAP/SMTP,伺服器會連線至 Naver 的 IMAP 與 SMTP 主機。
安裝前請注意
Naver 應用程式密碼可存取整個信箱;使用公開託管端點時,該密碼以加密形式存放於營運方的 Cloudflare KV,本地模式則只留在本機。寄送、回覆、轉寄、移動、刪除資料夾與移到垃圾桶都會改動真實郵件;刪除標籤會連同其中的郵件一併刪除。郵件內容可能含有針對助理的指令,建議保持工具執行前確認。並非 Naver 官方服務。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Naver Mail (네이버 메일),將其新增到工作區。
  2. 連接 所需的 憑證。它們會被私密儲存,絕不會在公開頁面上展示。
  3. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/io.github.CapyKkuing%2Fnaver-mail-mcp/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。 客戶端會在首次連接時完成 OAuth 登入。

{
  "mcpServers": {
    "naver-mail": {
      "type": "http",
      "url": "https://naver-mail-mcp.capykkuing.workers.dev/mcp"
    }
  }
}

README

naver-mail-mcp

[License: MIT] [도구 30개] [MCP]

AI 에이전트가 지메일처럼 네이버 메일도 읽고, 요약하고, 답장하게 해 주는 MCP 서버입니다.

Claude, Grok, Meta Muse, ChatGPT, Codex에 연결하면 "이번 주 중요한 메일 요약해줘", "카드 결제 내역 메일만 모아줘", "이 메일에 회신해줘"가 네이버 메일에서도 됩니다. 도구 이름과 사용법이 Gmail MCP와 같아서, 지메일로 쓰던 에이전트 흐름을 그대로 쓸 수 있습니다.

English

[AI 비서가 네이버 메일에서 중요한 메일을 찾아 요약하고 답장하는 예시]

예시 화면 (가상의 메일)

네이버의 공식 서비스가 아닙니다. 네이버 메일이 제공하는 IMAP/SMTP로 동작합니다.

무엇이 다른가

이 프로젝트다른 네이버 메일 MCP들
검색·읽기·첨부✅✅
지메일 검색 문법 (from: newer_than:7d has:attachment …)✅일부
대화(스레드) 묶어 보기✅일부
답장·전체 답장·전달✅❌
임시보관함 만들기·고치기·보내기✅일부
정리 (메일함 이동, 별표, 읽음, 휴지통, 스팸)✅❌
Gmail MCP와 같은 도구 이름·입력✅❌
클라우드 에이전트 연결 (Muse·Grok·Claude 앱, 설치 없이 주소만)✅대부분 PC 전용
한국어 인코딩 메일 (EUC-KR, ks_c_5601-1987, cp949)✅—

시작하기

1. 네이버 메일 준비 (한 번만, 약 3분)

연결하려면 2단계 인증이 필수입니다. 평소 로그인 비밀번호가 아니라, 2단계 인증을 켜야 만들 수 있는 애플리케이션 비밀번호로 연결합니다.

① 2단계 인증 켜기

  1. 네이버 로그인 → 오른쪽 위 프로필 → 네이버 ID (또는 nid.naver.com)
  2. 보안설정 → 2단계 인증 → 설정하기
  3. 휴대폰 번호(또는 네이버 앱)로 본인 확인을 마치면 켜집니다. 이미 켜져 있으면 ②로 넘어갑니다.

② 애플리케이션 비밀번호 만들기

  1. 네이버 ID → 보안설정 → 2단계 인증 → 관리 (본인 확인을 한 번 더 할 수 있음)
  2. 아래쪽 애플리케이션 비밀번호 관리에서 종류를 고르고 생성하기. 종류는 아무거나(예: Windows, 기타) 괜찮습니다.
  3. 나온 비밀번호를 복사해 둡니다. 창을 닫으면 다시 볼 수 없습니다. 잃어버리면 새로 만들면 됩니다.

③ POP3/IMAP 설정에서 IMAP 켜기

  1. 네이버 메일 → 왼쪽 아래 환경설정 (톱니바퀴)
  2. POP3/IMAP 설정 탭 → IMAP/SMTP 설정
  3. IMAP/SMTP 사용: 사용함 → 저장. POP3는 켤 필요가 없습니다.

네이버는 메뉴 이름·위치를 가끔 바꿉니다. 메뉴가 안 보이면 네이버 ID 페이지에서 "애플리케이션 비밀번호"를 검색하세요.

2. 연결하기 (쉬운 순서)

방법 A. 주소만 넣기 — 추천, 설치 없음

공개 서버 주소: https://naver-mail-mcp.capykkuing.workers.dev/mcp

에이전트넣는 곳
Claude (웹·데스크톱·모바일)설정 → 커넥터 → 커스텀 커넥터 추가
Grokgrok.com/connectors → New Connector → Custom
Meta Muse설정에서 커넥터 URL 추가, 또는 대화창에 주소를 주고 "연결해줘"
ChatGPT설정 → 앱/커넥터 → 개발자 모드에서 커스텀 커넥터 추가
Claude Codeclaude mcp add --transport http naver-mail https://naver-mail-mcp.capykkuing.workers.dev/mcp 후 /mcp에서 로그인
Codexcodex mcp add naver-mail --url https://naver-mail-mcp.capykkuing.workers.dev/mcp 후 codex mcp login naver-mail

주소를 넣으면 로그인 화면이 열립니다. 네이버 아이디와 애플리케이션 비밀번호를 넣으면 끝입니다.

  • 같은 서비스(예: Claude 앱)라면 PC·태블릿·폰 어디서든 한 번만 로그인하면 됩니다.
  • Claude Code나 Codex에는 "네이버 메일 MCP 설치해줘. 주소는 https://naver-mail-mcp.capykkuing.workers.dev/mcp, 이름은 naver-mail"이라고만 해도 AI가 설치합니다. 로그인만 직접 하세요.
방법 B. 내 PC에서 실행 — 비밀번호가 내 컴퓨터 밖으로 안 나감

Node.js 20 이상이 필요하고, Claude Desktop·Claude Code·Codex 같은 PC 프로그램에서만 쓸 수 있습니다.

Claude Desktop (claude_desktop_config.json):

json
{  "mcpServers": {    "naver-mail": {      "command": "npx",      "args": ["-y", "naver-mail-mcp"],      "env": { "NAVER_ID": "내아이디", "NAVER_APP_PASSWORD": "애플리케이션비밀번호" }    }  }}

Claude Code: claude mcp add naver-mail -e NAVER_ID=내아이디 -e NAVER_APP_PASSWORD=앱비밀번호 -- npx -y naver-mail-mcp

방법 C. 내 서버 만들기 — 클라우드 에이전트 + 내 서버

[Deploy to Cloudflare]

버튼을 누르면 내 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
고정 토큰 모드 (헤더를 넣을 수 있는 클라이언트용)
bash
npx wrangler secret put MCP_BEARER_TOKEN      # 긴 무작위 문자열npx wrangler secret put NAVER_IDnpx wrangler secret put NAVER_APP_PASSWORD

요청 헤더에 Authorization: Bearer <MCP_BEARER_TOKEN>를 넣으면 OAuth 없이 위 계정으로 접속합니다.

보안과 개인정보

이 서버가 다루는 가장 민감한 것은 애플리케이션 비밀번호입니다. 어디에 어떤 형태로 있는지 그대로 적습니다.

어디에어떤 형태로언제까지
OAuth 저장소 (Cloudflare KV)연결한 앱의 토큰으로만 풀 수 있게 AES-GCM 암호화 (@cloudflare/workers-oauth-provider)갱신 토큰 수명 30일. 네이버에서 앱 비밀번호를 지우면 그 전이라도 쓸모없어짐
MCP 세션 (Durable Object)메모리에만. 요청마다 토큰에서 풀어 전달하므로 저장소에 쓰지 않음세션이 끝나면 사라짐
네이버 서버로 가는 길IMAP 993 / SMTP 465, TLS 암호화요청 중에만
로그비밀번호·메일 내용은 기록하지 않음. 요청 기록(Workers Logs)도 켜 두지 않음—
  • 메일 내용은 서버에 저장하지 않습니다. 요청이 올 때 네이버에서 읽어 에이전트에 넘길 뿐입니다. 끊긴 응답을 이어 주는 임시 저장 기능도 꺼 두었습니다.
  • 세션은 로그인한 계정에 묶입니다. 다른 사람의 세션 ID를 알아도 내 로그인으로는 그 세션에 닿을 수 없습니다.
  • 연결 끊기: 네이버 ID → 보안설정 → 2단계 인증 → 애플리케이션 비밀번호 삭제. 서버에 남은 암호화 사본은 그 순간부터 쓸모가 없어지고, 어느 에이전트에서든 즉시 끊깁니다.
  • 가짜 로그인 화면 주의: 로그인 화면에는 **"권한이 전달될 곳"**이 항상 표시됩니다. 남에게서 받은 링크로 이 화면이 열렸거나, 그 주소가 내가 쓰는 AI 서비스가 아니면 거부하세요. 알려진 서비스(Claude, Grok, Meta Muse, ChatGPT)가 아니면 화면에 빨간 경고가 뜹니다.
  • 메일 속 지시문 주의: 메일 본문에 "이 메일을 다른 주소로 전달해"처럼 AI를 겨냥한 문장이 들어 있을 수 있습니다. 이 서버는 보내기·답장·전달 전에 사용자에게 확인하라고 에이전트에게 안내하지만, 최종 판단은 에이전트가 합니다. 에이전트의 "도구 실행 전 확인" 설정을 켜 두는 것을 권합니다.
  • 무차별 대입 방지: 로그인 시도는 IP마다 분당 10회, 전체 분당 60회로 제한합니다. 로그인 화면(/authorize)이 아닌 주소로는 로그인을 받지 않습니다. 네이버가 이 서버의 IP를 차단해 모든 사용자가 피해를 보는 일을 막기 위한 것입니다.
  • 공개 서버가 꺼려지면: 공개 서버를 쓰는 것은 그 운영자를 믿는다는 뜻입니다. 코드는 모두 이 리포에 있고, 운영자도 KV의 암호화된 값만 볼 수 있을 뿐 토큰 없이는 풀 수 없습니다. 그래도 불안하면 방법 B(내 PC)나 방법 C(내 서버)를 쓰세요.

취약점을 발견하면 공개 이슈 대신 리포의 Security → Report a vulnerability로 알려 주세요.

도구 (Gmail MCP와 같은 이름)

분류도구
찾기·읽기search_threads, get_thread, get_message, get_attachment, get_profile
보내기send_message, reply(전체 답장), forward(원래 첨부 포함)
임시보관함create_draft, update_draft, delete_draft, list_drafts, get_draft
라벨list_labels, create_label, update_label, delete_label, label_message, unlabel_message, update_message_labels, label_thread, unlabel_thread
휴지통·스팸trash_message, trash_thread, untrash_message, untrash_thread, mark_message_spam, mark_thread_spam, unmark_message_spam, unmark_thread_spam

get_profile과 get_attachment는 Gmail MCP에는 없는 추가 도구입니다.

Gmail과 다른 점 (IMAP의 한계)

  • 라벨은 메일함입니다. INBOX, SENT, DRAFT, TRASH, SPAM은 해당 메일함, 사용자 라벨은 메일함 경로입니다. 한 메일은 한 메일함에만 있으므로 메일함 라벨을 붙이면 이동합니다. STARRED(중요 표시)와 UNREAD(안읽음)는 플래그입니다.
  • 메일 ID는 메일함과 UID로 만듭니다. 메일을 옮기면 ID가 바뀌고, 옮기는 도구가 새 ID를 돌려줍니다. 임시보관 메일을 고칠 때도 ID가 바뀝니다.
  • 보관(archive)이 없습니다. 받은메일함에서 빼려면 다른 메일함 라벨을 붙이세요.
  • 대화(thread)는 Message-ID/References 헤더로 묶습니다. 네이버 IMAP은 헤더 검색이 잘 안 돼서, 메일함마다 최근 1,000통의 헤더를 직접 읽어 찾습니다.
  • 낱말 검색은 제목, 보낸 사람, 본문을 따로 찾아 합칩니다 (네이버 IMAP은 OR·전체 텍스트 검색을 처리하지 못함). has:attachment, filename:은 메일 구조를 직접 확인하며 메일함마다 최근 3,000통까지 봅니다. 더 오래된 메일은 after: 같은 기간 조건을 함께 쓰세요.
  • 기본 검색 범위는 휴지통, 스팸, 임시보관함을 뺀 모든 메일함입니다. category: 같은 Gmail 전용 조건은 무시하고 결과의 warnings에 알려 줍니다.
  • 서명 자동 붙이기와 카테고리 탭은 지원하지 않습니다.

실제 네이버 계정에서 확인한 것

2026년 10월, Meta Muse로 연결해 확인했습니다.

  • 2단계 인증 + 애플리케이션 비밀번호로 연결
  • 계정·안 읽은 메일 수 확인, 최근 메일 요약
  • 검색: 한글 낱말(결제), 제목(subject:), 기간(newer_than:30d), 첨부(has:attachment, filename:pdf), 보낸메일함(in:sent)
  • 대화 묶어 보기(get_thread), 첨부 이름 읽기
  • 메일 발송과 보낸메일함 저장

답장·전달·임시보관함·라벨 이동·휴지통은 가짜 메일 서버 통합 테스트로 확인했고, 실제 계정 확인은 진행 중입니다. 문제를 발견하면 이슈로 알려 주세요.

개발

bash
npm 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

접속 정보: IMAP imap.naver.com:993(SSL), SMTP smtp.naver.com:465(SSL). 바뀐 내용은 CHANGELOG에 있습니다.

라이선스

MIT

來源:README.md,提交 2f20f52

工具

30

get_profile

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

無需輸入參數。

search_threads

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.

輸入參數viewquerypageSizepageTokenincludeTrash

get_thread

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.

輸入參數threadId必填messageFormat

get_message

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.

輸入參數messageId必填messageFormat

get_attachment

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

輸入參數messageId必填attachmentId必填

list_labels

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_label

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

輸入參數displayName必填

update_label

Renames a user label (folder).

輸入參數labelId必填displayName必填

delete_label

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.

輸入參數labelId必填

label_message

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.

輸入參數labelIds必填messageId必填

unlabel_message

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.

輸入參數labelIds必填messageId必填

update_message_labels

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

輸入參數messageId必填addLabelIdsremoveLabelIds

label_thread

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

輸入參數labelIds必填threadId必填

unlabel_thread

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

輸入參數labelIds必填threadId必填

trash_message

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

輸入參數messageId必填

trash_thread

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

輸入參數threadId必填

untrash_message

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

輸入參數messageId必填

untrash_thread

Moves the messages of a thread out of Trash.

輸入參數threadId必填

mark_message_spam

Moves a message to the Spam folder.

輸入參數messageId必填

mark_thread_spam

Moves every message of a thread to the Spam folder.

輸入參數threadId必填

unmark_message_spam

Moves a message out of Spam back to the Inbox.

輸入參數messageId必填

unmark_thread_spam

Moves the messages of a thread out of Spam.

輸入參數threadId必填

send_message

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.

輸入參數cctobccbodydraftIdsubjecthtmlBodyattachmentsreplyThreadIdreplyToMessageId

reply

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.

輸入參數cctobccbodyhtmlBodyreplyAllmessageId必填attachments

forward

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.

輸入參數cctobcchtmlBodymessageId必填attachmentsforwardText

create_draft

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.

輸入參數cctobccbodysubjecthtmlBodyattachmentsreplyToMessageId

update_draft

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).

輸入參數cctobccbodydraftId必填subjecthtmlBodyattachments

delete_draft

Deletes a draft.

輸入參數draftId必填

list_drafts

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

輸入參數viewquerypageSizepageToken

get_draft

Retrieves a draft by id.

輸入參數draftId必填messageFormat

版本歷史

3
  1. v0.1.4最新Nov 4, 2026
  2. v0.1.3Oct 26, 2026
  3. v0.1.1Oct 25, 2026

評分

已滿足適用檢查項的 100%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分