Drive your ArtCraft desktop apps with the OpenCode AI agent — over MCP.
New here? Install in under a minute: double-click install-opencode-config.bat, then run opencode mcp list. Every app installed on your machine should show green (17 here: 16 ArtCraft + blender). Entries for apps you don't have installed show failed: system cannot find the path specified — install the app or delete its block. Details in troubleshooting.
OpenCode is an AI coding agent. ArtCraft apps (WordCraft, VectorCraft, SolidCraft…) each ship a headless CLI that can act as a Model Context Protocol (MCP) server. This repo wires them together: one portable opencode.json covering all 19 suite apps as OpenCode tools, plus a one-click installer that discovers which ones exist on your machine and merges only those into your personal config.
Install — from template to your machine:
flowchart TB
TPL["opencode.json\nall 19 suite apps, 1-tab\n'.' roots, no usernames"]
BAT["install-opencode-config.bat"]
PS1["merge-opencode-config.ps1\ninstall present exes, skip missing\nkeep blender + models, .bak first"]
GLB["global opencode.json\ninstalled servers merged\n16 of 19 on this machine"]
TPL --> PS1
BAT --> PS1
PS1 --> GLB
Control — from agent to apps to files:
flowchart LR
You(["You"]) --> OC["OpenCode agent"]
OC -- "stdio" --> AUTO
OC -- "stdio" --> SHORT
OC -- "stdio" --> ALLOW
OC -- "stdio" --> MAIL
OC -- "stdio" --> BARE
AUTO["automation roots\nword vector photo deck\npdf effect sound\ncad design fig = guessed"] --> Files
SHORT["short roots\ntexture material"] --> Files
ALLOW["allow-path\nsolidcraft"] --> Files
MAIL["files\nmailcraft --files"] --> Files
BARE["bare mcp\ngrid film light\ncraft-anything ani"] --> Files
Files["project files\n. = launch folder"] -- "tool results" --> OC
Verify — what the list tells you:
flowchart LR
L["opencode mcp list"] --> OK["connected\nserver is up"]
L --> MISS["failed: cannot find path\napp not installed"]
L --> FLAG["failed: unknown option\nwrong flags for that CLI"]
In short: OpenCode finds your apps — not the other way around. Each entry in opencode.json tells OpenCode which executable to launch and which folders it may touch.
| File | What it does |
|---|---|
opencode.json |
The portable template — all 19 ArtCraft servers, each with its own sandbox flags, "." roots, no hardcoded username. |
install-opencode-config.bat |
One-click installer. Discovers installed apps, merges them into your global config, backs it up first, then relaunches OpenCode. |
merge-opencode-config.ps1 |
The merge engine behind the .bat. Installs only servers whose exe exists on disk, skips the rest, keeps everything else you already had. |
All JSON in this repo uses 1-tab indentation as standard — including everything the merger writes.
- Double-click
install-opencode-config.bat. - It backs up your current global config (
opencode.json.<date>.bak), discovers which suite exes exist (16 of 19 on this machine), merges those in, and restarts OpenCode. - Run
opencode mcp list— every installed app should be green:
✓ anicraft connected
✓ blender connected
✓ craftanything connected
✓ deckcraft connected
✓ effectcraft connected
✓ filmcraft connected
✓ gridcraft connected
✓ lightcraft connected
✓ mailcraft connected
✓ materialcraft connected
✓ pdfcraft connected
✓ photocraft connected
✓ solidcraft connected
✓ soundcraft connected
✓ texturecraft connected
✓ vectorcraft connected
✓ wordcraft connected
Your existing setup is safe: the merger keeps entries it doesn't know about (like blender) and your model / small_model choices. It only adds or refreshes ArtCraft servers whose exe is actually installed — the rest are reported as skipped and left untouched. Servers for apps you never installed show ✗ failed: system cannot find the path specified; either install the app or delete its block from your copy.
Copy opencode.json into your project folder (where you launch opencode from). Project config overrides global where they overlap.
powershell -NoProfile -ExecutionPolicy Bypass -File merge-opencode-config.ps1 -Repo opencode.json -GlobalPath "%USERPROFILE%\.config\opencode\opencode.json"
opencode mcp list- OpenCode installed and on
PATH. Check withopencode --versionin a fresh terminal. If it works there but not in your editor, restart the editor so it picks up the newPATH. - ArtCraft apps installed under
C:\Program Files\<App>\. The template covers all 19 suite apps; on this machineCADCraft,DesignCraftandFigCraftaren't installed, so the installer skips those three entries. AniCraft ships inside the suite folder (C:\Program Files\ArtCraft\AniCraft\) rather than in its ownC:\Program Files\AniCraft\— the installer looks in both and rewrites the path to whichever exists. - Windows. Your global config lives at
%USERPROFILE%\.config\opencode\opencode.json.
Every ArtCraft CLI exposes mcp, but each one guards file access with different flags. Using the wrong flag is the #1 cause of ✗ failed lines — 16 entries below were verified against that exe's real mcp --help output plus a spawn probe; the last 3 use the most common flag family as a best guess (those apps aren't installed here) and are marked accordingly.
| App | Command tail | Flag family |
|---|---|---|
| wordcraft | mcp --automation-read-root . --automation-write-root . |
automation roots |
| vectorcraft | mcp --automation-read-root . --automation-write-root . |
automation roots |
| solidcraft | mcp --allow-path . |
--allow-path (only SolidCraft) |
| photocraft | mcp --automation-read-root . --automation-write-root . |
automation roots |
| gridcraft | mcp |
bare — no root flags exist |
| deckcraft | mcp --automation-read-root . --automation-write-root . |
automation roots |
| pdfcraft | mcp --automation-read-root . --automation-write-root . |
automation roots |
| filmcraft | mcp |
bare — headless or --bridge |
| lightcraft | mcp |
bare — session flags only |
| effectcraft | mcp --automation-read-root . --automation-write-root . |
automation roots |
| soundcraft | mcp --automation-read-root . --automation-write-root . |
automation roots |
| texturecraft | mcp --read-root . --write-root . |
short form, no automation- prefix |
| materialcraft | mcp --read-root . --write-root . |
short form, same dialect as texturecraft |
| mailcraft | mcp --files . --allow mailbox |
--files DIR — file sandbox; template also passes --allow mailbox so the agent can open mailbox files (send/delete/accounts/settings/input stay gated) |
| craftanything | mcp |
bare — --allow-run is code-execution consent, not a path gate |
| cadcraft | mcp --automation-read-root . --automation-write-root . |
guessed, unverified — app not installed here |
| designcraft | mcp --automation-read-root . --automation-write-root . |
guessed, unverified — app not installed here |
| figcraft | mcp --automation-read-root . --automation-write-root . |
guessed, unverified — app not installed here |
| anicraft | mcp |
bare — no root flags exist; it reads and writes the paths the agent names, with your own permissions |
If you install one of those three, confirm its flags first with "C:\Program Files\<App>\<cli>.exe" mcp --help and correct the template if they differ — then re-run the installer. (solvecraft-cli.exe exists on disk but prints "deprecated, use solidcraft-cli", so it has no entry.)
Two layout notes for AniCraft: its CLI lives in the suite folder (C:\Program Files\ArtCraft\AniCraft\anicraft-cli.exe), not in a C:\Program Files\AniCraft\ of its own, and the installer rewrites the entry to whichever of the two paths it finds. Its server also takes an optional document argument — mcp opens an empty one, mcp --sample opens the bundled sample, mcp scene.anicraft opens yours — so the template stays on the bare mcp.
Almost everything official lives under @storytold (the ArtCraft org, getartcraft.com) — each app has its own repo with releases, docs and an issue tracker. The exceptions are SolidCraft, a community app by Tangency Labs, and MailCraft, a community app (ZIDAN44/mailcraft). This config repo itself is xevilmaxx/ArtCraftMCP.
| App | GitHub repo | Report a bug (#) |
|---|---|---|
| wordcraft | storytold/wordcraft | #issues |
| vectorcraft | storytold/vectorcraft | #issues |
| solidcraft | tangency-labs/solidcraft (community app) | #issues |
| photocraft | storytold/photocraft | #issues |
| gridcraft | storytold/gridcraft | #issues |
| deckcraft | storytold/deckcraft | #issues |
| pdfcraft | storytold/pdfcraft | #issues |
| filmcraft | storytold/filmcraft | #issues |
| lightcraft | storytold/lightcraft | #issues |
| effectcraft | storytold/effectcraft | #issues |
| soundcraft | storytold/soundcraft | #issues |
| texturecraft | storytold/texturecraft | #issues |
| materialcraft | storytold/materialcraft | #issues |
| mailcraft | ZIDAN44/mailcraft (community app) | #issues |
| craftanything | storytold/craft-anything | #issues |
| cadcraft | storytold/cadcraft | #issues |
| designcraft | storytold/designcraft | #issues |
| figcraft | storytold/figcraft | #issues |
| anicraft | storytold/anicraft | #issues |
Also useful: storytold/artcraft (the AI studio) and storytold/craft-launcher (the app launcher). Found a wrong flag or a new app release that changed the CLI? Open an issue in the app's repo above, or in this repo.
Each headless server is sandboxed: with no root flag it can't read or write your project files (symptom: SolidCraft saves landing in Temp\solidcraft-mcp-… with "Save to Downloads is blocked"). The template grants access with ".":
- Portable — no
C:\Users\<You>inside, works for every user and checkout. - Follows you —
"."means "wherever you launched OpenCode". - Recursive — subfolders like
.\projects\designs\part1.scare covered. - Repeatable — most CLIs accept the flag more than once for several folders.
Need wider access? Replace "." with an absolute folder on the servers you want to widen. Prefer the smallest scope that works.
AniCraft is the exception. Its mcp server has no root flags at all — there is no sandbox to widen. It reads and writes the paths the agent names, with your own permissions, so scope it by asking for work inside a project folder. The engine's own guard is the confirm: true that destructive commands demand before they replace a file.
opencode
opencode mcp list
opencode run "Export the current VectorCraft canvas to SVG"
opencode run --quiet "Parse input vectors from build/out.svg and feed coordinates to the cutting engine RPC on localhost:9000"Headless, without MCP:
"C:\Program Files\WordCraft\wordcraft-cli.exe" run --file doc.docx --cmd "caret.docEnd" --save out.docx --printopencode isn't installed or isn't on your PATH
Run opencode --version in a new terminal. "Not recognized" means OpenCode isn't installed or its folder isn't in system PATH. If it works in a terminal but not inside your editor or the Craft Anything extension, restart the IDE — it inherited the old environment. Some extensions also have a setting for the explicit opencode binary path.
'wordcraft-mcp-executable' is not recognized…
That name is a placeholder from generic docs — no such binary exists. Point command at the real exe, e.g. ["C:\Program Files\WordCraft\wordcraft-cli.exe", "mcp", …]. Keep each argument as its own JSON array element, especially paths with spaces.
Every server shows ✗ failed … unknown option '--allow-path'
--allow-path is SolidCraft-only. The other CLIs reject it (craft-anything even suggests --allow-run, which is unrelated — it gates code execution, not folders). Fix: use this repo's opencode.json, which carries the per-app flags from the matrix, re-run the installer, then opencode mcp list.
Saves land in Temp, destination "blocked"
The server's sandbox doesn't include your destination. Either launch OpenCode in the destination's parent (roots are "."), or add that folder as a root flag for the server, then restart OpenCode so the server respawns with the new flags.
Port already in use (opencode mcp list, opencode reload) / shows nothing
A stale opencode background service is holding managed-service port 28894, so any command needing the service fails with Failed to start server. Is port 28894 in use?. Right after killing it, the first command may briefly say No MCP servers configured while the service reboots — just run it again. Find the squatter and stop just that process:
powershell -NoProfile -Command "Get-NetTCPConnection -LocalPort 28894 | Select-Object OwningProcess"
taskkill /F /PID <that-number>
opencode mcp list✗ failed: The system cannot find the path specified
That app isn't installed where the template expects (C:\Program Files\<App>\<cli>.exe). This is normal for cadcraft, designcraft and figcraft on machines without them — and for any app when you run opencode mcp list from inside this repo (the repo template itself lists all 19 as project config). Either install the missing app or delete its block from your copy of opencode.json. For AniCraft, check the suite folder too: the CLI is at C:\Program Files\ArtCraft\AniCraft\anicraft-cli.exe, and the installer relocates the entry automatically if only that path exists.
My blender server / model settings disappeared
That was the old installer, which overwrote the global file. The current one merges and writes a timestamped .bak first. Restore from the .bak next to your global config, then run the new installer.
- OpenCode config & precedence (
~/.config/opencode/opencode.json, projectopencode.json,OPENCODE_CONFIGoverrides) — opencode.ai/docs/config - MCP servers (
type: local+command, optionalcwd/environment/timeout) — opencode.ai/docs/mcp-servers - The
--allow-path-everywhere claim from an earlier AI troubleshooting thread is wrong — 16 of the 19 matrix entries were verified exe-by-exe (the other 3 use the most common flag family as a guess), andopencode mcp listreports every installed server connected.