godot-sprite-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@godot-sprite-mcpSlice res://assets/knight_sheet.png and build Knight.tscn with feet-aligned colliders"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
godot-sprite-mcp
A lightweight Model Context Protocol (MCP) server & CLI for Godot 4.x that slices 2D spritesheets, exports SpriteFrames (.tres) animations, computes feet-aligned body colliders (CollisionShape2D), and generates ready-to-open .tscn character scenes directly from PNG alpha channels.
![]()
![]()
In the showcase above, even when computed across the broadsword attack row (
raw_width = 128px), the 30% vertical thickness filter automatically strips the 74px extended blade and keeps a stable54×112pxtorso collider, while preserving the wide99×112pxbody on the slime.
✨ Features
MCP Tool | Description |
| Auto-detects grid cells or irregular sprite islands from the PNG alpha channel (supports |
| Generates Godot 4 ( |
| Overlays animation frames and uses a 30% vertical thickness filter to generate a stable, feet-aligned |
| Writes a complete Godot 4 |
| Traces and simplifies outer pixel contours into a |
Related MCP server: blender-iso-mcp
🚀 Quick Start (MCP Configuration)
Prerequisites: Python 3.10+, Git, and uv (for uvx).
Add godot-sprite-mcp to your AI coding client (mcp.json in Cursor, Claude Code, Windsurf, Cline, Claude Desktop, etc.):
Option 1: Run directly from GitHub via uvx
{
"mcpServers": {
"godot-sprite": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/huha007/godot-sprite-mcp",
"godot-sprite-mcp"
]
}
}
}Option 2: Run from a local clone / Conda environment
git clone https://github.com/huha007/godot-sprite-mcp.git
cd godot-sprite-mcp
pip install -e .{
"mcpServers": {
"godot-sprite": {
"command": "godot-sprite-mcp"
}
}
}(On Windows with a virtual/Conda environment not on global PATH, set "command" to the full path of python.exe and "args": ["-m", "godot_sprite_mcp"].)
💬 Example Prompts for Your AI Agent
Once configured, ask your AI assistant in natural language:
"Inspect
res://assets/knight_sheet.pngin projectD:/my_game, createres://resources/knight_frames.treswithidle,run, andattackanimations, and callbuild_character_sceneto generateres://Knight.tscn.""Analyze
res://assets/slime.pngand build aSlime.tscnwith a feet-aligned bodyCollisionShape2D."
🛠️ CLI Usage (Standalone)
# 1. Inspect spritesheet layout (grid or islands)
godot-sprite-mcp inspect assets/knight_sheet.png --mode auto
# 2. Build Godot 4 SpriteFrames (.tres)
godot-sprite-mcp build \
--project-root . \
--image assets/knight_sheet.png \
--animations @animations.json \
--output res://resources/knight_frames.tres
# 3. Compute feet-aligned torso collider (RectangleShape2D / CapsuleShape2D)
godot-sprite-mcp body-collision assets/knight_sheet.png \
--frames @idle_frames.json \
--shape rectangle \
--thickness-ratio 0.30
# 4. Extract contour polygon for static props
godot-sprite-mcp collision assets/rock.png --epsilon 2.0⚠️ Scope & Limitations
PNG Alpha Channel Required: Frame detection and contour/collider extraction rely on transparent backgrounds (
alpha <= alpha_threshold). Solid-color opaque backgrounds must be made transparent first.Grid vs. Islands Mode:
mode="grid"expects fully transparent horizontal/vertical gutters and uniform cell sizes;mode="auto"automatically falls back to 8-connected componentislandswhen cells vary in size.Movement Collider vs. Combat Hitboxes:
build_body_colliderproduces a single stable physics collider for character movement (CharacterBody2D), rather than per-frame animated melee attack hitboxes (Area2D).
🧪 Running Tests
pip install -e ".[dev]"
pytest -v📄 License
Available Tools
5 toolsbuild_body_colliderA
Build a stable single-shape body collider for a moving character.
This is the recommended collision tool for player/enemy movement. It consumes all frames of one animation, overlays their alpha masks, measures the full character height and a thickness-filtered body width, and returns a feet-aligned RectangleShape2D (default) or CapsuleShape2D. The older extract_collision_polygon tool remains available for static objects.
Args:
image_path: Path or res:// URI to the spritesheet image.
frames: Every frame region of the selected animation, for example
[{"x": 0, "y": 264, "w": 66, "h": 66}, ...]. All frames must
have the same width and height.
shape: "rectangle" (default) or "capsule". Wide bodies such as
slimes use a rotated capsule automatically when capsule is chosen.
alpha_threshold: Pixels with alpha strictly greater than this are
opaque. Defaults to 10.
thickness_ratio: A column must have at least this fraction of the
character height to count as core body. Defaults to 0.30, which
filters thin weapons and arms.
project_root: Optional Godot project root directory for resolving
res:// URIs.
Returns:
A JSON-compatible dictionary containing height/top/bottom, filtered
body width and raw width, sprite_offset for the AnimatedSprite2D,
collision_position (feet at origin), shape parameters, and
ready-to-paste sub-resource and CollisionShape2D snippets.
| Name | Required | Description | Default |
|---|---|---|---|
| shape | No | rectangle | |
| frames | Yes | ||
| image_path | Yes | ||
| project_root | No | ||
| alpha_threshold | No | ||
| thickness_ratio | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses the algorithm (overlays alpha masks across all frames, measures full height plus thickness-filtered width), the output alignment ('feet-aligned', 'feet at origin'), and an automatic behavior (wide bodies like slimes get a rotated capsule). It stops short of failure modes beyond the frame-size constraint, so a 4 rather than 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the one-sentence purpose, then cleanly split into Args and Returns. The Returns block restates shape parameters and snippets that partly duplicate the existing output schema, which is the only wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a six-parameter geometry tool with no annotations, the description supplies algorithm, defaults, constraints, per-parameter meaning, and output shape. An output schema exists, so the Returns listing is mild redundancy rather than a gap — nothing an agent needs in order to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must do all the work — and it does, defining all six parameters: a concrete frames example, the two valid shape values (absent from the schema, which has no enum), the 'strictly greater than' alpha semantics, thickness_ratio's meaning and default of 0.30 with the rationale (filters thin weapons/arms), and project_root's role for res:// URIs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb and artifact ('Build a stable single-shape body collider for a moving character') and explicitly positions itself against the sibling extract_collision_polygon by naming which case each serves (moving characters vs static objects). An agent can select between them without reading either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
States 'This is the recommended collision tool for player/enemy movement' and routes static objects to extract_collision_polygon, giving an explicit use/use-instead pair. The constraint that all frames must share width and height is also stated up front.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
build_character_sceneA
Write a complete Godot 4 .tscn character scene with AnimatedSprite2D and feet-aligned body collider.
Args:
project_root: Path to the Godot project directory containing project.godot.
image_path: Path or res:// URI to the spritesheet PNG.
sprite_frames_tres: Path or res:// URI to the generated SpriteFrames .tres resource.
output_tscn: Destination .tscn file path or res:// URI.
collider_frames: Frame regions (typically the idle animation row) used to compute the body collider.
root_name: Root node name in the scene (default: "Character").
root_type: Root node Godot class (default: "CharacterBody2D").
default_animation: Default animation name for the AnimatedSprite2D (default: "idle").
shape: "rectangle" (default) or "capsule".
alpha_threshold: Opaque alpha cutoff 0..255 (default: 10).
thickness_ratio: Minimum vertical column thickness ratio (default: 0.30).
Returns:
Metadata including the written output_tscn path, sprite_frames_res URI, and collider details.
| Name | Required | Description | Default |
|---|---|---|---|
| shape | No | rectangle | |
| root_name | No | Character | |
| root_type | No | CharacterBody2D | |
| image_path | Yes | ||
| output_tscn | Yes | ||
| project_root | Yes | ||
| alpha_threshold | No | ||
| collider_frames | Yes | ||
| thickness_ratio | No | ||
| default_animation | No | idle | |
| sprite_frames_tres | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden for a write operation. It does disclose that it writes a file to output_tscn and returns metadata including the collider details, which is useful. However, it never says whether an existing .tscn is overwritten, what happens if project_root lacks project.godot, or whether validation failures abort the write.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded one-line purpose followed by a clean Args block ordered consistently with the schema. Content is dense and mostly earns its place for an 11-parameter tool. The Returns section is largely redundant with the existing output schema and could be trimmed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a rich output schema available, the description needn't explain return values, and it covers all 11 parameters including defaults. What remains missing for a file-writing scene builder is overwrite semantics and pipeline ordering relative to the sibling tools, but the core invocation details are present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% across 11 parameters, so the description must compensate, and it largely does: every parameter gets a sentence, defaults are restated, and alpha_threshold gains a 0..255 range and thickness_ratio an explicit meaning. The notable gap is collider_frames, described only as 'frame regions' with no indication of the object fields inside that array of objects.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and artifact: writes a complete Godot 4 .tscn character scene containing an AnimatedSprite2D and a feet-aligned body collider. That distinguishes it from build_sprite_frames and build_body_collider, which produce the inputs rather than the assembled scene. It stops short of naming those siblings as prerequisites, so the boundary is inferable rather than explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the parameters reference a 'generated SpriteFrames .tres' and collider frames, hinting that build_sprite_frames and extract_collision_polygon/build_body_collider run first, but no ordering, preconditions, or alternatives are stated. Nothing says when not to use this tool or whether it should be run once per character.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
build_sprite_framesA
Create a Godot 4.x SpriteFrames .tres resource from atlas regions.
This writes a format=3 Godot 4 resource. The image must live inside
project_root because Godot needs a res:// URI. Each animation
becomes an entry in the SpriteFrames animations array, and each frame
becomes an AtlasTexture sub-resource referencing the image.
Args:
project_root: Absolute path to the Godot project directory (the folder
containing project.godot).
image_path: Path to the spritesheet. It may be absolute, relative to
the project root, or already written as res://.... It must be
inside project_root.
animations: List of animation dictionaries. Example:
[{"name": "idle", "fps": 10.0, "loop": True, "frames": [ {"x": 0, "y": 0, "w": 32, "h": 32}, {"x": 32, "y": 0, "w": 32, "h": 32}]}].
Every animation requires a unique name and a frames list.
fps defaults to 10.0 and loop defaults to true. An optional
per-frame duration defaults to 1.0; playback timing is normally
controlled by the animation speed.
output_tres: Destination .tres path. An absolute path or res:// URI
is recommended; a relative path is resolved against
project_root. Parent directories are created automatically.
Returns:
Metadata including the absolute output_tres path, the Godot
texture_path URI, load_steps, animation_count and
frame_count.
| Name | Required | Description | Default |
|---|---|---|---|
| animations | Yes | ||
| image_path | Yes | ||
| output_tres | Yes | ||
| project_root | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses that the output is a format=3 Godot 4 resource, that the image must be inside project_root because Godot requires a res:// URI, that each animation becomes an animations entry and each frame an AtlasTexture sub-resource, and that parent directories are created automatically. It stops short of stating overwrite behavior if the .tres already exists and says nothing about permissions or error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Structure is front-loaded with a one-line summary followed by Args/Returns sections, which makes it scannable. It is somewhat long and the Returns block partly duplicates the output schema, but nearly every sentence carries real information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a four-parameter write tool with no annotations, the description covers purpose, all parameter semantics, path scoping, sub-resource structure, and directory creation. An output schema exists so return values needn't be explained, yet they are — a minor redundancy. The one real gap is what happens when output_tres already exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate entirely, and it does — all four parameters are documented, including a concrete JSON example for the nested animations structure and the defaults for fps (10.0), loop (true), and per-frame duration (1.0). The path-resolution rules for image_path and output_tres (absolute, relative-to-project, or res://) are spelled out rather than left to inference.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence gives a precise verb+resource+target format: 'Create a Godot 4.x SpriteFrames .tres resource from atlas regions.' This is unambiguous and clearly distinct in domain from the sibling tools (inspect_spritesheet, extract_collision_polygon, build_body_collider, build_character_scene), though the description never explicitly names or contrasts with them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage context is implied by the constraints ('The image must live inside project_root', path forms accepted for image_path and output_tres) rather than stated as when-to-use guidance. There is no explicit statement of when to pick this over inspect_spritesheet or build_character_scene, and no exclusions or prerequisites beyond the path-scoping rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
extract_collision_polygonA
Extract a simplified outer collision polygon from opaque pixels.
This optional tool is intended for static objects and irregular scenery. For moving characters and monsters, use build_body_collider instead to get a stable feet-aligned RectangleShape2D or CapsuleShape2D.
The largest external alpha contour is traced and simplified with the Ramer-Douglas-Peucker algorithm. The result is a simple clockwise polygon with at most 24 vertices, suitable for a CollisionPolygon2D.
Args:
image_path: Absolute path, relative path, or res:// URI to a PNG.
region: Optional sub-region {"x": int, "y": int, "w": int, "h": int}
in image pixels. When omitted, the whole image is used. Returned
coordinates are relative to this region's top-left corner.
epsilon: RDP simplification tolerance in pixels. Defaults to 2.0.
Larger values produce fewer vertices. If necessary the tolerance
is increased internally to keep the polygon at or below 24
vertices.
centered: When true (the default, matching Godot 4 Sprite2D), every
point is shifted so the coordinate origin is the image/region
centre. For a region of size w x h the conversion is
x - w / 2 and y - h / 2. Set to false to keep pixel-space
coordinates with a top-left origin.
project_root: Optional Godot project root directory for resolving
res:// URIs.
Returns:
A dictionary with points (list of [x, y]), vertex_count,
packed_vector2_array (Godot text such as
PackedVector2Array(0.0, -16.0, ...)) and tscn_snippet (a
CollisionPolygon2D node block ready to paste into a .tscn file).
| Name | Required | Description | Default |
|---|---|---|---|
| region | No | ||
| epsilon | No | ||
| centered | No | ||
| image_path | Yes | ||
| project_root | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses the tracing algorithm (RDP), the clockwise winding, the hard 24-vertex cap and the internal tolerance escalation needed to enforce it. It does not say what happens on failure paths (missing file, no opaque pixels/alpha channel), which is the main remaining gap for a file-reading tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and the sibling alternative are front-loaded in the first three lines, then Args/Returns sections follow a predictable structure. It is on the long side, but every sentence adds either routing guidance or coordinate semantics; only the Returns block partially duplicates the output schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a five-parameter computation tool with an output schema, the definition covers inputs, coordinate conventions, algorithmic limits and output shape. Missing only error/edge-case behavior (empty alpha, invalid path) and any note on cost for large images, which keeps it just short of complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it documents all five parameters in detail: path forms accepted for image_path, the region dictionary shape and that returned coordinates are region-relative, epsilon as RDP tolerance with larger-means-fewer behavior, the centered offset math (x - w/2, y - h/2), and project_root's role for res:// resolution. This is meaning well beyond anything the schema conveys.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Extract a simplified outer collision polygon from opaque pixels') and immediately scopes it to static objects and irregular scenery. It also names the sibling build_body_collider and the condition that selects it, so the tool is distinguishable from alternatives without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says when to use this tool ('static objects and irregular scenery') and when not to ('moving characters and monsters'), pointing to build_body_collider as the alternative with the reason (stable feet-aligned RectangleShape2D or CapsuleShape2D). Nothing is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
inspect_spritesheetA
Inspect a PNG spritesheet and return frame rectangles.
Use this tool before building animations when you need to discover the
frame layout of a spritesheet. The alpha channel is analysed; pixels with
alpha strictly greater than alpha_threshold count as opaque.
Args:
image_path: Absolute path, relative path, or res://... URI to the
source PNG.
alpha_threshold: Opaque-pixel cutoff in the inclusive range 0..255.
Defaults to 10, so nearly transparent antialiasing is ignored.
mode: Detection strategy:
"grid" finds fully transparent horizontal/vertical separator lines,
"islands" finds 8-connected opaque islands and their tight bounding
boxes, and "auto" tries "grid" first and falls back to "islands"
when cell sizes are not uniform.
project_root: Optional Godot project root directory used to resolve
res:// URIs or relative paths.
Returns:
A JSON-compatible dictionary with image_width, image_height,
the detected mode, frame_count, and frames. Every frame is
{"id": int, "x": int, "y": int, "w": int, "h": int, "pivot_bottom_center": [float, float]}. Frames are ordered top to
bottom (row-clustered), then left to right.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | auto | |
| image_path | Yes | ||
| project_root | No | ||
| alpha_threshold | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full behavioral burden. It describes the analysis method (alpha channel, threshold semantics, mode fallback), which is helpful, but does not explicitly state that the tool is read-only or non-destructive. An agent might infer safety from 'Inspect', but it is not confirmed, which is a notable gap without annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a summary, usage note, Args, and Returns sections, and is front-loaded with the core purpose. It is efficient, though the Returns section redundantly re-describes the output schema, adding some unnecessary length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a 4-parameter tool with an output schema, the description covers parameter semantics, usage context, and return structure thoroughly. It lacks only an explicit safety/read-only statement, which is minor given the inspection nature and the presence of the output schema for return details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description compensates fully by explaining all four parameters: image_path (accepted path forms), alpha_threshold (range, default, effect), mode (values and fallback behavior), and project_root (purpose for resolving URIs). Each parameter gains meaning beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (inspect) and resource (PNG spritesheet) with the output (frame rectangles). It distinguishes itself from animation-building siblings by saying 'Use this tool before building animations,' but does not explicitly name the alternative tool, so an agent must infer the distinction from context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear context for use: 'before building animations when you need to discover the frame layout of a spritesheet.' It does not explicitly state when not to use this tool or name the sibling it should be used instead of, leaving some inference required.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
5 tool updates
v0.1.0- First observed
build_body_collider - First observed
build_character_scene - First observed
build_sprite_frames - First observed
extract_collision_polygon - First observed
inspect_spritesheet
TDQS
Scored across 5 tools
Each tool targets a distinct stage of the pipeline (inspection, frame resource, collider, scene assembly), and the descriptions explicitly resolve the one real overlap by steering static objects to extract_collision_polygon and moving characters to build_body_collider. The only residual ambiguity is that build_character_scene composites the work of build_sprite_frames and build_body_collider, so an agent could pick the composite when it wanted just a sub-artifact.
All five names are snake_case verb_noun pairs (inspect_spritesheet, extract_collision_polygon, build_sprite_frames, build_body_collider, build_character_scene). The verb choice is semantically meaningful: 'inspect' for the read-only analysis tool, 'build' for the generators.
Five tools map cleanly onto a linear asset pipeline with no filler or redundancy. Every tool has an identifiable role and there is no thin one-tool surface nor a bloated menu.
The core workflow (discover frames -> SpriteFrames resource -> collider -> full character scene) is fully covered end to end. Minor gaps exist: no tool to read/validate or amend an existing .tres/.tscn, no TileSet or non-character sprite output, and no way to re-inspect previously generated assets.
Maintenance
Related MCP Connectors
Generate game sprite sheets and animations from an image, and clean up sprite backgrounds.
Create AI animations and export transparent sprite sheets, alpha video, frames, and game assets.
AI game assets for agents: consistent sprites, 2D animations, tiles, maps, music and engine exports.
Gamedev tools for AI agents: level design, renders, sprites, GLB optimizer. Pay per call with x402.
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceEnables any MCP-compatible AI agent to programmatically create, edit, import/export spritesheets, and save .pxo projects in Pixelorama via a Godot extension and file-queue transport.-
- AlicenseBqualityCmaintenanceEnables AI agents to procedurally design and render stylized 2:1 dimetric isometric game assets in Blender, including NPR cel-shaded scenes, modular tilesets, 8-angle avatar turnarounds, and mathematically exact subpixel collision diamonds, with turnkey engine manifests for Phaser, Godot 4, and retro web games.10Apache 2.0
- AlicenseNot gradedqualityCmaintenanceConverts a single character image into game-ready 2D sprite animations (walk, run, idle, attack, etc.) with transparent frames, sprite sheets, and metadata, usable from AI coding agents.MIT
- AlicenseAqualityAmaintenanceEnables users to create character spritesheets from natural-language requests, preview animations, search clothing and tool items, and export engine-ready assets for Godot, Unity, and web.1159 PyPI1MIT