Google Drive ACTION
Search Files
Search for files and folders in Google Drive using the Drive query language. This is the primary tool for finding files, folders, spreadsheets, forms, and any other Drive item. Returns an object with files (each with its ID, name, and MIME type), count, nextPageToken, isComplete, and incompleteSearch.
Query syntax — pass a Drive search query string. Examples:
- Find by name:
name contains 'Budget' - Exact name match:
name = 'Q4 Report' - Folders only:
mimeType = 'application/vnd.google-apps.folder' - Google Docs:
mimeType = 'application/vnd.google-apps.document' - Spreadsheets:
mimeType = 'application/vnd.google-apps.spreadsheet' - Files in a folder:
'FOLDER_ID' in parents - Not trashed:
trashed = false - Modified after date:
modifiedTime > '2024-01-01T00:00:00' - Combine with AND:
name contains 'Report' and mimeType = 'application/vnd.google-apps.document' - Owner filter:
'user@example.com' in owners
When the user says 'my files', use Get User Details first to get the owner email. To scope to a shared drive, pass the driveId from List Shared Drives.
Pagination — each call returns at most maxResults files (default 100). If isComplete is false, more matches exist: call again with pageToken set to the returned nextPageToken and the same query, driveId, and includeItemsFromAllDrives to get the next batch. When isComplete is true, nextPageToken is null and there are no more pages. If incompleteSearch is true, Drive did not search every drive, so matches may be missing and paging will not recover them — narrow the search with driveId. Prefer narrowing the query over paging through many batches. See the documentation
- Action
- Read only
- OAuth
- SDK
- MCP
IMPLEMENTATION
Call this tool
Connect a user's Google Drive account once, then configure and run Search Files from your backend or agent.
import { PipedreamClient } from "@pipedream/sdk"
const pd = new PipedreamClient({
projectId: process.env.PIPEDREAM_PROJECT_ID!,
clientId: process.env.PIPEDREAM_CLIENT_ID!,
clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
projectEnvironment: "production",
})
const result = await pd.actions.run({
id: "google_drive-search-files",
externalUserId: "{external_user_id}", // any stable ID for this user in your system
configuredProps: {
google_drive: { authProvisionId: "apn_xxxxxxx" },
query: "Query",
driveId: "Drive ID",
},
})
console.log(result)curl -X POST https://api.pipedream.com/v1/connect/{project_id}/actions/run \
-H "Content-Type: application/json" \
-H "X-PD-Environment: production" \
-H "Authorization: Bearer {access_token}" \
-d '{
"external_user_id": "{external_user_id}",
"id": "google_drive-search-files",
"configured_props": {
"google_drive": { "authProvisionId": "apn_xxxxxxx" },
"query": "Query",
"driveId": "Drive ID"
}
}'// accessToken: mint a short-lived token with the Connect SDK — see the MCP guide
const transport = new StreamableHTTPClientTransport(
new URL("https://remote.mcp.pipedream.net/v3"),
{
requestInit: {
headers: {
Authorization: `Bearer ${accessToken}`,
"x-pd-project-id": "{project_id}",
"x-pd-environment": "production",
"x-pd-external-user-id": "{external_user_id}", // any stable ID for this user in your system
"x-pd-app-slug": "google_drive",
},
},
},
)
const mcp = new Client({ name: "my-agent", version: "1.0.0" })
await mcp.connect(transport)
const { tools } = await mcp.listTools()
// listTools() hands your model this tool's input schema, so it can
// fill the arguments itself:
const result = await mcp.callTool({
name: "google_drive-search-files",
arguments: {
query: "Query",
driveId: "Drive ID",
},
})SCHEMA
Inputs
Pipedream supplies the connected account. Your application provides the operation-specific values below. Dynamic inputs are resolved against that user's account.
| Property | Type | Description |
|---|---|---|
query Query | string | A Drive search query string. See the tool description for syntax examples. Conditions combine with and, e.g. name contains 'keyword' and mimeType = 'application/pdf' and 'FOLDER_ID' in parents and trashed = false. Use Find Folder to get a FOLDER_ID for the in parents filter, and Get User Details to get an owner email for the in owners filter. Required |
driveId Drive ID | string | Optional. Scope the search to a specific shared drive, e.g. 0AIxaGWpaZzyZUk9PVA. Use List Shared Drives to find available drive IDs. Omit to search across all drives (My Drive and shared drives). Example: 0AExampleDriveId. Optional |
includeItemsFromAllDrives Include Items From All Drives | boolean | If true, search the files the user has access to plus the shared drives the user is a member of; if false, search only the user's own files (files owned by or shared with the user), excluding shared drive contents. Ignored when driveId is set. Defaults to true. Example: true. Optional |
maxResults Max Results | integer | The maximum number of files to return in this call. Defaults to 100. If more matches exist, the response has isComplete: false and a nextPageToken to pass as pageToken on the next call. Example: 25. Optional |
pageToken Page Token | string | Optional. The nextPageToken from a previous Search Files response, to continue where it stopped. Use the same query, driveId, and includeItemsFromAllDrives as that call. Omit to start from the first result. Example: ~!!~AI9FV7Q.... Optional |
REFERENCE
Tool details
Behavior hints are published with the component in the Pipedream registry and surface as MCP tool annotations, so an agent can reason about a tool before it calls it.
- Registry key
- google_drive-search-files
- Version
- 1.0.3
- App
- Google Drive
- Authentication
- OAuth
- Read-only
- Yes
- Destructive
- No
- Open world
- Yes
- Source
- View on GitHub ↗