Skip to content
Agentmart
Submit a tool

Resonite MCP

Resonite social VR platform MCP server for natural language control of avatars, worlds, and Proto...

Connector by sandraschi · GitHub account verified by the MCP Registry

IndexedMITLocal (stdio)★ 10
Write a review

Install

Works with Claude Desktop. Read the repository before you give any tool access to your data.

Download the bundle

MCP bundle (.mcpb): open it with Claude Desktop.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Resonite social VR platform MCP server for natural language control of avatars, worlds, and Proto...

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this server can do and what it asks for, from its tool list, install config and code. Checked Oct 25, 2026.

Tools
41 read · 31 write · 5 delete · 18 not yet classified
Secrets
None asked for
Install scripts
None found
Runs as
Downloaded binary

Tools by what they do 95

Read from the source code; the running server may list different tools.

Read 41 · Look things up without changing anything.

  • about
  • agentic_plan_execute
  • ask_resonite
  • get_latest_message
  • get_osc_server_stats
  • get_received_messages
  • health_check
  • help
  • osc_analyze_traffic
  • plugin_discover
  • plugin_info
  • plugin_list
Show 29 more tools
  • protoflux_analyze_script
  • resonite_cloud_var_get
  • resonite_cloud_var_list
  • resonite_dashboard_card
  • resonite_friend_presence
  • resonite_friend_requests
  • resonite_friends_list
  • resonite_inventory_card
  • resonite_inventory_info
  • resonite_inventory_list
  • resonite_inventory_search
  • resonite_link_depot_list
  • resonite_link_depot_list_backups
  • resonite_link_discover
  • resonite_link_get
  • resonite_link_get_children
  • resonite_link_get_node
  • resonite_link_get_slot
  • resonite_link_read_field
  • resonite_link_reflect
  • resonite_rest_get_platform
  • resonite_rest_get_records
  • resonite_rest_get_sessions
  • resonite_rest_get_user
  • resonite_session_status
  • resonite_vbot_list_types
  • search_guides
  • status
  • test_osc_echo

Write 31 · Create, change, send or run things.

  • osc_batch_send
  • osc_record_session
  • protoflux_debug_session
  • protoflux_optimize_script
  • resonite_cloud_var_set
  • resonite_inventory_share
  • resonite_inventory_upload
  • resonite_link_add_component
  • resonite_link_add_slot
  • resonite_link_batch
  • resonite_link_call_method
  • resonite_link_depot_add
Show 19 more tools
  • resonite_link_depot_backup
  • resonite_link_depot_restore_backup
  • resonite_link_depot_update_metadata
  • resonite_link_import_mesh_json
  • resonite_link_import_texture
  • resonite_link_set
  • resonite_link_spawn
  • resonite_link_spawn_mesh
  • resonite_link_write_field
  • resonite_parameter_set
  • resonite_protoflux_execute
  • resonite_rest_login
  • resonite_rest_send_message
  • resonite_session_start
  • resonite_vbot_move
  • resonite_vbot_stop
  • send_osc
  • start_osc_server
  • stop_osc_server

Delete 5 · Delete, drop, revoke or wipe things.

  • clear_osc_message_buffer
  • resonite_cloud_var_delete
  • resonite_inventory_delete
  • resonite_link_depot_remove
  • resonite_link_destroy_slot

Not yet classified 18 · We could not tell from the name and description.

  • osc_monitor_start
  • plugin_load
  • plugin_reload
  • plugin_unload
  • protoflux_document_script
  • protoflux_generate_template
  • resonite_avatar_load
  • resonite_fleet
  • resonite_inventory_spawn
  • resonite_link_animate
  • resonite_link_connect
  • resonite_link_depot_spawn
Show 6 more tools
  • resonite_link_spawn_fixture
  • resonite_session_end
  • resonite_vbot_head
  • resonite_vbot_spawn
  • resonite_voice
  • resonite_world_load

Network hosts it talks to 22

  • api.resonite.com · found in code
  • assets.resonite.com · found in code
  • biomejs.dev · found in code
  • booth.pm · found in code
  • cdn.worldlabs.ai · found in code
  • cli.github.com · found in code
  • github.com · found in install command, code
  • glama.ai · found in code
  • hub.vroid.com · found in code
  • images.unsplash.com · found in code
  • kenney.nl · found in code
  • picoxr.com · found in code
  • poly.pizza · found in code
  • quaternius.com · found in code
  • reddit.com · found in code
  • resonite.com · found in code
  • schema.tauri.app · found in code
  • sketchfab.com · found in code
  • steamcommunity.com · found in code
  • store.steampowered.com · found in code
  • vrdesktop.net · found in code
  • wiki.resonite.com · found in code

Files it touches

  • %APPDATA%\com.sandraschi.pywinauto-mcp\logs\backend-spawn.log
  • %LOCALAPPDATA%\Programs\Resonite
  • Your home directory (~)
  • ~/.avatarmcp/models
  • ~/Documents/ResoniteAssets/architecture
  • ~/Documents/ResoniteAssets/furniture
  • ~/Documents/ResoniteAssets/misc
  • ~/Documents/ResoniteAssets/props
  • Any path the agent passes to its tools

Tools (95)

Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].

  • about

    Explain this MCP server, its paired webapp, and where to get the full install. Resonite MCP is the AI-tool surface; this repo also ships a web dashboard (the visual product). This tool tells a registry/user who has only the MCP server about the webapp and the repo link for the full install. Returns: A short markdown blurb: what this server is, the paired webapp + its URL, and the full-install repo link.

  • agentic_plan_execute

    Plan and execute a multi-step Resonite task using LLM reasoning. Uses FastMCP 3.2+ ctx.sample() to autonomously plan and execute complex Resonite workflows (avatar setup, world loading, asset import). ## Return Format {"success": bool, "message": str, "data": {"plan": str, "reasoning": str}} ## Examples agentic_plan_execute("Load the TutorialWorld and set up my avatar")

  • ask_resonite

    Ask a question about Resonite and get one synthesized answer grounded in the bundled technical guides. Retrieval pipeline: LanceDB vector search (top 3 guide chunks) then synthesis via the best available local LLM substrate (Ollama/LM Studio/OpenAI-compatible). Falls back to returning raw quoted passages when no LLM substrate is reachable. Prefer search_guides when you need quotable passages; prefer this tool for a direct answer to a user question. Args: question: The user's Resonite question in plain language (e.g. "How do I spawn an inventory item via OSC?"). Returns: A ma…

  • clear_osc_message_buffer

    Clear all messages from an OSC server's buffer.

  • get_latest_message

    Get the most recent OSC message from a running server.

  • get_osc_server_stats

    Get statistics about a running OSC server's message buffer.

  • get_received_messages

    Get OSC messages received by a running OSC server. Args: port: Port of the OSC server to query address_pattern: Filter by OSC address pattern (substring match) max_age_seconds: Only return messages newer than this age limit: Maximum number of messages to return Returns: Dictionary with messages and metadata Examples: Get recent messages: get_received_messages(9001) Filter by address: get_received_messages(9001, "/avatar") Get last 10 messages: get_received_messages(9001, limit=10)

  • health_check

    Check the health status of the Resonite MCP server and its components. Lightweight readiness probe: reports plugin/OSC/RAG/LLM state plus whether the Resonite desktop client is installed and running. Call this first when search_guides or OSC tools fail, or before starting any OSC/session workflow. Returns: {"status": "success", "message": str, "version": str, "agent_lab_phase": int, "plugins_loaded": list[str], "osc_connected": bool, "resonite_link_connected": bool, "rag_engine_active": bool, "llm_substrate": str ("none" when no local LLM), "resonite_installed": bool, "resoni…

  • help

    Get help and documentation for the Resonite MCP server. Provides contextual assistance and documentation for Resonite MCP server features, organized by knowledge levels from basic usage to advanced technical details. Args: level: Help detail level (basic, intermediate, advanced) topic: Optional specific topic to focus on Returns: Formatted help text for the requested level and topic Examples: help() # Basic overview help("intermediate") # Detailed tool descriptions help("advanced") # Technical architecture and API help("basic", "…

  • osc_analyze_traffic

    Sample OSC traffic over a time window and report rate, unique addresses, and top talkers. WHEN TO USE: diagnosing what is noisy/active ("which avatar params are spamming?"). Unlike osc_monitor_start (instant filtered count) this blocks for analysis_duration and computes statistics; unlike osc_record_session (capture for playback) it returns aggregates, not message bodies. Pair with get_received_messages for bodies. Args: port: Receiver port to analyze. analysis_duration: Sampling window in seconds. Returns: {"success": bool, "message": str, "data": {"port": int, "analysis_du…

  • osc_batch_send

    Send an ordered batch of OSC messages to Resonite with an optional inter-message delay. WHEN TO USE: sequenced avatar parameter animations or multi-command scenes (e.g. Happy 0.8 then Surprise 0.5). For a single message use send_osc instead. Args: port: Target Resonite OSC port. messages: List of {address, values} items in send order. delay_ms: Delay between sends; 0 = back-to-back. Returns: {"success": bool, "message": str, "data": {"sent": int, "failed": int, "total": int}}. success=true means the batch ran; check sent vs failed for per-message outcome. Individual …

  • osc_monitor_start

    Attach a filtered counter to a running OSC receiver and report how many messages match. WHEN TO USE: live "how much traffic right now" snapshot on an existing receiver. Use osc_analyze_traffic instead for sampled rate/top-address statistics over a time window; use osc_record_session when you need to capture a session for later playback; use get_received_messages for the actual message bodies. Args: port: Local UDP port of the running OSC receiver. address_filter: Optional address substring; None counts everything. duration_seconds: Informational only; does not block. Returns: …

  • osc_record_session

    Capture OSC traffic on a receiver port for a fixed duration and return a recording id. WHEN TO USE: recording a live avatar/world performance for later inspection or playback. Blocks for duration_seconds, then reports how many NEW messages arrived during the window (delta on the osc_recordings buffer). For instant stats without blocking use osc_analyze_traffic; for a non-blocking count use osc_monitor_start. Args: port: Receiver port doing the capture. session_name: Label for the recording. duration_seconds: Capture window; the call sleeps this long. Returns: {"success": boo…

  • plugin_discover

    Discover available plugins in the system. Scans plugin directories and returns information about all discoverable plugins. Returns: Dictionary with discovered plugin information Examples: Discover plugins: plugin_discover()

  • plugin_info

    Get detailed information about a specific plugin or all plugins. Args: plugin_name: Name of specific plugin to get info for (optional) Returns: Dictionary with detailed plugin information Examples: Get info for specific plugin: plugin_info("osc_extensions") Get info for all plugins: plugin_info()

Show 80 more tools
  • plugin_list

    List all available and loaded plugins. Returns: Dictionary with plugin information Examples: List all plugins: plugin_list()

  • plugin_load

    Load a plugin into the running server. Args: plugin_name: Name of the plugin to load Returns: Dictionary with plugin loading status Examples: Load OSC extensions: plugin_load("osc_extensions")

  • plugin_reload

    Reload a plugin in the running server. This unloads and then reloads the plugin, useful for applying configuration changes. Args: plugin_name: Name of the plugin to reload Returns: Dictionary with plugin reload status Examples: Reload ProtoFlux helpers: plugin_reload("protoflux_helpers")

  • plugin_unload

    Unload a plugin from the running server. Args: plugin_name: Name of the plugin to unload Returns: Dictionary with plugin unloading status Examples: Unload OSC extensions: plugin_unload("osc_extensions")

  • protoflux_analyze_script

    Analyze a ProtoFlux script structure via OSC introspection. Sends an OSC introspection request to Resonite and reports available ProtoFlux nodes, variables, and connections. ## Return Format {"success": bool, "message": str, "data": {"script_name": str, "status": str}} ## Examples protoflux_analyze_script("MyAnimation")

  • protoflux_debug_session

    Start a ProtoFlux debugging session via OSC. Sends debug commands to Resonite via OSC to set breakpoints and trace execution for a named ProtoFlux script. ## Return Format {"success": bool, "message": str, "data": {"script_name": str, "debug_mode": str}} ## Examples protoflux_debug_session("MyAnimation", debug_mode="trace")

  • protoflux_document_script

    Generate documentation for a ProtoFlux script. Queries ResoniteLink (if connected) or OSC for script metadata and returns structured documentation. ## Return Format {"success": bool, "message": str, "data": {"script_name": str, "sections": list}} ## Examples protoflux_document_script("MyAnimation")

  • protoflux_generate_template

    Generate a ProtoFlux script template description. Returns a documented template for common ProtoFlux patterns. The template can be used as a recipe to build the script in Resonite. ## Return Format {"success": bool, "message": str, "data": {"template_type": str, "nodes": list, "description": str}} ## Examples protoflux_generate_template("avatar_animation") protoflux_generate_template("world_interaction", {"sound": "click.wav"})

  • protoflux_optimize_script

    Send optimization hints for a ProtoFlux script. Accepts optimization settings and returns a recipe of changes the user can apply in Resonite's ProtoFlux editor. ## Return Format {"success": bool, "message": str, "data": {"script_name": str, "suggestions": list}} ## Examples protoflux_optimize_script("MyAnimation", optimization_level="aggressive")

  • resonite_avatar_load

    Load an avatar into the current Resonite session. Args: input_data: Avatar loading configuration (avatar_id, slot, parameters) Returns: Dictionary with avatar loading status

  • resonite_cloud_var_delete

    Delete a cloud variable. Args: path: Cloud variable path to delete user_id: User ID (U-...). Defaults to authenticated user. ## Return Format {"status": "ok", "path": str}

  • resonite_cloud_var_get

    Get a cloud variable value by its path. Args: path: Full cloud variable path (e.g. "Cloud/MyVar") user_id: User ID (U-...). Defaults to authenticated user. ## Return Format {"status": "ok", "path": str, "value": any}

  • resonite_cloud_var_list

    List cloud variable definitions for a user. Cloud variables are key-value pairs stored in Resonite's cloud. Requires authentication. Args: user_id: User ID (U-...). Defaults to authenticated user. path: Cloud variable path prefix to filter by. ## Return Format {"status": "ok", "variables": [...], "count": int}

  • resonite_cloud_var_set

    Set a cloud variable value. Creates the variable if it does not exist. Args: path: Cloud variable path (e.g. "Cloud/MyVar") value: The value to store (string, number, bool, or JSON-serializable) user_id: User ID (U-...). Defaults to authenticated user. ## Return Format {"status": "ok", "path": str, "value": any}

  • resonite_dashboard_card

    Show Resonite MCP fleet status as a rich Prefab card. Displays server health, Resonite process status, OSC connectivity, ResoniteLink status, and tool counts in a scannable card.

  • resonite_fleet

    Cross-fleet asset pipeline into Resonite (inkscape UI, blender GLB, gimp textures).

  • resonite_friend_presence

    Get a friend's presence and current session info. Args: user_id: The friend's user ID (U-...) ## Return Format {"status": "ok", "user_id": str, "presence": {...}}

  • resonite_friend_requests

    List pending friend requests (incoming). Requires authentication. ## Return Format {"status": "ok", "requests": [...], "count": int}

  • resonite_friends_list

    List your Resonite friends. Requires authentication. ## Return Format {"status": "ok", "friends": [...], "count": int}

  • resonite_inventory_card

    Show a browsable inventory preview as a rich Prefab card. Displays recent inventory items with names, types, and availability status in a scannable card format. Args: limit: Max items to display (default 10)

  • resonite_inventory_delete

    Delete an item from the user's Resonite inventory.

  • resonite_inventory_info

    Get detailed information about an inventory item.

  • resonite_inventory_list

    List items in the user's Resonite inventory. Args: input_data: Inventory list configuration (item_type, search_query, limit, offset) Returns: Dictionary with inventory items and pagination info

  • resonite_inventory_search

    Search for items in the user's Resonite inventory.

  • resonite_inventory_share

    Share an inventory item with another user.

  • resonite_inventory_spawn

    Spawn an item from inventory into the current world.

  • resonite_inventory_upload

    Upload a local file to Resonite inventory.

  • resonite_link_add_component

    Attach a component to a slot, optionally initializing members. component_type uses Resonite syntax, e.g. "[FrooxEngine]FrooxEngine.Grabbable". members example: {"Scalable": true}. Use resonite_link_reflect to discover types. ## Return Format {"status": str, "slot_id": str, "component_id": str, "component_type": str}

  • resonite_link_add_slot

    Create a new slot in the connected world. Args: name: Name for the new slot parent_id: Parent slot ID (default "Root") pos_x/pos_y/pos_z: Local position slot_id: Optional client-chosen ID (avoid the "Reso_" prefix) ## Return Format {"status": str, "parent_id": str, "slot_id": str, "name": str}

  • resonite_link_animate

    Loop-animate a slot in place: 'spin' (continuous rotation), 'bob' (smooth sinusoidal vertical oscillation), or 'bounce' (real drop-and-rebound physics with energy loss per landing, not a sine wave). Server-driven - repeated updateSlot calls over the ResoniteLink WebSocket, not a baked animation clip. Blocks for duration_s while it runs. speed: 'spin' radians/second, 'bob' oscillations/second, 'bounce' overall pace (scales effective gravity). amplitude: 'bob'/'bounce' peak height above rest, in meters. damping: 'bounce' only, energy retained per bounce (0-1). ## Return Format {"status…

  • resonite_link_batch

    Execute multiple data-model operations atomically (dataModelOperationBatch). Each operation is a real protocol message with "$type", e.g.: - {"$type": "addSlot", "data": {"name": {"$type": "string", "value": "X"}}} - {"$type": "updateComponent", "data": {"id": "...", "members": {...}}} - {"$type": "removeSlot", "slotId": "..."} - {"$type": "callSyncMethod", "targetID": "...", "methodName": "...", "arguments": {}} ## Return Format {"status": str, "response": {...}}

  • resonite_link_call_method

    Call a sync method on a component/object (callSyncMethod, protocol 0.11.0+). Args: target_id: ID of the object to call the method on method_name: Method name arguments: {argName: value} - primitives auto-encoded ## Return Format {"status": str, "target_id": str, "method": str, "result": {...}}

  • resonite_link_connect

    Connect to the ResoniteLink WebSocket server. ResoniteLink is built into Resonite (no mod needed); the session HOST must enable it: Dashboard -> Session -> Settings -> Enable ResoniteLink. Default port 4242, but prefer resonite_link_discover to find the real port. ## Return Format {"status": str, "message": str, "session_info": {resoniteVersion, resoniteLinkVersion, uniqueSessionId}}

  • resonite_link_depot_add

    Copy a local file into the model or texture depot and register it in the manifest. file_path must already exist on disk (this copies it in, it does not fetch URLs). Fails if a depot entry with the same filename already exists - use resonite_link_depot_update_metadata to change description/category, or resonite_link_depot_remove first to replace it. ## Return Format {"status": str, "kind": str, "name": str, "size": int}

  • resonite_link_depot_backup

    Zip-snapshot the model and texture depots into data/backups/<timestamp>.zip. Does not touch the live Resonite world - this backs up depot files this server manages locally, not anything inside a running session. ## Return Format {"status": str, "name": str, "size": int}

  • resonite_link_depot_list

    List entries in the model or texture depot. kind: "model" or "texture". ## Return Format {"status": str, "kind": str, "items": [{"name","description","category","exists","size"}], "count": int}

  • resonite_link_depot_list_backups

    List available depot backup archives, newest first. ## Return Format {"status": str, "backups": [{"name","size","created_at"}], "count": int}

  • resonite_link_depot_remove

    Delete a depot entry: removes the file on disk and its manifest entry. ## Return Format {"status": str, "kind": str, "name": str}

  • resonite_link_depot_restore_backup

    Restore a depot backup archive, OVERWRITING current files in the model/texture depots (matching names only - does not delete files the backup doesn't mention). Does not touch the live Resonite world. ## Return Format {"status": str, "name": str, "restored": int}

  • resonite_link_depot_spawn

    Spawn a depot model into the world, or import a depot texture and hand back its asset URL. kind="model": converts the .glb/.vrm/.gltf via gltf_to_mesh_json() (the same live-verified path used for Nekomimi-chan) and spawns it with client.spawn_mesh() at (pos_x,pos_y,pos_z). kind="texture": imports via client.import_texture_file() and returns the asset_url only - there is no mesh to attach it to here. Wire it into a material yourself, e.g.: resonite_link_add_component(slot_id, "[FrooxEngine]FrooxEngine.PBS_Metallic", {"AlbedoTexture": {"$type": "reference", "targetId": ...}}) # se…

  • resonite_link_depot_update_metadata

    Update description/category for an existing depot entry (file itself untouched). ## Return Format {"status": str, "kind": str, "name": str}

  • resonite_link_destroy_slot

    Remove a slot and its children (removeSlot). Note: preserve_assets is accepted for compatibility but the protocol has no such option; it is ignored with a warning. ## Return Format {"status": str, "slot_id": str}

  • resonite_link_discover

    Discover ResoniteLink sessions announced on the local network (UDP 12512). Resonite (0.12.0+ protocol) broadcasts active ResoniteLink sessions every ~10 seconds. Use this instead of guessing the port; then connect with resonite_link_connect using the discovered linkPort. Args: timeout_seconds: How long to listen (default 12s catches one announce cycle) ## Return Format {"status": str, "sessions": [{"sessionName", "sessionID", "linkPort", "host"}], "count": int}

  • resonite_link_get

    Read a member value from a Resonite component (component_id + member name).

  • resonite_link_get_children

    List direct children of a slot ("Root" for top level). ## Return Format {"status": str, "slot_id": str, "children": [...], "count": int}

  • resonite_link_get_node

    Get slot or component information by ID (tries slot first, then component). ## Return Format {"status": str, "ref_id": str, "node": {...}}

  • resonite_link_get_slot

    Fetch slot data from the connected world's scene hierarchy. Args: slot_id: Slot ID ("Root" for the world root) include_component_data: Include full component members (bulkier) depth: 0 = only this slot, 1 = with children, -1 = entire subtree ## Return Format {"status": str, "slot_id": str, "data": {...}}

  • resonite_link_import_mesh_json

    Import a mesh asset from JSON vertex/submesh data (importMeshJSON). Live-verified 2026-07-18. Returns an asset URL, not an entity ID - wire it into a StaticMesh component's URL member (type "Uri") to render it, or use resonite_link_spawn_mesh to do the whole chain in one call. vertices: [{"position": {"x","y","z"}}, ...] (each may also carry "normal"/"tangent"/"color"/"boneWeights", plus UVs as "uv0" = {"$type": "2D", "uv": {"x","y"}} -- live-verified 2026-09-18; the old "uvs" list shape is rejected). submeshes: [{"$type": "triangles", "triangles": [{"vertex0Index", "vertex1I…

  • resonite_link_import_texture

    Import a texture from a file path on the RESONITE HOST machine (importTexture2DFile). NOTE: file_path is resolved on the machine running Resonite, not the machine running this MCP server - matters if they differ. Wire shape is confirmed against the upstream C# source but has NOT been live-tested against a running session yet; treat results with appropriate caution until it has been run once for real. ## Return Format {"status": str, "asset_url": str} or {"status": "error", "message": str}

  • resonite_link_read_field

    Read a component's data (type + all members) by component ID. Note: ResoniteLink reads whole components, not individual field refs. Member values are in data.members, matching Resonite inspector names. ## Return Format {"status": str, "ref_id": str, "value": {...}}

  • resonite_link_reflect

    Discover component types or member definitions. Without component_type: getComponentTypeList (all available types). With component_type: getComponentDefinition (member definitions; note that member types are type REFERENCES since protocol 0.9.0 - resolve them via the typeDefinition messages if needed). ## Return Format {"status": str, "types": {...}} or {"status": str, "component_type": str, "data": {...}}

  • resonite_link_set

    Set a member value on a Resonite component (component_id + member name).

  • resonite_link_spawn

    Create a named, positioned slot in the world. NOTE: ResoniteLink has no template-URL spawning. If template_url is a resonite:// or file path, this returns not_implemented with guidance; otherwise it is used as the slot name.

  • resonite_link_spawn_fixture

    Spawn a preset test fixture (box/cup/ball/table/chair) for gripper/manipulation testing. Multi-part fixtures (table, chair) spawn as several independent slots near each other, not parented - static set-dressing that never needs to move as a unit. Unlike overte-mcp's equivalent, there is no "in front of you" default placement - ResoniteLink cannot read the local user's position (no such message exists in the protocol), so pos_x/y/z must be given explicitly; they default to the world origin. color_r/g/b/a: 0-1 floats, applied uniformly to every part. Default white. ## Return Format {"status":…

  • resonite_link_spawn_mesh

    Import a JSON mesh and wire the full render chain in one call. Convenience wrapper live-verified 2026-07-18 (as three separate manual steps that night; now one call): importMeshJSON -> addSlot -> StaticMesh -> MeshRenderer -> (if color given) PBS_Metallic wired into Materials. color_r/g/b: pass all three (0-1 floats) to also paint the mesh, e.g. orange = (1.0, 0.45, 0.05). Omit any one to skip material creation. ## Return Format {"status": str, "slot_id": str, "asset_url": str, "static_mesh_id": str, "renderer_id": str, "material_id": str (only if color given)}

  • resonite_link_write_field

    Write one member on a component (updateComponent). Args: component_id: The component's ID member: Member name exactly as shown in the Resonite inspector value: The value (bool/int/float/string auto-encoded; dicts with x/y/z -> float3) value_type: Optional explicit protocol type ("float3", "colorX", "reference", ...) ## Return Format {"status": str, "component_id": str, "member": str}

  • resonite_parameter_set

    Set an avatar parameter value in Resonite. Args: parameter_name: Name of the parameter to set value: Parameter value (typically 0.0 to 1.0) avatar_slot: Specific avatar slot (0-7), affects all if not specified

  • resonite_protoflux_execute

    Execute a ProtoFlux script in Resonite. Args: input_data: Script configuration (script_name, script_data, execute)

  • resonite_rest_get_platform

    Get Resonite platform/server information. Does not require authentication. Returns: Platform info including build version and status. Examples: >>> await resonite_rest_get_platform() {"status": "ok", "platform": {"version": "...", ...}}

  • resonite_rest_get_records

    Browse a user's Resonite inventory records. Requires authentication (resonite_rest_login first, or RESONITE_USER_ID + RESONITE_TOKEN env vars). Args: user_id: User ID (U-...). Defaults to authenticated user. path: Inventory path to list (e.g. 'Inventory/WorldLabs'). Omit to list root. record_id: If provided, fetch a single record (R-...). Returns: Records at the specified path. Examples: >>> await resonite_rest_get_records(path="Inventory") {"status": "ok", "records": [...], "count": 12}

  • resonite_rest_get_sessions

    List public Resonite world sessions. Does not require authentication. Args: name: Filter by session name (partial match). host_name: Filter by host's username. host_id: Filter by host's user ID (starts with U-). min_active_users: Minimum number of active users. include_empty_headless: Include empty headless servers. Returns: List of public sessions. Examples: >>> await resonite_rest_get_sessions(name="WorldLabs") {"status": "ok", "sessions": [...], "count": 3}

  • resonite_rest_get_user

    Look up a Resonite user by username or user ID. Args: username_or_id: Username or user ID (U-...). Automatically detects format. Returns: User profile object. Examples: >>> await resonite_rest_get_user("Frooxius") {"status": "ok", "user": {"id": "U-...", "username": "Frooxius", ...}}

  • resonite_rest_login

    Log in to the Resonite API and store the session token. Args: username: Your Resonite username or email. password: Your Resonite password. remember_me: If True, token valid 30 days; otherwise 24 hours. Returns: Session details including user_id and token (stored for subsequent calls). Examples: >>> await resonite_rest_login("MyUser", "hunter2") {"status": "ok", "user_id": "U-...", "token": "...", "expires": "..."}

  • resonite_rest_send_message

    Send a chat message to a Resonite user via the REST API. Useful for sending a World Labs GLB/SPZ URL to yourself or a collaborator so it can be imported inside Resonite by dragging the link. Requires authentication. Args: target_user_id: The recipient's user ID (U-...). message: The message text. For asset import, use the signed asset URL. Returns: Confirmation of the sent message. Examples: >>> await resonite_rest_send_message("U-Frooxius", "https://cdn.worldlabs.ai/.../world.glb") {"status": "ok", "message_id": "M-..."}

  • resonite_session_end

    End the current Resonite session and clean up resources. Returns: Dictionary with session cleanup status Examples: End session: resonite_session_end()

  • resonite_session_start

    Start a new Resonite session with optional world and avatar setup. This initializes OSC communication with Resonite and sets up a session for avatar control, world management, and social interactions. Args: input_data: Session configuration (session_name, world_path, avatar_slot) Returns: Dictionary with session information and status Examples: Start basic session: resonite_session_start({}) Start with world: resonite_session_start({"world_path": "resonite://TutorialWorld"})

  • resonite_session_status

    Get the current status of the active Resonite session. Returns: Dictionary with session status and active components Examples: Check session status: resonite_session_status()

  • resonite_vbot_head

    Move the vBot head to the given yaw/pitch angles. Args: robot_id: The robot ID yaw_deg: Yaw angle in degrees pitch_deg: Pitch angle in degrees ## Return Format {"success": bool, "robot_id": str, "yaw_deg": float, "pitch_deg": float}

  • resonite_vbot_list_types

    List available vBot robot types and their OSC contracts. Returns types: yahboom (vBoomy), mechazilla (vMechazilla), bumi (vBumi), godzilla (kaiju scale), custom. Each type has default scale and drive mode. ## Return Format {"status": "success", "types": [...], "count": int}

  • resonite_vbot_move

    Send move command to a vBot in Resonite. Holonomic drive: linear = forward/backward speed (m/s), angular = yaw rotation (rad/s). Args: robot_id: The robot ID (e.g. "vbot_yahboom_01") linear: Forward velocity in m/s (positive = forward) angular: Yaw angular velocity in rad/s (positive = clockwise) ## Return Format {"success": bool, "robot_id": str, "linear": float, "angular": float}

  • resonite_vbot_spawn

    Spawn a vBot in Resonite at the given position and scale. The Resonite world must have the vBot OSC receiver ProtoFlux graph listening on port 9000 (see docs/VBOT_OSC_RECEIVER.md). Args: robot_type: yahboom, mechazilla, bumi, godzilla, or custom robot_id: Unique robot ID (auto-generated if empty) position_x/y/z: Spawn position in 3D world coordinates scale: Spawn scale. Use 0 for type default. ## Return Format {"success": bool, "robot_id": str, "robot_type": str, "position": {...}}

  • resonite_vbot_stop

    Stop a vBot - zero all locomotion commands. Args: robot_id: The robot ID to stop ## Return Format {"success": bool, "robot_id": str}

  • resonite_voice

    Local LLM-assisted voice macros over OSC.

  • resonite_world_load

    Load a world in the current Resonite session. Args: world_path: Path to the world (resonite:// format for built-in worlds, file:// for local files, inventory:// for user inventory) Returns: Dictionary with world loading status Examples: Load built-in world: resonite_world_load("resonite://TutorialWorld") Load from inventory: resonite_world_load("inventory://MyCustomWorld") Load local file: resonite_world_load("file:///path/to/world.resonite")

  • search_guides

    Semantic vector search over the bundled Resonite technical guides (repo *.md + docs/**/*.md, embedded with sentence-transformers all-MiniLM-L6-v2 in LanceDB). Use this when you need raw source passages to quote or to ground a follow-up call. Use ask_resonite instead when you want one synthesized natural-language answer rather than passages. Args: query: Natural-language search query (e.g. "how do avatar parameters work via OSC"). limit: Max passages to return (1-20). Defaults to 5. Returns: {"status": "success"|"error", "results": [{"title": str, "filename": str, "text": str}], …

  • send_osc

    Send an OSC message to the specified address. This is a low-level OSC function for direct protocol control. Most users should use the higher-level Resonite-specific tools instead. Args: input_data: OSC message details (host, port, address, values) Returns: Dictionary with operation status and details Examples: Send a parameter value: send_osc({"host": "127.0.0.1", "port": 9000, "address": "/avatar/happy", "values": [0.8]})

  • start_osc_server

    Start an OSC server to receive incoming messages from Resonite. This creates a UDP server that can receive OSC messages from Resonite for bidirectional communication and real-time feedback. Args: input_data: Server configuration (port, address) Returns: Dictionary with server status and connection details Examples: Start server for Resonite feedback: start_osc_server({"port": 9001})

  • status

    Get comprehensive server status and diagnostic information. Provides detailed information about server health, plugin status, system resources, and operational metrics at different detail levels. Args: level: Status detail level (basic, intermediate, advanced) focus: Optional focus area (plugins, osc, system, session) Returns: Formatted status report with diagnostics and metrics Examples: status() # Basic server overview status("intermediate") # Detailed operational status status("advanced") # Full diagnostic information status("…

  • stop_osc_server

    Stop a running OSC server. Args: input_data: Port of the server to stop Returns: Dictionary with operation status Examples: Stop OSC server: stop_osc_server({"port": 9001})

  • test_osc_echo

    Test OSC functionality by sending and receiving a message.

Signals

Stars
10
Forks
1
Open issues
2
Last commit
Oct 24, 2026 (4 days ago)
Last release
Aug 27, 2026 (2 months ago)

From GitHub (fetched Oct 24, 2026).

Details

Registry name
io.github.sandraschi/resonite-mcp
Version
1.2.0
Auth
No auth
License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from sandraschi

Cite this page

Resonite MCP. Agent Mart. https://agentmart.dev/connectors/sandraschi-resonite-mcp (last updated 2026-10-24)