vrchat_add_favorite
Add a favorite world, friend, or avatar to VRChat with specific tags for grouping. Simplify managing favorites using the VRChat MCP Server.
Instructions
Add a new favorite.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| 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. | |
| type | Yes | FavoriteType. Default: friend, Allowed: world | friend | avatar |
Implementation Reference
- src/tools/favorites.ts:94-116 (handler)The async handler function that authenticates with VRChatClient and calls favoritesApi.addFavorite to add the favorite with specified type, id, and tags, returning JSON or error.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 for the tool: type (enum: world, friend, avatar), favoriteId (string), tags (array of non-empty 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 on the MCP server with name, description, input schema, and inline 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 }] } } } )