@eyejack-creator/mcp
@eyejack-creator/mcp
EyeJack Creator MCP server — connect Claude Code / Codex / Cursor to a live EyeJack editing session. Your AI reads the scene, edits it (revision-checked writes land in the open editor live, with a human-readable action log) and sees it — the screenshot tool renders the editor's current view back to the model, closing the read → edit → inspect loop.
Claude Code ──stdio──► @eyejack/mcp ──► @eyejack/creator-api ──► AppSync (agent session token)
Connect
- Open your artwork in the EyeJack Creator and press Connect AI — it mints a short-lived session token scoped to that artwork only and shows the exact command:
claude mcp add eyejack \
--env EYEJACK_SESSION_TOKEN=<token> \
--env EYEJACK_STAGE=dev \
-- npx -y @eyejack-creator/mcp
Other MCP clients consume the same {command, args, env} triple — Cursor (.cursor/mcp.json or Settings → MCP), Claude Desktop (claude_desktop_config.json), Codex (~/.codex/config.toml mcp_servers).
- Ask away: "What's in my scene?" · "Arrange the panels in a row" · "Duplicate the logo panel and place it on the left" — edits appear in your open editor as they happen.
The token lives as long as your editor tab (the tab heartbeats it; closing the tab lets it lapse within minutes). Pressing Connect AI anywhere supersedes the previous session — one active AI session per account.
Tools
| Tool | Does |
|---|---|
get_scene |
Full structured snapshot: metadata, parsed scene document (unity-space, degrees), sceneRevision, referenced files |
list_assets |
The artwork's asset files with usedInScene resolution |
import_asset |
Upload a local media file (image/video/GLB) — the open editor ingests it through its normal transcode/upload pipeline and auto-places it in the scene |
update_scene |
Whole-document, revision-checked scene write — applied live in the open editor with your ops action log; conflicts return the current scene to rebase on |
publish_artwork |
Publish the artwork to its public launch URL (draft/disabled → published) |
screenshot |
JPEG of the editor's current view, rendered by the open tab and relayed over AppSync (auto-degraded under the transport cap) — the agent's eyes |
get_session_status |
Session scope, active state, expiry |
Tool descriptions embed the scene-format contract so models handle coordinates/conventions correctly without external docs.
Develop
pnpm --filter @eyejack-creator/mcp build
# End-to-end smoke (spawns the server over stdio like a real client):
EYEJACK_SESSION_TOKEN=<token> node examples/smoke-client.mjs