Tool: list_api_operations
List operations in an API version.
The following sample demonstrate how to use curl
to invoke the list_api_operations
MCP tool.
| Curl Request |
|---|
curl --location 'https://apihub. REGION .rep.googleapis.com/mcp' \ --header 'content-type: application/json' \ --header 'accept: application/json, text/event-stream' \ --data '{ "method": "tools/call", "params": { "name": "list_api_operations", "arguments": { // provide these details according to the tool' s MCP specification } } , "jsonrpc" : "2.0" , "id" : 1 } ' |
Where, REGION
is the supported API hub region. For more information, see Supported regions
.
Input Schema
The ListApiOperations
method's request.
ListApiOperationsRequest
| JSON representation |
|---|
{ "parent" : string , "filter" : string , "pageSize" : integer , "pageToken" : string } |
parent
string
Required. The parent which owns this collection of operations i.e., the API version. Format: projects/{project}/locations/{location}/apis/{api}/versions/{version}
filter
string
Optional. An expression that filters the list of ApiOperations.
A filter expression consists of a field name, a comparison operator, and a value for filtering. The value must be a string or a boolean. The comparison operator must be one of: <
, >
or =
. Filters are not case sensitive.
The following fields in the ApiOperation
are eligible for filtering: * name
- The ApiOperation resource name. Allowed comparison operators: =
. * details.http_operation.path.path
- The http operation's complete path relative to server endpoint. Allowed comparison operators: =
. * details.http_operation.method
- The http operation method type. Allowed comparison operators: =
. * details.deprecated
- Indicates if the ApiOperation is deprecated. Allowed values are True / False indicating the deprycation status of the ApiOperation. Allowed comparison operators: =
. * create_time
- The time at which the ApiOperation was created. The value should be in the (RFC3339)[https://tools.ietf.org/html/rfc3339] format. Allowed comparison operators: >
and <
. * attributes.projects/test-project-id/locations/test-location-id/
attributes/user-defined-attribute-id.enum_values.values.id
- The allowed value id of the user defined enum attribute associated with the Resource. Allowed comparison operator is :
. Here user-defined-attribute-enum-id is a placeholder that can be replaced with any user defined enum attribute name. * attributes.projects/test-project-id/locations/test-location-id/
attributes/user-defined-attribute-id.enum_values.values.display_name
- The allowed value display name of the user defined enum attribute associated with the Resource. Allowed comparison operator is :
. Here user-defined-attribute-enum-display-name is a placeholder that can be replaced with any user defined enum attribute enum name. * attributes.projects/test-project-id/locations/test-location-id/
attributes/user-defined-attribute-id.string_values.values
- The allowed value of the user defined string attribute associated with the Resource. Allowed comparison operator is :
. Here user-defined-attribute-string is a placeholder that can be replaced with any user defined string attribute name. * attributes.projects/test-project-id/locations/test-location-id/
attributes/user-defined-attribute-id.json_values.values
- The allowed value of the user defined JSON attribute associated with the Resource. Allowed comparison operator is :
. Here user-defined-attribute-json is a placeholder that can be replaced with any user defined JSON attribute name.
Expressions are combined with either AND
logic operator or OR
logical operator but not both of them together i.e. only one of the AND
or OR
operator can be used throughout the filter string and both the operators cannot be used together. No other logical operators are supported. At most three filter fields are allowed in the filter string and if provided more than that then INVALID_ARGUMENT
error is returned by the API.
Here are a few examples:
-
details.deprecated = True- The ApiOperation is deprecated. -
details.http_operation.method = GET AND create_time < \"2021-08-15T14:50:00Z\" AND create_time > \"2021-08-10T12:00:00Z\"- The method of the http operation of the ApiOperation is GET and the spec was created before 2021-08-15 14:50:00 UTC and after 2021-08-10 12:00:00 UTC . -
details.http_operation.method = GET OR details.http_operation.method = POST. - The http operation of the method of ApiOperation is GET or POST . -
details.deprecated = True AND attributes.projects/test-project-id/locations/test-location-id/ attributes/17650f90-4a29-4971-b3c0-d5532da3764b.string_values.values: test- The filter string specifies that the ApiOperation is deprecated and the value of the user defined attribute of type string is test .
pageSize
integer
Optional. The maximum number of operations to return. The service may return fewer than this value. If unspecified, at most 50 operations will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.
pageToken
string
Optional. A page token, received from a previous ListApiOperations
call. Provide this to retrieve the subsequent page.
When paginating, all other parameters (except page_size) provided to ListApiOperations
must match the call that provided the page token.
Output Schema
The ListApiOperations
method's response.
ListApiOperationsResponse
| JSON representation |
|---|
{
"apiOperations"
:
[
{
object (
|
| Fields | |
|---|---|
apiOperations[]
|
The operations corresponding to an API version. |
nextPageToken
|
A token, which can be sent as |
ApiOperation
| JSON representation |
|---|
{ "name" : string , "spec" : string , "details" : { object ( |
| Fields | |
|---|---|
name
|
Identifier. The name of the operation. Format: |
spec
|
Output only. The name of the spec will be of the format: |
details
|
Optional. Operation details. Note: Even though this field is optional, it is required for |
createTime
|
Output only. The time at which the operation was created. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
updateTime
|
Output only. The time at which the operation was last updated. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
attributes
|
Optional. The list of user defined attributes associated with the API operation resource. The key is the attribute name. It will be of the format: An object containing a list of |
sourceMetadata[]
|
Output only. The list of sources and metadata from the sources of the API operation. |
OperationDetails
| JSON representation |
|---|
{ "description" : string , "documentation" : { object ( |
description
string
Optional. Description of the operation behavior. For OpenAPI spec, this will map to operation.description
in the spec, in case description is empty, operation.summary
will be used.
documentation
object (
Documentation
)
Optional. Additional external documentation for this operation. For OpenAPI spec, this will map to operation.documentation
in the spec.
deprecated
boolean
Optional. For OpenAPI spec, this will be set if operation.deprecated
is marked as true
in the spec.
Union field operation
.
operation
can be only one of the following:
httpOperation
object (
HttpOperation
)
The HTTP Operation.
mcpTool
object (
McpTool
)
The MCP Tool Operation.
HttpOperation
| JSON representation |
|---|
{ "path" : { object ( |
| Fields | |
|---|---|
path
|
Optional. The path details for the Operation. Note: Even though this field is optional, it is required for |
method
|
Optional. Operation method Note: Even though this field is optional, it is required for |
Path
| JSON representation |
|---|
{ "path" : string , "description" : string } |
| Fields | |
|---|---|
path
|
Optional. Complete path relative to server endpoint. Note: Even though this field is optional, it is required for |
description
|
Optional. A short description for the path applicable to all operations. |
McpTool
| JSON representation |
|---|
{ "name" : string , "title" : string , "description" : string , "annotations" : { object ( |
| Fields | |
|---|---|
name
|
Required. The name of the tool, unique within its parent scope (version). |
title
|
Optional. Optional title for the tool. |
description
|
Optional. Description of what the tool does. |
annotations
|
Optional. Optional annotations for the tool. |
inputSchema
|
Optional. Input schema for the operation. This can be parsed only from MCP schema type. |
outputSchema
|
Optional. Output schema for the operation. This can be parsed only from MCP schema type. |
ToolAnnotations
| JSON representation |
|---|
{ "title" : string , "additionalHints" : { string : string , ... } , // Union field |
title
string
Optional. A human-readable title for the tool (if different from Tool.title).
additionalHints
map (key: string, value: string)
Optional. Additional hints which may help tools and not covered in defaults.
An object containing a list of "key": value
pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }
.
Union field _read_only_hint
.
_read_only_hint
can be only one of the following:
readOnlyHint
boolean
Optional. Hint indicating if the tool is read-only.
Union field _destructive_hint
.
_destructive_hint
can be only one of the following:
destructiveHint
boolean
Optional. Hint indicating if the tool may have destructive side effects.
Union field _idempotent_hint
.
_idempotent_hint
can be only one of the following:
idempotentHint
boolean
Optional. Hint indicating if the tool is idempotent.
Union field _open_world_hint
.
_open_world_hint
can be only one of the following:
openWorldHint
boolean
Optional. Hint indicating if the tool interacts with the open world (e.g., internet).
AdditionalHintsEntry
| JSON representation |
|---|
{ "key" : string , "value" : string } |
| Fields | |
|---|---|
key
|
|
value
|
|
OperationSchema
| JSON representation |
|---|
{ // Union field |
value
. The value of the schema. value
can be only one of the following:jsonSchema
object (
Struct
format)
The JSON schema. Only valid JSON is accepted but semantic validation of schema is not supported right now.
Struct
| JSON representation |
|---|
{ "fields" : { string : value , ... } } |
| Fields | |
|---|---|
fields
|
Unordered map of dynamically typed values. An object containing a list of |
FieldsEntry
| JSON representation |
|---|
{ "key" : string , "value" : value } |
| Fields | |
|---|---|
key
|
|
value
|
|
Value
| JSON representation |
|---|
{ // Union field |
kind
. The kind of value. kind
can be only one of the following:nullValue
null
Represents a JSON null
.
numberValue
number
Represents a JSON number. Must not be NaN
, Infinity
or -Infinity
, since those are not supported in JSON. This also cannot represent large Int64 values, since JSON format generally does not support them in its number type.
stringValue
string
Represents a JSON string.
boolValue
boolean
Represents a JSON boolean ( true
or false
literal in JSON).
structValue
object (
Struct
format)
Represents a JSON object.
listValue
array (
ListValue
format)
Represents a JSON array.
ListValue
| JSON representation |
|---|
{ "values" : [ value ] } |
| Fields | |
|---|---|
values[]
|
Repeated field of dynamically typed values. |
Documentation
| JSON representation |
|---|
{ "externalUri" : string } |
| Fields | |
|---|---|
externalUri
|
Optional. The uri of the externally hosted documentation. |
Timestamp
| JSON representation |
|---|
{ "seconds" : string , "nanos" : integer } |
| Fields | |
|---|---|
seconds
|
Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be between -62135596800 and 253402300799 inclusive (which corresponds to 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z). |
nanos
|
Non-negative fractions of a second at nanosecond resolution. This field is the nanosecond portion of the duration, not an alternative to seconds. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be between 0 and 999,999,999 inclusive. |
AttributesEntry
| JSON representation |
|---|
{
"key"
:
string
,
"value"
:
{
object (
|
| Fields | |
|---|---|
key
|
|
value
|
|
AttributeValues
| JSON representation |
|---|
{ "attribute" : string , // Union field |
attribute
string
Output only. The name of the attribute. Format: projects/{project}/locations/{location}/attributes/{attribute}
Value
. The attribute values associated with the resource. Value
can be only one of the following:enumValues
object (
EnumAttributeValues
)
The attribute values associated with a resource in case attribute data type is enum.
stringValues
object (
StringAttributeValues
)
The attribute values associated with a resource in case attribute data type is string.
jsonValues
object (
StringAttributeValues
)
The attribute values associated with a resource in case attribute data type is JSON.
uriValues
object (
StringAttributeValues
)
The attribute values associated with a resource in case attribute data type is URL, URI or IP, like gs://bucket-name/object-name.
EnumAttributeValues
| JSON representation |
|---|
{
"values"
:
[
{
object (
|
| Fields | |
|---|---|
values[]
|
Required. The attribute values in case attribute data type is enum. |
AllowedValue
| JSON representation |
|---|
{ "id" : string , "displayName" : string , "description" : string , "immutable" : boolean } |
| Fields | |
|---|---|
id
|
Required. The ID of the allowed value. * If provided, the same will be used. The service will throw an error if the specified id is already used by another allowed value in the same attribute resource. * If not provided, a system generated id derived from the display name will be used. In this case, the service will handle conflict resolution by adding a system generated suffix in case of duplicates. This value should be 4-63 characters, and valid characters are /[a-z][0-9]-/. |
displayName
|
Required. The display name of the allowed value. |
description
|
Optional. The detailed description of the allowed value. |
immutable
|
Optional. When set to true, the allowed value cannot be updated or deleted by the user. It can only be true for System defined attributes. |
StringAttributeValues
| JSON representation |
|---|
{ "values" : [ string ] } |
| Fields | |
|---|---|
values[]
|
Required. The attribute values in case attribute data type is string or JSON. |
SourceMetadata
| JSON representation |
|---|
{ "sourceType" : enum ( |
sourceType
enum (
SourceType
)
Output only. The type of the source.
originalResourceId
string
Output only. The unique identifier of the resource at the source.
originalResourceCreateTime
string (
Timestamp
format)
Output only. The time at which the resource was created at the source.
Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z"
, "2014-10-02T15:01:23.045123456Z"
or "2014-10-02T15:01:23+05:30"
.
originalResourceUpdateTime
string (
Timestamp
format)
Output only. The time at which the resource was last updated at the source.
Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z"
, "2014-10-02T15:01:23.045123456Z"
or "2014-10-02T15:01:23+05:30"
.
source
. The source of the resource. source
can be only one of the following:pluginInstanceActionSource
object (
PluginInstanceActionSource
)
Output only. The source of the resource is a plugin instance action.
PluginInstanceActionSource
| JSON representation |
|---|
{ "pluginInstance" : string , "actionId" : string } |
| Fields | |
|---|---|
pluginInstance
|
Output only. The resource name of the source plugin instance. Format is |
actionId
|
Output only. The id of the plugin instance action. |
Tool Annotations
Destructive Hint: ❌ | Idempotent Hint: ✅ | Read Only Hint: ✅ | Open World Hint: ❌

