Skip to main content
Glama
Gamedev All-in-One MCP

Gamedev All-in-One MCP

by sansaks-jpg

🎮 Gamedev All-in-One MCP

One Server. Four Engines. 78 Tools. Zero Friction.

The first open-source MCP server that unifies Roblox Studio, Unity, Unreal Engine, and Blender into a single AI-powered control plane.

License: AGPL-3.0 Node 20+ TypeScript MCP Tools Engines Status

Quick Start · Features · Architecture · Tool Inventory · Dashboard · Contributing

"Hey Claude, create a red spinning cube in Unity, then replicate it in Roblox and Blender."

✨ Features

🔧 78 MCP Tools

Across 12 modules — scene management, scripting, instance CRUD, physics simulation per engine.

🌉 4 Engine Connectors

Auto-reconnecting bridges for Roblox (HTTP), Unity (TCP), Unreal (TCP), and Blender (TCP).

🤖 Built-in AI Console

Chat with Claude, GPT-4o, or Gemini directly from the dashboard — tools auto-execute.

🖥️ Web Dashboard

Real-time SSE monitoring at localhost:3100 with glassmorphism dark theme UI.

⚡ Physics Engine

Per-engine gravity, rigid bodies, constraints, raycasting, force/impulse simulation.

🔌 Universal Compatibility

Works with Claude Desktop, Cursor, Claude Code, OpenCode, VS Code Copilot, and any MCP client.


Related MCP server: Unity MCP Server

🎯 Supported Engines


🚀 Quick Start

# Clone the repo
git clone https://github.com/nicepkg/gamedev-all-in-one.git
cd gamedev-all-in-one

# Install & build
npm install
npm run build

# Start the server
npm run dev

Then open http://127.0.0.1:3100 for the web dashboard.

MCP Client Configuration

Add to your MCP client config (Claude Desktop, Cursor, etc.):

{
  "mcpServers": {
    "gamedev-all-in-one": {
      "command": "node",
      "args": ["/absolute/path/to/gamedev-all-in-one/dist/index.js"]
    }
  }
}

🏗 Architecture

graph TB
    subgraph Client["🤖 MCP Clients"]
        CD[Claude Desktop]
        CR[Cursor]
        CC[Claude Code]
        OC[OpenCode]
        VS[VS Code Copilot]
    end

    subgraph Server["⚡ MCP Server — Node.js"]
        FND["🔧 Foundation (4 tools)"]
        RBX["🟦 Roblox (20 tools)"]
        UNI["⬛ Unity (15 tools)"]
        UNR["⬜ Unreal (15 tools)"]
        BLN["🟧 Blender (13 tools)"]
        WEB["🖥️ Dashboard :3100"]
    end

    subgraph Engines["🎮 Game Engines"]
        RS["Roblox Studio<br/>Luau Plugin"]
        UE["Unity Editor<br/>C# EditorWindow"]
        UEE["Unreal Editor<br/>C++ Plugin"]
        BE["Blender<br/>Python Addon"]
    end

    Client -->|stdio| Server
    RBX -->|"HTTP :3002"| RS
    UNI -->|"TCP :7890"| UE
    UNR -->|"TCP :55557"| UEE
    BLN -->|"TCP :9876"| BE

    style Client fill:#1e1b4b,stroke:#6366f1,color:#e0e7ff
    style Server fill:#0c4a6e,stroke:#0ea5e9,color:#e0f2fe
    style Engines fill:#431407,stroke:#f97316,color:#fff7ed

📦 Tool Inventory (78 tools)

Tool

Description

project_init

Initialize project manifest

inspect_project

Read manifest state

doctor

Validate environment and connectors

list_capabilities

List all tools and connector status

Category

Tools

Core (2)

roblox_run_code · roblox_create_workspace_part

Script (5)

roblox_get_script_source · roblox_set_script_source · roblox_edit_script_lines · roblox_grep_scripts · roblox_inject_code

Instance (7)

roblox_create_instance · roblox_delete_instance · roblox_set_property · roblox_clone_instance · roblox_reparent_instance · roblox_create_instances_bulk · roblox_import_asset

Query (12)

roblox_get_instance_properties · roblox_get_instance_children · roblox_search_instances · roblox_get_file_tree · roblox_read_output_logs · roblox_search_decal · roblox_search_asset3d · roblox_search_mechanics · roblox_search_gamesystem · roblox_search_userinterface · roblox_search_utility · roblox_search_toolbox

Physics (5)

roblox_set_gravity · roblox_set_physics · roblox_add_constraint · roblox_raycast · roblox_simulate_physics

Category

Tools

Core (10)

unity_get_hierarchy · unity_get_gameobject · unity_create_gameobject · unity_delete_gameobject · unity_set_component_property · unity_add_component · unity_set_transform · unity_get_script_source · unity_play_mode · unity_execute_menu_item

Physics (5)

unity_set_gravity · unity_add_rigidbody · unity_add_joint · unity_raycast · unity_apply_force

Category

Tools

Core (10)

unreal_get_world_outliner · unreal_get_actor · unreal_spawn_actor · unreal_destroy_actor · unreal_set_actor_transform · unreal_set_actor_property · unreal_get_blueprint · unreal_run_python · unreal_play_mode · unreal_get_viewport_screenshot

Physics (5)

unreal_set_gravity · unreal_set_simulate_physics · unreal_add_physics_constraint · unreal_raycast · unreal_apply_force

Category

Tools

Core (8)

blender_get_scene · blender_get_object · blender_create_object · blender_delete_object · blender_set_transform · blender_set_material · blender_run_python · blender_export

Physics (5)

blender_set_gravity · blender_setup_rigid_body · blender_add_constraint · blender_bake_physics · blender_apply_force


🖥️ Web Dashboard

The built-in dashboard at http://127.0.0.1:3100 features a dark glassmorphism UI:

Panel

Description

Engine Status

Real-time connection status for all 4 engines with animated glow effects

AI Console

Chat with Claude / GPT-4o / Gemini — auto-executes engine tools

Tool Registry

All 78 tools with color-coded engine dots and live search

Event Log

SSE-powered real-time stream of connections, tool calls, and errors

AI Console Providers

Provider

Models

Anthropic

Claude Opus 4.6, Claude Sonnet 4.6, Claude Haiku 4.5

OpenAI

GPT-5.4, GPT-5.4 Mini, GPT-5.4 Nano, o3, o4-mini

Google

Gemini 2.5 Pro, Gemini 2.5 Flash, Gemini 2.5 Flash-Lite

API keys are stored in localStorage only — never sent to or stored on the server.


🔌 Roblox Studio Plugin

A production-ready single-file plugin is included.

Installation

  1. Copy runtime/roblox-studio-plugin/GamedevAllInOne.server.lua to your Plugins folder:

    • Windows: %LOCALAPPDATA%\Roblox\Plugins\

    • Mac: ~/Documents/Roblox/Plugins/

  2. Restart Roblox Studio

  3. Enable: Game Settings > Security > Allow HTTP Requests = ON

  4. Start the server with npm run dev

  5. Plugin auto-connects on load

Plugin Features

  • 31 command handlers (script CRUD, instance CRUD, physics, raycast)

  • Auto-handshake with bridge on startup

  • HTTP long-poll command loop with pcall-wrapped requests

  • Toolbar button to start/stop runtime


🌉 Bridge Architecture

Engine

Protocol

Port

Reconnect

Plugin

Roblox

HTTP long-poll

3002

N/A

Luau plugin (included)

Unity

TCP socket

7890

Auto

C# EditorWindow

Unreal

TCP socket

55557

Auto

C++ Plugin

Blender

TCP socket

9876

Auto

Python Addon

All bridges bind to 127.0.0.1 only. TCP bridges auto-reconnect with configurable intervals.


⚙️ Configuration

Environment Variables

Variable

Default

Description

WEB_DASHBOARD_PORT

3100

Dashboard HTTP port

WEB_DASHBOARD_ENABLED

true

Set false to disable dashboard

ROBLOX_LUAU_BRIDGE_PORT

3002

Roblox Luau bridge port

UNITY_BRIDGE_PORT

7890

Unity TCP bridge port

UNREAL_BRIDGE_PORT

55557

Unreal TCP bridge port

BLENDER_BRIDGE_PORT

9876

Blender TCP bridge port


🔒 Security

  • Loopback only — all bridges bind to 127.0.0.1

  • Host validation — requests with invalid Host headers are rejected

  • Origin-restricted CORS — only localhost origins permitted

  • Body size limits — 1 MiB max on Luau bridge, 64 KiB on dashboard API

  • Input validation — Zod schemas on all bridge endpoints

  • No server-side secrets — API keys live in browser localStorage only

  • Graceful degradation — port conflicts disable individual services without crashing


🛠 Development

npm run dev          # Start with tsx (hot reload)
npm run build        # TypeScript compile + copy dashboard
npm start            # Production mode
npm test             # Run tests

Project Structure

src/
├── index.ts                        # Entry point + graceful shutdown
├── version.ts                      # NAME, VERSION constants
├── server/
│   └── create-server.ts            # McpServer + 12 tool module registration
├── connectors/
│   ├── shared/tcp-bridge.ts        # Shared TCP bridge (Unity/Unreal/Blender)
│   ├── roblox/index.ts             # Roblox detection + command dispatch
│   ├── luau/bridge.ts              # HTTP long-poll bridge (hardened)
│   ├── unity/index.ts              # Unity detection + TCP bridge
│   ├── unreal/index.ts             # Unreal detection + TCP bridge
│   └── blender/index.ts            # Blender detection + TCP bridge
├── tools/
│   ├── foundation.ts               # 4 foundation tools
│   ├── roblox*.ts                  # 20 Roblox tools (5 files)
│   ├── unity*.ts                   # 15 Unity tools (2 files)
│   ├── unreal*.ts                  # 15 Unreal tools (2 files)
│   └── blender*.ts                 # 13 Blender tools (2 files)
└── web/
    ├── server.ts                   # Dashboard HTTP + SSE + Chat API
    ├── llm-proxy.ts                # Multi-provider LLM with tool execution
    └── dashboard.html              # Single-file frontend (dark theme)

runtime/
└── roblox-studio-plugin/
    └── GamedevAllInOne.server.lua  # Production-ready Studio plugin

🤝 Contributing

Contributions are welcome! Here's how to get started:

  1. Fork the repository

  2. Create a feature branch: git checkout -b feat/amazing-feature

  3. Commit your changes: git commit -m 'feat: add amazing feature'

  4. Push to the branch: git push origin feat/amazing-feature

  5. Open a Pull Request

Areas We'd Love Help With

  • 🎮 Engine plugins — C# EditorWindow for Unity, C++ plugin for Unreal, Python addon for Blender

  • 🧪 Tests — unit tests, integration tests, E2E bridge tests

  • 📚 Docs — tutorials, video walkthroughs, example prompts

  • 🌐 i18n — translations for the dashboard UI

  • 🔧 New tools — animation, audio, terrain, lighting tools per engine


📚 Upstream References

Engine

Project

License

Roblox

boshyxd/robloxstudio-mcp

MIT

Roblox

yannyhl/linkedsword-mcp

MIT

Roblox

Roblox/studio-rust-mcp-server

Official

Unity

CoderGamester/mcp-unity

MIT

Unity

CoplayDev/unity-mcp

MIT

Unreal

chongdashu/unreal-mcp

MIT

Unreal

kevinpbuckley/VibeUE

MIT

Blender

ahujasid/blender-mcp

MIT

Blender

poly-mcp/Blender-MCP-Server

MIT

Physics

KAIST-M4/MCP-SIM

—


📄 License

AGPL-3.0-only — see LICENSE for details.

  • Improvements to the server must remain open source

  • Networked or hosted variants must not become closed forks

  • MIT and Apache-2.0 upstream code adapted with attribution preserved


If this project helps your game development workflow, give it a ⭐

Made with ❤️ by the open-source community

Star History Chart

Available Tools

78 tools
blender_add_constraintBlender Add Rigid Body ConstraintB

Add a rigid body constraint between two objects in Blender (Fixed, Point, Hinge, Slider, Piston, Generic, Motor).

NameRequiredDescriptionDefault
constraintTypeNoConstraint type.FIXED
object1NameYesFirst object name.
object2NameYesSecond object name.
breakableNoWhether the constraint can break.
breakThresholdNoForce threshold to break.
disableCollisionsNoDisable collisions between constrained objects.
propertiesNoAdditional constraint-specific properties.
timeoutMsNoCommand timeout.
blender_apply_forceBlender Apply ForceC

Apply an initial velocity or force field to a rigid body object in Blender by setting keyframe velocities or using force fields.

NameRequiredDescriptionDefault
objectNameYesObject name with rigid body.
linearVelocityNoInitial linear velocity.
angularVelocityNoInitial angular velocity.
forceFieldTypeNoAdd a force field instead of direct velocity.
forceStrengthNoForce field strength.
timeoutMsNoCommand timeout.
blender_bake_physicsBlender Bake PhysicsB

Bake rigid body physics simulation to keyframes for the specified frame range.

NameRequiredDescriptionDefault
frameStartNoStart frame.
frameEndNoEnd frame.
selectedOnlyNoBake only selected objects.
timeoutMsNoCommand timeout (baking can be slow).
blender_create_objectBlender Create ObjectB

Create a new mesh primitive or empty object in the Blender scene.

NameRequiredDescriptionDefault
typeYesObject type to create.
nameNoOptional object name.
locationNoWorld location.
scaleNoScale.
timeoutMsNoCommand timeout.
blender_delete_objectBlender Delete ObjectB

Delete an object from the Blender scene by name.

NameRequiredDescriptionDefault
nameYesObject name to delete.
timeoutMsNoCommand timeout.
blender_exportBlender ExportB

Export the scene or selected objects to a file format (FBX, OBJ, glTF, etc.).

NameRequiredDescriptionDefault
formatYesExport format.
outputPathYesOutput file path.
selectedOnlyNoExport only selected objects.
timeoutMsNoCommand timeout.
blender_get_objectBlender Get ObjectA

Get detailed properties of a specific Blender object by name.

NameRequiredDescriptionDefault
nameYesObject name in the scene.
includeModifiersNoInclude modifier stack.
includeMaterialNoInclude material slots.
timeoutMsNoCommand timeout.
blender_get_sceneBlender Get SceneA

Get the object hierarchy and metadata of the active Blender scene.

NameRequiredDescriptionDefault
includeTransformsNoInclude object transforms.
timeoutMsNoCommand timeout.
blender_run_pythonBlender Run PythonC

Execute arbitrary Python code in Blender's Python environment via bpy.

NameRequiredDescriptionDefault
codeYesPython code to execute.
timeoutMsNoCommand timeout.
blender_set_gravityBlender Set GravityB

Set the scene gravity vector in Blender. Default is (0, 0, -9.81).

NameRequiredDescriptionDefault
xNoGravity X.
yNoGravity Y.
zNoGravity Z.
timeoutMsNoCommand timeout.
blender_set_materialBlender Set MaterialB

Assign or create a material on a Blender object with base color and metallic/roughness.

NameRequiredDescriptionDefault
objectNameYesTarget object name.
materialNameNoMaterial name. Empty to create a new one.
baseColorNoBase color RGB (0-1).
metallicNoMetallic value (0-1).
roughnessNoRoughness value (0-1).
timeoutMsNoCommand timeout.
blender_set_transformBlender Set TransformB

Set the location, rotation, and/or scale of a Blender object.

NameRequiredDescriptionDefault
nameYesObject name.
locationNoWorld location.
rotationNoEuler rotation in radians.
scaleNoScale.
timeoutMsNoCommand timeout.
blender_setup_rigid_bodyBlender Setup Rigid BodyB

Add rigid body physics to a Blender object with type, shape, mass, friction, and damping settings. Mirrors poly-mcp/Blender-MCP-Server pattern.

NameRequiredDescriptionDefault
objectNameYesObject name in the scene.
bodyTypeNoACTIVE (affected by forces) or PASSIVE (static collider).ACTIVE
collisionShapeNoCollision shape type.CONVEX_HULL
massNoObject mass in kg.
frictionNoSurface friction (0-1).
restitutionNoBounciness (0-1).
linearDampingNoLinear damping (0-1).
angularDampingNoAngular damping (0-1).
useMarginNoUse collision margin.
collisionMarginNoCollision margin distance.
timeoutMsNoCommand timeout.
doctorDoctorB

Run local prerequisite checks for the Roblox all-in-one MCP environment.

NameRequiredDescriptionDefault
includeManifestNoInclude manifest inspection in the report.
inspect_projectInspect ProjectA

Inspect the current project manifest and connector/runtime capability state.

NameRequiredDescriptionDefault
includeCapabilitiesNoInclude live connector capability detection in the response.
list_capabilitiesList CapabilitiesA

Return the current local capabilities for Roblox, Luau runtime, Blender, manifest state, and MCP workflow compatibility.

NameRequiredDescriptionDefault

No parameters

project_initProject InitB

Create the local Roblox all-in-one MCP project manifest in the current workspace.

NameRequiredDescriptionDefault
projectNameNoOptional display name for the project manifest.
enableBlenderNoEnable Blender integration in the created manifest.
enableLuauNoEnable the Luau companion runtime in the created manifest.
forceNoOverwrite an existing valid manifest.
roblox_add_constraintRoblox Add ConstraintB

Add a physics constraint (SpringConstraint, HingeConstraint, RopeConstraint, WeldConstraint, etc.) between two attachments.

NameRequiredDescriptionDefault
constraintTypeYesType of constraint to create.
parentPathYesInstance path where the constraint will be parented.
attachment0PathYesPath to Attachment0.
attachment1PathNoPath to Attachment1 (empty for single-attachment constraints).
propertiesNoAdditional properties to set on the constraint (e.g. {Stiffness: 100, Damping: 10}).
waitForResponseMsNoCommand timeout.
roblox_clone_instanceRoblox Clone InstanceB

Clone an instance and place the clone under a target parent.

NameRequiredDescriptionDefault
sourcePathYesFull instance path of the source to clone.
targetParentPathYesFull instance path of the clone's parent.
newNameNoOptional new name for the clone.
waitForResponseMsNoHow long to wait for a runtime response.
roblox_create_instanceRoblox Create InstanceC

Create a new Roblox instance of a given class under a parent path.

NameRequiredDescriptionDefault
classNameYesRoblox class name (e.g. Part, Script, Model, Folder).
parentPathYesFull instance path of the parent (e.g. Workspace, ServerScriptService).
nameNoName for the new instance.
propertiesNoProperties to set on the new instance.
waitForResponseMsNoHow long to wait for a runtime response.
roblox_create_instances_bulkRoblox Create Instances BulkB

Create multiple Roblox instances in a single batch operation.

NameRequiredDescriptionDefault
instancesYesList of instances to create.
waitForResponseMsNoHow long to wait for a runtime response.
roblox_create_workspace_partRoblox Create Workspace PartC

Create a Part in Workspace through the Studio-side Luau runtime boundary.

NameRequiredDescriptionDefault
nameYesName of the new Workspace Part.
anchoredNoWhether the new part should be anchored.
positionNoWorkspace position for the new part.
sizeNoSize for the new part.
waitForResponseMsNoHow long to wait for a runtime response before returning queued status.
roblox_delete_instanceRoblox Delete InstanceA

Delete (Destroy) an instance at the given path in Roblox Studio.

NameRequiredDescriptionDefault
pathYesFull instance path to delete.
waitForResponseMsNoHow long to wait for a runtime response.
roblox_edit_script_linesRoblox Edit Script LinesB

Replace a substring in a script's source using old_string/new_string matching, similar to search-and-replace.

NameRequiredDescriptionDefault
pathYesFull instance path of the script.
oldStringYesExact text to find in the script source.
newStringYesReplacement text.
waitForResponseMsNoHow long to wait for a runtime response.
roblox_get_file_treeRoblox Get File TreeA

Get a hierarchical tree view of the game's instance structure, useful for understanding project layout.

NameRequiredDescriptionDefault
rootPathNoRoot instance path for the tree.game
maxDepthNoMaximum tree depth.
includePropertiesNoInclude basic properties (ClassName) in each node.
waitForResponseMsNoHow long to wait for a runtime response.
roblox_get_instance_childrenRoblox Get Instance ChildrenB

List the direct children of a Roblox instance, returning their names and class names.

NameRequiredDescriptionDefault
pathYesFull instance path (e.g. Workspace).
includeDescendantsNoIf true, recursively list all descendants instead of only direct children.
maxDepthNoMaximum recursion depth when includeDescendants is true.
waitForResponseMsNoHow long to wait for a runtime response.
roblox_get_instance_propertiesRoblox Get Instance PropertiesA

Get all readable properties of a Roblox instance at the given path.

NameRequiredDescriptionDefault
pathYesFull instance path (e.g. Workspace.MyPart).
waitForResponseMsNoHow long to wait for a runtime response.
roblox_get_script_sourceRoblox Get Script SourceA

Read the source code of a Script, LocalScript, or ModuleScript by its full instance path in Roblox Studio.

NameRequiredDescriptionDefault
pathYesFull instance path of the script (e.g. ServerScriptService.MyScript).
waitForResponseMsNoHow long to wait for a runtime response.
roblox_grep_scriptsRoblox Grep ScriptsB

Search all scripts in the game for a Lua pattern or plain text match. Returns matching script paths and line content.

NameRequiredDescriptionDefault
patternYesSearch pattern (Lua pattern syntax supported).
rootPathNoRoot instance path to search within.game
caseSensitiveNoWhether the search is case-sensitive.
waitForResponseMsNoHow long to wait for a runtime response.
roblox_import_assetRoblox Import AssetA

Import a public asset from the Roblox Creator Store and place it under a parent. If a ROBLOX_COOKIE is provided in the .env file, it will automatically claim/add the asset to your inventory before importing in Studio.

NameRequiredDescriptionDefault
assetIdYesThe asset ID to import.
parentPathYesFull instance path of the parent to insert the asset into.
waitForResponseMsNoHow long to wait for a runtime response.
roblox_inject_codeRoblox Inject CodeA

Inject/append a block of Luau code to the top or bottom of an existing Roblox script.

NameRequiredDescriptionDefault
pathYesFull instance path of the script.
codeBlockYesBlock of Luau code to inject.
positionNoWhere to inject the code (top or bottom of the script).bottom
waitForResponseMsNoHow long to wait for a runtime response.
roblox_raycastRoblox RaycastB

Cast a ray in Roblox 3D space and return hit information.

NameRequiredDescriptionDefault
originYesRay origin point.
directionYesRay direction vector.
maxDistanceNoMaximum ray distance.
filterTypeNoRaycast filter type.Exclude
filterPathsNoInstance paths to include/exclude from raycast.
waitForResponseMsNoCommand timeout.
roblox_read_output_logsRoblox Read Output LogsA

Retrieve recent console outputs and error logs from Roblox Studio for debugging.

NameRequiredDescriptionDefault
maxLinesNoMaximum number of log lines to retrieve.
waitForResponseMsNoHow long to wait for a runtime response.
roblox_reparent_instanceRoblox Reparent InstanceB

Move an instance to a new parent in the Roblox hierarchy.

NameRequiredDescriptionDefault
pathYesFull instance path to move.
newParentPathYesFull instance path of the new parent.
waitForResponseMsNoHow long to wait for a runtime response.
roblox_run_codeRoblox Run CodeC

Send a Luau code execution request through the Studio-side companion runtime boundary.

NameRequiredDescriptionDefault
codeYesLuau code to execute through the Roblox runtime bridge.
modeNoExecution mode for the runtime request.edit
waitForResponseMsNoHow long to wait for a runtime response before returning queued status.
roblox_search_asset3dRoblox Search 3D AssetA

Search specifically for 3D Models, props, meshes, and visual assets (e.g. tree, rock, building, car) in the Roblox Creator Store.

NameRequiredDescriptionDefault
keywordYesKeyword to search for (e.g. 'oak tree', 'mossy rock', 'sport car').
limitNoMaximum number of search results (default 10).
roblox_search_decalRoblox Search DecalA

Search for 2D images, decals, textures, and sprites (e.g. wood texture, logo, UI icon, sword decal) in the Roblox Creator Store. Returns direct PNG image URLs for rendering in chat.

NameRequiredDescriptionDefault
keywordYesKeyword to search for (e.g. 'iron texture', 'blood splatter', 'cat face').
limitNoMaximum number of search results (default 10).
roblox_search_gamesystemRoblox Search Game SystemA

Search specifically for complete game systems, backend services, economy engines, or data stores (e.g. inventory system, shop system, datastore save, leaderstats, quest system) in the Roblox Creator Store.

NameRequiredDescriptionDefault
keywordYesKeyword to search for (e.g. 'inventory system', 'shop gui system', 'datastore save').
limitNoMaximum number of search results (default 10).
roblox_search_instancesRoblox Search InstancesC

Search for instances by name, class, or property value under a root path.

NameRequiredDescriptionDefault
queryYesSearch query (matched against instance Name).
classNameNoFilter by ClassName.
rootPathNoRoot instance path to search within.game
maxResultsNoMaximum number of results to return.
waitForResponseMsNoHow long to wait for a runtime response.
roblox_search_mechanicsRoblox Search MechanicsA

Search specifically for gameplay mechanics, movement systems, physics controllers, and interactive scripts (e.g. double jump, grappling hook, sword combat, gun system) in the Roblox Creator Store.

NameRequiredDescriptionDefault
keywordYesKeyword to search for (e.g. 'double jump', 'grappling hook', 'dash mechanic').
limitNoMaximum number of search results (default 10).
roblox_search_toolboxRoblox Search Toolbox (General)C

Search for free assets in the Roblox Creator Store/Toolbox with category filtering.

NameRequiredDescriptionDefault
keywordYesKeyword to search for (e.g. 'car', 'tree', 'sword').
categoryNoFilter the search type (Model3D for visuals, Mechanics for scripts/movement, GameSystem for saving/shops, UserInterface for UI/GUI templates, Utility for helpers, All for general).All
limitNoMaximum number of search results (default 10).
roblox_search_userinterfaceRoblox Search User InterfaceA

Search specifically for UI/GUI templates, screens, health bars, inventory layouts, HUDs, or main menus in the Roblox Creator Store.

NameRequiredDescriptionDefault
keywordYesKeyword to search for (e.g. 'health bar UI', 'custom chat GUI', 'modern main menu').
limitNoMaximum number of search results (default 10).
roblox_search_utilityRoblox Search UtilityA

Search specifically for developer utility modules, helper libraries, debugging tools, or signal classes (e.g. promise, maid, spring module, tween helper) in the Roblox Creator Store.

NameRequiredDescriptionDefault
keywordYesKeyword to search for (e.g. 'maid class', 'spring module', 'tween utility').
limitNoMaximum number of search results (default 10).
roblox_set_gravityRoblox Set GravityB

Set the Workspace gravity vector in Roblox Studio. Default is (0, -196.2, 0).

NameRequiredDescriptionDefault
xNoGravity X component.
yNoGravity Y component.
zNoGravity Z component.
waitForResponseMsNoCommand timeout.
roblox_set_physicsRoblox Set PhysicsB

Enable or disable physics on a BasePart by setting Anchored and optionally applying velocity.

NameRequiredDescriptionDefault
pathYesFull instance path of the BasePart.
anchoredYesTrue to anchor (disable physics), false to unanchor (enable physics).
velocityNoInitial AssemblyLinearVelocity when unanchoring.
angularVelocityNoInitial AssemblyAngularVelocity.
waitForResponseMsNoCommand timeout.
roblox_set_propertyRoblox Set PropertyB

Set one or more properties on a Roblox instance.

NameRequiredDescriptionDefault
pathYesFull instance path.
propertiesYesKey-value pairs of properties to set (e.g. { Name: 'Foo', Anchored: true }).
waitForResponseMsNoHow long to wait for a runtime response.
roblox_set_script_sourceRoblox Set Script SourceB

Replace the entire source code of a Script, LocalScript, or ModuleScript in Roblox Studio.

NameRequiredDescriptionDefault
pathYesFull instance path of the script.
sourceYesNew source code for the script.
waitForResponseMsNoHow long to wait for a runtime response.
roblox_simulate_physicsRoblox Simulate PhysicsB

Apply an impulse or force to a BasePart to simulate physics interaction.

NameRequiredDescriptionDefault
pathYesFull instance path of the BasePart.
impulseNoImpulse vector to apply (instantaneous).
forceNoContinuous force vector (via VectorForce).
torqueNoTorque vector to apply.
atPositionNoWorld position to apply impulse at.
waitForResponseMsNoCommand timeout.
unity_add_componentUnity Add ComponentB

Add a component to a GameObject in the Unity scene.

NameRequiredDescriptionDefault
pathYesFull path of the GameObject.
componentYesComponent type to add (e.g. 'Rigidbody', 'BoxCollider').
timeoutMsNoCommand timeout.
unity_add_jointUnity Add JointB

Add a physics joint component (FixedJoint, HingeJoint, SpringJoint, CharacterJoint, ConfigurableJoint) to a GameObject.

NameRequiredDescriptionDefault
pathYesGameObject path.
jointTypeYesJoint type.
connectedBodyPathNoPath to the connected Rigidbody GameObject. Empty for world anchor.
breakForceNoForce threshold to break the joint.
breakTorqueNoTorque threshold to break the joint.
propertiesNoAdditional joint-specific properties.
timeoutMsNoCommand timeout.
unity_add_rigidbodyUnity Add RigidbodyB

Add a Rigidbody component to a GameObject with mass, drag, constraints, and collision detection settings.

NameRequiredDescriptionDefault
pathYesGameObject path.
massNoRigidbody mass.
dragNoLinear drag.
angularDragNoAngular drag.
useGravityNoWhether gravity affects this body.
isKinematicNoKinematic mode (not affected by forces).
freezePositionXNo
freezePositionYNo
freezePositionZNo
freezeRotationXNo
freezeRotationYNo
freezeRotationZNo
collisionDetectionNoCollision detection mode.Discrete
timeoutMsNoCommand timeout.
unity_apply_forceUnity Apply ForceC

Apply a force, impulse, or torque to a GameObject's Rigidbody.

NameRequiredDescriptionDefault
pathYesGameObject path with Rigidbody.
forceNoForce vector.
torqueNoTorque vector.
forceModeNoForce application mode.Force
atPositionNoWorld position to apply force at.
timeoutMsNoCommand timeout.
unity_create_gameobjectUnity Create GameObjectA

Create a new GameObject in the Unity scene under a parent path.

NameRequiredDescriptionDefault
nameYesName for the new GameObject.
parentPathNoParent GameObject path. Empty for scene root.
primitiveTypeNoPrimitive type to create.Empty
timeoutMsNoCommand timeout.
unity_delete_gameobjectUnity Delete GameObjectB

Delete a GameObject from the Unity scene by path.

NameRequiredDescriptionDefault
pathYesFull path of the GameObject to delete.
timeoutMsNoCommand timeout.
unity_execute_menu_itemUnity Execute Menu ItemB

Execute a Unity Editor menu item by its path (e.g. 'File/Save', 'Assets/Refresh').

NameRequiredDescriptionDefault
menuPathYesMenu item path (e.g. 'File/Save').
timeoutMsNoCommand timeout.
unity_get_gameobjectUnity Get GameObjectC

Get properties of a specific GameObject by path in the Unity scene.

NameRequiredDescriptionDefault
pathYesFull path of the GameObject (e.g. 'Canvas/Panel/Button').
includeComponentsNoInclude component list.
timeoutMsNoCommand timeout.
unity_get_hierarchyUnity Get HierarchyB

Get the full scene hierarchy tree from the active Unity scene.

NameRequiredDescriptionDefault
rootPathNoOptional root GameObject path to start from. Empty for full scene.
depthNoMaximum hierarchy depth.
timeoutMsNoCommand timeout.
unity_get_script_sourceUnity Get Script SourceB

Read the source code of a C# script file from the Unity project's Assets folder.

NameRequiredDescriptionDefault
scriptPathYesRelative path from Assets/ (e.g. 'Scripts/PlayerController.cs').
timeoutMsNoCommand timeout.
unity_play_modeUnity Play ModeA

Control Unity Editor play mode — enter, exit, or pause.

NameRequiredDescriptionDefault
actionYesPlay mode action.
timeoutMsNoCommand timeout.
unity_raycastUnity RaycastB

Cast a ray in Unity 3D space using Physics.Raycast and return hit info.

NameRequiredDescriptionDefault
originYesRay origin.
directionYesRay direction.
maxDistanceNoMaximum ray distance.
layerMaskNoLayer mask (-1 for all layers).
timeoutMsNoCommand timeout.
unity_set_component_propertyUnity Set Component PropertyC

Set a property on a component attached to a GameObject in Unity.

NameRequiredDescriptionDefault
pathYesFull path of the GameObject.
componentYesComponent type name (e.g. 'Transform', 'MeshRenderer').
propertyYesProperty name.
valueNoProperty value (JSON serializable).
timeoutMsNoCommand timeout.
unity_set_gravityUnity Set GravityB

Set the global Physics gravity vector in Unity. Default is (0, -9.81, 0).

NameRequiredDescriptionDefault
xNoGravity X.
yNoGravity Y.
zNoGravity Z.
timeoutMsNoCommand timeout.
unity_set_transformUnity Set TransformB

Set the position, rotation, and/or scale of a GameObject's Transform.

NameRequiredDescriptionDefault
pathYesFull path of the GameObject.
positionNoWorld position.
rotationNoEuler rotation in degrees.
scaleNoLocal scale.
timeoutMsNoCommand timeout.
unreal_add_physics_constraintUnreal Add Physics ConstraintC

Add a UPhysicsConstraintComponent between two actors for joints, hinges, or locks.

NameRequiredDescriptionDefault
ownerPathYesActor path to own the constraint.
targetPathNoTarget actor path. Empty for world constraint.
constraintProfileNoConstraint profile preset.Free
breakableNoWhether the constraint can break.
breakThresholdNoForce threshold to break (0 = unbreakable).
propertiesNoAdditional constraint properties.
timeoutMsNoCommand timeout.
unreal_apply_forceUnreal Apply ForceB

Apply a force or impulse to an actor's physics-enabled component.

NameRequiredDescriptionDefault
pathYesActor path.
componentNoComponent name. Empty for root.
forceNoForce vector (continuous).
impulseNoImpulse vector (instantaneous).
torqueNoTorque vector.
atLocationNoWorld location to apply force at.
velocityChangeNoApply as velocity change (ignores mass).
timeoutMsNoCommand timeout.
unreal_destroy_actorUnreal Destroy ActorA

Destroy an actor in the current Unreal level by path.

NameRequiredDescriptionDefault
pathYesActor path to destroy.
timeoutMsNoCommand timeout.
unreal_get_actorUnreal Get ActorB

Get properties and components of an actor by path in the Unreal level.

NameRequiredDescriptionDefault
pathYesActor path in the world (e.g. '/Game/Maps/Main.Main:PersistentLevel.PlayerStart').
includeComponentsNoInclude component details.
timeoutMsNoCommand timeout.
unreal_get_blueprintUnreal Get BlueprintB

Inspect a Blueprint asset, listing its components, variables, and functions.

NameRequiredDescriptionDefault
assetPathYesBlueprint asset path (e.g. '/Game/BP/BP_Enemy').
timeoutMsNoCommand timeout.
unreal_get_viewport_screenshotUnreal Get Viewport ScreenshotB

Capture a screenshot of the active Unreal Editor viewport.

NameRequiredDescriptionDefault
widthNoScreenshot width.
heightNoScreenshot height.
timeoutMsNoCommand timeout.
unreal_get_world_outlinerUnreal Get World OutlinerB

Get the actor hierarchy from the current Unreal Engine level/world.

NameRequiredDescriptionDefault
rootPathNoOptional root actor path. Empty for full world.
depthNoMaximum hierarchy depth.
timeoutMsNoCommand timeout.
unreal_play_modeUnreal Play ModeB

Control Unreal Editor PIE (Play In Editor) mode.

NameRequiredDescriptionDefault
actionYesPIE action.
timeoutMsNoCommand timeout.
unreal_raycastUnreal RaycastC

Perform a line trace (raycast) in Unreal and return hit results.

NameRequiredDescriptionDefault
startYesTrace start point.
endYesTrace end point.
traceChannelNoTrace channel.Visibility
traceComplexNoTrace against complex collision.
timeoutMsNoCommand timeout.
unreal_run_pythonUnreal Run PythonB

Execute a Python script in the Unreal Editor Python environment.

NameRequiredDescriptionDefault
codeYesPython code to execute.
timeoutMsNoCommand timeout.
unreal_set_actor_propertyUnreal Set Actor PropertyC

Set a property on an actor or one of its components in Unreal.

NameRequiredDescriptionDefault
pathYesActor path.
componentNoComponent name. Empty for actor-level property.
propertyYesProperty name.
valueNoProperty value (JSON serializable).
timeoutMsNoCommand timeout.
unreal_set_actor_transformUnreal Set Actor TransformB

Set the location, rotation, and/or scale of an actor in the Unreal level.

NameRequiredDescriptionDefault
pathYesActor path.
locationNoWorld location.
rotationNoRotation (pitch/yaw/roll).
scaleNoScale.
timeoutMsNoCommand timeout.
unreal_set_gravityUnreal Set GravityB

Set the world gravity override in Unreal Engine. Default is (0, 0, -980).

NameRequiredDescriptionDefault
xNoGravity X.
yNoGravity Y.
zNoGravity Z.
timeoutMsNoCommand timeout.
unreal_set_simulate_physicsUnreal Set Simulate PhysicsB

Enable or disable physics simulation on an actor's primitive component.

NameRequiredDescriptionDefault
pathYesActor path.
componentNoComponent name. Empty for root component.
simulateYesTrue to enable physics simulation, false to disable.
massNoOverride mass in kg.
linearDampingNoLinear damping.
angularDampingNoAngular damping.
enableGravityNoEnable gravity on this component.
timeoutMsNoCommand timeout.
unreal_spawn_actorUnreal Spawn ActorB

Spawn a new actor in the current Unreal level from a class or blueprint path.

NameRequiredDescriptionDefault
classNameYesActor class or blueprint path (e.g. 'StaticMeshActor', '/Game/BP/BP_Enemy.BP_Enemy_C').
labelNoOptional actor label.
locationNoSpawn location.
rotationNoSpawn rotation.
timeoutMsNoCommand timeout.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 78 tool updatesv0.1.0
    • First observedblender_add_constraint
    • First observedblender_apply_force
    • First observedblender_bake_physics
    • First observedblender_create_object
    • First observedblender_delete_object
    • First observedblender_export
    • First observedblender_get_object
    • First observedblender_get_scene
    • First observedblender_run_python
    • First observedblender_set_gravity
    • First observedblender_set_material
    • First observedblender_set_transform
    • First observedblender_setup_rigid_body
    • First observeddoctor
    • First observedinspect_project
    • First observedlist_capabilities
    • First observedproject_init
    • First observedroblox_add_constraint
    • First observedroblox_clone_instance
    • First observedroblox_create_instance
    • First observedroblox_create_instances_bulk
    • First observedroblox_create_workspace_part
    • First observedroblox_delete_instance
    • First observedroblox_edit_script_lines
    • First observedroblox_get_file_tree
    • First observedroblox_get_instance_children
    • First observedroblox_get_instance_properties
    • First observedroblox_get_script_source
    • First observedroblox_grep_scripts
    • First observedroblox_import_asset
    • First observedroblox_inject_code
    • First observedroblox_raycast
    • First observedroblox_read_output_logs
    • First observedroblox_reparent_instance
    • First observedroblox_run_code
    • First observedroblox_search_asset3d
    • First observedroblox_search_decal
    • First observedroblox_search_gamesystem
    • First observedroblox_search_instances
    • First observedroblox_search_mechanics
    • First observedroblox_search_toolbox
    • First observedroblox_search_userinterface
    • First observedroblox_search_utility
    • First observedroblox_set_gravity
    • First observedroblox_set_physics
    • First observedroblox_set_property
    • First observedroblox_set_script_source
    • First observedroblox_simulate_physics
    • First observedunity_add_component
    • First observedunity_add_joint
    • First observedunity_add_rigidbody
    • First observedunity_apply_force
    • First observedunity_create_gameobject
    • First observedunity_delete_gameobject
    • First observedunity_execute_menu_item
    • First observedunity_get_gameobject
    • First observedunity_get_hierarchy
    • First observedunity_get_script_source
    • First observedunity_play_mode
    • First observedunity_raycast
    • First observedunity_set_component_property
    • First observedunity_set_gravity
    • First observedunity_set_transform
    • First observedunreal_add_physics_constraint
    • First observedunreal_apply_force
    • First observedunreal_destroy_actor
    • First observedunreal_get_actor
    • First observedunreal_get_blueprint
    • First observedunreal_get_viewport_screenshot
    • First observedunreal_get_world_outliner
    • First observedunreal_play_mode
    • First observedunreal_raycast
    • First observedunreal_run_python
    • First observedunreal_set_actor_property
    • First observedunreal_set_actor_transform
    • First observedunreal_set_gravity
    • First observedunreal_set_simulate_physics
    • First observedunreal_spawn_actor

TDQS

B3.2/5.0

Scored across 78 tools

Disambiguation5/5

Each tool has a domain prefix (blender_, roblox_, unity_, unreal_) making it easy to distinguish which engine it targets. Within each domain, tools target distinct actions (create, delete, get, set, search, etc.) with clear, non-overlapping purposes. Only a few general environment tools lack prefixes, but they are clearly separate from engine-specific tools.

Naming Consistency4/5

The vast majority of tools follow a consistent domain_verb_noun pattern (e.g., blender_create_object, unity_set_transform). A few general tools (doctor, inspect_project, list_capabilities, project_init) do not include a prefix, which is a minor deviation from the pattern but still understandable.

Tool Count3/5

78 tools is high for a single MCP server, but the scope covers four game engines with many common operations. Roblox has a large number (35), including many search tools that could be consolidated. While the count is borderline, it is reasonable for an all-in-one server, though it could be streamlined.

Completeness4/5

Each engine provides core CRUD operations, physics, raycasts, and environment control. Roblox is especially complete with script management and Studio integration. Minor gaps exist, such as missing animation tools in Blender and lack of component removal in Unity, but the overall coverage is good for basic gamedev workflows.

Related MCP Connectors

Related MCP Servers

  • A
    license
    D
    quality
    B
    maintenance
    Enables AI assistants to control Unreal Engine via Remote Control API for game development automation, including asset management, actor control, level editing, animation, physics, visual effects, and cinematics creation through natural language.
    1
    1,163 npm
    1,026
    MIT
  • A
    license
    Not graded
    quality
    Not graded
    maintenance
    Enables AI agents to interact with and control Roblox Studio instances in real-time through the Model Context Protocol. It provides a unified tool for building, scripting, and manipulating 3D worlds with over 90 operations including instance management and Luau scripting.
    14 npm
    -
  • F
    license
    B
    quality
    A
    maintenance
    Provides AI assistants with comprehensive control over Unity Hub and Unity Editor through over 200 specialized tools for project management and scene manipulation. It enables users to perform complex tasks like script creation, asset management, and project builds using natural language commands.
    80
    219 npm
    534
    -