Skip to main content
Glama
lightcube-labs

Interview Prep MCP

README.md
# Interview Prep MCP

**Graded interview questions, model answers, answer frameworks and mock drills for AI Engineer and Investment Banking interviews, as an MCP server.**

By **LightCube Labs**. Runs fully offline over stdio. No API keys, no account, no network calls.

- **100 AI Engineer questions**: LLM fundamentals, prompting and structured output, RAG, agents and MCP, fine-tuning, evaluation, AI system design, production/cost/safety, coding.
- **106 Investment Banking questions**: accounting, valuation, M&A, LBO, industry/restructuring/current events, plus 6 fit questions.
- Every question is graded **Entry / Mid / Senior** and has a concise model answer. Many include the likely follow-up or the common mistake.

Ask your assistant things like:

- "Give me a 5-question mock round for an AI Engineer interview, Senior level."
- "Quiz me on LBOs, then grade my answer to ib-074."
- "What would an interviewer ask after the KV cache question?"

## Tools

| Tool | What it does |
|---|---|
| `list_topics` | Roles and topic ids, with question counts per level. |
| `get_questions` | Questions by `role`, optional `topic` and `level`, `n`, `offset`; `include_answers` adds model answers. |
| `get_answer_framework` | For one `question_id` (e.g. `aie-026`, `ib-003`): step-by-step answer framework, model answer, follow-up, common mistake and a 1-5 scoring rubric. |
| `random_drill` | `n` random questions (no answers) for a timed mock round; pass `seed` to replay. |
| `search_questions` | Keyword search across questions and answers. |

Roles: `ai-engineer`, `investment-banking`. All tools are read-only.

## Install

Requires Node.js 18+.

### Claude Desktop / Cursor / any MCP client (npx)

```json
{
  "mcpServers": {
    "interview-prep": {
      "command": "npx",
      "args": ["-y", "interview-prep-mcp"]
    }
  }
}
```

### From source

```bash
git clone https://github.com/lightcube-labs/interview-prep-mcp.git
cd interview-prep-mcp
npm install
npm run build
npm test          # spawns the server, lists tools, calls each tool once
```

Then point your client at `node /path/to/interview-prep-mcp/build/index.js`.

### MCPB bundle (Claude Desktop one-click)

```bash
npx @anthropic-ai/mcpb pack . interview-prep-mcp.mcpb
```

## Optional configuration

Each result ends with a short "More practice" footer. You can add your own links with environment variables (all optional):

| Variable | Shown as |
|---|---|
| `FREE_PDF_URL_AIE` / `FREE_PDF_URL_IB` | Free Top 30 questions PDF |
| `PLAYBOOK_URL_AIE` / `PLAYBOOK_URL_IB` | Full interview playbook |

## Data

Questions live in `data/questions.json` (generated by `scripts/build_data.py` from the source markdown) and answer frameworks in `data/frameworks.json`. Questions reflect common public interview patterns; no company or bank affiliation. Answers are for interview preparation, not investment advice.

Corrections and new questions are welcome via issues and pull requests.

## License

MIT © 2026 LightCube Labs

TDQS

A3.9/5.0

Scored across 5 tools

Disambiguation4/5

Each tool has a reasonably distinct role: list_topics is an index, get_questions is filtered retrieval, get_answer_framework is single-question deep dive, random_drill is a timed mock, and search_questions is keyword lookup. The only real overlap is between get_questions and search_questions (both return question lists) and between random_drill and get_questions (both sample questions), but the descriptions make the intent differences clear.

Naming Consistency4/5

Four of five names follow a clean verb_noun pattern (list_topics, get_questions, get_answer_framework, search_questions). random_drill breaks the pattern as an adjective+noun with no verb, though it is still readable and unambiguous.

Tool Count5/5

Five tools is well-scoped for a question-bank server: discover, retrieve, drill, deep-dive, and search. Each tool earns its place with no redundancy padding the surface.

Completeness4/5

The core read lifecycle is covered: topic discovery, filtered retrieval, answer frameworks with rubrics, random drilling, and search. Minor gaps exist — no single-question fetch by id independent of the answer framework, and no attempt/progress tracking across drill sessions — but agents can work around both.

Maintenance

ActivityMaintained
ResponsivenessNo issues