Daily trivia in Claude.ai Project with QuizBase MCP#
A Claude.ai Project is a persistent workspace with custom instructions, attached files, and now — since the Custom Connectors release — real tools that Claude can call mid-conversation. Wire QuizBase to your Project, and “give me today’s question” becomes a one-line prompt that returns a fresh question, scores your answer, and updates your streak artifact.
This guide gets you from zero to a working morning routine in under five minutes. No code, no deploy, no infrastructure — Claude.ai does the orchestration, QuizBase MCP does the data, your Project artifact tracks the streak.
What you’ll build#
A Claude.ai Project called “Morning trivia” with these properties:
- Custom instructions that tell Claude to fetch one question via
quizbase_randomevery time you say “morning” or “today’s question” - Custom Connector wiring QuizBase MCP — Claude can call all 12 tools, including
quizbase_topicsfor niche follow-ups - Streak artifact — a simple JSON document Claude updates with
{ date, questionId, correct, streak }after each round - Deterministic same-question mode (optional Step 4) — pick today’s question by date hash, so you and a friend can compare answers without spoiling the question by sharing the ID directly
The mechanic — date hash for “same question, same day”#
The plain version (random per call) is what you want for solo practice — fresh questions, no memorisation. But the interesting version is the daily-challenge variant: deterministic seeded by today’s date, so every person running this Project today sees the same question.
QuizBase doesn’t have a ?seed= parameter (deliberate design — stable question IDs let the client do the seeding; see /docs/api/questions-by-id). Instead you fetch a batch of N (say 365) once a quarter, cache it as a Project file, and let Claude pick today’s index by hashing the ISO date:
hash("2026-05-15") % 365 = 142 → pick batch[142] Tomorrow’s hash gives a different index, ergo a different question. Same date globally gives the same hash, ergo same question for everyone. The pattern is documented at /docs/api/questions-by-id and powers the MCP Slack trivia bot too.
Step 1 — Get a QuizBase publishable key#
Open API keys in your QuizBase dashboard and create a qb_pk_* (publishable) key. Free tier gives 500 requests/day, which is roughly 7 questions/day for a year and a half — plenty for personal use. Copy the key once; you can’t see it again after closing the dialog.
If you don’t have an account yet, sign up — no credit card, free tier unlocks the full production API.
Step 2 — Connect Claude.ai to QuizBase MCP#
In Claude.ai, click your avatar → Settings → Connectors → Add custom connector.
- Name: QuizBase
- URL:
https://quizbase.runriva.com/mcp - Authentication: Bearer token. Paste your
qb_pk_*key here.
Save. Open a new chat and type “what tools do you have from QuizBase” — Claude lists all 12 quizbase_* tools. If the connector shows red, your key is wrong or expired — back to step 1.
Step 3 — Create a Project with custom instructions#
In the sidebar, click Projects → New Project. Name it “Morning trivia”. In the Project’s custom instructions field, paste this:
You are my morning trivia coach. When I say "morning" or "today's question",
call quizbase_random with difficulty=medium and a mixed category.
After each question:
1. Show the question text and four shuffled answer choices (A–D).
2. Wait for my answer.
3. Reveal the correct answer with the source attribution (author + license).
4. Update the streak artifact: if I got it right, increment streak; if wrong, reset to 0.
Always render the attribution. It's a license compliance requirement. Optional: add a guard so the Project only uses the QuizBase connector — Project settings → Connectors → toggle on QuizBase, toggle off the rest. Keeps Claude focused.
Step 4 — Streak artifact for daily tracking#
The first time you say “morning”, ask Claude: “Create a streak.json artifact with { date: null, currentStreak: 0, longestStreak: 0, history: [] }.” Claude creates a Project artifact you can view and reset anytime. After each round Claude appends to history and updates the counters.
The artifact lives across chats in the same Project — your Monday score persists when you open the Project on Wednesday. To compete with a friend, share the Project (or just the prompt text — they wire their own key) and compare currentStreak once a week.
Step 5 — Daily-challenge mode (optional)#
If you want the deterministic same-question-globally pattern, two changes:
1. Add this to your custom instructions:
For daily-challenge mode (when I say "daily" instead of "morning"):
- Fetch the batch with quizbase_list(limit=50, category=mixed) and cache as
a Project file named daily-pool.json (only on Monday, otherwise use cached).
- Hash today's ISO date with djb2: h = 5381; for each char c: h = (h*33) ^ c.code
- index = h % daily-pool.length, fetch that question, present.
- Friends running the same Project on the same date see the same question. 2. First Monday of each month, say “daily refresh” — Claude refetches daily-pool.json. The cache stays valid for 30 days; bigger pools (say 365) refresh quarterly.
This is the same pattern the MCP Slack trivia bot uses for its weekly leaderboard, just adapted to single-user Project context.
Pitfalls#
- Custom Connectors are per-workspace, not per-Project. If you have personal + work Claude.ai workspaces, you add QuizBase to each. The Project just scopes which connectors are exposed to that conversation.
- Free tier is 500 requests/day across all keys. One question per day is 0.2% of your budget — you could run 7 of these Projects without thinking about it. See rate limits for upgrade triggers.
- Attribution is mandatory. QuizBase questions ship under CC BY-SA / CC BY / MIT. The custom instructions block above already says “always render the attribution” — keep that line. Skipping it puts you out of license compliance.
- Streak resets when you start a new chat in the same Project. Claude reads the
streak.jsonartifact at the start of each conversation, so the streak persists; but if Claude can’t find the artifact (deleted, renamed) it starts a new one. Keep the file name stable.
What next#
- Topic deep-dive mode — extend the custom instructions to call
quizbase_topic_by_slugfor “today’s question about Napoleon” or “give me Python trivia”. Same flow, narrower pool. - Voice dictation — Claude.ai mobile reads questions aloud if you tap the voice icon. Combined with daily mode this is a 90-second commute habit.
- Wire a second MCP server — Wikipedia, your reading list, Anki — and Claude can compose “give me today’s question + a 2-line explainer + add it to my Anki deck” without writing any code.
Ready to set it up? Grab a free publishable key, add the connector, paste the instructions, ship the routine in five minutes. Question wrong or unclear? Each question has a stable ID — Claude can call quizbase_report with one prompt (“the previous question is wrong”) and the question goes to QuizBase’s moderation queue for review.