Overview
This node, named "8th Wall MCP Router," acts as a natural-language command interpreter that maps free-text requests into specific tool calls for managing and manipulating 3D scenes and projects. It is designed to simplify interactions with a 3D content management platform (MCP) by allowing users to describe their intentions in plain language, which the node then translates into actionable commands.
Common scenarios where this node is beneficial include:
- Quickly scaffolding or initializing new 3D projects using predefined templates.
- Starting or running a development server for previewing 3D scenes.
- Adding and configuring scene elements such as primitives (boxes, spheres, planes), lights, background colors, environment HDRs, and models.
- Controlling scene helpers like orbit controls, grid helpers, and floor planes.
- Downloading and adding 3D models from URLs or local sources.
Practical examples:
- Input:
"scaffold a project with three template"→ The node will generate a command to scaffold a new project using the Three.js template. - Input:
"start dev server on port 3000"→ The node will start a development server on port 3000. - Input:
"add a red box at position x:1 y:2 z:3"→ The node will add a red box primitive to the scene at the specified position. - Input:
"set background color to blue"→ The node will set the scene's background color to blue. - Input:
"add model from https://example.com/model.glb"→ The node will download the GLB model and add it to the scene.
Properties
| Name | Meaning |
|---|---|
| Request | A free-text description of what you want to do. Can include JSON fields like url, color, type, position, etc., embedded in the incoming item. |
| Default Template | The default project template to use when scaffolding. Options: A-Frame, Three.js. |
| Default Port | The default port number to use when starting the development server. Must be between 1 and 65535. |
| Default Model Folder | Relative folder path (under project/assets/) used to save downloaded 3D model files. Defaults to models. |
Output
The node outputs an array of JSON objects, each representing a mapped tool call derived from the input request. Each output item contains:
request: The original free-text request string.tool: The name of the tool or action to perform (e.g.,project_scaffold,devserver_start,scene_add_primitive).args: An object containing arguments relevant to the tool (e.g., template name, port number, color, model URL).explanation: A human-readable explanation of the action being performed.
If the node processes multiple commands from one input, it outputs multiple items accordingly.
Binary data is not produced by this node; all outputs are JSON describing actions to be taken downstream.
Dependencies
- No direct external API calls are made by this node itself; however, it expects that downstream tools or services can handle the specified commands (e.g., downloading assets, starting servers).
- Requires configuration of project asset paths and network access if downloading models or environment HDRs.
- No explicit environment variables or API keys are required by this node.
Troubleshooting
- Empty or unrecognized requests: If the input request does not match any known patterns, the node falls back to sending a simple health ping command. Ensure your request text includes recognizable keywords like "scaffold", "start", "add", "model", etc.
- Invalid port numbers: Ports outside the range 1–65535 may cause errors when starting the dev server. Use the
Default Portproperty or specify a valid port in the input JSON. - Model download failures: When specifying model URLs, ensure they are accessible and end with
.gltfor.glb. Network issues or invalid URLs will prevent successful downloads. - Color parsing issues: Colors can be specified by name or hex code. Unsupported color names or malformed hex codes may default to fallback colors.
- Missing properties in JSON input: Some commands rely on additional JSON fields (e.g.,
color,position). Omitting these may result in default values being used.