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 ( |
| Campos | |
|---|---|
parent |
Obrigatório. O nome do recurso do app em que um conjunto de ferramentas será criado. |
toolsetId |
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 |
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 ( |
| Campos | |
|---|---|
name |
Identificador. O identificador exclusivo do conjunto de ferramentas. Formato: |
displayName |
Opcional. O nome de exibição do conjunto de ferramentas. Precisa ser exclusivo no mesmo app. |
description |
Opcional. A descrição do conjunto de ferramentas. |
timeout |
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 Duração em segundos com até nove dígitos fracionários, terminando em " |
createTime |
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: |
updateTime |
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: |
etag |
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 |
Opcional. O tipo de execução das ferramentas no conjunto. |
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 |
Opcional. Um conjunto de ferramentas que contém uma lista de ferramentas oferecidas pelo servidor MCP. |
openApiToolset |
Opcional. Um conjunto de ferramentas que contém uma lista de ferramentas definidas por um esquema da OpenAPI. |
connectorToolset |
Opcional. Um conjunto de ferramentas que gera ferramentas de uma conexão do Integration Connectors. |
McpToolset
| Representação JSON |
|---|
{ "serverAddress": string, "apiAuthentication": { object ( |
| Campos | |
|---|---|
serverAddress |
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 |
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 |
Opcional. Configuração do Diretório de serviços para VPC-SC, usada para resolver nomes de serviços em um perímetro. |
tlsConfig |
Opcional. A configuração de TLS. Inclui os certificados de servidor personalizados em que o cliente deve confiar. |
customHeaders |
Opcional. Os cabeçalhos personalizados a serem enviados na solicitação ao servidor MCP. Os valores precisam estar no formato Um objeto com uma lista de pares |
toolOverrides[] |
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 |
| 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 |
Opcional. Configuração para autenticação de chave de API. |
oauthConfig |
Opcional. Configuração para OAuth. |
serviceAgentIdTokenAuthConfig |
Opcional. Configuração para autenticação de token de ID gerada pelo agente de serviço do CES. |
serviceAccountAuthConfig |
Opcional. Configuração para autenticação de conta de serviço. |
bearerTokenConfig |
Opcional. Configuração para autenticação de token do portador. |
ApiKeyConfig
| Representação JSON |
|---|
{
"keyName": string,
"apiKeySecretVersion": string,
"requestLocation": enum ( |
| Campos | |
|---|---|
keyName |
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= |
apiKeySecretVersion |
Obrigatório. O nome do recurso da versão do secret do Secret Manager que armazena a chave de API. Formato: Observação: conceda o papel |
requestLocation |
Obrigatório. Localização da chave na solicitação. |
OAuthConfig
| Representação JSON |
|---|
{
"oauthGrantType": enum ( |
| Campos | |
|---|---|
oauthGrantType |
Obrigatório. Tipos de permissão de acesso OAuth. |
clientId |
Obrigatório. O ID do cliente do provedor OAuth. |
clientSecretVersion |
Obrigatório. O nome do recurso da versão do secret do Secret Manager que armazena a chave secreta do cliente. Formato: Observação: conceda o papel |
tokenEndpoint |
Obrigatório. O endpoint de token no provedor OAuth para troca por um token de acesso. |
scopes[] |
Opcional. Os escopos do OAuth a serem concedidos. |
ServiceAccountAuthConfig
| Representação JSON |
|---|
{ "serviceAccount": string, "scopes": [ string ] } |
| Campos | |
|---|---|
serviceAccount |
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 A conta de serviço precisa ter o papel |
scopes[] |
Opcional. Os escopos do OAuth a serem concedidos. Se não for especificado, o escopo padrão |
BearerTokenConfig
| Representação JSON |
|---|
{ "token": string } |
| Campos | |
|---|---|
token |
Obrigatório. O token do portador. Precisa estar no formato |
ServiceDirectoryConfig
| Representação JSON |
|---|
{ "service": string } |
| Campos | |
|---|---|
service |
Obrigatório. O nome do serviço do Diretório de serviços. Formato: |
TlsConfig
| Representação JSON |
|---|
{
"caCerts": [
{
object ( |
| Campos | |
|---|---|
caCerts[] |
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 |
Obrigatório. O nome dos certificados de CA personalizados permitidos. Isso pode ser usado para eliminar a ambiguidade dos certificados de CA personalizados. |
cert |
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: Uma string codificada em base64. |
CustomHeadersEntry
| Representação JSON |
|---|
{ "key": string, "value": string } |
| Campos | |
|---|---|
key |
|
value |
|
McpToolOverride
| Representação JSON |
|---|
{
"tool": string,
"nameOverride": string,
"descriptionOverride": string,
"snapshot": {
object ( |
| Campos | |
|---|---|
tool |
Obrigatório. O nome original da ferramenta, conforme emitido pelo servidor MCP. |
nameOverride |
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 |
Opcional. Se presente, essa ferramenta usa essa descrição em vez da descrição original do servidor. |
snapshot |
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 ( |
| Campos | |
|---|---|
description |
Apenas saída. A descrição da ferramenta MCP. Isso pode ser substituído por |
inputSchema |
Apenas saída. O esquema dos argumentos de entrada da ferramenta MCP. |
outputSchema |
Apenas saída. O esquema dos argumentos de saída da ferramenta MCP. |
Esquema
| Representação JSON |
|---|
{ "type": enum ( |
| Campos | |
|---|---|
type |
Obrigatório. O tipo dos dados. |
properties |
Opcional. Propriedades de Type.OBJECT. Um objeto com uma lista de pares |
required[] |
Opcional. Propriedades obrigatórias de Type.OBJECT. |
description |
Opcional. A descrição dos dados. |
items |
Opcional. Esquema dos elementos de Type.ARRAY. |
nullable |
Opcional. Indica se o valor pode ser nulo. |
uniqueItems |
Opcional. Indica que os itens na matriz precisam ser exclusivos. Aplicável apenas a TYPE.ARRAY. |
prefixItems[] |
Opcional. Esquemas de elementos iniciais de Type.ARRAY. |
additionalProperties |
Opcional. Pode ser um booleano ou um objeto e controla a presença de propriedades adicionais. |
anyOf[] |
Opcional. O valor precisa ser validado em relação a qualquer um (um ou mais) dos subesquemas na lista. |
enum[] |
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 |
Opcional. Valor padrão dos dados. |
ref |
Opcional. Permite referências indiretas entre nós de esquema. O valor precisa ser uma referência válida a um filho do Por exemplo, o esquema a seguir define uma referência a um nó de esquema chamado "Pet": 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 |
Opcional. Um mapa de definições para uso por Um objeto com uma lista de pares |
title |
Opcional. O título do esquema. |
minItems |
Opcional. Número mínimo de elementos para Type.ARRAY. |
maxItems |
Opcional. Número máximo de elementos para Type.ARRAY. |
Campo de união
|
|
minimum |
Opcional. Valor mínimo para Type.INTEGER e Type.NUMBER. |
Campo de união
|
|
maximum |
Opcional. Valor máximo para Type.INTEGER e Type.NUMBER. |
PropertiesEntry
| Representação JSON |
|---|
{
"key": string,
"value": {
object ( |
| Campos | |
|---|---|
key |
|
value |
|
Valor
| Representação JSON |
|---|
{ // Union field |
| Campos | |
|---|---|
Campo de união kind. O tipo de valor. kind pode ser apenas de um dos tipos a seguir: |
|
nullValue |
Representa um |
numberValue |
Representa um número JSON. Não pode ser |
stringValue |
Representa uma string JSON. |
boolValue |
Representa um booleano JSON (literal |
structValue |
Representa um objeto JSON. |
listValue |
Representa uma matriz JSON. |
Struct
| Representação JSON |
|---|
{ "fields": { string: value, ... } } |
| Campos | |
|---|---|
fields |
Mapa não ordenado de valores com tipagem dinâmica. Um objeto com uma lista de pares |
FieldsEntry
| Representação JSON |
|---|
{ "key": string, "value": value } |
| Campos | |
|---|---|
key |
|
value |
|
ListValue
| Representação JSON |
|---|
{ "values": [ value ] } |
| Campos | |
|---|---|
values[] |
Campo repetido de valores digitados dinamicamente. |
DefsEntry
| Representação JSON |
|---|
{
"key": string,
"value": {
object ( |
| Campos | |
|---|---|
key |
|
value |
|
OpenApiToolset
| Representação JSON |
|---|
{ "openApiSchema": string, "apiAuthentication": { object ( |
| Campos | |
|---|---|
openApiSchema |
Obrigatório. O esquema OpenAPI do conjunto de ferramentas. |
apiAuthentication |
Opcional. Informações de autenticação exigidas pela API. |
tlsConfig |
Opcional. A configuração de TLS. Inclui os certificados de servidor personalizados |
serviceDirectoryConfig |
Opcional. Configuração do Diretório de serviços. |
ignoreUnknownFields |
Opcional. Se for "true", o agente vai ignorar campos desconhecidos na resposta da API para todas as operações definidas no esquema OpenAPI. |
url |
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 ( |
| Campos | |
|---|---|
connection |
Obrigatório. O nome completo do recurso da conexão referenciada do Integration Connectors. Formato: |
authConfig |
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[] |
Obrigatório. A lista de ações do conector/operações de entidade para gerar ferramentas. |
EndUserAuthConfig
| Representação JSON |
|---|
{ // Union field |
| 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 |
Autenticação de código de autorização do OAuth 2.0. |
oauth2JwtBearerConfig |
Autenticação de concessão de autorização OAuth 2.0 do perfil JWT. |
Oauth2AuthCodeConfig
| Representação JSON |
|---|
{ "oauthToken": string } |
| Campos | |
|---|---|
oauthToken |
Obrigatório. Nome do parâmetro do token OAuth a ser transmitido. Precisa estar no formato |
Oauth2JwtBearerConfig
| Representação JSON |
|---|
{ "issuer": string, "subject": string, "clientKey": string } |
| Campos | |
|---|---|
issuer |
Obrigatório. Nome do parâmetro do emissor a ser transmitido. Precisa estar no formato |
subject |
Obrigatório. Nome do parâmetro de assunto a ser transmitido. Precisa estar no formato |
clientKey |
Obrigatório. Nome do parâmetro do cliente a ser transmitido. Precisa estar no formato |
Ação
| Representação JSON |
|---|
{ "inputFields": [ string ], "outputFields": [ string ], // Union field |
| Campos | |
|---|---|
inputFields[] |
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[] |
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 |
ID de uma ação de conexão para a ferramenta usar. |
entityOperation |
Configuração de operação de entidade para a ferramenta usar. |
EntityOperation
| Representação JSON |
|---|
{
"entityId": string,
"operation": enum ( |
| Campos | |
|---|---|
entityId |
Obrigatório. ID da entidade. |
operation |
Obrigatório. Operação a ser realizada na entidade. |
Duração
| Representação JSON |
|---|
{ "seconds": string, "nanos": integer } |
| Campos | |
|---|---|
seconds |
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 |
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 |
Carimbo de data/hora
| Representação JSON |
|---|
{ "seconds": string, "nanos": integer } |
| Campos | |
|---|---|
seconds |
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 |
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 |
| Campos | |
|---|---|
enableFakeMode |
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 |
Opcional. Bloco de código que será executado em vez de uma chamada de ferramenta real. |
CodeBlock
| Representação JSON |
|---|
{ "pythonCode": string } |
| Campos | |
|---|---|
pythonCode |
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 ( |
| Campos | |
|---|---|
name |
Identificador. O identificador exclusivo do conjunto de ferramentas. Formato: |
displayName |
Opcional. O nome de exibição do conjunto de ferramentas. Precisa ser exclusivo no mesmo app. |
description |
Opcional. A descrição do conjunto de ferramentas. |
timeout |
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 Duração em segundos com até nove dígitos fracionários, terminando em " |
createTime |
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: |
updateTime |
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: |
etag |
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 |
Opcional. O tipo de execução das ferramentas no conjunto. |
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 |
Opcional. Um conjunto de ferramentas que contém uma lista de ferramentas oferecidas pelo servidor MCP. |
openApiToolset |
Opcional. Um conjunto de ferramentas que contém uma lista de ferramentas definidas por um esquema da OpenAPI. |
connectorToolset |
Opcional. Um conjunto de ferramentas que gera ferramentas de uma conexão do Integration Connectors. |
McpToolset
| Representação JSON |
|---|
{ "serverAddress": string, "apiAuthentication": { object ( |
| Campos | |
|---|---|
serverAddress |
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 |
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 |
Opcional. Configuração do Diretório de serviços para VPC-SC, usada para resolver nomes de serviços em um perímetro. |
tlsConfig |
Opcional. A configuração de TLS. Inclui os certificados de servidor personalizados em que o cliente deve confiar. |
customHeaders |
Opcional. Os cabeçalhos personalizados a serem enviados na solicitação ao servidor MCP. Os valores precisam estar no formato Um objeto com uma lista de pares |
toolOverrides[] |
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 |
| 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 |
Opcional. Configuração para autenticação de chave de API. |
oauthConfig |
Opcional. Configuração para OAuth. |
serviceAgentIdTokenAuthConfig |
Opcional. Configuração para autenticação de token de ID gerada pelo agente de serviço do CES. |
serviceAccountAuthConfig |
Opcional. Configuração para autenticação de conta de serviço. |
bearerTokenConfig |
Opcional. Configuração para autenticação de token do portador. |
ApiKeyConfig
| Representação JSON |
|---|
{
"keyName": string,
"apiKeySecretVersion": string,
"requestLocation": enum ( |
| Campos | |
|---|---|
keyName |
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= |
apiKeySecretVersion |
Obrigatório. O nome do recurso da versão do secret do Secret Manager que armazena a chave de API. Formato: Observação: conceda o papel |
requestLocation |
Obrigatório. Localização da chave na solicitação. |
OAuthConfig
| Representação JSON |
|---|
{
"oauthGrantType": enum ( |
| Campos | |
|---|---|
oauthGrantType |
Obrigatório. Tipos de permissão de acesso OAuth. |
clientId |
Obrigatório. O ID do cliente do provedor OAuth. |
clientSecretVersion |
Obrigatório. O nome do recurso da versão do secret do Secret Manager que armazena a chave secreta do cliente. Formato: Observação: conceda o papel |
tokenEndpoint |
Obrigatório. O endpoint de token no provedor OAuth para troca por um token de acesso. |
scopes[] |
Opcional. Os escopos do OAuth a serem concedidos. |
ServiceAccountAuthConfig
| Representação JSON |
|---|
{ "serviceAccount": string, "scopes": [ string ] } |
| Campos | |
|---|---|
serviceAccount |
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 A conta de serviço precisa ter o papel |
scopes[] |
Opcional. Os escopos do OAuth a serem concedidos. Se não for especificado, o escopo padrão |
BearerTokenConfig
| Representação JSON |
|---|
{ "token": string } |
| Campos | |
|---|---|
token |
Obrigatório. O token do portador. Precisa estar no formato |
ServiceDirectoryConfig
| Representação JSON |
|---|
{ "service": string } |
| Campos | |
|---|---|
service |
Obrigatório. O nome do serviço do Diretório de serviços. Formato: |
TlsConfig
| Representação JSON |
|---|
{
"caCerts": [
{
object ( |
| Campos | |
|---|---|
caCerts[] |
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 |
Obrigatório. O nome dos certificados de CA personalizados permitidos. Isso pode ser usado para eliminar a ambiguidade dos certificados de CA personalizados. |
cert |
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: Uma string codificada em base64. |
CustomHeadersEntry
| Representação JSON |
|---|
{ "key": string, "value": string } |
| Campos | |
|---|---|
key |
|
value |
|
McpToolOverride
| Representação JSON |
|---|
{
"tool": string,
"nameOverride": string,
"descriptionOverride": string,
"snapshot": {
object ( |
| Campos | |
|---|---|
tool |
Obrigatório. O nome original da ferramenta, conforme emitido pelo servidor MCP. |
nameOverride |
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 |
Opcional. Se presente, essa ferramenta usa essa descrição em vez da descrição original do servidor. |
snapshot |
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 ( |
| Campos | |
|---|---|
description |
Apenas saída. A descrição da ferramenta MCP. Isso pode ser substituído por |
inputSchema |
Apenas saída. O esquema dos argumentos de entrada da ferramenta MCP. |
outputSchema |
Apenas saída. O esquema dos argumentos de saída da ferramenta MCP. |
Esquema
| Representação JSON |
|---|
{ "type": enum ( |
| Campos | |
|---|---|
type |
Obrigatório. O tipo dos dados. |
properties |
Opcional. Propriedades de Type.OBJECT. Um objeto com uma lista de pares |
required[] |
Opcional. Propriedades obrigatórias de Type.OBJECT. |
description |
Opcional. A descrição dos dados. |
items |
Opcional. Esquema dos elementos de Type.ARRAY. |
nullable |
Opcional. Indica se o valor pode ser nulo. |
uniqueItems |
Opcional. Indica que os itens na matriz precisam ser exclusivos. Aplicável apenas a TYPE.ARRAY. |
prefixItems[] |
Opcional. Esquemas de elementos iniciais de Type.ARRAY. |
additionalProperties |
Opcional. Pode ser um booleano ou um objeto e controla a presença de propriedades adicionais. |
anyOf[] |
Opcional. O valor precisa ser validado em relação a qualquer um (um ou mais) dos subesquemas na lista. |
enum[] |
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 |
Opcional. Valor padrão dos dados. |
ref |
Opcional. Permite referências indiretas entre nós de esquema. O valor precisa ser uma referência válida a um filho do Por exemplo, o esquema a seguir define uma referência a um nó de esquema chamado "Pet": 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 |
Opcional. Um mapa de definições para uso por Um objeto com uma lista de pares |
title |
Opcional. O título do esquema. |
minItems |
Opcional. Número mínimo de elementos para Type.ARRAY. |
maxItems |
Opcional. Número máximo de elementos para Type.ARRAY. |
Campo de união
|
|
minimum |
Opcional. Valor mínimo para Type.INTEGER e Type.NUMBER. |
Campo de união
|
|
maximum |
Opcional. Valor máximo para Type.INTEGER e Type.NUMBER. |
PropertiesEntry
| Representação JSON |
|---|
{
"key": string,
"value": {
object ( |
| Campos | |
|---|---|
key |
|
value |
|
Valor
| Representação JSON |
|---|
{ // Union field |
| Campos | |
|---|---|
Campo de união kind. O tipo de valor. kind pode ser apenas de um dos tipos a seguir: |
|
nullValue |
Representa um |
numberValue |
Representa um número JSON. Não pode ser |
stringValue |
Representa uma string JSON. |
boolValue |
Representa um booleano JSON (literal |
structValue |
Representa um objeto JSON. |
listValue |
Representa uma matriz JSON. |
Struct
| Representação JSON |
|---|
{ "fields": { string: value, ... } } |
| Campos | |
|---|---|
fields |
Mapa não ordenado de valores com tipagem dinâmica. Um objeto com uma lista de pares |
FieldsEntry
| Representação JSON |
|---|
{ "key": string, "value": value } |
| Campos | |
|---|---|
key |
|
value |
|
ListValue
| Representação JSON |
|---|
{ "values": [ value ] } |
| Campos | |
|---|---|
values[] |
Campo repetido de valores digitados dinamicamente. |
DefsEntry
| Representação JSON |
|---|
{
"key": string,
"value": {
object ( |
| Campos | |
|---|---|
key |
|
value |
|
OpenApiToolset
| Representação JSON |
|---|
{ "openApiSchema": string, "apiAuthentication": { object ( |
| Campos | |
|---|---|
openApiSchema |
Obrigatório. O esquema OpenAPI do conjunto de ferramentas. |
apiAuthentication |
Opcional. Informações de autenticação exigidas pela API. |
tlsConfig |
Opcional. A configuração de TLS. Inclui os certificados de servidor personalizados |
serviceDirectoryConfig |
Opcional. Configuração do Diretório de serviços. |
ignoreUnknownFields |
Opcional. Se for "true", o agente vai ignorar campos desconhecidos na resposta da API para todas as operações definidas no esquema OpenAPI. |
url |
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 ( |
| Campos | |
|---|---|
connection |
Obrigatório. O nome completo do recurso da conexão referenciada do Integration Connectors. Formato: |
authConfig |
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[] |
Obrigatório. A lista de ações do conector/operações de entidade para gerar ferramentas. |
EndUserAuthConfig
| Representação JSON |
|---|
{ // Union field |
| 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 |
Autenticação de código de autorização do OAuth 2.0. |
oauth2JwtBearerConfig |
Autenticação de concessão de autorização OAuth 2.0 do perfil JWT. |
Oauth2AuthCodeConfig
| Representação JSON |
|---|
{ "oauthToken": string } |
| Campos | |
|---|---|
oauthToken |
Obrigatório. Nome do parâmetro do token OAuth a ser transmitido. Precisa estar no formato |
Oauth2JwtBearerConfig
| Representação JSON |
|---|
{ "issuer": string, "subject": string, "clientKey": string } |
| Campos | |
|---|---|
issuer |
Obrigatório. Nome do parâmetro do emissor a ser transmitido. Precisa estar no formato |
subject |
Obrigatório. Nome do parâmetro de assunto a ser transmitido. Precisa estar no formato |
clientKey |
Obrigatório. Nome do parâmetro do cliente a ser transmitido. Precisa estar no formato |
Ação
| Representação JSON |
|---|
{ "inputFields": [ string ], "outputFields": [ string ], // Union field |
| Campos | |
|---|---|
inputFields[] |
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[] |
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 |
ID de uma ação de conexão para a ferramenta usar. |
entityOperation |
Configuração de operação de entidade para a ferramenta usar. |
EntityOperation
| Representação JSON |
|---|
{
"entityId": string,
"operation": enum ( |
| Campos | |
|---|---|
entityId |
Obrigatório. ID da entidade. |
operation |
Obrigatório. Operação a ser realizada na entidade. |
Duração
| Representação JSON |
|---|
{ "seconds": string, "nanos": integer } |
| Campos | |
|---|---|
seconds |
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 |
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 |
Carimbo de data/hora
| Representação JSON |
|---|
{ "seconds": string, "nanos": integer } |
| Campos | |
|---|---|
seconds |
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 |
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 |
| Campos | |
|---|---|
enableFakeMode |
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 |
Opcional. Bloco de código que será executado em vez de uma chamada de ferramenta real. |
CodeBlock
| Representação JSON |
|---|
{ "pythonCode": string } |
| Campos | |
|---|---|
pythonCode |
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: ❌