MCP Tools Reference: ces.googleapis.com

Tool: list_tools

Lists tools in the given app.

The following sample demonstrate how to use curl to invoke the list_tools MCP tool.

Curl Request
                  
curl --location 'https://ces.[REGION].rep.googleapis.com/mcp' \
--header 'content-type: application/json' \
--header 'accept: application/json, text/event-stream' \
--data '{
  "method": "tools/call",
  "params": {
    "name": "list_tools",
    "arguments": {
      // provide these details according to the tool's MCP specification
    }
  },
  "jsonrpc": "2.0",
  "id": 1
}'
                

Input Schema

Request message for AgentService.ListTools.

ListToolsRequest

JSON representation
{
  "parent": string,
  "pageSize": integer,
  "pageToken": string,
  "filter": string,
  "orderBy": string
}
Fields
parent

string

Required. The resource name of the app to list tools from.

pageSize

integer

Optional. Requested page size. Server may return fewer items than requested. If unspecified, server will pick an appropriate default.

pageToken

string

Optional. The next_page_token value returned from a previous list AgentService.ListTools call.

filter

string

Optional. Filter to be applied when listing the tools. Use "include_system_tools=true" to include system tools in the response. See https://google.aip.dev/160 for more details.

orderBy

string

Optional. Field to sort by. Only "name" and "create_time" is supported. See https://google.aip.dev/132#ordering for more details.

Output Schema

Response message for AgentService.ListTools.

ListToolsResponse

JSON representation
{
  "tools": [
    {
      object (Tool)
    }
  ],
  "nextPageToken": string
}
Fields
tools[]

object (Tool)

The list of tools.

nextPageToken

string

A token that can be sent as ListToolsRequest.page_token to retrieve the next page. Absence of this field indicates there are no subsequent pages.

Tool

JSON representation
{
  "name": string,
  "displayName": string,
  "executionType": enum (ExecutionType),
  "createTime": string,
  "updateTime": string,
  "etag": string,
  "generatedSummary": string,
  "toolFakeConfig": {
    object (ToolFakeConfig)
  },

  // Union field tool_type can be only one of the following:
  "clientFunction": {
    object (ClientFunction)
  },
  "openApiTool": {
    object (OpenApiTool)
  },
  "googleSearchTool": {
    object (GoogleSearchTool)
  },
  "connectorTool": {
    object (ConnectorTool)
  },
  "dataStoreTool": {
    object (DataStoreTool)
  },
  "pythonFunction": {
    object (PythonFunction)
  },
  "mcpTool": {
    object (McpTool)
  },
  "fileSearchTool": {
    object (FileSearchTool)
  },
  "systemTool": {
    object (SystemTool)
  },
  "widgetTool": {
    object (WidgetTool)
  }
  // End of list of possible types for union field tool_type.
}
Fields
name

string

Identifier. The unique identifier of the tool. Format: - projects/{project}/locations/{location}/apps/{app}/tools/{tool} for

projects/{project}/locations/{location}/apps/{app}/toolsets/{toolset}/tools/{tool} for tools retrieved from a toolset. These tools are dynamic and output-only, they cannot be referenced directly where a tool is expected.

displayName

string

Output only. The display name of the tool, derived based on the tool's type. For example, display name of a [ClientFunction][Tool.ClientFunction] is derived from its name property.

executionType

enum (ExecutionType)

Optional. The execution type of the tool.

createTime

string (Timestamp format)

Output only. Timestamp when the tool 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: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".

updateTime

string (Timestamp format)

Output only. Timestamp when the tool was last updated.

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: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".

etag

string

Etag used to ensure the object hasn't changed during a read-modify-write operation. If the etag is empty, the update will overwrite any concurrent changes.

generatedSummary

string

Output only. If the tool is generated by the LLM assistant, this field contains a descriptive summary of the generation.

toolFakeConfig

object (ToolFakeConfig)

Optional. Configuration for tool behavior in fake mode.

Union field tool_type. The type of the tool. tool_type can be only one of the following:
clientFunction

object (ClientFunction)

Optional. The client function.

openApiTool

object (OpenApiTool)

Optional. The open API tool.

googleSearchTool

object (GoogleSearchTool)

Optional. The google search tool.

connectorTool

object (ConnectorTool)

Optional. The Integration Connector tool.

dataStoreTool

object (DataStoreTool)

Optional. The data store tool.

pythonFunction

object (PythonFunction)

Optional. The python function tool.

mcpTool

object (McpTool)

Optional. The MCP tool. An MCP tool cannot be created or updated directly and is managed by the MCP toolset.

fileSearchTool

object (FileSearchTool)

Optional. The file search tool.

systemTool

object (SystemTool)

Optional. The system tool.

widgetTool

object (WidgetTool)

Optional. The widget tool.

ClientFunction

JSON representation
{
  "name": string,
  "description": string,
  "parameters": {
    object (Schema)
  },
  "response": {
    object (Schema)
  }
}
Fields
name

string

Required. The function name.

description

string

Optional. The function description.

parameters

object (Schema)

Optional. The schema of the function parameters.

response

object (Schema)

Optional. The schema of the function response.

Schema

JSON representation
{
  "type": enum (Type),
  "properties": {
    string: {
      object (Schema)
    },
    ...
  },
  "required": [
    string
  ],
  "description": string,
  "items": {
    object (Schema)
  },
  "nullable": boolean,
  "uniqueItems": boolean,
  "prefixItems": [
    {
      object (Schema)
    }
  ],
  "additionalProperties": {
    object (Schema)
  },
  "anyOf": [
    {
      object (Schema)
    }
  ],
  "enum": [
    string
  ],
  "default": value,
  "ref": string,
  "defs": {
    string: {
      object (Schema)
    },
    ...
  },
  "title": string,
  "minItems": string,
  "maxItems": string,

  // Union field _minimum can be only one of the following:
  "minimum": number
  // End of list of possible types for union field _minimum.

  // Union field _maximum can be only one of the following:
  "maximum": number
  // End of list of possible types for union field _maximum.
}
Fields
type

enum (Type)

Required. The type of the data.

properties

map (key: string, value: object (Schema))

Optional. Properties of Type.OBJECT.

An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

required[]

string

Optional. Required properties of Type.OBJECT.

description

string

Optional. The description of the data.

items

object (Schema)

Optional. Schema of the elements of Type.ARRAY.

nullable

boolean

Optional. Indicates if the value may be null.

uniqueItems

boolean

Optional. Indicate the items in the array must be unique. Only applies to TYPE.ARRAY.

prefixItems[]

object (Schema)

Optional. Schemas of initial elements of Type.ARRAY.

additionalProperties

object (Schema)

Optional. Can either be a boolean or an object, controls the presence of additional properties.

anyOf[]

object (Schema)

Optional. The value should be validated against any (one or more) of the subschemas in the list.

enum[]

string

Optional. Possible values of the element of primitive type with enum format. Examples: 1. We can define direction as : {type:STRING, format:enum, enum:["EAST", NORTH", "SOUTH", "WEST"]} 2. We can define apartment number as : {type:INTEGER, format:enum, enum:["101", "201", "301"]}

default

value (Value format)

Optional. Default value of the data.

ref

string

Optional. Allows indirect references between schema nodes. The value should be a valid reference to a child of the root defs.

For example, the following schema defines a reference to a schema node named "Pet":

type: object
properties:
  pet:
    ref: #/defs/Pet
defs:
  Pet:
    type: object
    properties:
      name:
        type: string

The value of the "pet" property is a reference to the schema node named "Pet". See details in https://json-schema.org/understanding-json-schema/structuring.

defs

map (key: string, value: object (Schema))

Optional. A map of definitions for use by ref. Only allowed at the root of the schema.

An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

title

string

Optional. The title of the schema.

minItems

string (int64 format)

Optional. Minimum number of the elements for Type.ARRAY.

maxItems

string (int64 format)

Optional. Maximum number of the elements for Type.ARRAY.

Union field _minimum.

_minimum can be only one of the following:

minimum

number

Optional. Minimum value for Type.INTEGER and Type.NUMBER.

Union field _maximum.

_maximum can be only one of the following:

maximum

number

Optional. Maximum value for Type.INTEGER and Type.NUMBER.

PropertiesEntry

JSON representation
{
  "key": string,
  "value": {
    object (Schema)
  }
}
Fields
key

string

value

object (Schema)

Value

JSON representation
{

  // Union field kind can be only one of the following:
  "nullValue": null,
  "numberValue": number,
  "stringValue": string,
  "boolValue": boolean,
  "structValue": {
    object
  },
  "listValue": array
  // End of list of possible types for union field kind.
}
Fields
Union field kind. The kind of value. kind can be only one of the following:
nullValue

null

Represents a null value.

numberValue

number

Represents a double value.

stringValue

string

Represents a string value.

boolValue

boolean

Represents a boolean value.

structValue

object (Struct format)

Represents a structured value.

listValue

array (ListValue format)

Represents a repeated Value.

Struct

JSON representation
{
  "fields": {
    string: value,
    ...
  }
}
Fields
fields

map (key: string, value: value (Value format))

Unordered map of dynamically typed values.

An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

FieldsEntry

JSON representation
{
  "key": string,
  "value": value
}
Fields
key

string

value

value (Value format)

ListValue

JSON representation
{
  "values": [
    value
  ]
}
Fields
values[]

value (Value format)

Repeated field of dynamically typed values.

DefsEntry

JSON representation
{
  "key": string,
  "value": {
    object (Schema)
  }
}
Fields
key

string

value

object (Schema)

OpenApiTool

JSON representation
{
  "openApiSchema": string,
  "name": string,
  "description": string,
  "apiAuthentication": {
    object (ApiAuthentication)
  },
  "tlsConfig": {
    object (TlsConfig)
  },
  "serviceDirectoryConfig": {
    object (ServiceDirectoryConfig)
  },
  "ignoreUnknownFields": boolean,
  "url": string
}
Fields
openApiSchema

string

Required. The OpenAPI schema in JSON or YAML format.

name

string

Optional. The name of the tool. If not provided, the name of the tool will be derived from the OpenAPI schema, from operation.operationId.

description

string

Optional. The description of the tool. If not provided, the description of the tool will be derived from the OpenAPI schema, from operation.description or operation.summary.

apiAuthentication

object (ApiAuthentication)

Optional. Authentication information required by the API.

tlsConfig

object (TlsConfig)

Optional. The TLS configuration. Includes the custom server certificates that the client will trust.

serviceDirectoryConfig

object (ServiceDirectoryConfig)

Optional. Service Directory configuration.

ignoreUnknownFields

boolean

Optional. If true, the agent will ignore unknown fields in the API response.

url

string

Optional. The server URL of the Open API schema. This field is only set in tools in the environment dependencies during the export process if the schema contains a server url. During the import process, if this url is present in the environment dependencies and the schema has the $env_var placeholder, it will replace the placeholder in the schema.

ApiAuthentication

JSON representation
{

  // Union field auth_config can be only one of the following:
  "apiKeyConfig": {
    object (ApiKeyConfig)
  },
  "oauthConfig": {
    object (OAuthConfig)
  },
  "serviceAgentIdTokenAuthConfig": {
    object (ServiceAgentIdTokenAuthConfig)
  },
  "serviceAccountAuthConfig": {
    object (ServiceAccountAuthConfig)
  },
  "bearerTokenConfig": {
    object (BearerTokenConfig)
  }
  // End of list of possible types for union field auth_config.
}
Fields
Union field auth_config. The auth configuration. auth_config can be only one of the following:
apiKeyConfig

object (ApiKeyConfig)

Optional. Config for API key auth.

oauthConfig

object (OAuthConfig)

Optional. Config for OAuth.

serviceAgentIdTokenAuthConfig

object (ServiceAgentIdTokenAuthConfig)

Optional. Config for ID token auth generated from CES service agent.

serviceAccountAuthConfig

object (ServiceAccountAuthConfig)

Optional. Config for service account authentication.

bearerTokenConfig

object (BearerTokenConfig)

Optional. Config for bearer token auth.

ApiKeyConfig

JSON representation
{
  "keyName": string,
  "apiKeySecretVersion": string,
  "requestLocation": enum (RequestLocation)
}
Fields
keyName

string

Required. The parameter name or the header name of the API key. E.g., If the API request is "https://example.com/act?X-Api-Key=", "X-Api-Key" would be the parameter name.

apiKeySecretVersion

string

Required. The name of the SecretManager secret version resource storing the API key. Format: projects/{project}/secrets/{secret}/versions/{version}

Note: You should grant roles/secretmanager.secretAccessor role to the CES service agent service-<PROJECT-NUMBER>@gcp-sa-ces.iam.gserviceaccount.com.

requestLocation

enum (RequestLocation)

Required. Key location in the request.

OAuthConfig

JSON representation
{
  "oauthGrantType": enum (OauthGrantType),
  "clientId": string,
  "clientSecretVersion": string,
  "tokenEndpoint": string,
  "scopes": [
    string
  ]
}
Fields
oauthGrantType

enum (OauthGrantType)

Required. OAuth grant types.

clientId

string

Required. The client ID from the OAuth provider.

clientSecretVersion

string

Required. The name of the SecretManager secret version resource storing the client secret. Format: projects/{project}/secrets/{secret}/versions/{version}

Note: You should grant roles/secretmanager.secretAccessor role to the CES service agent service-<PROJECT-NUMBER>@gcp-sa-ces.iam.gserviceaccount.com.

tokenEndpoint

string

Required. The token endpoint in the OAuth provider to exchange for an access token.

scopes[]

string

Optional. The OAuth scopes to grant.

ServiceAccountAuthConfig

JSON representation
{
  "serviceAccount": string,
  "scopes": [
    string
  ]
}
Fields
serviceAccount

string

Required. The email address of the service account used for authentication. CES uses this service account to exchange an access token and the access token is then sent in the Authorization header of the request.

The service account must have the roles/iam.serviceAccountTokenCreator role granted to the CES service agent service-<PROJECT-NUMBER>@gcp-sa-ces.iam.gserviceaccount.com.

scopes[]

string

Optional. The OAuth scopes to grant. If not specified, the default scope https://www.googleapis.com/auth/cloud-platform is used.

BearerTokenConfig

JSON representation
{
  "token": string
}
Fields
token

string

Required. The bearer token. Must be in the format $context.variables.<name_of_variable>.

TlsConfig

JSON representation
{
  "caCerts": [
    {
      object (CaCert)
    }
  ]
}
Fields
caCerts[]

object (CaCert)

Required. Specifies a list of allowed custom CA certificates for HTTPS verification.

CaCert

JSON representation
{
  "displayName": string,
  "cert": string
}
Fields
displayName

string

Required. The name of the allowed custom CA certificates. This can be used to disambiguate the custom CA certificates.

cert

string (bytes format)

Required. The allowed custom CA certificates (in DER format) for HTTPS verification. This overrides the default SSL trust store. If this is empty or unspecified, CES will use Google's default trust store to verify certificates. N.B. Make sure the HTTPS server certificates are signed with "subject alt name". For instance a certificate can be self-signed using the following command, openssl x509 -req -days 200 -in example.com.csr \ -signkey example.com.key \ -out example.com.crt \ -extfile <(printf "\nsubjectAltName='DNS:www.example.com'")

A base64-encoded string.

ServiceDirectoryConfig

JSON representation
{
  "service": string
}
Fields
service

string

Required. The name of Service Directory service. Format: projects/{project}/locations/{location}/namespaces/{namespace}/services/{service}. Location of the service directory must be the same as the location of the app.

GoogleSearchTool

JSON representation
{
  "name": string,
  "description": string,
  "contextUrls": [
    string
  ],
  "preferredDomains": [
    string
  ],
  "excludeDomains": [
    string
  ],
  "promptConfig": {
    object (PromptConfig)
  }
}
Fields
name

string

Required. The name of the tool.

description

string

Optional. Description of the tool's purpose.

contextUrls[]

string

Optional. Content will be fetched directly from these URLs for context and grounding. Example: "https://example.com/path.html". A maximum of 20 URLs are allowed.

preferredDomains[]

string

Optional. Specifies domains to restrict search results to. Example: "example.com", "another.site". A maximum of 20 domains can be specified.

excludeDomains[]

string

Optional. List of domains to be excluded from the search results. Example: "example.com". A maximum of 2000 domains can be excluded.

promptConfig

object (PromptConfig)

Optional. Prompt instructions passed to planner on how the search results should be processed for text and voice.

PromptConfig

JSON representation
{
  "textPrompt": string,
  "voicePrompt": string
}
Fields
textPrompt

string

Optional. Defines the prompt used for the system instructions when interacting with the agent in chat conversations. If not set, default prompt will be used.

voicePrompt

string

Optional. Defines the prompt used for the system instructions when interacting with the agent in voice conversations. If not set, default prompt will be used.

ConnectorTool

JSON representation
{
  "connection": string,
  "action": {
    object (Action)
  },
  "authConfig": {
    object (EndUserAuthConfig)
  },
  "name": string,
  "description": string
}
Fields
connection

string

Required. The full resource name of the referenced Integration Connectors Connection. Format: projects/{project}/locations/{location}/connections/{connection}

action

object (Action)

Required. Action for the tool to use.

authConfig

object (EndUserAuthConfig)

Optional. Configures how authentication is handled in Integration Connectors. By default, an admin authentication is passed in the Integration Connectors API requests. You can override it with a different end-user authentication config. Note: The Connection must have authentication override enabled in order to specify an EUC configuration here - otherwise, the ConnectorTool creation will fail. See https://cloud.google.com/application-integration/docs/configure-connectors-task#configure-authentication-override for details.

name

string

Optional. The name of the tool that can be used by the Agent to decide whether to call this ConnectorTool.

description

string

Optional. The description of the tool that can be used by the Agent to decide whether to call this ConnectorTool.

Action

JSON representation
{
  "inputFields": [
    string
  ],
  "outputFields": [
    string
  ],

  // Union field action_spec can be only one of the following:
  "connectionActionId": string,
  "entityOperation": {
    object (EntityOperation)
  }
  // End of list of possible types for union field action_spec.
}
Fields
inputFields[]

string

Optional. Entity fields to use as inputs for the operation. If no fields are specified, all fields of the Entity will be used.

outputFields[]

string

Optional. Entity fields to return from the operation. If no fields are specified, all fields of the Entity will be returned.

Union field action_spec. Specification for an action to configure for the tool to use. action_spec can be only one of the following:
connectionActionId

string

ID of a Connection action for the tool to use.

entityOperation

object (EntityOperation)

Entity operation configuration for the tool to use.

EntityOperation

JSON representation
{
  "entityId": string,
  "operation": enum (OperationType)
}
Fields
entityId

string

Required. ID of the entity.

operation

enum (OperationType)

Required. Operation to perform on the entity.

EndUserAuthConfig

JSON representation
{

  // Union field auth_config can be only one of the following:
  "oauth2AuthCodeConfig": {
    object (Oauth2AuthCodeConfig)
  },
  "oauth2JwtBearerConfig": {
    object (Oauth2JwtBearerConfig)
  }
  // End of list of possible types for union field auth_config.
}
Fields
Union field auth_config. The auth configuration. auth_config can be only one of the following:
oauth2AuthCodeConfig

object (Oauth2AuthCodeConfig)

Oauth 2.0 Authorization Code authentication.

oauth2JwtBearerConfig

object (Oauth2JwtBearerConfig)

JWT Profile Oauth 2.0 Authorization Grant authentication.

Oauth2AuthCodeConfig

JSON representation
{
  "oauthToken": string
}
Fields
oauthToken

string

Required. Oauth token parameter name to pass through. Must be in the format $context.variables.<name_of_variable>.

Oauth2JwtBearerConfig

JSON representation
{
  "issuer": string,
  "subject": string,
  "clientKey": string
}
Fields
issuer

string

Required. Issuer parameter name to pass through. Must be in the format $context.variables.<name_of_variable>.

subject

string

Required. Subject parameter name to pass through. Must be in the format $context.variables.<name_of_variable>.

clientKey

string

Required. Client parameter name to pass through. Must be in the format $context.variables.<name_of_variable>.

DataStoreTool

JSON representation
{
  "name": string,
  "description": string,
  "boostSpecs": [
    {
      object (BoostSpecs)
    }
  ],
  "modalityConfigs": [
    {
      object (ModalityConfig)
    }
  ],
  "filterParameterBehavior": enum (FilterParameterBehavior),

  // Union field search_source can be only one of the following:
  "dataStoreSource": {
    object (DataStoreSource)
  },
  "engineSource": {
    object (EngineSource)
  }
  // End of list of possible types for union field search_source.
}
Fields
name

string

Required. The data store tool name.

description

string

Optional. The tool description.

boostSpecs[]

object (BoostSpecs)

Optional. Boost specification to boost certain documents.

modalityConfigs[]

object (ModalityConfig)

Optional. The modality configs for the data store.

filterParameterBehavior

enum (FilterParameterBehavior)

Optional. The filter parameter behavior.

Union field search_source. Defines the search source, either a single DataStore or an Engine. search_source can be only one of the following:
dataStoreSource

object (DataStoreSource)

Optional. Search within a single specific DataStore.

engineSource

object (EngineSource)

Optional. Search within an Engine (potentially across multiple DataStores).

DataStoreSource

JSON representation
{
  "filter": string,
  "dataStore": {
    object (DataStore)
  }
}
Fields
filter

string

Optional. Filter specification for the DataStore. See: https://cloud.google.com/generative-ai-app-builder/docs/filter-search-metadata

dataStore

object (DataStore)

Optional. The data store.

DataStore

JSON representation
{
  "name": string,
  "type": enum (DataStoreType),
  "documentProcessingMode": enum (DocumentProcessingMode),
  "displayName": string,
  "createTime": string,
  "connectorConfig": {
    object (ConnectorConfig)
  }
}
Fields
name

string

Required. Full resource name of the DataStore. Format: projects/{project}/locations/{location}/collections/{collection}/dataStores/{dataStore}

type

enum (DataStoreType)

Output only. The type of the data store. This field is readonly and populated by the server.

documentProcessingMode

enum (DocumentProcessingMode)

Output only. The document processing mode for the data store connection. Only set for PUBLIC_WEB and UNSTRUCTURED data stores.

displayName

string

Output only. The display name of the data store.

createTime

string (Timestamp format)

Output only. Timestamp when the data store 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: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".

connectorConfig

object (ConnectorConfig)

Output only. The connector config for the data store connection.

Timestamp

JSON representation
{
  "seconds": string,
  "nanos": integer
}
Fields
seconds

string (int64 format)

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

integer

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.

ConnectorConfig

JSON representation
{
  "collection": string,
  "collectionDisplayName": string,
  "dataSource": string
}
Fields
collection

string

Resource name of the collection the data store belongs to.

collectionDisplayName

string

Display name of the collection the data store belongs to.

dataSource

string

The name of the data source. Example: salesforce, jira, confluence, bigquery.

EngineSource

JSON representation
{
  "engine": string,
  "dataStoreSources": [
    {
      object (DataStoreSource)
    }
  ],
  "filter": string
}
Fields
engine

string

Required. Full resource name of the Engine. Format: projects/{project}/locations/{location}/collections/{collection}/engines/{engine}

dataStoreSources[]

object (DataStoreSource)

Optional. Use to target specific DataStores within the Engine. If empty, the search applies to all DataStores associated with the Engine.

filter

string

Optional. A filter applied to the search across the Engine. Not relevant and not used if 'data_store_sources' is provided. See: https://cloud.google.com/generative-ai-app-builder/docs/filter-search-metadata

BoostSpecs

JSON representation
{
  "dataStores": [
    string
  ],
  "spec": [
    {
      object (BoostSpec)
    }
  ]
}
Fields
dataStores[]

string

Required. The Data Store where the boosting configuration is applied. Full resource name of DataStore, such as projects/{project}/locations/{location}/collections/{collection}/dataStores/{dataStore}.

spec[]

object (BoostSpec)

Required. A list of boosting specifications.

BoostSpec

JSON representation
{
  "conditionBoostSpecs": [
    {
      object (ConditionBoostSpec)
    }
  ]
}
Fields
conditionBoostSpecs[]

object (ConditionBoostSpec)

Required. A list of boosting specifications.

ConditionBoostSpec

JSON representation
{
  "condition": string,
  "boost": number,
  "boostControlSpec": {
    object (BoostControlSpec)
  }
}
Fields
condition

string

Required. An expression which specifies a boost condition. The syntax is the same as filter expression syntax. Currently, the only supported condition is a list of BCP-47 lang codes. Example: To boost suggestions in languages en or fr: (lang_code: ANY("en", "fr"))

boost

number

Optional. Strength of the boost, which should be in [-1, 1]. Negative boost means demotion. Default is 0.0.

Setting to 1.0 gives the suggestions a big promotion. However, it does not necessarily mean that the top result will be a boosted suggestion.

Setting to -1.0 gives the suggestions a big demotion. However, other suggestions that are relevant might still be shown.

Setting to 0.0 means no boost applied. The boosting condition is ignored.

boostControlSpec

object (BoostControlSpec)

Optional. Complex specification for custom ranking based on customer defined attribute value.

BoostControlSpec

JSON representation
{
  "fieldName": string,
  "attributeType": enum (AttributeType),
  "interpolationType": enum (InterpolationType),
  "controlPoints": [
    {
      object (ControlPoint)
    }
  ]
}
Fields
fieldName

string

Optional. The name of the field whose value will be used to determine the boost amount.

attributeType

enum (AttributeType)

Optional. The attribute type to be used to determine the boost amount. The attribute value can be derived from the field value of the specified field_name. In the case of numerical it is straightforward i.e. attribute_value = numerical_field_value. In the case of freshness however, attribute_value = (time.now() - datetime_field_value).

interpolationType

enum (InterpolationType)

Optional. The interpolation type to be applied to connect the control points listed below.

controlPoints[]

object (ControlPoint)

Optional. The control points used to define the curve. The monotonic function (defined through the interpolation_type above) passes through the control points listed here.

ControlPoint

JSON representation
{
  "attributeValue": string,
  "boostAmount": number
}
Fields
attributeValue

string

Optional. Can be one of: 1. The numerical field value. 2. The duration spec for freshness: The value must be formatted as an XSD dayTimeDuration value (a restricted subset of an ISO 8601 duration value). The pattern for this is: [nD][T[nH][nM][nS]].

boostAmount

number

Optional. The value between -1 to 1 by which to boost the score if the attribute_value evaluates to the value specified above.

ModalityConfig

JSON representation
{
  "modalityType": enum (ModalityType),
  "rewriterConfig": {
    object (RewriterConfig)
  },
  "summarizationConfig": {
    object (SummarizationConfig)
  },
  "groundingConfig": {
    object (GroundingConfig)
  }
}
Fields
modalityType

enum (ModalityType)

Required. The modality type.

rewriterConfig

object (RewriterConfig)

Optional. The rewriter config.

summarizationConfig

object (SummarizationConfig)

Optional. The summarization config.

groundingConfig

object (GroundingConfig)

Optional. The grounding configuration.

RewriterConfig

JSON representation
{
  "modelSettings": {
    object (ModelSettings)
  },
  "prompt": string,
  "disabled": boolean
}
Fields
modelSettings

object (ModelSettings)

Required. Configurations for the LLM model.

prompt

string

Optional. The prompt definition. If not set, default prompt will be used.

disabled

boolean

Optional. Whether the rewriter is disabled.

ModelSettings

JSON representation
{
  "model": string,

  // Union field _temperature can be only one of the following:
  "temperature": number
  // End of list of possible types for union field _temperature.
}
Fields
model

string

Optional. The LLM model that the agent should use. If not set, the agent will inherit the model from its parent agent.

Union field _temperature.

_temperature can be only one of the following:

temperature

number

Optional. If set, this temperature will be used for the LLM model. Temperature controls the randomness of the model's responses. Lower temperatures produce responses that are more predictable. Higher temperatures produce responses that are more creative.

SummarizationConfig

JSON representation
{
  "modelSettings": {
    object (ModelSettings)
  },
  "prompt": string,
  "disabled": boolean
}
Fields
modelSettings

object (ModelSettings)

Optional. Configurations for the LLM model.

prompt

string

Optional. The prompt definition. If not set, default prompt will be used.

disabled

boolean

Optional. Whether summarization is disabled.

GroundingConfig

JSON representation
{
  "groundingLevel": number,
  "disabled": boolean
}
Fields
groundingLevel

number

Optional. The groundedness threshold of the answer based on the retrieved sources. The value has a configurable range of [1, 5]. The level is used to threshold the groundedness of the answer, meaning that all responses with a groundedness score below the threshold will fall back to returning relevant snippets only.

For example, a level of 3 means that the groundedness score must be 3 or higher for the response to be returned.

disabled

boolean

Optional. Whether grounding is disabled.

PythonFunction

JSON representation
{
  "name": string,
  "pythonCode": string,
  "description": string
}
Fields
name

string

Optional. The name of the Python function to execute. Must match a Python function name defined in the python code. Case sensitive. If the name is not provided, the first function defined in the python code will be used.

pythonCode

string

Optional. The Python code to execute for the tool.

description

string

Output only. The description of the Python function, parsed from the python code's docstring.

McpTool

JSON representation
{
  "name": string,
  "description": string,
  "inputSchema": {
    object (Schema)
  },
  "outputSchema": {
    object (Schema)
  },
  "serverAddress": string,
  "apiAuthentication": {
    object (ApiAuthentication)
  },
  "tlsConfig": {
    object (TlsConfig)
  },
  "serviceDirectoryConfig": {
    object (ServiceDirectoryConfig)
  }
}
Fields
name

string

Required. The name of the MCP tool.

description

string

Optional. The description of the MCP tool.

inputSchema

object (Schema)

Optional. The schema of the input arguments of the MCP tool.

outputSchema

object (Schema)

Optional. The schema of the output arguments of the MCP tool.

serverAddress

string

Required. The server address of the MCP server, e.g., "https://example.com/mcp/". If the server is built with the MCP SDK, the url should be suffixed with "/mcp/". Only Streamable HTTP transport based servers are supported. This is the same as the server_address in the McpToolset. See https://modelcontextprotocol.io/specification/2025-03-26/basic/transports#streamable-http for more details.

apiAuthentication

object (ApiAuthentication)

Optional. Authentication information required to execute the tool against the MCP server. For bearer token authentication, the token applies only to tool execution, not to listing tools. This requires that tools can be listed without authentication.

tlsConfig

object (TlsConfig)

Optional. The TLS configuration. Includes the custom server certificates that the client should trust.

serviceDirectoryConfig

object (ServiceDirectoryConfig)

Optional. Service Directory configuration for VPC-SC, used to resolve service names within a perimeter.

FileSearchTool

JSON representation
{
  "corpusType": enum (CorpusType),
  "name": string,
  "description": string,
  "fileCorpus": string
}
Fields
corpusType

enum (CorpusType)

Optional. The type of the corpus. Default is FULLY_MANAGED.

name

string

Required. The tool name.

description

string

Optional. The tool description.

fileCorpus

string

Optional. The corpus where files are stored. Format: projects/{project}/locations/{location}/ragCorpora/{rag_corpus}

SystemTool

JSON representation
{
  "name": string,
  "description": string
}
Fields
name

string

Required. The name of the system tool.

description

string

Output only. The description of the system tool.

WidgetTool

JSON representation
{
  "name": string,
  "description": string,
  "widgetType": enum (WidgetType),

  // Union field input can be only one of the following:
  "parameters": {
    object (Schema)
  }
  // End of list of possible types for union field input.
}
Fields
name

string

Required. The display name of the widget tool.

description

string

Optional. The description of the widget tool.

widgetType

enum (WidgetType)

Optional. The type of the widget tool. If not specified, the default type will be CUSTOMIZED.

Union field input. The input of the widget tool. input can be only one of the following:
parameters

object (Schema)

Optional. The input parameters of the widget tool.

ToolFakeConfig

JSON representation
{
  "enableFakeMode": boolean,

  // Union field tool_response can be only one of the following:
  "codeBlock": {
    object (CodeBlock)
  }
  // End of list of possible types for union field tool_response.
}
Fields
enableFakeMode

boolean

Optional. Whether the tool is using fake mode.

Union field tool_response. The response is either static or it is provided by a python function. tool_response can be only one of the following:
codeBlock

object (CodeBlock)

Optional. Code block which will be executed instead of a real tool call.

CodeBlock

JSON representation
{
  "pythonCode": string
}
Fields
pythonCode

string

Required. Python code which will be invoked in tool fake mode. Expected Python function signature - To catch all tool calls: def fake_tool_call(tool: Tool, input: dict[str, Any], callback_context: CallbackContext) -> Optional[dict[str, Any]]: To catch a specific tool call: def fake_{tool_id}(tool: Tool, input: dict[str, Any], callback_context: CallbackContext) -> Optional[dict[str, Any]]: If the function returns None, the real tool will be invoked instead.

Tool Annotations

Destructive Hint: ❌ | Idempotent Hint: ✅ | Read Only Hint: ✅ | Open World Hint: ❌