Local Model Context Protocol server for MIT App Inventor, AndroidBuilder, Kodular, Niotron, and AppyBuilder. It connects to a Chrome/Chromium session through the Chrome DevTools Protocol and lets MCP clients inspect the Designer and Blocks workspaces.
The server is safe by default: read tools are available immediately, while write tools require explicit environment flags.
| Tool | Mode | Notes |
|---|---|---|
get_project_info |
Read | Project, active screen, view, IDE type, URL |
list_screens |
Read | Lists available screens |
switch_screen |
Read/navigation | Switches active screen |
get_component_tree |
Read | Designer component tree |
get_component_properties |
Read | Selects component by name when possible |
get_blocks_xml |
Read | Exports Blockly XML |
update_component_property |
Write | Requires ANDROIDBUILDER_ALLOW_WRITE=1 |
add_blocks |
Write | Requires ANDROIDBUILDER_ALLOW_WRITE=1 |
clear_blocks |
Destructive | Requires ANDROIDBUILDER_ALLOW_WRITE=1 and confirm: "CLEAR_BLOCKS" |
click_element |
Unsafe fallback | Requires ANDROIDBUILDER_ALLOW_UNSAFE_CLICK=1 and confirm: "CLICK_ELEMENT" |
- Node.js
>=22.12 - Chrome or Chromium launched with remote debugging enabled
chrome.exe --remote-debugging-port=9222Open your App Inventor-family IDE and load the project in that Chrome session.
npm install
npm run buildRun the server:
node dist/index.jsUse .mcp.json in this repository for local development:
{
"mcpServers": {
"androidbuilder-mcp": {
"command": "node",
"args": ["dist/index.js"],
"env": {
"BROWSER_DEBUG_PORT": "9222",
"ANDROIDBUILDER_ALLOW_WRITE": "0"
}
}
}
}For clients that do not resolve relative paths from the repository root, replace dist/index.js with an absolute path.
| Variable | Default | Description |
|---|---|---|
BROWSER_DEBUG_PORT |
9222 |
Chrome remote debugging port |
EVAL_TIMEOUT_MS |
15000 |
Max time for page evaluation |
ANDROIDBUILDER_DEBUG |
0 |
Verbose stderr logging |
ANDROIDBUILDER_ALLOW_WRITE |
0 |
Enables property/block mutations |
ANDROIDBUILDER_ALLOW_UNSAFE_CLICK |
0 |
Enables arbitrary CSS click fallback |
- Codex plugin manifest:
.codex-plugin/plugin.json - Portable MCP config:
.mcp.json - Open Agent Skill:
skills/build-app-inventor-apps/SKILL.md
See docs/compatibility.md for client-specific setup notes.
npm run build
npm test
npm pack --dry-runnpm test builds the server, runs a real MCP SDK smoke test, verifies write tools are gated, checks the no-Chrome error path, and validates package metadata.
Failed to connect to Chrome CDP: start Chrome with--remote-debugging-port=9222.No active AndroidBuilder/App Inventor tab found: open a project in the debug Chrome session.Component tree (.gwt-Tree) not found: switch to Designer view.Blockly is not available: switch to Blocks view.- Write tool rejected: restart the MCP server with
ANDROIDBUILDER_ALLOW_WRITE=1.
- AndroidBuilder
- MIT App Inventor 2
- MIT App Inventor Code
- Niotron
- Kodular
- AppyBuilder
MIT