Skip to content
Command Palette
Search for a command to run...
QuizBase · Docs

MCP server for Claude.ai, Cursor, and MCP Inspector#

QuizBase exposes a Model Context Protocol server at https://quizbase.runriva.com/mcp. Connect any MCP-capable client with your API key and Claude / Cursor / your agent calls QuizBase directly — no copy-pasting keys into prompts.

What you get#

  • 11 tools mapping the public REST API 1:1 — quizbase_random, quizbase_list, quizbase_question_by_id, quizbase_stats, quizbase_topics, quizbase_topic_by_slug, quizbase_tags, quizbase_subcategories, quizbase_categories, quizbase_languages, quizbase_report
  • 3 resourcesmcp://quizbase/categories, mcp://quizbase/languages, mcp://quizbase/topics/top-100
  • 3 prompt templatesbuild_quiz (multi-round), explore_topic (discursive), warmup_round (5-question icebreaker)
  • Same rate limits and tiers as REST. 1 tools/call = 1 request.

Get a key#

Open API keys in the dashboard and create either a publishable qb_pk_* or a secret qb_sk_* key. We recommend publishable (pk) keys for Custom Connectors — they are read-only and browser-safe. The free tier gives you 500 requests/day across all your keys against full production data.

Try it without installing anything#

Skip the setup and try the server directly in our interactive playground. Paste your key, list the available tools, and call quizbase_random in two clicks — straight from your browser.

Connect — Claude.ai Custom Connectors#

  1. Open Claude.ai → SettingsConnectorsAdd custom connector.
  2. URL: https://quizbase.runriva.com/mcp
  3. Authentication: Bearer token. Paste your qb_pk_* or qb_pk_* key.
  4. Save. The 11 tools appear in Claude’s tool picker.

Try a prompt like “Build me a 3-round quiz on Star Wars in Polish, 5 questions per round.” — Claude will call quizbase_topics to resolve the topic, then quizbase_random per round.

Connect — Cursor#

Cursor reads ~/.cursor/mcp.json:

{
  "mcpServers": {
    "quizbase": {
      "url": "https://quizbase.runriva.com/mcp",
      "headers": {
        "Authorization": "Bearer qb_pk_YOUR_KEY"
      }
    }
  }
}

Restart Cursor. Open the Composer — the tools are listed in the panel.

Connect — MCP Inspector (development)#

The official MCP Inspector is the easiest way to explore the server interactively:

npx @modelcontextprotocol/inspector

In the UI:

  • Transport: Streamable HTTP
  • URL: https://quizbase.runriva.com/mcp (or http://localhost:5190/mcp against a local dev server)
  • Authentication: Bearer, value qb_pk_YOUR_KEY

Click Connect. The Tools / Resources / Prompts tabs let you invoke each surface manually.

Other MCP clients#

Anything that speaks Streamable HTTP and accepts a Bearer Authorization header should work. We have not verified the configuration shape for every client — open an issue or PR if you’d like a verified recipe added here.

  • Windsurf — MCP-compatible, untested by us
  • Continue.dev — MCP-compatible, untested by us
  • Zed — MCP-compatible, untested by us

Example Claude conversation#

You: “Make a 5-question Polish quiz on European geography, medium difficulty.”

Claude calls quizbase_random({ amount: 5, lang: 'pl', category: 'geography', difficulty: 'medium' }) and formats the result as a numbered list with choices, an answer key, and an attribution footer (per CC license terms — required for redistribution).

Security notes#

  • Use pk keys for browser-side connectors. sk (secret) keys work over Streamable HTTP but are designed for server-side agents; pasting an sk key into a desktop or mobile UI exposes it more than a pk should ever be.
  • Revoke leaked keys immediately in API keys — revocation is enforced within seconds (24h grace for rotated keys).
  • DNS rebinding — the server only accepts requests for known hosts (quizbase.runriva.com, localhost, Railway preview). Unknown Host headers get a 403.

See also#