Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, email [email protected] and we’ll put it right.

Spritesheet Forge

REMOTE · MCP.CLAWSTUDIOUO.COM · SCANNED AUG 3

Game-dev sprite tools: PNG/GIF to spritesheet, split, trim, animate. OAuth-authenticated MCP server.

+9 this week 68 Trust /100
Trust breakdown (6 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score →

Endpoint Security86
Transport & Reachability100
Schema Quality & AI Usability46
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 2833 tokens (~354/item across 8 items; 8 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management27
  • Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage94
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 79% of tool parameters carry a description.Partial
  • Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Capabilities20
  • Spec-recency check failed: implements MCP spec 2024-11-05; the latest is 2026-07-28. See how to fix → Fail
Install

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

remote · mcp.clawstudiouo.com

# add to Claude Code
claude mcp add --transport http laxy9887-spritesheet-forge https://mcp.clawstudiouo.com/mcp
# ~/.codex/config.toml
[mcp_servers.laxy9887-spritesheet-forge]
url = "https://mcp.clawstudiouo.com/mcp"
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "laxy9887-spritesheet-forge": {
      "type": "remote",
      "url": "https://mcp.clawstudiouo.com/mcp",
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add laxy9887-spritesheet-forge --url https://mcp.clawstudiouo.com/mcp --transport streamable-http
# ~/.hermes/config.yaml
mcp_servers:
  laxy9887-spritesheet-forge:
    url: "https://mcp.clawstudiouo.com/mcp"
// mcp.json
{
  "mcpServers": {
    "laxy9887-spritesheet-forge": {
      "type": "http",
      "url": "https://mcp.clawstudiouo.com/mcp"
    }
  }
}

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 3 Aug 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

  • 31 Jul 26 +6
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 30 Jul 26 +1
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 28 Jul 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

  • 27 Jul 26 +1
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 26 Jul 26 58

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 3 Aug 2026 · Probed https://mcp.clawstudiouo.com/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=clawstudiouo.com CN=WE1,O=Google Trust Services,C=US 2 Jul 2026 30 Sept 2026 ECDSA 256 ECDSA-SHA256 62d068667059bfe0ebef3f4e2423820
SANs: clawstudiouo.com, mcp.clawstudiouo.com, *.mcp.clawstudiouo.com
CN=WE1,O=Google Trust Services,C=US (CA) CN=GTS Root R4,O=Google Trust Services LLC,C=US 13 Dec 2023 20 Feb 2029 ECDSA 256 ECDSA-SHA384 7ff31977972c224a76155d13b6d685e3
CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE 15 Nov 2023 28 Jan 2028 ECDSA 384 SHA256-RSA 7fe530bf331343bedd821610493d8a1b
DNSSEC secure

Validation of mcp.clawstudiouo.com. Secure

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
com. present 19718 13 Verified
clawstudiouo.com. present 2371 13 Verified
mcp.clawstudiouo.com. Verified address RRset verified with the apex keys
Authentication Challenged, unverified

The endpoint asked for a token, but we could not retrieve and validate the RFC 9728 metadata that tells a client how to obtain one.

Result Challenged, unverified
Enforced On tool calls
HTTP status 200

WWW-Authenticate challenge Bearer realm="https://mcp.clawstudiouo.com"

Bearer realm="https://mcp.clawstudiouo.com"

Protected resource metadata

Retrieved No
Problem no_resource_metadata
Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://mcp.clawstudiouo.com/mcp Verified 200
http (plaintext) http://mcp.clawstudiouo.com/mcp HTTPS enforced 301 https://mcp.clawstudiouo.com/mcp
MCP tools — 8 exposed · ~2,565 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.

Tool Tokens
frames_to_animation ~480

Assemble multiple PNG files into an animated GIF or animated WebP.

NameTypeReqDescription
bg_fill_colorstringFill color for resize=fill. Hex #RRGGBB. Default: #000000
durationintegerFrame duration in ms (10-10000). Default: 100
file_name_orderbooleanOrder frames by the numeric _N suffix in each filename (e.g. frame_00.png, frame_01.png) instead of by array order. REQUIRES every input filename to end with _N.<ext> — the name is taken from the URL…
filesarrayyesPNG frames — HTTPS URLs, data URIs, or output URLs from previous tool calls (pass directly, no re-encoding needed). For local files < 4 MB each: base64-encode the bytes and prepend "data:image/png;ba…
loopintegerLoop count. 0 = infinite. Default: 0
losslessbooleanWebP lossless mode. Default: false
output_formatstringOutput format. Default: gif
qualityintegerWebP lossy quality 0-100. Default: 80
resizestringDimension mismatch handling. Default: transparent
NameTypeReqDescription
content_typestringyesMIME type of the output file (image/png, image/gif, application/zip, etc.)
expires_atstringyesISO 8601 expiry timestamp
quotaobjectyes
size_bytesnumberyesOutput file size in bytes
urlstringyesDownload URL for the output file (expires in 1 hour)

No examples provided.

gif_to_frames ~219

Extract all frames from a GIF and return them as individual PNGs in a ZIP archive.

NameTypeReqDescription
bg_colorstring"auto" or hex "#RRGGBB"
filestringyesGIF file — HTTPS URL, data URI, or output URL from a previous tool call (pass directly, no re-encoding needed). For local files < ~185 KB: base64-encode the bytes and prepend "data:image/gif;base64,"…
remove_bgbooleanRemove background from each frame. Default: false
toleranceintegerBackground removal threshold 0-255. Default: 30
NameTypeReqDescription
content_typestringyesMIME type of the output file (image/png, image/gif, application/zip, etc.)
expires_atstringyesISO 8601 expiry timestamp
quotaobjectyes
size_bytesnumberyesOutput file size in bytes
urlstringyesDownload URL for the output file (expires in 1 hour)

No examples provided.

gif_to_spritesheet ~262

Convert a GIF animation into a spritesheet PNG with all frames arranged in a grid. Optionally remove the background.

NameTypeReqDescription
bg_colorstring"auto" or hex "#RRGGBB". Default: "auto"
columnsintegerGrid columns. Auto-calculated if omitted.
filestringyesGIF file — HTTPS URL, data URI, or output URL from a previous tool call (pass directly, no re-encoding needed). For local files < ~185 KB: base64-encode the bytes and prepend "data:image/gif;base64,"…
paddingintegerPixel gap between frames. Default: 0
remove_bgbooleanRemove background from each frame. Default: false
toleranceintegerBackground removal threshold 0-255. Default: 30
NameTypeReqDescription
content_typestringyesMIME type of the output file (image/png, image/gif, application/zip, etc.)
expires_atstringyesISO 8601 expiry timestamp
quotaobjectyes
size_bytesnumberyesOutput file size in bytes
urlstringyesDownload URL for the output file (expires in 1 hour)

No examples provided.

png_to_spritesheet ~585

Merge multiple PNG files into a single spritesheet. Supports grid, horizontal, vertical, and packed (bin-packed) layouts with optional TexturePacker-compatible JSON metadata. Returns a download URL.

NameTypeReqDescription
alignstring
bg_colorstring"transparent" or hex "#RRGGBB"
cell_heightintegerRequired when cell_mode=fixed
cell_modestringCell sizing mode. Default: auto_max
cell_widthintegerRequired when cell_mode=fixed
columnsintegerGrid columns. Auto-calculated if omitted.
extrudeintegerExtrude outermost pixels by N px per frame
file_name_orderbooleanOrder frames by the numeric _N suffix in each filename (e.g. frame_00.png, frame_01.png) instead of by array order. REQUIRES every input filename to end with _N.<ext> — the name is taken from the URL…
filesarrayyesPNG files — HTTPS URLs, data URIs, or output URLs from previous tool calls (pass directly, no re-encoding needed). For local files < ~185 KB each: base64-encode the bytes and prepend "data:image/png;…
fit_modestring
layoutstringFrame arrangement. Default: grid
metadata_formatstringAtlas metadata format. Required (non-none) when layout=packed
paddingintegerPixel gap between frames
power_of_2booleanPad output to next power of 2
trim_inputbooleanAuto-trim transparent edges before compositing
NameTypeReqDescription
content_typestringyesMIME type of the output file (image/png, image/gif, application/zip, etc.)
expires_atstringyesISO 8601 expiry timestamp
quotaobjectyes
size_bytesnumberyesOutput file size in bytes
urlstringyesDownload URL for the output file (expires in 1 hour)

No examples provided.

server_info ~57

Returns this server's runtime configuration: upload endpoint URL, output file TTL, file size limits, and base64 encoding rules. Call this before working with large files (≥ 4 MB) or when building multi-step workflows that chain tool outputs.

Input schema present but exposes no named parameters.

NameTypeReqDescription
base64_threshold_bytesnumberyesFiles smaller than this can be sent as base64 data URIs
file_input_rulesobjectyesGuidance for agents on how to pass file inputs
max_file_bytesnumberyesMaximum accepted file size in bytes
output_ttl_secondsnumberyesSeconds until output files expire
upload_urlstringyesURL for uploading files via multipart/form-data (Bearer token required)

No examples provided.

split_spritesheet ~325

Slice a spritesheet PNG into individual frames, generate TexturePacker-compatible atlas JSON, or both. Provide columns+rows (grid mode) or cell_width+cell_height (cell mode).

NameTypeReqDescription
cell_heightintegerCell height in px (cell mode)
cell_widthintegerCell width in px (cell mode)
column_rangestringe.g. "0-5" or "2"
columnsintegerGrid columns (grid mode)
filestringyesSpritesheet PNG — HTTPS URL, data URI, or output URL from a previous tool call (pass directly, no re-encoding needed). For local files < 4 MB: base64-encode the bytes and prepend "data:image/png;base…
frame_countinteger
metadata_formatstring
outputstringDefault: frames
paddinginteger
row_rangestring
rowsintegerGrid rows (grid mode)
skip_emptybooleanRemove fully transparent frames. Default: true
trim_bottominteger
trim_leftinteger
trim_rightinteger
trim_topinteger
NameTypeReqDescription
content_typestringyesMIME type of the output file (image/png, image/gif, application/zip, etc.)
expires_atstringyesISO 8601 expiry timestamp
quotaobjectyes
size_bytesnumberyesOutput file size in bytes
urlstringyesDownload URL for the output file (expires in 1 hour)

No examples provided.

spritesheet_to_animation ~425

Slice a spritesheet PNG into frames and produce an animated GIF or WebP. Provide columns+rows (grid mode) or cell_width+cell_height (cell mode).

NameTypeReqDescription
cell_heightintegerCell height in px (cell mode)
cell_widthintegerCell width in px (cell mode)
column_rangestringe.g. "0-5" or "2"
columnsintegerGrid columns (grid mode)
durationintegerFrame duration in ms. Default: 100
filestringyesSpritesheet PNG — HTTPS URL, data URI, or output URL from a previous tool call (pass directly, no re-encoding needed). For local files < ~185 KB: base64-encode the bytes and prepend "data:image/png;b…
frame_countintegerActual frame count for incomplete last row
loopintegerLoop count. 0 = infinite. Default: 0
losslessbooleanWebP lossless. Default: false
output_formatstringDefault: gif
paddingintegerPixel gap between cells. Default: 0
qualityintegerWebP quality 0-100. Default: 80
row_rangestring
rowsintegerGrid rows (grid mode)
skip_emptybooleanAuto-remove fully transparent frames. Default: true
trim_bottominteger
trim_leftinteger
trim_rightinteger
trim_topinteger
NameTypeReqDescription
content_typestringyesMIME type of the output file (image/png, image/gif, application/zip, etc.)
expires_atstringyesISO 8601 expiry timestamp
quotaobjectyes
size_bytesnumberyesOutput file size in bytes
urlstringyesDownload URL for the output file (expires in 1 hour)

No examples provided.

trim_png ~212

Crop transparent edges from one or more PNG files. Single file returns PNG; multiple files return a ZIP.

NameTypeReqDescription
filesarrayyesPNG files — HTTPS URLs, data URIs, or output URLs from previous tool calls (pass directly, no re-encoding needed). For local files < ~185 KB each: base64-encode the bytes and prepend "data:image/png;…
paddingintegerTransparent margin to preserve around trimmed content. Default: 0
thresholdintegerAlpha threshold 0-255. Pixels with alpha ≤ threshold are trimmed. Default: 0
NameTypeReqDescription
content_typestringyesMIME type of the output file (image/png, image/gif, application/zip, etc.)
expires_atstringyesISO 8601 expiry timestamp
quotaobjectyes
size_bytesnumberyesOutput file size in bytes
urlstringyesDownload URL for the output file (expires in 1 hour)

No examples provided.