MCP Tools Reference: dataform.googleapis.com

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

string

Required. The workspace's name.

pageSize

integer

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

string

Optional. Page token received from a previous SearchFilesRequest call. Provide this to retrieve the subsequent page.

When paginating, all other parameters provided to SearchFilesRequest, with the exception of page_size, must match the call that provided the page token.

filter

string

Optional. Optional filter for the returned list in filtering format. Filtering is only currently supported on the path field. See https://google.aip.dev/160 for details.

Output Schema

Client-facing representation of a file search response.

SearchFilesResponse

JSON representation
{
  "searchResults": [
    {
      object (SearchResult)
    }
  ],
  "nextPageToken": string
}
Fields
searchResults[]

object (SearchResult)

List of matched results.

nextPageToken

string

Optional. A token, which can be sent as page_token to retrieve the next page. If this field is omitted, there are no subsequent pages.

SearchResult

JSON representation
{

  // Union field entry can be only one of the following:
  "file": {
    object (FileSearchResult)
  },
  "directory": {
    object (DirectorySearchResult)
  }
  // End of list of possible types for union field entry.
}
Fields
Union field entry. The entry's contents. entry can be only one of the following:
file

object (FileSearchResult)

Details when search result is a file.

directory

object (DirectorySearchResult)

Details when search result is a directory.

FileSearchResult

JSON representation
{
  "path": string
}
Fields
path

string

File system path relative to the workspace root.

DirectorySearchResult

JSON representation
{
  "path": string
}
Fields
path

string

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: ❌