工具:list_toolsets
列出指定应用中的工具集。
以下示例演示了如何使用 curl 调用 list_toolsets MCP 工具。
| 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": "list_toolsets", "arguments": { // provide these details according to the tool's MCP specification } }, "jsonrpc": "2.0", "id": 1 }' |
输入架构
AgentService.ListToolsets 的请求消息。
ListToolsetsRequest
| JSON 表示法 |
|---|
{ "parent": string, "pageSize": integer, "pageToken": string, "filter": string, "orderBy": string } |
| 字段 | |
|---|---|
parent |
必需。要列出工具集的应用的资源名称。 |
pageSize |
可选。请求的页面大小。 服务器返回的项可能要比请求的少。如果未指定,服务器将选择合适的默认值。 |
pageToken |
可选。从上一次列表 |
filter |
可选。列出工具集时要应用的过滤条件。如需了解详情,请参阅 https://google.aip.dev/160。 |
orderBy |
可选。要排序的字段。仅支持“name”和“create_time”。如需了解详情,请参阅 https://google.aip.dev/132#ordering。 |
输出架构
AgentService.ListToolsets 的响应消息。
ListToolsetsResponse
| JSON 表示法 |
|---|
{
"toolsets": [
{
object ( |
| 字段 | |
|---|---|
toolsets[] |
工具集列表。 |
nextPageToken |
可作为 |
工具集
| JSON 表示法 |
|---|
{ "name": string, "displayName": string, "description": string, "timeout": string, "createTime": string, "updateTime": string, "etag": string, "executionType": enum ( |
| 字段 | |
|---|---|
name |
标识符。工具集的唯一标识符。格式: |
displayName |
可选。工具集的显示名称。在同一应用中必须是唯一的。 |
description |
可选。工具集的说明。 |
timeout |
可选。工具集执行的超时时间。如果未设置,则 该时长以秒为单位,最多包含九个小数位,以“ |
createTime |
仅限输出。工具集创建时的时间戳。 采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例: |
updateTime |
仅限输出。上次更新工具集时的时间戳。 采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例: |
etag |
用于确保对象在读取-修改-写入操作期间未发生更改的 ETag。如果 etag 为空,则更新会覆盖任何并发更改。 |
executionType |
可选。工具集中工具的执行类型。 |
toolFakeConfig |
可选。伪模式下工具行为的配置。 |
联合字段 toolset_type。工具集的类型。toolset_type 只能是下列其中一项: |
|
mcpToolset |
可选。包含 MCP 服务器提供的工具列表的工具集。 |
openApiToolset |
可选。包含由 OpenAPI 架构定义的一系列工具的工具集。 |
connectorToolset |
可选。一种可从 Integration Connectors 连接生成工具的工具集。 |
McpToolset
| JSON 表示法 |
|---|
{ "serverAddress": string, "apiAuthentication": { object ( |
| 字段 | |
|---|---|
serverAddress |
必需。MCP 服务器的地址,例如“https://example.com/mcp/”。如果服务器是使用 MCP SDK 构建的,则网址应以“/mcp/”为后缀。仅支持基于可流式传输的 HTTP 传输的服务器。如需了解详情,请参阅 https://modelcontextprotocol.io/specification/2025-03-26/basic/transports#streamable-http。 |
apiAuthentication |
可选。访问工具并针对 MCP 服务器执行工具所需的身份验证信息。对于不记名令牌身份验证,令牌仅适用于工具执行,而不适用于列出工具。这要求无需身份验证即可列出工具。 |
serviceDirectoryConfig |
可选。VPC-SC 的 Service Directory 配置,用于解析边界内的服务名称。 |
tlsConfig |
可选。TLS 配置。包含客户端应信任的自定义服务器证书。 |
customHeaders |
可选。要在发送到 MCP 服务器的请求中发送的自定义标头。这些值必须采用 包含一系列 |
toolOverrides[] |
可选。此工具集中各个工具的覆盖设置。这样一来,您就可以替换说明、名称等特定详细信息,或固定工具的状态,使其不完全动态。 |
ApiAuthentication
| JSON 表示法 |
|---|
{ // Union field |
| 字段 | |
|---|---|
联合字段 auth_config。身份验证配置。auth_config 只能是下列其中一项: |
|
apiKeyConfig |
可选。API 密钥身份验证的配置。 |
oauthConfig |
可选。OAuth 的配置。 |
serviceAgentIdTokenAuthConfig |
可选。从 CES 服务代理生成的 ID 令牌身份验证配置。 |
serviceAccountAuthConfig |
可选。服务账号身份验证的配置。 |
bearerTokenConfig |
可选。不记名令牌身份验证的配置。 |
ApiKeyConfig
| JSON 表示法 |
|---|
{
"keyName": string,
"apiKeySecretVersion": string,
"requestLocation": enum ( |
| 字段 | |
|---|---|
keyName |
必需。API 密钥的参数名称或标头名称。例如,如果 API 请求为“https://example.com/act?X-Api-Key= |
apiKeySecretVersion |
必需。存储 API 密钥的 SecretManager Secret 版本资源的名称。格式: 注意:您应向 CES 服务代理 |
requestLocation |
必需。请求中的密钥位置。 |
OAuthConfig
| JSON 表示法 |
|---|
{
"oauthGrantType": enum ( |
| 字段 | |
|---|---|
oauthGrantType |
必需。OAuth 授权类型。 |
clientId |
必需。OAuth 提供方的客户端 ID。 |
clientSecretVersion |
必需。存储客户端密钥的 SecretManager 密钥版本资源的名称。格式: 注意:您应向 CES 服务代理 |
tokenEndpoint |
必需。OAuth 提供方中用于换取访问令牌的令牌端点。 |
scopes[] |
可选。要授予的 OAuth 范围。 |
ServiceAccountAuthConfig
| JSON 表示法 |
|---|
{ "serviceAccount": string, "scopes": [ string ] } |
| 字段 | |
|---|---|
serviceAccount |
必需。用于身份验证的服务账号的电子邮件地址。CES 使用此服务账号来交换访问令牌,然后在请求的 服务账号必须拥有授予 CES 服务代理 |
scopes[] |
可选。要授予的 OAuth 范围。如果未指定,则使用默认范围 |
BearerTokenConfig
| JSON 表示法 |
|---|
{ "token": string } |
| 字段 | |
|---|---|
token |
必需。不记名令牌。必须采用 |
ServiceDirectoryConfig
| JSON 表示法 |
|---|
{ "service": string } |
| 字段 | |
|---|---|
service |
必需。Service Directory 服务的名称。格式: |
TlsConfig
| JSON 表示法 |
|---|
{
"caCerts": [
{
object ( |
| 字段 | |
|---|---|
caCerts[] |
必需。指定用于 HTTPS 验证的允许的自定义 CA 证书列表。 |
CaCert
| JSON 表示法 |
|---|
{ "displayName": string, "cert": string } |
| 字段 | |
|---|---|
displayName |
必需。允许使用的自定义 CA 证书的名称。这可用于消除自定义 CA 证书的歧义。 |
cert |
必需。用于 HTTPS 验证的允许的自定义 CA 证书(采用 DER 格式)。此设置会替换默认的 SSL 受信任证书存储区。如果此字段为空或未指定,CES 将使用 Google 的默认受信任证书存储区来验证证书。注意:请确保 HTTPS 服务器证书使用“subject alt name”进行签名。例如,可以使用以下命令自签名证书: 使用 base64 编码的字符串。 |
CustomHeadersEntry
| JSON 表示法 |
|---|
{ "key": string, "value": string } |
| 字段 | |
|---|---|
key |
|
value |
|
McpToolOverride
| JSON 表示法 |
|---|
{
"tool": string,
"nameOverride": string,
"descriptionOverride": string,
"snapshot": {
object ( |
| 字段 | |
|---|---|
tool |
必需。工具的原始名称,由 MCP 服务器发出。 |
nameOverride |
可选。如果存在,该工具会在代理中使用此名称,而不是原始名称。如果 MCP 服务器提供的工具名称不理想,则主要使用此参数作为别名。 |
descriptionOverride |
可选。如果存在,此工具会使用此说明,而不是服务器中的原始说明。 |
snapshot |
仅限输出。如果存在,此工具会被“固定”,并且在服务器暂时不可用或不存在替换项时,使用快照值作为后备值。 |
McpToolDefinition
| JSON 表示法 |
|---|
{ "description": string, "inputSchema": { object ( |
| 字段 | |
|---|---|
description |
仅限输出。MCP 工具的说明。此值可被 |
inputSchema |
仅限输出。MCP 工具的输入实参的架构。 |
outputSchema |
仅限输出。MCP 工具的输出实参的架构。 |
架构
| JSON 表示法 |
|---|
{ "type": enum ( |
| 字段 | |
|---|---|
type |
必需。数据类型。 |
properties |
可选。Type.OBJECT 的属性。 包含一系列 |
required[] |
可选。Type.OBJECT 的必需属性。 |
description |
可选。数据的说明。 |
items |
可选。Type.ARRAY 的元素的架构。 |
nullable |
可选。指示值是否为 null。 |
uniqueItems |
可选。表示数组中的项必须是唯一的。仅适用于 TYPE.ARRAY。 |
prefixItems[] |
可选。Type.ARRAY 的初始元素的架构。 |
additionalProperties |
可选。可以是布尔值或对象,用于控制是否存在其他属性。 |
anyOf[] |
可选。该值应根据列表中的任何(一个或多个)子架构进行验证。 |
enum[] |
可选。原始类型的元素可能的具有枚举格式的值。示例:1. 我们可以将方向定义为:{type:STRING, format:enum, enum:["EAST", NORTH", "SOUTH", "WEST"]} 2. 我们可以将公寓房号定义为:{type:INTEGER, format:enum, enum:["101", "201", "301"]} |
default |
可选。数据的默认值。 |
ref |
可选。允许在架构节点之间进行间接引用。该值应该是对根 例如,以下架构定义了对名为“Pet”的架构节点的引用: “pet”属性的值是对名为“Pet”的架构节点的引用。如需了解详情,请参阅 https://json-schema.org/understanding-json-schema/structuring。 |
defs |
可选。供 包含一系列 |
title |
可选。架构的标题。 |
minItems |
可选。Type.ARRAY 的元素数量下限。 |
maxItems |
可选。Type.ARRAY 的元素数量上限。 |
联合字段
|
|
minimum |
可选。Type.INTEGER 和 Type.NUMBER 的最小值。 |
联合字段
|
|
maximum |
可选。Type.INTEGER 和 Type.NUMBER 的最大值。 |
PropertiesEntry
| JSON 表示法 |
|---|
{
"key": string,
"value": {
object ( |
| 字段 | |
|---|---|
key |
|
value |
|
值
| JSON 表示法 |
|---|
{ // Union field |
| 字段 | |
|---|---|
联合字段 kind。值的类型。kind 只能是下列其中一项: |
|
nullValue |
表示 JSON |
numberValue |
表示 JSON 数值。不得为 |
stringValue |
表示 JSON 字符串。 |
boolValue |
表示 JSON 布尔值(JSON 中的 |
structValue |
表示 JSON 对象。 |
listValue |
表示 JSON 数组。 |
结构体
| JSON 表示法 |
|---|
{ "fields": { string: value, ... } } |
| 字段 | |
|---|---|
fields |
无序的动态类型值映射。 包含一系列 |
FieldsEntry
| JSON 表示法 |
|---|
{ "key": string, "value": value } |
| 字段 | |
|---|---|
key |
|
value |
|
ListValue
| JSON 表示法 |
|---|
{ "values": [ value ] } |
| 字段 | |
|---|---|
values[] |
动态类型值的重复字段。 |
DefsEntry
| JSON 表示法 |
|---|
{
"key": string,
"value": {
object ( |
| 字段 | |
|---|---|
key |
|
value |
|
OpenApiToolset
| JSON 表示法 |
|---|
{ "openApiSchema": string, "apiAuthentication": { object ( |
| 字段 | |
|---|---|
openApiSchema |
必需。工具集的 OpenAPI 架构。 |
apiAuthentication |
可选。API 所需的身份验证信息。 |
tlsConfig |
可选。TLS 配置。包含自定义服务器证书 |
serviceDirectoryConfig |
可选。Service Directory 配置。 |
ignoreUnknownFields |
可选。如果为 true,则对于 OpenAPI 架构中定义的所有操作,代理将忽略 API 响应中的未知字段。 |
url |
可选。Open API 架构的服务器网址。只有在导出过程中,如果架构包含服务器网址,此字段才会设置在环境依赖项的工具集中。在导入过程中,如果此网址存在于环境依赖项中,并且架构具有 $env_var 占位符,则该网址将替换架构中的占位符。 |
ConnectorToolset
| JSON 表示法 |
|---|
{ "connection": string, "authConfig": { object ( |
| 字段 | |
|---|---|
connection |
必需。所引用 Integration Connectors 连接的完整资源名称。格式: |
authConfig |
可选。配置 Integration Connectors 中身份验证的处理方式。默认情况下,管理员身份验证会在 Integration Connectors API 请求中传递。您可以使用其他最终用户身份验证配置来替换它。注意:连接必须启用身份验证替换,才能在此处指定 EUC 配置,否则,工具集创建将失败。请参阅:https://cloud.google.com/application-integration/docs/configure-connectors-task#configure-authentication-override |
connectorActions[] |
必需。要为其生成工具的连接器操作/实体操作的列表。 |
EndUserAuthConfig
| JSON 表示法 |
|---|
{ // Union field |
| 字段 | |
|---|---|
联合字段 auth_config。身份验证配置。auth_config 只能是下列其中一项: |
|
oauth2AuthCodeConfig |
Oauth 2.0 授权代码身份验证。 |
oauth2JwtBearerConfig |
JWT 配置文件 OAuth 2.0 授权许可身份验证。 |
Oauth2AuthCodeConfig
| JSON 表示法 |
|---|
{ "oauthToken": string } |
| 字段 | |
|---|---|
oauthToken |
必需。要传递的 OAuth 令牌形参名称。必须采用 |
Oauth2JwtBearerConfig
| JSON 表示法 |
|---|
{ "issuer": string, "subject": string, "clientKey": string } |
| 字段 | |
|---|---|
issuer |
必需。要传递的发布者形参名称。必须采用 |
subject |
必需。要传递的正文形参名称。必须采用 |
clientKey |
必需。要传递的客户端形参名称。必须采用 |
操作
| JSON 表示法 |
|---|
{ "inputFields": [ string ], "outputFields": [ string ], // Union field |
| 字段 | |
|---|---|
inputFields[] |
可选。要用作操作输入的实体字段。如果未指定任何字段,则将使用实体的所有字段。 |
outputFields[] |
可选。要从操作中返回的实体字段。如果未指定任何字段,则返回实体的所有字段。 |
联合字段 action_spec。要配置供工具使用的操作的规范。action_spec 只能是下列其中一项: |
|
connectionActionId |
供工具使用的连接操作的 ID。 |
entityOperation |
供工具使用的实体操作配置。 |
EntityOperation
| JSON 表示法 |
|---|
{
"entityId": string,
"operation": enum ( |
| 字段 | |
|---|---|
entityId |
必需。实体的 ID。 |
operation |
必需。要对实体执行的操作。 |
时长
| JSON 表示法 |
|---|
{ "seconds": string, "nanos": integer } |
| 字段 | |
|---|---|
seconds |
时间段的带符号秒数。必须介于 -315,576,000,000 到 +315,576,000,000 之间(含边界值)。注意:这些界限是通过以下计算得出的:60 秒/分钟 * 60 分钟/小时 * 24 小时/天 * 365.25 天/年 * 10000 年 |
nanos |
时间跨度的有符号秒数小数部分(以纳秒为单位)。小于 1 秒的时长用 0 |
时间戳
| JSON 表示法 |
|---|
{ "seconds": string, "nanos": integer } |
| 字段 | |
|---|---|
seconds |
表示世界协调时间 (UTC) 的秒数(从 Unix 纪元 1970-01-01T00:00:00Z 开始算起)。必须介于 -62135596800 到 253402300799 之间(含边界值),对应于 0001-01-01T00:00:00Z 到 9999-12-31T23:59:59Z。 |
nanos |
秒数的非负小数部分(以纳秒为单位)。此字段是时长的纳秒部分,而不是秒的替代项。对于含小数部分的负秒数,仍必须包含按时间递升的非负纳秒值。必须在 0 到 999,999,999 之间(含边界值)。 |
ToolFakeConfig
| JSON 表示法 |
|---|
{ "enableFakeMode": boolean, // Union field |
| 字段 | |
|---|---|
enableFakeMode |
可选。工具是否处于假模式。 |
联合字段 tool_response。响应可以是静态的,也可以由 Python 函数提供。tool_response 只能是下列其中一项: |
|
codeBlock |
可选。将执行的代码块,而不是实际的工具调用。 |
CodeBlock
| JSON 表示法 |
|---|
{ "pythonCode": string } |
| 字段 | |
|---|---|
pythonCode |
必需。将在工具伪造模式下调用的 Python 代码。预期 Python 函数签名 - 捕获所有工具调用:def fake_tool_call(tool: Tool, input: dict[str, Any], callback_context: CallbackContext) -> Optional[dict[str, Any]];捕获特定工具调用:def fake_{tool_id}(tool: Tool, input: dict[str, Any], callback_context: CallbackContext) -> Optional[dict[str, Any]]。如果函数返回 None,则会改为调用实际工具。 |
RequestLocation
请求中 API 密钥的位置。
| 枚举 | |
|---|---|
REQUEST_LOCATION_UNSPECIFIED |
未指定。不应使用此值。 |
HEADER |
表示 HTTP 标头中的键。 |
QUERY_STRING |
表示查询字符串中的键。 |
OauthGrantType
OAuth 授权类型。仅支持客户端凭据授权。
| 枚举 | |
|---|---|
OAUTH_GRANT_TYPE_UNSPECIFIED |
未指定。默认值为 CLIENT_CREDENTIAL。 |
CLIENT_CREDENTIAL |
表示客户端凭据流。 |
类型
OpenAPI 数据类型。
| 枚举 | |
|---|---|
TYPE_UNSPECIFIED |
未指定类型。 |
STRING |
字符串类型。 |
INTEGER |
整数类型。 |
NUMBER |
数字类型。 |
BOOLEAN |
布尔值类型。 |
OBJECT |
对象类型。 |
ARRAY |
数组类型。 |
NullValue
表示 JSON null。
NullValue 是一个标记,使用仅包含一个值的枚举来表示 Value 类型联合的 null 值。
如果类型为 NullValue 的字段的值不是 0,则视为无效。大多数 ProtoJSON 序列化程序都会发出一个 Value,并将 null_value 设置为 JSON null,无论整数值是多少,因此都会往返于 0 值。
| 枚举 | |
|---|---|
NULL_VALUE |
Null 值。 |
OperationType
要对实体执行的操作。
| 枚举 | |
|---|---|
OPERATION_TYPE_UNSPECIFIED |
未指定操作类型。无效,ConnectorTool 创建/更新将失败。 |
LIST |
列出操作。 |
GET |
获取操作。 |
CREATE |
创建操作。 |
UPDATE |
更新操作。 |
DELETE |
删除操作。 |
ExecutionType
工具或工具集的执行类型。
| 枚举 | |
|---|---|
EXECUTION_TYPE_UNSPECIFIED |
执行类型未指定。如果未指定,则默认为 SYNCHRONOUS。 |
SYNCHRONOUS |
该工具会同步执行。会话会被阻塞,直到工具返回。 |
ASYNCHRONOUS |
该工具以异步方式执行。在工具执行期间,会话将继续。 |
工具注释
破坏性提示:❌ | 等幂性提示:✅ | 只读提示:✅ | 开放世界提示:❌