PixelForge MCP
Exports indexed PNG sprites and .gpl palette files for direct import and editing in Aseprite, supporting palette lock and indexed output.
Exports palettes in .gpl format for direct import into GIMP for further editing.
Exports palettes in .hex format compatible with Lospec for sharing and importing into pixel art tools.
Provides cutout skeletal rigging and animation assembly compatible with Spine/DragonBones/Godot cutout workflows, including rig kit export and pose synthesis.
Click on "Install 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., "@PixelForge MCPpixelize this character art to 32px with the studio palette"
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.
PixelForge MCP
AI 생성 일러스트를 인게임 도트 스프라이트로 변환하는 파이프라인을 MCP(Model Context Protocol) 서버로 노출한 도구입니다. Claude·Cursor 같은 AI 에이전트가 Tool-use 로 직접 호출해, 배경제거 → 픽셀화 → 팔레트 통일 → 아웃라인 → 스프라이트시트 패킹을 자동화합니다.
여러 게임/앱 프로젝트에서 손으로 반복하던 "AI 일러 → 도트 스프라이트" 작업을 재사용 가능한 MCP 툴로 코드화한 것입니다. 아트 파이프라인 자동화 = TA(테크니컬 아트) 업무의 핵심 반복작업입니다.
![]()
왼쪽부터: 입력 일러스트(1024px) · 32px 스프라이트 · 64px 스프라이트+selout 아웃라인 · 2프레임 스프라이트시트. 전부 동일 배율 nearest 업스케일. uv run python examples/demo.py 로 재생성.
스튜디오 워크플로우: 캐릭터셋을 잠긴 공통 팔레트로 통일
![]()
위 = 캐릭터별 독립 팔레트(제각각) · 아래 = 잠긴 20색 공통 팔레트로 통일(인덱스 PNG 출력) · 맨 아래 = Aseprite 로 임포트되는 실제 .gpl 팔레트. build_palette 로 키아트에서 프로젝트 팔레트를 뽑아 batch_pixelize 에 넘기면 모든 에셋이 정확히 같은 색을 공유한다. 아트 코히어런스 = TA 자동화의 실제 가치. uv run python examples/palette_workflow.py 로 재생성.
애니메이션 — 컷아웃 스켈레탈 리깅 (진짜 프레임 애니)
*캐릭터를 파트(몸통·머리·상완·하완·허벅지·정강이)로 나눠 부모-자식 관절 트리(FK)에 붙이고, 관절 회전을 키프레임으로 돌려 프레임마다 서로 다른 포즈를 합성한다 — Spine/DragonBones/Godot Cutout 방식. 2관절 팔다리라 무릎·팔꿈치가 굽는 진짜 gait(걷기·달리기·펀치). 한 장을 흔드는 워프가 아님. 결정적·오프라인. uv run python examples/rig_demo.py 로 재생성.*
리그 킷(계약서) — 리깅용 아트를 규격에 맞게 뽑기. 사후에 완성 스프라이트를 자르는 건 항상 타협이라, 처음부터 리깅용으로 그리는 게 정답. export_rig_kit 은 배치 가이드 + 파츠별 생성 프롬프트 + rig.json 을 뱉는다. 아티스트/AI 가 이 규격(슬롯·크기·피벗)에 맞춰 아트만 그리거나 생성해 PNG 를 교체하면 animate_rig 이 walk/run/idle/punch 를 자동 렌더한다.
배치 가이드: 각 파츠 슬롯의 위치·크기 + 피벗(빨간 점). 이 규격대로 그리면 리그가 자동으로 물린다.
프레임 조립 — 포즈 프레임이 이미 있으면(아티스트·AI 생성) assemble_animation 이 N 프레임을 공통 스케일·단일 팔레트로 맞춰(깜빡임 방지) 스프라이트시트+타이밍JSON+GIF 로 조립한다. pixelize=False 면 이미 도트인 프레임을 색 보존해 팩만.
절차적 juice(보조) — animate 는 정적 스프라이트 한 장에 결정적 변형(bob/breathe/sway/hop/pulse)을 얹어 가벼운 idle 움직임을 만든다. 진짜 캐릭터 애니가 아니라 살아있는 느낌용 보조 툴.
왜 MCP 인가
같은 PIL 스크립트를 매번 복붙하는 대신 MCP 서버로 만들면, AI 에이전트가 대화 중에 직접 "이 일러스트 64px 도트로 만들고, 프로젝트 팔레트로 통일해서 8프레임 시트로 묶어줘" 같은 요청을 툴 호출로 수행합니다. 에이전트 워크플로우 안에서 아트 파이프라인이 한 단계로 흡수됩니다.
Related MCP server: aseprite-mcp
품질이 어디서 나오나 (naive resize 와의 차이)
픽셀화의 품질은 다운스케일을 어떻게 하느냐에서 갈립니다. img.resize() 한 줄로는 색이 탁해지고 가장자리에 검은 띠가 낍니다. PixelForge 는:
감마보정 선형광 다운스케일 — sRGB 를 선형광으로 디코드한 뒤 리샘플. sRGB 값을 그대로 평균하면 색이 어두워지고 머디해지는 문제를 제거.
프리멀티플라이 알파 리샘플 — 투명 영역이 피사체 가장자리 색을 오염시키지 않게, 알파를 곱한 뒤 리샘플하고 나눠서 복원.
OKLab k-means 팔레트 — MEDIANCUT/FASTOCTREE 보다 지각적으로 정확한 팔레트. 색 램프(shadow→mid→highlight)가 뚜렷해져 '축소한 일러'가 아니라 '도트 스프라이트'로 읽힌다. (테스트로 median-cut 대비 OKLab 오차가 낮음을 검증)
실루엣 정리 — 리샘플이 남기는 튀는 픽셀·가시·1px 구멍을 despeckle/hole-fill 로 제거. 깨끗한 실루엣이 픽셀아트의 핵심.
하드 알파 + selout 아웃라인 — 반투명 가장자리는 칼같이. selout(선택적 아웃라인)은 각 테두리 픽셀을 맞닿은 실루엣 색을 어둡게(OKLab 명도만 낮춤) 칠해, 균일 검정보다 훨씬 프로다운 결과를 낸다.
Bayer 정렬 디더(옵션) — 필요 시 밴딩을 규칙적 패턴으로 완화. FS 오차확산 같은 컨페티가 아니라 의도된 디더. 스프라이트 스케일에선 보통 off.
OKLab 팔레트 스냅 — 큐레이션/추출 팔레트로 여러 에셋을 통일(코히어런스). OKLab 거리라 색상 드리프트 없음.
스튜디오 연동
실제 도트 스튜디오 파이프라인(Aseprite·게임 엔진)에 그대로 들어가도록:
인덱스 컬러 PNG 출력(
indexed=True) — 픽셀아트 표준 형식. Aseprite 에서 바로 열어 편집·팔레트 스왑 가능, 용량 작음, 인덱스 0 = 투명.팔레트 파일 export —
.gpl(GIMP/Aseprite)·.hex(lospec)·스와치 PNG.잠긴 공통 팔레트(
build_palette→palette=인자) — 캐릭터 키아트에서 프로젝트 팔레트를 뽑아 전체 에셋셋에 강제. 수백 개 에셋의 색 일관성을 자동 유지.스프라이트시트 + JSON 메타데이터 — 프레임 좌표를 엔진 임포트용으로 함께 출력.
제공 툴 (18종)
툴 | 하는 일 |
| 일러 → 고품질 도트 스프라이트 (감마보정 다운스케일 + OKLab k-means + 실루엣 정리 + selout 아웃라인, 옵션: 팔레트 잠금·인덱스 PNG·업스케일) |
| 컷아웃 스켈레탈 리그로 진짜 프레임 애니 (걷기/공격 등 실제 팔다리 움직임) → 프레임+시트+타이밍JSON+GIF |
| 빌트인 2족 리그(파트+스켈레톤+walk/idle/wave)를 저장 (저작 시작 템플릿) |
| 리깅용 아트 제작 킷 — 배치 가이드 + 파츠 생성 프롬프트 + rig.json (규격에 맞춰 아트만 뽑으면 리그 자동) |
| 여러 포즈 프레임 → 공유 팔레트·공통 스케일로 애니 조립 (시트+GIF) |
| 정적 스프라이트에 절차적 juice (bob/breathe/sway/hop/pulse) — idle 보조용 |
| 절차적 juice 모션 목록/설명 |
| 2프레임 애니를 공통 스케일·공유 팔레트로 함께 도트화 (깜빡임 방지) |
| 네 모서리 flood fill 로 단색/오프화이트 배경 투명화 (배경제거 모델 폴백) |
| 투명 여백을 잘라 피사체만 남김 |
| 여러 프레임을 균일 격자 시트로 패킹 + 프레임 좌표 JSON(엔진 임포트용) |
| 여러 키아트에서 잠긴 공통 팔레트 생성 → |
| 단일 이미지 팔레트를 |
| 해상도 유지한 채 색 수만 축소 |
| 이미지에서 대표 팔레트(헥스) 추출 + 스와치 PNG |
| 큐레이션 팔레트로 스냅 (아트 코히어런스) |
| 내장 팔레트 목록 (pico8 / sweetie16 / db16 / edg32) |
| 폴더 전체를 동일/잠긴 팔레트로 일괄 픽셀화 (인덱스 PNG 지원) |
설치 & 실행
uv sync # 의존성 설치 (mcp, pillow, numpy)
uv run --extra dev pytest -q # 테스트 38종
uv run pixelforge-mcp # MCP 서버 실행 (stdio)Claude Desktop / Claude Code 에 등록
{
"mcpServers": {
"pixelforge": {
"command": "uv",
"args": ["--directory", "/absolute/path/to/pixelforge-mcp", "run", "pixelforge-mcp"]
}
}
}등록 후:
~/art/dragon.png배경 제거하고 56px 도트로 만들어줘. 아웃라인 넣고, idle 프레임dragon_b.png도 같이 페어로 도트화해서 스프라이트시트 + 메타데이터로 묶어줘.
에이전트가 remove_background → pixelize_pair → build_spritesheet 를 순서대로 호출합니다.
설계
color.py— 색 공간/리샘플링 코어 (감마, 프리멀티플라이 리샘플, OKLab, k-means 양자화, 실루엣 정리, selout 아웃라인, 팔레트 추출/스냅). 품질의 핵심.palettes.py— 큐레이션 레트로 팔레트 (PICO-8 / Sweetie16 / DB16 / EDG32).export.py— 인덱스 PNG /.gpl/.hex/ 스와치 export, 팔레트 스펙 해석.rig.py— 컷아웃 스켈레탈 애니 엔진(FK 관절 트리 + 키프레임 + 파트 회전 합성) + 빌트인 템플릿(2관절 휴머노이드/단순 2족) + 배치 가이드·프롬프트 생성.animate.py— 절차적 juice 리그(bob/breathe/sway/wave/hop/pulse) + 루프 GIF 렌더.pipeline.py— 위를 조합한 순수 함수 (MCP 비의존, 단위 테스트 대상).server.py— FastMCP 로 파이프라인을 툴로 노출하는 얇은 래퍼.
코어/파이프라인/서버 분리 덕분에 MCP 런타임 없이 직접 실행·테스트할 수 있고, CLI·CI 에서도 재사용됩니다. 테스트 38종(색 왕복, k-means vs median-cut 오차, 실루엣 정리, 인덱스 PNG 왕복, 잠긴 팔레트 배치 일관성, 애니 프레임/GIF/타이밍, 컷아웃 2관절 워크/런 등)으로 커버.
라이선스
MIT. 내장 팔레트는 각 커뮤니티 표준(퍼블릭/CC0).
Available Tools
18 toolsanimateA
정적 이미지 한 장에서 절차적 루프 애니를 자동 생성(추가 아트 불필요).
개별 프레임 PNG + 스프라이트시트 + 타이밍 JSON + 루프 GIF 미리보기를 출력.
Args: src: 입력 이미지(일러 또는 이미 픽셀화된 스프라이트). out_dir: 출력 폴더(자동 생성). motion: breathe/bob/float/sway/wave/hop/pulse (list_motions 로 확인). frames: 프레임 수. amplitude: 모션 강도(px 단위 기준). fps: GIF/애니 프레임레이트. target_height: (pixelize_first 시) 도트 높이. colors: (pixelize_first 시) 팔레트 색 수. outline: selout 아웃라인 여부. pixelize_first: True 면 원본을 먼저 도트화 후 리깅(1024px 일러 → 애니 한 번에). palette: 잠긴 팔레트(builtin 또는 .gpl/.hex 경로). indexed: 프레임을 인덱스 PNG 로 저장. gif: 루프 GIF 미리보기 생성 여부. gif_upscale: GIF nearest 업스케일 배율.
| Name | Required | Description | Default |
|---|---|---|---|
| fps | No | ||
| gif | No | ||
| src | Yes | ||
| colors | No | ||
| frames | No | ||
| motion | No | breathe | |
| indexed | No | ||
| out_dir | Yes | ||
| outline | No | ||
| palette | No | ||
| amplitude | No | ||
| gif_upscale | No | ||
| target_height | No | ||
| pixelize_first | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses outputs (PNG frames, spritesheet, timing JSON, GIF) and explains the 'pixelize_first' workflow. However, it does not mention error conditions, performance considerations, or permission requirements.
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 clear purpose, output list, and argument list. It is concise and front-loaded, but the argument list could be slightly trimmed if redundant with 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?
Given 14 parameters, 2 required, and no output schema, the description covers core behavior and output formats. However, it lacks explicit links to sibling tools (e.g., when to use 'list_motions' for valid motion values) and does not detail the output JSON structure or spritesheet layout.
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 lists each argument with brief explanations (e.g., 'motion: breathe/bob/float..., amplitude: motion strength in px'). This adds meaning beyond the schema's raw keys and defaults, though some parameter details remain implied (e.g., 'out_dir' auto-created).
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 clearly states it automatically generates procedural loop animation from a static image without additional art, listing outputs and key parameters. It distinguishes from sibling tools like 'animate_rig' by implying this tool works directly on images.
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?
The description mentions 'pixelize_first' for converting illustrations before rigging, but does not explicitly state when to use this tool versus siblings like 'animate_rig' or 'batch_pixelize'. Usage context is implied but not directed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
animate_rigA
컷아웃 스켈레탈 리그로 진짜 프레임별 포즈 애니를 렌더(걷기/공격 등 실제 팔다리 움직임).
파트(몸통·팔·다리)를 뼈에 붙여 관절 회전을 키프레임으로 돌린 프레임들을 합성 → 개별 PNG + 스프라이트시트 + 타이밍 JSON + 루프 GIF. 절차적 워프가 아닌 진짜 애니.
Args: rig: rig.json 경로, 또는 빌트인 "humanoid"(2관절 walk/run/idle/punch) / "biped"(walk/idle/wave). out_dir: 출력 폴더. clip: 클립 이름. frames: 렌더할 프레임 수. fps: 프레임레이트(0이면 클립 기본값). palette: 잠긴 팔레트(builtin 또는 .gpl/.hex 경로). indexed: 인덱스 PNG 저장 여부. gif: 루프 GIF 생성 여부. gif_upscale: GIF 업스케일 배율.
| Name | Required | Description | Default |
|---|---|---|---|
| fps | No | ||
| gif | No | ||
| rig | Yes | ||
| clip | No | walk | |
| frames | No | ||
| indexed | No | ||
| out_dir | Yes | ||
| palette | No | ||
| gif_upscale | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description details the animation process (attaching parts to bones, keyframing, compositing) and outputs, clarifying it is 'real animation' not procedural. With no annotations provided, this disclosure is valuable, though it omits potential side effects or resource requirements.
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 concise first paragraph explaining the concept, followed by a bullet list of outputs and then parameter descriptions. It is slightly long but front-loaded and organized, making it easy to parse.
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 tool with 9 parameters, no output schema, and no annotations, the description is quite complete: it explains the process, outputs, and every parameter. However, it lacks information on return values or error handling, which would be helpful for full contextual completeness.
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?
The description provides comprehensive explanations for all 9 parameters in the 'Args' section, including allowed values (e.g., 'humanoid' for rig, default clip 'walk'). Since schema coverage is 0%, this adds critical meaning beyond the schema's titles and defaults.
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 clearly states the tool's function: rendering frame-by-frame pose animation using a cutout skeletal rig, producing individual PNGs, spritesheet, timing JSON, and loop GIF. It distinguishes from procedural warp, making the purpose unambiguous.
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?
The description mentions built-in rigs (humanoid, biped) and their animations, implying use cases, but does not explicitly state when to use this tool versus siblings like 'animate' or 'assemble_animation'. Usage guidance is only implicit via the parameter details.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
assemble_animationA
여러 포즈 프레임(아티스트/AI 생성)을 공유 팔레트로 애니로 조립.
N 프레임을 공통 정렬·단일 팔레트로 맞춰(깜빡임 방지) 스프라이트시트 + 타이밍 JSON + 루프 GIF 로 출력.
Args: frame_sources: 포즈 프레임 이미지 경로 리스트(순서 = 재생 순서). out_dir: 출력 폴더. fps: 프레임레이트. target_height: (pixelize 시) 도트 높이. colors: (pixelize 시) 공유 팔레트 색 수. outline: (pixelize 시) selout 아웃라인 여부. indexed: 인덱스 PNG 저장 여부. gif: 루프 GIF 생성 여부. gif_upscale: GIF 업스케일 배율. pixelize: True=일러 프레임 픽셀화 조립 / False=이미 도트인 프레임을 원해상도로 정렬·팩만. palette: 잠긴 팔레트(builtin 또는 .gpl/.hex). 지정 시 그 팔레트로 통일.
| Name | Required | Description | Default |
|---|---|---|---|
| fps | No | ||
| gif | No | ||
| colors | No | ||
| indexed | No | ||
| out_dir | Yes | ||
| outline | No | ||
| palette | No | ||
| pixelize | No | ||
| gif_upscale | No | ||
| frame_sources | Yes | ||
| target_height | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It reveals key behaviors: flicker prevention, shared palette enforcement, output generation (spritesheet, timing JSON, GIF). It does not mention potential destructive actions (e.g., overwriting files), but the tool appears to be non-destructive (outputs to out_dir). This is adequate transparency for a creation 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?
The description is well-structured with a brief intro followed by an enumerated parameter list. It is front-loaded with the core purpose. However, the parameter list is somewhat verbose (11 items) and could be more concise by grouping related parameters. Still, it is clear and usable.
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 tool with 11 parameters, no output schema, and no annotations, the description covers the main functionality, parameter roles, and output types. It mentions sprite sheet, timing JSON, and loop GIF. However, it does not describe the return value (if any) or error conditions. Overall, it is fairly complete for an animation assembly tool.
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 description must add value. The Args section provides Korean explanations for each parameter, but they are often minimal (e.g., 'out_dir: 출력 폴더'). Some parameters like 'colors' and 'pixelize' get more meaningful descriptions. Overall, it compensates for missing schema descriptions but does not fully elaborate on parameter constraints or relationships.
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?
Description clearly states it assembles pose frames into an animation with shared palette, outputting spritesheet, timing JSON, and loop GIF. It specifies inputs (multiple frames) and processing (alignment, shared palette, flicker prevention). However, it does not explicitly distinguish itself from sibling tools like 'animate' or 'build_spritesheet', leaving some ambiguity.
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?
The description explains the two modes (pixelize=True/False) and what they do, but it lacks explicit guidance on when to use this tool versus alternatives. For example, it doesn't state when to prefer this over 'animate' or 'batch_pixelize'. The usage context is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autocropB
투명 여백을 잘라 피사체만 남긴다.
Args: src: 입력 이미지 경로(PNG 권장). dst: 출력 경로. padding: 잘라낸 뒤 사방에 남길 여백 픽셀.
| Name | Required | Description | Default |
|---|---|---|---|
| dst | Yes | ||
| src | Yes | ||
| padding | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits beyond the basic operation. Missing details include whether the image is modified in-place, file format requirements beyond recommendation, and error handling behavior.
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 concise with a clear purpose sentence followed by structured argument listing. Every sentence adds value without redundancy.
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 no annotations or output schema, the description is minimally adequate but lacks details on return values, preconditions (e.g., transparent background), and potential side effects. It covers the core operation but leaves gaps.
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?
With 0% schema description coverage, the description explicitly explains each parameter: src and dst as paths (PNG recommended for src), and padding as margin pixels. This adds meaningful context beyond the parameter names.
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 clearly states the tool's purpose: cutting transparent margins to leave only the subject. However, it does not differentiate from sibling tools like 'remove_background' or 'batch_pixelize', which may have overlapping functionality.
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?
The description provides no guidance on when to use this tool versus alternatives. It lacks context about prerequisites, suitable scenarios, or when NOT to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
batch_pixelizeA
폴더 전체를 동일 설정으로 픽셀화(아트 일관성 일괄 적용).
palette 에 잠긴 팔레트(.gpl/.hex/builtin)를 주면 캐릭터셋 전체가 정확히 같은 색을 공유한다 — 스튜디오 에셋 일관성의 정석.
Args: src_dir: 입력 폴더. dst_dir: 출력 폴더(자동 생성). pattern: 파일 글롭 패턴. target_height: 도트 높이(px). colors: 팔레트 색 수(palette 미지정 시). outline: 아웃라인 추가 여부. palette: 잠긴 공통 팔레트(builtin 이름 또는 .gpl/.hex 경로). indexed: 인덱스 컬러 PNG 로 저장.
| Name | Required | Description | Default |
|---|---|---|---|
| colors | No | ||
| dst_dir | Yes | ||
| indexed | No | ||
| outline | No | ||
| palette | No | ||
| pattern | No | *.png | |
| src_dir | Yes | ||
| target_height | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavior. It mentions dst_dir is auto-created, but does not state whether the operation is read-only, if source files are modified, or side effects. For a batch mutation tool, this is insufficient.
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 structured with a Korean purpose paragraph followed by an English Args list. It is reasonably concise, though the initial sentence is somewhat long. Overall efficient with minimal redundancy.
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?
The description covers the batch nature and palette consistency, but lacks information about return values, output format, or error handling. Since no output schema exists, more detail on what the tool returns would improve completeness.
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?
With 0% schema description coverage, the description adds meaning for all 8 parameters via the Args block, e.g., clarifying that colors is used only if palette is unspecified, and explaining palette formats. This goes beyond the 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?
The description clearly states it pixelizes an entire folder with uniform settings, using specific verb 'batch pixelize' and resource 'folder'. It implies distinction from sibling 'pixelize' which likely handles single images, and adds context about art consistency with palette.
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?
While the description suggests use for batch processing with uniform settings, it does not explicitly state when not to use or mention alternatives like pixelize or pixelize_pair. Usage context is implied but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
build_paletteA
여러 레퍼런스에서 잠긴 공통 팔레트를 만들어 .gpl/.hex 로 저장(OKLab k-means).
캐릭터 키아트 몇 장 → 프로젝트 팔레트 파일. 그 파일을 pixelize/batch_pixelize 의 palette 인자로 넘겨 모든 에셋을 같은 색으로 통일한다.
Args: sources: 레퍼런스 이미지 경로 리스트. out: 팔레트 저장 경로(.gpl 또는 .hex). colors: 팔레트 색 수. swatch: 지정 시 팔레트 스와치 PNG 저장 경로.
| Name | Required | Description | Default |
|---|---|---|---|
| out | Yes | ||
| colors | No | ||
| swatch | No | ||
| sources | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It mentions 'locked common palette' and OKLab k-means, but lacks details on side effects, permission requirements, or idempotency. Adequate but could be more transparent.
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?
Two efficient sentences for purpose and usage, followed by a structured Args list. No redundant information. Front-loaded with the main action, making it quick to parse.
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?
The description covers parameters, output format, and downstream use. However, it lacks information on the return value (if any) since there is no output schema. Still, for a file-saving tool, the omission is minor and the description is largely 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 has 0% description coverage, but the description's Args section explains all four parameters with clear purposes: sources (reference paths), out (save path with format), colors (number of colors), swatch (optional PNG output). This adds significant value beyond the 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?
The description clearly states it creates a locked common palette from multiple references using OKLab k-means and saves as .gpl/.hex. It distinguishes from siblings like extract_palette (single reference) and quantize_palette (existing palette) by specifying the multi-reference input and algorithm.
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?
It explicitly guides the user to pass the resulting palette to pixelize/batch_pixelize for unifying assets. However, it does not compare with alternatives like extract_palette or snap_to_palette, nor does it state when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
build_spritesheetA
여러 프레임을 균일 격자 스프라이트시트로 패킹 + JSON 메타데이터(엔진 임포트용).
Args: frames: 프레임 이미지 경로 리스트(순서 = 시트 순서). dst: 출력 스프라이트시트 경로. columns: 열 수(0이면 한 줄로 가로 배치). cell_padding: 각 셀 안쪽 여백 픽셀. write_metadata: 프레임 좌표 JSON 동시 저장 여부.
| Name | Required | Description | Default |
|---|---|---|---|
| dst | Yes | ||
| frames | Yes | ||
| columns | No | ||
| cell_padding | No | ||
| write_metadata | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses that columns=0 means horizontal layout and that metadata is written optionally, but does not discuss side effects like overwriting dst or image format restrictions.
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?
Description is extremely concise, with a single sentence for the main purpose followed by a bullet-like list of arguments. No redundant words, front-loaded with the key action.
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 no output schema and 5 parameters, the description covers all parameters and main behavior. Missing details on error handling, supported image formats, or performance implications, but sufficient for a straightforward packing tool.
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 adds clear meaning for all 5 parameters: frames (list ordered), dst (output path), columns (grid columns), cell_padding (inner padding), write_metadata (save JSON). It compensates fully for the schema gap.
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?
Description clearly states the tool packs multiple frames into a uniform grid spritesheet with JSON metadata. It uses specific verbs ('pack') and resources ('spritesheet'), and distinguishes from sibling tools like animate or autocrop.
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?
The description mentions it's for engine importing but does not explicitly state when to use this tool versus alternatives like animate or pixelize. No guidance on prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_demo_rigA
빌트인 2족 캐릭터 리그(파트 PNG + 스켈레톤 + walk/idle/wave 클립)를 디스크에 저장.
사용자 리그 저작의 시작 템플릿이자 컷아웃 애니 데모. 외부 에셋 불필요. 저장된 rig.json 을 편집(파트 교체·스켈레톤·클립 키프레임)해 커스텀 캐릭터를 만들 수 있다.
Args: out_dir: 리그를 저장할 폴더.
| Name | Required | Description | Default |
|---|---|---|---|
| out_dir | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses the output (rig files to disk) and that it's a template editable later. However, it omits details like overwrite behavior, required permissions, or side effects, which are important for a file-writing operation.
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?
Description is short, front-loaded with the main action, and uses a structured Args section. It is efficient but could be slightly more polished (e.g., removing redundancy).
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 simple tool with one parameter and no output schema, the description covers purpose, composition, and usage context. It provides enough detail for the agent to understand the tool's role without being overly verbose.
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?
The only parameter 'out_dir' is explained as 'folder to save rig', which adds meaningful context beyond the schema's 'Out Dir' label. With low schema coverage (0%), the description adequately compensates by clarifying the parameter's role.
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?
Description clearly states the tool saves a built-in biped character rig to disk, specifying the resource (built-in rig with parts, skeleton, clips) and action (save). It distinguishes from siblings like export_rig_kit by framing it as a starting template, which no other sibling does.
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?
Description indicates it's a starting template for user rig authoring and demos, implying use for initial setup. However, it does not explicitly state when to use this tool over alternatives (e.g., assembling an animation or exporting a custom rig) or provide exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_paletteA
단일 이미지에서 팔레트를 추출해 .gpl/.hex 로 저장(Aseprite 임포트용).
Args: src: 입력 이미지 경로. out: 팔레트 저장 경로(.gpl 또는 .hex). colors: 팔레트 색 수.
| Name | Required | Description | Default |
|---|---|---|---|
| out | Yes | ||
| src | Yes | ||
| colors | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose side effects and operational details. It implies a file write operation but does not explicitly state it overwrites files or requires permissions, lacking depth.
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 concise with a single sentence explaining the purpose followed by a clear list of arguments, no redundant 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?
The description covers inputs and output format but omits return values, error handling, and differentiation from similar sibling tools, leaving some gaps.
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?
Input schema has 0% description coverage, but the description explains each parameter's meaning (src: input image path, out: output palette path with format hint, colors: number of colors) adding value beyond the 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?
The description clearly states the tool extracts a palette from a single image and saves it as .gpl or .hex for Aseprite import, specifying the main verb, resource, and output format.
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?
The description provides no guidance on when to use this tool versus alternatives like 'extract_palette' or 'build_palette', nor does it mention prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_rig_kitA
리깅용 스프라이트 제작 킷(계약서)을 저장 — 아트를 규격에 맞춰 뽑기 위한 것.
rig.json + 파츠 PNG + 배치 가이드(layout_guide.png) + 파츠별 생성 프롬프트 (prompts.md) + README 를 출력. 아티스트/AI 가 이 규격(파츠 슬롯·크기·피벗)에 맞춰 아트만 그리거나 생성해 PNG 를 교체하면 animate_rig 이 walk/run/idle/attack 을 자동 렌더한다. "리깅에 맞게 처음부터 스프라이트를 뽑는" 워크플로우의 핵심.
Args: out_dir: 킷을 저장할 폴더. character: 프롬프트에 넣을 캐릭터 묘사(예: "red-haired sniper in dark coat"). kind: 리그 종류 — "humanoid"(옆모습 2관절) 또는 "biped"(단순 2족).
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | humanoid | |
| out_dir | Yes | ||
| character | No | a character |
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 burden. It discloses that the tool exports files and that the outputs are intended for further use, but it does not mention permissions, overwrite behavior, or potential side effects. Some behavioral traits are implied but not detailed.
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 detailed but well-structured with a clear first sentence, bullet points for outputs, and an Args section. It is somewhat lengthy but every sentence adds value. Could be slightly more concise, but it is not wasteful.
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 the lack of annotations and output schema, the description covers the tool's purpose, output contents, parameters, and workflow integration. It is nearly complete for a tool of this complexity, though missing details on error handling or directory overwrite behavior.
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?
The input schema has 0% description coverage, but the description compensates by explaining each parameter: out_dir (folder), character (description for prompt), kind (rig type with options humanoid or biped). This adds significant meaning beyond the raw JSON schema, though defaults and constraints on out_dir are not elaborated.
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 clearly states the tool saves a rig kit for sprite creation, lists output files (rig.json, PNGs, layout_guide.png, prompts.md, README), and explains its role in the workflow. It effectively distinguishes from sibling tools by mentioning that animate_rig uses the output.
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?
The description implies the tool is for creating a new rig kit from scratch and that the output is used by animate_rig, but it does not explicitly state when to use this tool versus alternatives like assemble_animation or other sibling tools. The guidance is indirect.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
extract_paletteA
이미지에서 대표 팔레트(헥스 리스트)를 추출 + 옵션 스와치 PNG 저장.
추출한 팔레트를 snap_to_palette 의 기준으로 삼아 여러 에셋을 통일할 수 있다.
Args: src: 입력 이미지 경로. colors: 추출할 색 수. swatch: 지정 시 팔레트 스와치 PNG 저장 경로.
| Name | Required | Description | Default |
|---|---|---|---|
| src | Yes | ||
| colors | No | ||
| swatch | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It explains the main action and optional swatch save, but does not describe the return value (likely a hex list), error handling, supported image formats, or any side effects beyond optional file writing. The absence of output schema exacerbates this gap.
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 concise, with a clear first-line summary, a short usage context, and a bulleted args list. Every sentence serves a purpose without redundancy.
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 simple extraction tool with 3 parameters and no output schema, the description covers basic functionality and parameter meaning. However, it is missing explicit details about the return value, input format requirements, and error states. It is adequate but not comprehensive.
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?
With 0% schema description coverage, the description compensates partially by explaining each parameter: src (input image path), colors (number of colors), and swatch (path for PNG save). However, it omits details like valid ranges for colors, default behavior (16 colors), and doesn't clarify that swatch is optional despite default null. Still, it adds meaning beyond parameter names.
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?
Description clearly states that the tool extracts a representative palette (hex list) from an image and optionally saves a swatch PNG. It distinguishes from siblings like build_palette or export_palette by specifying the image source and linking to snap_to_palette.
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?
The description explains that the extracted palette can be used as a basis for snap_to_palette to unify assets, providing a clear usage context. However, it does not explicitly mention when not to use this tool or compare it to alternatives like build_palette or quantize_palette.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_motionsA
절차적 애니 모션 목록과 설명.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits like read-only, destructive side effects, or permissions. For a list tool, it is likely safe but not explicitly stated.
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 a single sentence that is direct and contains no unnecessary words. It is appropriately concise.
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 the lack of an output schema, the description only vaguely states it returns a list and description. It does not specify the structure or content of each motion item, which is a gap for completeness.
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?
The tool has no parameters, so schema coverage is 100% by default. The description adds meaning by specifying that it returns a 'list and description,' which provides context beyond the 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?
The description '절차적 애니 모션 목록과 설명' translates to 'list and description of procedural animation motions,' clearly specifying the action (list) and resource (procedural animation motions). It distinguishes itself from siblings like list_palettes.
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?
No guidance is provided on when to use this tool versus alternatives such as animate or animate_rig. The description lacks any context for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_palettesA
내장 큐레이션 팔레트 목록과 각 색 수를 반환.
| Name | Required | Description | Default |
|---|---|---|---|
No 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. It clearly indicates the tool is read-only (list operation) and returns specific data (list and count). No mention of permissions or side effects, but for a simple list tool this is sufficient.
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 a single sentence that efficiently conveys the tool's purpose without any filler words.
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?
The description explains the return value (list and color count) but does not detail the format or structure. Given no output schema, this is adequate for a simple list tool, but could be more 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?
There are no parameters, and schema description coverage is 100%. The description adds no parameter details because none are needed. Baseline for 0 parameters is 4.
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 clearly states that the tool returns the list of built-in curated palettes and the color count per palette (specific verb+resource). It is distinct from sibling tools like build_palette, export_palette, etc., which involve creation or modification.
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?
The description implies the tool is for listing built-in palettes, but does not explicitly state when to use it versus alternatives (e.g., snap_to_palette). No when-not guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pixelizeA
일러스트를 고품질 도트 스프라이트로 변환.
감마보정 선형광 다운스케일 + 프리멀티플라이 알파 + 실루엣 정리 + OKLab k-means 양자화(또는 고정 팔레트 스냅) + selout 아웃라인. 인덱스 PNG 출력 지원.
Args: src: 입력 이미지 경로. dst: 출력 경로. target_height: 도트 스프라이트 높이(px). 폭은 비율 유지. colors: 팔레트 색 수(palette 미지정 시 k-means 색 수). dither: Bayer 정렬 디더 여부(도트룩은 보통 False). outline: 아웃라인 추가 여부. outline_width: 아웃라인 두께(px). outline_style: "selout"(가장자리색 어둡게, 권장) 또는 "solid"(단색). clean: 실루엣 정리(despeckle/hole-fill) 여부. palette: None=이미지별 k-means / builtin 이름(pico8/sweetie16/db16/edg32) / .gpl·.hex 파일 경로(잠긴 공통 팔레트). indexed: 인덱스 컬러 PNG 로 저장(Aseprite/엔진 표준). 지정 시 upscale 무시. upscale: 저장 전 nearest 정수배 업스케일(표시용, 1=원본 도트 해상도).
| Name | Required | Description | Default |
|---|---|---|---|
| dst | Yes | ||
| src | Yes | ||
| clean | No | ||
| colors | No | ||
| dither | No | ||
| indexed | No | ||
| outline | No | ||
| palette | No | ||
| upscale | No | ||
| outline_style | No | selout | |
| outline_width | No | ||
| target_height | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries full burden. It details the algorithmic steps (gamma correction, quantization, outline) and behavioral notes (e.g., indexed mode ignores upscale). This is adequate for a conversion tool, though it does not mention error conditions or performance.
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 algorithm are front-loaded, followed by a structured parameter list. Every sentence adds value, though the technical detail may be dense. Still efficient for the complexity.
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 12 parameters, 2 required, no output schema or annotations, the description covers the tool's functionality, parameters, and key behaviors (e.g., palette types, indexed mode). Lacks usage examples or error handling but is comprehensive for a conversion tool.
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 provide meaning. It does so for all 12 parameters with concise explanations (e.g., palette options, outline_style values, indexed effect). Adds significant value beyond parameter names.
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 states it converts illustrations to high-quality dot sprites, which is a clear verb+resource. It is distinguishable from siblings like batch_pixelize (batch) and pixelize_pair (pair) but does not explicitly make that distinction.
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?
No guidance on when to use this tool versus alternatives (e.g., batch_pixelize, pixelize_pair). The description only explains what it does, not the context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pixelize_pairB
2프레임 애니를 공통 스케일·공유 OKLab k-means 팔레트로 도트화(깜빡임 방지).
Args: frame0: 첫 프레임 경로. frame1: 둘째 프레임 경로(같은 캐릭터, 다른 포즈). dst0: 첫 프레임 출력 경로. dst1: 둘째 프레임 출력 경로. target_height: 도트 높이(px). colors: 공유 팔레트 색 수. outline: 아웃라인 추가 여부. outline_style: "selout" 또는 "solid". indexed: 인덱스 컬러 PNG 로 저장.
| Name | Required | Description | Default |
|---|---|---|---|
| dst0 | Yes | ||
| dst1 | Yes | ||
| colors | No | ||
| frame0 | Yes | ||
| frame1 | Yes | ||
| indexed | No | ||
| outline | No | ||
| outline_style | No | selout | |
| target_height | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; the description carries full burden. It mentions flicker prevention and shared palette but does not disclose whether the process is destructive, alters input files, or requires specific access rights. Some behavioral aspects are implied (e.g., output creation) but not explicitly stated.
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 concise with a one-sentence purpose followed by a parameter list. It is front-loaded with the main action. No extraneous words, but the structure could be improved with section headers or clearer grouping.
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 the tool's complexity (9 parameters, 4 required, no output schema), the description is incomplete. It does not explain return values, error conditions, or side effects. The overall function is clear, but practical context for successful invocation is lacking.
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 parameter list in the description adds value beyond the schema. It gives brief Korean descriptions for each parameter (e.g., 'frame1: second frame path (same character, different pose)' and specifies outline_style values as 'selout' or 'solid'). However, descriptions are terse and not all parameters are explained in depth.
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 clearly states the tool's purpose: pixelating two-frame animations with a common scale and shared OKLab k-means palette to prevent flickering. This specificity distinguishes it from sibling tools like pixelize (single frame) and batch_pixelize (batch).
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?
The description implies usage for two-frame animations to avoid flickering but does not explicitly state when not to use it or mention alternatives. Siblings such as pixelize and batch_pixelize provide related but distinct functionality, but no explicit guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quantize_paletteA
해상도 유지한 채 색 수만 줄인다(팔레트 통일/용량 절감).
Args: src: 입력 이미지 경로. dst: 출력 경로. colors: 목표 색 수. dither: 디더링 여부.
| Name | Required | Description | Default |
|---|---|---|---|
| dst | Yes | ||
| src | Yes | ||
| colors | No | ||
| dither | No |
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. It mentions that resolution is maintained and colors are reduced, which implies a non-destructive transformation. However, it does not disclose any side effects, required permissions, or handling of file formats, leaving gaps in behavioral transparency.
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 extremely concise: one Korean sentence stating the main purpose followed by bullet points for parameters. There is no wasted text, and the key information is front-loaded. Every sentence serves a purpose.
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 4 parameters, no output schema, and no annotations, the description should ideally cover return values and potential limitations. It explains parameters but does not state what the tool returns (e.g., success indicator or output path) or any constraints (e.g., image format support). This leaves some context gaps.
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?
Although the schema has 0% description coverage, the tool description includes an 'Args' section that explains each parameter in natural language (e.g., 'input image path', 'target color count'). This adds significant meaning beyond the schema's type/title information, fully compensating for the lack of schema descriptions.
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 clearly states that the tool reduces the number of colors while preserving resolution, which is a specific verb+resource combination. It distinguishes from siblings like pixelize (resolution reduction) and build_palette (creating palettes), as it explicitly mentions 'resolution maintenance' and 'palette unification'.
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?
The description implies use cases (reducing colors for palette unification or capacity saving) but does not explicitly guide when to use this tool over alternatives like extract_palette or snap_to_palette. It lacks explicit 'when-to-use' or 'when-not-to-use' guidance, which is important given the many sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_backgroundA
네 모서리 flood fill 로 단색/오프화이트 배경을 투명화(배경제거 모델 폴백).
Args: src: 입력 이미지 경로. dst: 출력 경로(RGBA PNG). tolerance: 배경으로 간주할 색 차이 임계값(0-255). feather: 경계 한 줄의 알파 감쇠(0=칼같이, 1=완전투명).
| Name | Required | Description | Default |
|---|---|---|---|
| dst | Yes | ||
| src | Yes | ||
| feather | No | ||
| tolerance | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the method (flood fill from four corners), the output format (RGBA PNG), and the fallback mechanism. However, since no annotations are provided, the description carries the full burden. It does not mention whether the operation is destructive, performance characteristics, or required permissions. The behavioral disclosure is adequate but not thorough.
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 exceptionally concise: one opening sentence that encapsulates the core functionality and a structured Args block. Every word contributes value, no filler. The structure front-loads the purpose and then details parameters logically.
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 the tool's moderate complexity (background removal with potential model fallback) and the absence of an output schema, the description covers the key aspects: input, output, method, and parameter roles. It lacks details on edge cases (e.g., what happens with non-solid backgrounds), but these are not necessary for typical usage. Completeness is high for the information provided.
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?
Despite 0% schema description coverage, the description's Args section adds meaningful semantics to all four parameters: src and dst are paths, tolerance is the color difference threshold (0-255), feather is alpha decay (0=sharp, 1=fully transparent). This compensates significantly for the schema's lack of descriptions, providing clear meaning beyond names and types.
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 clearly states the tool's purpose: removing solid or off-white backgrounds via four-corner flood fill with a fallback to a background removal model. It uses a specific verb ('transparentize' implied) and resource ('background'), and is clearly distinct from sibling tools like pixelize or autocrop.
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?
No explicit guidance is provided on when to use this tool versus alternatives. The description mentions a fallback to a background removal model, but does not specify when the flood fill fails or how to decide between this tool and other background removal methods. There are no 'when not to use' statements.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
snap_to_paletteB
이미지를 큐레이션 팔레트로 스냅(OKLab 지각 거리, 아트 코히어런스).
Args: src: 입력 이미지 경로. dst: 출력 경로. palette: 팔레트 이름(pico8/sweetie16/db16/edg32). list_palettes 로 확인. dither: Floyd-Steinberg 디더링으로 그라데이션 띠/노이즈 완화.
| Name | Required | Description | Default |
|---|---|---|---|
| dst | Yes | ||
| src | Yes | ||
| dither | No | ||
| palette | Yes |
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. It mentions 'OKLab perceptual distance' and 'art coherence' as behavioral traits, and explains dithering reduces banding/noise. However, it does not disclose if the tool overwrites files, required permissions, or return behavior, leaving gaps.
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 short and structured with a clear header and bullet list of parameters. Every sentence is informative without redundancy. It is front-loaded with the main purpose immediately.
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 4 parameters, no output schema, and no annotations, the description covers the core purpose and parameter meanings. However, it lacks details on output format, error handling, file overwrite behavior, and how it interacts with the filesystem, which are important for an image processing tool.
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. It provides clear semantic meaning for all parameters: 'src' as input path, 'dst' as output path, 'palette' with examples and reference to 'list_palettes', and 'dither' as Floyd-Steinberg dithering. This adds significant value 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?
The description clearly states the tool snaps an image to a palette using OKLab perceptual distance and art coherence, which is a specific verb-resource pairing. However, it does not differentiate from sibling palette tools like 'quantize_palette' or 'extract_palette', so it loses one point.
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?
No guidance on when to use this tool versus alternatives like 'quantize_palette' or 'build_palette'. The only mention is to check 'list_palettes' for palette names, which is a prerequisite, not usage context. No when-not-to-use or comparison information.
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. Dates show when Glama detected each change.
18 tool updates
v0.1.0- First observed
animate - First observed
animate_rig - First observed
assemble_animation - First observed
autocrop - First observed
batch_pixelize - First observed
build_palette - First observed
build_spritesheet - First observed
create_demo_rig - First observed
export_palette - First observed
export_rig_kit - First observed
extract_palette - First observed
list_motions - First observed
list_palettes - First observed
pixelize - First observed
pixelize_pair - First observed
quantize_palette - First observed
remove_background - First observed
snap_to_palette
TDQS
Most tools have distinct purposes, but export_palette and extract_palette are very similar in functionality (both extract palette from a single image), which could cause confusion. The other tools are clearly differentiated by description and naming.
All tool names use underscore_case and follow a verb-based pattern (e.g., pixelize, build_palette, list_motions). The naming is uniform and predictable, with no problematic mixing of styles.
With 18 tools for pixel art creation and animation, the count is slightly above the ideal range but still reasonable. The tools cover the main workflow without being overwhelming.
The tool set covers the full pixel art pipeline: image preparation, pixelization, palette management, animation (procedural and rig-based), spritesheet packing, and batch processing. No obvious gaps for the intended domain.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Generate authentic pixel art - sprites, animations, and tilesets - from any MCP client
Generate game assets with AI for 2D games, including sprites, tilesets, and animations.
Generate game-ready 3D models, textures, and audio from natural language, over MCP.
MCP server for Qwen Image 3 AI image generation
Related MCP Servers
- AlicenseAqualityCmaintenanceMCP server that forges pixel art sprites & game assets using Google Gemini — generate, crop, split & process, all from your AI assistant.8244MIT
- AlicenseBqualityDmaintenanceMCP server for Aseprite — create, edit, and export pixel art sprites, animations, and sprite sheets from any AI assistant.437MIT
- AlicenseNot gradedqualityFmaintenanceMCP server for generating style-consistent pixel art assets from PixelLab API, with project management, asset review, and an embedded Claude assistant.MIT
- AlicenseNot gradedqualityBmaintenanceMCP server for generating pixel-art sprites with transparent backgrounds using any diffusers-compatible text-to-image model.MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/mindsurf0176/pixelforge-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server