ScratchJr Desktop MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SCRATCHJR_EXE | No | Path to the ScratchJr executable. If not set, the server auto-detects it. | Auto-detected |
| SCRATCHJR_DATABASE | No | Path to the ScratchJr SQLite database file. | ~/Documents/ScratchJR/scratchjr.sqllite |
| SCRATCHJR_BACKUP_DIR | No | Directory where database backups are stored. | This server's backups/ folder |
| SCRATCHJR_DEBUG_PORT | No | The local debugging port used to connect to ScratchJr. | 9223 |
| SCRATCHJR_OUTPUT_DIR | No | Directory where screenshots, JSON exports, and other artifacts are saved. | This server's artifacts/ folder |
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
} |
| prompts | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| scratchjr_statusA | Check the live ScratchJr connection without launching the app. |
| scratchjr_connectA | Connect to ScratchJr Desktop or launch it with a localhost-only control port. Does not force-close existing sessions. |
| scratchjr_list_assetsA | List real installed character, background and sound assets. Use exact md5 filenames in projects. |
| scratchjr_block_referenceB | Get supported blocks, values, units and ScratchJr project-building guidance. |
| scratchjr_list_projectsA | List saved ScratchJr projects. |
| scratchjr_get_projectA | Read project data, page/object IDs and revision. Includes unsaved editor state when open. Call before editing. |
| scratchjr_create_projectA | Create, persist and open a complete native ScratchJr project with up to four pages. Characters, backgrounds, text and block scripts are built automatically. Returns the new ID and data. |
| scratchjr_edit_projectA | Apply a batch of edits to an existing project and reopen it. Supply the revision from get_project. set_character replaces the whole character; use set_scripts to change only code. |
| scratchjr_open_projectB | Save the current project and open the requested project in the real editor. |
| scratchjr_save_projectA | Save the open project, regenerate its thumbnail and flush all data to disk. |
| scratchjr_run_projectA | Run green-flag scripts in the current project, optionally opening a specified project. |
| scratchjr_stop_projectA | Stop scripts; optionally reset characters to their starting positions. |
| scratchjr_click_characterA | Trigger a character click event to test an interactive project. Character must be on the current page. |
| scratchjr_backupA | Save current work and make a full timestamped database backup. |
| scratchjr_export_projectA | Export a JSON backup of a project and referenced custom media. This is not the tablet .sjr sharing format. |
| scratchjr_add_svg_assetA | Add a custom character or background using static SVG geometry. Use SVG with a matching viewBox; backgrounds should be 480×360. Returns an md5 asset name usable in projects. |
| scratchjr_screenshotA | Capture the real ScratchJr window and return an image for visual verification, plus its saved file path. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| create-scratchjr-project | Build and verify a ScratchJr story, animation or game. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| guide | ScratchJr workflow and supported block reference |
TDQS
Scored across 17 tools
Each tool targets a distinct operation: connection status, launching, asset listing, block documentation, project listing, screenshot, project CRUD, execution control, event triggering, backup, export, and SVG import. There is no overlap between tools; even get_project, open_project, and save_project serve clearly separate read, open, and persist functions.
Most tools follow the verb_noun pattern (list_assets, get_project, create_project, edit_project, run_project, stop_project, click_character, export_project, add_svg_asset). A few deviations exist (status, connect, block_reference, screenshot, backup) that are still intuitive but break the strict convention. Overall the pattern is recognizable and readable.
With 17 tools, the server is slightly above the typical well-scoped range of 3–15, but each tool covers a distinct functional area of the ScratchJr desktop integration. The count feels justified given the breadth of operations (asset management, project lifecycle, execution control, backup/export, custom assets).
The tool surface covers the full project lifecycle: create, read, edit, open, save, run, stop, and backup, plus asset listing and import. Minor gaps include no explicit delete-project operation and no direct asset removal, but these are rarely needed for typical automation and agents can work around them. Overall the surface is comprehensive for the intended use case.