Tool: search_files
Find files and directories in a Dataform workspace that match a search filter.
Use this tool instead of recursively listing directories with the query_directory_contents tool when locating a file by name or extension across a large repository.
The workspace parameter value must be in the format projects/{project_id}/locations/{location}/repositories/{repository}/workspaces/{workspace}.
The filter parameter value restricts the results. Filtering is only supported on the path field (for example, path="*.sqlx" or path="definitions/model.sqlx").
The following code sample shows how to use curl to call the search_files MCP tool.
| Curl Request |
|---|
curl --location 'https://dataform.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 MCP tool specification. } }, "jsonrpc": "2.0", "id": 1 }' |
Input Schema
Configuration containing file search request parameters.
SearchFilesRequest
| JSON representation |
|---|
{ "workspace": string, "pageSize": integer, "pageToken": string, "filter": string } |
| Fields | |
|---|---|
workspace |
Required. The workspace's name. |
pageSize |
Optional. Maximum number of search results to return. The server may return fewer items than requested. If unspecified, the server will pick an appropriate default. |
pageToken |
Optional. Page token received from a previous When paginating, all other parameters provided to |
filter |
Optional. Optional filter for the returned list in filtering format. Filtering is only currently supported on the |
Output Schema
Client-facing representation of a file search response.
SearchFilesResponse
| JSON representation |
|---|
{
"searchResults": [
{
object ( |
| Fields | |
|---|---|
searchResults[] |
List of matched results. |
nextPageToken |
Optional. A token, which can be sent as |
SearchResult
| JSON representation |
|---|
{ // Union field |
| Fields | |
|---|---|
Union field entry. The entry's contents. entry can be only one of the following: |
|
file |
Details when search result is a file. |
directory |
Details when search result is a directory. |
FileSearchResult
| JSON representation |
|---|
{ "path": string } |
| Fields | |
|---|---|
path |
File system path relative to the workspace root. |
DirectorySearchResult
| JSON representation |
|---|
{ "path": string } |
| Fields | |
|---|---|
path |
File system path relative to the workspace root. |
Tool Annotations
Tool annotations are sent to MCP clients to describe the basic risk of a given tool. Most clients treat these hints as untrusted, but they can be used to decide when a confirmation prompt might be sent to a user.
Along with the title string, the following boolean hints are defined as follows:
readOnlyHint: If true, the tool doesn't modify its environment. Default: false.destructiveHint: If true, then the tool can perform destructive actions. If false, then the tool can only perform additive actions. Default: true.idempotentHint: If true, then calling the tool repeatedly with the same arguments will have no additional effect on its environment. Default: false.openWorldHint: If true, then the tool can interact with an 'open world' of external entities. If false, then the tool can only interact with internal entities. For example, a web search tool would be open world, while a memory tool would not be open world.
Destructive Hint: ❌ | Idempotent Hint: ✅ | Read Only Hint: ✅ | Open World Hint: ❌