使用说明
Gmail MCP服务器
用于Gmail API集成的可生产的模型上下文协议(MCP)服务器,使用TypeScript构建,专为AI代理工具调用而设计。
🚀 特性
- 完整的Gmail API集成 -发送、阅读、搜索和管理电子邮件
- OAuth2身份验证 -基于令牌的安全身份验证,具有自动刷新功能
- 9综合工具 -为AI代理提供完整的Gmail功能
- TypeScript实现 -类型安全、可维护的代码
- 综合测试 -边缘案例处理的测试成功率为83.3%
- 速率限制 -内置API速率限制和错误处理
- 生产就绪 -强大的错误处理和安全功能
📋 Gmail工具可用
| 工具 | 描述 | 功能 |
|---|---|---|
send_email |
发送带附件的电子邮件 | 撰写、发送、CC/BCC支持 |
read_emails |
读取和列出电子邮件 | 分页、过滤、元数据 |
get_email |
获取具体的电子邮件详细信息 | 完整的电子邮件内容、标题 |
search_emails |
高级电子邮件搜索 | 基于查询的搜索,过滤器 |
manage_labels |
创建/删除电子邮件标签 | 标签管理,组织 |
manage_threads |
线程操作 | 标记已读/未读、存档、删除 |
manage_drafts |
草稿电子邮件管理 | 创建、更新、删除草稿 |
manage_attachments |
处理电子邮件附件 | 下载、处理附件 |
email_actions |
批量电子邮件操作 | 批量操作,自动化 |
🛠️ 先决条件
- Node.js 18+
- npm或纱线
- 谷歌云平台帐户
- Gmail帐户
📦 安装
-
克隆仓库
git clone <repository-url> cd gmail-mcp-server -
安装依赖项
npm install -
构建项目
npm run build
🔐 Gmail API设置
第一步:创建谷歌云项目
- 首选 谷歌云控制台
- 创建新项目或选择现有项目
- 记下您的项目ID
步骤2:启用Gmail API
- 导航至 API和服务 → 图书馆
- 搜索“Gmail API”
- 点击 启用
步骤3:创建OAuth2凭据
- 首选 API和服务 → 凭证
- 点击 创建凭证 → OAuth客户端ID
- 选择 桌面应用程序
- 下载JSON文件
- 注意
client_id和client_secret
步骤4:配置OAuth同意屏幕
- 首选 API和服务 → OAuth 授权界面
- 选择 外部 用户类型
- 填写应用程序信息:
- 应用程序名称:
Gmail MCP Server - 用户支持电子邮件:
your-email@gmail.com - 开发者联系人:
your-email@gmail.com
- 应用程序名称:
- 添加作用域:
https://www.googleapis.com/auth/gmail.readonlyhttps://www.googleapis.com/auth/gmail.sendhttps://www.googleapis.com/auth/gmail.modifyhttps://www.googleapis.com/auth/gmail.compose
- 添加测试用户(您的电子邮件地址)
- 保存配置
步骤5:生成刷新令牌
-
设置环境变量 (替换为您的值):
export GMAIL_CLIENT_ID="your-client-id.apps.googleusercontent.com" export GMAIL_CLIENT_SECRET="your-client-secret" -
生成刷新令牌:
npm run generate-token -
按照提示操作:
- 出现提示时输入您的客户ID
- 出现提示时输入您的客户端密码
- 浏览器将打开进行授权
- 为您的Gmail帐户授予权限
- 从URL复制授权码
- 将其粘贴回终端
- 复制生成的
GMAIL_REFRESH_TOKEN
-
设置刷新令牌:
export GMAIL_REFRESH_TOKEN="your-refresh-token"
🚀 用法
基本用法
-
设置所有环境变量:
export GMAIL_CLIENT_ID="your-client-id.apps.googleusercontent.com" export GMAIL_CLIENT_SECRET="your-client-secret" export GMAIL_REFRESH_TOKEN="your-refresh-token" -
运行服务器:
npm start -
测试连接:
npm test
工具使用示例
// Send an email
const result = await server.execute('send_email', {
to: 'recipient@example.com',
subject: 'Test Email',
body: 'Hello from Gmail MCP Server!',
isHtml: false
});
// Read emails
const emails = await server.execute('read_emails', {
maxResults: 10,
query: 'is:unread'
});
// Search emails
const searchResults = await server.execute('search_emails', {
query: 'from:important@example.com',
maxResults: 5
});
🧪 测试
运行所有测试
npm test
运行结构测试(无需凭据)
npm run test:structure
观看模式
npm run test:watch
预期测试结果
- ✅ 凭证验证 -通过
- ✅ 连接测试 -通过
- ✅ 电子邮件发送 -通过
- ✅ 电子邮件阅读 -通过
- ✅ 电子邮件搜索 -通过
- ✅ 线程管理 -通过
- ✅ 速率限制 -通过
- ✅ 边缘案例 -通过
- ✅ 错误处理 -通过
📁 项目结构
gmail-mcp-server/
├── src/
│ ├── gmail-true-mcp.ts # Main Gmail MCP server
│ ├── true-json-base.ts # Base MCP server class
│ ├── server-manager.ts # Server management interfaces
│ └── gmail-test.ts # Test suite
├── docs/
│ └── GMAIL_MCP_DOCUMENTATION.md # Detailed API documentation
├── package.json # Dependencies and scripts
├── tsconfig.json # TypeScript configuration
└── README.md # This file
🔧 配置
环境变量
| 变量 | 描述 | 必填 |
|---|---|---|
GMAIL_CLIENT_ID |
来自Google Cloud的OAuth2客户端ID | 是 |
GMAIL_CLIENT_SECRET |
来自Google Cloud的OAuth2客户端机密 | 是 |
GMAIL_REFRESH_TOKEN |
OAuth2刷新令牌(已生成) | 是 |
速率限制
服务器包括内置的速率限制:
- 默认:每100秒100个请求
- 可配置的:调整
gmail-true-mcp.ts - 自动:处理Gmail API配额
🛡️ 安全
- OAuth2身份验证 -行业标准安全身份验证
- 令牌刷新 -自动访问令牌续订
- 凭证保护 -从不记录敏感信息
- 速率限制 -防止API配额耗尽
- 错误处理 -优雅的故障处理
📚 文档
- api参考:参见
docs/GMAIL_MCP_DOCUMENTATION.md - 工具架构:详细的参数规格
- 错误代码:全面的错误处理指南
- 例子:实际使用示例
🚀 部署
生产检查表
- []建立谷歌云项目
- []配置OAuth同意屏幕
- []生成刷新令牌
- []设置环境变量
- []运行测试套件
- []部署到您的基础架构
环境设置
# Production environment variables
export GMAIL_CLIENT_ID="your-production-client-id"
export GMAIL_CLIENT_SECRET="your-production-client-secret"
export GMAIL_REFRESH_TOKEN="your-production-refresh-token"
export NODE_ENV="production"
🤝 贡献
- 复刻仓库
- 创建要素分支
- 进行更改
- 添加测试
- 提交拉取请求
📄 许可证
MIT许可证-有关详细信息,请参阅许可证文件
🆘 支持
对于问题和疑问:
- 检查文档
- 查看测试套件
- 检查谷歌云控制台配置
- 验证OAuth同意屏幕设置
🎯 后续步骤
此Gmail MCP服务器演示了为AI代理工具调用构建企业级MCP服务器的能力。该实现可以用作为其他服务构建MCP服务器的模板,例如:
- GitHub API
- 松弛API
- API通知
- Google Drive API
- 以及500+其他服务
内置于❤️ 用于AI代理集成