maige-3d-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| WS_PORT | No | WebSocket bridge port | 8083 |
| CHAT_PROVIDER | No | Which AI provider key to prefer (openai or anthropic) | openai |
| OPENAI_API_KEY | No | OpenAI API key to enable direct in-world AI chat | |
| ANTHROPIC_API_KEY | No | Anthropic API key as an alternative AI provider | |
| AUTO_OPEN_BROWSER | No | Open the 3D client automatically | true |
| DEFAULT_FRAMEWORK | No | Which client to open (e.g., threejs, a-frame, babylonjs, r3f) | threejs |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
| prompts | {} |
| resources | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| createObjectA | Add a 3D object to the live scene. Returns the assigned id. Always call getSceneState first to understand what already exists. |
| updateObjectC | Update any properties of an existing 3D object. Supports partial updates. |
| deleteObjectC | Remove a 3D object from the scene by id. |
| cloneObjectC | Duplicate an object with an optional position offset. |
| getObjectC | Get properties of a single scene object by id. |
| getSceneStateA | Get the full current scene state: all objects, lights, camera, and environment. Call this first before making any changes. |
| createLightC | Add a light to the scene. |
| updateLightC | Update an existing light by id. |
| deleteLightC | Remove a light from the scene by id. |
| setCameraC | Set the camera position and look-at target. |
| flyToObjectB | Smoothly move the camera to look at an object. |
| animateObjectA | Animate an object property to a target value. Supports transforms (position, rotation, scale) and material properties (emissiveIntensity, opacity, color) for pulsing glow, fading, color shifts. |
| stopAnimationC | Stop any running animation on an object. |
| setEnvironmentC | Configure the scene environment: background, fog, tone mapping, shadows, and post-processing effects. |
| createParticlesA | Create a particle system (stars, dust, sparks, snow, fire embers, laser trails). Uses GPU-efficient point sprites with optional drift animation and twinkle. |
| updateParticlesC | Update properties of an existing particle system. |
| deleteParticlesC | Remove a particle system from the scene. |
| executeScriptA | Execute arbitrary JavaScript code in the connected browser scene context. The code runs inside an async function with access to: scene (THREE.Scene), camera, renderer, controls, and a helpers object. Return a value to send it back. Use this for advanced effects the other tools cannot achieve — custom shaders, complex geometry, procedural generation, physics, etc. |
| addBehaviorA | Attach a continuous frame-tick behavior to an object. Behaviors run every frame until removed. Types: spin (rotate continuously), bob (oscillate up/down), orbit (circle around a point), lookAt (always face camera), pulse (rhythmic scale breathing). |
| removeBehaviorC | Remove a behavior by its ID, stopping its frame-tick effect. |
| clearSceneA | Remove all user-created objects from the scene and reset default lighting. |
| loadSceneB | Replace the entire scene with a previously exported scene JSON. |
| exportSceneA | Export the current scene as a JSON string (can be stored and re-loaded later). |
| saveSceneB | Save the current scene to a JSON file in the scenes/ folder. Returns the file path. |
| listScenesB | List all saved scene JSON files in the scenes/ folder. |
| loadSceneFromFileC | Load a previously saved scene from the scenes/ folder by name. |
| exportStandaloneSceneA | Export the current scene as a standalone HTML file that plays in any browser without a server. Includes all objects, lights, materials, animations, camera, and environment. No chat UI. Saved to the scenes/ folder. Returns the file path. |
| undoB | Undo the last scene change (up to 20 levels). |
| redoB | Redo a previously undone scene change. |
| takeScreenshotA | Capture the current 3D viewport and return a base-64 PNG data URL. Requires a browser client to be connected. |
| getPendingUserMessagesA | Return any in-world chat messages the user has typed from inside the 3D environment. Call this at the start of every turn to check for user input from the canvas. |
| sendChatMessageA | Display a message in the in-world chat overlay visible to the user inside the 3D view. |
| clearPendingMessagesA | Clear all queued in-world user messages (useful after processing a batch). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| 3d-world-assistant | Transform the AI into a creative 3D scene designer with expertise in lighting, composition, and spatial aesthetics. Teaches thoughtful scene creation, not just technical object placement. |
| framework-guide | Framework-specific creative guidance and technical tips for Three.js, A-Frame, Babylon.js, or React Three Fiber. |
| demo-showcase | Instant access to 10+ stunning pre-built demo templates: galaxy, DNA helix, neon tunnel, crystal cluster, platonic solids, particle effects, and more. Perfect for quick impressive visualizations. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| Current Scene State | Live JSON snapshot of all objects, lights, camera, and environment. |
| Connected Browser Sessions | List of currently connected 3D browser clients. |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/m-ai-geXR/mcp-webgpu'
If you have feedback or need assistance with the MCP directory API, please join our Discord server