Cover image

Get/put/löschen CLI und HTTP -API für Minecraft Bedrock Edition World Directories

3 years

Works with Finder

7

Github Watches

6

Github Forks

43

Github Stars

MCPE (Bedrock) Tool

An offline tool to read and write world data from Minecraft Bedrock Edition.

The author has no affiliation with Minecraft, Mojang or Microsoft.

Build

The go.mod and go.sum files have been added, so go build ./cmd/mcpetool will now pull the approrpriate dependencies.

Use

  • Since LevelDB only allows one process to use it at a time, this tool can not be used while the world is running in Minecraft
  • Input and most output defaults to stdin/stdout, but --in or --out parameters are available where appropriate. Some key lists only print to stdout.
  • This is a work in progress. I intend to release only working versions, but always be sure to back up your worlds before modifying them.
  • This tool does not currently validate that data input is valid for the game, but the game has proven pretty resilient to my messing around with saves. It seems to generate new terrain or respawn the player as appropriate if it encounters missing or invalid data.
  • mcpetool [command [subcommand]] -h - Shows help and options for commands and subcommands.
  • You can put the path to your world in the environment variable MCPETOOL_WORLD to save typing on repeated commands
  • If %MCPETOOL_WORLD%/$MCPETOOL_WORLD/$env:MCPETOOL_WORLD isn't set and --path isn't specified, mcpetool will look in the current directory for a world
  • NBT to JSON and YAML formatting is using my nbt2json module. When using JSON or YAML as input, it needs to be compatible with this. That basically means the top-level document key "nbt": should be an array of objects like { "name": "<name>", "tagType": <number>, "value": <varies based on type> }, and of course sub-tags of compound tags and list tags are arrays of nbt2json objects in the value field.

level.dat

  • mcpetool leveldat get [--path <path/to/world>] [--out <file>] [--dump] [--yaml] [--base64] [--binary] - Retrieves the contents of level.dat in JSON format, or in hex dump, YAML, base64, or binary format if one of those options is given. For JSON and YAML output, the level.dat version is put in the comment field, and the length is discarded. For hex dump, base64 and binary output, you get the unmodified contents of the file including the 8-byte header.
  • mcpetool leveldat put [--path <path/to/world>] [--in <file>] [--ver <version>] [--yaml] [--base64] [--binary] - Replaces the contents of level.dat with your JSON input, or YAML, base64, or binary input per the parameters. For JSON and YAML input, the header is generated using version 6 or the version number provided by --ver (not from the JSON/YAML), and the length is calculated after conversion. For base64 or binary input, the level.dat file is written with those contents exactly, so they should include the proper 8-byte header.

LevelDB

Most world data is stored in a modified LevelDB key/value store. The db subcommands provide raw access to this key/value store. See docs for more info.

  • mcpetool db list [--path <path/to/world>] - This will list the keys in the LevelDB world store in hex string format
  • mcpetool db get [--path <path/to/world>] [--json] [--dump] [--yaml] [--base64] [--binary] <hexkey> - Returns the data for the given key in base64 or specified format
    • Example: mcpetool db get --path path/to/world --yaml 7e6c6f63616c5f706c61796572 returns local player data in YAML format
    • Example: mcpetool db get --path path/to/world --json 00000000000000002f00 returns overworld subchunk X=0, Z=0, Y=0 in JSON format if it exists
  • mcpetool db put [--path <path/to/world>] -i <input file> [--json] [--yaml] [--base64] [--binary] <hexkey> - Puts a key/value pair in the database, replacing the previous value if present or creating the key if not. They key and value are not checked for game validity; it will place any data in any key you specify. If -i is specified as "-" the value will be read from STDIN.
    • Example: mcpetool db put [--path <path/to/world>] -i data.json --json 00000000000000002f00 inserts the content of data.json as the value of subchunk X=0, Z=0, Y=0
  • mcpetool db delete [--path <path/to/world>] <hexkey> - Deletes the key/value pair for that key if present
    • Example: mcpetool db delete [--path <path/to/world>] 7e6c6f63616c5f706c61796572 deletes the local player data including inventory and equipped items. If you do this and play the world, you will spawn at the world spawn point.

To modify a parameter of an entity, you would typically do the following:

  • mcpetool db get --yaml 00000000000000002f00 > myworld.yaml
  • edit myworld.yaml in your favourite editor to change parameters
  • mcpetool db put -i myworld.yaml --yaml 00000000000000002f00

API

Starts a local HTTP server allowing REST API access to the MCPE world database. When done accessing the world, stop the server with control-C (or your OS'es equivalent BREAK).

The PUT request bodies should be formatted like the GET requests with base64-encoded data in "base64Data":.

I intend to make the next API version with Swagger, and add more features and data input/output options.

相关推荐

  • Joshua Armstrong
  • Confidential guide on numerology and astrology, based of GG33 Public information

  • https://suefel.com
  • Latest advice and best practices for custom GPT development.

  • Emmet Halm
  • Converts Figma frames into front-end code for various mobile frameworks.

  • Elijah Ng Shi Yi
  • Advanced software engineer GPT that excels through nailing the basics.

  • lumpenspace
  • Take an adjectivised noun, and create images making it progressively more adjective!

  • https://maiplestudio.com
  • Find Exhibitors, Speakers and more

  • Yusuf Emre Yeşilyurt
  • I find academic articles and books for research and literature reviews.

  • Carlos Ferrin
  • Encuentra películas y series en plataformas de streaming.

  • apappascs
  • Entdecken Sie die umfassendste und aktuellste Sammlung von MCP-Servern auf dem Markt. Dieses Repository dient als zentraler Hub und bietet einen umfangreichen Katalog von Open-Source- und Proprietary MCP-Servern mit Funktionen, Dokumentationslinks und Mitwirkenden.

  • ravitemer
  • Ein leistungsstarkes Neovim -Plugin für die Verwaltung von MCP -Servern (Modellkontextprotokoll)

  • jae-jae
  • MCP -Server für den Fetch -Webseiteninhalt mit dem Headless -Browser von Dramatikern.

  • patruff
  • Brücke zwischen Ollama und MCP -Servern und ermöglicht es lokalen LLMs, Modellkontextprotokoll -Tools zu verwenden

  • pontusab
  • Die Cursor & Windsurf -Community finden Regeln und MCPs

  • av
  • Führen Sie mühelos LLM -Backends, APIs, Frontends und Dienste mit einem Befehl aus.

  • appcypher
  • Awesome MCP -Server - eine kuratierte Liste von Modellkontext -Protokollservern für Modellkontext

  • chongdashu
  • Aktivieren Sie KI -Assistenten -Clients wie Cursor, Windsurf und Claude -Desktop, um Unreal Engine durch natürliche Sprache mit dem Modellkontextprotokoll (MCP) zu steuern.

  • wgpsec
  • 一款基于各大企业信息 API 的工具 , 解决在遇到的各种针对国内企业信息收集难题。一键收集控股公司 ICP 备案、 app 、小程序、微信公众号等信息聚合导出。支持 MCP 接入

    Reviews

    1 (1)
    Avatar
    user_x7vDYr1W
    2025-04-17

    As a dedicated user of MCP applications, I highly recommend McpeTool by midnightfreddie. This tool significantly enhances the Minecraft Pocket Edition experience by offering essential features and improvements. It's a must-have for any serious player looking to customize and optimize their gameplay. You can find it on GitHub: https://github.com/midnightfreddie/McpeTool.