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 分