MCP Tools Reference: chatmcp.googleapis.com

工具:mark_as_read

将 Google Chat 对话和消息串标记为已读(针对调用用户)。

系统会将调用用户的读取状态更新为相应对话和/或线程中最新消息的时间。

前提条件:

  • conversationIds(格式:spaces/{space})和 threadIds(格式:spaces/{space}/threads/{thread})中至少有一个不得为空。
  • 每次调用最多支持批量更新 10 个对话 ID 和 10 个线程 ID。

部分失败模型:

  • 该请求会单独处理每个对话/线程,并且不会以原子方式失败。
  • 响应包含 failedConversationReadStatesfailedThreadReadStates 映射,其中映射键是请求中失败项的从 0 开始的索引,值是错误状态。
  • 如果失败映射为空,则表示所有请求的对话/消息串都已成功标记为已读。

以下代码示例展示了如何使用 curl 调用 mark_as_read 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": "mark_as_read",
    "arguments": {
      // provide these details according to the tool MCP specification
    }
  },
  "jsonrpc": "2.0",
  "id": 1
}'

输入架构

MarkAsReadRequest

JSON 表示法
{
  "conversationIds": [
    string
  ],
  "threadIds": [
    string
  ]
}
字段
conversationIds[]

string

可选。要更新调用用户的读取状态的对话 ID 列表。必须至少提供 conversation_idsthread_ids 中的一个。支持最多 10 项的批量更新。格式:spaces/{space}

threadIds[]

string

可选。要更新调用用户的读取状态的线程 ID 列表。必须至少提供 conversation_idsthread_ids 中的一个。支持最多 10 项的批量更新。格式:spaces/{space}/threads/{thread}

输出架构

MarkAsReadResponse

JSON 表示法
{
  "failedConversationReadStates": {
    integer: {
      object (Status)
    },
    ...
  },
  "failedThreadReadStates": {
    integer: {
      object (Status)
    },
    ...
  }
}
字段
failedConversationReadStates

map (key: integer, value: object (Status))

失败的对话读取状态列表。键是请求中对话的索引,值是错误状态。失败的对话读取状态的映射。键是 conversation_ids 请求列表中对话的从 0 开始的索引,值是错误状态。如果所有对话都成功,则此映射为空。

包含一系列 "key": value 对的对象。示例:{ "name": "wrench", "mass": "1.3kg", "count": "3" }

failedThreadReadStates

map (key: integer, value: object (Status))

失败的线程读取状态的映射。键是 thread_ids 请求列表中线程的从 0 开始的索引,值是错误状态。如果所有线程都成功,则此映射为空。

包含一系列 "key": value 对的对象。示例:{ "name": "wrench", "mass": "1.3kg", "count": "3" }

FailedConversationReadStatesEntry

JSON 表示法
{
  "key": integer,
  "value": {
    object (Status)
  }
}
字段
key

integer

value

object (Status)

状态

JSON 表示法
{
  "code": integer,
  "message": string,
  "details": [
    {
      "@type": string,
      field1: ...,
      ...
    }
  ]
}
字段
code

integer

状态代码,应为 google.rpc.Code 的枚举值。

message

string

面向开发者的错误消息(应采用英语)。任何向用户显示的错误消息都应进行本地化并通过 google.rpc.Status.details 字段发送,或者由客户端进行本地化。

details[]

object

包含错误详细信息的消息列表。有一组通用的消息类型可供 API 使用。

可以包含任意类型字段的对象。附加字段 "@type" 包含用于标示相应类型的 URI。示例:{ "id": 1234, "@type": "types.example.com/standard/id" }

不限

JSON 表示法
{
  "typeUrl": string,
  "value": string
}
字段
typeUrl

string

通过 URI 引用(由以斜杠结尾的前缀和完全限定的类型名称组成)标识序列化 Protobuf 消息的类型。

示例:type.googleapis.com/google.protobuf.StringValue

此字符串必须包含至少一个 / 字符,并且最后一个 / 后面的内容必须是规范形式的完全限定名,不含前导点。请勿在这些 URI 引用中写入方案,以免客户端尝试联系它们。

前缀是任意的,Protobuf 实现应仅剥离最后一个 / 之前(包括最后一个 /)的所有内容,以识别类型。type.googleapis.com/ 是某些旧版实现所需的常见默认前缀。此前缀并不表示类型的来源,包含该前缀的 URI 不应响应任何请求。

所有类型网址字符串都必须是合法的 URI 引用,并且(对于文本格式)还必须满足以下额外限制:引用的内容只能包含字母数字字符、百分号编码的转义字符以及以下集合中的字符(不包括外侧的反引号):/-.~_!$&()*+,;=。尽管我们允许使用百分比编码,但实现不应对其进行转义,以免与现有解析器混淆。例如,应拒绝 type.googleapis.com%2FFoo

Any 的原始设计中,曾考虑过在这些类型网址上启动类型解析服务的可能性,但 Protobuf 从未实现过此类服务,并且认为联系这些网址存在问题,可能会导致安全问题。不尝试联系人类型网址。

value

string (bytes format)

包含由 type_url 描述的类型的 Protobuf 序列化。

使用 base64 编码的字符串。

FailedThreadReadStatesEntry

JSON 表示法
{
  "key": integer,
  "value": {
    object (Status)
  }
}
字段
key

integer

value

object (Status)

工具注释

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

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

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

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

授权范围

需要以下 OAuth 范围之一:

  • https://www.googleapis.com/auth/chat.users.readstate