MCP Tools Reference: chatmcp.googleapis.com

工具:search_conversations

按显示名称或参与者搜索 Google Chat 对话(已命名的聊天室、私信 (DM) 或群聊),以查找对话 ID。

此工具搜索的是对话元数据,而不是消息内容。如需在消息记录中搜索或按关键字/发件人/时间戳查找消息,请使用 search_messages

如果仅提供 participants,此工具会查找包含指定参与者和调用用户的 1 对 1 私信(如果提供了一位参与者)或群聊(如果提供了多位参与者)。

如果仅提供 query,此工具会搜索对话,其中查询是不区分大小写的对话显示名称子字符串。

如果同时提供了 participantsquery,此工具会按参与者查找对话,然后按显示名称过滤对话。

如果未提供 participantsquery,此工具会列出调用用户所属的所有对话。

此工具仅列出调用用户所属的对话。

返回包含对话 ID(格式:spaces/{space})、显示名称和对话类型的对话对象列表。

重要提示:空 conversations 列表并不意味着没有更多结果。如果存在 next_page_token,则可以提取更多页面。如果您获得一个空列表但存在 next_page_token,请询问用户是否应继续搜索。

以下代码示例展示了如何使用 curl 调用 search_conversations MCP 工具。

Curl 请求
curl --location 'https://chatmcp.googleapis.com/mcp/v1' \
--header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
--header 'content-type: application/json' \
--header 'accept: application/json, text/event-stream' \
--data '{
  "method": "tools/call",
  "params": {
    "name": "search_conversations",
    "arguments": {
      // provide these details according to the tool MCP specification
    }
  },
  "jsonrpc": "2.0",
  "id": 1
}'

输入架构

SearchConversationsRequest

JSON 表示法
{
  "spaceNameQuery": string,
  "pageSize": integer,
  "pageToken": string,
  "participants": [
    string
  ]
}
字段
spaceNameQuery

string

可选。要在聊天室显示名称中搜索的文本(不区分大小写的子字符串匹配)。

pageSize

integer

可选。要返回的聊天室数量上限。服务返回的值可能小于此值。如果未指定,则最多返回 20 个聊天室。最大值为 1,000;大于 1,000 的值将被强制转换为 1,000。

pageToken

string

可选。从之前的 search_conversations 调用接收的页面令牌。利用其进行后续页面检索。

participants[]

string

可选。用于过滤对话的参与者电子邮件地址列表,不包括调用者。

输出架构

包含匹配对话列表的响应。

SearchConversationsResponse

JSON 表示法
{
  "conversations": [
    {
      object (Conversation)
    }
  ],
  "nextPageToken": string
}
字段
conversations[]

object (Conversation)

符合搜索条件的对话对象列表。每个对话都包含 conversation_id(格式:spaces/{space})、display_name、conversation_type 和 last_active_timestamp。

nextPageToken

string

可作为 page_token 发送并用于检索下一页的令牌。如果省略此字段,则不存在后续页面。

话题

JSON 表示法
{
  "conversationId": string,
  "displayName": string,
  "conversationType": enum (ConversationType),
  "lastActiveTimestamp": string
}
字段
conversationId

string

对话的 ID(例如“spaces/AAAAAAAAA”)。

displayName

string

对话的显示名称。

conversationType

enum (ConversationType)

对话的类型(DIRECT_MESSAGE、GROUP_CHAT 或 NAMED_SPACE)。

lastActiveTimestamp

string (Timestamp format)

对话的上次活动时间,采用 ISO 8601 格式。

采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不进行“Z”归一化处理的偏差时间也是可以接受的。示例:"2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z""2014-10-02T15:01:23+05:30"

时间戳

JSON 表示法
{
  "seconds": string,
  "nanos": integer
}
字段
seconds

string (int64 format)

表示世界协调时间 (UTC) 的秒数(从 Unix 纪元 1970-01-01T00:00:00Z 开始算起)。必须介于 -62135596800 和 253402300799 之间(含边界值),对应于 0001-01-01T00:00:00Z 到 9999-12-31T23:59:59Z。

nanos

integer

秒数的非负小数部分(以纳秒为单位)。此字段是时长的纳秒部分,而不是秒的替代值。对于含小数部分的负秒数,仍必须包含按时间递升的非负纳秒值。必须在 0 到 999,999,999 之间(含边界值)。

ConversationType

定义对话的类型。

枚举
CONVERSATION_TYPE_UNSPECIFIED 未指定。
NAMED_SPACE 已命名的聊天室。
GROUP_CHAT 3 人或更多人之间的群聊。
DIRECT_MESSAGE 两个人之间或一个人与 Chat 应用之间的私信。

工具注释

工具注释会发送给 MCP 客户端,用于描述给定工具的基本风险。大多数客户端会将这些提示视为不受信任,但它们可用于确定何时向用户发送确认提示。

除了标题字符串之外,以下布尔值提示的定义如下:

  • readOnlyHint:如果为 true,则表示该工具不会修改其环境。默认值:false。
  • destructiveHint:如果为 true,则表示该工具可以执行破坏性操作。如果为 false,则表示该工具只能执行添加操作。默认值:true。
  • idempotentHint:如果为 true,则表示使用相同的参数重复调用该工具不会对其环境产生额外影响。默认值:false。
  • openWorldHint:如果为 true,则表示该工具可以与外部实体的“开放世界”进行交互。如果为 false,则表示该工具只能与内部实体进行交互。例如,网络搜索工具属于开放世界,而内存工具则不属于开放世界。

破坏性提示:❌ | 等幂性提示:✅ | 只读提示:✅ | 开放世界提示:❌

授权范围

需要以下 OAuth 范围之一:

  • https://www.googleapis.com/auth/chat.memberships.readonly
  • https://www.googleapis.com/auth/chat.spaces
  • https://www.googleapis.com/auth/chat.spaces.readonly