MCP and AI Tools
Islumina has no remote MCP endpoint. Package documentation is served as static files that an AI can read directly; MCP is used only for AI Sprite Studio’s local image-generation workflow, because that workflow reads and writes local files.
Reading documentation needs no MCP
Section titled “Reading documentation needs no MCP”/llms.txt: ecosystem index./llms-full.txt: standalone ecosystem context and the 0.6.0 family contracts.- Each package’s
llms-full.txt: in the GitHub repository root, and also published with the npm package atnode_modules/<pkg>/llms-full.txt.
For package selection and validation, see the AI Quick Start.
AI Sprite Studio local MCP server
Section titled “AI Sprite Studio local MCP server”aisprite-studio ships a stdio MCP server that lets MCP-capable AI clients inspect sprite workspaces, repair the canonical reference, receive exact row or frame generation tasks, submit PNGs, and run deterministic QA with a scored summary. The server never calls an image API and stores no model API key; image generation stays with the connected AI host.
Install
Section titled “Install”After cloning aisprite-studio, run these commands from the repository root:
npm cinpm run test:mcptest:mcp builds mcp-server/dist/index.js and runs its tests. Run npm run serve when you also want the web editor; its AI Agent Handoff card generates the client configuration with your paths filled in.
Client configuration
Section titled “Client configuration”Replace /absolute/path/to/aisprite-studio in the examples below. AIPLAYBOOK_ROOT remains a temporary fallback for existing configurations; new setups should use AISPRITE_STUDIO_ROOT.
Codex, in ~/.codex/config.toml:
[mcp_servers.aisprite-studio]command = "node"args = ["/absolute/path/to/aisprite-studio/mcp-server/dist/index.js"]
[mcp_servers.aisprite-studio.env]AISPRITE_STUDIO_ROOT = "/absolute/path/to/aisprite-studio"Claude Code (project .mcp.json) and Claude Desktop (claude_desktop_config.json) use the same mcpServers object:
{ "mcpServers": { "aisprite-studio": { "command": "node", "args": ["/absolute/path/to/aisprite-studio/mcp-server/dist/index.js"], "env": { "AISPRITE_STUDIO_ROOT": "/absolute/path/to/aisprite-studio" } } }}Claude Code can also register it from the command line:
claude mcp add aisprite-studio -e AISPRITE_STUDIO_ROOT=/absolute/path/to/aisprite-studio -- node /absolute/path/to/aisprite-studio/mcp-server/dist/index.jsGemini CLI: add the same mcpServers["aisprite-studio"] object to .gemini/settings.json, then run /mcp list inside Gemini CLI to check that all nine tools are ready.
Antigravity or another image agent without an MCP client: if the host supports local stdio MCP, use the same JSON. Otherwise press Copy active frame task in the editor, generate the image, and hand it to an MCP-connected agent that calls aisprite_studio_submit_generated_frame.
Tools and call order
Section titled “Tools and call order”aisprite_studio_list_assets: list generation workspaces, frame progress, references, and QA status (read-only).- If the reference is marked failed, call
aisprite_studio_get_reference_task, generate one replacement, and submit it withaisprite_studio_submit_reference. - After the reference passes human visual review, generate the frames in either mode, always with every returned image reference:
- Row:
aisprite_studio_get_row_taskreturns a prompt, the reference and a numbered layout guide for one whole animation. Draw every pose in one image and submit it withaisprite_studio_submit_generated_row; the server keys it, cuts exactly the declared number of poses by content, and writes them at one shared scale, or writes nothing and says what it found. Drawing the poses together keeps identity, scale and palette consistent. Whenwarningsays the poses would be enlarged more than 1.25×, use frame tasks instead. - Frame:
aisprite_studio_get_generation_taskreturns one frame task; submit the PNG withaisprite_studio_submit_generated_frame.
- Row:
- Run
aisprite_studio_run_deterministic_qa. Itssummarygives the overall status, the lowest animation score (0–100), per-animation hints, and the failing frames with arepair_hinteach; regenerate what it names.aisprite_studio_get_qa_reportreturns the full report.
Every checked-in generated image is treated as failed, unapproved material. Submitting a replacement does not approve it, and deterministic QA is not visual approval; packing still requires a separate visual QA pass.
Trust boundary
Section titled “Trust boundary”- The hosted Sprite Playground is read-only and has no write endpoint.
- Local submission accepts only declared frame or animation names and valid PNGs up to 20 MiB. Frames must match
frame_sizeexactly and are written only toassets/{asset}/frames/{frame}.png; a row picture is written toassets/{asset}/raw/{animation}.pngand becomes frames only when exactly the declared number of poses is found. - Replacing an existing frame must be explicit, and MCP annotations mark it as destructive.
Browser agents and the editor
Section titled “Browser agents and the editor”The hosted container and editor use the exact-origin aibridgejs iframe adapter. A browser agent can call window.aispriteStudioBridge.requestContext() and observe the aisprite-studio:context event, or use the bounded selectAsset(asset) and reloadAssets() commands. This channel cannot generate images or write files; those operations remain local MCP-only.