vrchat_search_avatars
Search and filter your own or featured avatars in VRChat, sorting by criteria like popularity, release status, or tags, using a structured query interface for precise results.
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 | ||
| maxUnityVersion | No | ||
| minUnityVersion | No | ||
| n | No | ||
| notag | No | ||
| offset | No | ||
| order | No | ||
| platform | No | ||
| releaseStatus | No | ||
| sort | No | ||
| tag | No | ||
| user | No | ||
| userId | No |
Implementation Reference
- src/tools/avatars.ts:55-87 (handler)Handler function that handles the tool execution: authenticates the VRChat client, searches avatars using the avatarApi.searchAvatars method with provided parameters, and returns the JSON response or 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 parameters for the avatar search such as filters, sorting, pagination, 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)MCP server.tool registration for 'vrchat_search_avatars', including name, description, input schema, and inline handler.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 in the main server setup, which registers the avatars tools including vrchat_search_avatars.createAvatarsTools(server, vrchatClient)