quijutsu-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@quijutsu-mcp Look up Lelouch's provenance and tell me how its Spirit Level was decided."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
quijutsu-mcp
A read-only Model Context Protocol server for QuiJutsu, an anime trivia PvP game. It lets any MCP client (Claude Desktop, Claude Code, Cursor, and others) browse QuiJutsu's Community Asset Library, see the trust record behind each entry, and read player, tournament and contributor leaderboards.
It needs no account and no credentials. It talks to the live game through the same publishable key the website ships to every browser, and that key can only reach a small, deliberately public API.
Quickstart
npx -y quijutsu-mcpClaude Desktop (claude_desktop_config.json) or Claude Code (.mcp.json):
{
"mcpServers": {
"quijutsu": {
"command": "npx",
"args": ["-y", "quijutsu-mcp"]
}
}
}Or with the Claude Code CLI:
claude mcp add quijutsu -- npx -y quijutsu-mcpStreamable HTTP is also built in:
PORT=3000 npx -y -p quijutsu-mcp quijutsu-mcp-http # MCP endpoint: http://localhost:3000/mcpRelated MCP server: @pocket-agent/mcp-server
Tools
All six are read-only (readOnlyHint: true, destructiveHint: false, idempotentHint: true,
openWorldHint: false) and return structuredContent alongside a JSON text block.
Tool | What it answers |
| Search the library by name, type, anime title or Spirit Level. Paged, with |
| Where an entry came from, how it was reviewed, how strong its source is, and how its Spirit Level was decided, including the full public vote tally. |
| Titles with public assets, titles open for contribution, and counts by type and Spirit Level. |
| Top players: casual by season points (monthly, annual, lifetime) or ranked by ELO. |
| Tournament standings with win/loss, ELO, accuracy and response time; filter by country. Defaults to the World Anime Tournament. |
| Players who build the library, ranked by published entries, sources found and accurate reviews. |
Spirit Level is how deep a fan needs to be to know something: 1 is common knowledge, 8 is deep lore. It starts as a reviewer estimate and is taken over by the community vote; a level is certified once it crosses the vote threshold.
Example
You: Is QuiJutsu's entry for Lelouch trustworthy, and who decided how hard it is?
The model calls get_asset_provenance with {"name": "Lelouch"}:
{
"asset": { "asset_type": "character", "name": "Lelouch Lamperouge", "anime_title": "Code Geass" },
"provenance": {
"origin": "community",
"review_status": "passed",
"evidence_tier": "major",
"question_eligible": true
},
"spirit_level": {
"spirit_level": 5,
"spirit_level_source": "community",
"spirit_level_community_score": 5,
"spirit_level_vote_count": 5,
"spirit_level_certified": false,
"public_poll": {
"total_votes": 2,
"tally": [{ "level": 2, "votes": 1 }, { "level": 5, "votes": 1 }],
"threshold": 10000,
"certified": false
}
}
}So: a player proposed it, independent reviewers confirmed it against a major source, the game may build questions on it, and its level 5 rating comes from community votes but is not yet certified.
How access is limited
MCP client ──stdio/HTTP──▶ quijutsu-mcp ──publishable key──▶ PostgREST /rpc/<fn>
│
SECURITY DEFINER functions granted to anon
│
tables: RLS on, no anon policy, no anon grantEvery underlying table has row-level security with no anonymous policy. Querying a table directly with this key returns a permission error.
The public surface is a short list of
SECURITY DEFINERPostgres functions withEXECUTEgranted toanon. This server calls only those, throughsrc/client.ts.Rows are projected to an allow-list of fields (
pick()insrc/client.ts), not stripped. If a function later gains a column such as a user id, it does not reach the client.The server refuses to start if given a secret or service-role key.
Trivia questions, options and answers are the game itself and are never exposed.
npm run smokecalls every tool against the live API and fails if a response contains a user id, email, question field or per-viewer field.
Configuration
Nothing is required. To point at a different QuiJutsu-compatible backend, set:
Variable | Default |
| QuiJutsu's live project |
| its publishable key |
| the World Anime Tournament |
|
|
The private sibling
QuiJutsu also runs a private MCP server, quijutsu-question-composer, that lets authorised
admins compose trivia questions with an AI client. It is the harder problem: OAuth 2.1 against
Supabase Auth with JWKS-verified tokens, time-limited leases on blueprint targets so two composers
never write the same question, idempotency keys on every write so retries are safe, and a
multi-stage server-side evaluation pipeline before anything reaches human review. This public
server shares its conventions (Zod schemas with bounds and descriptions, tool annotations, a
uniform isError envelope) without any of its write access.
Development
npm install # also builds via prepare
npm run smoke # live end-to-end test over stdioLicense
Code: MIT. Community Asset Library data is published under the Open Database License (ODbL) 1.0; attribute it to QuiJutsu (quijutsu.com) when you reuse it.
Available Tools
6 toolsget_asset_provenanceExplain where a QuiJutsu asset came from and how far to trust itARead-onlyIdempotent
Explain the trust record behind one Community Asset Library entry. Returns origin (community = proposed by a player and confirmed by independent reviewers; imported = seeded by QuiJutsu), review_status, evidence_tier (how strong the cited source is), question_eligible (whether the game may build trivia on it), and the Spirit Level with its source, community score, the full public vote tally and whether it has crossed the certification threshold. Use this when a user asks whether an entry is reliable, who decided its difficulty, or why it is in the library. Look the asset up by name; pass asset_id to pick one when a name matches several.
Inputs: name (required), asset_id, asset_type, anime_title.
get_contributor_leaderboardGet the QuiJutsu community contributor leaderboardARead-onlyIdempotent
Players who build the Community Asset Library, ranked by score. published = entries they proposed that went live, sourced = entries they found the citation for, reviews = reviews that matched how a submission settled. trust_level is their reviewer standing.
Inputs: limit, period.
get_leaderboardGet the QuiJutsu player leaderboardARead-onlyIdempotent
Top QuiJutsu players. casual ranks by season points (monthly, annual or lifetime); ranked ranks by ELO rating, which ignores period. Returns usernames, scores and ranks only.
Inputs: mode, limit, period.
get_tournament_leaderboardGet a QuiJutsu tournament leaderboardARead-onlyIdempotent
Standings for a QuiJutsu tournament: rank, wins, losses, ELO, answer accuracy and average response time per player, plus total players, matches and a per-country player count. Defaults to the World Anime Tournament (25 Oct 2026). Filter by country to get a national leaderboard.
Inputs: limit, country, tournament_id.
list_anime_titlesList anime in the QuiJutsu asset libraryARead-onlyIdempotent
List the anime titles that have public assets (with counts), the titles currently open for community contributions, and a breakdown of public assets by type and by Spirit Level. Call this first to learn which titles search_assets can filter on.
Inputs: no named parameters.
search_assetsSearch the QuiJutsu Community Asset LibraryARead-onlyIdempotent
Search the public QuiJutsu Community Asset Library: characters, abilities, locations, weapons and other named things from anime, each with its review status and community Spirit Level (1-8, how deep a fan needs to be to know it). Filter by name, type, anime title or Spirit Level. Returns one page plus total_count for paging.
Inputs: limit, offset, search, anime_id, +3 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 6 tools
Each tool has a distinct target: asset search vs. provenance lookup vs. title discovery vs. three separate leaderboard populations. The only mild overlap is between search_assets and list_anime_titles (both help discovery), but descriptions explicitly position list_anime_titles as a 'call this first' helper and search_assets as filterable paging, so misselection is unlikely. The three leaderboard tools are clearly differentiated by audience (players, tournament, contributors).
All six names follow a clean verb_noun snake_case pattern (search_assets, get_asset_provenance, list_anime_titles, get_leaderboard, get_tournament_leaderboard, get_contributor_leaderboard). The leaderboard family shares a predictable prefix/suffix structure, making relationships obvious.
Six tools is well-scoped for a read-only community-asset-and-leaderboard lookup server. Each tool covers a distinct query surface (assets, provenance, titles, three leaderboard types) with no filler.
The read-only lookup lifecycle is largely covered: discovery, search, provenance/trust, and leaderboards. Minor gaps exist — there is no direct get_asset-by-id tool (only search plus optional asset_id on provenance) and no tools for contributing or reviewing assets, which the descriptions imply is a core community workflow.
Related MCP Connectors
Find public games, practice rankings, and Tailorgame documentation. Read-only; no account access.
Read-only MCP for AI usage profiles, leaderboards, stats, and docs; no writes or private data.
Read-only discovery and retrieval of current public Straight Line Golf Pro coaching resources.
Anonymous read-only access to source-backed public SHAR Production knowledge.
Related MCP Servers
- AlicenseAqualityCmaintenanceRead-only Model Context Protocol server for EverQuest Legends public sources, enabling wiki search, news retrieval, and media access without authentication.13MIT
- AlicenseNot gradedqualityDmaintenanceEnables read-only access to Pocket Agent's product information, public persona templates, and app catalog. No authentication required.62 npm1MIT
- FlicenseNot gradedqualityCmaintenanceEnables discovery and querying of public OpenBind structure-affinity datasets, experimental binding events, benchmark results, and live Fragalysis targets and observations through read-only REST endpoints without requiring an API key.-
- AlicenseNot gradedqualityCmaintenanceEnables clients to search, read, and verify sealed forecasts and public-record cards, inspect resolution calendars, engine strands, sensor alerts, and wire headlines, and check whether stories are independent events or echoes. All access is read-only and requires no key, account, or dependencies.3 npm1Apache 2.0