vrchat_add_favorite
Add VRChat worlds, friends, or avatars to your favorites list with tags for organization using the VRChat MCP Server.
Instructions
Add a new favorite.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | FavoriteType. Default: friend, Allowed: world | friend | avatar | |
| favoriteId | Yes | Must be either AvatarID, WorldID or UserID | |
| tags | Yes | Tags indicate which group this favorite belongs to. Adding multiple groups makes it show up in all. Removing it from one in that case removes it from all. |
Implementation Reference
- src/tools/favorites.ts:94-116 (handler)The handler function that authenticates the VRChat client and calls the favoritesApi.addFavorite method with the provided parameters, returning the result or error as text content.async (params) => { try { await vrchatClient.auth() const favorite = await vrchatClient.favoritesApi.addFavorite({ type: params.type, favoriteId: params.favoriteId, tags: params.tags, }) return { content: [{ type: 'text', text: JSON.stringify(favorite.data, null, 2) }] } } catch (error) { return { content: [{ type: 'text', text: 'Failed to add favorite: ' + error }] } } }
- src/tools/favorites.ts:86-93 (schema)Zod input schema validating the tool parameters: type (world, friend, or avatar), favoriteId (string), and tags (non-empty array of strings).{ type: z.enum(['world', 'friend', 'avatar']) .describe('FavoriteType. Default: friend, Allowed: world | friend | avatar'), favoriteId: z.string().min(1) .describe('Must be either AvatarID, WorldID or UserID'), tags: z.array(z.string().min(1)).min(1) .describe('Tags indicate which group this favorite belongs to. Adding multiple groups makes it show up in all. Removing it from one in that case removes it from all.'), },
- src/tools/favorites.ts:83-117 (registration)Registers the 'vrchat_add_favorite' tool with the MCP server using server.tool(), providing name, description, input schema, and handler function.server.tool( 'vrchat_add_favorite', 'Add a new favorite.', { type: z.enum(['world', 'friend', 'avatar']) .describe('FavoriteType. Default: friend, Allowed: world | friend | avatar'), favoriteId: z.string().min(1) .describe('Must be either AvatarID, WorldID or UserID'), tags: z.array(z.string().min(1)).min(1) .describe('Tags indicate which group this favorite belongs to. Adding multiple groups makes it show up in all. Removing it from one in that case removes it from all.'), }, async (params) => { try { await vrchatClient.auth() const favorite = await vrchatClient.favoritesApi.addFavorite({ type: params.type, favoriteId: params.favoriteId, tags: params.tags, }) return { content: [{ type: 'text', text: JSON.stringify(favorite.data, null, 2) }] } } catch (error) { return { content: [{ type: 'text', text: 'Failed to add favorite: ' + error }] } } } )