BetaDocs are subject to change — reach out to the team before relying on anything as final.

MCP

Give an agent the keys.

Any MCP-compliant client — Claude, Cursor, a script you wrote last night — can read your projects, edit questions, and submit answers through the same surface the studio uses. Point it at the endpoint below, sign in with your RapidAsk account, and your agent has the keys you do.

Connect

Point any MCP-spec-compliant client at the endpoint below. Authentication is OAuth — you’ll sign in the same way you sign in to the studio.

Work against your real RapidAsk projects. Any form you or your team created in the studio is reachable here.

Prompt recipes

01

Edit an existing form

Help me edit my RapidAsk form (code: ABCDE) using the rapidask MCP. Read it first, then propose two tighter phrasings for question 01 before you change anything.
02

Create a form from a brief

Using the rapidask MCP, create a form that asks senior engineers three questions about current dev-environment pain points. Call get_rasl_spec first so the syntax parses.
03

Summarize responses

Using the rapidask MCP, export the responses for project ABCDE and summarize the recurring themes in the free-text answers. Flag any outlier opinions.

Tool reference

Read

Fetch without touching anything.

get_rasl_spec

Fetch RASL syntax. Call with no argument for an overview and section directory; pass a section name for that component's reference and examples.

sectionoptional
One of choice, select, scale, ranking, grid, text-input, text-display, embedded, datetime, upload, annotate, branching, mapping, examples, design. Omit to get the overview.

ReturnsMarkdown. Have your agent call this before writing any RASL so the syntax parses on the first try.

read_project

Load a project you own. Accepts the studio URL or the bare 5-character code.

urlrequired
A studio URL (https://rapidask.me/studio/ab12x) or just the 5-character code.

ReturnsTitle, full RASL source, and a block list with stable IDs. Every write tool takes one of those block IDs as an anchor.

export_responses

Fetch submitted responses for a project, newest first. Up to 200 at a time.

urlrequired
Project URL or 5-character code.
question_idsoptional
Only return answers for these block IDs. Discover them with read_project.
submitter_emailsoptional
Narrow to specific respondents.
limitoptional
Cap the rows returned (1–200). Defaults to 200.

ReturnsA JSON payload with parsed answer objects and submitter metadata. Hand it straight to an analysis prompt.

Write

Create, edit, or submit. Writes require an authenticated session.

create_project

Create a brand-new form in the authenticated user's account. Parses the RASL server-side; if it's invalid, nothing is saved.

raslrequired
Full RASL source. Call get_rasl_spec first.
titleoptional
Human-readable title. Defaults to 'Untitled form'.

Returns{ code, url } — the 5-character code and the studio URL. Share either to start collecting answers.

add_question

Insert a new RASL block into an existing project.

urlrequired
Project URL or 5-character code.
raslrequired
Source for the single new block.
afterIdoptional
Insert directly after this block. Omit to append at the end.

ReturnsThe project's full RASL after the edit.

remove_questionDestructive

Delete a single block.

urlrequired
Project URL or 5-character code.
idrequired
Block ID from read_project.

ReturnsThe project's full RASL after the block is removed.

reorder_questions

Reorder every block in the project in one call. Good for structural rewrites.

urlrequired
Project URL or 5-character code.
idsrequired
A permutation of every existing block ID — same set, new order. Missing or extra IDs are rejected.

ReturnsThe project's full RASL in the new order.

respond_to_survey

Submit AI-generated answers on behalf of a persona. At least one of persona_bio or instructions is required so the response is attributable.

urlrequired
Project URL or 5-character code.
answersrequired
{ blockId: value }. Each question type takes a different value shape — see the tool description in-band for the full mapping.
persona_bio / instructionsrequired
Provide at least one. Explains who answered or how the answers were generated.
persona_title, agent_name, caller_idoptional
Metadata stored on the response — useful for slicing later.

ReturnsConfirmation with the stored response ID.

RASL syntax is served in-band by get_rasl_spec — your agent fetches it on demand, no docs page required. Need a code to test against? Open the studio.