voice
Control voice activation in VRChat using the MCP OSC server. Enable or disable voice chat for AI-driven avatar interactions in virtual reality environments.
Instructions
Toggle voice
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- The main handler function for the 'voice' tool. It sends a 'Voice' input press (1.0), waits 100ms, then releases (0.0) via the WebSocket client.public async voice(ctx?: ToolContext): Promise<string> { if (ctx) { await ctx.info('Voice'); } try { // Send jump input const success = await this.wsClient.sendInput('Voice', 1.0); if (!success) { return 'Failed to Voice'; } // Short delay for button press await delay(100); // Release jump button const releaseSuccess = await this.wsClient.sendInput('Voice', 0.0); if (!releaseSuccess) { return 'Voice initiated but failed to release button'; } return 'Voice'; } catch (error) { const errorMsg = `Error jumping: ${error instanceof Error ? error.message : String(error)}`; logger.error(errorMsg); return errorMsg; } }
- packages/mcp-server/src/server.ts:578-597 (registration)The MCP server.tool registration for the 'voice' tool. It has no input parameters and calls the inputTools.voice handler.server.tool( 'voice', 'Toggle voice', {}, async (_, extra) => { try { const ctx = createToolContext(extra); const result = await inputTools.voice(ctx); return { content: [{ type: 'text', text: result }] }; } catch (error) { return { content: [{ type: 'text', text: `Error jumping: ${error instanceof Error ? error.message : String(error)}` }], isError: true }; } } );