使用说明
Gmail MCP服务器
用于Gmail集成的模型上下文协议(MCP)服务器。它将Gmail操作作为MCP工具公开。 OAuth由您的主机应用程序处理;此服务器不存储凭据或运行OAuth流。您的应用程序获取Google令牌并将其传递给每个令牌 tools/call 请求。
特性
- 📧 列出并阅读Gmail邮件
- 🏷️ 管理Gmail标签
- ✉️ 发送电子邮件并创建草稿
- 🗑️ 垃圾箱、取消跟踪和删除邮件
- 🛡️ 只读模式支持
- 🐳 Docker支持
先决条件
- Node.js 20+(如果在本地运行)
- Docker和Docker Compose(如果使用Docker)
- 您的主机应用程序 必须拥有Google OAuth2凭据(客户端ID和密钥)并运行OAuth流;然后,它将令牌传递给此服务器
tools/callparams。
设置
环境(MCP服务器)
此服务器不需要Google客户端ID或密码。可选环境:
PORT=3003
READ_ONLY=false
使用Docker运行(推荐)
构建和启动
docker-compose up -d
查看日志
docker-compose logs -f
停止
docker-compose down
本地运行
再进行
pnpm install
构建
pnpm run build
启动服务器
pnpm start
或用于开发:
pnpm run dev
身份验证(在主机应用程序中)
根据MCP授权和RFC 6750,访问令牌以如下方式发送 Authorization标头中的承载令牌,不在请求正文中。
你的 主机应用程序 负责:
- 持有Google OAuth2客户端ID和密码
- 运行OAuth流(将用户重定向到Google,处理回调,交换令牌代码)
- 为每个用户存储/刷新令牌
- 在每个MCP上
tools/call请求,发送用户的 访问令牌 在标题中:
Authorization: Bearer <access_token>
请求示例:
POST /mcp
Content-Type: application/json
Authorization: Bearer ya29.a0...
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "gmail.listLabels",
"arguments": {}
},
"id": 1
}
此服务器不存储令牌;它仅使用授权标头中的承载令牌。
API终点
健康检查
GET /health
MCP(JSON-RPC 2.0)
POST /mcp
正文:JSON-RPC 2.0请求及其方法 initialize, tools/list, tools/call, prompts/list,或 resources/list.
可用的MCP工具
读取操作
gmail.listLabels-列出Gmail标签gmail.listMessages-列出带有可选筛选器的邮件gmail.getMessage-获取特定消息gmail.getThread-获取消息线程gmail.getProfile-获取用户资料
写入操作(要求READ_ONLY=false)
gmail.sendMessage-发送电子邮件gmail.createDraft-创建电子邮件草稿gmail.modifyMessageLabels-添加/删除标签gmail.trashMessage-将邮件移至垃圾箱gmail.untrashMessage-从回收站还原gmail.deleteMessage-永久删除
安全说明
- 仅在您的主机应用程序中保留OAuth客户端ID和密钥;此服务器不需要它们
- 使用只读模式(
READ_ONLY=true)仅阅读电子邮件时 - 令牌是按请求传递的,不会由此服务器持久化
许可证
国际学生委员会