Google Chat集成服务

一个用于与Google Chat集成的服务器,支持通过自然语言读取和发送消息、管理空间及与Google Chat对话进行交互。

  • by ryanzq26
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 ryanzq26/gchat-mcp

使用说明

谷歌聊天MCP服务器

MCP服务器,用于与Claude Code集成谷歌聊天。读写消息、管理空间,并通过自然语言与您的谷歌聊天对话进行交互。

特性

空间:列出、创建、更新、删除、设置成员 消息:列表、发送、回复、更新、删除 成员:列出、添加、更新角色、删除 反应:添加、列出、删除表情符号反应 活动和附件:查看空间事件和附件详细信息

快速开始

先决条件

  • Node.js 18+
  • 启用聊天API的谷歌云项目
  • OAuth 2.0凭据

安装

  1. 获取Google OAuth凭据

    • 首选 谷歌云控制台
    • 创建新项目或选择现有项目
    • 启用Google Chat API:
      • 导航到“API和服务”>“库”
      • 搜索“Google Chat API”
      • 点击“启用”
    • 配置OAuth同意屏幕(如果尚未完成):
      • 转到“API和服务”>“OAuth同意屏幕”
      • 选择“外部”用户类型,然后单击“创建”
      • 填写必填字段(应用程序名称、用户支持电子邮件、开发人员电子邮件)
      • 在范围和测试用户部分单击“保存并继续”
    • 创建OAuth凭据:
      • 转到“API和服务”>“凭据”
      • 点击“创建凭据”>“OAuth客户端ID”
      • 选择“桌面应用程序”作为应用程序类型
      • 点击“创建”并下载JSON文件
      • 另存为 credentials.json 在该项目的根目录中
  2. 安装和构建

    npm install
    npm run build
    
  3. 验证

    node scripts/authenticate.js
    

    这将打开您的浏览器进行谷歌登录并保存令牌。

  4. 添加到克劳德代码

    claude mcp add-json gchat-mcp '{"command": "node", "args": ["/absolute/path/to/gchat-mcp/build/index.js"], "env": {}}'
    

    替换 /absolute/path/to/gchat-mcp 与这个项目的实际路径。

用法

与Claude自然交谈:

  • “显示我的所有谷歌聊天空间”
  • “向空间/AAAAAAAAAAA发送一条消息,说‘团队好!’”
  • “列出我的项目团队空间中的最新消息”
  • “添加一个👍 对最后一条消息的反应”
  • “这个空间的成员是谁?”

API 参考

Spaces (8 tools)

list_space

列出所有可访问的空间。

  • pageSize (可选):最大结果(默认值:100)
  • filter (可选):例如。, 'spaceType = "SPACE"'

get_space

获取空间详细信息。

  • spaceName (必填):例如。, 'spaces/AAAAAAAAAAA'

create_space

创建一个新空间。

  • displayName (必填)
  • spaceType (可选): 'SPACE', 'GROUP_CHAT',或 'DM'
  • externalUserAllowed (可选):布尔值
  • spaceThreadingState (可选): 'THREADED_MESSAGES', 'GROUPED_MESSAGES',或 'UNTHREADED_MESSAGES'

update_space

更新空间设置。

  • spaceName (必填)
  • displayName (可选)
  • spaceDetails (可选):描述文本

delete_space

删除空格。

  • spaceName (必填)

setup_space

在一个操作中创建空间和添加成员。

  • displayName (必填)
  • memberEmails (必填):电子邮件地址数组

find_direct_message

查找用户的现有DM。

  • userName (必填):例如。, 'users/USER_ID'

complete_import_space

完成空间导入。

  • spaceName (必填)
Messages (6 tools)

list_消息

在空间中列出邮件。

  • spaceName (必填)
  • pageSize (可选):最大结果(默认值:50)

get_message

获取特定消息。

  • messageName (必填):例如。, 'spaces/SPACE_ID/messages/MESSAGE_ID'

send_message

发送消息。

  • spaceName (必填)
  • text (必填)
  • threadKey (可选):线程标识符

回复_回复_消息

回复一条消息。

  • spaceName (必填)
  • messageId (必填)
  • text (必填)

update_message

编辑消息。

  • messageName (必填)
  • text (必填)

删除消息

删除消息。

  • messageName (必填)
Members (5 tools)

list_members

列出空间成员。

  • spaceName (必填)
  • pageSize (可选):最大结果(默认值:100)

get_member

获取会员详细信息。

  • memberName (必填):例如。, 'spaces/SPACE_ID/members/MEMBER_ID'

create_member

添加成员。

  • spaceName (必填)
  • memberName (必填):例如。, 'users/USER_ID'
  • role (可选): 'ROLE_MEMBER' 或 'ROLE_MANAGER' (默认值: 'ROLE_MEMBER')

update_member

更改成员角色。

  • memberName (必填)
  • role (必填): 'ROLE_MEMBER' 或 'ROLE_MANAGER'

delete_member

删除成员。

  • memberName (必填)
Reactions (3 tools)

create_reaction

添加表情符号反应。

  • messageName (必填)
  • emoji (必填):例如。, '👍' 或 ':thumbsup:'

list_reactions

列出消息中的所有反应。

  • messageName (必填)
  • pageSize (可选):最大结果(默认值:100)

delete_reaction

消除反应。

  • reactionName (必填):例如。, 'spaces/SPACE_ID/messages/MESSAGE_ID/reactions/REACTION_ID'
Attachments & Events (3 tools)

获取附件

获取附件详细信息。

  • attachmentName (必填):例如。, 'spaces/SPACE_ID/messages/MESSAGE_ID/attachments/ATTACHMENT_ID'

get_space_event

获取事件详细信息。

  • eventName (必填):例如。, 'spaces/SPACE_ID/spaceEvents/EVENT_ID'

list_space_events

列出空间事件。

  • spaceName (必填)
  • pageSize (可选):最大结果(默认值:100)
  • filter (可选):筛选表达式

故障排除

找不到令牌文件 运行: node scripts/authenticate.js

无效凭证 确保 credentials.json 来自启用了聊天API的谷歌云项目

范围更改后的身份验证错误 删除 token.json 并重新运行身份验证

API错误 验证Google Chat API是否已在您的Google Cloud项目中启用

安全

  • 永不承诺 credentials.json 或 token.json 到版本控制
  • 两个文件都在 .gitignore 默认情况下
  • 将令牌视为密码-它们授予对您的Google聊天数据的完全访问权限

许可证

麻省理工学院