工具:search_files
调用此工具,以根据结构化查询搜索云端硬盘文件。
query 字段需要使用查询搜索运算符。
查询字符串包含以下三个部分:query_term operator values,其中:
query_term是要搜索的查询字词或字段。operator指定查询字词的条件。values是用于过滤搜索结果的特定值。
查询字词
下表列出了有效的查询字词及其说明:
| 查询字词 | 有效运算符 | 用量 |
|---|---|---|
title |
contains、=、!= |
文件的标题。用英文单引号 (') 括起来。使用 \' 转义查询中的英文单引号,例如 'Valentine\'s Day'。 |
fullText |
contains |
title 或文件内容中的文本是否匹配。用英文单引号 (') 括起来。使用 \' 转义查询中的英文单引号,例如 'Valentine\'s Day'。 |
mimeType |
contains、=、!= |
文件的 MIME 类型。用英文单引号 (') 括起来。使用 \' 转义查询中的英文单引号,例如 'Valentine\'s Day'。 |
modifiedTime |
<=、<、=、!=、>、>= |
上次修改文件的日期。RFC 3339 格式,默认时区为 UTC,例如 2012-06-04T12:00:00-08:00。类型为 date 的字段不可比较。 |
viewedByMeTime |
<=、<、=、!=、>、>= |
用户上次查看文件的日期。RFC 3339 格式,默认时区为 UTC,例如 2012-06-04T12:00:00-08:00。类型为 date 的字段不可比较。 |
parentId |
=、!= |
父级是否等于指定的 ID。可以使用 root 指定用户的“我的云端硬盘”,该云端硬盘充当用户的主要层次结构。 |
owner |
=、!= |
文件所有者。可以使用 me 指定发出请求的用户。 |
sharedWithMe |
=、!= |
用户“与我共享”集合中的文件。所有文件用户都在文件的访问控制列表 (ACL) 中。可以是 true 或 false。 |
createdTime |
<=、<、=、!=、>、>= |
文件创建日期。使用 RFC 3339 格式,默认时区为 UTC,例如 2012-06-04T12:00:00-08:00。 |
查询运算符
下表列出了有效的查询运算符:
| 运算符 | 用量 |
|---|---|
contains |
一个字符串的内容存在于另一个字符串中。 |
= |
字符串或布尔值的内容等于另一个字符串或布尔值的内容。 |
!= |
字符串或布尔值的内容不等于另一个字符串或布尔值的内容。 |
< |
一个值小于另一个值。 |
<= |
一个值小于或等于另一个值。 |
> |
一个值大于另一个值。 |
>= |
一个值大于或等于另一个值。 |
in |
集合中包含一个元素。 |
and |
返回与两个查询都匹配的项。 |
or |
返回与任一查询匹配的项。 |
not |
否定搜索查询。 |
has |
集合包含与参数匹配的元素。 |
以下是一些查询示例:
title contains 'hello' and title contains 'goodbye'modifiedTime > '2024-01-01T00:00:00Z' and (mimeType contains 'image/' or mimeType contains 'video/')parentId = '1234567'fullText contains 'hello'owner = 'test@example.org'sharedWithMe = trueowner = 'me'(适用于用户拥有的文件)
利用 next_page_token 对结果进行分页。空响应表示没有结果或没有更多结果可返回。
以下示例演示了如何使用 curl 调用 search_files MCP 工具。
| Curl 请求 |
|---|
curl --location 'https://drivemcp.googleapis.com/mcp' \ --header 'content-type: application/json' \ --header 'accept: application/json, text/event-stream' \ --data '{ "method": "tools/call", "params": { "name": "search_files", "arguments": { // provide these details according to the tool MCP specification } }, "jsonrpc": "2.0", "id": 1 }' |
输入架构
搜索文件的请求。
SearchFilesRequest
| JSON 表示法 |
|---|
{ "query": string, "pageToken": string "pageSize": integer "excludeContentSnippets": boolean } |
| 字段 | |
|---|---|
query |
搜索查询。 |
联合字段
|
|
pageToken |
用于分页的页面令牌。 |
联合字段
|
|
pageSize |
每页返回的最大文件数。 |
联合字段
|
|
excludeContentSnippets |
如果为 true,则响应中将排除内容摘要。 |
输出架构
搜索文件的响应。
SearchFilesResponse
| JSON 表示法 |
|---|
{
"files": [
{
object ( |
| 字段 | |
|---|---|
files[] |
仅限输出。文件列表。 |
联合字段
|
|
nextPageToken |
下一页令牌。 |
文件
| JSON 表示法 |
|---|
{ "id": string, "title": string, "parentId": string, "mimeType": string "fileSize": string "description": string "fileExtension": string "contentSnippet": string "viewUrl": string "sharedWithMeTime": string "createdTime": string "modifiedTime": string "viewedByMeTime": string "owner": string } |
| 字段 | |
|---|---|
id |
所提取文件的 ID。 |
title |
文件的标题。 |
parentId |
文件的父级的(可选)ID。 |
联合字段
|
|
mimeType |
文件的 MIME 类型。 |
联合字段
|
|
fileSize |
文件的大小(以字节为单位)。 |
联合字段
|
|
description |
文件的说明。 |
联合字段
|
|
fileExtension |
文件的原始文件扩展名,仅针对内容存储在云端硬盘中的文件填充此字段。 |
联合字段
|
|
contentSnippet |
有关文件内容的生成摘要。 |
联合字段
|
|
viewUrl |
用于查看文件的网址。 |
联合字段
|
|
sharedWithMeTime |
与请求者共享文件的时间。 采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不进行“Z”归一化处理的偏差时间也是可以接受的。示例: |
联合字段
|
|
createdTime |
文件创建时间。 采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不进行“Z”归一化处理的偏差时间也是可以接受的。示例: |
联合字段
|
|
modifiedTime |
文件最近一次修改的时间。 采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不进行“Z”归一化处理的偏差时间也是可以接受的。示例: |
联合字段
|
|
viewedByMeTime |
请求者最近一次查看文件的时间。 采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不进行“Z”归一化处理的偏差时间也是可以接受的。示例: |
联合字段
|
|
owner |
文件所有者的电子邮件地址。 |
时间戳
| JSON 表示法 |
|---|
{ "seconds": string, "nanos": integer } |
| 字段 | |
|---|---|
seconds |
表示世界协调时间 (UTC) 的秒数(从 Unix 纪元 1970-01-01T00:00:00Z 开始算起)。必须介于 -62135596800 和 253402300799 之间(含边界值),对应于 0001-01-01T00:00:00Z 到 9999-12-31T23:59:59Z。 |
nanos |
秒数的非负小数部分(以纳秒为单位)。此字段是时长的纳秒部分,而不是秒的替代值。对于含小数部分的负秒数,仍必须包含按时间递升的非负纳秒值。必须介于 0 和 999,999,999 之间(含边界值)。 |
工具注释
破坏性提示:❌ | 等幂性提示:✅ | 只读提示:✅ | 开放世界提示:❌