Skip to main content
Glama

vrchat_search_worlds

Search VRChat worlds by name, tags, or filters to find specific virtual environments based on popularity, creation date, or user ownership.

Instructions

Search and list worlds by query filters.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
featuredNoReturn featured worlds only
sortNoSort worlds by a specific criteria
userNoFilter by the specified user, currently only supports "me" to see your own worlds
userIdNoFilter worlds by a specific VRChat user ID
nNoNumber of worlds to return, from 1 to 100
orderNoSort results in ascending or descending order
offsetNoOffset for pagination, minimum 0
searchNoSearch worlds by name or other text fields
tagNoFilter worlds by a specific tag
notagNoExclude worlds with a specific tag

Implementation Reference

  • Handler function executing the tool: authenticates, calls vrchatClient.worldsApi.searchWorlds with input params, returns JSON results or error.
    async (params) => { try { await vrchatClient.auth() const worlds = await vrchatClient.worldsApi.searchWorlds( params.featured, params.sort, params.user, params.userId, params.n, params.order, params.offset, params.search, params.tag, params.notag, ) return { content: [{ type: 'text', text: JSON.stringify(worlds.data, null, 2) }] } } catch (error) { return { content: [{ type: 'text', text: 'Failed to search worlds: ' + error }] } } }
  • Zod schema for input parameters of vrchat_search_worlds tool.
    { featured: z.boolean().optional().describe('Return featured worlds only'), sort: z.enum(['popularity', 'heat', 'trust', 'shuffle', 'random', 'favorites', 'reportScore', 'reportCount', 'publicationDate', 'labsPublicationDate', 'created', '_created_at', 'updated', '_updated_at', 'order', 'relevance', 'magic', 'name']).optional().describe('Sort worlds by a specific criteria'), user: z.enum(['me']).optional().describe('Filter by the specified user, currently only supports "me" to see your own worlds'), userId: z.string().optional().describe('Filter worlds by a specific VRChat user ID'), n: z.number().min(1).max(100).optional().describe('Number of worlds to return, from 1 to 100'), order: z.enum(['ascending', 'descending']).optional().describe('Sort results in ascending or descending order'), offset: z.number().min(0).optional().describe('Offset for pagination, minimum 0'), search: z.string().optional().describe('Search worlds by name or other text fields'), tag: z.string().optional().describe('Filter worlds by a specific tag'), notag: z.string().optional().describe('Exclude worlds with a specific tag'), },
  • Direct registration of the vrchat_search_worlds tool via server.tool call within createWorldsTools function.
    server.tool( // Name 'vrchat_search_worlds', // Description 'Search and list worlds by query filters.', { featured: z.boolean().optional().describe('Return featured worlds only'), sort: z.enum(['popularity', 'heat', 'trust', 'shuffle', 'random', 'favorites', 'reportScore', 'reportCount', 'publicationDate', 'labsPublicationDate', 'created', '_created_at', 'updated', '_updated_at', 'order', 'relevance', 'magic', 'name']).optional().describe('Sort worlds by a specific criteria'), user: z.enum(['me']).optional().describe('Filter by the specified user, currently only supports "me" to see your own worlds'), userId: z.string().optional().describe('Filter worlds by a specific VRChat user ID'), n: z.number().min(1).max(100).optional().describe('Number of worlds to return, from 1 to 100'), order: z.enum(['ascending', 'descending']).optional().describe('Sort results in ascending or descending order'), offset: z.number().min(0).optional().describe('Offset for pagination, minimum 0'), search: z.string().optional().describe('Search worlds by name or other text fields'), tag: z.string().optional().describe('Filter worlds by a specific tag'), notag: z.string().optional().describe('Exclude worlds with a specific tag'), }, async (params) => { try { await vrchatClient.auth() const worlds = await vrchatClient.worldsApi.searchWorlds( params.featured, params.sort, params.user, params.userId, params.n, params.order, params.offset, params.search, params.tag, params.notag, ) return { content: [{ type: 'text', text: JSON.stringify(worlds.data, null, 2) }] } } catch (error) { return { content: [{ type: 'text', text: 'Failed to search worlds: ' + error }] } } } )
  • src/main.ts:32-32 (registration)
    Top-level call to createWorldsTools which registers vrchat_search_worlds and other worlds tools on the MCP server.
    createWorldsTools(server, vrchatClient)

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/sawa-zen/vrchat-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server