streamdeck_write_page
Create, replace, or update a Stream Deck desktop page manifest with buttons, actions, dial layouts, and settings; restart the app afterward to show edits on the device.
Instructions
Create a new page or replace/update an existing Stream Deck desktop page manifest. Authoring preference order: (1) paste a native 'action' from streamdeck_find_actions or streamdeck_read_page's button.raw — best for installed plugins with private Settings; (2) synthesize via plugin_uuid + action_uuid + settings from streamdeck_read_plugins when no configured instance exists; (3) script-backed Open actions via path / streamdeck_create_action for custom automation; also supports page-nav (action_type) and the bundled MCP dial. Validation: unknown plugin_uuid/action_uuid raises a clear error listing what is installed; missing settings fields are reported non-fatally in the result's 'warnings'. IMPORTANT: the Elgato desktop app overwrites profile manifests from its in-memory state on quit, so writes made while the app is running are lost. This tool refuses to write when the app is running unless auto_quit_app=True is passed. Call streamdeck_restart_app once your edits are complete to make the changes visible on the device.
Tool call template
This tool declares no required parameters. Add optional parameters from the input schema as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {},
"name": "streamdeck_write_page"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| buttons | No | Buttons to write. Use streamdeck_create_action to build Open or script-backed actions. Accepts a JSON array or a JSON-encoded string — some MCP clients stringify nested arrays in transit. | |
| page_name | No | Optional page name stored in the page manifest. | |
| create_new | No | Create a new page instead of updating an existing one. | |
| page_index | No | Zero-based page index. Accepts int or string form. | |
| profile_id | No | ||
| directory_id | No | ||
| make_current | No | When true, make the page the active current page after writing. | |
| profile_name | No | ||
| auto_quit_app | No | If true and the Elgato Stream Deck desktop app is running, quit it (graceful AppleScript first, then killall) before writing. Required when the app is running or the write will raise an error. Defaults to false so callers must explicitly consent to quitting it. | |
| clear_existing | No | If true, replace the page contents with the provided buttons. Defaults to true. Accepts bool or string form. |