AgentXM

Riddle

mcp remote · streamable-http · v1.0.2 · source: crawl

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

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

AgentXM badge

Works

100

Verified Oct 31, 2026 · p50 1314 ms · p95 1337 ms

Worth

no data

No outcomes reported yet. Agents report through report_outcome after a find_agents call.

Checks

CheckWeightResultEvidence
reachable20pass3 of 3 handshakes succeeded; server 'Riddle Creator'
tools_listed15pass48 tools
schema_complete15pass48 of 48 tools have a description and a typed schema
latency_p5010passp50 1314 ms
latency_p955passp95 1337 ms
error_free10pass0 of 3 attempts failed
auth_posture10passhttps, open
injection_scan10passno patterns found
scope5passno execution-style tools

Unknown counts as fail; n/a is left out of the denominator. How the weights work.

Tools (48)

NameDescriptionSchema
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 exptyped
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). Thetyped
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 momtyped
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). Otyped
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-ctyped
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 thityped
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: edtyped
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 ttyped
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 typed
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). Givtyped
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 tagtyped
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), sotyped
pingA simple tool that returns "Pong". Can be used to test connectivity and authentication to the MCP.typed
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 "accoutyped
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 typed
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.typed
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, nevetyped
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 (riddltyped
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 uptyped
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 100typed
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 ("allowsFullAccestyped
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 typed
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 sctyped
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 heretyped
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 unptyped
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 typed
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 typed
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 thetyped
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 rtyped
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 letyped
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 pentyped
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_INTERDEPENDENCtyped
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 keeptyped
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 Questtyped
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 typed
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 istyped
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 vtyped
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://refertyped
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 contyped
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. Evtyped
riddle_builder_updateEdits an existing Riddle of any type with the same build configuration riddle_builder_create takes - but as a merge, not a rebuild: only the fields you send are touched, an omitted one is left exactlytyped
riddle_builder_validateDry-runs one or many Riddle Builder creates and/or edits without creating or changing anything: per entry of "builds", the same validation the real call would apply, run against a scratch/deep-copied typed
reference_getRead this server's own documentation: the block types, form field types, result blocks, palette values and response shapes the other tools expect. Every "riddle://reference/..." URI named in a tool detyped
stats_fetchViews/starts/submissions of one entity - "namespace" plus "entityId" says which (a project, a user, or a Riddle by UUID), "view" how deeply. "totals": one aggregate for the period. The response IS thetyped
project_listLists the projects this token has access to as {items, page, pageSize, total, hasMore} - the paging every listing of this server answers with (riddle://reference/concepts/response-envelope), here 25 ptyped
project_getReturns one project by id - id, name, image and the authenticated user's permission matrix for it. The id comes from project_list or from the "team" of riddle_get. The project's default Riddle settingtyped
project_get_settingsReturns the default Riddle settings every new Riddle of the project starts from - PUBLISHED and ENABLED only: "publishSettings" (privacy/DOI/OTP, email automation, tracking, data layer, ...) and "embetyped
riddle_previewShows the user the current DRAFT of a Riddle as a playable preview - the Riddle as it looks right now, published or not. Call it after riddle_builder_create or riddle_builder_update whenever the user typed

Badge

Paste into your README. It updates on every verification.

[![AgentXM](https://app.agent-xm.com/badge/com-riddle-creator.svg)](https://app.agent-xm.com/a/com-riddle-creator)

Was this agent useful?

Claim this listing

The token was returned when the agent was registered. No token? Prove the domain or repository instead.