@@ -41,7 +41,8 @@ enum Kind implements JsonEnum<Kind> {
4141 USERS ("users" ),
4242
4343 // Fake permission kinds: Weaviate does not use those.
44- CLUSTER ("cluster" );
44+ CLUSTER ("cluster" ),
45+ MCP ("mcp" );
4546
4647 private static final Map <String , Kind > jsonValueMap = JsonEnum .collectNames (Kind .values ());
4748 private final String jsonValue ;
@@ -153,6 +154,14 @@ public static UsersPermission users(String userId, UsersPermission.Action... act
153154 return new UsersPermission (userId , actions );
154155 }
155156
157+ /**
158+ * Create {@link McpPermission}.
159+ */
160+ public static McpPermission mcp (McpPermission .Action ... actions ) {
161+ checkDeprecation (actions );
162+ return new McpPermission (actions );
163+ }
164+
156165 /**
157166 * Create {@link ReplicatePermission}.
158167 *
@@ -222,6 +231,7 @@ private final void init(Gson gson) {
222231 addAdapter (gson , Permission .Kind .ROLES , RolesPermission .class );
223232 addAdapter (gson , Permission .Kind .NODES , NodesPermission .class );
224233 addAdapter (gson , Permission .Kind .TENANTS , TenantsPermission .class );
234+ addAdapter (gson , Permission .Kind .MCP , McpPermission .class );
225235 addAdapter (gson , Permission .Kind .REPLICATE , ReplicatePermission .class );
226236 addAdapter (gson , Permission .Kind .USERS , UsersPermission .class );
227237 addAdapter (gson , Permission .Kind .CLUSTER , ClusterPermission .class );
@@ -283,6 +293,8 @@ public Permission read(JsonReader in) throws IOException {
283293 var actionString = action .getAsString ();
284294 if (actionString .endsWith ("_cluster" )) {
285295 kind = Permission .Kind .CLUSTER ;
296+ } else if (actionString .endsWith ("_mcp" )) {
297+ kind = Permission .Kind .MCP ;
286298 } else {
287299 throw new IllegalArgumentException ("unknown RBAC action " + actionString );
288300 }
0 commit comments