MCP build_app
Description
Build a Roku app at a given project root. Streams progress via SSE and returns a summary.
Required parameters:
- root (string): ABSOLUTE filesystem path to the Roku app root directory.
A valid Roku app root contains package.json, src/, pkg/, and a Roku config file (default: roku-config.ts).
Optional parameters:
- config (string): Path to config file relative to root (default: roku-config.ts).
Use variant naming like roku-config-<variant>.ts when multiple app variants share one root. - disableTypeChecking (boolean): Disable TypeScript semantic type checking before build.
- lowerArrayDestructuring (boolean): rewrite
const [a, b] = createSignal()and similar Solid calls to indexed reads for smaller bytecode (maps to --lower-destructuring / --no-lower-destructuring). Omit to use the default: on for release builds, off for debug builds. - perfettoPaths (string[]): Folder path prefixes for Perfetto auto-instrumentation during build.
- perfettoExclude (string[]): Babel visitor shapes to skip during Perfetto auto-instrumentation.
- perfettoFilter (string[]): Trace name substrings to include during Perfetto auto-instrumentation.
IMPORTANT: Before calling this tool, search the workspace to find the app's location. Common app locations:
- Example apps: /path/to/workspace/rsg-sdk/external/examples/[app-name]
- Workspace apps: /path/to/workspace/apps/[app-name]
Use file_search or semantic_search to locate the app directory, then pass its absolute path.
Example: { "root": "/home/user/projects/button-row" }
See also
Parameters
additionalProperties: false
| Name | Type | Required | Values |
|---|---|---|---|
| root | string | Yes | |
| config | string | No | |
| buildType | string | No | |
| pkg | boolean | No | |
| outDir | string | No | |
| output | string | No | |
| bumpMinor | boolean | No | |
| bumpBuild | boolean | No | |
| metafile | string | No | |
| dev | boolean | No | |
| showCopiedFiles | boolean | No | |
| disableTypeChecking | boolean | No | |
| lowerArrayDestructuring | boolean | No | |
| perfettoPaths | array<string> | No | |
| perfettoExclude | array<"FunctionDeclaration" | "VariableDeclarator" | "FunctionExpression" | "ObjectMethod"> | No | |
| perfettoFilter | array<string> | No |
root
Absolute path to the Roku app root
config
Path to config file relative to root (default: roku-config.ts). Use --config flag; -c is not available (reserved for --console in rk dev)
buildType
Free-form label returned by getBuildType() in roku-config.ts (equivalent to --build-type; default: production)
pkg
Whether to produce a .bin package file in addition to the standard build output (equivalent to --archive flag; --package is a deprecated alias)
outDir
Build output directory (equivalent to --out-dir / -od)
output
Package file name (equivalent to --output / -o)
bumpMinor
Not documented in the source.
bumpBuild
Not documented in the source.
metafile
Path to write build metafile
dev
Build with development artifacts (no minify, source maps)
showCopiedFiles
Show individual file copy operations (verbose mode)
disableTypeChecking
Disable TypeScript semantic type checking before build
lowerArrayDestructuring
Lower array destructuring of Solid calls (createSignal etc.) to indexed reads (--lower-destructuring / --no-lower-destructuring). Default: on for release builds, off for debug builds
perfettoPaths
Folder path prefixes for Perfetto auto-instrumentation during build
perfettoExclude
Babel visitor shapes to skip during Perfetto auto-instrumentation
perfettoExclude fields
| Name | Type | Required | Values | Description |
|---|---|---|---|---|
| perfettoExclude[] | "FunctionDeclaration" | "VariableDeclarator" | "FunctionExpression" | "ObjectMethod" | No | enum: "FunctionDeclaration", "VariableDeclarator", "FunctionExpression", "ObjectMethod" | Not documented in the source. |
perfettoFilter
Trace name substrings to include during Perfetto auto-instrumentation
Updated about 4 hours ago