MCP Tools Reference: ces.googleapis.com

Ferramenta: create_toolset

Cria um novo conjunto de ferramentas no app especificado.

O exemplo de código a seguir mostra como usar curl para chamar a ferramenta MCP create_toolset.

Solicitação curl
curl --location 'https://ces.googleapis.com/mcp' \
--header 'content-type: application/json' \
--header 'accept: application/json, text/event-stream' \
--data '{
  "method": "tools/call",
  "params": {
    "name": "create_toolset",
    "arguments": {
      // provide these details according to the tool's MCP specification
    }
  },
  "jsonrpc": "2.0",
  "id": 1
}'

Esquema de entrada

Mensagem de solicitação para AgentService.CreateToolset.

CreateToolsetRequest

Representação JSON
{
  "parent": string,
  "toolsetId": string,
  "toolset": {
    object (Toolset)
  }
}
Campos
parent

string

Obrigatório. O nome do recurso do app em que um conjunto de ferramentas será criado.

toolsetId

string

Opcional. O ID a ser usado no conjunto de ferramentas, que se tornará o componente final do nome do recurso do conjunto de ferramentas. Se não for fornecido, um ID exclusivo será atribuído automaticamente ao conjunto de ferramentas.

toolset

object (Toolset)

Obrigatório. O conjunto de ferramentas a ser criado.

Conjunto de ferramentas

Representação JSON
{
  "name": string,
  "displayName": string,
  "description": string,
  "timeout": string,
  "createTime": string,
  "updateTime": string,
  "etag": string,
  "executionType": enum (ExecutionType),
  "toolFakeConfig": {
    object (ToolFakeConfig)
  },

  // Union field toolset_type can be only one of the following:
  "mcpToolset": {
    object (McpToolset)
  },
  "openApiToolset": {
    object (OpenApiToolset)
  },
  "connectorToolset": {
    object (ConnectorToolset)
  }
  // End of list of possible types for union field toolset_type.
}
Campos
name

string

Identificador. O identificador exclusivo do conjunto de ferramentas. Formato: projects/{project}/locations/{location}/apps/{app}/toolsets/{toolset}

displayName

string

Opcional. O nome de exibição do conjunto de ferramentas. Precisa ser exclusivo no mesmo app.

description

string

Opcional. A descrição do conjunto de ferramentas.

timeout

string (Duration format)

Opcional. O tempo limite para a execução do conjunto de ferramentas. Se não for definido, o tempo limite padrão será de 30 segundos para conjuntos de ferramentas SYNCHRONOUS e 60 segundos para conjuntos de ferramentas ASYNCHRONOUS.

Duração em segundos com até nove dígitos fracionários, terminando em "s". Exemplo: "3.5s".

createTime

string (Timestamp format)

Apenas saída. Carimbo de data/hora em que o conjunto de ferramentas foi criado.

Usa o padrão RFC 3339, em que a saída gerada é sempre convertida em Z e tem 0, 3, 6 ou 9 dígitos fracionários. Além de Z, outros ajustes também são aceitos. Exemplos: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" ou "2014-10-02T15:01:23+05:30".

updateTime

string (Timestamp format)

Apenas saída. Carimbo de data/hora da última atualização do conjunto de ferramentas.

Usa o padrão RFC 3339, em que a saída gerada é sempre convertida em Z e tem 0, 3, 6 ou 9 dígitos fracionários. Além de Z, outros ajustes também são aceitos. Exemplos: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" ou "2014-10-02T15:01:23+05:30".

etag

string

ETag usada para garantir que o objeto não tenha sido alterado durante uma operação de leitura-modificação-gravação. Se a ETag estiver vazia, a atualização vai substituir todas as mudanças simultâneas.

executionType

enum (ExecutionType)

Opcional. O tipo de execução das ferramentas no conjunto.

toolFakeConfig

object (ToolFakeConfig)

Opcional. Configuração do comportamento das ferramentas no modo simulado.

Campo de união toolset_type. O tipo do conjunto de ferramentas. toolset_type pode ser apenas de um dos tipos a seguir:
mcpToolset

object (McpToolset)

Opcional. Um conjunto de ferramentas que contém uma lista de ferramentas oferecidas pelo servidor MCP.

openApiToolset

object (OpenApiToolset)

Opcional. Um conjunto de ferramentas que contém uma lista de ferramentas definidas por um esquema da OpenAPI.

connectorToolset

object (ConnectorToolset)

Opcional. Um conjunto de ferramentas que gera ferramentas de uma conexão do Integration Connectors.

McpToolset

Representação JSON
{
  "serverAddress": string,
  "apiAuthentication": {
    object (ApiAuthentication)
  },
  "serviceDirectoryConfig": {
    object (ServiceDirectoryConfig)
  },
  "tlsConfig": {
    object (TlsConfig)
  },
  "customHeaders": {
    string: string,
    ...
  },
  "toolOverrides": [
    {
      object (McpToolOverride)
    }
  ]
}
Campos
serverAddress

string

Obrigatório. O endereço do servidor MCP, por exemplo, "https://example.com/mcp/". Se o servidor for criado com o SDK do MCP, o URL vai ter o sufixo "/mcp/". Somente servidores baseados em transporte HTTP de streaming são compatíveis. Consulte https://modelcontextprotocol.io/specification/2025-03-26/basic/transports#streamable-http para mais detalhes.

apiAuthentication

object (ApiAuthentication)

Opcional. Informações de autenticação necessárias para acessar ferramentas e executar uma ferramenta no servidor MCP. Para autenticação de token de portador, o token se aplica apenas à execução da ferramenta, não à listagem de ferramentas. Isso exige que as ferramentas possam ser listadas sem autenticação.

serviceDirectoryConfig

object (ServiceDirectoryConfig)

Opcional. Configuração do Diretório de serviços para VPC-SC, usada para resolver nomes de serviços em um perímetro.

tlsConfig

object (TlsConfig)

Opcional. A configuração de TLS. Inclui os certificados de servidor personalizados em que o cliente deve confiar.

customHeaders

map (key: string, value: string)

Opcional. Os cabeçalhos personalizados a serem enviados na solicitação ao servidor MCP. Os valores precisam estar no formato $context.variables.<name_of_variable> e podem ser definidos nas variáveis de sessão. Consulte https://docs.cloud.google.com/customer-engagement-ai/conversational-agents/ps/tool/open-api#openapi-injection para mais detalhes.

Um objeto com uma lista de pares "key": value. Exemplo: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

toolOverrides[]

object (McpToolOverride)

Opcional. Substituições para ferramentas individuais neste conjunto de ferramentas. Isso permite substituir detalhes específicos, como descrições, nomes ou fixar os estados das ferramentas para que não sejam totalmente dinâmicos.

ApiAuthentication

Representação JSON
{

  // 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.
}
Campos
Campo de união auth_config. A configuração de autenticação. auth_config pode ser apenas de um dos tipos a seguir:
apiKeyConfig

object (ApiKeyConfig)

Opcional. Configuração para autenticação de chave de API.

oauthConfig

object (OAuthConfig)

Opcional. Configuração para OAuth.

serviceAgentIdTokenAuthConfig

object (ServiceAgentIdTokenAuthConfig)

Opcional. Configuração para autenticação de token de ID gerada pelo agente de serviço do CES.

serviceAccountAuthConfig

object (ServiceAccountAuthConfig)

Opcional. Configuração para autenticação de conta de serviço.

bearerTokenConfig

object (BearerTokenConfig)

Opcional. Configuração para autenticação de token do portador.

ApiKeyConfig

Representação JSON
{
  "keyName": string,
  "apiKeySecretVersion": string,
  "requestLocation": enum (RequestLocation)
}
Campos
keyName

string

Obrigatório. O nome do parâmetro ou do cabeçalho da chave de API. Por exemplo, Se a solicitação de API for "https://example.com/act?X-Api-Key=", "X-Api-Key" será o nome do parâmetro.

apiKeySecretVersion

string

Obrigatório. O nome do recurso da versão do secret do Secret Manager que armazena a chave de API. Formato: projects/{project}/secrets/{secret}/versions/{version}

Observação: conceda o papel roles/secretmanager.secretAccessor ao agente de serviço do CES service-<PROJECT-NUMBER>@gcp-sa-ces.iam.gserviceaccount.com.

requestLocation

enum (RequestLocation)

Obrigatório. Localização da chave na solicitação.

OAuthConfig

Representação JSON
{
  "oauthGrantType": enum (OauthGrantType),
  "clientId": string,
  "clientSecretVersion": string,
  "tokenEndpoint": string,
  "scopes": [
    string
  ]
}
Campos
oauthGrantType

enum (OauthGrantType)

Obrigatório. Tipos de permissão de acesso OAuth.

clientId

string

Obrigatório. O ID do cliente do provedor OAuth.

clientSecretVersion

string

Obrigatório. O nome do recurso da versão do secret do Secret Manager que armazena a chave secreta do cliente. Formato: projects/{project}/secrets/{secret}/versions/{version}

Observação: conceda o papel roles/secretmanager.secretAccessor ao agente de serviço do CES service-<PROJECT-NUMBER>@gcp-sa-ces.iam.gserviceaccount.com.

tokenEndpoint

string

Obrigatório. O endpoint de token no provedor OAuth para troca por um token de acesso.

scopes[]

string

Opcional. Os escopos do OAuth a serem concedidos.

ServiceAccountAuthConfig

Representação JSON
{
  "serviceAccount": string,
  "scopes": [
    string
  ]
}
Campos
serviceAccount

string

Obrigatório. O endereço de e-mail da conta de serviço usada para autenticação. O CES usa essa conta de serviço para trocar um token de acesso, que é enviado no cabeçalho Authorization da solicitação.

A conta de serviço precisa ter o papel roles/iam.serviceAccountTokenCreator concedido ao agente de serviço do CES service-<PROJECT-NUMBER>@gcp-sa-ces.iam.gserviceaccount.com.

scopes[]

string

Opcional. Os escopos do OAuth a serem concedidos. Se não for especificado, o escopo padrão https://www.googleapis.com/auth/cloud-platform será usado.

BearerTokenConfig

Representação JSON
{
  "token": string
}
Campos
token

string

Obrigatório. O token do portador. Precisa estar no formato $context.variables.<name_of_variable>.

ServiceDirectoryConfig

Representação JSON
{
  "service": string
}
Campos
service

string

Obrigatório. O nome do serviço do Diretório de serviços. Formato: projects/{project}/locations/{location}/namespaces/{namespace}/services/{service}. O local do diretório de serviços precisa ser o mesmo do app.

TlsConfig

Representação JSON
{
  "caCerts": [
    {
      object (CaCert)
    }
  ]
}
Campos
caCerts[]

object (CaCert)

Obrigatório. Especifica uma lista de certificados de CA personalizados permitidos para verificação HTTPS.

CaCert

Representação JSON
{
  "displayName": string,
  "cert": string
}
Campos
displayName

string

Obrigatório. O nome dos certificados de CA personalizados permitidos. Isso pode ser usado para eliminar a ambiguidade dos certificados de CA personalizados.

cert

string (bytes format)

Obrigatório. Os certificados de CA personalizados permitidos (no formato DER) para verificação HTTPS. Isso substitui o repositório de confiança SSL padrão. Se estiver vazio ou não especificado, o CES vai usar o repositório de confiança padrão do Google para verificar certificados. Observação: verifique se os certificados do servidor HTTPS estão assinados com "subject alt name". Por exemplo, um certificado pode ser autoassinado usando o seguinte comando:

   openssl x509 -req -days 200 -in example.com.csr \
     -signkey example.com.key \
     -out example.com.crt \
     -extfile <(printf "\nsubjectAltName='DNS:www.example.com'")

Uma string codificada em base64.

CustomHeadersEntry

Representação JSON
{
  "key": string,
  "value": string
}
Campos
key

string

value

string

McpToolOverride

Representação JSON
{
  "tool": string,
  "nameOverride": string,
  "descriptionOverride": string,
  "snapshot": {
    object (McpToolDefinition)
  }
}
Campos
tool

string

Obrigatório. O nome original da ferramenta, conforme emitido pelo servidor MCP.

nameOverride

string

Opcional. Se presente, essa ferramenta usa esse nome no agente em vez do nome original. Isso é usado principalmente como um alias se o servidor MCP oferecer ferramentas com nomes ruins.

descriptionOverride

string

Opcional. Se presente, essa ferramenta usa essa descrição em vez da descrição original do servidor.

snapshot

object (McpToolDefinition)

Apenas saída. Se presente, essa ferramenta fica "Fixada" e usa os valores de snapshot como substitutos se o servidor ficar temporariamente indisponível ou se não houver substituição.

McpToolDefinition

Representação JSON
{
  "description": string,
  "inputSchema": {
    object (Schema)
  },
  "outputSchema": {
    object (Schema)
  }
}
Campos
description

string

Apenas saída. A descrição da ferramenta MCP. Isso pode ser substituído por description_override em McpToolOverride.

inputSchema

object (Schema)

Apenas saída. O esquema dos argumentos de entrada da ferramenta MCP.

outputSchema

object (Schema)

Apenas saída. O esquema dos argumentos de saída da ferramenta MCP.

Esquema

Representação JSON
{
  "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.
}
Campos
type

enum (Type)

Obrigatório. O tipo dos dados.

properties

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

Opcional. Propriedades de Type.OBJECT.

Um objeto com uma lista de pares "key": value. Exemplo: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

required[]

string

Opcional. Propriedades obrigatórias de Type.OBJECT.

description

string

Opcional. A descrição dos dados.

items

object (Schema)

Opcional. Esquema dos elementos de Type.ARRAY.

nullable

boolean

Opcional. Indica se o valor pode ser nulo.

uniqueItems

boolean

Opcional. Indica que os itens na matriz precisam ser exclusivos. Aplicável apenas a TYPE.ARRAY.

prefixItems[]

object (Schema)

Opcional. Esquemas de elementos iniciais de Type.ARRAY.

additionalProperties

object (Schema)

Opcional. Pode ser um booleano ou um objeto e controla a presença de propriedades adicionais.

anyOf[]

object (Schema)

Opcional. O valor precisa ser validado em relação a qualquer um (um ou mais) dos subesquemas na lista.

enum[]

string

Opcional. Valores possíveis do elemento de tipo primitivo com formato de enumeração. Exemplos: 1. Podemos definir a direção como : {type:STRING, format:enum, enum:["EAST", NORTH", "SOUTH", "WEST"]} 2. Podemos definir o número do apartamento como : {type:INTEGER, format:enum, enum:["101", "201", "301"]}

default

value (Value format)

Opcional. Valor padrão dos dados.

ref

string

Opcional. Permite referências indiretas entre nós de esquema. O valor precisa ser uma referência válida a um filho do defs raiz.

Por exemplo, o esquema a seguir define uma referência a um nó de esquema chamado "Pet":

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

O valor da propriedade "pet" é uma referência ao nó do esquema chamado "Pet". Confira detalhes em https://json-schema.org/understanding-json-schema/structuring (em inglês).

defs

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

Opcional. Um mapa de definições para uso por ref. Só é permitido na raiz do esquema.

Um objeto com uma lista de pares "key": value. Exemplo: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

title

string

Opcional. O título do esquema.

minItems

string (int64 format)

Opcional. Número mínimo de elementos para Type.ARRAY.

maxItems

string (int64 format)

Opcional. Número máximo de elementos para Type.ARRAY.

Campo de união _minimum.

_minimum pode ser apenas de um dos tipos a seguir:

minimum

number

Opcional. Valor mínimo para Type.INTEGER e Type.NUMBER.

Campo de união _maximum.

_maximum pode ser apenas de um dos tipos a seguir:

maximum

number

Opcional. Valor máximo para Type.INTEGER e Type.NUMBER.

PropertiesEntry

Representação JSON
{
  "key": string,
  "value": {
    object (Schema)
  }
}
Campos
key

string

value

object (Schema)

Valor

Representação JSON
{

  // 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.
}
Campos
Campo de união kind. O tipo de valor. kind pode ser apenas de um dos tipos a seguir:
nullValue

null

Representa um null JSON.

numberValue

number

Representa um número JSON. Não pode ser NaN, Infinity ou -Infinity, porque esses valores não são compatíveis com JSON. Isso também não pode representar valores Int64 grandes, já que o formato JSON geralmente não os aceita no tipo de número.

stringValue

string

Representa uma string JSON.

boolValue

boolean

Representa um booleano JSON (literal true ou false em JSON).

structValue

object (Struct format)

Representa um objeto JSON.

listValue

array (ListValue format)

Representa uma matriz JSON.

Struct

Representação JSON
{
  "fields": {
    string: value,
    ...
  }
}
Campos
fields

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

Mapa não ordenado de valores com tipagem dinâmica.

Um objeto com uma lista de pares "key": value. Exemplo: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

FieldsEntry

Representação JSON
{
  "key": string,
  "value": value
}
Campos
key

string

value

value (Value format)

ListValue

Representação JSON
{
  "values": [
    value
  ]
}
Campos
values[]

value (Value format)

Campo repetido de valores digitados dinamicamente.

DefsEntry

Representação JSON
{
  "key": string,
  "value": {
    object (Schema)
  }
}
Campos
key

string

value

object (Schema)

OpenApiToolset

Representação JSON
{
  "openApiSchema": string,
  "apiAuthentication": {
    object (ApiAuthentication)
  },
  "tlsConfig": {
    object (TlsConfig)
  },
  "serviceDirectoryConfig": {
    object (ServiceDirectoryConfig)
  },
  "ignoreUnknownFields": boolean,
  "url": string
}
Campos
openApiSchema

string

Obrigatório. O esquema OpenAPI do conjunto de ferramentas.

apiAuthentication

object (ApiAuthentication)

Opcional. Informações de autenticação exigidas pela API.

tlsConfig

object (TlsConfig)

Opcional. A configuração de TLS. Inclui os certificados de servidor personalizados

serviceDirectoryConfig

object (ServiceDirectoryConfig)

Opcional. Configuração do Diretório de serviços.

ignoreUnknownFields

boolean

Opcional. Se for "true", o agente vai ignorar campos desconhecidos na resposta da API para todas as operações definidas no esquema OpenAPI.

url

string

Opcional. O URL do servidor do esquema da API aberta. Esse campo só é definido em conjuntos de ferramentas nas dependências do ambiente durante o processo de exportação se o esquema contiver um URL do servidor. Durante o processo de importação, se esse URL estiver presente nas dependências do ambiente e o esquema tiver o marcador de posição $env_var, ele vai substituir o marcador no esquema.

ConnectorToolset

Representação JSON
{
  "connection": string,
  "authConfig": {
    object (EndUserAuthConfig)
  },
  "connectorActions": [
    {
      object (Action)
    }
  ]
}
Campos
connection

string

Obrigatório. O nome completo do recurso da conexão referenciada do Integration Connectors. Formato: projects/{project}/locations/{location}/connections/{connection}

authConfig

object (EndUserAuthConfig)

Opcional. Configura como a autenticação é processada nos Integration Connectors. Por padrão, uma autenticação de administrador é transmitida nas solicitações da API Integration Connectors. É possível substituir essa configuração com outra de autenticação do usuário final. Observação: a conexão precisa ter a substituição de autenticação ativada para especificar uma configuração de EUC aqui. Caso contrário, a criação do conjunto de ferramentas vai falhar. Consulte: https://cloud.google.com/application-integration/docs/configure-connectors-task#configure-authentication-override

connectorActions[]

object (Action)

Obrigatório. A lista de ações do conector/operações de entidade para gerar ferramentas.

EndUserAuthConfig

Representação JSON
{

  // 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.
}
Campos
Campo de união auth_config. A configuração de autenticação. auth_config pode ser apenas de um dos tipos a seguir:
oauth2AuthCodeConfig

object (Oauth2AuthCodeConfig)

Autenticação de código de autorização do OAuth 2.0.

oauth2JwtBearerConfig

object (Oauth2JwtBearerConfig)

Autenticação de concessão de autorização OAuth 2.0 do perfil JWT.

Oauth2AuthCodeConfig

Representação JSON
{
  "oauthToken": string
}
Campos
oauthToken

string

Obrigatório. Nome do parâmetro do token OAuth a ser transmitido. Precisa estar no formato $context.variables.<name_of_variable>.

Oauth2JwtBearerConfig

Representação JSON
{
  "issuer": string,
  "subject": string,
  "clientKey": string
}
Campos
issuer

string

Obrigatório. Nome do parâmetro do emissor a ser transmitido. Precisa estar no formato $context.variables.<name_of_variable>.

subject

string

Obrigatório. Nome do parâmetro de assunto a ser transmitido. Precisa estar no formato $context.variables.<name_of_variable>.

clientKey

string

Obrigatório. Nome do parâmetro do cliente a ser transmitido. Precisa estar no formato $context.variables.<name_of_variable>.

Ação

Representação JSON
{
  "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.
}
Campos
inputFields[]

string

Opcional. Campos de entidade a serem usados como entradas para a operação. Se nenhum campo for especificado, todos os campos da entidade serão usados.

outputFields[]

string

Opcional. Campos de entidade a serem retornados da operação. Se nenhum campo for especificado, todos os campos da entidade serão retornados.

Campo de união action_spec. Especificação de uma ação a ser configurada para uso da ferramenta. action_spec pode ser apenas de um dos tipos a seguir:
connectionActionId

string

ID de uma ação de conexão para a ferramenta usar.

entityOperation

object (EntityOperation)

Configuração de operação de entidade para a ferramenta usar.

EntityOperation

Representação JSON
{
  "entityId": string,
  "operation": enum (OperationType)
}
Campos
entityId

string

Obrigatório. ID da entidade.

operation

enum (OperationType)

Obrigatório. Operação a ser realizada na entidade.

Duração

Representação JSON
{
  "seconds": string,
  "nanos": integer
}
Campos
seconds

string (int64 format)

Segundos assinados do período. Precisa estar entre -315.576.000.000 e +315.576.000.000 (inclusive). Observação: esses limites são calculados com base em: 60 s/min * 60 min/h * 24 h/dia * 365,25 dias/ano * 10.000 anos

nanos

integer

Frações assinadas de um segundo com resolução de nanossegundos do período. Durações menores que um segundo são representadas com um campo seconds 0 e um campo nanos positivo ou negativo. Para durações de um segundo ou mais, um valor diferente de zero para o campo nanos precisa ter o mesmo sinal do campo seconds. Precisa estar entre -999.999.999 e +999.999.999 (inclusive).

Carimbo de data/hora

Representação JSON
{
  "seconds": string,
  "nanos": integer
}
Campos
seconds

string (int64 format)

Representa os segundos do horário UTC desde a época Unix 1970-01-01T00:00:00Z. Precisa estar entre -62135596800 e 253402300799 (o que corresponde a 0001-01-01T00:00:00Z a 9999-12-31T23:59:59Z).

nanos

integer

Frações não negativas de um segundo com resolução de nanossegundos. Esse campo é a parte de nanossegundos da duração, não uma alternativa aos segundos. Os valores de segundos negativos com frações ainda precisam ter valores em nanossegundos não negativos que representam períodos posteriores. O valor precisa ser de 0 a 999.999.999 (inclusive).

ToolFakeConfig

Representação JSON
{
  "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.
}
Campos
enableFakeMode

boolean

Opcional. Indica se a ferramenta está usando o modo simulado.

Campo de união tool_response. A resposta é estática ou fornecida por uma função Python. tool_response pode ser apenas de um dos tipos a seguir:
codeBlock

object (CodeBlock)

Opcional. Bloco de código que será executado em vez de uma chamada de ferramenta real.

CodeBlock

Representação JSON
{
  "pythonCode": string
}
Campos
pythonCode

string

Obrigatório. Código Python que será invocado no modo falso da ferramenta. Assinatura esperada da função Python: para capturar todas as chamadas de ferramenta: def fake_tool_call(tool: Tool, input: dict[str, Any], callback_context: CallbackContext) -> Optional[dict[str, Any]]: para capturar uma chamada de ferramenta específica: def fake_{tool_id}(tool: Tool, input: dict[str, Any], callback_context: CallbackContext) -> Optional[dict[str, Any]]: se a função retornar "None", a ferramenta real será invocada.

RequestLocation

O local da chave de API na solicitação.

Tipos enumerados
REQUEST_LOCATION_UNSPECIFIED Não especificado. Esse valor não deve ser usado.
HEADER Representa a chave no cabeçalho HTTP.
QUERY_STRING Representa a chave na string de consulta.

OauthGrantType

Tipos de permissão de acesso OAuth. Somente a concessão de credenciais do cliente é compatível.

Tipos enumerados
OAUTH_GRANT_TYPE_UNSPECIFIED Não especificado. O padrão é CLIENT_CREDENTIAL.
CLIENT_CREDENTIAL Representa o fluxo de credenciais do cliente.

Tipo

Tipos de dados da OpenAPI.

Tipos enumerados
TYPE_UNSPECIFIED Tipo não especificado.
STRING Tipo de string.
INTEGER Tipo inteiro.
NUMBER Tipo de número.
BOOLEAN Tipo booleano.
OBJECT Tipo de objeto.
ARRAY Tipo de matriz.

NullValue

Representa um null JSON.

NullValue é um sentinela que usa uma enumeração com apenas um valor para representar o valor nulo da união de tipos Value.

Um campo do tipo NullValue com qualquer valor diferente de 0 é considerado inválido. A maioria dos serializadores ProtoJSON vai emitir um Value com um null_value definido como um null JSON, independente do valor inteiro, e, portanto, fará uma viagem de ida e volta para um valor 0.

Tipos enumerados
NULL_VALUE Valor nulo.

OperationType

A operação a ser realizada na entidade.

Tipos enumerados
OPERATION_TYPE_UNSPECIFIED Tipo de operação não especificado. Inválido. A criação/atualização de ConnectorTool vai falhar.
LIST Operação de listagem.
GET Receber operação.
CREATE Criar operação.
UPDATE Operação de atualização.
DELETE Operação de exclusão.

ExecutionType

O tipo de execução da ferramenta ou do conjunto de ferramentas.

Tipos enumerados
EXECUTION_TYPE_UNSPECIFIED O tipo de execução não foi especificado. Quando não especificado, o padrão é SYNCHRONOUS.
SYNCHRONOUS A ferramenta é executada de forma síncrona. A sessão fica bloqueada até que a ferramenta retorne.
ASYNCHRONOUS A ferramenta é executada de forma assíncrona. A sessão vai continuar enquanto a ferramenta estiver em execução.

Esquema de saída

Um conjunto de ferramentas representa um grupo de ferramentas gerenciadas dinamicamente que podem ser usadas pelo agente.

Conjunto de ferramentas

Representação JSON
{
  "name": string,
  "displayName": string,
  "description": string,
  "timeout": string,
  "createTime": string,
  "updateTime": string,
  "etag": string,
  "executionType": enum (ExecutionType),
  "toolFakeConfig": {
    object (ToolFakeConfig)
  },

  // Union field toolset_type can be only one of the following:
  "mcpToolset": {
    object (McpToolset)
  },
  "openApiToolset": {
    object (OpenApiToolset)
  },
  "connectorToolset": {
    object (ConnectorToolset)
  }
  // End of list of possible types for union field toolset_type.
}
Campos
name

string

Identificador. O identificador exclusivo do conjunto de ferramentas. Formato: projects/{project}/locations/{location}/apps/{app}/toolsets/{toolset}

displayName

string

Opcional. O nome de exibição do conjunto de ferramentas. Precisa ser exclusivo no mesmo app.

description

string

Opcional. A descrição do conjunto de ferramentas.

timeout

string (Duration format)

Opcional. O tempo limite para a execução do conjunto de ferramentas. Se não for definido, o tempo limite padrão será de 30 segundos para conjuntos de ferramentas SYNCHRONOUS e 60 segundos para conjuntos de ferramentas ASYNCHRONOUS.

Duração em segundos com até nove dígitos fracionários, terminando em "s". Exemplo: "3.5s".

createTime

string (Timestamp format)

Apenas saída. Carimbo de data/hora em que o conjunto de ferramentas foi criado.

Usa o padrão RFC 3339, em que a saída gerada é sempre convertida em Z e tem 0, 3, 6 ou 9 dígitos fracionários. Além de Z, outros ajustes também são aceitos. Exemplos: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" ou "2014-10-02T15:01:23+05:30".

updateTime

string (Timestamp format)

Apenas saída. Carimbo de data/hora da última atualização do conjunto de ferramentas.

Usa o padrão RFC 3339, em que a saída gerada é sempre convertida em Z e tem 0, 3, 6 ou 9 dígitos fracionários. Além de Z, outros ajustes também são aceitos. Exemplos: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" ou "2014-10-02T15:01:23+05:30".

etag

string

ETag usada para garantir que o objeto não tenha sido alterado durante uma operação de leitura-modificação-gravação. Se a ETag estiver vazia, a atualização vai substituir todas as mudanças simultâneas.

executionType

enum (ExecutionType)

Opcional. O tipo de execução das ferramentas no conjunto.

toolFakeConfig

object (ToolFakeConfig)

Opcional. Configuração do comportamento das ferramentas no modo simulado.

Campo de união toolset_type. O tipo do conjunto de ferramentas. toolset_type pode ser apenas de um dos tipos a seguir:
mcpToolset

object (McpToolset)

Opcional. Um conjunto de ferramentas que contém uma lista de ferramentas oferecidas pelo servidor MCP.

openApiToolset

object (OpenApiToolset)

Opcional. Um conjunto de ferramentas que contém uma lista de ferramentas definidas por um esquema da OpenAPI.

connectorToolset

object (ConnectorToolset)

Opcional. Um conjunto de ferramentas que gera ferramentas de uma conexão do Integration Connectors.

McpToolset

Representação JSON
{
  "serverAddress": string,
  "apiAuthentication": {
    object (ApiAuthentication)
  },
  "serviceDirectoryConfig": {
    object (ServiceDirectoryConfig)
  },
  "tlsConfig": {
    object (TlsConfig)
  },
  "customHeaders": {
    string: string,
    ...
  },
  "toolOverrides": [
    {
      object (McpToolOverride)
    }
  ]
}
Campos
serverAddress

string

Obrigatório. O endereço do servidor MCP, por exemplo, "https://example.com/mcp/". Se o servidor for criado com o SDK do MCP, o URL vai ter o sufixo "/mcp/". Somente servidores baseados em transporte HTTP de streaming são compatíveis. Consulte https://modelcontextprotocol.io/specification/2025-03-26/basic/transports#streamable-http para mais detalhes.

apiAuthentication

object (ApiAuthentication)

Opcional. Informações de autenticação necessárias para acessar ferramentas e executar uma ferramenta no servidor MCP. Para autenticação de token de portador, o token se aplica apenas à execução da ferramenta, não à listagem de ferramentas. Isso exige que as ferramentas possam ser listadas sem autenticação.

serviceDirectoryConfig

object (ServiceDirectoryConfig)

Opcional. Configuração do Diretório de serviços para VPC-SC, usada para resolver nomes de serviços em um perímetro.

tlsConfig

object (TlsConfig)

Opcional. A configuração de TLS. Inclui os certificados de servidor personalizados em que o cliente deve confiar.

customHeaders

map (key: string, value: string)

Opcional. Os cabeçalhos personalizados a serem enviados na solicitação ao servidor MCP. Os valores precisam estar no formato $context.variables.<name_of_variable> e podem ser definidos nas variáveis de sessão. Consulte https://docs.cloud.google.com/customer-engagement-ai/conversational-agents/ps/tool/open-api#openapi-injection para mais detalhes.

Um objeto com uma lista de pares "key": value. Exemplo: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

toolOverrides[]

object (McpToolOverride)

Opcional. Substituições para ferramentas individuais neste conjunto de ferramentas. Isso permite substituir detalhes específicos, como descrições, nomes ou fixar os estados das ferramentas para que não sejam totalmente dinâmicos.

ApiAuthentication

Representação JSON
{

  // 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.
}
Campos
Campo de união auth_config. A configuração de autenticação. auth_config pode ser apenas de um dos tipos a seguir:
apiKeyConfig

object (ApiKeyConfig)

Opcional. Configuração para autenticação de chave de API.

oauthConfig

object (OAuthConfig)

Opcional. Configuração para OAuth.

serviceAgentIdTokenAuthConfig

object (ServiceAgentIdTokenAuthConfig)

Opcional. Configuração para autenticação de token de ID gerada pelo agente de serviço do CES.

serviceAccountAuthConfig

object (ServiceAccountAuthConfig)

Opcional. Configuração para autenticação de conta de serviço.

bearerTokenConfig

object (BearerTokenConfig)

Opcional. Configuração para autenticação de token do portador.

ApiKeyConfig

Representação JSON
{
  "keyName": string,
  "apiKeySecretVersion": string,
  "requestLocation": enum (RequestLocation)
}
Campos
keyName

string

Obrigatório. O nome do parâmetro ou do cabeçalho da chave de API. Por exemplo, Se a solicitação de API for "https://example.com/act?X-Api-Key=", "X-Api-Key" será o nome do parâmetro.

apiKeySecretVersion

string

Obrigatório. O nome do recurso da versão do secret do Secret Manager que armazena a chave de API. Formato: projects/{project}/secrets/{secret}/versions/{version}

Observação: conceda o papel roles/secretmanager.secretAccessor ao agente de serviço do CES service-<PROJECT-NUMBER>@gcp-sa-ces.iam.gserviceaccount.com.

requestLocation

enum (RequestLocation)

Obrigatório. Localização da chave na solicitação.

OAuthConfig

Representação JSON
{
  "oauthGrantType": enum (OauthGrantType),
  "clientId": string,
  "clientSecretVersion": string,
  "tokenEndpoint": string,
  "scopes": [
    string
  ]
}
Campos
oauthGrantType

enum (OauthGrantType)

Obrigatório. Tipos de permissão de acesso OAuth.

clientId

string

Obrigatório. O ID do cliente do provedor OAuth.

clientSecretVersion

string

Obrigatório. O nome do recurso da versão do secret do Secret Manager que armazena a chave secreta do cliente. Formato: projects/{project}/secrets/{secret}/versions/{version}

Observação: conceda o papel roles/secretmanager.secretAccessor ao agente de serviço do CES service-<PROJECT-NUMBER>@gcp-sa-ces.iam.gserviceaccount.com.

tokenEndpoint

string

Obrigatório. O endpoint de token no provedor OAuth para troca por um token de acesso.

scopes[]

string

Opcional. Os escopos do OAuth a serem concedidos.

ServiceAccountAuthConfig

Representação JSON
{
  "serviceAccount": string,
  "scopes": [
    string
  ]
}
Campos
serviceAccount

string

Obrigatório. O endereço de e-mail da conta de serviço usada para autenticação. O CES usa essa conta de serviço para trocar um token de acesso, que é enviado no cabeçalho Authorization da solicitação.

A conta de serviço precisa ter o papel roles/iam.serviceAccountTokenCreator concedido ao agente de serviço do CES service-<PROJECT-NUMBER>@gcp-sa-ces.iam.gserviceaccount.com.

scopes[]

string

Opcional. Os escopos do OAuth a serem concedidos. Se não for especificado, o escopo padrão https://www.googleapis.com/auth/cloud-platform será usado.

BearerTokenConfig

Representação JSON
{
  "token": string
}
Campos
token

string

Obrigatório. O token do portador. Precisa estar no formato $context.variables.<name_of_variable>.

ServiceDirectoryConfig

Representação JSON
{
  "service": string
}
Campos
service

string

Obrigatório. O nome do serviço do Diretório de serviços. Formato: projects/{project}/locations/{location}/namespaces/{namespace}/services/{service}. O local do diretório de serviços precisa ser o mesmo do app.

TlsConfig

Representação JSON
{
  "caCerts": [
    {
      object (CaCert)
    }
  ]
}
Campos
caCerts[]

object (CaCert)

Obrigatório. Especifica uma lista de certificados de CA personalizados permitidos para verificação HTTPS.

CaCert

Representação JSON
{
  "displayName": string,
  "cert": string
}
Campos
displayName

string

Obrigatório. O nome dos certificados de CA personalizados permitidos. Isso pode ser usado para eliminar a ambiguidade dos certificados de CA personalizados.

cert

string (bytes format)

Obrigatório. Os certificados de CA personalizados permitidos (no formato DER) para verificação HTTPS. Isso substitui o repositório de confiança SSL padrão. Se estiver vazio ou não especificado, o CES vai usar o repositório de confiança padrão do Google para verificar certificados. Observação: verifique se os certificados do servidor HTTPS estão assinados com "subject alt name". Por exemplo, um certificado pode ser autoassinado usando o seguinte comando:

   openssl x509 -req -days 200 -in example.com.csr \
     -signkey example.com.key \
     -out example.com.crt \
     -extfile <(printf "\nsubjectAltName='DNS:www.example.com'")

Uma string codificada em base64.

CustomHeadersEntry

Representação JSON
{
  "key": string,
  "value": string
}
Campos
key

string

value

string

McpToolOverride

Representação JSON
{
  "tool": string,
  "nameOverride": string,
  "descriptionOverride": string,
  "snapshot": {
    object (McpToolDefinition)
  }
}
Campos
tool

string

Obrigatório. O nome original da ferramenta, conforme emitido pelo servidor MCP.

nameOverride

string

Opcional. Se presente, essa ferramenta usa esse nome no agente em vez do nome original. Isso é usado principalmente como um alias se o servidor MCP oferecer ferramentas com nomes ruins.

descriptionOverride

string

Opcional. Se presente, essa ferramenta usa essa descrição em vez da descrição original do servidor.

snapshot

object (McpToolDefinition)

Apenas saída. Se presente, essa ferramenta fica "Fixada" e usa os valores de snapshot como substitutos se o servidor ficar temporariamente indisponível ou se não houver substituição.

McpToolDefinition

Representação JSON
{
  "description": string,
  "inputSchema": {
    object (Schema)
  },
  "outputSchema": {
    object (Schema)
  }
}
Campos
description

string

Apenas saída. A descrição da ferramenta MCP. Isso pode ser substituído por description_override em McpToolOverride.

inputSchema

object (Schema)

Apenas saída. O esquema dos argumentos de entrada da ferramenta MCP.

outputSchema

object (Schema)

Apenas saída. O esquema dos argumentos de saída da ferramenta MCP.

Esquema

Representação JSON
{
  "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.
}
Campos
type

enum (Type)

Obrigatório. O tipo dos dados.

properties

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

Opcional. Propriedades de Type.OBJECT.

Um objeto com uma lista de pares "key": value. Exemplo: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

required[]

string

Opcional. Propriedades obrigatórias de Type.OBJECT.

description

string

Opcional. A descrição dos dados.

items

object (Schema)

Opcional. Esquema dos elementos de Type.ARRAY.

nullable

boolean

Opcional. Indica se o valor pode ser nulo.

uniqueItems

boolean

Opcional. Indica que os itens na matriz precisam ser exclusivos. Aplicável apenas a TYPE.ARRAY.

prefixItems[]

object (Schema)

Opcional. Esquemas de elementos iniciais de Type.ARRAY.

additionalProperties

object (Schema)

Opcional. Pode ser um booleano ou um objeto e controla a presença de propriedades adicionais.

anyOf[]

object (Schema)

Opcional. O valor precisa ser validado em relação a qualquer um (um ou mais) dos subesquemas na lista.

enum[]

string

Opcional. Valores possíveis do elemento de tipo primitivo com formato de enumeração. Exemplos: 1. Podemos definir a direção como : {type:STRING, format:enum, enum:["EAST", NORTH", "SOUTH", "WEST"]} 2. Podemos definir o número do apartamento como : {type:INTEGER, format:enum, enum:["101", "201", "301"]}

default

value (Value format)

Opcional. Valor padrão dos dados.

ref

string

Opcional. Permite referências indiretas entre nós de esquema. O valor precisa ser uma referência válida a um filho do defs raiz.

Por exemplo, o esquema a seguir define uma referência a um nó de esquema chamado "Pet":

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

O valor da propriedade "pet" é uma referência ao nó do esquema chamado "Pet". Confira detalhes em https://json-schema.org/understanding-json-schema/structuring (em inglês).

defs

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

Opcional. Um mapa de definições para uso por ref. Só é permitido na raiz do esquema.

Um objeto com uma lista de pares "key": value. Exemplo: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

title

string

Opcional. O título do esquema.

minItems

string (int64 format)

Opcional. Número mínimo de elementos para Type.ARRAY.

maxItems

string (int64 format)

Opcional. Número máximo de elementos para Type.ARRAY.

Campo de união _minimum.

_minimum pode ser apenas de um dos tipos a seguir:

minimum

number

Opcional. Valor mínimo para Type.INTEGER e Type.NUMBER.

Campo de união _maximum.

_maximum pode ser apenas de um dos tipos a seguir:

maximum

number

Opcional. Valor máximo para Type.INTEGER e Type.NUMBER.

PropertiesEntry

Representação JSON
{
  "key": string,
  "value": {
    object (Schema)
  }
}
Campos
key

string

value

object (Schema)

Valor

Representação JSON
{

  // 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.
}
Campos
Campo de união kind. O tipo de valor. kind pode ser apenas de um dos tipos a seguir:
nullValue

null

Representa um null JSON.

numberValue

number

Representa um número JSON. Não pode ser NaN, Infinity ou -Infinity, porque esses valores não são compatíveis com JSON. Isso também não pode representar valores Int64 grandes, já que o formato JSON geralmente não os aceita no tipo de número.

stringValue

string

Representa uma string JSON.

boolValue

boolean

Representa um booleano JSON (literal true ou false em JSON).

structValue

object (Struct format)

Representa um objeto JSON.

listValue

array (ListValue format)

Representa uma matriz JSON.

Struct

Representação JSON
{
  "fields": {
    string: value,
    ...
  }
}
Campos
fields

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

Mapa não ordenado de valores com tipagem dinâmica.

Um objeto com uma lista de pares "key": value. Exemplo: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

FieldsEntry

Representação JSON
{
  "key": string,
  "value": value
}
Campos
key

string

value

value (Value format)

ListValue

Representação JSON
{
  "values": [
    value
  ]
}
Campos
values[]

value (Value format)

Campo repetido de valores digitados dinamicamente.

DefsEntry

Representação JSON
{
  "key": string,
  "value": {
    object (Schema)
  }
}
Campos
key

string

value

object (Schema)

OpenApiToolset

Representação JSON
{
  "openApiSchema": string,
  "apiAuthentication": {
    object (ApiAuthentication)
  },
  "tlsConfig": {
    object (TlsConfig)
  },
  "serviceDirectoryConfig": {
    object (ServiceDirectoryConfig)
  },
  "ignoreUnknownFields": boolean,
  "url": string
}
Campos
openApiSchema

string

Obrigatório. O esquema OpenAPI do conjunto de ferramentas.

apiAuthentication

object (ApiAuthentication)

Opcional. Informações de autenticação exigidas pela API.

tlsConfig

object (TlsConfig)

Opcional. A configuração de TLS. Inclui os certificados de servidor personalizados

serviceDirectoryConfig

object (ServiceDirectoryConfig)

Opcional. Configuração do Diretório de serviços.

ignoreUnknownFields

boolean

Opcional. Se for "true", o agente vai ignorar campos desconhecidos na resposta da API para todas as operações definidas no esquema OpenAPI.

url

string

Opcional. O URL do servidor do esquema da API aberta. Esse campo só é definido em conjuntos de ferramentas nas dependências do ambiente durante o processo de exportação se o esquema contiver um URL do servidor. Durante o processo de importação, se esse URL estiver presente nas dependências do ambiente e o esquema tiver o marcador de posição $env_var, ele vai substituir o marcador no esquema.

ConnectorToolset

Representação JSON
{
  "connection": string,
  "authConfig": {
    object (EndUserAuthConfig)
  },
  "connectorActions": [
    {
      object (Action)
    }
  ]
}
Campos
connection

string

Obrigatório. O nome completo do recurso da conexão referenciada do Integration Connectors. Formato: projects/{project}/locations/{location}/connections/{connection}

authConfig

object (EndUserAuthConfig)

Opcional. Configura como a autenticação é processada nos Integration Connectors. Por padrão, uma autenticação de administrador é transmitida nas solicitações da API Integration Connectors. É possível substituir essa configuração com outra de autenticação do usuário final. Observação: a conexão precisa ter a substituição de autenticação ativada para especificar uma configuração de EUC aqui. Caso contrário, a criação do conjunto de ferramentas vai falhar. Consulte: https://cloud.google.com/application-integration/docs/configure-connectors-task#configure-authentication-override

connectorActions[]

object (Action)

Obrigatório. A lista de ações do conector/operações de entidade para gerar ferramentas.

EndUserAuthConfig

Representação JSON
{

  // 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.
}
Campos
Campo de união auth_config. A configuração de autenticação. auth_config pode ser apenas de um dos tipos a seguir:
oauth2AuthCodeConfig

object (Oauth2AuthCodeConfig)

Autenticação de código de autorização do OAuth 2.0.

oauth2JwtBearerConfig

object (Oauth2JwtBearerConfig)

Autenticação de concessão de autorização OAuth 2.0 do perfil JWT.

Oauth2AuthCodeConfig

Representação JSON
{
  "oauthToken": string
}
Campos
oauthToken

string

Obrigatório. Nome do parâmetro do token OAuth a ser transmitido. Precisa estar no formato $context.variables.<name_of_variable>.

Oauth2JwtBearerConfig

Representação JSON
{
  "issuer": string,
  "subject": string,
  "clientKey": string
}
Campos
issuer

string

Obrigatório. Nome do parâmetro do emissor a ser transmitido. Precisa estar no formato $context.variables.<name_of_variable>.

subject

string

Obrigatório. Nome do parâmetro de assunto a ser transmitido. Precisa estar no formato $context.variables.<name_of_variable>.

clientKey

string

Obrigatório. Nome do parâmetro do cliente a ser transmitido. Precisa estar no formato $context.variables.<name_of_variable>.

Ação

Representação JSON
{
  "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.
}
Campos
inputFields[]

string

Opcional. Campos de entidade a serem usados como entradas para a operação. Se nenhum campo for especificado, todos os campos da entidade serão usados.

outputFields[]

string

Opcional. Campos de entidade a serem retornados da operação. Se nenhum campo for especificado, todos os campos da entidade serão retornados.

Campo de união action_spec. Especificação de uma ação a ser configurada para uso da ferramenta. action_spec pode ser apenas de um dos tipos a seguir:
connectionActionId

string

ID de uma ação de conexão para a ferramenta usar.

entityOperation

object (EntityOperation)

Configuração de operação de entidade para a ferramenta usar.

EntityOperation

Representação JSON
{
  "entityId": string,
  "operation": enum (OperationType)
}
Campos
entityId

string

Obrigatório. ID da entidade.

operation

enum (OperationType)

Obrigatório. Operação a ser realizada na entidade.

Duração

Representação JSON
{
  "seconds": string,
  "nanos": integer
}
Campos
seconds

string (int64 format)

Segundos assinados do período. Precisa estar entre -315.576.000.000 e +315.576.000.000 (inclusive). Observação: esses limites são calculados com base em: 60 s/min * 60 min/h * 24 h/dia * 365,25 dias/ano * 10.000 anos

nanos

integer

Frações assinadas de um segundo com resolução de nanossegundos do período. Durações menores que um segundo são representadas com um campo seconds 0 e um campo nanos positivo ou negativo. Para durações de um segundo ou mais, um valor diferente de zero para o campo nanos precisa ter o mesmo sinal do campo seconds. Precisa estar entre -999.999.999 e +999.999.999 (inclusive).

Carimbo de data/hora

Representação JSON
{
  "seconds": string,
  "nanos": integer
}
Campos
seconds

string (int64 format)

Representa os segundos do horário UTC desde a época Unix 1970-01-01T00:00:00Z. Precisa estar entre -62135596800 e 253402300799 (o que corresponde a 0001-01-01T00:00:00Z a 9999-12-31T23:59:59Z).

nanos

integer

Frações não negativas de um segundo com resolução de nanossegundos. Esse campo é a parte de nanossegundos da duração, não uma alternativa aos segundos. Os valores de segundos negativos com frações ainda precisam ter valores em nanossegundos não negativos que representam períodos posteriores. O valor precisa ser de 0 a 999.999.999 (inclusive).

ToolFakeConfig

Representação JSON
{
  "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.
}
Campos
enableFakeMode

boolean

Opcional. Indica se a ferramenta está usando o modo simulado.

Campo de união tool_response. A resposta é estática ou fornecida por uma função Python. tool_response pode ser apenas de um dos tipos a seguir:
codeBlock

object (CodeBlock)

Opcional. Bloco de código que será executado em vez de uma chamada de ferramenta real.

CodeBlock

Representação JSON
{
  "pythonCode": string
}
Campos
pythonCode

string

Obrigatório. Código Python que será invocado no modo falso da ferramenta. Assinatura esperada da função Python: para capturar todas as chamadas de ferramenta: def fake_tool_call(tool: Tool, input: dict[str, Any], callback_context: CallbackContext) -> Optional[dict[str, Any]]: para capturar uma chamada de ferramenta específica: def fake_{tool_id}(tool: Tool, input: dict[str, Any], callback_context: CallbackContext) -> Optional[dict[str, Any]]: se a função retornar "None", a ferramenta real será invocada.

RequestLocation

O local da chave de API na solicitação.

Tipos enumerados
REQUEST_LOCATION_UNSPECIFIED Não especificado. Esse valor não deve ser usado.
HEADER Representa a chave no cabeçalho HTTP.
QUERY_STRING Representa a chave na string de consulta.

OauthGrantType

Tipos de permissão de acesso OAuth. Somente a concessão de credenciais do cliente é compatível.

Tipos enumerados
OAUTH_GRANT_TYPE_UNSPECIFIED Não especificado. O padrão é CLIENT_CREDENTIAL.
CLIENT_CREDENTIAL Representa o fluxo de credenciais do cliente.

Tipo

Tipos de dados da OpenAPI.

Tipos enumerados
TYPE_UNSPECIFIED Tipo não especificado.
STRING Tipo de string.
INTEGER Tipo inteiro.
NUMBER Tipo de número.
BOOLEAN Tipo booleano.
OBJECT Tipo de objeto.
ARRAY Tipo de matriz.

NullValue

Representa um null JSON.

NullValue é um sentinela que usa uma enumeração com apenas um valor para representar o valor nulo da união de tipos Value.

Um campo do tipo NullValue com qualquer valor diferente de 0 é considerado inválido. A maioria dos serializadores ProtoJSON vai emitir um Value com um null_value definido como um null JSON, independente do valor inteiro, e, portanto, fará uma viagem de ida e volta para um valor 0.

Tipos enumerados
NULL_VALUE Valor nulo.

OperationType

A operação a ser realizada na entidade.

Tipos enumerados
OPERATION_TYPE_UNSPECIFIED Tipo de operação não especificado. Inválido. A criação/atualização de ConnectorTool vai falhar.
LIST Operação de listagem.
GET Receber operação.
CREATE Criar operação.
UPDATE Operação de atualização.
DELETE Operação de exclusão.

ExecutionType

O tipo de execução da ferramenta ou do conjunto de ferramentas.

Tipos enumerados
EXECUTION_TYPE_UNSPECIFIED O tipo de execução não foi especificado. Quando não especificado, o padrão é SYNCHRONOUS.
SYNCHRONOUS A ferramenta é executada de forma síncrona. A sessão fica bloqueada até que a ferramenta retorne.
ASYNCHRONOUS A ferramenta é executada de forma assíncrona. A sessão vai continuar enquanto a ferramenta estiver em execução.

Anotações de ferramentas

As anotações de ferramentas são enviadas aos clientes do MCP para descrever o risco básico de uma determinada ferramenta. A maioria dos clientes trata essas dicas como não confiáveis, mas elas podem ser usadas para decidir quando um pedido de confirmação pode ser enviado a um usuário.

Além da string de título, as seguintes dicas booleanas são definidas da seguinte maneira:

  • readOnlyHint: se for "true", a ferramenta não vai modificar o ambiente. Padrão: false.
  • destructiveHint: se for "true", a ferramenta poderá realizar ações destrutivas. Se for "false", a ferramenta só poderá realizar ações de adição. Padrão: verdadeiro.
  • idempotentHint: se for "true", chamar a ferramenta repetidamente com os mesmos argumentos não terá efeito adicional no ambiente dela. Padrão: false.
  • openWorldHint: se for "true", a ferramenta poderá interagir com um "mundo aberto" de entidades externas. Se for "false", a ferramenta só poderá interagir com entidades internas. Por exemplo, uma ferramenta de pesquisa na Web seria de mundo aberto, enquanto uma ferramenta de memória não seria.

Dica destrutiva: ✅ | Dica idempotente: ❌ | Dica somente leitura: ❌ | Dica de mundo aberto: ❌