Google Workspace管理协议服务

一个基于Model Context Protocol的Google Workspace管理服务,提供通过Admin SDK、Gmail、Calendar和Drive API管理Google Workspace资源的工具。

  • by orvice
  • Go
  • 本地部署
  • 更新于
在 GitHub 查看 orvice/google-workspace-mcp

使用说明

谷歌工作区MCP

Google Workspace的模型上下文协议(MCP)服务器,提供通过管理SDK、Gmail、日历和驱动器API管理Google Workspace资源的工具。

先决条件

  1. 启用了Admin SDK API的Google云平台项目
  2. 具有适当权限的服务帐户
  3. 要模拟的Google Workspace管理员用户

设置

服务帐户配置

  1. 在Google Cloud控制台中创建服务帐户
  2. 为服务帐户授予Google Workspace Admin SDK的适当权限
  3. 为服务帐户创建并下载JSON密钥文件
  4. 为服务帐户启用全域委派
  5. 在Google Workspace管理控制台中为服务帐户授予必要的OAuth作用域

环境变量

应用程序需要设置以下环境变量:

变量 描述
GOOGLE_SERVICE_ACCOUNT 服务帐户JSON密钥文件的路径
GOOGLE_ADMIN_EMAIL 要模拟的Google Workspace管理员用户的电子邮件地址

运输(可选)

默认情况下,服务器通过stdio运行。集 MCP_TRANSPORT=http 服务于 改为可流式HTTP传输。

变量 描述
MCP_TRANSPORT 使用交通工具: stdio (默认)或 http
MCP_HTTP_ADDR HTTP传输的侦听地址(默认 :8080)
MCP_AUTH_TOKEN 设置后,HTTP请求必须包括 Authorization: Bearer <token>
MCP_TRANSPORT=http MCP_HTTP_ADDR=:8080 MCP_AUTH_TOKEN=your-secret-token google-workspace-mcp

然后客户端连接到 http://<host>:8080/ 并发送承载令牌,例如:

Authorization: Bearer your-secret-token

用法

构建

make build

配置

{
 "mcpServers": {
    "googleworkspace-mcp": {
     "command": "/go/bin/google-workspace-mcp",
     "args": [],
     "env": {
       "GOOGLE_SERVICE_ACCOUNT": "test.json",
       "GOOGLE_ADMIN_EMAIL": "admin@yourdomain.com"
     },
     "disabled": false,
     "autoApprove": []
   }
 }
}

注: 确保您的服务帐户在Google云控制台中启用了必要的API访问(管理SDK API、Gmail API、日历API、驱动器API、工作表API和任务API)。

可用工具

目录工具

  • directory_users -列出Google Workspace目录中的所有用户
  • create_user -在Google Workspace中创建新用户
  • get_user -获取特定用户的详细信息
  • update_user -更新现有用户名、密码或组织单位
  • delete_user -从Google工作区删除用户
  • suspend_user -暂停或恢复用户帐户

组工具

  • list_groups -列出域中的组
  • get_group -获取特定组的详细信息
  • create_group -在Google Workspace中创建新组
  • delete_group -从Google工作区删除组
  • list_group_members -列出组的成员
  • add_group_member -向组中添加成员
  • remove_group_member -从组中删除成员

Gmail工具

  • list_gmail -列出最近的Gmail邮件(需要访问Gmail API)

日历工具

  • list_calendar_events -列出用户即将发生的日历事件(需要日历API访问权限)
  • create_calendar_event -创建新日历事件(需要日历API访问权限)

驱动工具

  • list_drive_files -列出Google Drive中的文件(需要访问驱动器API)
  • search_drive_files -在Google Drive中搜索文件(需要访问驱动器API)
  • get_drive_file -获取有关特定驱动器文件的详细信息(需要驱动器API访问权限)
  • create_drive_folder -在Google Drive中创建新文件夹(需要访问驱动器API)
  • upload_drive_file -将文件上载到Google Drive(需要访问驱动器API)
  • share_drive_file -与其他用户共享驱动器文件(需要驱动器API访问权限)

图纸工具

  • list_spreadsheets -在驱动器中列出Google表格(需要访问API表格)
  • get_spreadsheet -获取有关电子表格的详细信息,包括表格(需要访问表格API)
  • read_sheet_range -从电子表格中的特定范围读取数据(需要访问表格API)
  • write_sheet_range -将数据写入电子表格中的特定范围(需要访问Sheets API)
  • append_sheet_rows -将数据行附加到电子表格(需要访问Sheets API)
  • create_spreadsheet -创建新的Google Sheets电子表格(需要访问Sheets API)

任务工具

  • list_task_lists -列出用户的所有Google任务任务列表(需要访问Tasks API)
  • list_tasks -列出特定任务列表中的所有任务(需要任务API访问权限)
  • create_task -在任务列表中创建新任务(需要任务API访问权限)
  • update_task -更新现有任务(需要任务API访问权限)
  • delete_task -从任务列表中删除任务(需要任务API访问权限)
  • complete_task -将任务标记为已完成(需要任务API访问权限)

所需OAuth范围

为您的服务帐户设置全域委派时,请确保授予以下OAuth范围:

  • https://www.googleapis.com/auth/admin.directory.user -用于访问和管理目录用户信息
  • https://www.googleapis.com/auth/admin.directory.group -用于管理组
  • https://www.googleapis.com/auth/admin.directory.group.member -用于管理组成员
  • https://www.googleapis.com/auth/gmail.readonly -用于阅读Gmail邮件
  • https://www.googleapis.com/auth/calendar -用于阅读和书写日历事件
  • https://www.googleapis.com/auth/drive -完全访问Google云端硬盘(读取、写入和管理文件)
  • https://www.googleapis.com/auth/spreadsheets -用于阅读和编写Google表格电子表格
  • https://www.googleapis.com/auth/tasks -用于阅读和编写Google任务