Skip to main content
Glama

vrchat_create_instance

Create a new VRChat world instance with customizable privacy settings, region selection, and access controls for multiplayer sessions.

Instructions

Create a new instance of a world.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
worldIdYes
typeYes
regionNous
ownerIdNo
roleIdsNo
groupAccessTypeNo
queueEnabledNo
closedAtNo
canRequestInviteNo
hardCloseNo
inviteOnlyNo

Implementation Reference

  • Executes the tool logic: authenticates VRChat client, calls instancesApi.createInstance with parameters, returns JSON stringified instance data or error message.
    async (params) => { try { await vrchatClient.auth() const instance = await vrchatClient.instancesApi.createInstance({ worldId: params.worldId, type: params.type, region: params.region, ownerId: params.ownerId, roleIds: params.roleIds, groupAccessType: params.groupAccessType, queueEnabled: params.queueEnabled, closedAt: params.closedAt, canRequestInvite: params.canRequestInvite, hardClose: params.hardClose, inviteOnly: params.inviteOnly, }) return { content: [{ type: 'text', text: JSON.stringify(instance.data, null, 2) }] } } catch (error) { return { content: [{ type: 'text', text: 'Failed to create instance: ' + error }] } } }
  • Zod input schema defining parameters for creating a VRChat instance, including worldId, instance type, region, and optional fields like ownerId, roles, etc.
    { worldId: z.string(), type: z.enum(['public', 'hidden', 'friends', 'private', 'group']), region: z.enum(['us', 'use', 'eu', 'jp', 'unknown']).default('us'), ownerId: z.string().nullable().optional(), roleIds: z.array(z.string()).optional(), groupAccessType: z.enum(['members', 'plus', 'public']).optional(), queueEnabled: z.boolean().optional(), closedAt: z.string().optional(), // date-time format canRequestInvite: z.boolean().optional(), hardClose: z.boolean().optional(), inviteOnly: z.boolean().optional(), },
  • Full server.tool registration call for 'vrchat_create_instance', including name, description, input schema, and inline handler function.
    server.tool( // Name 'vrchat_create_instance', // Description 'Create a new instance of a world.', { worldId: z.string(), type: z.enum(['public', 'hidden', 'friends', 'private', 'group']), region: z.enum(['us', 'use', 'eu', 'jp', 'unknown']).default('us'), ownerId: z.string().nullable().optional(), roleIds: z.array(z.string()).optional(), groupAccessType: z.enum(['members', 'plus', 'public']).optional(), queueEnabled: z.boolean().optional(), closedAt: z.string().optional(), // date-time format canRequestInvite: z.boolean().optional(), hardClose: z.boolean().optional(), inviteOnly: z.boolean().optional(), }, async (params) => { try { await vrchatClient.auth() const instance = await vrchatClient.instancesApi.createInstance({ worldId: params.worldId, type: params.type, region: params.region, ownerId: params.ownerId, roleIds: params.roleIds, groupAccessType: params.groupAccessType, queueEnabled: params.queueEnabled, closedAt: params.closedAt, canRequestInvite: params.canRequestInvite, hardClose: params.hardClose, inviteOnly: params.inviteOnly, }) return { content: [{ type: 'text', text: JSON.stringify(instance.data, null, 2) }] } } catch (error) { return { content: [{ type: 'text', text: 'Failed to create instance: ' + error }] } } } )
  • src/main.ts:32-33 (registration)
    Invocation of createInstancesTools in the main server setup, which registers the vrchat_create_instance tool.
    createWorldsTools(server, vrchatClient) createInstancesTools(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