MCP package
Description
Manage Roku package operations (sign, rekey, delete, squashfs, ls).
Action "sign":
- Builds and cryptographically signs your Roku channel as a .pkg file using the provided signing password, on the specified device.
- The resulting signed .pkg can be uploaded to the Channel Store or used for manual deployment.
- You must provide signingPassword.
- Optionally, you can specify app root (root), device (device), output directory (outDir), output filename (outFile), and config variant file (config).
- When root/config are provided, config defaults are resolved from that root (for example package.outDir).
Action "rekey":
- Rekeys the target Roku device using a signed .pkg key package.
- This updates the device signing-key context and can optionally assert the resulting developer ID.
- You must provide the package path (pkgPath) and signing password (signingPassword).
- Optionally, you can specify the device (device), expected developer ID assertion (devId), and app root (root) for config context.
Action "delete":
- Deletes the currently installed dev channel on the target device.
- Uses POST /plugin_install with mysubmit=Delete.
- Optional: device.
Action "squashfs":
- Converts the installed dev channel package to squashfs format for faster launch times.
- Uses POST /plugin_install with mysubmit=Convert to squashfs.
- Optional: device.
Action "ls":
- Lists installed package entries (channels and DCLs) using GET /plugin_install?dcl_enabled=1.
- Returns a JSON array where each item contains exactly: type, archiveFileName, fileType, size.
- Optional: device.
If you want to sign a package, always use action: "sign" or a prompt like "sign package".
If you want to rekey, always use action: "rekey" or a prompt like "rekey package".
You can describe your request in natural language or provide a JSON payload — both are accepted. For example:
Human-friendly:
"Sign package for /home/user/projects/my-app with password 1234"
"Sign package for root '/home/user/projects/my-app', device 'Work', password '1234', output dir './release', filename 'my-channel'"
"Rekey package with /home/user/keys/my-signing-key.pkg using password 1234"
"Rekey package /home/user/keys/my-signing-key.pkg on device 'Work' with password '1234' and expected dev id 'a1b2c3'"
Or JSON:
{
"action": "sign",
"root": "/home/user/projects/my-app",
"signingPassword": "1234",
"device": "Work",
"outDir": "./release",
"outFile": "my-channel"
}
{
"action": "rekey",
"pkgPath": "/home/user/keys/my-signing-key.pkg",
"signingPassword": "1234",
"device": "Work",
"devId": "a1b2c3"
}
Required for signing:
- action: "sign"
- signingPassword: Signing password
Required for rekey:
- action: "rekey"
- pkgPath: Path to signed .pkg key package
- signingPassword: Signing password
Optional:
- host: Direct target host/IP (bypasses device store selection for target resolution)
- password: Device password override (applies to host mode and can override stored device password)
- device: Device ID, IP, or name
- outDir: Output directory for signed package
- outFile: Output filename base
- config: Path to config file relative to root (default: roku-config.ts). Use variant naming like roku-config-<variant>.ts.
- devId: Expected developer ID for post-rekey assertion
- root: App root directory for config search context and cwd when applicable
Strict! Only these fields are allowed. Do not add extra or aliased fields.
See also
- rk device package
- rk device package delete
- rk device package ls
- rk device package rekey
- rk device package sign
- rk device package squashfs
Parameters
additionalProperties: false
| Name | Type | Required | Values |
|---|---|---|---|
| action | "sign" | "rekey" | "delete" | "squashfs" | "ls" | Yes | enum: "sign", "rekey", "delete", "squashfs", "ls" |
| root | string | No | |
| config | string | No | |
| host | string | No | |
| password | string | No | |
| device | string | No | |
| signingPassword | string | No | |
| pkgPath | string | No | |
| devId | string | No | |
| outDir | string | No | |
| outFile | string | No |
action
Not documented in the source.
root
App root directory to use as cwd for package operations
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)
host
Direct target host/IP (bypasses device store selection for target resolution)
password
Device password override (applies to host mode and can override stored device password)
device
Device ID, IP, or exact name
signingPassword
Signing password override for sign/rekey
pkgPath
Package path for rekey
devId
Expected developer ID for rekey assertion
outDir
Output directory for signed package
outFile
Output filename base for signed package
Updated about 6 hours ago