CertPepper
Quick Start
# Clone and install
git clone https://github.com/cert-pepper/cert-pepper.git && cd cert-pepper
cp .env.example .env # add ANTHROPIC_API_KEY for AI explanations
uv sync
# Set up a database and start studying
uv run cert-pepper db init
uv run cert-pepper ingest # loads the bundled Security+ content
uv run cert-pepper study
Or open the repo in Claude Code and ask it to generate a question bank for any exam:
Set up a
standardquestion bank for the CISSP exam
That request should map to the content MCP server's create_question_bank workflow. It creates or reuses a DB-backed question bank; it does not create a new examples/ content pack unless you explicitly ask for repository content files.
See MCP Integration to enable the servers.
Why CertPepper?
Most study tools — Anki, Quizlet, flashcard apps — treat every question the same. CertPepper adapts:
- FSRS-4.5 spaced repetition schedules reviews at optimal intervals based on your recall history — the same core algorithm behind Anki, tuned for exam prep.
- Bayesian Knowledge Tracing estimates mastery per domain and steers new questions toward your weakest areas, weighted by how much each domain counts on the real exam.
- AI explanations break down wrong answers with domain-specific context via Claude (MCP sampling in Claude Code, or the Anthropic API in CLI mode).
- Domain-weighted scoring predicts your exam score using actual exam weights, with a conservative prior for unseen material.
- MCP integration — study inside Claude Code with three servers for content, study sessions, and analytics.
Features
| Command | What it does |
|---|---|
cert-pepper study |
Adaptive study session — picks questions based on your weak spots |
cert-pepper study --domain 4 --count 15 |
Target a specific domain |
cert-pepper study --new-questions |
Focus on unseen material |
cert-pepper exam |
90-question timed mock exam with countdown |
cert-pepper progress |
Dashboard: domain accuracy, predicted score, pass probability, study streak |
cert-pepper goal set --exam-date 2026-03-09 |
Set exam date, get a paced study calendar |
cert-pepper pregenerate |
Batch-generate AI explanations (requires API key) |
cert-pepper db init |
Create/reset the SQLite database |
cert-pepper ingest |
Parse markdown content into the DB |
cert-pepper upgrade |
Apply schema migrations and refresh content |
No guarantees. Predicted scores and pass probabilities are estimates based on practice performance — not predictions of real exam outcomes.
MCP Integration
Three STDIO MCP servers are registered in .mcp.json:
| Server | Purpose |
|---|---|
cert-pepper-study |
Start sessions, submit answers, get due cards |
cert-pepper-content |
Search questions, get explanations, look up acronyms |
cert-pepper-analytics |
Predict score, find weak areas, study recommendations |
Enable them in Claude Code by adding enableAllProjectMcpServers: true to .claude/settings.local.json.
In Claude Code, explanations use MCP sampling — no ANTHROPIC_API_KEY needed.
For exam setup, the content server exposes two equivalent tools:
create_question_bank(exam_name, size=None)— preferred user-facing entrypointsetup_exam(exam_name, size=None)— lower-level alias with the same behavior
Both tools accept size tiers lite, standard, and heavy. They create or reuse DB-backed question banks rather than writing content under examples/.
Adding Your Own Exam
- Create a content directory in CertPepper's markdown format.
- Set
CONTENT_ROOT=/path/to/your/contentin.env. - Run
cert-pepper db initandcert-pepper ingest.
The examples/security-plus/ directory is a complete reference implementation with 228 questions, 135 flashcards, and 262 acronyms.
Configuration
| Variable | Default | Description |
|---|---|---|
DB_PATH |
./cert_pepper.db |
SQLite database path |
CONTENT_ROOT |
./examples/security-plus |
Root of your exam content |
ANTHROPIC_API_KEY |
— | Required for CLI AI explanations (study, pregenerate). Not needed in Claude Code. |
HAIKU_MODEL |
claude-haiku-4-5-20251001 |
Model for AI explanations |
SONNET_MODEL |
claude-sonnet-4-6 |
Model for MCP sampling |
DEFAULT_SESSION_SIZE |
10 |
Questions per study session |
MASTERY_THRESHOLD |
0.85 |
BKT mastery cutoff |
Repository Layout
cert-pepper/
├── cert_pepper/ — Python source (CLI, MCP servers, algorithms)
│ ├── cli/ — Typer commands
│ ├── mcp/ — Three FastMCP STDIO servers
│ ├── engine/ — FSRS, BKT, selector, scorer (pure Python)
│ ├── ingestion/ — Markdown parsers
│ ├── ai/ — Anthropic client + explainer
│ └── db/ — SQLAlchemy async engine + schema
├── tests/ — pytest suite
├── examples/
│ └── security-plus/ — Security+ SY0-701 exam content
└── docs/
├── security-plus-in-10-days.md — 10-day Security+ study guide
└── content-format.md — Format spec for your own exam content
Worked Example
The examples/security-plus/ directory contains a complete Security+ SY0-701 exam prep set:
- 5 domains of notes
- 135 flashcards
- 228 practice questions across all 5 domains
- 262 acronyms
See Security+ in 10 Days for a step-by-step guide.
Contributing
See CONTRIBUTING.md for setup instructions, workflow, and PR guidelines.
No comments yet
Be the first to share your take.