
自建 Gmail 代理:实施模型上下文协议 (MCP) 的逐步指南
通过启动您自己的 Gmail Agent 来熟悉 MCP 服务器,以管理您的收件箱。
来自演示 视频 的片段
MCP 简介
在 2024 年 11 月下旬,Anthropic 发布了 Model Context Protocol (MCP) 作为 LLM 与外部系统之间集成的开放标准。用 Anthropic 的话来说,MCP 是
一个将 AI 助手连接到数据所在系统的全新标准,包括内容存储库、业务工具和开发环境。
Anthropic 肯定不是第一个引入 GenAI 应用程序连接框架的公司。然而,他们是我遇到的第一个将框架作为旨在与模型提供商无关的标准的公司。相比之下,我们拥有一个狂野的框架生态系统,包括 langchain、llamaindex 和许多其他框架,以及来自 OpenAI、Mistral AI、Anthropic 等模型提供商的独家 SDK。我个人对一个标准可以统治一切并构建一个用于 Gmail 的 MCP 服务器以了解更多信息的前景感到非常兴奋。
MCP 架构入门
MCP 的核心遵循客户端-服务器架构,其中 MCP Host 将充当主要程序/应用程序,并提供与 MCP Client 的接口。MCP Client 可以被认为是做出决策并编排一切的主要 LLM。MCP Client 与一个或多个 MCP Server 进行交互,MCP Server 是协议提供了一种新颖的连接和通信方式的外部工具和系统。
MCP Gmail 服务器设置
对于那些准备好直接开始为 Gmail 创建 MCP 服务器的人,这里是 repo,其中包含 Gmail API 设置以及与 Claude Desktop 的用法。
该服务器提供了检索、读取、发送、查看和删除电子邮件的工具。它使用 Gmail 的 Python API,这需要一些 快速设置:
-
- 选择“外部”。但是,我们不会发布该应用。
- 将您的个人电子邮件地址添加为“测试用户”。
-
添加 OAuth 范围
https://www.googleapis.com/auth/gmail/mod
ify -
下载客户端 OAuth 密钥的 JSON 文件
-
重命名密钥文件并将其保存在本地计算机的安全位置。记下该位置。
- 当服务器启动时,此文件的绝对路径将作为参数
--creds-file-path
传递。
- 当服务器启动时,此文件的绝对路径将作为参数
与 Claude Desktop 一起使用
在撰写本文时,MCP Hosts 和 Clients 相当少见,并且大多数早期开发都发生在 MCP Server 端。出于本次练习的目的,我将使用 Claude Desktop 作为功能齐全的 MCP Host。我们将把 Claude Desktop 连接到我们的 克隆 Gmail 服务器,从而使人们可以直接从 Claude Desktop 管理他们的电子邮件。
下载 Claude Desktop 并且您的机器已经安装了 uv 之后,将以下内容添加到您的 Claude Desktop 的配置中。默认情况下,这存储为 ~/Library/Application\ Support/Claude\claude_desktop_config.json.
{
"mcpServers": {
"gmail": {
"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]"
]
}
}
}
必须设置以下参数。
Gmail 服务器的必需参数
--directory
应设置为克隆的 git repo 的位置。将 --creds-file-path
设置为上面步骤 #7 中指定的文件位置。最后,将 --token_path
设置为服务器写入应用程序访问令牌以供将来使用的所需位置。保存 claude_desktop_config.json
并重启 Claude Desktop。您现在应该在 Claude Desktop 的聊天框中看到一个小工具图标。
查看完整的演示 视频!
来自演示 视频 的片段
最后的想法
构建这个用于 Gmail 的 MCP 服务器是 MCP 的一个很好的预告。虽然这个服务器主要是一个玩具示例,但该框架的明显可扩展性足以让人们彻夜难眠地想象新功能。