Skip to main content
Glama
rooquiz

RooQuiz

README.md
# RooQuiz MCP Server

[![smithery badge](https://smithery.ai/badge/rooquiz/rooquiz-mcp)](https://smithery.ai/servers/rooquiz/rooquiz-mcp)
[![M8ven Verified](https://m8ven.ai/badge/mcp/rooquiz-rooquiz-mcp-14mq8p?variant=verified)](https://m8ven.ai/mcp/rooquiz-rooquiz-mcp-14mq8p)
[![LobeHub](https://lobehub.com/badge/mcp/rooquiz-rooquiz-mcp)](https://lobehub.com/mcp/rooquiz-rooquiz-mcp)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install_Server-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](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)
[![Install in Cursor](https://img.shields.io/badge/Cursor-Install_Server-000000?style=flat-square&logo=cursor&logoColor=white)](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

A4/5.0

Scored across 52 tools

Disambiguation4/5

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.

Naming Consistency4/5

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.

Tool Count1/5

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.

Completeness4/5

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.

Maintenance

ActivityActive
ResponsivenessNo issues