scratch-mcp
Allows reading, editing, and saving Scratch .sb3 project files programmatically, with tools for modifying sprites, scripts, costumes, sounds, and other project assets.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@scratch-mcpAdd a cat sprite that says 'Hello' when clicked"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
scratch4js
A pnpm monorepo of small, focused JavaScript packages for working with Scratch
and TurboWarp — edit .sb3 projects programmatically, talk to the Scratch
website, drive it all from an AI agent, and build & bundle TurboWarp extensions.
📖 Documentation: https://playforge-coding.github.io/scratch4js/
Packages
Path | Package | What it is |
| The core library: read/edit | |
| A class-based wrapper for the Scratch website API: read public data, and log in to download/edit/publish | |
| An MCP server exposing the library's editing surface as tools, plus a TurboWarp live-reload bridge. | |
| webpack/Rspack plugin that bundles a multi-file TurboWarp extension into one IIFE-wrapped file. | |
| Rollup/Rolldown/Vite plugin that bundles a multi-file TurboWarp extension into one IIFE-wrapped file. | |
| Scaffolder ( | |
| Reusable React building blocks for in-browser IDEs: split-pane layout, Monaco, an xterm/WebContainer terminal, file tree. | |
| In-browser IDE (built on | |
| TurboWarp Desktop userscript (ES modules → one IIFE): scratch-mcp live-reload + real-time collaboration over a WebSocket relay. |
Related MCP server: BridgeDesk
How they fit together
AI agent / MCP client
│ (MCP tools over stdio)
▼
┌──────────────┐ edits in memory ┌────────────┐
│ scratch-mcp │ ──────────────────► │ scratch4js │
└──────┬───────┘ save → .sb3 file └────────────┘
│ WebSocket bridge (localhost:9060)
▼ "loadSB3" → fetch /get.sb3
TurboWarp Desktop + userscript ──► live previewAn agent edits a project through scratch-mcp; on save the server writes the
.sb3 and signals the userscript, which reloads it into TurboWarp Desktop
instantly.
Getting started
pnpm install
pnpm build # build every package (-r build)
pnpm lint
pnpm fmt # prettier --write .Then:
Install the userscript into TurboWarp Desktop (
pnpm --filter userscript deploy; per-OS paths in its README).Run the MCP server and point your MCP client at it.
Open
.sb3files, edit, andsave_projectto see changes live.
Workspace layout
.
├── packages/
│ ├── scratch4js/ # the core library (+ examples + example.sb3)
│ ├── s-api4js/ # Scratch website API wrapper
│ ├── scratch-mcp/ # the MCP server + live-reload bridge
│ ├── tw-plugin-webpack/ # webpack/Rspack extension bundler plugin
│ ├── tw-plugin-rollup/ # Rollup/Rolldown/Vite extension bundler plugin
│ ├── create-tw-extension/ # extension scaffolder CLI
│ ├── web-editor/ # in-browser IDE building blocks
│ ├── tw-extension-maker/ # in-browser extension IDE
│ └── userscript/ # TurboWarp Desktop userscript: live-reload + collaboration
├── docs/ # Rspress documentation site
├── pnpm-workspace.yaml
└── package.json # workspace root (build/lint/fmt delegate to -r)This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/playforge-coding/scratch4js'
If you have feedback or need assistance with the MCP directory API, please join our Discord server