Gmail MCP服务器

Gmail MCP服务器是一个基于Model Context Protocol (MCP)的服务,提供Gmail集成功能(搜索、阅读、发送、回复带附件邮件)。

  • by Ne4nf
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 Ne4nf/Gmail-MCP

使用说明

Gmail MCP

构建了两个模型上下文协议(MCP)服务器:

  1. Gmail MCP服务器 -Gmail集成(搜索、阅读、发送、带附件回复)
  2. 全MCP服务器 -待办事项列表管理(完整的CRUD+分析)

快速开始

先决条件

  • Node.js 24+
  • 克劳德代码或克劳德桌面
  • 具有OAuth凭据的Gmail帐户

安装

# Clone repository
git clone https://github.com/Ne4nf/Gmail-MCP.git
cd Gmail-MCP

# Install dependencies
npm install

# Configure for Claude Code
claude mcp add gmail -- node gmail-mcp-server.js
claude mcp add todo -- node todo-mcp-server.js

# Verify both servers connected
claude mcp list

首次Gmail授权

node authorize-gmail.js

按照OAuth流程授权Gmail访问。A. token.json 将创建文件。


Gmail MCP服务器

特性

5工具:

  • search_emails -使用Gmail查询语法搜索电子邮件
  • get_email -检索带有正文的完整电子邮件内容
  • send_email -发送新电子邮件
  • reply_email -回复现有电子邮件(保留线程)
  • reply_email_with_attachments -使用文件附件(图像、PDF、文档)回复

用法示例

// In Claude Code terminal
Use gmail MCP to search for emails from technextasia.com
Get full content of email ID abc123xyz
Reply to email ID abc123xyz with message "Thank you!"
Reply to email abc123xyz with attachments: screenshot1.png, screenshot2.png

OAuth设置

  1. 从获取OAuth凭据 谷歌云控制台
  2. 启用Gmail API
  3. 将凭据下载为 client_secret_*.json
  4. 跑 node authorize-gmail.js 用于首次身份验证

全MCP服务器

特性

6工具:

  • add_todo -创建新待办事项(标题、描述、优先级、dueDate)
  • list_todos -列出带有过滤功能的待办事项(按状态、优先级)
  • complete_todo -将todo标记为已完成
  • delete_todo -删除待办事项
  • update_todo -更新任何待办事项字段
  • get_stats -查看统计数据(完成率,按优先级)

1资源:

  • todo://list -以结构化JSON格式读取整个待办事项列表

数据模型

{
  id: number,
  title: string,
  description: string,
  priority: "high" | "medium" | "low",
  dueDate: "YYYY-MM-DD" | null,
  status: "pending" | "completed",
  createdAt: ISO timestamp,
  completedAt: ISO timestamp | null
}

用法示例

// In Claude Code terminal
Add todo: "Complete MCP test" with high priority and due date 2026-03-05
List all high priority todos
Complete todo #1
Show todo statistics

持久存储

待办事项存储在 todos.json 使用原子写入来防止数据损坏。


技术实现

建筑

├── gmail-mcp-server.js       # Gmail MCP implementation
├── todo-mcp-server.js        # Todo MCP implementation  
├── authorize-gmail.js        # OAuth helper script
├── package.json              # Dependencies
└── client_secret_*.json      # Google OAuth credentials

依赖项

  • @modelcontextprotocol/sdk -MCP协议实现
  • googleapis -Google API客户端库
  • Node.js内置模块(fs、path、readline)

MCP协议

两台服务器都使用:

  • 运输: 标准服务器传输(标准通信)
  • 能力: 工具(Gmail:5,待办事项:6)+资源(待办事项:1)
  • 错误处理: 通过用户友好的消息进行全面的尝试捕获

文档


测试任务完成

问题1:Gmail MCP

  • [x] 设置克劳德代码+Gmail MCP
  • [x] 搜索申请电子邮件
  • [x] 摘录:发送日期/时间和前10个单词
  • [x] 通过MCP回复(不是Gmail UI)
  • [x] 提供终端截图

问题2:自定义MCP服务器

  • [x] 创建自定义MCP服务器(Todo Manager)
  • [x] 实施6个工具+1个资源
  • [x] 连接到克劳德代码
  • [x] 提供使用截图
  • [x] 解释选择和推理

为什么选择Todo Manager?

1.实际使用案例

Todo管理是开发人员的日常需求。将其与AI助手集成可以消除上下文切换。

2.演示完整的MCP协议

  • 工具(6): 完成CRUD操作+分析
  • 资源(1): 结构化数据访问
  • 状态管理: 带有时间戳的持久存储

3.可扩展架构

易于添加:

  • 标签和类别
  • 周期性任务
  • 提醒和通知
  • 团队协作
  • 日历同步
  • 数据库后端(SQLite/PPostgreSQL)

4.非常适合AI助手

  • 自然语言理解
  • 跨对话的上下文感知
  • 主动的截止日期提醒
  • 智能任务分解建议

安全说明

重要提示:

  • token.json 包含OAuth凭据- 永远不要使用Git
  • client_secret_*.json 通常应该是私有的(此处包含演示)
  • 在生产环境中,使用环境变量作为机密
  • 审查 .gitignore 在承诺之前

故障排除

Gmail授权失败

  1. 检查 client_secret_*.json 存在
  2. 在Google云控制台中启用Gmail API
  3. 添加 http://localhost 到授权重定向URI
  4. 删除 token.json 并重新授权

Claude Code看不到MCP服务器

  1. 验证安装: claude mcp list
  2. 检查文件路径是否为绝对路径
  3. 确保Node.js在PATH中
  4. 检查开发人员控制台(Ctrl+Shift+I)

Todo数据不持久

  • 验证项目文件夹中的写入权限
  • 检查 todos.json 被创建
  • 查看控制台中的错误消息