PocketDraft MCP
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| port | No | Fixed loopback port, passed as --port. Only needed if a fixed port is necessary; otherwise each MCP process uses a separate random loopback port. | |
| origin | No | Allowed editor origin, passed as --origin. Only that exact origin will be accepted. For a development editor use --origin http://localhost:3010. | https://tools.ipocket.xyz |
| workspace | Yes | Absolute path to the workspace directory for screenshots and exports, passed as --workspace. The directory must exist. | |
| POCKETDRAFT_MCP_DEBUG | No | Set to 1 in your MCP client environment for JSON diagnostics on stderr (tool, duration and error code only). |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| pocketdraft_connectionA | Get connection state, recent operation IDs and pairing code. Paste the code only into the PocketDraft editor. |
| pocketdraft_operation_statusA | Read a recent browser operation receipt after a timeout/cancellation. No automatic retry. Receipts are bounded to 100 operations / ten minutes while the process runs. |
| pocketdraft_list_catalogC | List templates, devices, frames, fonts, aspects, themes or gradients. |
| pocketdraft_get_catalogB | Get one catalog item without waiting for browser work. |
| pocketdraft_inspect_projectB | Read current revision, history entries and ordered layers with full styles and browser-measured pixel bounds. Filter by canvasIds/layerIds/kind/name/text; names/text only find candidates. No image bytes. Full project optional. |
| pocketdraft_batch_mutationA | Apply 1–50 commands as one durable browser edit and one Undo step. Create/import must be first. Only new images cross the bridge. Pixel geometry runs in the browser. dryRun validates without saving; optional preview renders the candidate. Alias creations with as and reference them using {ref: alias}. Read command resources first. |
| pocketdraft_attach_fileC | Attach a local screenshot/image/background within --workspace. Changes are committed to the paired editor. |
| pocketdraft_previewB | Render the paired canvas, optionally a region in logical pixels at a chosen scale and geometric bounds overlay. Returns an MCP image and dimensions. |
| pocketdraft_exportB | Export PNG/JPEG or an editable project package into a new workspace/exports directory. Missing images fail. Use allCanvases for a set; package limits remain 8 MiB/image, 32 MiB total. |
| pocketdraft_validate_projectB | Check missing assets, bounds, crop and text layout with browser fonts. Overlaps are allowed. Optionally preflight an explicit layout.sync without changing the project. |
| pocketdraft_historyA | Undo/redo exactly the history entry returned by inspect. Requires its entryId and current revision; saves atomically before moving history. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| schema | |
| projects.create | |
| projects.rename | |
| projects.import | |
| canvases.add | |
| canvases.delete | |
| canvases.rename | |
| canvases.switch | |
| canvases.setAspect | |
| templates.apply | |
| templates.applySet | |
| layers.addDevice | |
| layers.addText | |
| layers.addImage | |
| layers.update | |
| layers.delete | |
| layers.reorder | |
| layers.setBackground | |
| layers.setDevicePadding | |
| assets.attach | |
| layout.sync | |
| canvases.duplicate | |
| canvases.reorder | |
| layers.duplicate | |
| assets.reuse | |
| devices.clearScreenshot | |
| devices.setCrop | |
| devices.resetCrop | |
| layers.move | |
| layers.position | |
| layers.resize | |
| layers.rotate | |
| layers.align | |
| layers.distribute | |
| texts.reflow | |
| texts.fit |
TDQS
Scored across 11 tools
Most tools target distinct concerns: set-level (connection, operation_status) vs. catalog (list/get) vs. project (inspect/validate/history) vs. content (attach_file/preview/batch_mutation/export). There is mild overlap since batch_mutation also offers dryRun and optional previewing, which brushes against preview and validate_project, but descriptions clarify the boundaries.
All tools share a consistent pocketdraft_ prefix and snake_case, with a mostly verb_noun shape (attach_file, list_catalog, get_catalog, inspect_project, validate_project). Minor deviations are the noun-only names pocketdraft_connection and pocketdraft_history, and pocketdraft_preview, which break the strict verb_noun pattern slightly.
11 tools sits comfortably in the well-scoped 3-15 range. Each tool maps to a distinct capability (connection, file attach, preview, mutation, export, status, catalog read, inspection, validation, history), and none appear redundant.
The surface covers a full editing lifecycle: connect, inspect, mutate, validate, preview, export, and undo/redo, plus catalog discovery and operation receipts. A minor gap exists around explicit delete/removal operations for projects or workspace artifacts, though batch mutation and history may partially cover this.