Phaser Editor MCP Server
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| 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 |
| 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 |
| 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-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-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
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
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