{"server":"dsigns","version":"2.0.0","endpoint":"https://dsigns.bitprecision.com/api/mcp","tools":[{"name":"suggest_brand_from_website","description":"Inspect a public HTTPS business website for an editable starter palette, built-in font choices and a raster logo candidate. Returns suggestions without saving. Existing profiles stay unchanged.","scopes":["account:write"],"masterOnly":false,"readOnly":false,"destructive":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"website":{"type":"string","minLength":1,"maxLength":2048},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120,"description":"Unique per intended write. Reuse the exact key and arguments after a transport failure."}},"required":["website","idempotencyKey"],"additionalProperties":false},"retry":"idempotencyKey required","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"get_brand_profile","description":"Read the selected customer’s logos, palette, heading/body fonts, uploaded font assets and AI default preference before creating content.","scopes":["content:read"],"masterOnly":false,"readOnly":true,"destructive":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"}},"additionalProperties":false},"retry":"Read only","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"save_brand_profile","description":"Save this customer’s brand profile using the latest revision. Requires the issuing user to remain an owner or master. Existing designs are unchanged.","scopes":["account:write"],"masterOnly":false,"readOnly":false,"destructive":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"profile":{"type":"object","properties":{"source":{"type":"object","properties":{"url":{"type":"string","maxLength":2048,"format":"uri"},"kind":{"type":"string","enum":["website","assessment"]},"reviewed":{"type":"boolean"},"checkedAt":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"notes":{"type":"string","maxLength":500}},"required":["url","kind","reviewed","checkedAt","notes"],"additionalProperties":false},"version":{"type":"number","const":1},"aiEnabled":{"type":"boolean"},"logos":{"type":"object","properties":{"primary":{"anyOf":[{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"},{"type":"string","const":""}]},"light":{"anyOf":[{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"},{"type":"string","const":""}]},"mark":{"anyOf":[{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"},{"type":"string","const":""}]}},"required":["primary","light","mark"],"additionalProperties":false},"colours":{"type":"object","properties":{"accent":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"background":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"text":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"extra":{"maxItems":8,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":30},"value":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"}},"required":["name","value"],"additionalProperties":false}}},"required":["accent","background","text","extra"],"additionalProperties":false},"fonts":{"type":"object","properties":{"heading":{"type":"object","properties":{"family":{"type":"string","enum":["archivo","inter","noto-serif","roboto-mono"]},"weight":{"anyOf":[{"type":"number","const":400},{"type":"number","const":700}]}},"required":["family","weight"],"additionalProperties":false},"body":{"type":"object","properties":{"family":{"type":"string","enum":["archivo","inter","noto-serif","roboto-mono"]},"weight":{"anyOf":[{"type":"number","const":400},{"type":"number","const":700}]}},"required":["family","weight"],"additionalProperties":false}},"required":["heading","body"],"additionalProperties":false}},"required":["version","aiEnabled","logos","colours","fonts"],"additionalProperties":false},"revision":{"type":"integer","minimum":0,"maximum":9007199254740991},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120,"description":"Unique per intended write. Reuse the exact key and arguments after a transport failure."}},"required":["profile","revision","idempotencyKey"],"additionalProperties":false},"retry":"idempotencyKey required","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"upload_brand_font","description":"Store a licensed WOFF2 font under 128 KiB for AI-rendered artwork and video. Standard widgets use the built-in font selections.","scopes":["account:write"],"masterOnly":false,"readOnly":false,"destructive":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"name":{"type":"string","minLength":1,"maxLength":120},"base64":{"type":"string","maxLength":175000},"licensed":{"type":"boolean","const":true},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120,"description":"Unique per intended write. Reuse the exact key and arguments after a transport failure."}},"required":["name","base64","licensed","idempotencyKey"],"additionalProperties":false},"retry":"idempotencyKey required","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"read_brand_font","description":"Read one customer-owned WOFF2 source asset as base64 for rendering artwork or video.","scopes":["content:read"],"masterOnly":false,"readOnly":true,"destructive":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"fontId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"}},"required":["fontId"],"additionalProperties":false},"retry":"Read only","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"delete_brand_font","description":"Remove a font source asset. Previously rendered content is unchanged.","scopes":["account:write"],"masterOnly":false,"readOnly":false,"destructive":true,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"fontId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120,"description":"Unique per intended write. Reuse the exact key and arguments after a transport failure."}},"required":["fontId","idempotencyKey"],"additionalProperties":false},"retry":"idempotencyKey required","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"get_management_guide","description":"Read the full dsigns MCP operating guide: OAuth/API-key setup, permissions, customer/master boundaries, content workflows, player controls and troubleshooting.","scopes":[],"masterOnly":false,"readOnly":true,"destructive":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"additionalProperties":false},"retry":"Read only","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"get_connection","description":"Read the current connection, customer boundary, permissions and expiry.","scopes":[],"masterOnly":false,"readOnly":true,"destructive":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"additionalProperties":false},"retry":"Read only","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"list_customers","description":"List accessible customers. A master sees all; a customer sees only itself.","scopes":["players:read"],"masterOnly":false,"readOnly":true,"destructive":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"additionalProperties":false},"retry":"Read only","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"get_automation_activity","description":"Read this connection’s last 100 write receipts. Reconcile pending requests before using another key.","scopes":[],"masterOnly":false,"readOnly":true,"destructive":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"limit":{"type":"integer","minimum":1,"maximum":100}},"additionalProperties":false},"retry":"Read only","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"list_releases","description":"Read the shared release catalog, installers, manual trials, checksums and older versions. Manual releases are not automatic update offers.","scopes":["players:read"],"masterOnly":false,"readOnly":true,"destructive":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"additionalProperties":false},"retry":"Read only","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"list_players","description":"List Players, reported telemetry, detected displays, saved screens, site and desired/applied revisions. Offline reports are stale.","scopes":["players:read"],"masterOnly":false,"readOnly":true,"destructive":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"limit":{"type":"integer","minimum":1,"maximum":100},"cursor":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"}},"additionalProperties":false},"retry":"Read only","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"get_player_status","description":"Read one record. Players, reported telemetry, detected displays, saved screens, site and desired/applied revisions. Offline reports are stale.","scopes":["players:read"],"masterOnly":false,"readOnly":true,"destructive":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"playerId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"}},"required":["playerId"],"additionalProperties":false},"retry":"Read only","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"list_media","description":"List Uploaded media and online content, including IDs usable in playlists and layouts.","scopes":["content:read"],"masterOnly":false,"readOnly":true,"destructive":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"limit":{"type":"integer","minimum":1,"maximum":100},"cursor":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"}},"additionalProperties":false},"retry":"Read only","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"get_media","description":"Read one record. Uploaded media and online content, including IDs usable in playlists and layouts.","scopes":["content:read"],"masterOnly":false,"readOnly":true,"destructive":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"mediaId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"}},"required":["mediaId"],"additionalProperties":false},"retry":"Read only","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"list_playlists","description":"List Playlist drafts, ordered items, shuffle and etags.","scopes":["content:read"],"masterOnly":false,"readOnly":true,"destructive":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"limit":{"type":"integer","minimum":1,"maximum":100},"cursor":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"}},"additionalProperties":false},"retry":"Read only","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"get_playlist","description":"Read one record. Playlist drafts, ordered items, shuffle and etags.","scopes":["content:read"],"masterOnly":false,"readOnly":true,"destructive":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"playlistId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"}},"required":["playlistId"],"additionalProperties":false},"retry":"Read only","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"list_schedules","description":"List Schedule drafts and inclusive campaign dates. Group timezones apply.","scopes":["content:read"],"masterOnly":false,"readOnly":true,"destructive":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"limit":{"type":"integer","minimum":1,"maximum":100},"cursor":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"}},"additionalProperties":false},"retry":"Read only","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"get_schedule","description":"Read one record. Schedule drafts and inclusive campaign dates. Group timezones apply.","scopes":["content:read"],"masterOnly":false,"readOnly":true,"destructive":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"scheduleId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"}},"required":["scheduleId"],"additionalProperties":false},"retry":"Read only","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"list_layouts","description":"List Layouts and Custom app drafts. List returns summaries; get_layout returns the document and revision.","scopes":["content:read"],"masterOnly":false,"readOnly":true,"destructive":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"limit":{"type":"integer","minimum":1,"maximum":100},"cursor":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"}},"additionalProperties":false},"retry":"Read only","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"get_layout","description":"Read one record. Layouts and Custom app drafts. List returns summaries; get_layout returns the document and revision.","scopes":["content:read"],"masterOnly":false,"readOnly":true,"destructive":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"layoutId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"}},"required":["layoutId"],"additionalProperties":false},"retry":"Read only","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"list_sites","description":"List this customer’s physical sites. Sites organise players; groups control inherited content.","scopes":["players:read"],"masterOnly":false,"readOnly":true,"destructive":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"limit":{"type":"integer","minimum":1,"maximum":100},"cursor":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"}},"additionalProperties":false},"retry":"Read only","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"list_groups","description":"List group defaults, playlists, schedules and IANA timezones.","scopes":["players:read"],"masterOnly":false,"readOnly":true,"destructive":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"limit":{"type":"integer","minimum":1,"maximum":100},"cursor":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"}},"additionalProperties":false},"retry":"Read only","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"create_site","description":"Create a site. Group defaults are saved drafts; newly paired players inherit group content.","scopes":["sites:write"],"masterOnly":false,"readOnly":false,"destructive":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"name":{"type":"string","minLength":1,"maxLength":120},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120,"description":"Unique per intended write. Reuse the exact key and arguments after a transport failure."}},"required":["name","idempotencyKey"],"additionalProperties":false},"retry":"idempotencyKey required","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"update_site","description":"Replace the site settings. Read the current record first. Publish affected players after changing group content.","scopes":["sites:write"],"masterOnly":false,"readOnly":false,"destructive":true,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"siteId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"name":{"type":"string","minLength":1,"maxLength":120},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120,"description":"Unique per intended write. Reuse the exact key and arguments after a transport failure."}},"required":["siteId","name","idempotencyKey"],"additionalProperties":false},"retry":"idempotencyKey required","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"delete_site","description":"Delete an unused site. Existing player/screen assignments must be removed first.","scopes":["sites:write"],"masterOnly":false,"readOnly":false,"destructive":true,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"siteId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120,"description":"Unique per intended write. Reuse the exact key and arguments after a transport failure."}},"required":["siteId","idempotencyKey"],"additionalProperties":false},"retry":"idempotencyKey required","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"create_group","description":"Create a group. Group defaults are saved drafts; newly paired players inherit group content.","scopes":["groups:write"],"masterOnly":false,"readOnly":false,"destructive":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"name":{"type":"string","minLength":1,"maxLength":120},"playlistId":{"anyOf":[{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},{"type":"null"}]},"scheduleId":{"anyOf":[{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},{"type":"null"}]},"timezone":{"type":"string","minLength":1,"maxLength":80},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120,"description":"Unique per intended write. Reuse the exact key and arguments after a transport failure."}},"required":["name","timezone","idempotencyKey"],"additionalProperties":false},"retry":"idempotencyKey required","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"update_group","description":"Replace the group settings. Read the current record first. Publish affected players after changing group content.","scopes":["groups:write"],"masterOnly":false,"readOnly":false,"destructive":true,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"groupId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"name":{"type":"string","minLength":1,"maxLength":120},"playlistId":{"anyOf":[{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},{"type":"null"}]},"scheduleId":{"anyOf":[{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},{"type":"null"}]},"timezone":{"type":"string","minLength":1,"maxLength":80},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120,"description":"Unique per intended write. Reuse the exact key and arguments after a transport failure."}},"required":["groupId","name","timezone","idempotencyKey"],"additionalProperties":false},"retry":"idempotencyKey required","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"delete_group","description":"Delete an unused group. Existing player/screen assignments must be removed first.","scopes":["groups:write"],"masterOnly":false,"readOnly":false,"destructive":true,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"groupId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120,"description":"Unique per intended write. Reuse the exact key and arguments after a transport failure."}},"required":["groupId","idempotencyKey"],"additionalProperties":false},"retry":"idempotencyKey required","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"approve_player_pairing","description":"Connect a player using its five-letter screen code. It initially receives the selected group’s current content. deviceId reconnects an existing player and replaces its credential.","scopes":["players:write","publish"],"masterOnly":false,"readOnly":false,"destructive":true,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"code":{"type":"string","pattern":"^[A-Za-z]{5}$"},"name":{"type":"string","minLength":1,"maxLength":120},"groupId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"siteId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"deviceId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120,"description":"Unique per intended write. Reuse the exact key and arguments after a transport failure."}},"required":["code","idempotencyKey"],"additionalProperties":false},"retry":"idempotencyKey required","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"list_setup_codes","description":"List active manual setup-code records; raw codes cannot be recovered.","scopes":["players:read"],"masterOnly":false,"readOnly":true,"destructive":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"}},"additionalProperties":false},"retry":"Read only","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"create_setup_code","description":"Create a one-use manual setup code, valid for 24 hours. Treat the returned code as a secret. Pairing assigns group content.","scopes":["players:write","publish"],"masterOnly":false,"readOnly":false,"destructive":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"name":{"type":"string","minLength":1,"maxLength":120},"groupId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120,"description":"Unique per intended write. Reuse the exact key and arguments after a transport failure."}},"required":["idempotencyKey"],"additionalProperties":false},"retry":"idempotencyKey required","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"cancel_setup_code","description":"Cancel an unused manual setup code.","scopes":["players:write"],"masterOnly":false,"readOnly":false,"destructive":true,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"setupCodeId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120,"description":"Unique per intended write. Reuse the exact key and arguments after a transport failure."}},"required":["setupCodeId","idempotencyKey"],"additionalProperties":false},"retry":"idempotencyKey required","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"update_player","description":"Edit player settings without publishing. Unspecified fields are preserved. Use independent mode for supported separate screens.","scopes":["players:write"],"masterOnly":false,"readOnly":false,"destructive":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"playerId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"name":{"type":"string","minLength":1,"maxLength":120},"mode":{"type":"string","enum":["independent","wall"]},"standbyMediaId":{"anyOf":[{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},{"type":"null"}]},"offlineEmails":{"type":"boolean"},"offlineAfterMinutes":{"anyOf":[{"anyOf":[{"type":"number","const":5},{"type":"number","const":10},{"type":"number","const":15},{"type":"number","const":30},{"type":"number","const":60}]},{"type":"null"}]},"offlineReminderHours":{"type":"integer","minimum":0,"maximum":168},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120,"description":"Unique per intended write. Reuse the exact key and arguments after a transport failure."}},"required":["playerId","idempotencyKey"],"additionalProperties":false},"retry":"idempotencyKey required","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"assign_player_site","description":"Move a player to one of this customer’s physical sites. null removes its site assignment.","scopes":["players:write"],"masterOnly":false,"readOnly":false,"destructive":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"playerId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"siteId":{"anyOf":[{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},{"type":"null"}]},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120,"description":"Unique per intended write. Reuse the exact key and arguments after a transport failure."}},"required":["playerId","siteId","idempotencyKey"],"additionalProperties":false},"retry":"idempotencyKey required","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"save_screen","description":"Create or replace a player screen assignment. For updates supply outputId and ALL settings from get_player_status. Null playlist inherits the group. scheduleOverride false inherits the group schedule; true with null schedule disables slots. Save is a draft; preview and publish the player.","scopes":["players:write"],"masterOnly":false,"readOnly":false,"destructive":true,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"playerId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"outputId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"name":{"type":"string","minLength":1,"maxLength":120},"groupId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"mode":{"type":"string","enum":["independent","wall"]},"displayIds":{"minItems":1,"maxItems":16,"type":"array","items":{"type":"string","minLength":1,"maxLength":256}},"playlistId":{"anyOf":[{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},{"type":"null"}]},"scheduleId":{"anyOf":[{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},{"type":"null"}]},"scheduleOverride":{"type":"boolean"},"rotation":{"anyOf":[{"type":"number","const":0},{"type":"number","const":90},{"type":"number","const":180},{"type":"number","const":270}]},"fit":{"type":"string","enum":["fit","fill","stretch"]},"volume":{"type":"number","minimum":0,"maximum":100},"layoutId":{"anyOf":[{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},{"type":"null"}]},"layoutEnabled":{"type":"boolean"},"showProgress":{"type":"boolean"},"progressOptions":{"type":"object","properties":{"style":{"type":"string","enum":["ring","bar"]},"position":{"type":"string","enum":["inside","below"]},"label":{"type":"boolean"}},"additionalProperties":false},"displaySettings":{"type":"object","properties":{"follow":{"type":"boolean"},"kind":{"type":"string","enum":["auto","mode","region"]},"width":{"type":"integer","minimum":16,"maximum":8192},"height":{"type":"integer","minimum":16,"maximum":8192},"x":{"type":"integer","minimum":0,"maximum":9007199254740991},"y":{"type":"integer","minimum":0,"maximum":9007199254740991},"refresh":{"type":"number","minimum":24,"maximum":120}},"required":["follow","kind"],"additionalProperties":false},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120,"description":"Unique per intended write. Reuse the exact key and arguments after a transport failure."}},"required":["playerId","name","groupId","mode","displayIds","playlistId","scheduleId","scheduleOverride","rotation","fit","volume","layoutId","layoutEnabled","displaySettings","idempotencyKey"],"additionalProperties":false},"retry":"idempotencyKey required","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"delete_screen","description":"Delete a saved screen assignment. Publish the player to apply the removal; cached playback can continue until then.","scopes":["players:delete"],"masterOnly":false,"readOnly":false,"destructive":true,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"outputId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120,"description":"Unique per intended write. Reuse the exact key and arguments after a transport failure."}},"required":["outputId","idempotencyKey"],"additionalProperties":false},"retry":"idempotencyKey required","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"revoke_player","description":"Revoke player access. Cached playback may continue; reconnect the player to restore access.","scopes":["players:delete"],"masterOnly":false,"readOnly":false,"destructive":true,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"playerId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120,"description":"Unique per intended write. Reuse the exact key and arguments after a transport failure."}},"required":["playerId","idempotencyKey"],"additionalProperties":false},"retry":"idempotencyKey required","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"delete_player","description":"Delete the player, credentials, screen assignments, history and stored screenshots/diagnostics. Shared content remains. This does not uninstall or stop cached playback.","scopes":["players:delete"],"masterOnly":false,"readOnly":false,"destructive":true,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"playerId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120,"description":"Unique per intended write. Reuse the exact key and arguments after a transport failure."}},"required":["playerId","idempotencyKey"],"additionalProperties":false},"retry":"idempotencyKey required","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"create_playlist","description":"Create a playlist draft. No publication. Schedule weekdays use Sunday=0; overnight slots must be split at midnight.","scopes":["playlists:write"],"masterOnly":false,"readOnly":false,"destructive":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"name":{"type":"string","minLength":1,"maxLength":120},"items":{"maxItems":500,"type":"array","items":{"type":"object","properties":{"mediaId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"duration":{"default":10,"type":"number","minimum":1,"maximum":86400}},"required":["mediaId","duration"],"additionalProperties":false}},"shuffle":{"type":"boolean"},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120,"description":"Unique per intended write. Reuse the exact key and arguments after a transport failure."}},"required":["name","items","idempotencyKey"],"additionalProperties":false},"retry":"idempotencyKey required","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"update_playlist","description":"Replace a playlist draft using the latest etag. Rejects stale edits. Submit the complete items/slots array; no publication.","scopes":["playlists:write","content:read"],"masterOnly":false,"readOnly":false,"destructive":true,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"playlistId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"expectedETag":{"type":"string","minLength":1},"name":{"type":"string","minLength":1,"maxLength":120},"items":{"maxItems":500,"type":"array","items":{"type":"object","properties":{"mediaId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"duration":{"default":10,"type":"number","minimum":1,"maximum":86400}},"required":["mediaId","duration"],"additionalProperties":false}},"shuffle":{"type":"boolean"},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120,"description":"Unique per intended write. Reuse the exact key and arguments after a transport failure."}},"required":["playlistId","expectedETag","name","items","idempotencyKey"],"additionalProperties":false},"retry":"idempotencyKey required","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"delete_playlist","description":"Delete this playlist. Referenced playlists cannot be deleted; deleting a schedule clears its saved assignments. Publish affected players to change playback.","scopes":["content:delete"],"masterOnly":false,"readOnly":false,"destructive":true,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"playlistId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120,"description":"Unique per intended write. Reuse the exact key and arguments after a transport failure."}},"required":["playlistId","idempotencyKey"],"additionalProperties":false},"retry":"idempotencyKey required","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"create_schedule","description":"Create a schedule draft. No publication. Schedule weekdays use Sunday=0; overnight slots must be split at midnight.","scopes":["schedules:write"],"masterOnly":false,"readOnly":false,"destructive":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"name":{"type":"string","minLength":1,"maxLength":120},"slots":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"weekday":{"type":"integer","minimum":0,"maximum":6},"start":{"type":"string","pattern":"^\\d{2}:\\d{2}$"},"end":{"type":"string","pattern":"^\\d{2}:\\d{2}$"},"startDate":{"anyOf":[{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},{"type":"null"}]},"endDate":{"anyOf":[{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},{"type":"null"}]},"playlistId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"}},"required":["weekday","start","end","playlistId"],"additionalProperties":false}},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120,"description":"Unique per intended write. Reuse the exact key and arguments after a transport failure."}},"required":["name","slots","idempotencyKey"],"additionalProperties":false},"retry":"idempotencyKey required","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"update_schedule","description":"Replace a schedule draft using the latest etag. Rejects stale edits. Submit the complete items/slots array; no publication.","scopes":["schedules:write","content:read"],"masterOnly":false,"readOnly":false,"destructive":true,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"scheduleId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"expectedETag":{"type":"string","minLength":1},"name":{"type":"string","minLength":1,"maxLength":120},"slots":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"weekday":{"type":"integer","minimum":0,"maximum":6},"start":{"type":"string","pattern":"^\\d{2}:\\d{2}$"},"end":{"type":"string","pattern":"^\\d{2}:\\d{2}$"},"startDate":{"anyOf":[{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},{"type":"null"}]},"endDate":{"anyOf":[{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},{"type":"null"}]},"playlistId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"}},"required":["weekday","start","end","playlistId"],"additionalProperties":false}},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120,"description":"Unique per intended write. Reuse the exact key and arguments after a transport failure."}},"required":["scheduleId","expectedETag","name","slots","idempotencyKey"],"additionalProperties":false},"retry":"idempotencyKey required","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"delete_schedule","description":"Delete this schedule. Referenced playlists cannot be deleted; deleting a schedule clears its saved assignments. Publish affected players to change playback.","scopes":["content:delete"],"masterOnly":false,"readOnly":false,"destructive":true,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"scheduleId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120,"description":"Unique per intended write. Reuse the exact key and arguments after a transport failure."}},"required":["scheduleId","idempotencyKey"],"additionalProperties":false},"retry":"idempotencyKey required","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"get_layout_schema","description":"Get the complete layout/widget JSON schemas and defaults, including social widgets, social tickers and custom social presentations. Use this before creating slides, layouts or Custom HTML apps.","scopes":["content:read"],"masterOnly":false,"readOnly":true,"destructive":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"}},"additionalProperties":false},"retry":"Read only","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"create_layout","description":"Create a reusable layout or fullscreen Custom app draft. Supports media/playlists, clock, weather, ticker, text, HTML, QR, countdown, announcement slides and connected social sources. Social sources also need social:read and must belong to the selected customer. Get defaults from get_layout_schema; save does not publish.","scopes":["layouts:write"],"masterOnly":false,"readOnly":false,"destructive":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"name":{"type":"string","minLength":1,"maxLength":120},"kind":{"type":"string","enum":["layout","custom"]},"document":{"type":"object","properties":{"version":{"type":"number","const":1},"width":{"type":"integer","minimum":320,"maximum":7680},"height":{"type":"integer","minimum":320,"maximum":7680},"preset":{"type":"string","enum":["full","split","sidebar","overlay"]},"background":{"type":"object","properties":{"colour":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"showProgress":{"type":"boolean"},"progressOptions":{"type":"object","properties":{"style":{"type":"string","enum":["ring","bar"]},"position":{"type":"string","enum":["inside","below"]},"label":{"type":"boolean"}},"additionalProperties":false},"onlineId":{"anyOf":[{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"},{"type":"string","const":""}]},"imageId":{"anyOf":[{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"},{"type":"string","const":""}]},"videoId":{"anyOf":[{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"},{"type":"string","const":""}]},"transparent":{"type":"boolean"},"fit":{"type":"string","enum":["contain","cover"]}},"required":["colour","imageId"],"additionalProperties":false},"nodes":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":100},"y":{"type":"number","minimum":0,"maximum":100},"width":{"type":"number","minimum":2,"maximum":100},"height":{"type":"number","minimum":2,"maximum":100},"social":{"type":"object","properties":{"mediaVersion":{"default":1,"anyOf":[{"type":"number","const":1},{"type":"number","const":2}]},"connectionId":{"anyOf":[{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"},{"type":"string","const":""}]},"additionalConnectionIds":{"default":[],"maxItems":4,"type":"array","items":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"}},"template":{"default":"auto","type":"string","enum":["auto","feature","photo","editorial","carousel","ticker","wall","strip","custom"]},"showQR":{"default":true,"type":"boolean"},"showCaption":{"default":true,"type":"boolean"},"showDate":{"default":true,"type":"boolean"},"playVideo":{"default":true,"type":"boolean"},"seconds":{"default":15,"type":"integer","minimum":5,"maximum":120},"mediaFit":{"default":"contain","type":"string","enum":["contain","cover"]},"accent":{"default":"#F0642C","type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"background":{"default":"#F5F0E7","type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"foreground":{"default":"#242624","type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"fontFamily":{"type":"string","enum":["archivo","inter","noto-serif","roboto-mono"]},"fontWeight":{"anyOf":[{"type":"number","const":400},{"type":"number","const":700}]},"brandName":{"default":"","type":"string","maxLength":100},"logoId":{"default":"","anyOf":[{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"},{"type":"string","const":""}]}},"required":["mediaVersion","connectionId","additionalConnectionIds","template","showQR","showCaption","showDate","playVideo","seconds","mediaFit","accent","background","foreground","brandName","logoId"],"additionalProperties":false},"id":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"},"name":{"type":"string","minLength":1,"maxLength":80},"type":{"type":"string","enum":["content","clock","weather","ticker","notice","html","qrcode","countdown","announcements"]},"locked":{"type":"boolean"},"visible":{"type":"boolean"},"source":{"type":"string","enum":["image","video","online","playlist","screen"]},"sourceId":{"anyOf":[{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"},{"type":"string","const":""}]},"fit":{"type":"string","enum":["contain","cover"]},"muted":{"type":"boolean"},"loop":{"type":"boolean"},"text":{"type":"string","maxLength":160000},"colour":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"background":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"fontSize":{"type":"number","minimum":12,"maximum":240},"timezone":{"type":"string","maxLength":80},"fontFamily":{"type":"string","enum":["archivo","inter","noto-serif","roboto-mono"]},"fontWeight":{"anyOf":[{"type":"number","const":400},{"type":"number","const":700}]},"italic":{"type":"boolean"},"textAlign":{"type":"string","enum":["left","center","right"]},"backgroundOpacity":{"type":"number","minimum":0,"maximum":100},"padding":{"type":"number","minimum":0,"maximum":160},"cornerRadius":{"type":"number","minimum":0,"maximum":160},"showProgress":{"type":"boolean"},"progressOptions":{"type":"object","properties":{"style":{"type":"string","enum":["ring","bar"]},"position":{"type":"string","enum":["inside","below"]},"label":{"type":"boolean"}},"additionalProperties":false},"backgroundShowProgress":{"type":"boolean"},"backgroundProgressOptions":{"type":"object","properties":{"style":{"type":"string","enum":["ring","bar"]},"position":{"type":"string","enum":["inside","below"]},"label":{"type":"boolean"}},"additionalProperties":false},"backgroundOnlineId":{"anyOf":[{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"},{"type":"string","const":""}]},"backgroundImageId":{"anyOf":[{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"},{"type":"string","const":""}]},"backgroundVideoId":{"anyOf":[{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"},{"type":"string","const":""}]},"backgroundFit":{"type":"string","enum":["cover","contain"]},"clockStyle":{"type":"string","enum":["digital","analogue"]},"clockHour12":{"type":"boolean"},"clockShowTime":{"type":"boolean"},"clockShowDate":{"type":"boolean"},"clockShowSeconds":{"type":"boolean"},"clockShowTimezone":{"type":"boolean"},"clockShowNumbers":{"type":"boolean"},"clockDateFormat":{"type":"string","enum":["short","long","numeric","iso"]},"countdownUnits":{"minItems":1,"maxItems":4,"type":"array","items":{"type":"string","enum":["days","hours","minutes","seconds"]}},"tickerDirection":{"type":"string","enum":["left","right"]},"tickerSpacing":{"type":"number","minimum":0,"maximum":12},"tickerSeparator":{"type":"string","enum":["bullet","dash","none"]},"announcementDurations":{"maxItems":50,"type":"array","items":{"type":"integer","minimum":2,"maximum":3600}},"weatherStyle":{"type":"string","enum":["stacked","compact"]},"weatherShowLocation":{"type":"boolean"},"weatherShowIcon":{"type":"boolean"},"weatherShowCondition":{"type":"boolean"},"qrForeground":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"qrBackground":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"qrLogoId":{"anyOf":[{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"},{"type":"string","const":""}]},"qrStyle":{"type":"string","enum":["classic","rounded","dots"]},"location":{"type":"string","maxLength":80},"latitude":{"type":"number","minimum":-90,"maximum":90},"longitude":{"type":"number","minimum":-180,"maximum":180},"units":{"type":"string","enum":["celsius","fahrenheit"]},"maxAge":{"type":"integer","minimum":300,"maximum":604800},"feedType":{"type":"string","enum":["list","rss","json"]},"feedUrl":{"type":"string","maxLength":2048},"itemsPath":{"type":"string","maxLength":150},"titleField":{"type":"string","maxLength":150},"speed":{"type":"number","minimum":10,"maximum":180},"qrUrl":{"default":"","type":"string","maxLength":1000},"countdownAt":{"default":"","type":"string","maxLength":16},"countdownEndText":{"default":"It’s time.","type":"string","maxLength":240},"announcements":{"default":[],"maxItems":50,"type":"array","items":{"type":"string","maxLength":2000}},"announcementSeconds":{"default":10,"type":"integer","minimum":2,"maximum":3600},"announcementTransition":{"default":"fade","type":"string","enum":["cut","fade"]}},"required":["x","y","width","height","id","name","type","locked","visible","source","sourceId","fit","muted","loop","text","colour","background","fontSize","timezone","location","latitude","longitude","units","maxAge","feedType","feedUrl","itemsPath","titleField","speed","qrUrl","countdownAt","countdownEndText","announcements","announcementSeconds","announcementTransition"],"additionalProperties":false}},"pageName":{"type":"string","minLength":1,"maxLength":60},"pageSeconds":{"type":"integer","minimum":5,"maximum":86400},"pages":{"maxItems":11,"type":"array","items":{"type":"object","properties":{"preset":{"type":"string","enum":["full","split","sidebar","overlay"]},"background":{"type":"object","properties":{"colour":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"showProgress":{"type":"boolean"},"progressOptions":{"type":"object","properties":{"style":{"type":"string","enum":["ring","bar"]},"position":{"type":"string","enum":["inside","below"]},"label":{"type":"boolean"}},"additionalProperties":false},"onlineId":{"anyOf":[{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"},{"type":"string","const":""}]},"imageId":{"anyOf":[{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"},{"type":"string","const":""}]},"videoId":{"anyOf":[{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"},{"type":"string","const":""}]},"transparent":{"type":"boolean"},"fit":{"type":"string","enum":["contain","cover"]}},"required":["colour","imageId"],"additionalProperties":false},"nodes":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":100},"y":{"type":"number","minimum":0,"maximum":100},"width":{"type":"number","minimum":2,"maximum":100},"height":{"type":"number","minimum":2,"maximum":100},"social":{"type":"object","properties":{"mediaVersion":{"default":1,"anyOf":[{"type":"number","const":1},{"type":"number","const":2}]},"connectionId":{"anyOf":[{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"},{"type":"string","const":""}]},"additionalConnectionIds":{"default":[],"maxItems":4,"type":"array","items":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"}},"template":{"default":"auto","type":"string","enum":["auto","feature","photo","editorial","carousel","ticker","wall","strip","custom"]},"showQR":{"default":true,"type":"boolean"},"showCaption":{"default":true,"type":"boolean"},"showDate":{"default":true,"type":"boolean"},"playVideo":{"default":true,"type":"boolean"},"seconds":{"default":15,"type":"integer","minimum":5,"maximum":120},"mediaFit":{"default":"contain","type":"string","enum":["contain","cover"]},"accent":{"default":"#F0642C","type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"background":{"default":"#F5F0E7","type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"foreground":{"default":"#242624","type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"fontFamily":{"type":"string","enum":["archivo","inter","noto-serif","roboto-mono"]},"fontWeight":{"anyOf":[{"type":"number","const":400},{"type":"number","const":700}]},"brandName":{"default":"","type":"string","maxLength":100},"logoId":{"default":"","anyOf":[{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"},{"type":"string","const":""}]}},"required":["mediaVersion","connectionId","additionalConnectionIds","template","showQR","showCaption","showDate","playVideo","seconds","mediaFit","accent","background","foreground","brandName","logoId"],"additionalProperties":false},"id":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"},"name":{"type":"string","minLength":1,"maxLength":80},"type":{"type":"string","enum":["content","clock","weather","ticker","notice","html","qrcode","countdown","announcements"]},"locked":{"type":"boolean"},"visible":{"type":"boolean"},"source":{"type":"string","enum":["image","video","online","playlist","screen"]},"sourceId":{"anyOf":[{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"},{"type":"string","const":""}]},"fit":{"type":"string","enum":["contain","cover"]},"muted":{"type":"boolean"},"loop":{"type":"boolean"},"text":{"type":"string","maxLength":160000},"colour":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"background":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"fontSize":{"type":"number","minimum":12,"maximum":240},"timezone":{"type":"string","maxLength":80},"fontFamily":{"type":"string","enum":["archivo","inter","noto-serif","roboto-mono"]},"fontWeight":{"anyOf":[{"type":"number","const":400},{"type":"number","const":700}]},"italic":{"type":"boolean"},"textAlign":{"type":"string","enum":["left","center","right"]},"backgroundOpacity":{"type":"number","minimum":0,"maximum":100},"padding":{"type":"number","minimum":0,"maximum":160},"cornerRadius":{"type":"number","minimum":0,"maximum":160},"showProgress":{"type":"boolean"},"progressOptions":{"type":"object","properties":{"style":{"type":"string","enum":["ring","bar"]},"position":{"type":"string","enum":["inside","below"]},"label":{"type":"boolean"}},"additionalProperties":false},"backgroundShowProgress":{"type":"boolean"},"backgroundProgressOptions":{"type":"object","properties":{"style":{"type":"string","enum":["ring","bar"]},"position":{"type":"string","enum":["inside","below"]},"label":{"type":"boolean"}},"additionalProperties":false},"backgroundOnlineId":{"anyOf":[{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"},{"type":"string","const":""}]},"backgroundImageId":{"anyOf":[{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"},{"type":"string","const":""}]},"backgroundVideoId":{"anyOf":[{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"},{"type":"string","const":""}]},"backgroundFit":{"type":"string","enum":["cover","contain"]},"clockStyle":{"type":"string","enum":["digital","analogue"]},"clockHour12":{"type":"boolean"},"clockShowTime":{"type":"boolean"},"clockShowDate":{"type":"boolean"},"clockShowSeconds":{"type":"boolean"},"clockShowTimezone":{"type":"boolean"},"clockShowNumbers":{"type":"boolean"},"clockDateFormat":{"type":"string","enum":["short","long","numeric","iso"]},"countdownUnits":{"minItems":1,"maxItems":4,"type":"array","items":{"type":"string","enum":["days","hours","minutes","seconds"]}},"tickerDirection":{"type":"string","enum":["left","right"]},"tickerSpacing":{"type":"number","minimum":0,"maximum":12},"tickerSeparator":{"type":"string","enum":["bullet","dash","none"]},"announcementDurations":{"maxItems":50,"type":"array","items":{"type":"integer","minimum":2,"maximum":3600}},"weatherStyle":{"type":"string","enum":["stacked","compact"]},"weatherShowLocation":{"type":"boolean"},"weatherShowIcon":{"type":"boolean"},"weatherShowCondition":{"type":"boolean"},"qrForeground":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"qrBackground":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"qrLogoId":{"anyOf":[{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"},{"type":"string","const":""}]},"qrStyle":{"type":"string","enum":["classic","rounded","dots"]},"location":{"type":"string","maxLength":80},"latitude":{"type":"number","minimum":-90,"maximum":90},"longitude":{"type":"number","minimum":-180,"maximum":180},"units":{"type":"string","enum":["celsius","fahrenheit"]},"maxAge":{"type":"integer","minimum":300,"maximum":604800},"feedType":{"type":"string","enum":["list","rss","json"]},"feedUrl":{"type":"string","maxLength":2048},"itemsPath":{"type":"string","maxLength":150},"titleField":{"type":"string","maxLength":150},"speed":{"type":"number","minimum":10,"maximum":180},"qrUrl":{"default":"","type":"string","maxLength":1000},"countdownAt":{"default":"","type":"string","maxLength":16},"countdownEndText":{"default":"It’s time.","type":"string","maxLength":240},"announcements":{"default":[],"maxItems":50,"type":"array","items":{"type":"string","maxLength":2000}},"announcementSeconds":{"default":10,"type":"integer","minimum":2,"maximum":3600},"announcementTransition":{"default":"fade","type":"string","enum":["cut","fade"]}},"required":["x","y","width","height","id","name","type","locked","visible","source","sourceId","fit","muted","loop","text","colour","background","fontSize","timezone","location","latitude","longitude","units","maxAge","feedType","feedUrl","itemsPath","titleField","speed","qrUrl","countdownAt","countdownEndText","announcements","announcementSeconds","announcementTransition"],"additionalProperties":false}},"pageName":{"type":"string","minLength":1,"maxLength":60},"pageSeconds":{"type":"integer","minimum":5,"maximum":86400}},"required":["preset","background","nodes"],"additionalProperties":false}},"pageLoop":{"type":"boolean"}},"required":["version","width","height","preset","background","nodes"],"additionalProperties":false},"brandMode":{"description":"auto copies saved brand defaults into new content while preserving custom values. apply deliberately restyles the supplied draft. none keeps every supplied style. Existing widgets are untouched by auto updates.","type":"string","enum":["auto","apply","none"]},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120,"description":"Unique per intended write. Reuse the exact key and arguments after a transport failure."}},"required":["name","kind","document","idempotencyKey"],"additionalProperties":false},"retry":"idempotencyKey required","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"create_announcement_slides","description":"Create a reusable fullscreen text slideshow as a layout draft. Each slide has its own duration. Assign the returned layout to a compatible screen, preview and publish.","scopes":["layouts:write"],"masterOnly":false,"readOnly":false,"destructive":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"name":{"type":"string","minLength":1,"maxLength":120},"brandMode":{"description":"auto copies saved brand defaults into new content while preserving custom values. apply deliberately restyles the supplied draft. none keeps every supplied style. Existing widgets are untouched by auto updates.","type":"string","enum":["auto","apply","none"]},"slides":{"minItems":1,"maxItems":50,"type":"array","items":{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":2000},"seconds":{"type":"integer","minimum":2,"maximum":3600}},"required":["text","seconds"],"additionalProperties":false}},"width":{"default":1920,"type":"integer","minimum":320,"maximum":7680},"height":{"default":1080,"type":"integer","minimum":320,"maximum":7680},"colour":{"default":"#242624","type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"background":{"default":"#F5F0E7","type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"fontSize":{"default":64,"type":"number","minimum":12,"maximum":240},"transition":{"default":"fade","type":"string","enum":["cut","fade"]},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120,"description":"Unique per intended write. Reuse the exact key and arguments after a transport failure."}},"required":["name","slides","width","height","colour","background","fontSize","transition","idempotencyKey"],"additionalProperties":false},"retry":"idempotencyKey required","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"update_layout","description":"Replace a layout or Custom app draft using its latest revision. Rejects stale edits. Existing published snapshots stay unchanged until publication.","scopes":["layouts:write"],"masterOnly":false,"readOnly":false,"destructive":true,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"layoutId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"revision":{"type":"integer","minimum":1,"maximum":9007199254740991},"name":{"type":"string","minLength":1,"maxLength":120},"kind":{"type":"string","enum":["layout","custom"]},"document":{"type":"object","properties":{"version":{"type":"number","const":1},"width":{"type":"integer","minimum":320,"maximum":7680},"height":{"type":"integer","minimum":320,"maximum":7680},"preset":{"type":"string","enum":["full","split","sidebar","overlay"]},"background":{"type":"object","properties":{"colour":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"showProgress":{"type":"boolean"},"progressOptions":{"type":"object","properties":{"style":{"type":"string","enum":["ring","bar"]},"position":{"type":"string","enum":["inside","below"]},"label":{"type":"boolean"}},"additionalProperties":false},"onlineId":{"anyOf":[{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"},{"type":"string","const":""}]},"imageId":{"anyOf":[{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"},{"type":"string","const":""}]},"videoId":{"anyOf":[{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"},{"type":"string","const":""}]},"transparent":{"type":"boolean"},"fit":{"type":"string","enum":["contain","cover"]}},"required":["colour","imageId"],"additionalProperties":false},"nodes":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":100},"y":{"type":"number","minimum":0,"maximum":100},"width":{"type":"number","minimum":2,"maximum":100},"height":{"type":"number","minimum":2,"maximum":100},"social":{"type":"object","properties":{"mediaVersion":{"default":1,"anyOf":[{"type":"number","const":1},{"type":"number","const":2}]},"connectionId":{"anyOf":[{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"},{"type":"string","const":""}]},"additionalConnectionIds":{"default":[],"maxItems":4,"type":"array","items":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"}},"template":{"default":"auto","type":"string","enum":["auto","feature","photo","editorial","carousel","ticker","wall","strip","custom"]},"showQR":{"default":true,"type":"boolean"},"showCaption":{"default":true,"type":"boolean"},"showDate":{"default":true,"type":"boolean"},"playVideo":{"default":true,"type":"boolean"},"seconds":{"default":15,"type":"integer","minimum":5,"maximum":120},"mediaFit":{"default":"contain","type":"string","enum":["contain","cover"]},"accent":{"default":"#F0642C","type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"background":{"default":"#F5F0E7","type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"foreground":{"default":"#242624","type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"fontFamily":{"type":"string","enum":["archivo","inter","noto-serif","roboto-mono"]},"fontWeight":{"anyOf":[{"type":"number","const":400},{"type":"number","const":700}]},"brandName":{"default":"","type":"string","maxLength":100},"logoId":{"default":"","anyOf":[{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"},{"type":"string","const":""}]}},"required":["mediaVersion","connectionId","additionalConnectionIds","template","showQR","showCaption","showDate","playVideo","seconds","mediaFit","accent","background","foreground","brandName","logoId"],"additionalProperties":false},"id":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"},"name":{"type":"string","minLength":1,"maxLength":80},"type":{"type":"string","enum":["content","clock","weather","ticker","notice","html","qrcode","countdown","announcements"]},"locked":{"type":"boolean"},"visible":{"type":"boolean"},"source":{"type":"string","enum":["image","video","online","playlist","screen"]},"sourceId":{"anyOf":[{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"},{"type":"string","const":""}]},"fit":{"type":"string","enum":["contain","cover"]},"muted":{"type":"boolean"},"loop":{"type":"boolean"},"text":{"type":"string","maxLength":160000},"colour":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"background":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"fontSize":{"type":"number","minimum":12,"maximum":240},"timezone":{"type":"string","maxLength":80},"fontFamily":{"type":"string","enum":["archivo","inter","noto-serif","roboto-mono"]},"fontWeight":{"anyOf":[{"type":"number","const":400},{"type":"number","const":700}]},"italic":{"type":"boolean"},"textAlign":{"type":"string","enum":["left","center","right"]},"backgroundOpacity":{"type":"number","minimum":0,"maximum":100},"padding":{"type":"number","minimum":0,"maximum":160},"cornerRadius":{"type":"number","minimum":0,"maximum":160},"showProgress":{"type":"boolean"},"progressOptions":{"type":"object","properties":{"style":{"type":"string","enum":["ring","bar"]},"position":{"type":"string","enum":["inside","below"]},"label":{"type":"boolean"}},"additionalProperties":false},"backgroundShowProgress":{"type":"boolean"},"backgroundProgressOptions":{"type":"object","properties":{"style":{"type":"string","enum":["ring","bar"]},"position":{"type":"string","enum":["inside","below"]},"label":{"type":"boolean"}},"additionalProperties":false},"backgroundOnlineId":{"anyOf":[{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"},{"type":"string","const":""}]},"backgroundImageId":{"anyOf":[{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"},{"type":"string","const":""}]},"backgroundVideoId":{"anyOf":[{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"},{"type":"string","const":""}]},"backgroundFit":{"type":"string","enum":["cover","contain"]},"clockStyle":{"type":"string","enum":["digital","analogue"]},"clockHour12":{"type":"boolean"},"clockShowTime":{"type":"boolean"},"clockShowDate":{"type":"boolean"},"clockShowSeconds":{"type":"boolean"},"clockShowTimezone":{"type":"boolean"},"clockShowNumbers":{"type":"boolean"},"clockDateFormat":{"type":"string","enum":["short","long","numeric","iso"]},"countdownUnits":{"minItems":1,"maxItems":4,"type":"array","items":{"type":"string","enum":["days","hours","minutes","seconds"]}},"tickerDirection":{"type":"string","enum":["left","right"]},"tickerSpacing":{"type":"number","minimum":0,"maximum":12},"tickerSeparator":{"type":"string","enum":["bullet","dash","none"]},"announcementDurations":{"maxItems":50,"type":"array","items":{"type":"integer","minimum":2,"maximum":3600}},"weatherStyle":{"type":"string","enum":["stacked","compact"]},"weatherShowLocation":{"type":"boolean"},"weatherShowIcon":{"type":"boolean"},"weatherShowCondition":{"type":"boolean"},"qrForeground":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"qrBackground":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"qrLogoId":{"anyOf":[{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"},{"type":"string","const":""}]},"qrStyle":{"type":"string","enum":["classic","rounded","dots"]},"location":{"type":"string","maxLength":80},"latitude":{"type":"number","minimum":-90,"maximum":90},"longitude":{"type":"number","minimum":-180,"maximum":180},"units":{"type":"string","enum":["celsius","fahrenheit"]},"maxAge":{"type":"integer","minimum":300,"maximum":604800},"feedType":{"type":"string","enum":["list","rss","json"]},"feedUrl":{"type":"string","maxLength":2048},"itemsPath":{"type":"string","maxLength":150},"titleField":{"type":"string","maxLength":150},"speed":{"type":"number","minimum":10,"maximum":180},"qrUrl":{"default":"","type":"string","maxLength":1000},"countdownAt":{"default":"","type":"string","maxLength":16},"countdownEndText":{"default":"It’s time.","type":"string","maxLength":240},"announcements":{"default":[],"maxItems":50,"type":"array","items":{"type":"string","maxLength":2000}},"announcementSeconds":{"default":10,"type":"integer","minimum":2,"maximum":3600},"announcementTransition":{"default":"fade","type":"string","enum":["cut","fade"]}},"required":["x","y","width","height","id","name","type","locked","visible","source","sourceId","fit","muted","loop","text","colour","background","fontSize","timezone","location","latitude","longitude","units","maxAge","feedType","feedUrl","itemsPath","titleField","speed","qrUrl","countdownAt","countdownEndText","announcements","announcementSeconds","announcementTransition"],"additionalProperties":false}},"pageName":{"type":"string","minLength":1,"maxLength":60},"pageSeconds":{"type":"integer","minimum":5,"maximum":86400},"pages":{"maxItems":11,"type":"array","items":{"type":"object","properties":{"preset":{"type":"string","enum":["full","split","sidebar","overlay"]},"background":{"type":"object","properties":{"colour":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"showProgress":{"type":"boolean"},"progressOptions":{"type":"object","properties":{"style":{"type":"string","enum":["ring","bar"]},"position":{"type":"string","enum":["inside","below"]},"label":{"type":"boolean"}},"additionalProperties":false},"onlineId":{"anyOf":[{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"},{"type":"string","const":""}]},"imageId":{"anyOf":[{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"},{"type":"string","const":""}]},"videoId":{"anyOf":[{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"},{"type":"string","const":""}]},"transparent":{"type":"boolean"},"fit":{"type":"string","enum":["contain","cover"]}},"required":["colour","imageId"],"additionalProperties":false},"nodes":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":100},"y":{"type":"number","minimum":0,"maximum":100},"width":{"type":"number","minimum":2,"maximum":100},"height":{"type":"number","minimum":2,"maximum":100},"social":{"type":"object","properties":{"mediaVersion":{"default":1,"anyOf":[{"type":"number","const":1},{"type":"number","const":2}]},"connectionId":{"anyOf":[{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"},{"type":"string","const":""}]},"additionalConnectionIds":{"default":[],"maxItems":4,"type":"array","items":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"}},"template":{"default":"auto","type":"string","enum":["auto","feature","photo","editorial","carousel","ticker","wall","strip","custom"]},"showQR":{"default":true,"type":"boolean"},"showCaption":{"default":true,"type":"boolean"},"showDate":{"default":true,"type":"boolean"},"playVideo":{"default":true,"type":"boolean"},"seconds":{"default":15,"type":"integer","minimum":5,"maximum":120},"mediaFit":{"default":"contain","type":"string","enum":["contain","cover"]},"accent":{"default":"#F0642C","type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"background":{"default":"#F5F0E7","type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"foreground":{"default":"#242624","type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"fontFamily":{"type":"string","enum":["archivo","inter","noto-serif","roboto-mono"]},"fontWeight":{"anyOf":[{"type":"number","const":400},{"type":"number","const":700}]},"brandName":{"default":"","type":"string","maxLength":100},"logoId":{"default":"","anyOf":[{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"},{"type":"string","const":""}]}},"required":["mediaVersion","connectionId","additionalConnectionIds","template","showQR","showCaption","showDate","playVideo","seconds","mediaFit","accent","background","foreground","brandName","logoId"],"additionalProperties":false},"id":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"},"name":{"type":"string","minLength":1,"maxLength":80},"type":{"type":"string","enum":["content","clock","weather","ticker","notice","html","qrcode","countdown","announcements"]},"locked":{"type":"boolean"},"visible":{"type":"boolean"},"source":{"type":"string","enum":["image","video","online","playlist","screen"]},"sourceId":{"anyOf":[{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"},{"type":"string","const":""}]},"fit":{"type":"string","enum":["contain","cover"]},"muted":{"type":"boolean"},"loop":{"type":"boolean"},"text":{"type":"string","maxLength":160000},"colour":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"background":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"fontSize":{"type":"number","minimum":12,"maximum":240},"timezone":{"type":"string","maxLength":80},"fontFamily":{"type":"string","enum":["archivo","inter","noto-serif","roboto-mono"]},"fontWeight":{"anyOf":[{"type":"number","const":400},{"type":"number","const":700}]},"italic":{"type":"boolean"},"textAlign":{"type":"string","enum":["left","center","right"]},"backgroundOpacity":{"type":"number","minimum":0,"maximum":100},"padding":{"type":"number","minimum":0,"maximum":160},"cornerRadius":{"type":"number","minimum":0,"maximum":160},"showProgress":{"type":"boolean"},"progressOptions":{"type":"object","properties":{"style":{"type":"string","enum":["ring","bar"]},"position":{"type":"string","enum":["inside","below"]},"label":{"type":"boolean"}},"additionalProperties":false},"backgroundShowProgress":{"type":"boolean"},"backgroundProgressOptions":{"type":"object","properties":{"style":{"type":"string","enum":["ring","bar"]},"position":{"type":"string","enum":["inside","below"]},"label":{"type":"boolean"}},"additionalProperties":false},"backgroundOnlineId":{"anyOf":[{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"},{"type":"string","const":""}]},"backgroundImageId":{"anyOf":[{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"},{"type":"string","const":""}]},"backgroundVideoId":{"anyOf":[{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"},{"type":"string","const":""}]},"backgroundFit":{"type":"string","enum":["cover","contain"]},"clockStyle":{"type":"string","enum":["digital","analogue"]},"clockHour12":{"type":"boolean"},"clockShowTime":{"type":"boolean"},"clockShowDate":{"type":"boolean"},"clockShowSeconds":{"type":"boolean"},"clockShowTimezone":{"type":"boolean"},"clockShowNumbers":{"type":"boolean"},"clockDateFormat":{"type":"string","enum":["short","long","numeric","iso"]},"countdownUnits":{"minItems":1,"maxItems":4,"type":"array","items":{"type":"string","enum":["days","hours","minutes","seconds"]}},"tickerDirection":{"type":"string","enum":["left","right"]},"tickerSpacing":{"type":"number","minimum":0,"maximum":12},"tickerSeparator":{"type":"string","enum":["bullet","dash","none"]},"announcementDurations":{"maxItems":50,"type":"array","items":{"type":"integer","minimum":2,"maximum":3600}},"weatherStyle":{"type":"string","enum":["stacked","compact"]},"weatherShowLocation":{"type":"boolean"},"weatherShowIcon":{"type":"boolean"},"weatherShowCondition":{"type":"boolean"},"qrForeground":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"qrBackground":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"qrLogoId":{"anyOf":[{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"},{"type":"string","const":""}]},"qrStyle":{"type":"string","enum":["classic","rounded","dots"]},"location":{"type":"string","maxLength":80},"latitude":{"type":"number","minimum":-90,"maximum":90},"longitude":{"type":"number","minimum":-180,"maximum":180},"units":{"type":"string","enum":["celsius","fahrenheit"]},"maxAge":{"type":"integer","minimum":300,"maximum":604800},"feedType":{"type":"string","enum":["list","rss","json"]},"feedUrl":{"type":"string","maxLength":2048},"itemsPath":{"type":"string","maxLength":150},"titleField":{"type":"string","maxLength":150},"speed":{"type":"number","minimum":10,"maximum":180},"qrUrl":{"default":"","type":"string","maxLength":1000},"countdownAt":{"default":"","type":"string","maxLength":16},"countdownEndText":{"default":"It’s time.","type":"string","maxLength":240},"announcements":{"default":[],"maxItems":50,"type":"array","items":{"type":"string","maxLength":2000}},"announcementSeconds":{"default":10,"type":"integer","minimum":2,"maximum":3600},"announcementTransition":{"default":"fade","type":"string","enum":["cut","fade"]}},"required":["x","y","width","height","id","name","type","locked","visible","source","sourceId","fit","muted","loop","text","colour","background","fontSize","timezone","location","latitude","longitude","units","maxAge","feedType","feedUrl","itemsPath","titleField","speed","qrUrl","countdownAt","countdownEndText","announcements","announcementSeconds","announcementTransition"],"additionalProperties":false}},"pageName":{"type":"string","minLength":1,"maxLength":60},"pageSeconds":{"type":"integer","minimum":5,"maximum":86400}},"required":["preset","background","nodes"],"additionalProperties":false}},"pageLoop":{"type":"boolean"}},"required":["version","width","height","preset","background","nodes"],"additionalProperties":false},"brandMode":{"description":"auto copies saved brand defaults into new content while preserving custom values. apply deliberately restyles the supplied draft. none keeps every supplied style. Existing widgets are untouched by auto updates.","type":"string","enum":["auto","apply","none"]},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120,"description":"Unique per intended write. Reuse the exact key and arguments after a transport failure."}},"required":["layoutId","revision","name","kind","document","idempotencyKey"],"additionalProperties":false},"retry":"idempotencyKey required","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"delete_layout","description":"Delete an unassigned layout or Custom app. Remove even disabled screen assignments first.","scopes":["content:delete"],"masterOnly":false,"readOnly":false,"destructive":true,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"layoutId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120,"description":"Unique per intended write. Reuse the exact key and arguments after a transport failure."}},"required":["layoutId","idempotencyKey"],"additionalProperties":false},"retry":"idempotencyKey required","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"list_widget_presets","description":"Read this customer’s saved reusable widget definitions.","scopes":["content:read"],"masterOnly":false,"readOnly":true,"destructive":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"}},"additionalProperties":false},"retry":"Read only","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"create_widget_preset","description":"Save a reusable widget definition, including its customer-owned media dependencies.","scopes":["layouts:write"],"masterOnly":false,"readOnly":false,"destructive":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"name":{"type":"string","minLength":1,"maxLength":120},"node":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":100},"y":{"type":"number","minimum":0,"maximum":100},"width":{"type":"number","minimum":2,"maximum":100},"height":{"type":"number","minimum":2,"maximum":100},"social":{"type":"object","properties":{"mediaVersion":{"default":1,"anyOf":[{"type":"number","const":1},{"type":"number","const":2}]},"connectionId":{"anyOf":[{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"},{"type":"string","const":""}]},"additionalConnectionIds":{"default":[],"maxItems":4,"type":"array","items":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"}},"template":{"default":"auto","type":"string","enum":["auto","feature","photo","editorial","carousel","ticker","wall","strip","custom"]},"showQR":{"default":true,"type":"boolean"},"showCaption":{"default":true,"type":"boolean"},"showDate":{"default":true,"type":"boolean"},"playVideo":{"default":true,"type":"boolean"},"seconds":{"default":15,"type":"integer","minimum":5,"maximum":120},"mediaFit":{"default":"contain","type":"string","enum":["contain","cover"]},"accent":{"default":"#F0642C","type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"background":{"default":"#F5F0E7","type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"foreground":{"default":"#242624","type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"fontFamily":{"type":"string","enum":["archivo","inter","noto-serif","roboto-mono"]},"fontWeight":{"anyOf":[{"type":"number","const":400},{"type":"number","const":700}]},"brandName":{"default":"","type":"string","maxLength":100},"logoId":{"default":"","anyOf":[{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"},{"type":"string","const":""}]}},"required":["mediaVersion","connectionId","additionalConnectionIds","template","showQR","showCaption","showDate","playVideo","seconds","mediaFit","accent","background","foreground","brandName","logoId"],"additionalProperties":false},"id":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"},"name":{"type":"string","minLength":1,"maxLength":80},"type":{"type":"string","enum":["content","clock","weather","ticker","notice","html","qrcode","countdown","announcements"]},"locked":{"type":"boolean"},"visible":{"type":"boolean"},"source":{"type":"string","enum":["image","video","online","playlist","screen"]},"sourceId":{"anyOf":[{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"},{"type":"string","const":""}]},"fit":{"type":"string","enum":["contain","cover"]},"muted":{"type":"boolean"},"loop":{"type":"boolean"},"text":{"type":"string","maxLength":160000},"colour":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"background":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"fontSize":{"type":"number","minimum":12,"maximum":240},"timezone":{"type":"string","maxLength":80},"fontFamily":{"type":"string","enum":["archivo","inter","noto-serif","roboto-mono"]},"fontWeight":{"anyOf":[{"type":"number","const":400},{"type":"number","const":700}]},"italic":{"type":"boolean"},"textAlign":{"type":"string","enum":["left","center","right"]},"backgroundOpacity":{"type":"number","minimum":0,"maximum":100},"padding":{"type":"number","minimum":0,"maximum":160},"cornerRadius":{"type":"number","minimum":0,"maximum":160},"showProgress":{"type":"boolean"},"progressOptions":{"type":"object","properties":{"style":{"type":"string","enum":["ring","bar"]},"position":{"type":"string","enum":["inside","below"]},"label":{"type":"boolean"}},"additionalProperties":false},"backgroundShowProgress":{"type":"boolean"},"backgroundProgressOptions":{"type":"object","properties":{"style":{"type":"string","enum":["ring","bar"]},"position":{"type":"string","enum":["inside","below"]},"label":{"type":"boolean"}},"additionalProperties":false},"backgroundOnlineId":{"anyOf":[{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"},{"type":"string","const":""}]},"backgroundImageId":{"anyOf":[{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"},{"type":"string","const":""}]},"backgroundVideoId":{"anyOf":[{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"},{"type":"string","const":""}]},"backgroundFit":{"type":"string","enum":["cover","contain"]},"clockStyle":{"type":"string","enum":["digital","analogue"]},"clockHour12":{"type":"boolean"},"clockShowTime":{"type":"boolean"},"clockShowDate":{"type":"boolean"},"clockShowSeconds":{"type":"boolean"},"clockShowTimezone":{"type":"boolean"},"clockShowNumbers":{"type":"boolean"},"clockDateFormat":{"type":"string","enum":["short","long","numeric","iso"]},"countdownUnits":{"minItems":1,"maxItems":4,"type":"array","items":{"type":"string","enum":["days","hours","minutes","seconds"]}},"tickerDirection":{"type":"string","enum":["left","right"]},"tickerSpacing":{"type":"number","minimum":0,"maximum":12},"tickerSeparator":{"type":"string","enum":["bullet","dash","none"]},"announcementDurations":{"maxItems":50,"type":"array","items":{"type":"integer","minimum":2,"maximum":3600}},"weatherStyle":{"type":"string","enum":["stacked","compact"]},"weatherShowLocation":{"type":"boolean"},"weatherShowIcon":{"type":"boolean"},"weatherShowCondition":{"type":"boolean"},"qrForeground":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"qrBackground":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"qrLogoId":{"anyOf":[{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"},{"type":"string","const":""}]},"qrStyle":{"type":"string","enum":["classic","rounded","dots"]},"location":{"type":"string","maxLength":80},"latitude":{"type":"number","minimum":-90,"maximum":90},"longitude":{"type":"number","minimum":-180,"maximum":180},"units":{"type":"string","enum":["celsius","fahrenheit"]},"maxAge":{"type":"integer","minimum":300,"maximum":604800},"feedType":{"type":"string","enum":["list","rss","json"]},"feedUrl":{"type":"string","maxLength":2048},"itemsPath":{"type":"string","maxLength":150},"titleField":{"type":"string","maxLength":150},"speed":{"type":"number","minimum":10,"maximum":180},"qrUrl":{"default":"","type":"string","maxLength":1000},"countdownAt":{"default":"","type":"string","maxLength":16},"countdownEndText":{"default":"It’s time.","type":"string","maxLength":240},"announcements":{"default":[],"maxItems":50,"type":"array","items":{"type":"string","maxLength":2000}},"announcementSeconds":{"default":10,"type":"integer","minimum":2,"maximum":3600},"announcementTransition":{"default":"fade","type":"string","enum":["cut","fade"]}},"required":["x","y","width","height","id","name","type","locked","visible","source","sourceId","fit","muted","loop","text","colour","background","fontSize","timezone","location","latitude","longitude","units","maxAge","feedType","feedUrl","itemsPath","titleField","speed","qrUrl","countdownAt","countdownEndText","announcements","announcementSeconds","announcementTransition"],"additionalProperties":false},"brandMode":{"description":"auto copies saved brand defaults into new content while preserving custom values. apply deliberately restyles the supplied draft. none keeps every supplied style. Existing widgets are untouched by auto updates.","type":"string","enum":["auto","apply","none"]},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120,"description":"Unique per intended write. Reuse the exact key and arguments after a transport failure."}},"required":["name","node","idempotencyKey"],"additionalProperties":false},"retry":"idempotencyKey required","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"delete_widget_preset","description":"Delete a saved widget preset. Existing layout copies remain.","scopes":["content:delete"],"masterOnly":false,"readOnly":false,"destructive":true,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"presetId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120,"description":"Unique per intended write. Reuse the exact key and arguments after a transport failure."}},"required":["presetId","idempotencyKey"],"additionalProperties":false},"retry":"idempotencyKey required","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"find_weather_place","description":"Search place names to get weather coordinates. Uses a public place search service; retry a busy response later.","scopes":["content:read"],"masterOnly":false,"readOnly":true,"destructive":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"query":{"type":"string","minLength":3,"maxLength":120},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120,"description":"Unique per intended write. Reuse the exact key and arguments after a transport failure."}},"required":["query","idempotencyKey"],"additionalProperties":false},"retry":"idempotencyKey required","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"preview_widget_data","description":"Read the current/fallback data for a weather, RSS, JSON ticker or HTML data widget using existing feed validation and cache.","scopes":["content:read"],"masterOnly":false,"readOnly":true,"destructive":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"node":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":100},"y":{"type":"number","minimum":0,"maximum":100},"width":{"type":"number","minimum":2,"maximum":100},"height":{"type":"number","minimum":2,"maximum":100},"social":{"type":"object","properties":{"mediaVersion":{"default":1,"anyOf":[{"type":"number","const":1},{"type":"number","const":2}]},"connectionId":{"anyOf":[{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"},{"type":"string","const":""}]},"additionalConnectionIds":{"default":[],"maxItems":4,"type":"array","items":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"}},"template":{"default":"auto","type":"string","enum":["auto","feature","photo","editorial","carousel","ticker","wall","strip","custom"]},"showQR":{"default":true,"type":"boolean"},"showCaption":{"default":true,"type":"boolean"},"showDate":{"default":true,"type":"boolean"},"playVideo":{"default":true,"type":"boolean"},"seconds":{"default":15,"type":"integer","minimum":5,"maximum":120},"mediaFit":{"default":"contain","type":"string","enum":["contain","cover"]},"accent":{"default":"#F0642C","type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"background":{"default":"#F5F0E7","type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"foreground":{"default":"#242624","type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"fontFamily":{"type":"string","enum":["archivo","inter","noto-serif","roboto-mono"]},"fontWeight":{"anyOf":[{"type":"number","const":400},{"type":"number","const":700}]},"brandName":{"default":"","type":"string","maxLength":100},"logoId":{"default":"","anyOf":[{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"},{"type":"string","const":""}]}},"required":["mediaVersion","connectionId","additionalConnectionIds","template","showQR","showCaption","showDate","playVideo","seconds","mediaFit","accent","background","foreground","brandName","logoId"],"additionalProperties":false},"id":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"},"name":{"type":"string","minLength":1,"maxLength":80},"type":{"type":"string","enum":["content","clock","weather","ticker","notice","html","qrcode","countdown","announcements"]},"locked":{"type":"boolean"},"visible":{"type":"boolean"},"source":{"type":"string","enum":["image","video","online","playlist","screen"]},"sourceId":{"anyOf":[{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"},{"type":"string","const":""}]},"fit":{"type":"string","enum":["contain","cover"]},"muted":{"type":"boolean"},"loop":{"type":"boolean"},"text":{"type":"string","maxLength":160000},"colour":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"background":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"fontSize":{"type":"number","minimum":12,"maximum":240},"timezone":{"type":"string","maxLength":80},"fontFamily":{"type":"string","enum":["archivo","inter","noto-serif","roboto-mono"]},"fontWeight":{"anyOf":[{"type":"number","const":400},{"type":"number","const":700}]},"italic":{"type":"boolean"},"textAlign":{"type":"string","enum":["left","center","right"]},"backgroundOpacity":{"type":"number","minimum":0,"maximum":100},"padding":{"type":"number","minimum":0,"maximum":160},"cornerRadius":{"type":"number","minimum":0,"maximum":160},"showProgress":{"type":"boolean"},"progressOptions":{"type":"object","properties":{"style":{"type":"string","enum":["ring","bar"]},"position":{"type":"string","enum":["inside","below"]},"label":{"type":"boolean"}},"additionalProperties":false},"backgroundShowProgress":{"type":"boolean"},"backgroundProgressOptions":{"type":"object","properties":{"style":{"type":"string","enum":["ring","bar"]},"position":{"type":"string","enum":["inside","below"]},"label":{"type":"boolean"}},"additionalProperties":false},"backgroundOnlineId":{"anyOf":[{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"},{"type":"string","const":""}]},"backgroundImageId":{"anyOf":[{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"},{"type":"string","const":""}]},"backgroundVideoId":{"anyOf":[{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"},{"type":"string","const":""}]},"backgroundFit":{"type":"string","enum":["cover","contain"]},"clockStyle":{"type":"string","enum":["digital","analogue"]},"clockHour12":{"type":"boolean"},"clockShowTime":{"type":"boolean"},"clockShowDate":{"type":"boolean"},"clockShowSeconds":{"type":"boolean"},"clockShowTimezone":{"type":"boolean"},"clockShowNumbers":{"type":"boolean"},"clockDateFormat":{"type":"string","enum":["short","long","numeric","iso"]},"countdownUnits":{"minItems":1,"maxItems":4,"type":"array","items":{"type":"string","enum":["days","hours","minutes","seconds"]}},"tickerDirection":{"type":"string","enum":["left","right"]},"tickerSpacing":{"type":"number","minimum":0,"maximum":12},"tickerSeparator":{"type":"string","enum":["bullet","dash","none"]},"announcementDurations":{"maxItems":50,"type":"array","items":{"type":"integer","minimum":2,"maximum":3600}},"weatherStyle":{"type":"string","enum":["stacked","compact"]},"weatherShowLocation":{"type":"boolean"},"weatherShowIcon":{"type":"boolean"},"weatherShowCondition":{"type":"boolean"},"qrForeground":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"qrBackground":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"qrLogoId":{"anyOf":[{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,128}$"},{"type":"string","const":""}]},"qrStyle":{"type":"string","enum":["classic","rounded","dots"]},"location":{"type":"string","maxLength":80},"latitude":{"type":"number","minimum":-90,"maximum":90},"longitude":{"type":"number","minimum":-180,"maximum":180},"units":{"type":"string","enum":["celsius","fahrenheit"]},"maxAge":{"type":"integer","minimum":300,"maximum":604800},"feedType":{"type":"string","enum":["list","rss","json"]},"feedUrl":{"type":"string","maxLength":2048},"itemsPath":{"type":"string","maxLength":150},"titleField":{"type":"string","maxLength":150},"speed":{"type":"number","minimum":10,"maximum":180},"qrUrl":{"default":"","type":"string","maxLength":1000},"countdownAt":{"default":"","type":"string","maxLength":16},"countdownEndText":{"default":"It’s time.","type":"string","maxLength":240},"announcements":{"default":[],"maxItems":50,"type":"array","items":{"type":"string","maxLength":2000}},"announcementSeconds":{"default":10,"type":"integer","minimum":2,"maximum":3600},"announcementTransition":{"default":"fade","type":"string","enum":["cut","fade"]}},"required":["x","y","width","height","id","name","type","locked","visible","source","sourceId","fit","muted","loop","text","colour","background","fontSize","timezone","location","latitude","longitude","units","maxAge","feedType","feedUrl","itemsPath","titleField","speed","qrUrl","countdownAt","countdownEndText","announcements","announcementSeconds","announcementTransition"],"additionalProperties":false},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120,"description":"Unique per intended write. Reuse the exact key and arguments after a transport failure."}},"required":["node","idempotencyKey"],"additionalProperties":false},"retry":"idempotencyKey required","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"create_social_post_embed","description":"Create a customer-owned LinkedIn public-post embed or TikTok post player. LinkedIn requires its official iframe embed code or embed URL, not OAuth or feed scraping. TikTok accepts a full post URL. Provider controls appearance and playback; internet is required. Reuse the returned media entry in layouts/playlists and publish normally.","scopes":["media:write"],"masterOnly":false,"readOnly":false,"destructive":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"name":{"type":"string","minLength":1,"maxLength":120},"socialEmbed":{"type":"object","properties":{"provider":{"type":"string","enum":["linkedin","tiktok"]},"input":{"type":"string","minLength":1,"maxLength":4096},"offlineAction":{"type":"string","enum":["skip","fallback"]},"fallbackMediaId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"}},"required":["provider","input","offlineAction"],"additionalProperties":false},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120,"description":"Unique per intended write. Reuse the exact key and arguments after a transport failure."}},"required":["name","socialEmbed","idempotencyKey"],"additionalProperties":false},"retry":"idempotencyKey required","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"create_online_content","description":"Create a webpage, YouTube/live-video or direct-stream media entry. Internet content needs compatible players; choose a downloaded fallback or hide/skip. No server-side URL import of arbitrary files.","scopes":["media:write"],"masterOnly":false,"readOnly":false,"destructive":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"name":{"type":"string","minLength":1,"maxLength":120},"content":{"type":"object","properties":{"version":{"type":"number","const":1},"kind":{"type":"string","enum":["webpage","youtube","stream"]},"url":{"type":"string","maxLength":2048,"format":"uri"},"fallbackMediaId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"offlineAction":{"type":"string","enum":["fallback","skip"]},"streamFormat":{"type":"string","enum":["auto","hls"]},"requireReady":{"type":"boolean"},"live":{"type":"boolean"},"webpage":{"type":"object","properties":{"refreshSeconds":{"anyOf":[{"type":"number","const":0},{"type":"integer","minimum":30,"maximum":86400}]},"loadTimeoutSeconds":{"type":"integer","minimum":5,"maximum":120},"viewportWidth":{"anyOf":[{"type":"number","const":0},{"type":"integer","minimum":320,"maximum":7680}]},"viewportHeight":{"anyOf":[{"type":"number","const":0},{"type":"integer","minimum":320,"maximum":7680}]},"zoom":{"type":"integer","minimum":25,"maximum":200},"offsetX":{"type":"integer","minimum":0,"maximum":7680},"offsetY":{"type":"integer","minimum":0,"maximum":7680},"actions":{"type":"boolean"},"actionDelaySeconds":{"type":"integer","minimum":0,"maximum":60},"scrollX":{"type":"integer","minimum":0,"maximum":100000},"scrollY":{"type":"integer","minimum":0,"maximum":100000},"autoScrollSpeed":{"anyOf":[{"type":"number","const":0},{"type":"integer","minimum":10,"maximum":200}]},"key":{"type":"string","enum":["","Enter","Escape","ArrowDown","ArrowUp","ArrowLeft","ArrowRight","PageDown","PageUp","Home","End","f"]}},"additionalProperties":false}},"required":["version","kind","url","offlineAction"],"additionalProperties":false},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120,"description":"Unique per intended write. Reuse the exact key and arguments after a transport failure."}},"required":["name","content","idempotencyKey"],"additionalProperties":false},"retry":"idempotencyKey required","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"get_media_usage","description":"List saved and published dependencies that protect this customer’s media from deletion.","scopes":["content:read","players:read"],"masterOnly":false,"readOnly":true,"destructive":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"mediaId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"}},"required":["mediaId"],"additionalProperties":false},"retry":"Read only","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"get_layout_thumbnail","description":"View the cached first-page preview for a customer-owned layout. This is a still image, not proof of live playback.","scopes":["content:read"],"masterOnly":false,"readOnly":true,"destructive":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"layoutId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"}},"required":["layoutId"],"additionalProperties":false},"retry":"Read only","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"set_layout_thumbnail","description":"Cache an actual rendered preview of the current layout revision: JPEG, PNG or WebP, up to 640 pixels and 256 KB. Static previews stay cached until saved content changes or publication. Feed previews refresh after 15 minutes and expire within one hour, bounded by their social source. The response includes refreshAt and expiresAt. Pass preview_version from get_layout as previewVersion. Never invent image bytes.","scopes":["layouts:write"],"masterOnly":false,"readOnly":false,"destructive":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"layoutId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"revision":{"type":"integer","minimum":1,"maximum":9007199254740991},"previewVersion":{"type":"integer","minimum":0,"maximum":9007199254740991},"expiresAt":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"mime":{"type":"string","enum":["image/jpeg","image/png","image/webp"]},"base64":{"type":"string","minLength":4,"maxLength":349528},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120,"description":"Unique per intended write. Reuse the exact key and arguments after a transport failure."}},"required":["layoutId","revision","previewVersion","mime","base64","idempotencyKey"],"additionalProperties":false},"retry":"idempotencyKey required","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"get_media_thumbnail","description":"View the cached low-resolution preview for customer-owned media.","scopes":["content:read"],"masterOnly":false,"readOnly":true,"destructive":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"mediaId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"}},"required":["mediaId"],"additionalProperties":false},"retry":"Read only","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"set_media_thumbnail","description":"Cache a generated JPEG, PNG or WebP preview up to 640 pixels per side and 256 KB. Use actual rendered file bytes; never invent base64. Original media is unchanged.","scopes":["media:write"],"masterOnly":false,"readOnly":false,"destructive":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"mediaId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"mime":{"type":"string","enum":["image/jpeg","image/png","image/webp"]},"base64":{"type":"string","minLength":4,"maxLength":349528},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120,"description":"Unique per intended write. Reuse the exact key and arguments after a transport failure."}},"required":["mediaId","mime","base64","idempotencyKey"],"additionalProperties":false},"retry":"idempotencyKey required","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"get_media_image","description":"View a customer-owned PNG, JPEG, WebP or GIF as an MCP image (up to 8 MiB). Use this to inspect artwork before editing.","scopes":["content:read"],"masterOnly":false,"readOnly":true,"destructive":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"mediaId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"}},"required":["mediaId"],"additionalProperties":false},"retry":"Read only","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"read_media_bytes","description":"Download a customer-owned media file in bounded base64 chunks. Use client code to write bytes to disk; continue with nextOffset until null. Never execute downloaded content.","scopes":["content:read"],"masterOnly":false,"readOnly":true,"destructive":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"mediaId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"offset":{"default":0,"type":"integer","minimum":0,"maximum":9007199254740991},"length":{"default":1048576,"type":"integer","minimum":1,"maximum":1048576}},"required":["mediaId","offset","length"],"additionalProperties":false},"retry":"Read only","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"rename_media","description":"Rename a media-library entry.","scopes":["media:write"],"masterOnly":false,"readOnly":false,"destructive":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"mediaId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"name":{"type":"string","minLength":1,"maxLength":120},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120,"description":"Unique per intended write. Reuse the exact key and arguments after a transport failure."}},"required":["mediaId","name","idempotencyKey"],"additionalProperties":false},"retry":"idempotencyKey required","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"delete_media","description":"Delete unused media. Published or assigned dependencies block deletion.","scopes":["content:delete"],"masterOnly":false,"readOnly":false,"destructive":true,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"mediaId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120,"description":"Unique per intended write. Reuse the exact key and arguments after a transport failure."}},"required":["mediaId","idempotencyKey"],"additionalProperties":false},"retry":"idempotencyKey required","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"begin_media_upload","description":"Start a resumable media upload. Returns upload ID, exact chunkSize and partCount. Upload each part, then complete_media_upload. Use file bytes, never model-invented base64.","scopes":["media:write"],"masterOnly":false,"readOnly":false,"destructive":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"name":{"type":"string","minLength":1,"maxLength":240},"mime":{"type":"string","minLength":1,"maxLength":100},"size":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120,"description":"Unique per intended write. Reuse the exact key and arguments after a transport failure."}},"required":["name","mime","size","idempotencyKey"],"additionalProperties":false},"retry":"idempotencyKey required","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"get_media_upload","description":"Read accepted upload parts and hashes to resume safely.","scopes":["media:write"],"masterOnly":false,"readOnly":true,"destructive":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"uploadId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"}},"required":["uploadId"],"additionalProperties":false},"retry":"Read only","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"upload_media_part","description":"Upload one base64-encoded file part, numbered from 1. Non-final parts must match chunkSize (8 MiB). Repeat identical bytes safely; part ID and hash handle retries. For large files use the documented local uploader.","scopes":["media:write"],"masterOnly":false,"readOnly":false,"destructive":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"uploadId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"part":{"type":"integer","minimum":1,"maximum":9007199254740991},"base64":{"type":"string","minLength":4,"maxLength":11184812}},"required":["uploadId","part","base64"],"additionalProperties":false},"retry":"Upload ID and part hash","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"complete_media_upload","description":"Validate the uploaded file and add it to Media. Repeating completion returns the same media ID. Container validation does not prove hardware decoding.","scopes":["media:write"],"masterOnly":false,"readOnly":false,"destructive":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"uploadId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"}},"required":["uploadId"],"additionalProperties":false},"retry":"Upload ID and part hash","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"cancel_media_upload","description":"Discard an incomplete upload and its stored parts.","scopes":["media:write"],"masterOnly":false,"readOnly":false,"destructive":true,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"uploadId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120,"description":"Unique per intended write. Reuse the exact key and arguments after a transport failure."}},"required":["uploadId","idempotencyKey"],"additionalProperties":false},"retry":"idempotencyKey required","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"preview_publication","description":"Preview ALL assigned drafts for this player. Returns a ten-minute previewId and exact manifest. No screen content changes.","scopes":["publish"],"masterOnly":false,"readOnly":true,"destructive":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"playerId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120,"description":"Unique per intended write. Reuse the exact key and arguments after a transport failure."}},"required":["playerId","idempotencyKey"],"additionalProperties":false},"retry":"idempotencyKey required","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"publish_player","description":"Publish an authorised preview. Rejects changed drafts/publication or expired previews. Includes all assigned drafts. Acceptance waits for player check-in; inspect desired/applied revisions afterward.","scopes":["publish"],"masterOnly":false,"readOnly":false,"destructive":true,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"playerId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"previewId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120,"description":"Unique per intended write. Reuse the exact key and arguments after a transport failure."}},"required":["playerId","previewId","idempotencyKey"],"additionalProperties":false},"retry":"idempotencyKey required","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"get_player_diagnostics","description":"Read reported telemetry and the 100 most recent incidents. Does not contact the physical screen.","scopes":["players:read"],"masterOnly":false,"readOnly":true,"destructive":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"playerId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"}},"required":["playerId"],"additionalProperties":false},"retry":"Read only","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"get_player_screenshot","description":"Return the last uploaded screenshot as an MCP image. Queue screenshot_player first for a fresh capture and wait for completion. A saved image may be old.","scopes":["players:read"],"masterOnly":false,"readOnly":true,"destructive":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"playerId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"outputId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"}},"required":["playerId","outputId"],"additionalProperties":false},"retry":"Read only","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"get_player_wifi","description":"Read saved Wi-Fi names and connection status from a Linux player. Passwords are never returned. Requires a verified owner or master connection.","scopes":["players:read"],"masterOnly":false,"readOnly":true,"destructive":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"playerId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"}},"required":["playerId"],"additionalProperties":false},"retry":"Read only","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"configure_player_wifi","description":"Save a WPA personal network, connect with rollback, or remove an inactive saved network on a supported online Linux player. Save does not switch the current connection. Use connectionId to update a saved password; leave password empty to retain it. Read get_command_status for completion.","scopes":["players:read","control","control:advanced"],"masterOnly":false,"readOnly":false,"destructive":true,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"playerId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"operation":{"type":"string","enum":["save","connect","remove"]},"connectionId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"ssid":{"type":"string","maxLength":32},"password":{"type":"string","maxLength":63},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120,"description":"Unique per intended write. Reuse the exact key and arguments after a transport failure."}},"required":["playerId","operation","idempotencyKey"],"additionalProperties":false},"retry":"idempotencyKey required","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"get_command_status","description":"Read command acceptance, expiry and the player-reported result. Pending is not completion.","scopes":["players:read"],"masterOnly":false,"readOnly":true,"destructive":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"commandId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"}},"required":["commandId"],"additionalProperties":false},"retry":"Read only","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"sync_player","description":"Sync already published content; does not publish drafts. Commands expire after five minutes; support varies by platform.","scopes":["control"],"masterOnly":false,"readOnly":false,"destructive":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"playerId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120,"description":"Unique per intended write. Reuse the exact key and arguments after a transport failure."}},"required":["playerId","idempotencyKey"],"additionalProperties":false},"retry":"idempotencyKey required","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"set_player_maintenance","description":"Show standby artwork for 0–1440 minutes. Zero ends maintenance. Commands expire after five minutes; support varies by platform.","scopes":["control"],"masterOnly":false,"readOnly":false,"destructive":true,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"playerId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"minutes":{"type":"integer","minimum":0,"maximum":1440},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120,"description":"Unique per intended write. Reuse the exact key and arguments after a transport failure."}},"required":["playerId","minutes","idempotencyKey"],"additionalProperties":false},"retry":"idempotencyKey required","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"retry_player_media","description":"Retry one customer media download. Commands expire after five minutes; support varies by platform.","scopes":["control"],"masterOnly":false,"readOnly":false,"destructive":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"playerId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"mediaId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120,"description":"Unique per intended write. Reuse the exact key and arguments after a transport failure."}},"required":["playerId","mediaId","idempotencyKey"],"additionalProperties":false},"retry":"idempotencyKey required","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"capture_player_performance","description":"Show a 60-second performance overlay on active desktop layouts and save measurements in get_player_diagnostics. Requires player 0.7.10 or later; callback and animation rates do not measure physical panel FPS. Commands expire after five minutes; support varies by platform.","scopes":["control","control:advanced"],"masterOnly":false,"readOnly":false,"destructive":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"playerId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"outputId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120,"description":"Unique per intended write. Reuse the exact key and arguments after a transport failure."}},"required":["playerId","idempotencyKey"],"additionalProperties":false},"retry":"idempotencyKey required","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"screenshot_player","description":"Request a screen capture. Read its command status, then get_player_screenshot. Commands expire after five minutes; support varies by platform.","scopes":["control","control:advanced"],"masterOnly":false,"readOnly":false,"destructive":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"playerId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"outputId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120,"description":"Unique per intended write. Reuse the exact key and arguments after a transport failure."}},"required":["playerId","outputId","idempotencyKey"],"additionalProperties":false},"retry":"idempotencyKey required","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"identify_player_screens","description":"Request screen identification on supported players. Commands expire after five minutes; support varies by platform.","scopes":["control","control:advanced"],"masterOnly":false,"readOnly":false,"destructive":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"playerId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120,"description":"Unique per intended write. Reuse the exact key and arguments after a transport failure."}},"required":["playerId","idempotencyKey"],"additionalProperties":false},"retry":"idempotencyKey required","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"restart_player_output","description":"Restart one output; playback may be interrupted. Commands expire after five minutes; support varies by platform.","scopes":["control","control:advanced"],"masterOnly":false,"readOnly":false,"destructive":true,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"playerId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"outputId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120,"description":"Unique per intended write. Reuse the exact key and arguments after a transport failure."}},"required":["playerId","outputId","idempotencyKey"],"additionalProperties":false},"retry":"idempotencyKey required","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"restart_player","description":"Restart the player application; playback may be interrupted. Commands expire after five minutes; support varies by platform.","scopes":["control","control:advanced"],"masterOnly":false,"readOnly":false,"destructive":true,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"playerId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120,"description":"Unique per intended write. Reuse the exact key and arguments after a transport failure."}},"required":["playerId","idempotencyKey"],"additionalProperties":false},"retry":"idempotencyKey required","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"quit_player","description":"Quit and durably pause automatic recovery on a supported online desktop player. Manual app launch is needed to resume. Commands expire after five minutes; support varies by platform.","scopes":["control","control:advanced"],"masterOnly":false,"readOnly":false,"destructive":true,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"playerId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120,"description":"Unique per intended write. Reuse the exact key and arguments after a transport failure."}},"required":["playerId","idempotencyKey"],"additionalProperties":false},"retry":"idempotencyKey required","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"reboot_player","description":"Reboot a supported player PC; interrupts playback. Commands expire after five minutes; support varies by platform.","scopes":["control","control:advanced"],"masterOnly":false,"readOnly":false,"destructive":true,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"playerId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120,"description":"Unique per intended write. Reuse the exact key and arguments after a transport failure."}},"required":["playerId","idempotencyKey"],"additionalProperties":false},"retry":"idempotencyKey required","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"confirm_player_display","description":"Confirm a still-active output-resolution test after a person checks the screen. Commands expire after five minutes; support varies by platform.","scopes":["control","control:advanced"],"masterOnly":false,"readOnly":false,"destructive":true,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"playerId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"outputId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"trialId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120,"description":"Unique per intended write. Reuse the exact key and arguments after a transport failure."}},"required":["playerId","outputId","trialId","idempotencyKey"],"additionalProperties":false},"retry":"idempotencyKey required","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"update_player_application","description":"Install the compatible newer automatic release from the verified catalog. Does not install manual trial builds or arbitrary URLs. Commands expire after five minutes; support varies by platform.","scopes":["control","control:advanced"],"masterOnly":false,"readOnly":false,"destructive":true,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"playerId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120,"description":"Unique per intended write. Reuse the exact key and arguments after a transport failure."}},"required":["playerId","idempotencyKey"],"additionalProperties":false},"retry":"idempotencyKey required","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"list_screen_actions","description":"Read up to 100 recent temporary screen actions, including cancellation and timing.","scopes":["content:read"],"masterOnly":false,"readOnly":true,"destructive":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"}},"additionalProperties":false},"retry":"Read only","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"create_screen_action","description":"Temporarily replace or append image/video media on published screens. Normal programming resumes at expiry. Authorise targets and timing first; each published screen timezone applies.","scopes":["publish"],"masterOnly":false,"readOnly":false,"destructive":true,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"mediaId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"outputIds":{"minItems":1,"maxItems":20,"type":"array","items":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"}},"mode":{"type":"string","enum":["replace","append"]},"duration":{"type":"number","minimum":1,"maximum":86400},"schedule":{"type":"object","properties":{"timing":{"type":"string","enum":["today","duration","weekly"]},"minutes":{"type":"integer","minimum":1,"maximum":1440},"startDate":{"type":"string"},"endDate":{"type":"string"},"weekdays":{"type":"array","items":{"type":"integer","minimum":0,"maximum":6}},"start":{"type":"string"},"end":{"type":"string"}},"required":["timing"],"additionalProperties":false},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120,"description":"Unique per intended write. Reuse the exact key and arguments after a transport failure."}},"required":["mediaId","outputIds","mode","schedule","idempotencyKey"],"additionalProperties":false},"retry":"idempotencyKey required","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"cancel_screen_action","description":"Cancel a temporary screen action on all of its targets. Restoration reaches players at check-in.","scopes":["publish"],"masterOnly":false,"readOnly":false,"destructive":true,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"actionId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120,"description":"Unique per intended write. Reuse the exact key and arguments after a transport failure."}},"required":["actionId","idempotencyKey"],"additionalProperties":false},"retry":"idempotencyKey required","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"create_customer","description":"Master only: create a customer organisation. This does not invite users or start paid billing.","scopes":["customers:write"],"masterOnly":true,"readOnly":false,"destructive":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"location":{"type":"string","maxLength":160},"address":{"type":"string","maxLength":600},"logo":{"anyOf":[{"type":"string","maxLength":700000},{"type":"null"}]},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120,"description":"Unique per intended write. Reuse the exact key and arguments after a transport failure."}},"required":["name","idempotencyKey"],"additionalProperties":false},"retry":"idempotencyKey required","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"update_customer","description":"Master only: update a customer name and profile. Optional logo is a PNG/JPEG data URL under 512 KiB, or null to remove.","scopes":["customers:write"],"masterOnly":true,"readOnly":false,"destructive":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"name":{"type":"string","minLength":1,"maxLength":120},"location":{"type":"string","maxLength":160},"address":{"type":"string","maxLength":600},"logo":{"anyOf":[{"type":"string","maxLength":700000},{"type":"null"}]},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120,"description":"Unique per intended write. Reuse the exact key and arguments after a transport failure."}},"required":["customerId","name","idempotencyKey"],"additionalProperties":false},"retry":"idempotencyKey required","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"delete_customer","description":"Master only: delete an empty customer without team or billing history. Linked records block deletion; no cascade is exposed.","scopes":["customers:write"],"masterOnly":true,"readOnly":false,"destructive":true,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120,"description":"Unique per intended write. Reuse the exact key and arguments after a transport failure."}},"required":["customerId","idempotencyKey"],"additionalProperties":false},"retry":"idempotencyKey required","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"get_workspace_settings","description":"Master only: read shared defaults used for new records.","scopes":["players:read"],"masterOnly":true,"readOnly":true,"destructive":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"additionalProperties":false},"retry":"Read only","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"update_workspace_settings","description":"Master only: change default timezone, upload-byte limit and optional standby image. Does not change existing group timezones.","scopes":["workspace:write"],"masterOnly":true,"readOnly":false,"destructive":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"timezone":{"type":"string","minLength":1,"maxLength":80},"maxUploadBytes":{"type":"integer","minimum":1048576,"maximum":5242880000},"standbyMediaId":{"anyOf":[{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},{"type":"null"}]},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120,"description":"Unique per intended write. Reuse the exact key and arguments after a transport failure."}},"required":["timezone","maxUploadBytes","idempotencyKey"],"additionalProperties":false},"retry":"idempotencyKey required","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"get_customer_profile","description":"Read this customer’s organisation name, address and logo version.","scopes":["players:read"],"masterOnly":false,"readOnly":true,"destructive":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"}},"additionalProperties":false},"retry":"Read only","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"update_customer_profile","description":"Owner only: update the connected customer’s organisation profile.","scopes":["account:write"],"masterOnly":false,"readOnly":false,"destructive":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"name":{"type":"string","minLength":1,"maxLength":120},"location":{"type":"string","maxLength":160},"address":{"type":"string","maxLength":600},"logo":{"anyOf":[{"type":"string","maxLength":700000},{"type":"null"}]},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120,"description":"Unique per intended write. Reuse the exact key and arguments after a transport failure."}},"required":["name","idempotencyKey"],"additionalProperties":false},"retry":"idempotencyKey required","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"get_offline_alerts","description":"Read this customer’s email-alert settings and actual monitor readiness.","scopes":["players:read"],"masterOnly":false,"readOnly":true,"destructive":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"}},"additionalProperties":false},"retry":"Read only","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"update_offline_alerts","description":"Owner only: choose the recipient and delay for offline emails. Enabling requires a working configured monitor. Can send future outage emails.","scopes":["account:write"],"masterOnly":false,"readOnly":false,"destructive":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"enabled":{"type":"boolean"},"recipient":{"type":"string","maxLength":254},"afterMinutes":{"anyOf":[{"type":"number","const":5},{"type":"number","const":10},{"type":"number","const":15},{"type":"number","const":30},{"type":"number","const":60}]},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120,"description":"Unique per intended write. Reuse the exact key and arguments after a transport failure."}},"required":["enabled","recipient","afterMinutes","idempotencyKey"],"additionalProperties":false},"retry":"idempotencyKey required","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"list_integrations","description":"Read this customer’s webhooks, delivery history and incoming events. No secrets are returned.","scopes":["integrations:read"],"masterOnly":false,"readOnly":true,"destructive":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"}},"additionalProperties":false},"retry":"Read only","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"create_webhook","description":"Create an incoming fixed-action or outgoing event webhook. Returns its secret once; keep it in a credential store. Outgoing delivery sends data to the chosen HTTPS endpoint.","scopes":["integrations:write"],"masterOnly":false,"readOnly":false,"destructive":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"name":{"type":"string","minLength":1,"maxLength":120},"kind":{"type":"string","enum":["incoming","outgoing"]},"deviceId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"action":{"type":"string","enum":["sync","maintenance"]},"minutes":{"type":"integer","minimum":0,"maximum":1440},"url":{"type":"string","format":"uri"},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120,"description":"Unique per intended write. Reuse the exact key and arguments after a transport failure."}},"required":["name","kind","idempotencyKey"],"additionalProperties":false},"retry":"idempotencyKey required","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"set_webhook_enabled","description":"Enable or disable an existing webhook.","scopes":["integrations:write"],"masterOnly":false,"readOnly":false,"destructive":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"integrationId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"enabled":{"type":"boolean"},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120,"description":"Unique per intended write. Reuse the exact key and arguments after a transport failure."}},"required":["integrationId","enabled","idempotencyKey"],"additionalProperties":false},"retry":"idempotencyKey required","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"delete_webhook","description":"Delete a webhook connection and its linked delivery/event records.","scopes":["integrations:write"],"masterOnly":false,"readOnly":false,"destructive":true,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"integrationId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120,"description":"Unique per intended write. Reuse the exact key and arguments after a transport failure."}},"required":["integrationId","idempotencyKey"],"additionalProperties":false},"retry":"idempotencyKey required","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"test_webhook","description":"Send a test event to the configured external webhook URL.","scopes":["integrations:write"],"masterOnly":false,"readOnly":false,"destructive":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"integrationId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120,"description":"Unique per intended write. Reuse the exact key and arguments after a transport failure."}},"required":["integrationId","idempotencyKey"],"additionalProperties":false},"retry":"idempotencyKey required","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"retry_webhook_delivery","description":"Retry a failed webhook delivery to its configured external destination.","scopes":["integrations:write"],"masterOnly":false,"readOnly":false,"destructive":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"deliveryId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120,"description":"Unique per intended write. Reuse the exact key and arguments after a transport failure."}},"required":["deliveryId","idempotencyKey"],"additionalProperties":false},"retry":"idempotencyKey required","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"get_team","description":"Owner only: read this customer’s team members and pending invitations.","scopes":["account:read"],"masterOnly":false,"readOnly":true,"destructive":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"}},"additionalProperties":false},"retry":"Read only","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"invite_team_member","description":"Owner only: email a screen-manager invitation. Master connections can invite an owner. Only call when sending this invitation is explicitly authorised.","scopes":["account:write"],"masterOnly":false,"readOnly":false,"destructive":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"email":{"type":"string","format":"email","pattern":"^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"role":{"default":"staff","type":"string","enum":["staff","owner"]},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120,"description":"Unique per intended write. Reuse the exact key and arguments after a transport failure."}},"required":["email","role","idempotencyKey"],"additionalProperties":false},"retry":"idempotencyKey required","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"revoke_team_invitation","description":"Owner only: revoke a pending team invitation.","scopes":["account:write"],"masterOnly":false,"readOnly":false,"destructive":true,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"invitationId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120,"description":"Unique per intended write. Reuse the exact key and arguments after a transport failure."}},"required":["invitationId","idempotencyKey"],"additionalProperties":false},"retry":"idempotencyKey required","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"remove_team_member","description":"Owner only: remove a screen manager and revoke their sessions and issued API keys. Owners must transfer ownership first.","scopes":["account:write"],"masterOnly":false,"readOnly":false,"destructive":true,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"userId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120,"description":"Unique per intended write. Reuse the exact key and arguments after a transport failure."}},"required":["userId","idempotencyKey"],"additionalProperties":false},"retry":"idempotencyKey required","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"transfer_account_ownership","description":"Owner only: transfer ownership to an existing verified member. The current owner becomes staff and loses owner-level MCP authority.","scopes":["account:write"],"masterOnly":false,"readOnly":false,"destructive":true,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"userId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120,"description":"Unique per intended write. Reuse the exact key and arguments after a transport failure."}},"required":["userId","idempotencyKey"],"additionalProperties":false},"retry":"idempotencyKey required","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"export_account","description":"Owner only: export the account’s stored customer/media/playlist/schedule/group/player/output metadata. This is not a full media-file backup.","scopes":["account:read"],"masterOnly":false,"readOnly":true,"destructive":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"}},"additionalProperties":false},"retry":"Read only","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"get_billing","description":"Owner only: read access allowance, subscription, assigned player slots and hardware orders.","scopes":["account:read"],"masterOnly":false,"readOnly":true,"destructive":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"}},"additionalProperties":false},"retry":"Read only","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"create_subscription_checkout","description":"Owner only: Create a subscription checkout URL for the owner to complete.","scopes":["billing:write"],"masterOnly":false,"readOnly":false,"destructive":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"quantity":{"type":"integer","minimum":1,"maximum":10000},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120,"description":"Unique per intended write. Reuse the exact key and arguments after a transport failure."}},"required":["quantity","idempotencyKey"],"additionalProperties":false},"retry":"idempotencyKey required","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"open_billing_portal","description":"Owner only: Create a billing portal URL for invoices/payment details and supported cancellation.","scopes":["billing:write"],"masterOnly":false,"readOnly":false,"destructive":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120,"description":"Unique per intended write. Reuse the exact key and arguments after a transport failure."}},"required":["idempotencyKey"],"additionalProperties":false},"retry":"idempotencyKey required","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"preview_subscription_increase","description":"Owner only: Preview the immediate charge and renewed monthly total for more player slots. Returns a five-minute quote.","scopes":["billing:write"],"masterOnly":false,"readOnly":true,"destructive":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"quantity":{"type":"integer","minimum":1,"maximum":10000},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120,"description":"Unique per intended write. Reuse the exact key and arguments after a transport failure."}},"required":["quantity","idempotencyKey"],"additionalProperties":false},"retry":"idempotencyKey required","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"confirm_subscription_increase","description":"Owner only: Confirm an explicitly approved billing quote. May charge the payment method; read and approve the quoted amount/currency first.","scopes":["billing:write"],"masterOnly":false,"readOnly":false,"destructive":true,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"previewId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120,"description":"Unique per intended write. Reuse the exact key and arguments after a transport failure."}},"required":["previewId","idempotencyKey"],"additionalProperties":false},"retry":"idempotencyKey required","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"reduce_subscription","description":"Owner only: Schedule fewer player slots at renewal and select the players that will lose access.","scopes":["billing:write"],"masterOnly":false,"readOnly":false,"destructive":true,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"quantity":{"type":"integer","minimum":1,"maximum":10000},"retirePlayers":{"maxItems":10000,"type":"array","items":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"}},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120,"description":"Unique per intended write. Reuse the exact key and arguments after a transport failure."}},"required":["quantity","retirePlayers","idempotencyKey"],"additionalProperties":false},"retry":"idempotencyKey required","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"cancel_subscription","description":"Owner only: Cancel the subscription at the end of its billing period. Requires explicit cancellation authorisation.","scopes":["billing:write"],"masterOnly":false,"readOnly":false,"destructive":true,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120,"description":"Unique per intended write. Reuse the exact key and arguments after a transport failure."}},"required":["idempotencyKey"],"additionalProperties":false},"retry":"idempotencyKey required","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"reconcile_billing","description":"Owner only: Refresh subscription/checkout state from the billing provider.","scopes":["billing:write"],"masterOnly":false,"readOnly":false,"destructive":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120,"description":"Unique per intended write. Reuse the exact key and arguments after a transport failure."}},"required":["idempotencyKey"],"additionalProperties":false},"retry":"idempotencyKey required","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"retire_player_slot","description":"Owner only: Retire a player slot. This can restrict that player’s account access.","scopes":["billing:write"],"masterOnly":false,"readOnly":false,"destructive":true,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"deviceId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120,"description":"Unique per intended write. Reuse the exact key and arguments after a transport failure."}},"required":["deviceId","idempotencyKey"],"additionalProperties":false},"retry":"idempotencyKey required","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"create_hardware_checkout","description":"Owner only: Create a hardware checkout URL for the owner to review and complete.","scopes":["billing:write"],"masterOnly":false,"readOnly":false,"destructive":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"quantity":{"type":"integer","minimum":1,"maximum":20},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120,"description":"Unique per intended write. Reuse the exact key and arguments after a transport failure."}},"required":["quantity","idempotencyKey"],"additionalProperties":false},"retry":"idempotencyKey required","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"list_social_connections","description":"Read customer social accounts, provider setup status and the dashboard connectURL. OAuth sign-in and consent must be completed by the human in their browser. LinkedIn API feeds are unavailable.","scopes":["social:read"],"masterOnly":false,"readOnly":true,"destructive":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"}},"additionalProperties":false},"retry":"Read only","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"get_social_posts","description":"Read original published Facebook Page, Instagram professional or TikTok posts, media, exact permalinks and freshness. A read can refresh the shared five-minute cache. No credentials are returned.","scopes":["social:read"],"masterOnly":false,"readOnly":true,"destructive":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"connectionId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"}},"required":["connectionId"],"additionalProperties":false},"retry":"Read only","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"select_social_account","description":"After the owner completes OAuth in their browser, select one account returned in get_pending_social_accounts.pending. The issuing verified owner/master must match the OAuth user. Repeat sign-in to add another account.","scopes":["social:write"],"masterOnly":false,"readOnly":false,"destructive":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"requestId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"accountId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,160}$"},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120,"description":"Unique per intended write. Reuse the exact key and arguments after a transport failure."}},"required":["requestId","accountId","idempotencyKey"],"additionalProperties":false},"retry":"idempotencyKey required","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"disconnect_social_account","description":"Delete this customer’s stored credential and cached posts. Connected players clear the feed on refresh; offline data expires within one hour. The human can remove the app grant in their provider settings.","scopes":["social:write"],"masterOnly":false,"readOnly":false,"destructive":true,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"connectionId":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120,"description":"Unique per intended write. Reuse the exact key and arguments after a transport failure."}},"required":["connectionId","idempotencyKey"],"additionalProperties":false},"retry":"idempotencyKey required","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."},{"name":"get_pending_social_accounts","description":"Read the issuing owner’s pending OAuth account choices after human sign-in. This requires current verified owner/master authority. Never ask for the provider password or token.","scopes":["social:write"],"masterOnly":false,"readOnly":true,"destructive":false,"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customerId":{"description":"Required for each customer operation on a master connection. Customer connections infer their own customer.","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"}},"additionalProperties":false},"retry":"Read only","result":"Successful calls return structuredContent plus the same JSON in text. Screenshots return image content. Tool failures return isError: true."}]}