MCP Tools Reference: workspacemcp.googleapis.com

工具:search_corpus

根据提供的查询,在多个 Workspace 语料库(云端硬盘、Gmail、日历和 Chat)中执行搜索。

此工具是一种跨语料库搜索工具,默认情况下会搜索所有受支持的语料库(云端硬盘、Gmail、日历和 Chat)。如果用户的查询未指定特定语料库(例如,“我计划在 6 月份去哪里进行摄影散步?”),您必须先调用此跨语料库“search_corpus”工具,而不是调用“list_events”“search_threads”“list_threads”或“search_files”等特定工具。如果此工具未返回任何结果,您可以改用这些针对具体产品(单一语料库)的搜索工具。

请注意,如果用户在查询中指定了特定语料库(例如“搜索我电子邮件中的内容”),建议使用单语料库工具(例如 GmailTool),以便获得更集中的结果(如果有)。不过,此跨语料库搜索工具仍可用于这些查询,并且在没有特定工具可用时,应使用此工具。

此工具可以根据查询字符串过滤结果。跨语料库搜索不支持分页。请注意,如果 Gmail 邮件包含附件,这些附件不会作为单独的字段返回,而是直接包含在邮件摘要中。

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

Curl 请求
curl --location 'https://workspacemcp.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_corpus",
    "arguments": {
      // Provide these details according to the MCP tool specification.
    }
  },
  "jsonrpc": "2.0",
  "id": 1
}'

输入架构

WorkspaceToolService.SearchCorpus 的请求消息。

SearchCorpusRequest

JSON 表示法
{
  "query": string,
  "pageSize": integer,
  "pageToken": string
}
字段
query

string

必需。用户提供的原始查询字符串。

pageSize

integer

可选。目前已忽略。服务器最多返回服务器定义的结果数量。不支持分页。

pageToken

string

可选。目前已忽略。不支持分页。

输出架构

WorkspaceToolService.SearchCorpus 的响应消息。

SearchCorpusResponse

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

object (SearchResultItem)

通用搜索结果项的列表,每个结果项可能来自不同的语料库。

nextPageToken

string

目前始终为空。不支持分页。

SearchResultItem

JSON 表示法
{

  "driveResult": {
    object (DriveResult)
  },
  "gmailResult": {
    object (GmailResult)
  },
  "calendarResult": {
    object (CalendarResult)
  },
  "chatResult": {
    object (ChatResult)
  }
}
字段
联合字段 item_result。来自 Workspace 语料库的特定搜索结果。item_result 只能是下列其中一项:
driveResult

object (DriveResult)

来自 Google 云端硬盘的搜索结果。

gmailResult

object (GmailResult)

来自 Gmail 的搜索结果。

calendarResult

object (CalendarResult)

来自 Google 日历的搜索结果。

chatResult

object (ChatResult)

来自 Google Chat 的搜索结果。

DriveResult

JSON 表示法
{
  "itemId": string,
  "title": string,
  "mimeType": string,
  "viewUrl": string,
  "contentSnippet": string
}
字段
itemId

string

云端硬盘内容(例如文档、表格、演示文稿)的唯一标识符。

title

string

云端硬盘内容的标题。

mimeType

string

云端硬盘内容的 MIME 类型。

viewUrl

string

用于查看云端硬盘内容的网址。

contentSnippet

string

云端硬盘内容的内容摘要。

GmailResult

JSON 表示法
{
  "thread": {
    object (GmailThread)
  }
}
字段
thread

object (GmailThread)

与搜索查询匹配的会话。

GmailThread

JSON 表示法
{
  "threadId": string,
  "messages": [
    {
      object (GmailMessage)
    }
  ]
}
字段
threadId

string

Gmail 会话串的标识符。

messages[]

object (GmailMessage)

会话中的消息列表。

GmailMessage

JSON 表示法
{
  "messageId": string,
  "subject": string,
  "snippet": string,
  "sender": string,
  "recipients": [
    string
  ],
  "ccRecipients": [
    string
  ],
  "viewUrl": string
}
字段
messageId

string

Gmail 邮件的标识符。

subject

string

Gmail 邮件的主题。

snippet

string

Gmail 邮件的内容摘要。

sender

string

Gmail 邮件的发件人邮箱。

recipients[]

string

Gmail 邮件收件人的邮箱。

ccRecipients[]

string

Gmail 邮件的抄送收件人电子邮件地址。

viewUrl

string

用于查看 Gmail 邮件的网址。

CalendarResult

JSON 表示法
{
  "eventId": string,
  "title": string,
  "description": string,
  "calendarId": string,
  "viewUrl": string,
  "location": string,
  "start": {
    object (DateOrDateTime)
  },
  "end": {
    object (DateOrDateTime)
  }
}
字段
eventId

string

日历活动的唯一标识符。

title

string

日历活动的标题。

description

string

日历活动的说明。

calendarId

string

日历活动的日历 ID,即所有者的邮箱。

viewUrl

string

用于查看日历活动的网址。

location

string

表示日历活动的地点。

start

object (DateOrDateTime)

日历活动的开始时间(含边界值)。

end

object (DateOrDateTime)

日历活动的结束时间(不含此时间)。

DateOrDateTime

JSON 表示法
{
  "date": string,
  "dateTime": string,
  "timeZone": string
}
字段
date

string

采用 yyyy-mm-dd 格式的 ISO 8601 日期(例如 '2019-11-20')。

dateTime

string

ISO 8601 时间戳(例如 '2019-11-20T08:19:06-07:00')。

timeZone

string

采用 IANA 时区数据库格式的原始时区(例如 'America/Los_Angeles')。返回的 'date_time' 可能会采用不同的显示时区(例如查看者的当前时区)。

ChatResult

JSON 表示法
{
  "messages": [
    {
      object (ChatMessage)
    }
  ]
}
字段
messages[]

object (ChatMessage)

可归为同一对话的消息列表。

ChatMessage

JSON 表示法
{
  "id": {
    object (ChatMessageId)
  },
  "plaintextBody": string,
  "sender": {
    object (ChatUser)
  },
  "createTime": string,
  "threadedReply": boolean,
  "attachments": [
    {
      object (ChatAttachment)
    }
  ],
  "reactionSummaries": [
    {
      object (ChatReaction)
    }
  ],
  "viewUrl": string
}
字段
id

object (ChatMessageId)

邮件和会话的唯一标识符。

plaintextBody

string

邮件的纯文本正文。

sender

object (ChatUser)

消息的发件人。

createTime

string (Timestamp format)

消息的创建时间戳。

采用 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"。

threadedReply

boolean

消息是否为消息串回复。

attachments[]

object (ChatAttachment)

邮件中包含的附件。

reactionSummaries[]

object (ChatReaction)

消息中包含的表情符号回应摘要。

viewUrl

string

用于查看聊天消息的网址。

ChatMessageId

JSON 表示法
{
  "messageId": string,
  "threadId": string
}
字段
messageId

string

消息的资源名称。

threadId

string

此消息所属的会话。

ChatUser

JSON 表示法
{
  "userId": string,
  "displayName": string,
  "email": string,
  "chatUserType": enum (ChatUserType)
}
字段
userId

string

用户的唯一标识符。

displayName

string

用户的显示名称。

email

string

用户的邮箱。

chatUserType

enum (ChatUserType)

用户类型。

时间戳

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 之间(含边界值)。

ChatAttachment

JSON 表示法
{
  "attachmentId": string,
  "filename": string,
  "mimeType": string,
  "source": enum (Source)
}
字段
attachmentId

string

附件的资源名称。

filename

string

附件的名称。

mimeType

string

内容类型(MIME 类型)。

source

enum (Source)

附件的来源。

ChatReaction

JSON 表示法
{
  "emoji": string,
  "count": integer
}
字段
emoji

string

表情符号 Unicode 字符串或自定义表情符号名称。

count

integer

使用相关表情符号的回应总数。

ChatUserType

表示 Chat 用户类型的枚举。

枚举
CHAT_USER_TYPE_UNSPECIFIED 默认值。请勿使用。
CHAT_USER_TYPE_HUMAN 人类用户。
CHAT_USER_TYPE_BOT 机器人用户。

来源

附件的来源。

枚举
SOURCE_UNSPECIFIED Reserved.
DRIVE_FILE 该文件是 Google 云端硬盘文件。
UPLOADED_CONTENT 文件会上传到 Chat。

工具注释

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

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

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

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

授权范围

需要以下 OAuth 范围之一:

  • https://www.googleapis.com/auth/drive
  • https://www.googleapis.com/auth/drive.readonly
  • https://mail.google.com/
  • https://www.googleapis.com/auth/gmail.modify
  • https://www.googleapis.com/auth/gmail.readonly
  • https://www.googleapis.com/auth/calendar
  • https://www.googleapis.com/auth/calendar.readonly
  • https://www.googleapis.com/auth/chat.messages
  • https://www.googleapis.com/auth/chat.messages.readonly
  • https://www.googleapis.com/auth/chat.spaces.readonly
  • https://www.googleapis.com/auth/chat.memberships.readonly