Minecraft Creator Tools

Mojang's MCP server for building, validating and testing Minecraft Bedrock add-ons

Official · Mojang JavaScript Local · stdio Developer toolsTesting

73 popularity score ★ 170 ↓ 15k/wk

Connect your client

Local (npm)

Add in one click

Opens the app, which asks before it adds the server. Then replace each <NAME> in its settings with your value.

Or add it by command or config

FirstTerminal
npm install -g @minecraft/creator-tools
mct eula
Claude CodeTerminal
claude mcp add minecraft-creator-tools -- mct mcp -i '<ABSOLUTE_PATH_TO_PROJECT>'
Claude Desktopclaude_desktop_config.json
{
  "mcpServers": {
    "minecraft-creator-tools": {
      "command": "mct",
      "args": [
        "mcp",
        "-i",
        "<ABSOLUTE_PATH_TO_PROJECT>"
      ]
    }
  }
}
Cursor~/.cursor/mcp.json
{
  "mcpServers": {
    "minecraft-creator-tools": {
      "command": "mct",
      "args": [
        "mcp",
        "-i",
        "<ABSOLUTE_PATH_TO_PROJECT>"
      ]
    }
  }
}
VS Code.vscode/mcp.json
{
  "servers": {
    "minecraft-creator-tools": {
      "type": "stdio",
      "command": "mct",
      "args": [
        "mcp",
        "-i",
        "<ABSOLUTE_PATH_TO_PROJECT>"
      ]
    }
  }
}
Codex~/.codex/config.toml
[mcp_servers.minecraft-creator-tools]
command = "mct"
args = ["mcp", "-i", "<ABSOLUTE_PATH_TO_PROJECT>"]
Gemini CLITerminal
gemini mcp add --scope user minecraft-creator-tools mct -- mcp -i '<ABSOLUTE_PATH_TO_PROJECT>'

Settings 1

MCTOOLS_I_ACCEPT_EULA_AT_MINECRAFTDOTNETSLASHEULA Optional: Set to true to count as accepting the Minecraft EULA instead of running `mct eula`. For createProject, addItem, createMinecraftSessionWithContent.

What it does

Minecraft Creator Tools is Mojang's toolkit for people who build Bedrock Edition add-ons. The npm package installs a command-line program called `mct`, and its `mct mcp` subcommand starts a stdio MCP server so a coding assistant can work on an add-on project directly.

With it an assistant can scaffold a project and add new content from templates, or generate a whole set of pack files from one simplified definition. It can check a pack or a single file against Minecraft's rules. Other tools sketch 3D models and structures, and three of them write PNG textures. The session tools start a local Bedrock Dedicated Server with packaged content so the assistant can move a test player around and run commands in that world. Afterwards it can read back the server's log instead of asking you to paste it. A `getSkill` tool serves the how-to guides that ship inside the installed package.

In total the server registers 20 tools: 19 in MinecraftMcpServer.ts plus `getSkill` in McpSkillLibrary.ts. The log tool, `getMinecraftSessionLogs`, looks at output since the last server start and returns 50 entries by default, at most 200 (ServerLogQuery.ts). It marks that output as untrusted text. The source still holds a handler for reading image files, but no `readImageFile` tool is registered. Mojang calls the code a pre-release alpha.

What it needs

RuntimeNode.js 22+
Runs onmacOS, Windows, Linux
Also
  • npm 10 or later
  • Minecraft EULA accepted once with `mct eula`

Install the package globally with `npm install -g @minecraft/creator-tools`, then run `mct eula` once (or set MCTOOLS_I_ACCEPT_EULA_AT_MINECRAFTDOTNETSLASHEULA=true) before the tools that create projects, add content or start a server session will work. Image-writing tools also need a `.mct/mcp/prefs.json` file containing `allowImageFileWritesInDescendentFolders: true`.

Limits

  • Early release Mojang describes the package as pre-release alpha code.
  • Limit Until the Minecraft EULA is accepted, createProject, addItem and createMinecraftSessionWithContent return an error and change nothing.
  • Limit The three image-writing tools refuse unless a .mct/mcp/prefs.json allowing writes sits in the target folder or a few folders above it.
  • Not covered Deploying packs into the installed game is the CLI command `mct deploy`, which needs Windows with Minecraft installed. It is not an MCP tool.
  • Size cap getMinecraftSessionLogs returns 50 log entries by default and no more than 200, with search text capped at 200 characters.
  • Limit Without -i the working folder is the folder the client starts the server in.
  • Limit Mojang does not take outside pull requests.

Who it suits

Suits Bedrock add-on makers who want an assistant to scaffold, generate and validate packs on their own machine, and to try content in a local dedicated-server session. Because it comes from Mojang, its validation follows the official content rules. It is aimed at Bedrock Edition data packs and add-ons; anyone working on Java Edition mods or wanting to control a live game world for players should look elsewhere. It writes files into the project folder, so point `-i` at the add-on you want changed.

Tools 20

7 only read, 13 change things. A ? marks an optional parameter.

createProject changes
Scaffolds a new add-on project from one of seven templates.folderPathToCreateProjectAt: stringtitle: stringdescription?: stringnewName: stringcreator: stringtemplate: enum
addItem changes
Adds an entity, block, item or other content type to a project from a template.folderPathToCreateProjectAt: stringtemplateType: enumname: string
createMinecraftContent changes
Generates behavior and resource pack files in bulk from a simplified content schema.definition: objectoutputPath: string
getEffectiveContentSchema
Reads an existing project and returns it in the simplified content schema.folderPath: stringoptions?: object
validateContent
Checks a JSON file or a base64 ZIP against Minecraft's content rules.jsonContentOrBase64ZipContent: string
validateFile
Checks the Bedrock content at a file path.filePath: string
createMinecraftSessionWithContent changes
Starts a local dedicated-server session loaded with a packaged add-on or world.sessionName: stringpackagedMcaddonOrMcworldFilePath: stringtestPlayerNameToUse: string
moveSessionPlayerToLocation changes
Moves a player in a session to X/Y/Z coordinates.sessionName: stringplayerName: stringlocationToHavePlayerMoveTo: object
runCommandInMinecraft changes
Runs one Minecraft command in a session.sessionName: stringcommand: string
runActionSetInMinecraft changes
Runs a set of actions in a session and returns the world state after.actionSet: object
listMinecraftSessions
Lists named sessions and active server slots with their port and status.
connectToMinecraftSession changes
Gives a name to a running dedicated-server slot so other tools can use it.sessionName: stringslot?: number
getMinecraftSessionLogs
Returns recent server console output for a session, errors and warnings by default.sessionName?: stringslot?: integerlevels?: arraysinceLatestStart?: booleansearch?: stringlimit?: integer
designModel changes
Builds a 3D model for an entity, block or item and can wire it into the project.projectPath: stringdesign: objectmodelId: stringusage?: enumwireTo?: any
getModelTemplates
Returns starter model designs for common shapes such as humanoids or vehicles.templateType?: enum
designStructure changes
Builds a .mcstructure from a block grid or a small JavaScript build program.projectPath: stringblockVolume?: objectprogram?: stringseed?: integerprogramMode?: enumstructureId: string
writeImageFile changes
Saves base64 image data as a PNG texture.filePath: stringbase64Data: stringmimeType?: string
writeImageFileFromSvg changes
Renders SVG markup into a PNG texture.filePath: stringsvgContent: stringwidth?: numberheight?: number
writeImageFileFromPixelArt changes
Turns rows of ASCII art and a colour palette into a PNG texture.filePath: stringlines: arraypalette: objectscale?: numberbackgroundColor?: object
getSkill
Returns one of the step-by-step guides bundled with the installed package.name: enumfile?: string

Similar servers