프로토타입 · 미리 보기: 공식 레지스트리의 모든 서버를 담고 있으며 30분마다 동기화해요. 리뷰와 계정 기능은 다음 단계에서 열려요.
PopNx MCPAI를 쓰는 사람을 위한 MCP 서버 · 쉬운 말로 설명해요

Mailbox MCP

제작자: jgalea버전 0.13.1i★ –i내 컴퓨터에서 실행
레지스트리 이름io.github.jgalea/mailbox-mcp

설치

개요

제작자가 쓴 설명(영어 원문)

Multi-account email MCP server for Gmail, IMAP, and JMAP: search, send, drafts, labels.

PopNx MCP의 세 기둥

이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.

할 수 있는 일

이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.

  • 연결 방식: 내 컴퓨터에서 실행
  • 전송 방식: stdio
  • 카테고리: 채팅 및 이메일
  • 입력해야 할 값: MAILBOX_MCP_PASSPHRASE

설치

쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.

설치하기 전에

  • 기본 점검: 1개 중 1개 통과
  • 내 컴퓨터에서 내 사용자 계정의 권한(파일, 네트워크, 앱)으로 실행돼요.
  • 직접 입력할 값: MAILBOX_MCP_PASSPHRASE

비밀로 표시된 값은 내 계정의 열쇠예요. 절대 다른 사람과 공유하거나 채팅에 붙여 넣지 마세요.

필요한 것

  • npmNode.js 설치(npx 명령어용)

어떤 앱을 쓰세요?

위에서 앱을 고르세요. 기억해 두었다가 다음부터는 버튼에 “…에 설치”라고 표시해요.

Claude Desktop → Settings → Developer → Edit Config를 열고 claude_desktop_config.json에 이 내용을 붙여 넣으세요

{
  "mcpServers": {
    "mailbox": {
      "command": "npx",
      "args": [
        "-y",
        "mailbox-mcp"
      ],
      "env": {
        "MAILBOX_MCP_PASSPHRASE": "your-value"
      }
    }
  }
}

터미널에서 이 명령어를 실행하세요

claude mcp add mailbox --env MAILBOX_MCP_PASSPHRASE=your-value -- npx -y mailbox-mcp

실행하기 전에 빈 값을 채워 주세요.

Cursor에서 열기

또는 설정을 직접 복사하기

프로젝트의 .cursor/mcp.json 또는 ~/.cursor/mcp.json에 붙여 넣으세요

{
  "mcpServers": {
    "mailbox": {
      "command": "npx",
      "args": [
        "-y",
        "mailbox-mcp"
      ],
      "env": {
        "MAILBOX_MCP_PASSPHRASE": "your-value"
      }
    }
  }
}

브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.

VS Code에서 열기

또는 설정을 직접 복사하기

프로젝트의 .vscode/mcp.json에 붙여 넣으세요

{
  "servers": {
    "mailbox": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "mailbox-mcp"
      ],
      "env": {
        "MAILBOX_MCP_PASSPHRASE": "your-value"
      }
    }
  }
}

브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.

이 서버는 내 컴퓨터에서 실행되는데, ChatGPT는 인터넷에 있는 서버에만 연결할 수 있어요. 다른 앱을 고르세요.

선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.

직접 입력할 값

  • MAILBOX_MCP_PASSPHRASE 비밀 env
    Passphrase used to encrypt IMAP/JMAP credentials at rest. Required for IMAP and JMAP accounts.

이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.

할 수 있는 일

내 컴퓨터에서 실행돼요. 설치하면 AI 앱에 도구 목록이 나타나요.

기본 점검i

누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 7일 점검

  • ✓ 통과

    제작자와 저장소 일치

    레지스트리 이름이 GitHub 계정 jgalea 기준으로 확인되었고, 이 계정이 저장소를 소유하고 있어요

  • … 아직 점검 안 함

    계속 관리되고 있음

    아직 GitHub에서 이 저장소를 읽어 오지 않았어요

  • … 아직 점검 안 함

    라이선스 있음

    아직 GitHub에서 이 저장소를 읽어 오지 않았어요

  • – 해당 없음

    엔드포인트 응답

    내 컴퓨터에서 실행되는 서버라 인터넷 엔드포인트가 없어요

  • – 해당 없음

    OAuth로 로그인

    내 컴퓨터에서 실행되며, 대신 로컬 설정을 사용해요

  • … 아직 점검 안 함

    도구 설명에 숨겨진 지시 없음

    내 컴퓨터에서 실행돼요. 도구 목록은 인터넷 엔드포인트가 있는 서버에서만 읽을 수 있어요

채팅 및 이메일 카테고리의 다른 서버와 비교i

  • 이 카테고리의 다른 서버 1783개 중 0%보다 스타가 많아요
  • 이 카테고리의 다른 서버 1783개 중 49%보다 최근에 레지스트리에 공개됐어요
  • 기본 점검 결과가 이 카테고리의 다른 서버 1783개 중 100%와 같거나 더 좋아요

레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.

자주 묻는 질문

Mailbox MCP, 안전한가요?

해당하는 기본 점검 1개 중 1개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.

어떤 키나 코드가 필요한가요?

입력해야 할 값: MAILBOX_MCP_PASSPHRASE

내 컴퓨터에서 실행되나요, 클라우드에서 실행되나요?

내 컴퓨터에서 실행돼요. AI 앱이 필요할 때 실행하고, 데이터는 제작자의 서버를 거치지 않아요(서버 자체가 온라인 서비스를 호출하는 경우는 제외).

아직 관리되고 있나요?

GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(0.13.1)은 27일 전 레지스트리에 올라왔어요.

어떤 앱에서 쓸 수 있나요?

Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. 내 컴퓨터에 Node.js도 있어야 해요.

대신 쓸 수 있는 건 뭐가 있나요?

같은 카테고리에는: Vexa, emailmd, MCP WhatsApp Cloud

대안

같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.

카드 보는 법:★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i

Vexa

제작자: Vexa-ai

Meeting bot and transcripts for Google Meet, Teams and Zoom. Live or after, speakers labelled.

클라우드에서 실행★ 2,949Apache-2.02개월 전 업데이트
설치

emailmd

제작자: anypost

Render markdown into email-safe HTML, lint drafts for deliverability problems, and preview emails.

컴퓨터 또는 클라우드★ 1,385MIT31일 전 업데이트
설치

MCP WhatsApp Cloud

제작자: codespar

MCP server for WhatsApp Cloud API (Meta) — messages, media, and templates via Graph API

내 컴퓨터에서 실행★ 277MIT5개월 전 업데이트
설치

제작자의 README

README 열기

제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.

mailbox-mcp

Give your AI tools access to your email. Search, read, send, and manage messages across multiple accounts without leaving your terminal.

mailbox-mcp is an MCP server that connects your email to Claude Code, Cursor, Windsurf, or any AI tool that supports the Model Context Protocol. Instead of switching between your terminal and Gmail, you ask the AI to find that invoice, summarize a thread, or draft a reply — and it does.

What makes this different from the 60+ other email MCP servers:

  • Multiple accounts, one server. Work email, personal email, client accounts — all accessible through a single server. No need to run separate instances.
  • Not just Gmail. Supports Gmail (full API), any IMAP/SMTP provider (ProtonMail, corporate mail, self-hosted), and JMAP (Fastmail, Stalwart, Topicbox). Add providers without changing a line of tool code.
  • Built for untrusted input. Hidden-text stripping, random-nonce fences, confirmations before mail leaves the account, per-account read-only and drafts-only modes, encrypted credentials (AES-256-GCM), TLS enforcement, SSRF protection. Details in Security.
  • Tools for the workflows that matter. Search, read, send, reply, forward, drafts, labels, filters, templates, signatures, vacation replies, attachments, unsubscribe, and more.
  • Zero native dependencies. Pure Node.js. Install and run anywhere.

Security

Giving a model access to a mailbox means giving it access to text written by strangers. Any sender controls the subject, body, headers and attachment filenames of what the model reads, so the two risks are the model following instructions planted in an email, and the model sending mail somewhere it shouldn't (the usual goal of such instructions: forward the thread, reply with the contents of another message, mail a secret to an outside address). mailbox-mcp puts several layers between those two things.

Fenced untrusted content. Everything that came from an email is wrapped in [UNTRUSTED_ _ ] ... [/UNTRUSTED_ _ ] markers, and the server's MCP instructions tell the client that text inside them is data to report, never instructions to follow. The nonce is a random hex string chosen fresh for every tool response, so an email cannot close a fence early or open a fake one; anything in the content that even looks like a marker, in any case or with Unicode lookalike characters, has its bracket replaced before it reaches the model.

Hidden text is removed, and you're told. HTML-only messages are reduced to what a mail client would actually show. Elements hidden with display:none, visibility:hidden, opacity:0, zero or near-zero font sizes, text the same colour as its background (white on white), the hidden attribute, aria-hidden, off-screen positioning and the preheader max-height:0; overflow:hidden trick are dropped, along with comments, scripts, styles and templates. Zero-width and bidirectional control characters are stripped from every body, subject, header and filename. When anything was removed, the response ends with a visible warning saying how many characters went, so a message that says one thing to you and another to the model is flagged rather than silently cleaned.

Confirmations before mail leaves. Sending to an address the account has never sent to or received from needs confirm_new_recipient: true; the error lists the new addresses. Forwarding to a domain other than the account's own needs confirm_external_forward: true. The client is told to pass those flags only when you asked for that recipient yourself, never because an email did. Both checks are on by default.

Per-account modes. An account can carry a recipient allowlist (exact addresses and @domain patterns; everyone else is refused), a draftsOnly flag (send tools create a draft for you to review instead), and a readOnly flag (every write tool refuses; search and read keep working). These are set in accounts.json or when the account is created, and no tool can loosen them, so a hijacked session cannot switch them off. See Account safety settings.

Tool annotations. All 49 tools carry MCP readOnlyHint, destructiveHint, idempotentHint and openWorldHint annotations, so a client can auto-approve reads and always ask before anything that sends, deletes or changes settings.

Caps and a log. At most 10 sends per minute and, by default, 100 per rolling 24 hours per account; the daily count is kept on disk and survives restarts. Every send through the server is recorded in ~/.mailbox-mcp/sends.jsonl with its recipients, and every bulk label or trash operation in transactions.jsonl with an undo id.

The three options below enforce limits outside the model instead of asking it to behave. All are off by default.

Out-of-band approval ("approval": "external" per account). Every send path still runs the guards above, then writes the fully resolved message to ~/.mailbox-mcp/pending/ .json instead of sending it, and tells the model the id. No tool can list, edit or approve that queue. You do it in a terminal: mailbox-mcp pending, mailbox-mcp show , mailbox-mcp approve , mailbox-mcp reject . approve prints the whole message, reads the confirmation from /dev/tty (not stdin, so it cannot be piped), re-runs the allowlist and daily cap, reloads attachments and refuses if one changed, then sends exactly what it printed. A shell without a controlling terminal, which is what an agent's shell is, cannot open /dev/tty, so it cannot approve its own sends. Entries expire after 7 days. See Approving queued sends.

Tool profiles (MAILBOX_MCP_PROFILE). read exposes only read-only tools; draft exposes everything except the tools that can make mail leave the account or add, re-authenticate or remove accounts. Hidden tools are absent from the tool list and refuse if called anyway. See Choosing which tools load.

Lock after untrusted reads ("untrustedReadLock": "approval" | "refuse" per account). As soon as a tool shows the model a message it cannot vouch for, or exports or downloads message content to disk, the account is marked for the rest of the server process. approval then routes every send from it through the pending queue even if approval isn't set; refuse refuses sends until the server restarts. No argument the model can pass lifts it. The lock is strict by design: a message is vouched for only when its sender is on the account's trustedSenders list in accounts.json AND the receiving server's DMARC check passed for the From domain. Nothing a sender or the model can influence counts: not the From header, not the Sent folder, not the send log, not a mailbox search. With no trustedSenders configured, reading any third-party mail taints, which is the intended default; most people will want approval: "external" rather than a long trusted list. See How the lock decides.

None of this makes prompt injection impossible. A model can still be talked into a reply you didn't want, and a text/plain part can say something different from the HTML part a human sees. Keep a human approving sends. A reasonable setup: readOnly: true or MAILBOX_MCP_PROFILE=read on accounts you only need to search, approval: "external" or an allowlist on any account an agent sends from unattended, untrustedReadLock on anything that triages an inbox, and the default confirmations everywhere else.

Quick Start

Install

Add to your Claude Code MCP config (~/.claude.json). The package runs straight from npm via npx:

{

"mcpServers": { "mailbox": { "command": "npx", "args": ["-y", "mailbox-mcp"], "env": { "MAILBOX_MCP_PASSPHRASE": "a-long-random-passphrase" } } } }

MAILBOX_MCP_PASSPHRASE is the passphrase used to encrypt IMAP/JMAP credentials at rest; it's required before adding an IMAP or JMAP account, and unused for Gmail-only setups. MAILBOX_MCP_CONFIG_DIR moves the config directory somewhere other than ~/.mailbox-mcp.

From source instead

git clone https://github.com/jgalea/mailbox-mcp.git

cd mailbox-mcp npm install && npm run build

Then point the config at the build with "command": "node", "args": ["/path/to/mailbox-mcp/dist/server.js"].

Add a Gmail Account
1. Create a Google Cloud project
  1. Go to Google Cloud Console and create a new project
  2. Enable the Gmail API: APIs & Services > Library > Gmail API > Enable
2. Set up OAuth consent screen
  1. Go to Google Auth Platform > Branding
  2. Set App name and User support email
  3. Go to Audience, select External
  4. Add the Google account you'll sign in with as a test user (this must be the exact @gmail.com address you use to authenticate, not a workspace alias)
3. Create OAuth credentials
  1. Go to Google Auth Platform > Clients > Create Client
  2. Application type: Desktop app
  3. Click Create
  4. Go to APIs & Services > Credentials, find your client, and click the download icon to get the JSON
  5. Save the file as ~/.mailbox-mcp/oauth-keys.json
4. Authenticate

In Claude Code, run: authenticate alias="personal" provider="gmail" email="you@gmail.com"

This opens a browser window to complete the OAuth flow. Your tokens are stored locally in ~/.mailbox-mcp/accounts/.

Add an IMAP Account

In Claude Code, run:

authenticate alias="work" provider="imap" email="you@company.com" host="imap.company.com" smtpHost="smtp.company.com" username="you@company.com" password="<app-password>"

Credentials are encrypted at rest using AES-256-GCM.

Add a JMAP Account

In Claude Code, run:

authenticate alias="fastmail" provider="jmap" email="you@fastmail.com" host="fastmail.com" username="you@fastmail.com" password="<app-password>"

JMAP auto-discovers the API endpoint via .well-known/jmap. Credentials are encrypted at rest using AES-256-GCM.

Supported JMAP servers: Fastmail, Stalwart, Topicbox, Cyrus IMAP, and any RFC 8620-compliant server.

JMAP advantages over IMAP:

  • Native thread support (real conversations, not synthetic)
  • Server-side search (faster, more accurate)
  • Batch operations in a single HTTP request
  • No persistent connection required

Tools

Universal (Gmail + IMAP + JMAP)
ToolDescription
list_accountsList configured accounts
authenticateAdd a new account
reauthRe-run OAuth for an existing Gmail account (use when refresh token expires with invalid_grant)
remove_accountRemove an account
search_emailsSearch messages (optional folder to scope the search)
multi_account_searchRun the same query across every configured account in parallel
read_emailRead a message
read_threadRead a conversation thread (Gmail + JMAP)
send_emailSend a new email (supports from, attachments; new recipients need confirm_new_recipient)

| reply_email | Reply to a message (supports from, attachments; extra cc/bcc to new ad

앞부분만 보여 드려요. 나머지는 저장소에서 읽어 보세요

PopNx에게 묻기