Token导航 LogoToken导航TokenDH.com
Gmail Inbox Agent logo
办公协作未说明官方级别未说明来源级核验

Gmail Inbox Agent

MCP Server

一个基于n8n工作流的智能代理,使用Google Gemini AI自动分类Gmail邮件、应用智能标签,并为求职拒绝邮件生成个性化回复草稿。

工具数

0

提示词数

0

GitHub Stars

1

资源数

0
Claude团队协作任务管理Claude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

KoushikSamudrala

提供方

KoushikSamudrala

最后核验

2026/5/17 20:21

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

📬 Gmail收件箱代理——Gemini分类器+拒绝起草器

一个智能的n8n代理工作流程,使用Google Gemini AI自动对您的Gmail收件箱进行分类,应用智能标签,并为拒绝工作的电子邮件起草个性化的反馈回复——所有这些都是免提的,每小时一次。

______________________________________________________________________

🎬 演示

https://github.com/user-attachments/assets/4e809ae2-f094-4821-8e6b-a4666fc30359

🤖 克劳德桌面+MCP集成

此工作流程可通过以下方式完全访问 克劳德桌面版 通过与n8n的MCP(模型上下文协议)集成。

通过将n8n的MCP服务器连接到Claude Desktop,您可以:

  • 通过自然语言触发此工作流 --只需让Claude运行您的Gmail收件箱代理
  • 监控工作流执行 在Claude桌面聊天中
  • 列出、搜索和执行 不打开n8n UI的任何n8n工作流

运作原理

Claude Desktop  ──MCP──▶  n8n MCP Server  ──▶  n8n Workflow Engine  ──▶  Gmail + Gemini APIs

设置MCP访问权限在 MCP集成 下面的部分。

______________________________________________________________________

📋 目录

______________________________________________________________________

🌟 概述

Gmail收件箱代理 是一个自主的代理n8n工作流,旨在消除手动收件箱管理。它每小时运行一次,获取最近未处理的电子邮件,并将其发送到 谷歌双子座2.5 Flash 对于人工智能分类,自动应用Gmail标签,并且——特别是对于拒绝工作的电子邮件——起草一份精美的、专业的反馈请求回复。

主要特点

特性描述
⏰ 每小时自动化通过时间表触发器每小时运行一次
🤖 AI分类Gemini 2.5 Flash将电子邮件分为3类
🏷️ 自动标签动态应用Gmail标签,如果缺少则创建标签
✉️ 草稿回复自动生成拒绝反馈请求草稿
🔁 MCP可访问可通过n8n MCP从克劳德桌面完全触发
🚫 自我过滤跳过自己发送的电子邮件

电子邮件类别

AI将每封电子邮件精确地分为以下几类:

  • Job-Application-Related
  • Action-Needed
  • General-Purpose

______________________________________________________________________

🔀 架构与信息流

┌──────────────────────────────────────────────────────────────────────────────┐
│                         GMAIL INBOX AGENT WORKFLOW                           │
└──────────────────────────────────────────────────────────────────────────────┘

  ┌─────────────────┐
  │ ⏰ Run Every    │  Triggers every hour (Europe/Berlin timezone)
  │    Hour         │  Outputs: timestamp metadata
  └────────┬────────┘
           │
           ▼
  ┌─────────────────┐
  │ 📥 Get          │  Gmail API: Fetches all emails matching:
  │    Unprocessed  │  newer_than:1d  -label:processed  -in:draft
  │    Emails       │  Outputs: raw Gmail message objects
  └────────┬────────┘
           │
           ▼
  ┌─────────────────┐
  │ 🔍 Skip Emails  │  Filter: Removes emails where From contains
  │    Sent By Me   │  your own Gmail address
  └────────┬────────┘
           │
           ▼
  ┌─────────────────┐
  │ 🔨 Build Gemini │  Code node: Constructs Gemini API payload.
  │    Payload      │  Extracts: messageId, threadId, from,
  │                 │  subject, snippet → builds classify prompt
  └────────┬────────┘
           │
           ▼
  ┌─────────────────┐
  │ 🤖 Gemini:      │  HTTP POST to Gemini 2.5 Flash API
  │    Classify     │  Returns: category, is_rejection, draft_reply
  │    Email        │  (structured JSON via responseMimeType)
  └────────┬────────┘
           │
           ▼
  ┌─────────────────┐
  │ 🔧 Parse Gemini │  Code node: Parses AI response JSON.
  │    Response     │  Maps: category → labelName (spaces→dashes)
  │                 │  Falls back gracefully on parse errors
  └────────┬────────┘
           │
           ▼
  ┌─────────────────┐
  │ 📋 Get All      │  Gmail API: Fetches full list of existing
  │    Gmail Labels │  labels (id + name) for the account
  └────────┬────────┘
           │
           ▼
  ┌─────────────────┐
  │ 🔎 Check Which  │  Code node: Compares needed labels vs
  │    Labels Exist │  existing labels. Builds labelsToCreate[]
  │                 │  and existingLabelIds map
  └────────┬────────┘
           │
           ▼
  ┌─────────────────────────────────────┐
  │ ❓ New Labels Needed?               │
  │   labelsToCreate.length > 0 ?       │
  └────┬───────────────────────────┬────┘
       │ YES                       │ NO
       ▼                           │
  ┌─────────────┐                  │
  │ 📝 Expand   │                  │
  │    Labels   │                  │
  │    To Create│                  │
  └──────┬──────┘                  │
         ▼                         │
  ┌─────────────┐                  │
  │ 🏷️ Create   │                  │
  │    Missing  │                  │
  │    Label    │                  │
  └──────┬──────┘                  │
         │                         │
         └──────────┬──────────────┘
                    ▼
  ┌─────────────────┐
  │ 🔗 Merge —      │  Code node: Re-merges both branches.
  │    Restore      │  Restores full email context from
  │    Email Context│  "Check Which Labels Exist" node
  └────────┬────────┘
           │
           ▼
  ┌─────────────────┐
  │ 🏷️ Apply        │  Gmail API: Applies the AI-determined
  │    Category     │  category label to the email
  │    Label        │
  └────────┬────────┘
           │
           ▼
  ┌─────────────────────────────────────┐
  │ ❓ Is Job Rejection?                │
  │   is_rejection === true ?           │
  └────┬───────────────────────────┬────┘
       │ YES                       │ NO
       ▼                           ▼
  ┌─────────────┐           ┌─────────────┐
  │ ✉️ Create   │           │ 🏷️ Label:   │
  │    Draft    │           │    Processed│
  │    Feedback │           │   (Normal)  │
  │    Reply    │           └─────────────┘
  └──────┬──────┘
         ▼
  ┌─────────────┐
  │ 🏷️ Label:  │
  │    Draft-   │
  │    Created  │
  └──────┬──────┘
         ▼
  ┌─────────────┐
  │ 🏷️ Label:  │
  │    Processed│
  │  (Rejection)│
  └─────────────┘

______________________________________________________________________

🧩 工作流节点——完整分解

1.⏰ 每小时跑步

类型: n8n-nodes-base.scheduleTrigger

按小时计划启动工作流程。已配置为 Europe/Berlin 时区。向下游输出当前时间戳元数据。

______________________________________________________________________

2.📥 获取未处理的电子邮件

类型: n8n-nodes-base.gmail (getAll操作)

从Gmail中获取所有匹配的电子邮件:

newer_than:1d -label:processed -in:draft

这确保了只处理新的(过去24小时)未处理的非草稿电子邮件。返回完整的Gmail邮件对象。

______________________________________________________________________

3.🔍 跳过我发送的电子邮件

类型: n8n-nodes-base.filter

过滤掉任何电子邮件,其中 From 字段包含您自己的Gmail地址。这会阻止工作流处理您自己发送的电子邮件。

条件: From 包含 ``

______________________________________________________________________

4.🔨 构建Gemini有效载荷

类型: n8n-nodes-base.code (JavaScript)

构造Gemini的请求有效负载。从Gmail邮件中提取关键字段:

  • messageId, threadId, from, subject, snippet

构建详细的分类提示,指示Gemini:

  • 分为3类
  • 检测是否是拒绝工作(is_rejection: true/false)
  • 如果拒绝:在 相同语言 作为电子邮件,不超过150字

用途 responseMimeType: "application/json" 用于结构化输出。

______________________________________________________________________

5.🤖 双子座:对电子邮件进行分类

类型: n8n-nodes-base.httpRequest

端点:

POST https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash:generateContent?key=YOUR_API_KEY

发送Gemini有效负载,并通过以下方式接收结构化JSON:

{
  "category": "Job-Application-Related",
  "is_rejection": true,
  "draft_reply": {
    "subject": "Re: Your Application",
    "body": "Dear Hiring Team, ..."
  }
}

______________________________________________________________________

6.🔧 解析Gemini响应

类型: n8n-nodes-base.code (JavaScript)

分析原始Gemini API响应。提取文本内容,解析JSON,并映射 category 到一个 categoryLabel (空格被破折号替换为有效的Gmail标签名称)。

退路: 如果解析失败,则默认为 General-Purpose, is_rejection: false.

______________________________________________________________________

7.📋 获取所有Gmail标签

类型: n8n-nodes-base.gmail (标签→ 列表操作)

获取已验证帐户的现有Gmail标签的完整列表。用于在创建AI确定的标签之前检查其是否已存在。

______________________________________________________________________

8.🔎 检查存在哪些标签

类型: n8n-nodes-base.code (JavaScript)

比较所需的标签(categoryLabel + processed)与现有的Gmail标签相比。输出:

  • labelsToCreate[] --需要创建的标签
  • existingLabelIds --地图 name → id 对于所有当前标签

______________________________________________________________________

9. ❓ 需要新标签吗?

类型: n8n-nodes-base.if

如果满足以下条件,则路由到标签创建分支 labelsToCreate.length > 0,否则直接跳到合并。

______________________________________________________________________

10. 📝 展开要创建的标签

类型: n8n-nodes-base.code (JavaScript)

由于IF节点输出单个项目,因此这会拆分 labelsToCreate[] 每个标签对应一个项目,以便下一个节点可以创建每个项目。

______________________________________________________________________

11. 🏷️ 创建缺失标签

类型: n8n-nodes-base.gmail (标签→ 创建操作)

创建新的Gmail标签。在中每个标签运行一次 labelsToCreate 阵列。

______________________________________________________________________

12. 🔗 合并--还原电子邮件上下文

类型: n8n-nodes-base.code (JavaScript)

在标签创建分支(或旁路)之后,这将从重新获取完整的电子邮件上下文 Check Which Labels Exist 节点。这是必要的,因为标签创建循环会拆分项目,否则上下文将丢失。

______________________________________________________________________

13. 🏷️ 应用类别标签

类型: n8n-nodes-base.gmail (添加标签操作)

使用AI确定的类别标签将其应用于电子邮件 messageId.

______________________________________________________________________

14. ❓ 工作被拒绝了吗?

类型: n8n-nodes-base.if

检查是否 is_rejection === true 双子座分类。创建草稿的路径(是)或正常处理路径(否)。

______________________________________________________________________

15. ✉️ 创建反馈回复草稿 *(仅限拒绝路径)*

类型: n8n-nodes-base.gmail (草案→ 创建操作)

使用Gemini生成的内容创建Gmail草稿回复:

  • 致: 原寄件人
  • 主题:draft_reply.subject
  • 主体:draft_reply.body
  • 主题: 附在原始电子邮件帖子中

______________________________________________________________________

16. 🏷️ 标签:草稿已创建 *(拒绝路径)*

类型: n8n-nodes-base.gmail (添加标签)

添加a Draft-Created 在电子邮件上贴上标签,这样你就知道已经为它生成了草稿。

______________________________________________________________________

17. 🏷️ 标签:已处理(拒收路径)

类型: n8n-nodes-base.gmail (添加标签)

将电子邮件标记为 processed 因此,在下一个小时的跑步中,它不会再被捡起。

______________________________________________________________________

18. 🏷️ 标签:已处理(正常路径)

类型: n8n-nodes-base.gmail (添加标签)

与上述相同,但适用于非拒绝电子邮件。标记为 processed 以防止再加工。

______________________________________________________________________

📦 先决条件

  • n8n (自托管,建议v1.x或更高版本)-- 安装n8n
  • 谷歌账户 启用Gmail
  • 谷歌云项目 与:

- Gmail API已启用 - 生成语言(Gemini)API已启用

  • Node.js v18+(适用于n8n)
  • *(可选)* 克劳德桌面版 用于MCP集成

______________________________________________________________________

🔐 身份验证设置

1.Gmail OAuth2(用于Gmail节点)

  1. 首选 谷歌云控制台
  2. 创建新项目或选择现有项目
  3. 导航至 API和服务→ 图书馆
  4. 搜索并启用 Gmail API
  5. 首选 API和服务→ 凭证
  6. 点击 创建凭证→ OAuth 2.0客户端ID

- 应用程序类型: Web应用程序 - 授权重定向URI: https://your-n8n-instance.com/rest/oauth2-credential/callback

  1. 复制 客户端ID客户端密钥
  2. 在n8n中,转到 凭证→ 添加凭据→ Google OAuth2 API
  3. 粘贴您的客户端ID和客户端密码
  4. 点击 使用 Google 登录 并授权访问
⚠️ 请确保启用以下Gmail OAuth作用域: - https://www.googleapis.com/auth/gmail.readonly - https://www.googleapis.com/auth/gmail.labels - https://www.googleapis.com/auth/gmail.modify - https://www.googleapis.com/auth/gmail.compose

______________________________________________________________________

2.Gemini API密钥(用于HTTP请求节点)

  1. 首选 Google AI 工作室
  2. 点击 创建API密钥
  3. 复制API密钥
  4. 在工作流中,打开 🤖 双子座:对电子邮件进行分类 节点
  5. 在URL字段中,替换 YOUR_API_KEY 使用您的实际密钥:
   https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash:generateContent?key=YOUR_API_KEY
💡 或者,将密钥存储为n8n凭据(HTTP Header Auth),以提高安全性。

______________________________________________________________________

3.更新您的电子邮件过滤器

🔍 跳过我发送的电子邮件 节点,更新筛选条件:

From does not contain → your-email@gmail.com

替换为您的实际Gmail地址。

______________________________________________________________________

📥 安装和导入

步骤1:克隆此仓库

git clone https://github.com/YOUR_USERNAME/gmail-inbox-agent.git
cd gmail-inbox-agent

步骤2:将工作流导入n8n

  1. 打开n8n实例
  2. 点击 工作流→ 从文件导入
  3. 选择 workflow.json 来自此repo
  4. 点击 导入

步骤3:配置凭据

  • 分配您的 谷歌OAuth2 所有Gmail节点的凭据
  • 设置您的 Gemini API密钥 在HTTP请求节点URL中
  • 在筛选器节点中更新您的电子邮件地址

步骤4:激活

将工作流切换到 活跃的 --现在它将每小时自动运行一次。

______________________________________________________________________

🔌 MCP与Claude Desktop的集成

此工作流是通过以下方式构建和积极管理的 克劳德桌面版 使用n8n的MCP(模型上下文协议)服务器。这允许您通过Claude中的自然语言与n8n工作流进行交互。

安装说明

1.在n8n中启用MCP

在n8n实例设置中,启用MCP服务器功能并在以下项下生成API令牌:

Settings → API → Create API Token (with MCP scope)

2.配置克劳德桌面

编辑您的Claude Desktop配置文件:

  • 窗户: %APPDATA%\Claude\claude_desktop_config.json
  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

添加以下内容 mcpServers 块:

{
  "mcpServers": {
    "n8n-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "supergateway",
        "--streamableHttp",
        "http://localhost:5678/mcp-server/http",
        "--header",
        "authorization:Bearer YOUR_N8N_API_TOKEN"
      ]
    }
  }
}

替换 YOUR_N8N_API_TOKEN 其中令牌是在步骤1中生成的。

3.在启动Claude Desktop之前启动n8n

始终确保您的n8n实例在以下时间完全运行 http://localhost:5678 在打开Claude Desktop之前。MCP连接在启动时建立。

4.重新启动克劳德桌面

完全退出并重新打开Claude Desktop。现在,您应该看到n8n被列为已连接的工具。

使用Claude运行此工作流

连接后,您可以直接从Claude Desktop触发此工作流:

"Execute my Gmail inbox agent workflow"
"Run the Gemini email classifier"
"List my n8n workflows"
"Search for my job application workflow"

Claude将调用n8n MCP工具,执行工作流程,并在聊天中向您报告结果。

______________________________________________________________________

⚙️ 配置

设置位置默认值描述
电子邮件回顾窗口📥 Get Unprocessed Emails → 查询newer_than:1d取回电子邮件的时间有多远
您的电子邮件地址🔍 Skip Emails Sent By Me → 过滤器your-email@gmail.com要排除的电子邮件
Gemini模型🤖 Gemini: Classify Email → URLgemini-2.5-flash必要时更改型号
计划间隔⏰ Run Every Hour → 规则每1小时一次代理多久运行一次
时区工作流设置Europe/Berlin调整到您的时区
草稿回复最大字数🔨 Build Gemini Payload → prompt150字AI生成草稿的最大长度

______________________________________________________________________

🚀 如何使用

一旦激活,工作流每小时都会完全自主运行。事情是这样的:

  1. 每小时,工作流会唤醒并检查Gmail
  2. 新电子邮件 最近24小时(尚未标记 processed)已取回
  3. 每封电子邮件 被Gemini AI归为一类
  4. 标签已应用 自动——如果需要,会动态创建新标签
  5. 拒绝工作 获取在“草稿”文件夹中创建的反馈请求答复草稿
  6. 所有已处理的电子邮件 被标记 processed 避免再加工

你将在Gmail中看到什么

运行几次后,您的Gmail将具有:

  • Job-Application-Related 相关电子邮件上的标签
  • Action-Needed 需要您注意的电子邮件标签
  • General-Purpose 在其他所有东西上贴标签
  • Draft-Created 在起草草稿的拒绝电子邮件上贴上标签
  • processed 所有已处理电子邮件上的标签
  • 准备好回复草稿以供审查并发送以拒绝工作

______________________________________________________________________

🛠️ 故障排除

问题可能原因修复
工作流未显示任何电子邮件所有已标记的电子邮件 processed删除 processed 从某些电子邮件中添加标签以重新处理
Gemini分类失败API密钥无效或过期在重新生成密钥 AI 工作室 并更新URL
Gmail身份验证错误OAuth令牌已过期在n8n凭据中重新授权
标签未创建Gmail范围不足使用上面列出的完整范围重新授权
Claude Desktop找不到n8n在Claude启动之前n8n未运行始终先启动n8n,然后重新启动Claude Desktop
Claude Desktop中的MCP超时n8n响应时间过长请检查n8n的运行状况 http://localhost:5678
用错误的语言起草回复Gemini默认为英语提示指示使用相同的语言回复——检查电子邮件片段质量

______________________________________________________________________

📁 仓库结构

gmail-inbox-agent/
├── README.md          ← You are here
└── workflow.json      ← n8n workflow export (import this into n8n)

______________________________________________________________________

📄 许可证

MIT许可证——可以自由分叉、修改和共享。

______________________________________________________________________

🙏 致谢

______________________________________________________________________

*建于❤️ 并通过Claude Desktop+n8n MCP集成实现自动化*

目录标签

目录标签

Claude团队协作任务管理邮件分类本地部署自动回复AI分类Gmail自动化求职管理

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

oauth

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明oauth部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP