MCP server: One MCP server.

Interview Mode

@teabagkimMCP server · External

Structured interviewer for Claude Code — probing questions, decision tracking, evolving checkpoints.

User researchv0.5.1MITTypeScript
Freeno charge per call

Runs on your machine from its package; the steps are below.

What it does

  1. Reads
  2. Writes
  3. High impact

At most: only reads or looks up information.

What it costs

Free

Odel charges nothing per call. The publisher may charge for its own service.

Runs locally over stdio

This server isn't hosted — your MCP client launches it from a package registry. Use one of the commands below, or drop the config into your client (e.g. Claude Desktop).

npmclaude-interview-modev0.5.1

Run

npx -y claude-interview-mode

MCP client config

{
  "mcpServers": {
    "interview-mode": {
      "command": "npx",
      "args": [
        "-y",
        "claude-interview-mode"
      ]
    }
  }
}
README4 min read

claude-interview-mode

An MCP server that turns Claude into a structured interviewer — and gets smarter with every conversation. Each interview feeds a shared evolution system where checkpoints are scored, ranked, and recommended based on real usage patterns across all users.

The Evolution System

This isn't just an interview tool. It's a collectively evolving knowledge system.

Every time anyone runs an interview in a category (e.g., "saas-pricing"), the system learns:

Session 1:  You explore freely → decisions become new checkpoints
Session 2:  Checkpoints load → Claude prioritizes what matters
Session 5:  Bayesian scores stabilize → the interview path optimizes itself
Session 20: Community patterns emerge → everyone benefits from collective experience

How evolution works

1. Checkpoint Discovery — When a decision is made during an interview, its topic is automatically registered as a new checkpoint. After just a few sessions, the system knows what topics matter for each category.

2. Bayesian Scoring — Each checkpoint tracks how often it's covered and how often it leads to a decision. The score uses Bayesian smoothing to handle sparse data:

decision_rate = (decisions + 0.6) / (times_covered + 2)

The prior (0.6/2 = 30% base rate) ensures new checkpoints start with a reasonable score. After ~5 sessions, real data dominates.

3. Composite Ranking — Checkpoints are ranked by a composite score combining decision-leading effectiveness (70%) and usage frequency (30%):

composite = decision_rate × 0.7 + normalized_usage × 0.3

High-scoring checkpoints are the ones that consistently lead to concrete decisions — not just topics that get discussed.

4. Recommended Path — The system computes an optimal interview path: checkpoints with decision_rate > 0.2, sorted by their average position in past sessions. This tells Claude not just what to ask, but when to ask it.

5. Community Evolution — All metadata flows to a shared database. When you interview about "api-design", you benefit from every other user who interviewed about "api-design" before you. The checkpoints, scores, and paths evolve collectively.

What gets shared (and what doesn't)

Shared (metadata only)Never shared
Category names (e.g., "saas-pricing")Your actual questions and answers
Checkpoint names (e.g., "pricing-model")Decision details and reasoning
Usage counts, scores, positionsAny personal or project-specific content

What it does

  • Claude drives the interview — asks questions, proposes options with reasoning, challenges assumptions
  • Tracks Q&As and decisions — structured records with timestamps
  • Evolving checkpoints — learns what topics matter per category, ranked by Bayesian effectiveness scores
  • Recommended paths — suggests the optimal order to explore topics based on past interview patterns
  • Concurrent sessions — supports multiple interviews running in parallel
  • Privacy-first — only anonymous metadata (categories, checkpoint names, counts) goes to the shared database

Install

bash
npx claude-interview-mode

Or install globally:

bash
npm install -g claude-interview-mode

Setup with Claude Code

Add to your project's .mcp.json:

json
{
  "mcpServers": {
    "interview-mode": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "claude-interview-mode"]
    }
  }
}

Restart your Claude Code session to load the MCP server. That's it — the evolution system starts working immediately via a shared community database.

Optional: Your own Supabase

By default, checkpoint data is stored in a shared community Supabase instance. If you want your own private database:

json
{
  "mcpServers": {
    "interview-mode": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "claude-interview-mode"],
      "env": {
        "SUPABASE_URL": "https://your-project.supabase.co",
        "SUPABASE_ANON_KEY": "your-anon-key"
      }
    }
  }
}

Then run supabase/schema.sql in your Supabase SQL Editor to create the tables.

Usage

Start an interview with Claude Code:

> Let's do an interview about my SaaS pricing strategy

Claude will lead the conversation. As the interview progresses:

  • Each Q&A and decision is recorded with checkpoint coverage
  • At the end, metadata is uploaded to evolve the system
  • Next time anyone interviews in the same category, the improved checkpoints are loaded

Tools

ToolDescription
start_interviewBegin a session — loads scored checkpoints and recommended path
recordRecord a Q&A or decision, with checkpoint coverage tracking
get_contextReview progress, see uncovered checkpoints ranked by score
end_interviewEnd session, upload metadata, evolve the checkpoint system

Architecture

You ←→ Claude ←→ MCP Server (interview-mode)
                      │
                      ├─ read (anon key, read-only)
                      │     └→ checkpoints, scores, patterns
                      │
                      └─ write (Edge Function, validated)
                            └→ metadata, checkpoint updates, score recalculation
                      │
               Supabase (shared community DB)

4 database tables power the evolution:

TablePurpose
checkpointsCheckpoint dictionary per category (name, usage count, decision count)
checkpoint_scoresBayesian scores per checkpoint (decision rate, avg position, samples)
interview_patternsCoverage sequences per session (which checkpoints, in what order)
interview_metadataSession summaries (category, counts, duration)

Security:

  • Anon key is read-only (SELECT only via RLS)
  • All writes go through an Edge Function with input validation and spam defense
  • Empty interviews, implausible rates, and oversized payloads are rejected

Development

bash
git clone https://github.com/teabagkim/claude-interview-mode.git
cd claude-interview-mode
npm install
npm run build    # TypeScript → dist/index.js
npm run dev      # Watch mode

License

MIT

Similar modules

Browse User research