原型 · 预览版:收录官方注册中心里的全部服务器,每 30 分钟同步一次。评价和账户功能将在后续阶段推出。
PopNx MCP为使用 AI 的人准备的 MCP 服务器 · 用大白话讲清楚

Gmail Attachments MCP

作者:zayansalman版本 0.1.0i★ –i在你的电脑上运行
注册名称io.github.zayansalman/gmail-attachments-mcp

安装

概览

作者提供的说明(英文原文)

Minimal MCP server for downloading Gmail attachments to disk. Read-only OAuth by default.

PopNx MCP 的三大支柱

这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。

它能帮你做什么

我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。

  • 连接方式: 在你的电脑上运行
  • 传输方式: stdio
  • 分类: 聊天与邮件
  • 你需要填写:GMAIL_MCP_TOKEN

安装

选择你使用的 AI 应用,然后复制设置。

安装之前

  • 基础检查:1 项中通过 1 项
  • 在你的电脑上运行,拥有你的用户账户的权限(文件、网络、应用)。
  • 需要你自己填写: GMAIL_MCP_CREDENTIALS, GMAIL_MCP_TOKEN, GMAIL_MCP_DEFAULT_DEST_DIR, GMAIL_MCP_SCOPES

标为机密的值是你账户的钥匙。千万不要分享给别人,也不要粘贴到聊天里。

你需要

  • PyPI已安装 Python 的 uv(用于 uvx 命令)

你用的是哪个应用?

在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。

打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json

{
  "mcpServers": {
    "gmail-attachments": {
      "command": "uvx",
      "args": [
        "gmail-attachments-mcp",
        "serve"
      ],
      "env": {
        "GMAIL_MCP_CREDENTIALS": "your-value",
        "GMAIL_MCP_TOKEN": "your-value",
        "GMAIL_MCP_DEFAULT_DEST_DIR": "your-value",
        "GMAIL_MCP_SCOPES": "your-value"
      }
    }
  }
}

在终端中运行这条命令

claude mcp add gmail-attachments --env GMAIL_MCP_CREDENTIALS=your-value --env GMAIL_MCP_TOKEN=your-value --env GMAIL_MCP_DEFAULT_DEST_DIR=your-value --env GMAIL_MCP_SCOPES=your-value -- uvx gmail-attachments-mcp serve

运行前请先填写空着的值。

在 Cursor 中打开

或者自己复制设置

粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json

{
  "mcpServers": {
    "gmail-attachments": {
      "command": "uvx",
      "args": [
        "gmail-attachments-mcp",
        "serve"
      ],
      "env": {
        "GMAIL_MCP_CREDENTIALS": "your-value",
        "GMAIL_MCP_TOKEN": "your-value",
        "GMAIL_MCP_DEFAULT_DEST_DIR": "your-value",
        "GMAIL_MCP_SCOPES": "your-value"
      }
    }
  }
}

浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。

在 VS Code 中打开

或者自己复制设置

粘贴到项目中的 .vscode/mcp.json

{
  "servers": {
    "gmail-attachments": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "gmail-attachments-mcp",
        "serve"
      ],
      "env": {
        "GMAIL_MCP_CREDENTIALS": "your-value",
        "GMAIL_MCP_TOKEN": "your-value",
        "GMAIL_MCP_DEFAULT_DEST_DIR": "your-value",
        "GMAIL_MCP_SCOPES": "your-value"
      }
    }
  }
}

浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。

这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。

你的选择通过 Cookie 保存在这台设备上,无需账户。

需要你填写的值

  • GMAIL_MCP_CREDENTIALS env
    Path to the Google OAuth client secret JSON. Default: $XDG_CONFIG_HOME/gmail-attachments-mcp/credentials.json.
  • GMAIL_MCP_TOKEN 机密 env
    Path to the cached Gmail OAuth refresh token. Default: $XDG_CONFIG_HOME/gmail-attachments-mcp/token.json.
  • GMAIL_MCP_DEFAULT_DEST_DIR env
    Default directory where downloaded attachments are saved when the tool call does not specify dest_dir. Default: ~/Downloads.
  • GMAIL_MCP_SCOPES env
    Comma-separated Google OAuth scopes. Default: https://www.googleapis.com/auth/gmail.readonly.

这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。

它能做什么

它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。

基础检查i

我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月8日

  • ✓ 通过

    作者与仓库一致

    注册名称已通过 GitHub 账户 zayansalman 验证,该账户拥有此仓库

  • … 尚未检查

    仍在维护

    我们还没有从 GitHub 读取这个仓库

  • … 尚未检查

    有许可证

    我们还没有从 GitHub 读取这个仓库

  • – 不适用

    端点有响应

    它在你的电脑上运行,没有互联网端点

  • – 不适用

    使用 OAuth 登录

    在你的电脑上运行,改用本地设置

  • … 尚未检查

    工具描述中没有隐藏指令

    它在你的电脑上运行;我们只能读取互联网端点的工具列表

与“聊天与邮件”中的其他服务器比较i

  • 星标数多于此分类中其他 1860 个服务器的 0%
  • 发布到注册中心的时间比此分类中其他 1860 个服务器的 13% 更新
  • 基础检查结果等于或优于此分类中其他 1860 个服务器的 100%

与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。

常见问题

Gmail Attachments MCP 安全吗?

它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。

它需要哪些密钥或代码?

你需要填写:GMAIL_MCP_TOKEN

它在我的电脑上运行还是在云端?

它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。

它还在维护吗?

GitHub 仓库最后更新于–,最新版本(0.1.0)于5个月前进入注册中心。

哪些应用可以使用它?

支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Python (uv)。

有什么可以替代它?

同一分类中有:Vexa, emailmd, MCP WhatsApp Cloud

替代选择

同一分类中其他作者的服务器,按星标数排序。

如何看卡片:↓ 每周下载量i★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i

Vexa

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

作者:Vexa-ai广泛使用★ 29492个月前更新

在云端运行✓ vexa.ai

emailmd

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

作者:anypost广泛使用↓ 5342/周★ 138533天前更新

电脑或云端✓ emailmd.dev

MCP WhatsApp Cloud

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

作者:codespar起步阶段↓ 63/周★ 2775个月前更新

在你的电脑上运行

作者的 README

打开 README

按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。

gmail-attachments-mcp

A focused Model Context Protocol server (and standalone CLI) for downloading Gmail attachments to disk. Three tools, read-only OAuth scope, no extra surface area.

Built because the hosted claude.ai Gmail connector in Claude Desktop returns attachment IDs and metadata only — not the actual bytes. This server fills that gap for any MCP client (Claude Code, Claude Desktop, Cursor, Cline, etc.), and also works as a plain CLI for cron jobs and shell scripts.

If you used @GongRzhe/Gmail-MCP-Server (1.1k★, archived 2026-03-03) for its attachment-download workflow, this is a minimal successor focused on that single capability.

Features

  • 3 MCP tools — gmail_search, gmail_download_thread_attachments, gmail_download_latest_matching. That's the whole API.
  • Read-only OAuth scope (gmail.readonly) — can't send, delete, or modify mail.
  • Works as both an MCP server and a standalone CLI — same code, same auth token, both surfaces.
  • Env-var-driven config — GMAIL_MCP_CREDENTIALS, GMAIL_MCP_TOKEN, GMAIL_MCP_DEFAULT_DEST_DIR.
  • Cron-friendly — once authorized, the cached refresh token lets headless jobs run indefinitely.

Install

pip install gmail-attachments-mcp

or, with uv:

uv tool install gmail-attachments-mcp

One-time setup (~10 minutes)

You need a Google Cloud OAuth client. The server runs entirely on your machine; nothing leaves it.

  1. Sign in to Google Cloud Console with the Gmail account whose attachments you want to download.
  2. Create a project (or pick an existing one).
  3. Enable the Gmail API: console.cloud.google.com/apis/library/gmail.googleapis.com.
  4. Configure the OAuth consent screen under APIs & Services → OAuth consent screen:
  • Google Workspace users: User type = Internal (no app verification needed).
  • Personal Gmail users: User type = External. Add your own Gmail address as a test user under "Test users".
  1. APIs & Services → Credentials → + Create credentials → OAuth client ID
  • Application type: Desktop app
  • Download the JSON.
  1. Run setup:
gmail-attachments-mcp setup --import-credentials ~/Downloads/client_secret_*.json

A browser window opens for OAuth consent. After consent, a refresh token is cached at ~/.config/gmail-attachments-mcp/token.json (or $XDG_CONFIG_HOME/gmail-attachments-mcp/).

Verify:

gmail-attachments-mcp status

gmail-attachments-mcp search "has:attachment newer_than:7d" --max 3

See docs/setup-google-oauth.md for screenshots and troubleshooting.

Use it from Claude Code

claude mcp add --scope user gmail-attachments gmail-attachments-mcp -- serve

Then in any Claude Code session:

Use the gmail-attachments MCP to download the latest CV from careers@example.com to ~/CVs.

Use it from Claude Desktop

Edit ~/Library/Application Support/Claude/claude_desktop_config.json (Mac) or %APPDATA%/Claude/claude_desktop_config.json (Windows):

{

"mcpServers": { "gmail-attachments": { "command": "gmail-attachments-mcp", "args": ["serve"] } } }

Restart Claude Desktop. See docs/claude-desktop.md for details.

Use it from Cursor / Cline / Continue / others

Any MCP client that supports stdio servers. Point it at the same gmail-attachments-mcp serve command. See docs/other-clients.md.

Use it from the shell or cron

# Search

gmail-attachments-mcp search "from:noreply@stripe.com has:attachment newer_than:30d"

Download every attachment from a specific thread

gmail-attachments-mcp thread 19db831fab15b507 --dest ~/Invoices

Download from the latest match, only PDFs

gmail-attachments-mcp latest "from:hr@example.com has:attachment" --dest ~/CVs --ext .pdf,.docx

Cron example — pull CV attachments hourly:

0 * * * * /usr/local/bin/gmail-attachments-mcp latest "to:careers@example.com has:attachment newer_than:2d" --dest ~/CVs --ext .pdf,.docx >> ~/.cache/gmail-attachments-mcp.log 2>&1

The 3 MCP tools

gmail_search(query, max_results=10)

Returns thread summaries with attachment filenames. Use Gmail's standard query syntax.

[

{ "thread_id": "19db831fab15b507", "subject": "Folon Q3 2026 Quarterly Product Recap", "sender": "Manon Muhtasin Rahman ", "date": "Thu, 23 Apr 2026 08:35:00 +0600", "snippet": "Hi everyone, Attached is...", "message_count": 1, "attachment_count": 1, "attachment_filenames": ["Folon Quarterly Report Q3 2026.pdf"] } ]

gmail_download_thread_attachments(thread_id, dest_dir?, extensions?)

Downloads every attachment in a thread to disk. Returns path, size_bytes, mime_type, original_filename per file.

gmail_download_latest_matching(query, dest_dir?, extensions?)

Convenience: search + download from the single most recent match, in one call.

Configuration

All paths can be overridden via environment variables.

VariableDefaultWhat
GMAIL_MCP_CREDENTIALS~/.config/gmail-attachments-mcp/credentials.jsonOAuth client secret JSON
GMAIL_MCP_TOKEN~/.config/gmail-attachments-mcp/token.jsonCached refresh token
GMAIL_MCP_DEFAULT_DEST_DIR~/DownloadsDefault download destination
GMAIL_MCP_SCOPEShttps://www.googleapis.com/auth/gmail.readonlyOAuth scopes (comma-separated)
XDG_CONFIG_HOME~/.configStandard XDG override

Security

  • Token storage: refresh token is written to ~/.config/gmail-attachments-mcp/token.json with mode 0600. Anyone with shell access to your account can read your Gmail. Treat the file like a password.
  • OAuth scope: default is gmail.readonly. Cannot send, delete, or modify mail. If you change $GMAIL_MCP_SCOPES, you're on the hook for the consequences.
  • Credential file: your OAuth client secret JSON is *not* a password — it identifies your app to Google. But never commit it. The included .gitignore blocks the common filenames.
  • OAuth client: your client lives in *your* Google Cloud project. There's no central server, no telemetry, nothing leaves your machine.

Troubleshooting

`No valid Gmail token` when invoked from Claude Desktop / cron The first OAuth flow requires a browser. Run gmail-attachments-mcp setup once in a terminal where a browser can open. Subsequent runs use the cached refresh token.

`Token has been expired or revoked` Refresh tokens stay valid as long as you use them at least every 6 months and don't revoke them at myaccount.google.com/permissions. Re-auth:

gmail-attachments-mcp setup --reauth

`Access blocked: This app's request is invalid` On personal Gmail, your OAuth consent screen needs your address listed under Test users. Workspace users should select Internal audience to avoid this.

`HttpError 403: Request had insufficient authentication scopes` You changed $GMAIL_MCP_SCOPES without re-authorizing. Run gmail-attachments-mcp setup --reauth.

Comparison with other Gmail MCP servers

ServerScopeToolsMaintenance
Anthropic hosted claude.ai GmailRead/write, hostedmanyActive, but no attachment bytes
GongRzhe/Gmail-MCP-ServerFull mailbox19Archived 2026-03-03
shinzo-labs/gmail-mcpFull mailbox~30Active
gmail-attachments-mcp (this)read-only3Active

Pick this one if you want a tiny, focused, read-only tool. Pick a fuller one if you also need to send mail, manage labels, drafts, threads, etc.

Authentication — bring your own Google OAuth client

There are no API keys and no shipped secrets. The server authenticates to *your* Google account with an OAuth client *you* create, and caches a refresh token locally. The author has zero access to your data.

  • Why your own client? Google's restricted scopes (here, gmail.readonly) can't be redistributed in a shared app, and an unverified shared app is capped at 100 users. "Bring your own OAuth client" is the standard pattern for personal-data MCP servers.
  • What you need: a free Google Cloud project, the Gmail API enabled, an OAuth consent screen, and a Desktop OAuth client. Full walkthrough → docs/setup-google-oauth.md.
  • Where your token lives: ~/.config/gmail-attachments-mcp/token.json (mode 0600). Delete it to revoke locally; revoke fully at myaccount.google.com/permissions.
  • No hosted/SaaS option — everything runs locally; your mail never touches a third-party server.

Related tools

Part of a small family of focused, local MCP servers for Google Workspace data the hosted connectors don't expose:

  • gmail-attachments-mcp — download Gmail attachment bytes to disk *(this repo)*
  • [google-drive-comments-mcp](https://github.com/zayansalman/google-drive-comments-mcp) — read comment threads on Docs/Sheets/Slides
  • [google-drive-files-mcp](https://github.com/zayansalman/google-drive-files-mcp) — move/organize Drive files

They can share one OAuth login or stay isolated — see each repo's setup.

License

MIT. See LICENSE.

Contributing

Issues and PRs welcome. Run pytest and ruff check src tests before submitting.

git clone https://github.com/zayansalman/gmail-attachments-mcp

cd gmail-attachments-mcp pip install -e ".[dev]" pytest

问 PopNx