使用说明
用于模型上下文协议(MCP)的Gmail服务器
此MCP服务器与Gmail集成,可以发送、删除、阅读、起草和回复电子邮件。
注意:此服务器使MCP客户端能够读取、删除和发送电子邮件。然而,客户端在进行此类活动之前会提示用户。
https://github.com/user-attachments/assets/5794cd16-00d2-45a2-884a-8ba0c3a90c90
组件
工具
-
发送电子邮件
- 向电子邮件地址收件人发送电子邮件
- 输入:
recipient_id(string):收件人的电子邮件地址subject(string):电子邮件主题message(string):电子邮件内容
- 返回状态和message_id
-
垃圾电子邮件
- 将电子邮件移至垃圾箱
- 输入:
email_id(string):自动生成的电子邮件ID
- 返回成功消息
-
将电子邮件标记为已读
- 将电子邮件标记为已读
- 输入:
email_id(string):自动生成的电子邮件ID
- 返回成功消息
-
获取未读电子邮件
- 检索未读电子邮件
- 返回包含电子邮件ID的电子邮件列表
-
阅读电子邮件
- 检索给定的电子邮件内容
- 输入:
email_id(string):自动生成的电子邮件ID
- 返回电子邮件元数据字典,并将电子邮件标记为已读
-
打开电子邮件
- 在浏览器中打开电子邮件
- 输入:
email_id(string):自动生成的电子邮件ID
- 返回成功消息,并在默认浏览器中打开给定的电子邮件
设置
Gmail API设置
- 创建新的Google Cloud项目
- 启用Gmail API
- 配置OAuth同意屏幕
- 选择“外部”。但是,我们不会发布该应用程序。
- 将您的个人电子邮件地址添加为“测试用户”。
- 添加OAuth作用域
https://www.googleapis.com/auth/gmail/modify - 创建OAuth客户端ID 适用于应用程序类型“桌面应用程序”
- 下载客户端OAuth密钥的JSON文件
- 重命名密钥文件并将其保存到本地计算机的安全位置。记下位置。
- 此文件的绝对路径将作为参数传递
--creds-file-path当服务器启动时。
- 此文件的绝对路径将作为参数传递
认证
服务器启动后,将在您的系统浏览器中启动身份验证流。
令牌凭据随后将保存(稍后检索)在传递给参数的绝对文件路径中 --token-path.
例如,您可以在主文件夹中使用点目录,替换 [your-home-folder].:
| 参数 | 示例 |
|---|---|
--creds-file-path |
/[your-home-folder]/.google/client_creds.json |
--token-path |
/[your-home-folder]/.google/app_tokens.json |
使用桌面应用程序
使用 紫外线 是推荐的。
要将此服务器与Claude Desktop集成为MCP客户端,请将以下内容添加到应用程序的服务器配置中。默认情况下,它存储为 ~/Library/Application\ Support/Claude/claude_desktop_config.json.
{
"mcpServers": {
"gdrive": {
"command": "uv",
"args": [
"--directory",
"[absolute-path-to-git-repo]",
"run",
"gmail",
"--creds-file-path",
"[absolute-path-to-credentials-file]",
"--token-path",
"[absolute-path-to-access-tokens-file]"
]
}
}
}
必须设置以下参数
| 参数 | 示例 |
|---|---|
--directory |
绝对路径 gmail 包含服务器的目录 |
--creds-file-path |
在Gmail API设置中创建的凭据文件的绝对路径。 |
--token-path |
存储和检索应用程序访问和刷新令牌的绝对路径。 |
使用MCP检查员进行故障排除
要测试服务器,请使用 MCP检查员. 在git repo中,运行以下命令,相应地更改参数。
npx @modelcontextprotocol/inspector uv run [absolute-path-to-git-repo]/src/gmail/server.py --creds-file-path [absolute-path-to-credentials-file] --token-path [absolute-path-to-access-tokens-file]