{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_k4e4t6g9sz47","handle":"spritesheet-forge","url":"https://wellknown.network/agents/spritesheet-forge","links":{"self":"https://wellknown.network/agents/spritesheet-forge/record.json","html":"https://wellknown.network/agents/spritesheet-forge","markdown":"https://wellknown.network/agents/spritesheet-forge/record.md","api":"https://wellknown.network/api/v1/agents/spritesheet-forge","status":"https://wellknown.network/api/v1/agents/spritesheet-forge/status","claim":"https://wellknown.network/agents/spritesheet-forge/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/spritesheet-forge/claim.json","badge":"https://wellknown.network/agents/spritesheet-forge/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/spritesheet-forge/history","tools":"https://wellknown.network/api/v1/agents/spritesheet-forge/tools"},"ard":{"identifier":"urn:air:mcp.clawstudiouo.com:server:spritesheet-forge","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"Spritesheet Forge","summary":"Game-dev sprite tools: PNG/GIF to spritesheet, split, trim, animate. OAuth-authenticated MCP server.","description":"Game-dev sprite tools: PNG/GIF to spritesheet, split, trim, animate. OAuth-authenticated MCP server.","publisher":{"name":"LAXY9887","url":null},"homepage":null,"repository":null,"version":"1.0.0","license":null,"protocols":["mcp"],"tags":[],"pricing":null,"endpoints":[{"url":"https://mcp.clawstudiouo.com/mcp","type":"mcp_streamable_http","auth":null,"probeable":true}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-05-05T06:03:57.446079Z","publishedAt":"2026-05-05T06:03:57.446079Z","registryName":"io.github.LAXY9887/spritesheet-forge"},"attribution":{"kind":"mcp_registry","name":"mcp_registry","summary":"mcp_registry","version":"mcp_registry","description":"mcp_registry","publisherName":"mcp_registry"}},"derived":{"capabilities":[{"slug":"documents.conversion","name":"Document Conversion","confidence":0.51,"provenance":"derived"}],"categories":["documents"],"language":"en"},"observed":{"status":"live","statusReason":"Responded 7h ago.","lastOkAt":"2026-10-10T14:26:30.990Z","lastProbedAt":"2026-10-10T14:26:30.990Z","statusComputedAt":"2026-10-10T14:27:27.960Z","reliability30d":{"probes":110,"successRate":1,"p50Ms":18,"basis":"service","measures":{"availability":"availability","latency":"response time","tools":"tool surface observed","summary":"Checks reached the service itself."},"checks":{"total":107,"ok":107,"authBoundaryOk":0,"serviceOk":107,"note":"Counted from the observation rows for the window, checks of the server only (HTTP, A2A card, MCP initialize). ok = authBoundaryOk + serviceOk. `probes` is the sum of daily rollups and includes registry checks, so it can differ from `total`."}},"latestObservations":[{"at":"2026-10-10T14:26:30.990Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":24,"error":null,"detail":{"tools":[{"name":"server_info","description":"Returns this server's runtime configuration: upload endpoint URL, output file TTL, file size limits, and base64 encoding rules. Call this before working with la"},{"name":"png_to_spritesheet","description":"Merge multiple PNG files into a single spritesheet. Supports grid, horizontal, vertical, and packed (bin-packed) layouts with optional TexturePacker-compatible "},{"name":"split_spritesheet","description":"Slice a spritesheet PNG into individual frames, generate TexturePacker-compatible atlas JSON, or both. Provide columns+rows (grid mode) or cell_width+cell_heigh"},{"name":"trim_png","description":"Crop transparent edges from one or more PNG files. Single file returns PNG; multiple files return a ZIP."},{"name":"gif_to_spritesheet","description":"Convert a GIF animation into a spritesheet PNG with all frames arranged in a grid. Optionally remove the background."},{"name":"gif_to_frames","description":"Extract all frames from a GIF and return them as individual PNGs in a ZIP archive."},{"name":"frames_to_animation","description":"Assemble multiple PNG files into an animated GIF or animated WebP."},{"name":"spritesheet_to_animation","description":"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)."}],"toolCount":8,"toolsHash":"9e9489ee61d9cf4c9d57acca472db80ca0d264677fcef81b2004250a61b0366a","serverName":"spritesheet-forge","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2024-11-05"}},{"at":"2026-10-10T08:31:56.197Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":26,"error":null,"detail":{"tools":[{"name":"server_info","description":"Returns this server's runtime configuration: upload endpoint URL, output file TTL, file size limits, and base64 encoding rules. Call this before working with la"},{"name":"png_to_spritesheet","description":"Merge multiple PNG files into a single spritesheet. Supports grid, horizontal, vertical, and packed (bin-packed) layouts with optional TexturePacker-compatible "},{"name":"split_spritesheet","description":"Slice a spritesheet PNG into individual frames, generate TexturePacker-compatible atlas JSON, or both. Provide columns+rows (grid mode) or cell_width+cell_heigh"},{"name":"trim_png","description":"Crop transparent edges from one or more PNG files. Single file returns PNG; multiple files return a ZIP."},{"name":"gif_to_spritesheet","description":"Convert a GIF animation into a spritesheet PNG with all frames arranged in a grid. Optionally remove the background."},{"name":"gif_to_frames","description":"Extract all frames from a GIF and return them as individual PNGs in a ZIP archive."},{"name":"frames_to_animation","description":"Assemble multiple PNG files into an animated GIF or animated WebP."},{"name":"spritesheet_to_animation","description":"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)."}],"toolCount":8,"toolsHash":"9e9489ee61d9cf4c9d57acca472db80ca0d264677fcef81b2004250a61b0366a","serverName":"spritesheet-forge","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2024-11-05"}},{"at":"2026-10-10T01:24:29.468Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":12,"error":null,"detail":{"tools":[{"name":"server_info","description":"Returns this server's runtime configuration: upload endpoint URL, output file TTL, file size limits, and base64 encoding rules. Call this before working with la"},{"name":"png_to_spritesheet","description":"Merge multiple PNG files into a single spritesheet. Supports grid, horizontal, vertical, and packed (bin-packed) layouts with optional TexturePacker-compatible "},{"name":"split_spritesheet","description":"Slice a spritesheet PNG into individual frames, generate TexturePacker-compatible atlas JSON, or both. Provide columns+rows (grid mode) or cell_width+cell_heigh"},{"name":"trim_png","description":"Crop transparent edges from one or more PNG files. Single file returns PNG; multiple files return a ZIP."},{"name":"gif_to_spritesheet","description":"Convert a GIF animation into a spritesheet PNG with all frames arranged in a grid. Optionally remove the background."},{"name":"gif_to_frames","description":"Extract all frames from a GIF and return them as individual PNGs in a ZIP archive."},{"name":"frames_to_animation","description":"Assemble multiple PNG files into an animated GIF or animated WebP."},{"name":"spritesheet_to_animation","description":"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)."}],"toolCount":8,"toolsHash":"9e9489ee61d9cf4c9d57acca472db80ca0d264677fcef81b2004250a61b0366a","serverName":"spritesheet-forge","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2024-11-05"}},{"at":"2026-10-09T18:26:30.721Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":114,"error":null,"detail":{"tools":[{"name":"server_info","description":"Returns this server's runtime configuration: upload endpoint URL, output file TTL, file size limits, and base64 encoding rules. Call this before working with la"},{"name":"png_to_spritesheet","description":"Merge multiple PNG files into a single spritesheet. Supports grid, horizontal, vertical, and packed (bin-packed) layouts with optional TexturePacker-compatible "},{"name":"split_spritesheet","description":"Slice a spritesheet PNG into individual frames, generate TexturePacker-compatible atlas JSON, or both. Provide columns+rows (grid mode) or cell_width+cell_heigh"},{"name":"trim_png","description":"Crop transparent edges from one or more PNG files. Single file returns PNG; multiple files return a ZIP."},{"name":"gif_to_spritesheet","description":"Convert a GIF animation into a spritesheet PNG with all frames arranged in a grid. Optionally remove the background."},{"name":"gif_to_frames","description":"Extract all frames from a GIF and return them as individual PNGs in a ZIP archive."},{"name":"frames_to_animation","description":"Assemble multiple PNG files into an animated GIF or animated WebP."},{"name":"spritesheet_to_animation","description":"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)."}],"toolCount":8,"toolsHash":"9e9489ee61d9cf4c9d57acca472db80ca0d264677fcef81b2004250a61b0366a","serverName":"spritesheet-forge","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2024-11-05"}},{"at":"2026-10-09T11:26:10.271Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":23,"error":null,"detail":{"tools":[{"name":"server_info","description":"Returns this server's runtime configuration: upload endpoint URL, output file TTL, file size limits, and base64 encoding rules. Call this before working with la"},{"name":"png_to_spritesheet","description":"Merge multiple PNG files into a single spritesheet. Supports grid, horizontal, vertical, and packed (bin-packed) layouts with optional TexturePacker-compatible "},{"name":"split_spritesheet","description":"Slice a spritesheet PNG into individual frames, generate TexturePacker-compatible atlas JSON, or both. Provide columns+rows (grid mode) or cell_width+cell_heigh"},{"name":"trim_png","description":"Crop transparent edges from one or more PNG files. Single file returns PNG; multiple files return a ZIP."},{"name":"gif_to_spritesheet","description":"Convert a GIF animation into a spritesheet PNG with all frames arranged in a grid. Optionally remove the background."},{"name":"gif_to_frames","description":"Extract all frames from a GIF and return them as individual PNGs in a ZIP archive."},{"name":"frames_to_animation","description":"Assemble multiple PNG files into an animated GIF or animated WebP."},{"name":"spritesheet_to_animation","description":"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)."}],"toolCount":8,"toolsHash":"9e9489ee61d9cf4c9d57acca472db80ca0d264677fcef81b2004250a61b0366a","serverName":"spritesheet-forge","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2024-11-05"}},{"at":"2026-10-09T04:27:59.244Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":48,"error":null,"detail":{"tools":[{"name":"server_info","description":"Returns this server's runtime configuration: upload endpoint URL, output file TTL, file size limits, and base64 encoding rules. Call this before working with la"},{"name":"png_to_spritesheet","description":"Merge multiple PNG files into a single spritesheet. Supports grid, horizontal, vertical, and packed (bin-packed) layouts with optional TexturePacker-compatible "},{"name":"split_spritesheet","description":"Slice a spritesheet PNG into individual frames, generate TexturePacker-compatible atlas JSON, or both. Provide columns+rows (grid mode) or cell_width+cell_heigh"},{"name":"trim_png","description":"Crop transparent edges from one or more PNG files. Single file returns PNG; multiple files return a ZIP."},{"name":"gif_to_spritesheet","description":"Convert a GIF animation into a spritesheet PNG with all frames arranged in a grid. Optionally remove the background."},{"name":"gif_to_frames","description":"Extract all frames from a GIF and return them as individual PNGs in a ZIP archive."},{"name":"frames_to_animation","description":"Assemble multiple PNG files into an animated GIF or animated WebP."},{"name":"spritesheet_to_animation","description":"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)."}],"toolCount":8,"toolsHash":"9e9489ee61d9cf4c9d57acca472db80ca0d264677fcef81b2004250a61b0366a","serverName":"spritesheet-forge","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2024-11-05"}},{"at":"2026-10-08T21:22:53.586Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":11,"error":null,"detail":{"tools":[{"name":"server_info","description":"Returns this server's runtime configuration: upload endpoint URL, output file TTL, file size limits, and base64 encoding rules. Call this before working with la"},{"name":"png_to_spritesheet","description":"Merge multiple PNG files into a single spritesheet. Supports grid, horizontal, vertical, and packed (bin-packed) layouts with optional TexturePacker-compatible "},{"name":"split_spritesheet","description":"Slice a spritesheet PNG into individual frames, generate TexturePacker-compatible atlas JSON, or both. Provide columns+rows (grid mode) or cell_width+cell_heigh"},{"name":"trim_png","description":"Crop transparent edges from one or more PNG files. Single file returns PNG; multiple files return a ZIP."},{"name":"gif_to_spritesheet","description":"Convert a GIF animation into a spritesheet PNG with all frames arranged in a grid. Optionally remove the background."},{"name":"gif_to_frames","description":"Extract all frames from a GIF and return them as individual PNGs in a ZIP archive."},{"name":"frames_to_animation","description":"Assemble multiple PNG files into an animated GIF or animated WebP."},{"name":"spritesheet_to_animation","description":"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)."}],"toolCount":8,"toolsHash":"9e9489ee61d9cf4c9d57acca472db80ca0d264677fcef81b2004250a61b0366a","serverName":"spritesheet-forge","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2024-11-05"}},{"at":"2026-10-08T14:22:30.457Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":17,"error":null,"detail":{"tools":[{"name":"server_info","description":"Returns this server's runtime configuration: upload endpoint URL, output file TTL, file size limits, and base64 encoding rules. Call this before working with la"},{"name":"png_to_spritesheet","description":"Merge multiple PNG files into a single spritesheet. Supports grid, horizontal, vertical, and packed (bin-packed) layouts with optional TexturePacker-compatible "},{"name":"split_spritesheet","description":"Slice a spritesheet PNG into individual frames, generate TexturePacker-compatible atlas JSON, or both. Provide columns+rows (grid mode) or cell_width+cell_heigh"},{"name":"trim_png","description":"Crop transparent edges from one or more PNG files. Single file returns PNG; multiple files return a ZIP."},{"name":"gif_to_spritesheet","description":"Convert a GIF animation into a spritesheet PNG with all frames arranged in a grid. Optionally remove the background."},{"name":"gif_to_frames","description":"Extract all frames from a GIF and return them as individual PNGs in a ZIP archive."},{"name":"frames_to_animation","description":"Assemble multiple PNG files into an animated GIF or animated WebP."},{"name":"spritesheet_to_animation","description":"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)."}],"toolCount":8,"toolsHash":"9e9489ee61d9cf4c9d57acca472db80ca0d264677fcef81b2004250a61b0366a","serverName":"spritesheet-forge","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2024-11-05"}},{"at":"2026-10-08T07:25:08.758Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":62,"error":null,"detail":{"tools":[{"name":"server_info","description":"Returns this server's runtime configuration: upload endpoint URL, output file TTL, file size limits, and base64 encoding rules. Call this before working with la"},{"name":"png_to_spritesheet","description":"Merge multiple PNG files into a single spritesheet. Supports grid, horizontal, vertical, and packed (bin-packed) layouts with optional TexturePacker-compatible "},{"name":"split_spritesheet","description":"Slice a spritesheet PNG into individual frames, generate TexturePacker-compatible atlas JSON, or both. Provide columns+rows (grid mode) or cell_width+cell_heigh"},{"name":"trim_png","description":"Crop transparent edges from one or more PNG files. Single file returns PNG; multiple files return a ZIP."},{"name":"gif_to_spritesheet","description":"Convert a GIF animation into a spritesheet PNG with all frames arranged in a grid. Optionally remove the background."},{"name":"gif_to_frames","description":"Extract all frames from a GIF and return them as individual PNGs in a ZIP archive."},{"name":"frames_to_animation","description":"Assemble multiple PNG files into an animated GIF or animated WebP."},{"name":"spritesheet_to_animation","description":"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)."}],"toolCount":8,"toolsHash":"9e9489ee61d9cf4c9d57acca472db80ca0d264677fcef81b2004250a61b0366a","serverName":"spritesheet-forge","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2024-11-05"}},{"at":"2026-10-08T00:25:52.412Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":16,"error":null,"detail":{"tools":[{"name":"server_info","description":"Returns this server's runtime configuration: upload endpoint URL, output file TTL, file size limits, and base64 encoding rules. Call this before working with la"},{"name":"png_to_spritesheet","description":"Merge multiple PNG files into a single spritesheet. Supports grid, horizontal, vertical, and packed (bin-packed) layouts with optional TexturePacker-compatible "},{"name":"split_spritesheet","description":"Slice a spritesheet PNG into individual frames, generate TexturePacker-compatible atlas JSON, or both. Provide columns+rows (grid mode) or cell_width+cell_heigh"},{"name":"trim_png","description":"Crop transparent edges from one or more PNG files. Single file returns PNG; multiple files return a ZIP."},{"name":"gif_to_spritesheet","description":"Convert a GIF animation into a spritesheet PNG with all frames arranged in a grid. Optionally remove the background."},{"name":"gif_to_frames","description":"Extract all frames from a GIF and return them as individual PNGs in a ZIP archive."},{"name":"frames_to_animation","description":"Assemble multiple PNG files into an animated GIF or animated WebP."},{"name":"spritesheet_to_animation","description":"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)."}],"toolCount":8,"toolsHash":"9e9489ee61d9cf4c9d57acca472db80ca0d264677fcef81b2004250a61b0366a","serverName":"spritesheet-forge","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2024-11-05"}}],"tools":[{"name":"server_info","description":"Returns this server's runtime configuration: upload endpoint URL, output file TTL, file size limits, and base64 encoding rules. Call this before working with la"},{"name":"png_to_spritesheet","description":"Merge multiple PNG files into a single spritesheet. Supports grid, horizontal, vertical, and packed (bin-packed) layouts with optional TexturePacker-compatible "},{"name":"split_spritesheet","description":"Slice a spritesheet PNG into individual frames, generate TexturePacker-compatible atlas JSON, or both. Provide columns+rows (grid mode) or cell_width+cell_heigh"},{"name":"trim_png","description":"Crop transparent edges from one or more PNG files. Single file returns PNG; multiple files return a ZIP."},{"name":"gif_to_spritesheet","description":"Convert a GIF animation into a spritesheet PNG with all frames arranged in a grid. Optionally remove the background."},{"name":"gif_to_frames","description":"Extract all frames from a GIF and return them as individual PNGs in a ZIP archive."},{"name":"frames_to_animation","description":"Assemble multiple PNG files into an animated GIF or animated WebP."},{"name":"spritesheet_to_animation","description":"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)."}],"package":null,"toolSurface":{"id":"ts_wz3kr2xmvrqe","endpointId":"ep_gyhsddsmsusr","hash":"9e9489ee61d9cf4c9d57acca472db80ca0d264677fcef81b2004250a61b0366a","toolCount":8,"serverName":"spritesheet-forge","serverVersion":"1.0.0","protocolVersion":"2024-11-05","firstSeenAt":"2026-09-12T13:27:12.921Z","lastSeenAt":"2026-10-10T14:26:30.976Z","observations":102,"toolNames":["server_info","png_to_spritesheet","split_spritesheet","trim_png","gif_to_spritesheet","gif_to_frames","frames_to_animation","spritesheet_to_animation"],"distinctSurfaces":1},"endpointFacts":[{"id":"ep_gyhsddsmsusr","url":"https://mcp.clawstudiouo.com/mcp","type":"mcp_streamable_http","factsCheckedAt":"2026-10-10T08:31:56.197Z","auth":{"observedAt":"2026-10-10T08:31:56.250Z","authRequired":false,"scheme":null,"resourceMetadata":null,"authorizationServer":null,"conformance":{"dpop":false,"rfc8414":false,"rfc9728":false,"pkceS256":false,"clientIdMetadataDocument":false,"dynamicClientRegistration":false}},"tls":{"observedAt":"2026-10-10T08:31:56.271Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"clawstudiouo.com","issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validFrom":"2026-08-30T08:32:36.000Z","validTo":"2026-11-28T09:32:20.000Z","daysToExpiry":48,"sanCount":3,"fingerprint256":"36:F4:0B:B0:77:6A:DF:89:CE:DF:8F:40:F8:E2:ED:B1:56:D5:12:40:7D:B3:CD:96:39:4F:B3:00:D0:44:FC:CD"}}]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"mcp_registry","key":"io.github.LAXY9887/spritesheet-forge","url":"https://registry.modelcontextprotocol.io/v0/servers/io.github.LAXY9887%2Fspritesheet-forge","firstSeenAt":"2026-09-06T04:20:52.442Z","fetchedAt":"2026-10-09T22:20:31.317Z","normalizedAt":"2026-10-09T22:20:31.317Z"}]},"firstSeenAt":"2026-09-06T04:20:52.442Z","updatedAt":"2026-10-10T14:28:26.682Z"}