QuizBase

com.runriva.quizbase由 quizbase.runriva.com 發布官方發布者v0.1.1更新於 Oct 24, 2026

MCP server for trivia: 1.4M+ questions (EN+PL), 24 categories, 12 tools + 4 prompts, OAuth 2.1.

已驗證Streamable HTTP可網頁執行知識與記憶資料與分析

概覽

AI 產生的概覽

QuizBase 為助理提供大型問答題庫,可隨機取樣、瀏覽、篩選題目,並查看出處與品質標記。

可以做什麼
  • 依類別、難度、語言或主題等條件隨機抽取題目
  • 以游標分頁瀏覽題庫,並可依更新時間做增量同步
  • 依 ID 取得單一題目,附上來源、作者、授權、修改紀錄與品質標記
  • 讀取題庫統計,依語言、來源、類別、難度、主題與標籤細分
  • 探索分類體系:類別、子類別、標籤、精選主題與地區代碼
  • 針對題目提交翻譯、事實或版權方面的更正回報
適用情境
適合在製作測驗、練習題組或暖場內容時使用,也適合需要附出處與授權資訊的題目查詢。用於題庫探索與跨類別、跨語言的內容規劃同樣合適。
執行需求
遠端 streamable HTTP 端點,無需本機安裝。需在 Authorization 標頭提供 bearer 權杖:可公開金鑰或僅限伺服器端使用的私密金鑰,須於供應商網站申請。免費額度為每日 500 次請求。
安裝前請注意
Authorization 標頭會攜帶金鑰;私密金鑰應只保存在伺服器端,可公開金鑰才可用於可能外洩的環境。回報工具會將內容更正與版權問題傳送給供應商。重新散布題目時須遵守每題附帶的授權與署名資訊。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 QuizBase,將其新增到工作區。
  2. 連接 Authorization token 憑證。它們會被私密儲存,絕不會在公開頁面上展示。
  3. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/com.runriva.quizbase%2Fmcp/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "mcpServers": {
    "quizbase": {
      "type": "http",
      "url": "https://quizbase.runriva.com/mcp",
      "headers": {
        "Authorization": "Bearer <YOUR_TOKEN>"
      }
    }
  }
}

工具

12

quizbase_random

Get random trivia questions

Fetch N random trivia questions matching filters. Quality-first: by default excludes questions flagged for review (use quality='all' to include for audit/research). USE WHEN: building a quiz, sampling content for warmup, generating practice sets. NOT WHEN: you need a specific question ID (use quizbase_question_by_id) or want to explore a topic deeply with facets (use quizbase_topic_by_slug). KEY FILTERS: - amount: 1-50, default 10. - lang: ISO 639-1. Default "en". Supported: en, pl. Strict — unknown language returns 400. - category (slug): e.g. geography, history, science-and-nature. Full list via quizbase_categories. - difficulty: trivial | easy | medium | hard | expert. LLM-calibrated. Records not yet LLM-rated hold the importer placeholder (mostly "medium" for factoid sources). - type: multiple | boolean (default both; no text_input in random). - regions (cultural affinity, AND): empty in data = no cultural advantage assumed. Lowercase ISO 3166-1 alpha-2 ('us', 'pl', 'gb') + cultural codes ('jewish', 'christian-catholic', 'islam'). Filter for content statistically more likely known by residents/members. Discover via quizbase_regions. - source (array): include only these source databases (one or more of 12: opentdb, opentriviaqa, kqa-pro, entityq, mintaka, mkqa, nq-open, creak, qasc, arc, webq, quizbase). - exclude_source (array): drop these sources, e.g. ["entityq"] for human-curated only. Applied after source. - license (SPDX): CC-BY-SA-4.0 | CC-BY-SA-3.0 | MIT | etc. Restrict to redistribution-friendly content. - topic (curated slug): higher precision than tags. Alias resolver matches subcategories+tags. List via quizbase_topics. - topics_any: OR over curated topics, max 10. - tags (AND), tags_any (OR), subcategory: raw taxonomy. Use topic if available. - quality: 'high' (default, recommended) = cleanest, most broadly-useful. 'standard' = broader pool incl. niche/too-specific (more volume). 'all' = audit/research, includes flagged — when 'all', each question

輸入參數langtagstypetopicamountsourceexcludelicensequalityregionscategorytags_any另有 4 個

quizbase_list

Browse questions catalog with cursor pagination

Cursor-paginated browse over the catalog. Quality-first: by default excludes questions flagged for review (use quality='all' for full pool). USE WHEN: full catalog sync, delta sync (updated_since), exhaustive enumeration by filter. NOT WHEN: you only need N random samples (use quizbase_random) or a single record (use quizbase_question_by_id). PAGINATION: stable cursor over id UUIDv7 DESC. First call: omit cursor. Next: pass meta.nextCursor. Stop when nextCursor is null. KEY FILTERS (full parity with REST): - lang: ISO 639-1, default "en". Supported: en, pl. - category (slug), difficulty (trivial|easy|medium|hard|expert — LLM-calibrated), type (multiple|boolean), subcategory (raw slug). - tags (AND), tags_any (OR, max 10): raw tag slugs. - topic (curated, alias resolver), topics_any (OR over curated): higher precision than tags. - regions (cultural affinity, AND): empty = no cultural advantage assumed. Lowercase ISO 3166-1 alpha-2 ('us', 'pl', 'gb') + cultural codes ('jewish', 'christian-catholic', 'islam'). Filter for content statistically more likely known by residents/members. Discover via quizbase_regions. - source (array): include only these of 12 (opentdb, opentriviaqa, kqa-pro, entityq, mintaka, mkqa, nq-open, creak, qasc, arc, webq, quizbase). - exclude_source (array): drop these sources, e.g. ["entityq"]. Applied after source. - license (SPDX): e.g. CC-BY-SA-4.0, MIT. - quality: 'high' (default) = cleanest, most broadly-useful. 'standard' = broader pool incl. niche/too-specific. 'all' = full pool incl. flagged; when 'all', each question gains a "quality" field ('high' or 'needs_review'). - updated_since (ISO 8601): only questions updated after this — for delta sync caches. BATCH + TRANSLATION MAPPING: - ids (up to 250): fetch those exact records in one call (anti-repeat, deep-links, restoring a saved set). Terminal selector — browse filters and cursor are ignored. Missing ids → meta.missing. - content_language (en|pl): with ids, returns each question's s

輸入參數idslangtagstypecountlimittopiccursorsourcelicensequalityregions另有 8 個

quizbase_question_by_id

Get a single question by UUID

Fetch one question with FULL per-record attribution (source, author, license, modifications, lastModified, sourceId, url) and `quality: "high" | "needs_review"` (always present — deep-link semantic means full row). USE WHEN: deep link to a question, full provenance lookup for redistribution, cache refresh, moderation inspection. INPUTS: id (UUID), lang (affects category.name and label translations only). 404 returned via {question: null, error: "not_found"} — id may be invalid, pending/rejected, canonical-duplicate, or tombstoned.

輸入參數id必填lang

quizbase_stats

Get public catalog statistics

Public catalog counters with live breakdowns by language, source, category, difficulty, topic, tag. USE WHEN: showing catalog overview, picking a category programmatically, building landing copy, deciding "do we have enough X-content for this quiz". OUTPUT FIELDS: - total: approved questions in 'en' + 'pl'. - byLanguage: { en: N, pl: N }. - bySource: { entityq: N, mintaka: N, 'kqa-pro': N, ... } — 12 keys, one per source database. - byDifficulty: { trivial: N, easy: N, medium: N, hard: N, expert: N, unrated: N } — null difficulty mapped to 'unrated'. trivial/expert populated by LLM calibration. - byCategory: top 24 with localized names. - byTopic / byTag: top 30 curated topics + top 30 tags with localized labels. - meta: { generatedAt: ISO 8601, language }. INPUTS: lang (default "en") affects byCategory[].name and byTopic[].label / byTag[].label. DATA FRESHNESS: snapshot regenerated daily (~03:00 UTC) + on demand after batch imports. generatedAt shows when. Counts stable ±0.01% between snapshots. COMMON MISTAKES: polling stats every request (cache it on your side; 5-min Redis TTL on ours); treating bySource keys as stable enum (use quizbase_languages / quizbase_categories for canonical input enums).

輸入參數lang

quizbase_topics

List curated topics with aliases

Discover curated topics (2,184 entries with aliases). USE WHEN: planning a multi-round quiz, exploring "what is available about X", showing topic browser. Sorted by count DESC, slug ASC. Cursor-paginated. INPUTS: q (substring on label/alias), kind (tag|subcategory), cursor, limit (max 500).

輸入參數qkindlanglimitcursor

quizbase_topic_by_slug

Get curated topic detail with facets

Fetch one curated topic with facets (byCategory, byDifficulty, byLanguage, coOccurringTags, coOccurringSubcategories) and 3 sample questions. USE WHEN: zooming into a topic, deciding multi-round quiz structure. Returns {topic: null, error: "not_found"} when slug is unknown.

輸入參數langslug必填

quizbase_tags

List raw tags with counts

Raw tag dump (10k+ entries) with display label and question count. USE WHEN: building a tag picker, searching "is X a tag", running analytics. Curated higher-level groupings → quizbase_topics. INPUTS: q (substring), cursor, limit (max 500).

輸入參數qlanglimitcursor

quizbase_subcategories

List raw subcategories with counts

Raw subcategory dump (LLM-organic kebab-case, middle taxonomy layer between category and tags) with display label and count. USE WHEN: navigating between top-level category and individual tags, exploring topic structure. Filter questions via quizbase_random?subcategory=<slug>. INPUTS: q, cursor, limit (max 500).

輸入參數qlanglimitcursor

quizbase_categories

List all top-level categories

List of 24 top-level categories with i18n labels. USE WHEN: building a category picker, validating ?category= input. Stable enum (rarely changes). For higher-resolution browsing → quizbase_subcategories or quizbase_topics.

輸入參數lang

quizbase_languages

List supported languages with counts

Returns supported language whitelist (ISO 639-1) with question counts per language. USE WHEN: showing language picker, validating ?lang= input, deciding fallback. Day 1: en + pl.

輸入參數lang

quizbase_regions

List region codes (cultural affinity) with counts

Discover region codes used by the catalog. **Cultural affinity** — a question is tagged with a region if residents of that country, or members of that cultural/religious group, are statistically more likely to know the answer (NOT geography of the subject). USE WHEN: planning a quiz targeting users from a specific country or cultural background, exploring "what regions are represented". OUTPUT: array of {code, kind, label, count} sorted by count DESC. INPUTS: lang (en|pl), q (substring on code/label), kind (country|cultural), cursor, limit (max 500). Pair with quizbase_random or quizbase_list using `regions:[...]` to fetch matching questions.

輸入參數qkindlanglimitcursor

quizbase_report

Submit a content correction or copyright report

Submit a content correction, copyright concern, or factual error report. USE WHEN: user (via your interface) flags a wrong answer, broken translation, attribution issue, or DMCA concern. INPUTS: at least one of (questionId UUID, questionText, questionUrl), type (translation|factual|inappropriate|attribution|other), comment (optional, max 2000), reporterEmail (optional). OUTPUT on success: {ok:true, reportId}. On failure the result is marked isError:true with structuredContent {error, message} — error codes: invalid_input, not_found, rate_limit_exceeded (per-IP 5/min), internal_error.

輸入參數type必填commentquestionIdquestionUrlquestionTextreporterEmail

版本歷史

1
  1. v0.1.1最新Sep 16, 2026

評分

已滿足適用檢查項的 83%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分

    請宣告包含 README 的 GitHub 儲存庫,或在 OAuth 受保護資源後設資料中提供 resource_documentation。

  • 授權條款不適用

    託管服務按其提供方的條款使用,因此這裡不要求授權條款。此檢查項不計入百分比。