@google-cloud/agentregistry 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,120 @@
1
+ // Copyright 2026 Google LLC
2
+ //
3
+ // Licensed under the Apache License, Version 2.0 (the "License");
4
+ // you may not use this file except in compliance with the License.
5
+ // You may obtain a copy of the License at
6
+ //
7
+ // http://www.apache.org/licenses/LICENSE-2.0
8
+ //
9
+ // Unless required by applicable law or agreed to in writing, software
10
+ // distributed under the License is distributed on an "AS IS" BASIS,
11
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+
15
+ syntax = "proto3";
16
+
17
+ package google.cloud.agentregistry.v1;
18
+
19
+ import "google/api/field_behavior.proto";
20
+ import "google/api/resource.proto";
21
+ import "google/protobuf/timestamp.proto";
22
+
23
+ option csharp_namespace = "Google.Cloud.AgentRegistry.V1";
24
+ option go_package = "cloud.google.com/go/agentregistry/apiv1/agentregistrypb;agentregistrypb";
25
+ option java_multiple_files = true;
26
+ option java_outer_classname = "BindingProto";
27
+ option java_package = "com.google.cloud.agentregistry.v1";
28
+ option php_namespace = "Google\\Cloud\\AgentRegistry\\V1";
29
+ option ruby_package = "Google::Cloud::AgentRegistry::V1";
30
+
31
+ // Represents a user-defined Binding.
32
+ message Binding {
33
+ option (google.api.resource) = {
34
+ type: "agentregistry.googleapis.com/Binding"
35
+ pattern: "projects/{project}/locations/{location}/bindings/{binding}"
36
+ plural: "bindings"
37
+ singular: "binding"
38
+ };
39
+
40
+ // The source of the Binding.
41
+ message Source {
42
+ // The type of the source, currently only supports Agents.
43
+ // Potential future fields include 'tag', etc.
44
+ oneof source_type {
45
+ // The identifier of the source Agent.
46
+ // Format:
47
+ //
48
+ // * `urn:agent:{publisher}:{namespace}:{name}`
49
+ string identifier = 1;
50
+ }
51
+ }
52
+
53
+ // The target of the Binding.
54
+ message Target {
55
+ // The type of the target, currently only supports an AgentRegistry
56
+ // Resource.
57
+ // Potential future fields include 'tag', etc.
58
+ oneof target_type {
59
+ // The identifier of the target Agent, MCP Server, or Endpoint.
60
+ // Format:
61
+ //
62
+ // * `urn:agent:{publisher}:{namespace}:{name}`
63
+ // * `urn:mcp:{publisher}:{namespace}:{name}`
64
+ // * `urn:endpoint:{publisher}:{namespace}:{name}`
65
+ string identifier = 1;
66
+ }
67
+ }
68
+
69
+ // The AuthProvider of the Binding.
70
+ message AuthProviderBinding {
71
+ // Required. The resource name of the target AuthProvider.
72
+ // Format:
73
+ //
74
+ // * `projects/{project}/locations/{location}/authProviders/{auth_provider}`
75
+ string auth_provider = 1 [(google.api.field_behavior) = REQUIRED];
76
+
77
+ // Optional. The list of OAuth2 scopes of the AuthProvider.
78
+ repeated string scopes = 2 [(google.api.field_behavior) = OPTIONAL];
79
+
80
+ // Optional. The continue URI of the AuthProvider.
81
+ // The URI is used to reauthenticate the user and finalize the managed OAuth
82
+ // flow.
83
+ string continue_uri = 3 [(google.api.field_behavior) = OPTIONAL];
84
+ }
85
+
86
+ // The configuration for the Binding.
87
+ oneof binding {
88
+ // The binding for AuthProvider.
89
+ AuthProviderBinding auth_provider_binding = 6;
90
+ }
91
+
92
+ // Required. Identifier. The resource name of the Binding.
93
+ // Format: `projects/{project}/locations/{location}/bindings/{binding}`.
94
+ string name = 1 [
95
+ (google.api.field_behavior) = IDENTIFIER,
96
+ (google.api.field_behavior) = REQUIRED
97
+ ];
98
+
99
+ // Optional. User-defined display name for the Binding.
100
+ // Can have a maximum length of `63` characters.
101
+ string display_name = 2 [(google.api.field_behavior) = OPTIONAL];
102
+
103
+ // Optional. User-defined description of a Binding.
104
+ // Can have a maximum length of `2048` characters.
105
+ string description = 3 [(google.api.field_behavior) = OPTIONAL];
106
+
107
+ // Required. The target Agent of the Binding.
108
+ Source source = 4 [(google.api.field_behavior) = REQUIRED];
109
+
110
+ // Required. The target Agent Registry Resource of the Binding.
111
+ Target target = 5 [(google.api.field_behavior) = REQUIRED];
112
+
113
+ // Output only. Timestamp when this binding was created.
114
+ google.protobuf.Timestamp create_time = 7
115
+ [(google.api.field_behavior) = OUTPUT_ONLY];
116
+
117
+ // Output only. Timestamp when this binding was last updated.
118
+ google.protobuf.Timestamp update_time = 8
119
+ [(google.api.field_behavior) = OUTPUT_ONLY];
120
+ }
@@ -0,0 +1,75 @@
1
+ // Copyright 2026 Google LLC
2
+ //
3
+ // Licensed under the Apache License, Version 2.0 (the "License");
4
+ // you may not use this file except in compliance with the License.
5
+ // You may obtain a copy of the License at
6
+ //
7
+ // http://www.apache.org/licenses/LICENSE-2.0
8
+ //
9
+ // Unless required by applicable law or agreed to in writing, software
10
+ // distributed under the License is distributed on an "AS IS" BASIS,
11
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+
15
+ syntax = "proto3";
16
+
17
+ package google.cloud.agentregistry.v1;
18
+
19
+ import "google/api/field_behavior.proto";
20
+ import "google/api/resource.proto";
21
+ import "google/cloud/agentregistry/v1/properties.proto";
22
+ import "google/protobuf/struct.proto";
23
+ import "google/protobuf/timestamp.proto";
24
+
25
+ option csharp_namespace = "Google.Cloud.AgentRegistry.V1";
26
+ option go_package = "cloud.google.com/go/agentregistry/apiv1/agentregistrypb;agentregistrypb";
27
+ option java_multiple_files = true;
28
+ option java_outer_classname = "EndpointProto";
29
+ option java_package = "com.google.cloud.agentregistry.v1";
30
+ option php_namespace = "Google\\Cloud\\AgentRegistry\\V1";
31
+ option ruby_package = "Google::Cloud::AgentRegistry::V1";
32
+
33
+ // Represents an Endpoint.
34
+ message Endpoint {
35
+ option (google.api.resource) = {
36
+ type: "agentregistry.googleapis.com/Endpoint"
37
+ pattern: "projects/{project}/locations/{location}/endpoints/{endpoint}"
38
+ plural: "endpoints"
39
+ singular: "endpoint"
40
+ };
41
+
42
+ // Identifier. The resource name of the Endpoint.
43
+ // Format: `projects/{project}/locations/{location}/endpoints/{endpoint}`.
44
+ string name = 1 [(google.api.field_behavior) = IDENTIFIER];
45
+
46
+ // Output only. A stable, globally unique identifier for Endpoint.
47
+ string endpoint_id = 8 [(google.api.field_behavior) = OUTPUT_ONLY];
48
+
49
+ // Output only. Display name for the Endpoint.
50
+ string display_name = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
51
+
52
+ // Output only. Description of an Endpoint.
53
+ string description = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
54
+
55
+ // Required. The connection details for the Endpoint.
56
+ repeated Interface interfaces = 4 [(google.api.field_behavior) = REQUIRED];
57
+
58
+ // Output only. Create time.
59
+ google.protobuf.Timestamp create_time = 5
60
+ [(google.api.field_behavior) = OUTPUT_ONLY];
61
+
62
+ // Output only. Update time.
63
+ google.protobuf.Timestamp update_time = 6
64
+ [(google.api.field_behavior) = OUTPUT_ONLY];
65
+
66
+ // Output only. Attributes of the Endpoint.
67
+ //
68
+ // Valid values:
69
+ //
70
+ // * `agentregistry.googleapis.com/system/RuntimeReference`:
71
+ // {"uri": "//..."} - the URI of the underlying resource hosting the
72
+ // Endpoint, for example, the GKE Deployment.
73
+ map<string, google.protobuf.Struct> attributes = 7
74
+ [(google.api.field_behavior) = OUTPUT_ONLY];
75
+ }
@@ -0,0 +1,120 @@
1
+ // Copyright 2026 Google LLC
2
+ //
3
+ // Licensed under the Apache License, Version 2.0 (the "License");
4
+ // you may not use this file except in compliance with the License.
5
+ // You may obtain a copy of the License at
6
+ //
7
+ // http://www.apache.org/licenses/LICENSE-2.0
8
+ //
9
+ // Unless required by applicable law or agreed to in writing, software
10
+ // distributed under the License is distributed on an "AS IS" BASIS,
11
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+
15
+ syntax = "proto3";
16
+
17
+ package google.cloud.agentregistry.v1;
18
+
19
+ import "google/api/field_behavior.proto";
20
+ import "google/api/resource.proto";
21
+ import "google/cloud/agentregistry/v1/properties.proto";
22
+ import "google/protobuf/struct.proto";
23
+ import "google/protobuf/timestamp.proto";
24
+
25
+ option csharp_namespace = "Google.Cloud.AgentRegistry.V1";
26
+ option go_package = "cloud.google.com/go/agentregistry/apiv1/agentregistrypb;agentregistrypb";
27
+ option java_multiple_files = true;
28
+ option java_outer_classname = "McpServerProto";
29
+ option java_package = "com.google.cloud.agentregistry.v1";
30
+ option php_namespace = "Google\\Cloud\\AgentRegistry\\V1";
31
+ option ruby_package = "Google::Cloud::AgentRegistry::V1";
32
+
33
+ // Represents an MCP (Model Context Protocol) Server.
34
+ message McpServer {
35
+ option (google.api.resource) = {
36
+ type: "agentregistry.googleapis.com/McpServer"
37
+ pattern: "projects/{project}/locations/{location}/mcpServers/{mcp_server}"
38
+ plural: "mcpServers"
39
+ singular: "mcpServer"
40
+ };
41
+
42
+ // Represents a single tool provided by an MCP Server.
43
+ message Tool {
44
+ // Annotations describing the characteristics and behavior of a tool or
45
+ // operation.
46
+ message Annotations {
47
+ // Output only. A human-readable title for the tool.
48
+ string title = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
49
+
50
+ // Output only. If true, the tool may perform destructive updates to its
51
+ // environment. If false, the tool performs only additive updates. NOTE:
52
+ // This property is meaningful only when `read_only_hint == false`
53
+ // Default: true
54
+ bool destructive_hint = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
55
+
56
+ // Output only. If true, calling the tool repeatedly with the same
57
+ // arguments will have no additional effect on its environment. NOTE: This
58
+ // property is meaningful only when `read_only_hint == false` Default:
59
+ // false
60
+ bool idempotent_hint = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
61
+
62
+ // Output only. If true, this tool may interact with an "open world" of
63
+ // external entities. If false, the tool's domain of interaction is
64
+ // closed. For example, the world of a web search tool is open, whereas
65
+ // that of a memory tool is not. Default: true
66
+ bool open_world_hint = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
67
+
68
+ // Output only. If true, the tool does not modify its environment.
69
+ // Default: false
70
+ bool read_only_hint = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
71
+ }
72
+
73
+ // Output only. Human-readable name of the tool.
74
+ string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
75
+
76
+ // Output only. Description of what the tool does.
77
+ string description = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
78
+
79
+ // Output only. Annotations associated with the tool.
80
+ Annotations annotations = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
81
+ }
82
+
83
+ // Identifier. The resource name of the MCP Server.
84
+ // Format: `projects/{project}/locations/{location}/mcpServers/{mcp_server}`.
85
+ string name = 1 [(google.api.field_behavior) = IDENTIFIER];
86
+
87
+ // Output only. A stable, globally unique identifier for MCP Servers.
88
+ string mcp_server_id = 9 [(google.api.field_behavior) = OUTPUT_ONLY];
89
+
90
+ // Output only. The display name of the MCP Server.
91
+ string display_name = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
92
+
93
+ // Output only. The description of the MCP Server.
94
+ string description = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
95
+
96
+ // Output only. The connection details for the MCP Server.
97
+ repeated Interface interfaces = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
98
+
99
+ // Output only. Tools provided by the MCP Server.
100
+ repeated Tool tools = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
101
+
102
+ // Output only. Create time.
103
+ google.protobuf.Timestamp create_time = 6
104
+ [(google.api.field_behavior) = OUTPUT_ONLY];
105
+
106
+ // Output only. Update time.
107
+ google.protobuf.Timestamp update_time = 7
108
+ [(google.api.field_behavior) = OUTPUT_ONLY];
109
+
110
+ // Output only. Attributes of the MCP Server.
111
+ // Valid values:
112
+ //
113
+ // * `agentregistry.googleapis.com/system/RuntimeIdentity`: {"principal":
114
+ // "principal://..."} - the runtime identity associated with the MCP Server.
115
+ // * `agentregistry.googleapis.com/system/RuntimeReference`: {"uri": "//..."}
116
+ // - the URI of the underlying resource hosting the MCP Server, for
117
+ // example, the GKE Deployment.
118
+ map<string, google.protobuf.Struct> attributes = 8
119
+ [(google.api.field_behavior) = OUTPUT_ONLY];
120
+ }
@@ -0,0 +1,51 @@
1
+ // Copyright 2026 Google LLC
2
+ //
3
+ // Licensed under the Apache License, Version 2.0 (the "License");
4
+ // you may not use this file except in compliance with the License.
5
+ // You may obtain a copy of the License at
6
+ //
7
+ // http://www.apache.org/licenses/LICENSE-2.0
8
+ //
9
+ // Unless required by applicable law or agreed to in writing, software
10
+ // distributed under the License is distributed on an "AS IS" BASIS,
11
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+
15
+ syntax = "proto3";
16
+
17
+ package google.cloud.agentregistry.v1;
18
+
19
+ import "google/api/field_behavior.proto";
20
+
21
+ option csharp_namespace = "Google.Cloud.AgentRegistry.V1";
22
+ option go_package = "cloud.google.com/go/agentregistry/apiv1/agentregistrypb;agentregistrypb";
23
+ option java_multiple_files = true;
24
+ option java_outer_classname = "PropertiesProto";
25
+ option java_package = "com.google.cloud.agentregistry.v1";
26
+ option php_namespace = "Google\\Cloud\\AgentRegistry\\V1";
27
+ option ruby_package = "Google::Cloud::AgentRegistry::V1";
28
+
29
+ // Represents the connection details for an Agent or MCP Server.
30
+ message Interface {
31
+ // The protocol binding of the interface.
32
+ enum ProtocolBinding {
33
+ // Unspecified transport protocol.
34
+ PROTOCOL_BINDING_UNSPECIFIED = 0;
35
+
36
+ // JSON-RPC specification.
37
+ JSONRPC = 1;
38
+
39
+ // gRPC specification.
40
+ GRPC = 2;
41
+
42
+ // HTTP+JSON specification.
43
+ HTTP_JSON = 3;
44
+ }
45
+
46
+ // Required. The destination URL.
47
+ string url = 1 [(google.api.field_behavior) = REQUIRED];
48
+
49
+ // Required. The protocol binding of the interface.
50
+ ProtocolBinding protocol_binding = 2 [(google.api.field_behavior) = REQUIRED];
51
+ }
@@ -0,0 +1,154 @@
1
+ // Copyright 2026 Google LLC
2
+ //
3
+ // Licensed under the Apache License, Version 2.0 (the "License");
4
+ // you may not use this file except in compliance with the License.
5
+ // You may obtain a copy of the License at
6
+ //
7
+ // http://www.apache.org/licenses/LICENSE-2.0
8
+ //
9
+ // Unless required by applicable law or agreed to in writing, software
10
+ // distributed under the License is distributed on an "AS IS" BASIS,
11
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+
15
+ syntax = "proto3";
16
+
17
+ package google.cloud.agentregistry.v1;
18
+
19
+ import "google/api/field_behavior.proto";
20
+ import "google/api/resource.proto";
21
+ import "google/cloud/agentregistry/v1/properties.proto";
22
+ import "google/protobuf/struct.proto";
23
+ import "google/protobuf/timestamp.proto";
24
+
25
+ option csharp_namespace = "Google.Cloud.AgentRegistry.V1";
26
+ option go_package = "cloud.google.com/go/agentregistry/apiv1/agentregistrypb;agentregistrypb";
27
+ option java_multiple_files = true;
28
+ option java_outer_classname = "ServiceProto";
29
+ option java_package = "com.google.cloud.agentregistry.v1";
30
+ option php_namespace = "Google\\Cloud\\AgentRegistry\\V1";
31
+ option ruby_package = "Google::Cloud::AgentRegistry::V1";
32
+
33
+ // Represents a user-defined Service.
34
+ message Service {
35
+ option (google.api.resource) = {
36
+ type: "agentregistry.googleapis.com/Service"
37
+ pattern: "projects/{project}/locations/{location}/services/{service}"
38
+ plural: "services"
39
+ singular: "service"
40
+ };
41
+
42
+ // The spec of the agent.
43
+ message AgentSpec {
44
+ // The type of the agent spec.
45
+ enum Type {
46
+ // Unspecified type.
47
+ TYPE_UNSPECIFIED = 0;
48
+
49
+ // There is no spec for the Agent. The `content` field must be empty.
50
+ NO_SPEC = 1;
51
+
52
+ // The content is an A2A Agent Card following the A2A specification.
53
+ // The `interfaces` field must be empty.
54
+ A2A_AGENT_CARD = 2;
55
+ }
56
+
57
+ // Required. The type of the agent spec content.
58
+ Type type = 1 [(google.api.field_behavior) = REQUIRED];
59
+
60
+ // Optional. The content of the Agent spec in the JSON format.
61
+ // This payload is validated against the schema for the specified type.
62
+ // The content size is limited to `10KB`.
63
+ google.protobuf.Struct content = 2 [(google.api.field_behavior) = OPTIONAL];
64
+ }
65
+
66
+ // The spec of the MCP Server.
67
+ message McpServerSpec {
68
+ // The type of the MCP Server spec.
69
+ enum Type {
70
+ // Unspecified type.
71
+ TYPE_UNSPECIFIED = 0;
72
+
73
+ // There is no spec for the MCP Server. The `content` field must be empty.
74
+ NO_SPEC = 1;
75
+
76
+ // The content is a MCP Tool Spec following the One MCP specification.
77
+ // The payload is the same as the `tools/list` response.
78
+ TOOL_SPEC = 2;
79
+ }
80
+
81
+ // Required. The type of the MCP Server spec content.
82
+ Type type = 1 [(google.api.field_behavior) = REQUIRED];
83
+
84
+ // Optional. The content of the MCP Server spec.
85
+ // This payload is validated against the schema for the specified type.
86
+ // The content size is limited to `10KB`.
87
+ google.protobuf.Struct content = 2 [(google.api.field_behavior) = OPTIONAL];
88
+ }
89
+
90
+ // The spec of the endpoint.
91
+ message EndpointSpec {
92
+ // The type of the endpoint spec.
93
+ enum Type {
94
+ // Unspecified type.
95
+ TYPE_UNSPECIFIED = 0;
96
+
97
+ // There is no spec for the Endpoint. The `content` field must be empty.
98
+ NO_SPEC = 1;
99
+ }
100
+
101
+ // Required. The type of the endpoint spec content.
102
+ Type type = 1 [(google.api.field_behavior) = REQUIRED];
103
+
104
+ // Optional. The content of the endpoint spec.
105
+ // Reserved for future use.
106
+ google.protobuf.Struct content = 2 [(google.api.field_behavior) = OPTIONAL];
107
+ }
108
+
109
+ // The spec of the service. At least one of the specs must be set.
110
+ oneof spec {
111
+ // Optional. The spec of the Agent. When `agent_spec` is set, the type of
112
+ // the service is Agent.
113
+ AgentSpec agent_spec = 5 [(google.api.field_behavior) = OPTIONAL];
114
+
115
+ // Optional. The spec of the MCP Server. When `mcp_server_spec` is set, the
116
+ // type of the service is MCP Server.
117
+ McpServerSpec mcp_server_spec = 6 [(google.api.field_behavior) = OPTIONAL];
118
+
119
+ // Optional. The spec of the Endpoint. When `endpoint_spec` is set, the type
120
+ // of the service is Endpoint.
121
+ EndpointSpec endpoint_spec = 7 [(google.api.field_behavior) = OPTIONAL];
122
+ }
123
+
124
+ // Identifier. The resource name of the Service.
125
+ // Format: `projects/{project}/locations/{location}/services/{service}`.
126
+ string name = 1 [(google.api.field_behavior) = IDENTIFIER];
127
+
128
+ // Optional. User-defined display name for the Service.
129
+ // Can have a maximum length of `63` characters.
130
+ string display_name = 2 [(google.api.field_behavior) = OPTIONAL];
131
+
132
+ // Optional. User-defined description of an Service.
133
+ // Can have a maximum length of `2048` characters.
134
+ string description = 3 [(google.api.field_behavior) = OPTIONAL];
135
+
136
+ // Optional. The connection details for the Service.
137
+ repeated Interface interfaces = 4 [(google.api.field_behavior) = OPTIONAL];
138
+
139
+ // Output only. The resource name of the resulting Agent, MCP Server, or
140
+ // Endpoint. Format:
141
+ //
142
+ // * `projects/{project}/locations/{location}/mcpServers/{mcp_server}`
143
+ // * `projects/{project}/locations/{location}/agents/{agent}`
144
+ // * `projects/{project}/locations/{location}/endpoints/{endpoint}`
145
+ string registry_resource = 10 [(google.api.field_behavior) = OUTPUT_ONLY];
146
+
147
+ // Output only. Create time.
148
+ google.protobuf.Timestamp create_time = 8
149
+ [(google.api.field_behavior) = OUTPUT_ONLY];
150
+
151
+ // Output only. Update time.
152
+ google.protobuf.Timestamp update_time = 9
153
+ [(google.api.field_behavior) = OUTPUT_ONLY];
154
+ }