Riddle

by riddle.com · com.riddle/creator

Build, publish and analyze quizzes, polls, forms and personality tests. Riddle account required.

OnlineRemote
Category
Developer tools
Connection
Remote (HTTP)
Tools
48 reported
Status
Online

Connect it to your AI

Claude Code

claude mcp add --transport http creator https://www.riddle.com/creator/api/v3/mcp

Claude, ChatGPT, Cursor and other apps

Add it as a custom connector with this URL (Streamable HTTP):

https://www.riddle.com/creator/api/v3/mcp

Cursor, VS Code and other apps (mcp.json)

{
  "mcpServers": {
    "creator": {
      "url": "https://www.riddle.com/creator/api/v3/mcp"
    }
  }
}

Tools it offers

48 tools, as the server itself reported during our check on Oct 31, 2026.

  • media_upload_linkCreates a single-use link for uploading ONE media file into the media library. Call it when the user has a LOCAL file for a Riddle: this server cannot receive bytes, so the upload is yours. A link expires after 5 minutes
  • media_deleteDeletes a file from the media library permanently, to clean up after yourself: an upload that turned out wrong, or a file the user no longer wants stored (it frees the storage it counted against). The file must be unused
  • riddle_template_createStores an existing Riddle as a template of its project (or of the user, for a personal Riddle), so new Riddles can be created from it with riddle_template_use. The template is a copy taken at this moment - the Riddle kee
  • riddle_template_updateChanges a template's title and/or its gallery image and icon. Images: media_upload_link into the template's project, pass the reported "mediaId" (stored by URL - deleting the file breaks the image). Only what you pass ch
  • riddle_template_listLists the templates of a project (or your personal ones) - the ones made from your own Riddles with riddle_template_create, NOT Riddle's public ones, which riddle_template_public_list returns. Quick-create templates (isQ
  • riddle_template_public_listLists Riddle's public templates - the ready-made ones every account has, as opposed to riddle_template_list's own ones. They are grouped by category (the tag the Creator sorts them by), so calling this without arguments
  • riddle_template_getReads one template, by default INCLUDING its build configuration - the same "build" shape riddle_get returns and riddle_builder_create accepts. This is how a template is ADAPTED rather than copied: edit the returned "bui
  • riddle_template_useCreates a new Riddle from a template as an unchanged copy of it - content, settings and design preset - recorded as a copy of the template's Riddle (riddle_get reports it as context.duplicated). Use this whenever the tem
  • riddle_tag_listLists the tags of a project as {items: [{id, name, count, bankCount}]}, unpaginated - the labels the Creator shows and riddle_list's "tags" filter selects by, and where the ids that filter takes come from. Riddle tags an
  • riddle_tag_addPuts a tag on Riddles - ONE assignment per Riddle, never the tag itself (riddle_tag_list reads the labels of a project, riddle_tag_remove takes a tag off again, riddle_tag_delete removes a label). Gives one Riddle (UUID)
  • riddle_tag_removeTakes a tag off Riddles - ONE assignment per Riddle (riddle_tag_add puts it on, riddle_tag_delete removes a label nothing carries). Untags one Riddle (UUID) or many (UUIDs, max 100), by tagName or tagId, and creates noth
  • riddle_tag_deleteDeletes the TAG ITSELF from a project - the label, for good - and no Riddle, no question bank and no assignment. Rarely needed: untagging the last carrier already removes a tag (riddle_tag_remove), so this is for a lefto
  • pingA simple tool that returns "Pong". Can be used to test connectivity and authentication to the MCP.
  • riddle_listReturns a paginated list of Riddles. With the default scope "project" they come from a single project - use projectId to name it, or omit it for the project the API key is scoped to. With scope "account" they come from t
  • riddle_getReads one Riddle - or several, with UUIDs - as the compact build-configuration envelope {uuid, type, modifiedAt, build, nextBlockId, warnings, published, context}. "build" is the DRAFT and is exactly what the riddle_buil
  • riddle_get_embed_codeGets the HTML embed code for a Riddle by its UUID. The code is returned regardless of publish state, but the URL it embeds will not serve the Riddle until it is published.
  • riddle_publishPublishes one or many Riddles, or takes them off the web again with publish: false (there is no unpublish tool). A published Riddle's public URL is the response's "context.viewUrl" - report that, never one spelled from t
  • riddle_renameRenames a Riddle with the specified UUID. Returns only the confirmation of the change (uuid, title, modified state), not the entire Riddle. Only if the Riddle's origin.writableByThisKey is true (riddle_get, riddle_list):
  • riddle_deleteDeletes one or many Riddles. Pass UUID for one, or UUIDs (max 100) to clean up several at once - e.g. everything riddle_list returned with origin: "api". A bulk delete is not atomic and never gives up early: a Riddle tha
  • riddle_moveMoves one or many Riddles into another project or into the personal project - and, given no destination, reports whether it could instead of moving anything. Pass UUID for one Riddle or UUIDs (max 100) for several. CHECK
  • whoamiReports the current API key: the authenticated user ("userEmail"/"userName", the latter null if never set), the project/team on a project-scoped key, whether this key has full access ("allowsFullAccess", see riddle://ref
  • question_bank_createCreates a new, empty question bank for the given Riddle type ("Quiz" or "Poll"). Add items with question_bank_item_add, then reference the returned "id" as "questionBankId" on a QuestionBank block of a riddle_builder_cre
  • question_bank_listLists question banks. Scope "own" (the default) lists the banks of a project - the same ones the Creator shows; pass a projectId to look into another project, omit it for the project the API key is scoped to (your person
  • question_bank_getRetrieves one question bank by id: title, riddleType, tags, notes, its categories/blockTypes and whether it has unpublished changes. The items themselves are question_bank_get_items, not included here. Works on a built-i
  • question_bank_renameSets the title of a question bank. The title is metadata rather than DRAFT content, so it takes effect immediately AND permanently, is unaffected by publishing or discarding and never counts as an unpublished change. Rej
  • question_bank_update_notesReplaces the plain-text maintainer notes of a question bank (never shown to participants) - the previous notes are overwritten entirely, not appended to, so read them with question_bank_get first and send everything that
  • question_bank_duplicateCopies a question bank and all of its items into a new, independent bank (editing one never affects the other) in projectId or the key's project. The source is left untouched. This is the one write a public template id i
  • question_bank_publishMakes every item's draft content its published content - what a QuestionBank block of a live Riddle actually draws at view time - so the change reaches participants immediately: every Riddle using the bank is republished
  • question_bank_item_addAdds ONE new question/item to a question bank; nothing existing is changed (question_bank_item_update replaces an item, question_bank_item_delete removes one). There is no universal item shape: read riddle://reference/qu
  • question_bank_item_updateReplaces the content of ONE existing question/item of a question bank entirely - not a merge: blockType, category, difficulty and columns must all be sent even when unchanged, and a column or value left out is gone from
  • question_bank_discard_changesThrows away every unpublished change to a question bank's items at once, resetting each of them to its last published content. Irreversible - there is no undo and no copy of the discarded draft. A pending item delete com
  • question_bank_deleteDeletes a question bank and every item it holds (its tags cleaned up exactly as question_bank_tag_remove does) - one item alone is question_bank_item_delete. Rejected with QUESTION_BANK_INTERDEPENDENCY while a Riddle of
  • question_bank_item_deleteDeletes ONE question/item of a question bank and touches nothing else. On a never-published item the delete is immediate and permanent; on a published one it only leaves the DRAFT - a live Riddle keeps drawing that item
  • question_bank_get_itemsLists the items of a question bank - its DRAFT content by default, or its published items with published: true. Filter by search term, blockType, category or difficultyRange - the same filters a QuestionBank block draws
  • question_bank_tag_addAdds a tag to a question bank, by tagName or tagId from riddle_tag_list - exactly one of the two, as riddle_tag_add does. Question bank tags and Riddle tags are ONE set per project, not two: the same tag applies to banks
  • question_bank_tag_removeRemoves a tag from a question bank, by tagName or tagId from riddle_tag_list - exactly one of the two. Never creates anything: a tag the bank does not carry is an error. A tag nothing uses any more is deleted from the pr
  • palette_getReads the palettes - colors, fonts, button styles, background settings - of a Riddle: every palette it can use (the ones inherited from the account/project default preset included) with all of their values, which one is
  • palette_customizeChanges the palette (colors, fonts, button styles, background) of ONE Riddle, as a path => value map, e.g. {"bgColor": "#ffffff", "font.name": "Roboto"} - the paths are palette_get's or riddle://reference/palette/fields.
  • integration_listLists the Google Sheets and webhook integrations of a project as {items: [{id, type, name, connectedRiddles}]}. "name" is the value a build takes as publish.integrations.googlesheets / .webhook to connect that integratio
  • riddle_builder_createBuilds a new Riddle of any of the nine types from a build configuration: "type" says which kind (see that argument for what each one is and what it needs at a minimum), "build" carries the content. Everything a type acce

Questions

What is the Riddle MCP server?

Build, publish and analyze quizzes, polls, forms and personality tests. Riddle account required. It is made by riddle.com and listed in the official MCP Registry as com.riddle/creator. MCP (Model Context Protocol) is the open standard that lets AI apps like Claude, ChatGPT and Cursor use outside tools.

How do I add Riddle to Claude?

In the Claude app or claude.ai, open Settings, then Connectors, choose "Add custom connector" and paste https://www.riddle.com/creator/api/v3/mcp. In Claude Code, run: claude mcp add --transport http creator https://www.riddle.com/creator/api/v3/mcp

How do I add Riddle to ChatGPT?

ChatGPT can use remote MCP servers as connectors. In ChatGPT settings, under Apps and Connectors, turn on developer mode if asked, create a new connector and paste https://www.riddle.com/creator/api/v3/mcp.

How do I add Riddle to Cursor?

Open Cursor settings, go to MCP, choose "Add new MCP server" (or edit ~/.cursor/mcp.json) and add: { "mcpServers": { "creator": { "url": "https://www.riddle.com/creator/api/v3/mcp" } } }

Does Riddle work right now?

Yes. It responded when we last checked on 31 Oct 2026. We check remote MCP servers every day.

What can Riddle do?

It gives your AI 48 tools, including media_upload_link, media_delete, riddle_template_create, riddle_template_update, riddle_template_list. The full list is on this page.

Is this your server? Get the badge for your README
chen.media/mcp badge

Markdown (GitHub README)

[![Listed on chen.media/mcp](https://chen.media/mcp/badge/com-riddle-creator.svg)](https://chen.media/mcp/com-riddle-creator)

HTML (switches to dark mode on its own)

<a href="https://chen.media/mcp/com-riddle-creator"><picture><source media="(prefers-color-scheme: dark)" srcset="https://chen.media/mcp/badge/com-riddle-creator.svg?theme=dark"><img src="https://chen.media/mcp/badge/com-riddle-creator.svg" alt="Listed on chen.media/mcp" height="40"></picture></a>

More in Developer tools

See all