RooQuiz
# RooQuiz MCP Server
[](https://smithery.ai/servers/rooquiz/rooquiz-mcp)
[](https://m8ven.ai/mcp/rooquiz-rooquiz-mcp-14mq8p)
[](https://lobehub.com/mcp/rooquiz-rooquiz-mcp)
[](https://insiders.vscode.dev/redirect/mcp/install?name=rooquiz&config=%7B%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fpayload.rooquiz.com%2Fapi%2Fmcp%22%7D)
[](https://cursor.com/install-mcp?name=rooquiz&config=eyJ1cmwiOiJodHRwczovL3BheWxvYWQucm9vcXVpei5jb20vYXBpL21jcCJ9)
Remote [MCP](https://modelcontextprotocol.io) server for [RooQuiz](https://rooquiz.com) — a lightweight assessment platform for lead capture and viral sharing. Build quizzes with AI-assisted authoring, capture leads from results pages, and analyze funnel conversion — straight from Claude, ChatGPT, Cursor, or any MCP client.
- **Endpoint:** `https://payload.rooquiz.com/api/mcp` (Streamable HTTP)
- **Auth:** OAuth 2.1 — authorization code + PKCE with dynamic client registration. Sign in with your RooQuiz account when your client prompts you; no API key needed.
- **Registry name:** [`com.rooquiz/rooquiz-mcp`](https://registry.modelcontextprotocol.io/v0/servers?search=com.rooquiz/rooquiz-mcp)
## Connect
One-click: [VS Code](https://insiders.vscode.dev/redirect/mcp/install?name=rooquiz&config=%7B%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fpayload.rooquiz.com%2Fapi%2Fmcp%22%7D) · [VS Code Insiders](https://insiders.vscode.dev/redirect/mcp/install?name=rooquiz&config=%7B%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fpayload.rooquiz.com%2Fapi%2Fmcp%22%7D&quality=insiders) · [Cursor](https://cursor.com/install-mcp?name=rooquiz&config=eyJ1cmwiOiJodHRwczovL3BheWxvYWQucm9vcXVpei5jb20vYXBpL21jcCJ9)
**Claude Code**
```bash
claude mcp add --transport http rooquiz https://payload.rooquiz.com/api/mcp
```
**claude.ai / ChatGPT** — add a custom connector and paste the endpoint URL.
**Cursor** (`.cursor/mcp.json`)
```json
{
"mcpServers": {
"rooquiz": {
"url": "https://payload.rooquiz.com/api/mcp"
}
}
}
```
**VS Code / GitHub Copilot** (`.vscode/mcp.json`)
```json
{
"servers": {
"rooquiz": {
"type": "http",
"url": "https://payload.rooquiz.com/api/mcp"
}
}
}
```
## Example prompts
Once connected, talk to it in plain language. Each of these exercises a different
part of the server:
**Build from a template**
> Show me the coaching templates, create a scored quiz from the readiness one, then add
> two questions about budget.
*Exercises `list_templates` → `create_form_from_template` → `add_question`.*
**Work the leads**
> List the leads my Wheel of Life quiz captured this week, tag everyone who scored under
> 40 as follow-up, and assign them to me.
*Exercises `list_leads` → `set_lead_tags` → `assign_leads`.*
**Diagnose the funnel**
> Which of my quizzes has the worst completion rate, and where exactly do people drop off?
*Exercises `list_forms` → `get_form_stats` → `get_form_funnel`.*
**Go multilingual**
> Translate my promotion-readiness quiz into Spanish and German, keeping the question codes.
*Exercises `list_form_translations` → `create_form_translation`.*
Respondent names, email addresses and phone numbers come back masked (`j***g@example.com`),
so address a respondent by id rather than pasting a masked value back in.
## What you can do
- **Quizzes** — create knowledge quizzes, scored quizzes, and "which X are you" outcome quizzes; edit questions, scoring formulas, and dimension analysis; start from templates
- **Translations** — one source form, mirrored translations in any language
- **Leads** — list, tag, assign, and comment on leads captured from quiz results pages
- **Respondents & records** — look up respondents, submissions, stats, and funnel analytics
- **Bookings** — review and reschedule bookings made through quiz results pages
- **Team** — switch active team, invite members, manage question banks and categories
All tools act within the team your session is bound to.
## stdio bridge
Hosts without native HTTP transport (Claude Desktop, older MCP clients) and registry
crawlers that build a container can go through the bridge in [`bin/rooquiz-mcp.mjs`](bin/rooquiz-mcp.mjs)
— dependency-free, Node 18+. Everything above is a better path if your client speaks HTTP.
```bash
node bin/rooquiz-mcp.mjs # or: docker build -t rooquiz-mcp . && docker run -i --rm rooquiz-mcp
```
| Env | Default | Purpose |
| --- | --- | --- |
| `ROOQUIZ_TOKEN` | *(unset)* | Bearer token — **required for every hosted tool** |
Every method needs a token, `initialize` included: without one the server answers `401` with
a `WWW-Authenticate` header pointing at the resource metadata. Clients with native HTTP
transport get this for free through OAuth; the bridge has nowhere to run a browser flow, so
give it a personal access token.
With no usable token the bridge still completes a handshake and answers `tools/list`, reading
both from [`bin/introspection.json`](bin/introspection.json) — a snapshot of what the hosted
server returns. That is there for registry crawlers, which build this container with no
credentials and judge the server by whether it introspects. Calling a hosted tool still goes
upstream and still `401`s. Once a working token is set nothing is served locally: every
message is forwarded, so a stale file can never shadow live data. Refresh it after changing
tools:
```bash
ROOQUIZ_TOKEN=rqp_live_xxx node scripts/snapshot-tools.mjs
```
### Preview mode — no token, no account
A bridge with no usable token is not useless. It also serves four tools that need no
credentials at all, because they target RooQuiz's **public** preview endpoint:
| Tool | What it builds |
| --- | --- |
| `preview_quiz` | Right/wrong quiz — correct answers earn points and the taker gets a graded score |
| `preview_scorecard` | Scored questionnaire — every option adds points toward a total that buckets into a level |
| `preview_outcome` | Personality / type test — options vote for result types and the most-voted type wins |
| `preview_guide` | The full authoring guide for one of the three: field schema, scoring rules, themes, examples |
Ask in plain language — *"make me a 5-question personality quiz about coffee and give me a
link"* — and you get back something like `https://quizster.app/b/7k3m9q2p`, openable and
shareable straight away. Previews self-destruct after about an hour and anonymous creation is
capped at roughly 10 per hour per IP; sign in and use `create_form` to keep an assessment.
These tools are the [rooquiz-skills](https://github.com/rooquiz/rooquiz-skills) `SKILL.md`
files vendored into [`bin/skills.json`](bin/skills.json) — the same instructions that repo
ships as a Claude Code plugin, served here over MCP instead. That repo is their source of
truth; re-vendor after editing one:
```bash
ROOQUIZ_SKILLS_DIR=../rooquiz-skills node scripts/sync-skills.mjs
```
They disappear once a working token is set: with an account, `create_form` builds a permanent
form rather than a link that expires.
## Support
Questions or issues: [support@rooquiz.com](mailto:support@rooquiz.com)
---
This repository carries the [`server.json`](server.json) manifest published to the official
MCP Registry, plus the MIT-licensed stdio bridge. The hosted server implementation itself is
closed source.
TDQS
Scored across 52 tools
The toolset is organized by resource (forms, questions, translations, examinees, records, leads, bookings, tenants) and the descriptions are unusually precise, so most choices are clear. A few near-neighbor pairs remain (create_form / create_form_from_template / duplicate_form, update_form / update_form_settings, list_records / list_leads / list_examinees), but the documentation draws those boundaries well.
Almost every tool follows a lowercase snake_case verb_noun pattern, with clear CRUD families for forms, questions, translations, records, leads, and bookings. Minor inconsistencies such as add_question vs insert_question, set_dimension_analysis next to update_form, and update_tenant_slug beside switch_active_tenant keep it from a perfect score.
At 52 tools, this crosses the 50+ threshold for an extreme tool surface and is far beyond the 3-15 sweet spot; the sheer volume will consume context and make reliable tool selection harder. The scope is genuinely broad, but a single MCP server this large is a mismatch and should be split into quiz-builder, analytics/CRM, and booking/team servers.
The core quiz lifecycle is thoroughly covered: form CRUD plus restore/duplicate, question editing, translations, media upload, delivery settings, analytics, submission records, leads, and bookings. Minor gaps exist - no media list/delete, no member removal, no examinee delete - but agents can work around them.