Skip to content

williamcorrea23/androidbuilder-mcp

Repository files navigation

AndroidBuilder MCP Server

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.

Tools

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"

Requirements

  • Node.js >=22.12
  • Chrome or Chromium launched with remote debugging enabled
chrome.exe --remote-debugging-port=9222

Open your App Inventor-family IDE and load the project in that Chrome session.

Install

npm install
npm run build

Run the server:

node dist/index.js

MCP Config

Use .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.

Environment

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, Claude, and Antigravity

  • 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.

Development

npm run build
npm test
npm pack --dry-run

npm 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.

Troubleshooting

  • 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.

Supported IDEs

  • AndroidBuilder
  • MIT App Inventor 2
  • MIT App Inventor Code
  • Niotron
  • Kodular
  • AppyBuilder

License

MIT

About

MCP server for MIT App Inventor, AndroidBuilder, Niotron and Kodular — lets LLMs control the Designer and Blocks workspace via Chrome DevTools Protocol

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors