# io.github.aaadjrbr/nobrainner

> NoBrainner Spaced Repetition Flashcards, Study Stats & Multi-Language AI Deck Generation

- name: io.github.aaadjrbr/nobrainner
- version: 1.0.0
- connection class: R2 (oauth_consent_once)
- trust: 91/100
- quality: 90/100 (strong)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/io.github.aaadjrbr%2Fnobrainner
- tools: https://api.protogrid.dev/v1/servers/io.github.aaadjrbr%2Fnobrainner/tools

**An agent can connect after a one-time OAuth consent by a human.** Remote endpoint behind OAuth 2. Tokens stay with the agent; the registry only exposes the authorization metadata.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "nobrainner": {
      "type": "sse",
      "url": "https://app.nobrainner.xyz/api/mcp"
    }
  }
}
```


## Trust

- hygiene: 100
- liveness: 100
- freshness: 85
- provenance: 80
- drivers: +repository +namespace-matches-repo +reachable +uptime-99% ~updated-70d-ago
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 90/100 (strong)

### protocol: n/a (weight 25)

- n/a `protocol.modern`, `protocol.stateless`, `protocol.transport`, `protocol.list_ttl`: no remote answered a protocol handshake (not probed yet, unreachable, or local-only)

### authorization: 100 (weight 15)

- pass `auth.prm`: Protected Resource Metadata (RFC 9728) published
- pass `auth.as_metadata`: authorization server metadata reachable
- pass `auth.cimd`: Client ID Metadata Documents supported
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 86 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 33 of 33 tools declare readOnlyHint or destructiveHint
- fail `tools.directory_hints`: no tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: get_deck_list (idempotentHint); save_deck_draft (idempotentHint); get_deck_folders (idempotentHint); …
- pass `tools.token_cost`: about 3,930 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: n/a (weight 15)

- n/a `stability.changes`, `stability.rug_pull`: tool history not recorded yet

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 33, about 3,930 tokens to load them all
- badge: [![protogrid quality](https://protogrid.dev/badge/io.github.aaadjrbr/nobrainner.svg)](https://protogrid.dev/servers/io.github.aaadjrbr/nobrainner)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

_No tool definition changes recorded._

## Remotes

- https://app.nobrainner.xyz/api/mcp (sse, auth oauth2, reachable true, uptime30d 0.9916667)

## Packages

_none_

## Tools (33)

- `create_deck_draft`: Call get_student_overview and get_usage_limits first. The schema accepts up to 200 cards so Pro can create large drafts. Free: up to 50 cards per draft, 3 drafts/day and 30/month. Pro: up to 200 cards per draft, 10 drafts/day and 150/month. Never send more than the current plan allows; split oversized drafts only when remaining draft quota allows it. Drafts are inactive until save_deck_draft is explicitly confirmed. Ask before adding audio: Free users receive standard Neural2; Pro users can choose the more natural-sounding premium-female or premium-male Chirp3-HD voice. Ask Pro users which voice they prefer. Saving consumes one cloud deck job plus requested TTS/audio quotas.
- `create_folder`: Creates a deck organization folder.
- `customize_deck`: Customizes a deck title, emoji, color, border, font, font weight, or order. Use get_deck_folders first for the supported values.
- `delete_folder`: Deletes a folder and moves its decks to the root.
- `get_accessibility_settings`: Returns UI scale, reduced-animation, and review audio-speed visibility settings.
- `get_app_capabilities`: Explains NoBrainner features, Chrome extension, Video Practice, ranking, and documentation links.
- `get_deck_detail`: Returns one deck and a paginated page of cards.
- `get_deck_folders`: Returns the student dashboard style plus every folder and deck aesthetic setting and the supported values for safe personalization.
- `get_deck_list`: Returns the authenticated student deck list with status, card counts, source, settings, and sync metadata.
- `get_deck_settings`: Returns study settings for a deck.
- `get_flashcard_appearance`: Returns the current flashcard theme and supported color options from Edit Profile.
- `get_friends_leaderboard`: Returns the authenticated student’s Friends league, weekly XP ranks, and current position.
- `get_leaderboards`: Returns weekly NoBrainner global leaderboard rankings, streak leaders, and the authenticated user position.
- `get_profile_settings`: Returns profile basics and accessibility settings from Edit Profile.
- `get_review_timeline`: Returns daily NoBrainner study activity for the last N days.
- `get_shared_catalog`: Browses the public NoBrainner community deck catalog.
- `get_shared_deck_management`: Returns owned decks, catalog visibility, classification, publication state, and share links.
- `get_streak_details`: Returns read-only streak, freeze, recovery, and recent daily activity history without changing study progress.
- `get_student_overview`: Returns the authenticated student overview: profile basics, current Free/Pro plan, available voice options, progress, decks, recent grades, and weak-deck signals. Free includes standard Neural2 audio; Pro includes more natural-sounding Chirp3-HD female and male voices. Call get_usage_limits before any deck creation or other metered operation.
- `get_usage_limits`: Returns the authenticated student plan, daily/monthly usage, remaining allowances, deck limits, and audio allowances. Always call this before creating or saving a deck. Free includes standard Neural2 audio; Pro can choose more natural-sounding Chirp3-HD female or male voices. The create tool schema accepts up to 200 cards, but backend policy is Free 50 cards and Pro 200 cards per draft.
- `get_user_stats`: Returns detailed NoBrainner student learning statistics: accuracy rate, grade distribution, active/total deck counts, streaks, total reviews, estimated study hours, and 30-day accuracy history.
- `get_weak_cards`: Returns cards with the strongest recent Again/Hard signal.
- `import_shared_deck`: Imports a public community deck into the student account.
- `move_deck_to_folder`: Moves a deck into a folder or back to the root.
- `preview_deck_draft`: Previews a pending deck draft before it is saved.
- `save_deck_draft`: Call get_usage_limits first. Saves a confirmed draft as a ready deck and consumes one cloud deck job plus requested TTS/audio quotas. Pro drafts can use premium-female or premium-male Chirp3-HD; Free drafts are enforced as standard Neural2. Only call after explicit confirmation.
- `update_accessibility_settings`: Updates account-wide UI scale, reduced animations, or review audio-speed visibility after the student requests it.
- `update_dashboard_appearance`: Sets the authenticated student dashboard to Playful or Subtle. Only call when the student requests this change.
- `update_deck_settings`: Updates settings after explicit user confirmation.
- `update_flashcard_appearance`: Changes the authenticated student flashcard theme or color. Only call when the student requests this change; imported Anki templates are not restyled.
- `update_folder`: Renames or updates an existing folder.
- `update_profile_basics`: Updates the student display name, flag, or built-in avatar. Custom photo uploads remain in Edit Profile.
- `update_shared_deck_management`: Changes an owned deck catalog classification or public/private visibility. Publishing or unpublishing requires explicit confirmation and never changes imported shared decks.
