vrchat_list_favorites
Retrieve and filter your VRChat favorites list, including worlds, friends, and avatars, with options to specify quantity, type, and tags.
Instructions
Returns a list of favorites.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| n | No | Number of favorites to return (1-100). Default is 60. | |
| offset | No | Skip this many favorites before beginning to return results. | |
| type | No | Filter by favorite type ("world", "friend", or "avatar"). | |
| tag | No | Filter by tag (e.g., "group_0", "group_1"). |
Implementation Reference
- src/tools/favorites.ts:57-81 (handler)Handler function for the 'vrchat_list_favorites' tool. Authenticates the VRChat client, fetches favorites using the favoritesApi, and returns the data as a JSON string in a text content block. Handles errors by returning an error message.async (params) => { try { await vrchatClient.auth() const favorites = await vrchatClient.favoritesApi.getFavorites( params.n, params.offset, params.type, params.tag, ) return { content: [{ type: 'text', text: JSON.stringify(favorites.data, null, 2) }] } } catch (error) { return { content: [{ type: 'text', text: 'Failed to list favorites: ' + error }] } } } )
- src/tools/favorites.ts:47-56 (schema)Zod input schema defining parameters for the 'vrchat_list_favorites' tool: n (count), offset, type (world/friend/avatar), and tag.{ n: z.number().min(1).max(100).optional().default(60) .describe('Number of favorites to return (1-100). Default is 60.'), offset: z.number().min(0).optional() .describe('Skip this many favorites before beginning to return results.'), type: z.string().optional() .describe('Filter by favorite type ("world", "friend", or "avatar").'), tag: z.string().optional() .describe('Filter by tag (e.g., "group_0", "group_1").'), },
- src/tools/favorites.ts:43-81 (registration)MCP server.tool registration for 'vrchat_list_favorites', including name, description, input schema, and handler function.// Name 'vrchat_list_favorites', // Description 'Returns a list of favorites.', { n: z.number().min(1).max(100).optional().default(60) .describe('Number of favorites to return (1-100). Default is 60.'), offset: z.number().min(0).optional() .describe('Skip this many favorites before beginning to return results.'), type: z.string().optional() .describe('Filter by favorite type ("world", "friend", or "avatar").'), tag: z.string().optional() .describe('Filter by tag (e.g., "group_0", "group_1").'), }, async (params) => { try { await vrchatClient.auth() const favorites = await vrchatClient.favoritesApi.getFavorites( params.n, params.offset, params.type, params.tag, ) return { content: [{ type: 'text', text: JSON.stringify(favorites.data, null, 2) }] } } catch (error) { return { content: [{ type: 'text', text: 'Failed to list favorites: ' + error }] } } } )
- src/main.ts:35-35 (registration)Invocation of createFavoritesTools in the main MCP server setup, which registers the 'vrchat_list_favorites' tool among others.createFavoritesTools(server, vrchatClient)