Gmail协议服务器

一个用于与Google Workspace(特别是Gmail功能)交互的MCP(模型上下文协议)服务器,支持多工作区、域名选择、邮件阅读和草稿创建。

  • by das-monki
  • Clojure
  • 本地部署
  • 更新于
在 GitHub 查看 das-monki/g-mcp

使用说明

G-MCP:谷歌工作区MCP服务器

一个MCP(模型上下文协议)服务器,用于与谷歌工作区交互,特别是Gmail功能。

特性

  • 多工作空间支持:适用于多个Google Workspace帐户
  • 域选择:支持具有主域和辅助域的工作区
  • 电子邮件阅读:使用查询支持从指定域读取电子邮件
  • 草稿创建:在CC/BCC支持下创建电子邮件草稿

设置

先决条件

  • 启用薄片的Nix
  • 启用Gmail API的谷歌云项目
  • 具有域范围委派的服务帐户凭据

安装

  1. 克隆存储库:
git clone git@monki:das-monki/g-mcp.git
cd g-mcp
  1. 进入开发环境:
nix develop
  1. 设置Google凭据:
    • 在Google Cloud Console中创建服务帐户
    • 启用Gmail API和Admin SDK API
    • 将服务帐户密钥下载为 credentials.json
    • 为服务帐户设置域范围的委派
    • 设置环境变量: export GOOGLE_APPLICATION_CREDENTIALS=credentials.json

建筑

构建服务器:

clojure -T:build uber

或者使用Nix:

nix build

跑步

启动MCP服务器:

clojure -M:run

或者运行构建的二进制文件:

./result/bin/g-mcp

MCP工具

list-domains

列出经过身份验证的Google工作区中的所有可用域。

参数: 无

退货: 域及其主要状态和验证状态的列表。

read-emails

读取来自指定域的电子邮件。

参数:

  • domain (string):用于读取电子邮件的域
  • max-results (数字,可选):要返回的最大电子邮件数(默认值:10)
  • query (字符串,可选):用于过滤电子邮件的Gmail搜索查询

退货: 包含元数据和内容的电子邮件列表。

create-draft

在Gmail中创建电子邮件草稿。

参数:

  • domain (string):用于创建草稿的域
  • to (string):收件人电子邮件地址
  • subject (string):电子邮件主题
  • body (string):电子邮件正文内容
  • cc (字符串,可选):CC收件人
  • bcc (字符串,可选):密件抄送收件人

退货: 草稿ID和确认消息。

配置

服务器需要具有以下范围的Google服务帐户凭据:

  • https://www.googleapis.com/auth/gmail.readonly
  • https://www.googleapis.com/auth/gmail.compose
  • https://www.googleapis.com/auth/gmail.modify
  • https://www.googleapis.com/auth/admin.directory.domain.readonly

发展

运行测试:

clojure -M:test

开始REPL:

clojure -M:repl