vrchat_search_avatars
Search and filter your own or featured VRChat avatars by criteria like tags, release status, and sorting options to find suitable virtual identities.
Instructions
Search and list avatars by query filters. You can only search your own or featured avatars. It is not possible as a normal user to search other people's avatars.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| featured | No | ||
| sort | No | ||
| user | No | ||
| userId | No | ||
| n | No | ||
| order | No | ||
| offset | No | ||
| tag | No | ||
| notag | No | ||
| releaseStatus | No | ||
| maxUnityVersion | No | ||
| minUnityVersion | No | ||
| platform | No |
Implementation Reference
- src/tools/avatars.ts:55-87 (handler)Handler function that authenticates with VRChat, calls the searchAvatars API with provided parameters, and returns the response as JSON text or an error message.async (params) => { try { await vrchatClient.auth() const response = await vrchatClient.avatarApi.searchAvatars( params.featured, params.sort, params.user, params.userId, params.n, params.order, params.offset, params.tag, params.notag, params.releaseStatus, params.maxUnityVersion, params.minUnityVersion, params.platform ) return { content: [{ type: 'text', text: JSON.stringify(response.data, null, 2) }] } } catch (error) { return { content: [{ type: 'text', text: 'Failed to search avatars: ' + error }] } } }
- src/tools/avatars.ts:40-54 (schema)Zod input schema defining optional search parameters for avatars such as featured, sort order, user filters, pagination, tags, and platform constraints.{ featured: z.boolean().optional(), sort: z.enum(['popularity', 'heat', 'trust', 'shuffle', 'random', 'favorites', 'reportScore', 'reportCount', 'publicationDate', 'labsPublicationDate', 'created', '_created_at', 'updated', '_updated_at', 'order', 'relevance', 'magic', 'name']).optional(), user: z.enum(['me']).optional(), userId: z.string().optional(), n: z.number().min(1).max(100).optional(), order: z.enum(['ascending', 'descending']).optional(), offset: z.number().min(0).optional(), tag: z.string().optional(), notag: z.string().optional(), releaseStatus: z.enum(['public', 'private', 'hidden', 'all']).optional(), maxUnityVersion: z.string().optional(), minUnityVersion: z.string().optional(), platform: z.string().optional(), },
- src/tools/avatars.ts:35-88 (registration)The server.tool() registration for 'vrchat_search_avatars', specifying the tool name, description, input schema, and handler function.server.tool( // Name 'vrchat_search_avatars', // Description 'Search and list avatars by query filters. You can only search your own or featured avatars. It is not possible as a normal user to search other people\'s avatars.', { featured: z.boolean().optional(), sort: z.enum(['popularity', 'heat', 'trust', 'shuffle', 'random', 'favorites', 'reportScore', 'reportCount', 'publicationDate', 'labsPublicationDate', 'created', '_created_at', 'updated', '_updated_at', 'order', 'relevance', 'magic', 'name']).optional(), user: z.enum(['me']).optional(), userId: z.string().optional(), n: z.number().min(1).max(100).optional(), order: z.enum(['ascending', 'descending']).optional(), offset: z.number().min(0).optional(), tag: z.string().optional(), notag: z.string().optional(), releaseStatus: z.enum(['public', 'private', 'hidden', 'all']).optional(), maxUnityVersion: z.string().optional(), minUnityVersion: z.string().optional(), platform: z.string().optional(), }, async (params) => { try { await vrchatClient.auth() const response = await vrchatClient.avatarApi.searchAvatars( params.featured, params.sort, params.user, params.userId, params.n, params.order, params.offset, params.tag, params.notag, params.releaseStatus, params.maxUnityVersion, params.minUnityVersion, params.platform ) return { content: [{ type: 'text', text: JSON.stringify(response.data, null, 2) }] } } catch (error) { return { content: [{ type: 'text', text: 'Failed to search avatars: ' + error }] } } } )
- src/main.ts:31-31 (registration)Invocation of createAvatarsTools which registers the vrchat_search_avatars tool on the MCP server.createAvatarsTools(server, vrchatClient)