This page is generated from the server’s
tools/list at https://test.polltheroom.com/api/mcp by scripts/developers-sync.mjs. The full input schema of every tool, including every widget, travels with the tool itself.isError and a sentence saying what to fix.
list_decks
The decks this key may see: its maker’s own plus the team’s shared ones. The bin is left out. Needs the “decks:read” scope.
Takes no arguments.
create_deck
This is the verb an agent starts from. Send a whole document, or nothing for a blank deck that opens with the join screen and one empty slide. A deck can be saved half-finished; presenting needs every poll to pass the readiness check. Needs the “decks:write” scope.
get_deck
The whole document, the same shape the editor holds. Needs the “decks:read” scope.
update_deck
Rename, star, or replace the whole document. A replace, never a merge: send the document as you want it to be. To change one step, use the step verbs instead. Needs the “decks:write” scope.
delete_deck
Into the bin, the same as the app. Thirty days later it is gone for good. Needs the “decks:write” scope.
add_step
Append a slide or a poll step, or insert it before a given index, without resending the document. The join screen is step 0 and there is only one. Needs the “decks:write” scope.
replace_step
Put a new slide or poll step where one is now. Needs the “decks:write” scope.
remove_step
Take a slide or poll step out. The join screen stays. Needs the “decks:write” scope.
add_overlay
Drop a poll onto a slide as a floating card, the way the editor does: send the poll, and optionally where (rect) and how it is drawn (style); what you leave out gets the house default. The slide’s other content is untouched. For a poll that fills the screen, use add_step instead. Needs the “decks:write” scope.
get_screenshot
A PNG of one step as the editor shows it: the slide’s page with its cards, text, shapes and images on it, or the full-screen poll. Look before you hand a deck over, the way a person glances at the editor: is the card over the picture and not the text, is it big enough to read. Rendered on the server in a real browser, so it takes a second or two; the same step at the same revision comes straight back. Through MCP the image arrives as an image; over HTTP, read png as a data URL or send Accept: image/png for the bytes. Needs the “decks:read” scope.
attach_pdf
Put the presenter’s own slides behind the deck. The editor renders the pages when the deck is opened, so polls can float on the real slides. With pages, and while no slide has a page yet, the blank slides are replaced by one slide per page, in order, after the join screen; polls and paged slides already there are kept. PDF only for now. Needs the “decks:write” scope.
list_rooms
The team’s rooms, newest first, fifty at most. Needs the “rooms:read” scope.
Takes no arguments.
start_room
Open a room for a deck: a six-digit code the audience joins with, and a presenter link that carries the host’s key. The room waits in the lobby until the presenter (or room_action with start) begins. Decks with uploaded slide pages start from the editor for now, because pages are rendered in the browser; decks of blank slides and polls start here. Needs the “rooms:start” scope.