ssyubix-pixelart-mcp

io.github.syuaibsyuaib由 GitHub 账号 syuaibsyuaib 发布v0.1.1更新于 Oct 24, 2026

Draw pixel-art tiles and tilesets for 2D games, with PNG+metadata export for Unity.

已验证STDIO仅桌面开发者工具媒体与设计

概览

AI 生成的概览

让助手绘制 2D 游戏的像素画图块与图块集,并导出带 JSON 元数据的 PNG 供 Unity 使用。

可以做什么
这是一个本地 Python MCP 服务器,提供 24 个像素绘制与图块集组装工具。它可创建和编辑画布,支持设置像素、直线、矩形、圆形、多边形和填充等基本操作,并管理画布、生成或提取调色板、建议图块尺寸与图块地图布局。图块集工具可创建网格图集、把图块放入槽位,并导出 PNG 与 JSON 元数据(图块尺寸、网格、PPU)以便导入 Unity。
适用场景
适合让助手制作像素风游戏素材:单个图块、图块集图集或完整图块地图布局。它设计为与 Unity MCP 服务器配合使用,以便自动切割并导入导出的图集;若没有该服务器,则需手动导入 PNG 与 JSON。
运行要求
以 Python 包形式通过 stdio 在本地运行,可从 PyPI 或源码安装;清单未声明认证、环境变量或请求头。仅限桌面端,不能在网页中执行。导入 Unity 需要 Unity 项目,若要自动切割还需另一个 Unity MCP 服务器。
安装前请注意
该服务器会把导出的 PNG 和 JSON 文件写入磁盘,并可删除画布与图块集。它在技术上不依赖 Unity MCP 服务器,但没有它时导出结果需手动导入 Unity。未声明需要凭据、付款或向第三方共享数据。

安装

在 SourceWeft 中

  1. 打开 控制台中的 ssyubix-pixelart-mcp,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

ssyubix-pixelart-mcp

[GitHub Downloads] [PyPI Downloads] [Python]

MCP server (Python) for drawing pixel art and assembling 2D game tilesets. Built with MCP Python SDK v1.x (stable), stdio transport, designed to be used alongside unity-mcp-server in a single agent session.

Installation

From PyPI:

bash
pip install ssyubix-pixelart-mcp

Or from source:

bash
git clone https://github.com/syuaibsyuaib/ssyubix-pixelart-mcpcd ssyubix-pixelart-mcppython3 -m venv venvsource venv/bin/activate   # Windows: venv\Scripts\activatepip install -e .

Running

bash
python -m pixelart_mcp.server# or, if installed from PyPI:ssyubix-pixelart-mcp

Connecting to Claude Desktop / Claude Code

Add to claude_desktop_config.json (Claude Desktop) or via claude mcp add (Claude Code):

json
{  "mcpServers": {    "pixelart": {      "command": "/path/to/ssyubix-pixelart-mcp/venv/bin/python",      "args": ["-m", "pixelart_mcp.server"]    }  }}

Tools List (24)

Drawing

  • pixelart_create_canvas, pixelart_import_canvas, pixelart_set_pixel, pixelart_draw_line, pixelart_draw_rect, pixelart_draw_circle, pixelart_draw_polygon, pixelart_flood_fill

Canvas Management

  • pixelart_clear_canvas, pixelart_flip_canvas, pixelart_duplicate_canvas, pixelart_get_canvas_info, pixelart_get_canvas_preview, pixelart_delete_canvas, pixelart_list_canvases

Color Palette

  • pixelart_generate_palette, pixelart_extract_palette

Size Suggestion

  • pixelart_suggest_tile_size, pixelart_suggest_tilemap_layout

Tileset

  • pixelart_create_tileset, pixelart_set_tile, pixelart_export_tileset, pixelart_delete_tileset, pixelart_list_tilesets

Terminology: Tile vs Tileset vs Tilemap

These are easy to conflate and doing so produces broken/tiny output — a real bug that happened in production: an agent asked for a "tilemap" got back a single 32x32 canvas (that's a tile size) and shipped it as the whole map, which looked broken when used at real scale.

  • Tile: one small square (e.g. 16x16px) — pixelart_create_canvas.
  • Tileset: a sheet of many distinct tiles arranged in a grid (e.g. grass, path, water tile types) — pixelart_create_tileset + pixelart_set_tile + pixelart_export_tileset.
  • Tilemap: a full level/map, composed of many tiles placed across a grid (built the same way as a tileset, but every slot is filled to represent the actual level layout) — never a single tile-sized canvas.

Typical Workflow

For a single asset/tile:

  1. pixelart_suggest_tile_size (optional) — ask for ideal tile size based on object category or screen resolution.
  2. pixelart_generate_palette — create color palette according to style/mood.
  3. pixelart_create_canvas → pixelart_set_pixel / draw_line / draw_rect / draw_circle / flood_fill — draw a single tile.
  4. pixelart_get_canvas_preview — view the result (upscaled PNG) before proceeding.

For a tileset or a full tilemap/level: 5. pixelart_suggest_tilemap_layout — get the grid (columns/rows) and total pixel size needed, from either an explicit tile count or a target screen/level size. 6. pixelart_create_tileset with that grid → pixelart_set_tile for every slot → pixelart_export_tileset. 7. The result of export_tileset is PNG + JSON metadata (tile size, grid, PPU) — the agent can then call unity-mcp-server tools to slice/import into a Unity project.

Running Tests

bash
sh claude_tools/run_tests.sh

Structure

pixelart_mcp/  server.py      # entry point, registers 23 tools  canvas.py       # pixel drawing primitives  palette.py      # palette generator  sizing.py       # tile size heuristics  tileset.py      # tileset assembly & export  models.py       # Pydantic input models  tests/          # 58 unit testsclaude_tools/     # helper script (dump schema, run tests)task.md           # status & work notesPUBLISHING.md      # guide to publish to PyPI & official MCP Registry

If unity-mcp-server is Not Available

pixelart_mcp is not technically dependent on unity-mcp-server — all tools above work fully without it. The difference is only in the final step: without unity-mcp-server, the result of pixelart_export_tileset (PNG + JSON metadata) must be imported manually into Unity Editor. Here are the steps (based on official Unity Manual), to guide an AI when helping a non-technical user:

  1. Copy the exported PNG file to the Assets folder (or a subfolder like Assets/Sprites) within your Unity project.
  2. In the Project window, click on the PNG file. In the Inspector panel:
    • Texture Type → Sprite (2D and UI)
    • Sprite Mode → Multiple (because it contains many tiles in one sheet)
    • Pixels Per Unit → enter the ppu value from the JSON metadata file
    • Filter Mode → Point (no filter) — to keep pixel art sharp, not blurred
    • Compression → None — to prevent color corruption
    • Click Apply.
  3. Click the Sprite Editor button in the Inspector to open the Sprite Editor.
  4. In the Sprite Editor, click the Slice dropdown, select Grid By Cell Size, then enter the Pixel Size with tile_width x tile_height from the JSON metadata.
  5. Click Slice, then click Apply in the Sprite Editor toolbar.
  6. Done — each tile is now a separate sprite that can be dragged directly into the Scene or used in a Tilemap.

All required values (tile_width, tile_height, ppu) are automatically available in the .json file generated by pixelart_export_tileset — the AI does not need to calculate them, just read them and guide the user through the steps above.

For AI Agents Maintaining/Developing This Project

Read AGENTS.md first — it contains the architecture map, mandatory conventions, checklist for adding new tools, and the workflow for handling user feedback/feature requests.

License

Apache License 2.0 — see LICENSE and NOTICE files.

Publishing to PyPI & MCP Registry

See PUBLISHING.md for complete guide (exact commands, requires personal credentials — PyPI token & GitHub OAuth login).

SDK Version Notes

This server is built on top of v1.x MCP Python SDK (stable, recommended for production). SDK v2 is still pre-release as of July 2026 — not used here per policy of "only stable/current official references".

来源:README.md,提交 c92482f

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v0.1.1最新Sep 16, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分