Tool: search_files
Search for Drive files using a structured query (syntax: query_term operator values). Combine clauses with and, or, not, and parentheses. String values must be single-quoted; escape embedded quotes as \'.
Query terms & operators:
title(ops: contains, =, !=) — file titlefullText(ops: contains) — title or body textmimeType(ops: contains, =, !=) — MIME typemodifiedTime,viewedByMeTime,createdTime(ops:<=,<,=,!=,>,>=). Use RFC 3339 UTC, e.g.,2012-06-04T12:00:00-08:00. Date types not comparable.parentId(ops:=,!=). Use'root'for the user's "My Drive".owner(ops:=,!=). Use'me'for the requesting user.sharedWithMe(ops:=,!=). Values:trueorfalse.
Other operators: and, or, not.
Examples:
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'(for files owned by the user)
Use next_page_token to paginate. An empty response means no more results.
The following sample demonstrate how to use curl to invoke the search_files MCP tool.
| Curl Request |
|---|
curl --location 'https://drivemcp.googleapis.com/mcp/v1' \ --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's MCP specification } }, "jsonrpc": "2.0", "id": 1 }' |
Input Schema
Request to search files.
SearchFilesRequest
| JSON representation |
|---|
{ "query": string, "pageToken": string "pageSize": integer "excludeContentSnippets": boolean } |
| Fields | |
|---|---|
query |
The search query. |
Union field
|
|
pageToken |
The page token to use for pagination. |
Union field
|
|
pageSize |
The maximum number of files to return in each page. |
Union field
|
|
excludeContentSnippets |
If true, the content snippet will be excluded from the response. |
Output Schema
Response to search files.
SearchFilesResponse
| JSON representation |
|---|
{
"files": [
{
object ( |
| Fields | |
|---|---|
files[] |
Output only. The list of files. |
Union field
|
|
nextPageToken |
The next page token. |
File
| JSON representation |
|---|
{ "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 "canAddChildren": boolean } |
| Fields | |
|---|---|
id |
The id of the file that was fetched. |
title |
The title of the file. |
parentId |
The (optional) id of the parent of the file. |
Union field
|
|
mimeType |
The mime type of the file. |
Union field
|
|
fileSize |
The size in bytes of the file. |
Union field
|
|
description |
The description of the file. |
Union field
|
|
fileExtension |
The original file extension of the file, this is only populated for files with content stored in Drive. |
Union field
|
|
contentSnippet |
Generated snippet about the content of the file. |
Union field
|
|
viewUrl |
The URL to view the file. |
Union field
|
|
sharedWithMeTime |
The time that the file was shared with the requester. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
Union field
|
|
createdTime |
The time that the file was created. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
Union field
|
|
modifiedTime |
The most recent time at which the file was modified. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
Union field
|
|
viewedByMeTime |
The most recent time at which the file was viewed by requester. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
Union field
|
|
owner |
The email address of the owner of the file. |
Union field
|
|
canAddChildren |
Whether the requester can add children to this folder. This is always false for non-folder types. |
Timestamp
| JSON representation |
|---|
{ "seconds": string, "nanos": integer } |
| Fields | |
|---|---|
seconds |
Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be between -62135596800 and 253402300799 inclusive (which corresponds to 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z). |
nanos |
Non-negative fractions of a second at nanosecond resolution. This field is the nanosecond portion of the duration, not an alternative to seconds. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be between 0 and 999,999,999 inclusive. |
Tool Annotations
Destructive Hint: ❌ | Idempotent Hint: ✅ | Read Only Hint: ✅ | Open World Hint: ❌