loenn-mcp
MCPB · LOENN-MCP-7.2.0.MCPB
Celeste map editor for AI agents: read, edit, validate, preview and generate .bin maps.
Available components
Last scanned (1 hour ago)
Scores higher than 73% of MCPB servers
Category Entertainment and Games
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security12
- No malware scan is available for this kind of package: the supply-chain vendors we use do not cover it. This is a permanent gap in our coverage, not a finding about the package.Unverified
- Known CVEs were checked across the 15 of 15 dependencies we could resolve, so this covers what we could see, not the whole tree.Partial
- Install-script risk not yet assessed.Unverified
- 1 of 15 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency45
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 13 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability71
- AI-judged instruction clarity (good).Pass
- Tool/resource definitions use about 7885 tokens (~88/item across 89 items; 89 tools + 0 resources), lean.Pass
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management0
- Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 99% of tool parameters carry a description.Partial
- Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety75
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- 0 of 6 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "remove_entity" implies "remove" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Fail
- An AI judge read all 90 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Unverified: 1 category
A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 23 Oct 26 42
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 5 Nov 2026 · Analysed mcpb/https://github.com/Magedeline/loenn-mcp/releases/download/v7.2.0/loenn-mcp-7.2.0.mcpb@7.2.0
Provenance No attestation
The registry publishes no build provenance for this version, so there is nothing to verify.
| Result | No attestation |
|---|---|
| Ecosystem | mcpb |
| Reason | No attestation published |
Background: How many MCP packages publish verified provenance →
Dependencies 15 packages
| Packages resolved | 15 |
|---|---|
| Stale | 1 |
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
add_decal ~132
Add a decal to a room.
| Name | Type | Req | Description |
|---|---|---|---|
| layer | string | – | "fg" or "bg". |
| map_path | string | yes | Path to the .bin file. |
| room_name | string | yes | Target room. |
| scale_x | number | – | Horizontal scale (default 1.0). |
| scale_y | number | – | Vertical scale (default 1.0). |
| texture | string | yes | Decal texture path (e.g. "decals/1-forsakencity/flag_a00"). |
| x | integer | yes | X position. |
| y | integer | yes | Y position. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
add_entity ~149
Add an entity to a room and save the map.
| Name | Type | Req | Description |
|---|---|---|---|
| entity_id | integer | – | Entity ID (-1 to auto-assign) |
| entity_name | string | yes | Entity type (e.g. "player", "MaggyHelper/KirbyBoss") |
| height | integer | – | Entity height (0 if inapplicable) |
| map_path | string | yes | Path to the .bin file |
| properties | string | – | JSON object string of extra properties |
| room_name | string | yes | Room name |
| width | integer | – | Entity width (0 if inapplicable) |
| x | integer | yes | X position in pixels |
| y | integer | yes | Y position in pixels |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
add_room ~131
Add a new empty room to a map.
| Name | Type | Req | Description |
|---|---|---|---|
| dark | boolean | – | Whether the room is dark |
| height | integer | – | Room height in pixels (multiple of 8) |
| map_path | string | yes | Path to the .bin file |
| room_name | string | yes | Room name (prefixed with 'lvl_' if needed) |
| space | boolean | – | Whether the room has space physics |
| width | integer | – | Room width in pixels (multiple of 8) |
| x | integer | – | Room X position in pixels |
| y | integer | – | Room Y position in pixels |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
add_styleground ~159
Add a styleground effect to a map.
| Name | Type | Req | Description |
|---|---|---|---|
| effect_name | string | yes | Effect type (e.g. "parallax", "2.5DHelper/VoidBg", "WhiteholeBg", "apply" for a group element) |
| index | integer | – | Position to insert at (-1 appends to the end) |
| layer | string | – | "bg" / "background" / "backgrounds" (default), or "fg" / "foreground" / "foregrounds" |
| map_path | string | yes | Path to the .bin file |
| properties | string | – | JSON object of effect properties (e.g. '{"texture": "bgs/01/bg", "only": "lvl_a-01"}') |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
add_trigger ~208
Add a trigger to a room and save the map.
| Name | Type | Req | Description |
|---|---|---|---|
| height | integer | – | Trigger height in pixels (default 16) |
| map_path | string | yes | Path to the .bin file |
| nodes | string | – | JSON array of {"x": int, "y": int} objects for triggers that need path/target nodes (e.g. cameraTargetTrigger). Default "[]". |
| properties | string | – | JSON object string of extra properties (e.g. '{"dialog_id": "MAP_INTRO"}') |
| room_name | string | yes | Room name |
| trigger_id | integer | – | Trigger ID (-1 to auto-assign) |
| trigger_name | string | yes | Trigger type (e.g. "everest/dialogTrigger", "2.5DHelper/StarterFlagTrigger") |
| width | integer | – | Trigger width in pixels (default 16) |
| x | integer | yes | X position in pixels |
| y | integer | yes | Y position in pixels |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
analyze_difficulty ~57
Estimate room or map difficulty from hazard density, nav aids, and tile coverage.
| Name | Type | Req | Description |
|---|---|---|---|
| map_path | string | yes | Path to the .bin file. |
| room_name | string | – | Specific room to analyze. Empty = analyze all rooms. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
analyze_map ~30
Get detailed statistics about a map file.
| Name | Type | Req | Description |
|---|---|---|---|
| map_path | string | yes | Path to the .bin file |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
analyze_room_connectivity ~38
Analyze room adjacency graph showing isolated rooms, dead ends, and hubs.
| Name | Type | Req | Description |
|---|---|---|---|
| map_path | string | yes | Path to the .bin file. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
audit_plugin_coverage ~69
Compare the mod's C# [CustomEntity] names with its Lönn plugin definitions.
| Name | Type | Req | Description |
|---|---|---|---|
| prefix | string | – | Only report names starting with this (e.g. "CEL/"). |
| source_dir | string | – | C# source folder relative to the workspace (default "Source"). |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
batch_add_entities ~119
Add multiple entities to a room in one call.
| Name | Type | Req | Description |
|---|---|---|---|
| entities_json | string | yes | JSON array of entity objects. Each must have "__name". Optional: x, y, width, height, etc. IDs are auto-assigned. Example: '[{"__name":"strawberry","x":100,"y":50},… |
| map_path | string | yes | Path to the .bin file. |
| room_name | string | yes | Target room name. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
batch_validate_and_fix ~51
Validate all rooms in a map and optionally auto-fix issues.
| Name | Type | Req | Description |
|---|---|---|---|
| auto_fix | boolean | – | If True, apply automatic fixes. |
| map_path | string | yes | Path to the .bin file. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
check_assets ~59
Check that a map only uses things that exist: entity/trigger names with a Lönn definition, decal and parallax textures.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Maximum findings to list |
| map_path | string | yes | The .bin to check |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
check_authoring_json ~102
Resolve authoring JSON without a map: show each object with its defaults filled in from the Lönn definitions, and flag unknown names.
| Name | Type | Req | Description |
|---|---|---|---|
| authoring_json | string | yes | Inline JSON, or a path to a .json file. Format: {"rooms": [{"room": "a-05", "entities": [{"name": "strawberry", "x": 120, "y": 64}], "triggers": [...]}]} |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
check_sprites_xml ~71
Check a Sprites.xml: it parses, ids are unique, and every Anim/Loop has frames in the atlas. Check this first when a sprite does not show in game.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Maximum findings to list |
| xml_path | string | – | Sprites.xml in the workspace |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
clone_room ~100
Clone an existing room to a new name and position.
| Name | Type | Req | Description |
|---|---|---|---|
| map_path | string | yes | Path to the .bin file. |
| new_name | string | yes | Name for the cloned room. |
| source_room | string | yes | Name of the room to clone. |
| x | integer | – | X position for the clone (-1 = place to the right of source). |
| y | integer | – | Y position for the clone (-1 = same Y as source). |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
compare_rooms ~55
Compare two rooms in the same map side-by-side.
| Name | Type | Req | Description |
|---|---|---|---|
| map_path | string | yes | Path to the .bin file. |
| room_a | string | yes | First room name. |
| room_b | string | yes | Second room name. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
create_map ~59
Create a new empty Celeste .bin map file.
| Name | Type | Req | Description |
|---|---|---|---|
| map_path | string | yes | Path for the new file (relative to workspace) |
| package_name | string | – | Map package name (e.g. "Maggy/PCG/MyMap") |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
editor_close ~59
Close an editor session. Without force, the editor may ask about unsaved changes and stay open.
| Name | Type | Req | Description |
|---|---|---|---|
| force | boolean | – | Kill the editor; unsaved editor changes are lost |
| session | string | – | Session id; empty = the latest |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
editor_open ~114
Open a map in Lönn (or Rysy), optionally on a room. MCP writes to that map are refused until it closes.
| Name | Type | Req | Description |
|---|---|---|---|
| editor | string | – | "loenn" or "rysy" |
| map_path | string | yes | The .bin to open |
| room | string | – | Room to select on load (Lönn only) |
| storage | string | – | Lönn settings folder: "isolated" (own copy, default) or "user" (your normal Lönn) |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
editor_status ~22
List editor sessions from this server and any other running Lönn.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
editor_wait ~66
Wait until the user saves in the editor (or it closes), then report what changed. Call again to keep waiting.
| Name | Type | Req | Description |
|---|---|---|---|
| session | string | – | Session id from editor_open; empty = the latest |
| timeout_s | integer | – | Seconds to wait, 1 to 600 |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
export_room_json ~63
Export a room as a JSON file for external editing or sharing.
| Name | Type | Req | Description |
|---|---|---|---|
| map_path | string | yes | Path to the .bin file. |
| output_path | string | – | Output JSON path (default: auto-generated). |
| room_name | string | yes | Room to export. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
find_missing_definitions ~42
List namespaced entities and triggers in a map that no installed Lönn plugin defines.
| Name | Type | Req | Description |
|---|---|---|---|
| map_path | string | yes | Path to the .bin file. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
game_log ~68
Recent lines of the game's log.txt: errors, warnings and level loads.
| Name | Type | Req | Description |
|---|---|---|---|
| lines | integer | – | How many trailing log lines to scan. |
| only_problems | boolean | – | Keep only errors, warnings about missing events or textures, failed map loads and level-load lines (default True). |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
game_play_tas ~99
Play CelesteTAS inputs from a room's spawn and report where the player ended up.
| Name | Type | Req | Description |
|---|---|---|---|
| inputs | string | yes | TAS input lines. |
| intro_frames | integer | – | Frames to wait after loading before inputs act. |
| map_path | string | yes | Path to the .bin file (relative to the workspace). |
| room | string | yes | Room to start in. |
| timeout_s | number | – | Give up after this many seconds. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
game_reload_map ~55
Make the running game re-read a map after it was edited on disk.
| Name | Type | Req | Description |
|---|---|---|---|
| map_path | string | yes | Path to the .bin file (relative to the workspace). |
| side | string | – | A, B or C. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
game_status ~24
Where the running game is: map SID, side, room and player position.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
game_teleport ~83
Load a room of a map in the running game (a fresh debug session).
| Name | Type | Req | Description |
|---|---|---|---|
| map_path | string | yes | Path to the .bin file (relative to the workspace). |
| room | string | yes | Room name, with or without 'lvl_'. |
| side | string | – | A, B or C. |
| x | – | – | – |
| y | – | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
get_effect_definition ~44
Read the source of a Lönn effect definition .lua file.
| Name | Type | Req | Description |
|---|---|---|---|
| effect_name | string | yes | Name of the effect (searches in Loenn/effects/). |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
get_entity_definition ~66
Read a Lönn entity Lua definition and extract its properties.
| Name | Type | Req | Description |
|---|---|---|---|
| entity_file | string | yes | Entity name as placed in maps (e.g. "CEL/KrackoBoss") or a filename (e.g. "kirbyBoss" or "kirbyBoss.lua") |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
get_map_dependencies ~39
Read the mod dependencies list from a map's everest.yaml or meta node.
| Name | Type | Req | Description |
|---|---|---|---|
| map_path | string | yes | Path to the .bin file |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
get_map_metadata ~39
Read the map-level metadata block (Everest/celeste.yaml meta settings).
| Name | Type | Req | Description |
|---|---|---|---|
| map_path | string | yes | Path to the .bin file |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
get_mod_info ~17
Get information about the current mod project.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
get_room_settings ~59
Get all editable settings for a room (music, physics, wind, camera, flags).
| Name | Type | Req | Description |
|---|---|---|---|
| map_path | string | yes | Path to the .bin file |
| room_name | string | yes | Room name (with or without 'lvl_' prefix) |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
get_room_tiles ~65
Get the complete tile grid for a room as text.
| Name | Type | Req | Description |
|---|---|---|---|
| layer | string | – | "fg" for foreground (solids), "bg" for background |
| map_path | string | yes | Path to the .bin file |
| room_name | string | yes | Room name |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
get_trigger_definition ~44
Read the source of a Lönn trigger definition .lua file.
| Name | Type | Req | Description |
|---|---|---|---|
| trigger_name | string | yes | Name of the trigger (searches in Loenn/triggers/). |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
import_room_json ~111
Import a room from a JSON file into a map.
| Name | Type | Req | Description |
|---|---|---|---|
| json_path | string | yes | Path to the JSON file (exported by export_room_json). |
| map_path | string | yes | Path to the .bin file to import into. |
| new_name | string | – | Optional new name for the room (overrides name in JSON). |
| x | integer | – | X position override (-1 = use position from JSON). |
| y | integer | – | Y position override (-1 = use position from JSON). |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
json_to_map ~66
Convert typed JSON (from map_to_json, possibly edited) back to a .bin map.
| Name | Type | Req | Description |
|---|---|---|---|
| json_path | string | yes | Typed JSON file |
| map_path | string | yes | Output .bin path |
| overwrite | boolean | – | Must be true to replace an existing map |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
list_decals ~64
List all decals in a room (foreground or background).
| Name | Type | Req | Description |
|---|---|---|---|
| layer | string | – | "fg" for foreground decals, "bg" for background decals. |
| map_path | string | yes | Path to the .bin file. |
| room_name | string | yes | Room name. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
list_effect_definitions ~31
List available Lönn effect definitions.
| Name | Type | Req | Description |
|---|---|---|---|
| filter_text | string | – | Optional text to filter filenames |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
list_entity_definitions ~34
List available Lönn entity definitions from the project.
| Name | Type | Req | Description |
|---|---|---|---|
| filter_text | string | – | Optional text to filter filenames |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
list_maps ~35
List all .bin map files in the project.
| Name | Type | Req | Description |
|---|---|---|---|
| subdir | string | – | Subdirectory to search (default: "Maps") |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
list_stylegrounds ~37
List all stylegrounds (foreground + background effects) in a map.
| Name | Type | Req | Description |
|---|---|---|---|
| map_path | string | yes | Path to the .bin file |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
list_trigger_definitions ~31
List available Lönn trigger definitions.
| Name | Type | Req | Description |
|---|---|---|---|
| filter_text | string | – | Optional text to filter filenames |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
map_backups ~45
List the timestamped backups of a map, newest first.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Maximum entries |
| map_path | string | yes | The .bin whose backups to list |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
map_commit ~132
Apply a working copy to the real map: whole file, or only the listed rooms. Dry run shows the diff first.
| Name | Type | Req | Description |
|---|---|---|---|
| allow_issues | boolean | – | Write even if the committed rooms fail validation (e.g. no player spawn) |
| dry_run | boolean | – | Only show the diff and checks (default). Set false to write. |
| rooms | string | – | Comma-separated room names to take from the copy; empty = replace the whole map |
| target_map | string | yes | The map to update (a timestamped backup is kept) |
| work_map | string | yes | The edited copy |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
map_copy ~67
Copy a map to a working copy so edits never touch the original. Default target: Maps/<mod>/wip/<name>.copy.bin.
| Name | Type | Req | Description |
|---|---|---|---|
| dest | string | – | Target .bin in the workspace; must not exist yet |
| map_path | string | yes | .bin to copy |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
map_diff ~92
Semantic diff of two maps: rooms, geometry, fg/bg tiles, entities, triggers, decals, stylegrounds, meta.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Maximum output lines |
| map_a | string | yes | The older map (or the map to compare with its latest backup when map_b is empty) |
| map_b | string | – | The newer map; empty = compare map_a's latest backup -> map_a |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
map_restore ~71
Restore a map from one of its backups (the current file is backed up first).
| Name | Type | Req | Description |
|---|---|---|---|
| backup | string | – | Backup file name from map_backups, or "latest" |
| dry_run | boolean | – | Only show what would change (default) |
| map_path | string | yes | The .bin to restore |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
map_to_json ~76
Convert a .bin map to typed JSON that converts back byte-identical.
| Name | Type | Req | Description |
|---|---|---|---|
| indent | integer | – | JSON indent; 0 for the most compact file |
| map_path | string | yes | Path to the .bin file |
| output_path | string | – | Where to write the JSON (default: Export/<map>.json) |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
How do I install the loenn-mcp server?
loenn-mcp ships as an MCPB bundle, a single file you download and open in an MCP host that supports MCPB bundles, such as Claude Desktop. The host reads the launch command from the bundle's own manifest, so there is no command to copy. Before opening it, check the file's SHA-256 matches the one the MCP registry declares for it, 99aa5f3cd18d0bcc9fc9016683aa7a10b29beaa868161cb40f45f640fe2a90f5; the commands to do that are on this page. If it does not match, do not open it.
mcpb · loenn-mcp-7.2.0.mcpb
Download bundleCheck the download matches the SHA-256 the MCP registry declares before you open it. If it does not match, do not open the file.
SHA-256
99aa5f3cd18d0bcc9fc9016683aa7a10b29beaa868161cb40f45f640fe2a90f5
macOS / Linux
echo "99aa5f3cd18d0bcc9fc9016683aa7a10b29beaa868161cb40f45f640fe2a90f5 loenn-mcp-7.2.0.mcpb" | shasum -a 256 -c
Windows (PowerShell)
(Get-FileHash -Algorithm SHA256 .\loenn-mcp-7.2.0.mcpb).Hash -eq "99aa5f3cd18d0bcc9fc9016683aa7a10b29beaa868161cb40f45f640fe2a90f5"
Run it in the folder you saved the bundle to, then open the file with an MCPB-capable host such as Claude Desktop.
What is the loenn-mcp server?
loenn-mcp is listed in the public MCP registry as io.github.Magedeline/loenn-mcp. Celeste map editor for AI agents: read, edit, validate, preview and generate .bin maps. This page covers its MCPB bundle (https://github.com/Magedeline/loenn-mcp/releases/download/v7.2.0/loenn-mcp-7.2.0.mcpb).
Is the loenn-mcp server safe to use?
loenn-mcp scores 42 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the loenn-mcp server expose?
loenn-mcp exposes 89 tools: list_maps, read_map_overview, read_room, get_room_tiles, add_entity, and 84 more. Their descriptions and schemas cost roughly 7,588 tokens of context every time the server is loaded.
What licence is the loenn-mcp server under?
loenn-mcp declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.