Gmail多账户邮件管理服务

该项目实现了一个模型上下文协议(MCP)服务器,用于连接两个Gmail账户并提供邮件历史和搜索功能,可作为ChatGPT等MCP客户端的自定义连接器。

  • by unobtuse
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 unobtuse/mcp-gmail-multi-account

使用说明

Gmail多账户MCP服务器

该项目实现了一个模型上下文协议(MCP)服务器,该服务器连接到两个Gmail帐户,并公开了获取和搜索电子邮件历史记录的工具。它被设计为用作 自定义连接器 在ChatGPT(或其他MCP客户端)中。

特性

  • 多账户支持:连接到两个单独的Gmail帐户(默认标记为“主要”和“次要”)。
  • 统一历史:将两个帐户的电子邮件历史记录合并到一个按时间顺序排列的列表中。
  • 搜索:支持跨两个帐户的完整Gmail搜索语法。
  • 苏格兰和南方能源公司运输:使用服务器发送事件(SSE)与MCP客户端进行实时通信。

先决条件

  • Node.js(LTS)
  • Google Cloud项目 Gmail API 启用。
  • 为“桌面应用程序”或“Web应用程序”配置的OAuth 2.0凭据(客户端ID和客户端密码)。
    • 如果是“Web App”,请添加您计划使用的重定向URI(例如。, http://localhost:3000/oauth2callback).

设置

  1. 再进行

    npm install
    
  2. 配置环境 复制 .env.example 到 .env 并填写您的详细信息:

    cp .env.example .env
    

    编辑 .env:

    • GOOGLE_CLIENT_ID:您的OAuth客户端ID。
    • GOOGLE_CLIENT_SECRET:您的OAuth客户端密码。
    • GOOGLE_REDIRECT_URI:重定向URI(例如。, http://localhost:3000/oauth2callback).
    • GMAIL_ACCOUNT_A_EMAIL:第一个帐户的电子邮件。
    • GMAIL_ACCOUNT_B_EMAIL:第二个帐户的电子邮件。
  3. 授权帐户 为每个帐户运行授权脚本。这将打开一个URL以授予权限并生成一个令牌文件。

    账户A:

    npm run authorize A
    

    账户B:

    npm run authorize B
    

    出现提示时,将浏览器中的代码粘贴回终端。代币保存在 tokens/accountA.json 和 tokens/accountB.json.

运行服务器

发展

npm run dev

生产

npm run build
npm run start

服务器将在端口3000上启动(或 PORT 在.env中)。 SSE端点: http://localhost:3000/sse

配置ChatGPT自定义连接器

  1. 转到您的自定义GPT配置。
  2. 添加新的操作/连接器。
  3. 选择 主控程序 (如果可用)或配置为SSE端点。
  4. 统一资源定位符: https://<your-domain>/sse (需要HTTPS才能与ChatGPT一起用于生产)。
    • 如果在本地进行测试,您可以使用类似隧道的 ngrok 暴露您的本地端口3000。
  5. 认证:无(除非添加API密钥层,当前未在此启动器中实现)。

示例提示

  • “检查我的电子邮件中是否有来自的消息client@example.com所有账户。"
  • “在我的所有收件箱中搜索有关‘X项目’的电子邮件。”
  • “总结与…的最新沟通bob@company.com."

工具

  • get_client_history:返回特定客户端电子邮件的合并电子邮件历史记录。
  • search_emails:在所有帐户中运行自定义Gmail搜索查询。