Skip to main content
Glama
phaserjs

Phaser Editor MCP Server

Official
by phaserjs

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
get-system-instructions

Get the system instructions. This is fully required for the LLM to know how to build the arguments of this MCP server tools. Tools like scene-add-game-objects, scene-update-game-objects, scene-add-game-object-filters, scene-update-game-object-filters, scene-add-plain-objects, and scene-update-plain-objects requires that the LLM get the system instructions first to know the tool arguments structure.

ide-get-all-scenes-in-project

Get all scenes in the project.

ide-get-active-scene

Get the scene has the focus in the editorÍ. The active scene is the one the user is working at the moment. It may be happen there isn't an active scene.

ide-open-scene

Open the scene in the editor.

ide-create-new-scene

Create a new scene file. This tool only creates a new scene. If the user wants to show the scene in the game then the user has to add the scene first to the game instance.

ide-save-scene

Save the the editor of the given scene. When the scene is saved, the editor generates its code. Use this tool to sync the scene with the code it represents. It is important to keep both the scene content and the scene's code file in sync if you are working in both files at the same time. Also, it is very important that you save prefab scenes after changing them, so the changes can be propagated in all the scenes that contains the instances of the prefab.

scene-clear-scene

Clear the current scene.

scene-get-scene-dimension

Get the dimensions of the current scene.

scene-get-screenshot

Get a screenshot of the scene.

scene-get-scene-data

Get all objects in the current scene, including their properties.

scene-get-objects-data

Get the data of the given objects

ide-create-new-prefab-scene

Create a new special scene that is a prefab. A prefab is a scene with a single game object (the prefab object) and its children. You can create a prefab instance and add it to a scene or another prefab. That's the idea of prefabs, create reusable objects. It is very common to create a prefab for every entity of the game, like the player, the different enemies, non-player characters, platforms, collectibles and many more. A prefab scene is compiled as a subclass of a game object, not as a Phaser.Scene. You can think about a prefab as a custom game object class. Even, you can create a prefab that is variant of another prefab. This means, a prefab that inherits another prefab. To create a prefab variant, just use another prefab instance as root of the prefab scene, as prefab object. This tool only creates an empty prefab scene, you must add the prefab object to the scene, immediately. The goal of a prefab is to instantiate and add it to other scenes.

ide-get-all-prefabs-in-project

Get all prefabs in the project.

ide-get-prefab-inheritance

Get an array of all the prefabs that are part of the inheritance of the given prefab. A prefab can inherit another prefab. We call it a prefab variant. If the result is an empty array it means the given prefab is not a variant any other prefab.

scene-declare-prefab-property

Create a new user property for the given prefab.

scene-delete-prefab-property

Delete a user property from the given prefab.

scene-get-nested-prefabs-instances

Get all the nested prefab instances of the given prefab instance. A prefab instance can have other prefab instances as children that are exposed as nested prefab instances. This tool returns all the nested prefab instances, not the direct children. You can use this tool to get the info of the nested prefab instances and perform operations like updating the nested prefabs or, in case they are containers-like objects, add objects to them. You cannot delete a nested prefab instance. A nested prefab instance also have a prefabId that points to an object inside the root prefab. You can modify a nested prefab instance just like any other prefab instance, you have to provide the id, the values of the properties, and update the unlock field. Each nested prefab instance contains its own data.

scene-add-editable-tilemap

Add an editable tilemap to the scene. An editable tilemap is different to a Tiled map because all the data can be edited by the user in the scene editor. However, it follows many of the concepts of Tiled. The editable tilemap is also a plain object so you can manipulate it using most of the plain object tools.

scene-add-tileset-to-editable-tilemap

Add a tileset to an editable tilemap. This will add the tileset to the tilemap data, but it will not add the tileset asset itself. It also will update the ID of the tiles of every layer in the map.

scene-delete-tileset-from-editable-tilemap

Delete a tileset from an editable tilemap. This will remove the tileset from the tilemap data, but it will not delete the tileset asset itself. It also will update the ID of the tiles of every layer in the map.

scene-add-editable-tilemap-layer

Add an editable tilemap layer to an editable tilemap. Because the complexity of the editable tilemaps, we provide a couple of dedicated tools. An editable tilemap is different to a Tiled map because all the data can be edited by the user in the scene editor. This method adds a layer to the tilemap data but also it adds an EditableLayer game object to the scene.

scene-resize-editable-tilemap-layer

Resize an editable tilemap layer. This will resize the layer data, but it will not resize the layer game object itself. It also will update the ID of the tiles of every layer in the map.

scene-write-editable-tilemap-layer-data

Write part of the tile data of an editable tilemap layer. This is useful to update a layer's data without having to send the whole layer data again.

scene-fill-editable-tilemap-layer-data

Fill a region of the tile data of an editable tilemap layer with a single tile ID. This is useful to do things like clear the layer (fill the full layer with a -1 tile), or to paint backgrounds, filling the layer with the background tile, or filling just a part of the layer like for making a floor, or any other level element.

scene-get-editable-tilemap-layer-selection-data

Get the selected tile data of an editable tilemap layer. It returns a 2D array with the tile IDs. The selection is always a rectangular region of the tilemap layer.

scene-add-game-object-filters

Add multiple filters to parent game objects in the scene

scene-update-game-object-filters

Add multiple filters to parent game objects in the scene

scene-delete-game-object-filters

Delete the given filters from the scene.

scene-update-game-object-filter-list

Update the list where the filter is placed. A filter could be on the internal or external filter list. The internal filters are rendered in the game object space. The external filters are rendered in the camera space.

scene-enable-arcade-physics-body

Adds an Arcade physics body to the given game objects. To set the physics body properties you first have to create the body with this tool.

scene-disable-arcade-physics-body

Removes the Arcade physics body from the given game objects.

scene-add-object-list

Create an Object List, which is an array with the ids of game objects. The user can use this array to group objects for a purpose. One of the most common purpose of objects lists are grouping the objects to be part of an arcade physics colliders.

scene-update-object-list

Update an Object List, which is an array with the ids of game objects.

scene-remove-object-list

Remove an Object List from the scene.

scene-move-game-object-in-render-list

Sort objects in the current scene.

scene-delete-game-objects

Delete the given game objects from the scene.

scene-move-game-objects-to-parent

Move the given objects to the given parent.

scene-pack-objects-in-container

Create a container to group the given objects. The container and objects are positioned so the container size is minimal.

scene-add-game-objects

Add multiple new game objects to the scene. If you are adding prefab instances, then you should include the "unlock" property which contains an array of the name of the properties you are setting to the object. By default, are properties are locked in a prefab instance, so you need to unlock them before setting them, otherwise, the prefab instance will get the values defined originally in the prefab scene.

scene-update-game-objects

Update multiple game objects in the scene. If you are updating prefab instances, then you should include the "unlock" property which contains an array of the name of the properties you are setting to the object. By default, are properties are locked in a prefab instance, so you need to unlock them before setting them, otherwise, the prefab instance will get the values defined originally in the prefab scene. It is important that you be smart when setting the unlock property, because its value will override the unlock state of the object. This means, if you are going to update a property but want to keep the values of the other properties unlocked in the prefab instance then you have to include them in your update arguments.

scene-delete-plain-objects

Delete the given plain objects from the scene. Plain objects are Tilemap, Key, Collider...

scene-add-plain-objects

Add multiple new plain objects to the scene.

scene-update-plain-objects

Update multiple plain objects in the scene.

assets-get-available-asset-packs

Get all available asset packs in the project. An asset pack is a collection of assets, like images, audio files, and other resources that can be used in the game. The asset pack contains information like the key of the assets, the url to the file, and other parameters.

assets-get-available-textures

Get all available textures in the project. It includes the name of the texture and the size.

assets-get-texture-binary

Get the size of the texture. If you need to get the real size of the object inside the texture (without the transparent margin), then you can use the assets-get-texture-content-bounding-box tool.

assets-get-texture-size

Get the binary data of a texture.

assets-get-available-bitmapfonts

Get all available bitmap fonts in the project.

assets-get-bitmapfont-image

Get the PNG image/texture of the given bitmap font.

assets-get-spritesheet-image

Get the PNG image/texture of the given spritesheet. You can use this tool to get a better understanding of the position of tiles/frames.

assets-get-texture-content-bounding-box

Get the bounding box of the content of the given texture. Many textures has transparent padding but we need the exact offset and size of the content/object of the texture to place them in the right positions in the scene. Like when placing different objects one next to the other, with touching edges. If you need to know the size of the whole image, use the assets-get-texture-size tool.

assets-get-available-animations

Get all available sprite animations in the project.

assets-get-available-spine-skeletons

Get the all the Spine skeletons in the project. It only returns the key of the skeleton.

assets-get-available-spine-atlases

Get the all the Spine atlases in the project.

assets-get-spine-skeleton-info

Get the skeleton info (animations and skins) of the given Spine skeleton key. To build the info of a skeleton it requires also the Spine atlas key. The user can select a different atlas key, but it is common that the user also define a 'preview' atlas key for each skeleton. You can use it if it exists or ask for a different atlas key to the user.

assets-get-spine-skin-image

Get the PNG image of the given Spine skin. You can use this tool to get a better understanding of the appearance of a Spine skeleton with a given skin. The image may be scaled or not. You can the skeleton data to get more info about the size of a skeleton.

assets-get-available-tilemaps

Search for the available Tiled tilemap files in the asset packs and return the list of tilemap keys. A Tiled tilemap file contains the data of a tilemap. It is used by the scene editor to create the Tilemap and TilemapLayer objects. These maps are created by the third party tool Tiled. Like the other assets in the asset packs, Phaser Editor uses the tilemap key to identify the tilemap.

assets-get-tilemap-data

Get the data of a Tiled tilemap file. It returns the data of the tilemap, including the layers, tilesets, and objects. The data is used by the scene editor to create the Tilemap and TilemapLayer objects.

assets-get-google-font-families

Gets the Google Fonts list of families. It connects to Google API and get the list. This method doesn't provide the fonts available in the project. To see the fonts in the project, check the fonts in the asset packs.

assets-get-google-font-info

Gets the Google Fonts info for a given font family.

assets-add-google-font-to-asset-pack

Add a Google Font configuration to the given asset pack. This is required if you want to use the font in a scene text.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

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/phaserjs/editor-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server