mcpixels.app
A pixel canvas that people and AI agents can edit together through WebMCP.
First seen 2026-09-07 · Last seen 2026-09-14 · Source: webmcp.com
Answer 1 · Act 5 · Transact 0 · Score: Not yet scored
Tool inspector
draw_pixel_art
Draw editable pixel art on the live canvas; x and y run -512..511, y downward. rows place one-character palette entries from origin; "." keeps a cell and "-" erases it. Set format:"rle" to send those rows as runs instead ("12k8r." is twelve k, eight r, one dot), which fits a whole large scene in one call. ops are ";"-separated: c COLOR; px x y...; line x0 y0 x1 y1; rect/ellipse x0 y0 x1 y1 [f]; poly x0 y0 x1 y1 x2 y2... [f]; path x0 y0 x1 y1...; fill x0 y0 x1 y1 checker|dither A B [n]; bucket x y; recolor from to x0 y0 x1 y1. COLOR is a palette key, hex, or "-"; f fills. poly closes back to its first point and path does not, so poly ... f is any filled polygon — a roof, a mountain, a fin. fill writes a two-color pattern over a whole rectangle: checker takes a square size, dither an ordered-dither percent of B. Ops use absolute coordinates. Rows run first and later writes win. Off-canvas clips. One call is one undo step; invalid input changes nothing.
Input schema
| Property | Type | Required | Description |
|---|---|---|---|
origin |
array | no | Canvas position of the top-left cell of rows. |
palette |
object | no | Character to color, e.g. {"k":"#161616","r":"#ff5c35"}. Up to 64 entries. "." and "-" are reserved. |
rows |
array | no | Picture rows, top to bottom. As "chars": at most 256 rows of 256 characters and 32768 cells per call, counted as widest row x row count — so 256x256 is over the limit. As "rle": at most 1024 rows of 1024 characters decoding to 262144 cells, which covers a 512x512 picture in one call. |
format |
string | no | How rows are encoded. Default "chars", one character per cell; "rle" reads them as runs, as above. Digits are run counts in "rle", so no palette key may be a digit there. |
ops |
string | no | Command string, up to 128 ops and 4000 characters. px takes up to 500 x y pairs, poly and path up to 64 points; one shape or fill covers up to 50000 pixels. Ops are not counted against the rows cell limit, so large flat geometry is cheapest here. |
mirror |
string | no | Also mirror everything this call draws across the canvas center. |
dryRun |
boolean | no | Validate and price the call without drawing: same counts, bounds, warnings and hint, no pixels changed and no undo step. Worth one call before a big or expensive draw. |
Raw JSON schema
{
"type": "object",
"properties": {
"origin": {
"type": "array",
"items": {
"type": "integer",
"minimum": -512,
"maximum": 511
},
"minItems": 2,
"maxItems": 2,
"description": "Canvas position of the top-left cell of rows."
},
"palette": {
"type": "object",
"description": "Character to color, e.g. {\"k\":\"#161616\",\"r\":\"#ff5c35\"}. Up to 64 entries. \".\" and \"-\" are reserved.",
"additionalProperties": {
"type": "string",
"pattern": "^#([0-9A-Fa-f]{3}|[0-9A-Fa-f]{6})$"
}
},
"rows": {
"type": "array",
"description": "Picture rows, top to bottom. As \"chars\": at most 256 rows of 256 characters and 32768 cells per call, counted as widest row x row count — so 256x256 is over the limit. As \"rle\": at most 1024 rows of 1024 characters decoding to 262144 cells, which covers a 512x512 picture in one call.",
"items": {
"type": "string",
"maxLength": 1024
},
"maxItems": 1024
},
"format": {
"type": "string",
"enum": [
"chars",
"rle"
],
"description": "How rows are encoded. Default \"chars\", one character per cell; \"rle\" reads them as runs, as above. Digits are run counts in \"rle\", so no palette key may be a digit there."
},
"ops": {
"type": "string",
"description": "Command string, up to 128 ops and 4000 characters. px takes up to 500 x y pairs, poly and path up to 64 points; one shape or fill covers up to 50000 pixels. Ops are not counted against the rows cell limit, so large flat geometry is cheapest here.",
"maxLength": 4000
},
"mirror": {
"type": "string",
"enum": [
"left-right",
"top-bottom",
"both"
],
"description": "Also mirror everything this call draws across the canvas center."
},
"dryRun": {
"type": "boolean",
"description": "Validate and price the call without drawing: same counts, bounds, warnings and hint, no pixels changed and no undo step. Worth one call before a big or expensive draw."
}
},
"additionalProperties": false
}
Similar websites
tracinginsights.com
Analyze Formula 1 racing data with interactive charts for lap times, live telemetry, timing data and race performance. Explore and Compare drivers across multip…
fiveminutebrief.ai
panoptik-studio.vercel.app
Browser-native demo video editor where humans and AI agents co-edit on the same canvas via WebMCP. No uploads, no server.
webroom.openai.chatgpt.site
A private, browser-based photo editor with precise manual controls and agent-ready WebMCP tools.