# io.github.girik-chadha/interviewer-mcp (npm · interviewer-mcp)

Full technical interview prep: company briefing, concepts, code deep-dive, mock interviews.

- Trust score: 56/100 (low)
- Change this week: +13
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- npm · `interviewer-mcp`: 56/100 (this document), [markdown](https://verifymcp.io/servers/girik-chadha-interviewer-mcp/interviewer-mcp.md), [page](https://verifymcp.io/servers/girik-chadha-interviewer-mcp/interviewer-mcp)

## Channel facts

- Registry: `npm`
- Package: `interviewer-mcp`
- Version: `0.4.0`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Supply Chain Security**: 87/100
  - No malware found by supply-chain analysis.
  - Only part of the dependency tree could be resolved (95 of 99), so this covers what we could see, not the whole tree.
  - No install/post-install scripts declared.
  - Only part of the dependency tree could be resolved (95 of 99), so this covers what we could see, not the whole tree.
- **Provenance & Transparency**: 45/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 16 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 28/100
  - AI-judged instruction clarity (poor).
  - Context-footprint check failed: tool/resource definitions use about 1874 tokens (~234/item across 8 items; 8 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 0/100
  - Stability not yet verified: not enough scan history yet (needs a 30-day window).
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

**Unverified: 1 category.** A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

## Install

### Claude

```bash
claude mcp add girik-chadha-interviewer-mcp -- npx -y interviewer-mcp
```

### Codex

```bash
codex mcp add girik-chadha-interviewer-mcp -- npx -y interviewer-mcp
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "girik-chadha-interviewer-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "interviewer-mcp"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add girik-chadha-interviewer-mcp --command npx --arg -y --arg interviewer-mcp
```

### Hermes

```yaml
mcp_servers:
  girik-chadha-interviewer-mcp:
    command: "npx"
    args: ["-y", "interviewer-mcp"]
```

### Other

```json
{
  "mcpServers": {
    "girik-chadha-interviewer-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "interviewer-mcp"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-02 (score 56, +51)

- [security regression] Provenance: unverified → fail
- [security improvement] Install scripts: unverified → pass
- [security improvement] Known CVEs: unverified → partial
- [security improvement] Malware scan: unverified → pass
- [security] Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window).
- [functional improvement] License: unverified → pass
- [functional improvement] Dependency health: unverified → partial
- [functional improvement] Maintenance: unverified → pass
- [functional improvement] MCP protocol: unverified → pass
- [functional improvement] Schema quality: unverified → poor
- [functional improvement] Tool coverage: unverified → 100
- [functional] Licence: MIT

### 2026-08-01 (score 5, −13)

- [functional regression] Tool coverage: 100 → unverified
- [functional] First check of Schema quality: unverified

### 2026-07-31 (score 18, −7)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-30 (score 25, −18)

- [security regression] Malware scan: pass → unverified

### 2026-07-27 (score 43)

First indexed and scored.

## MCP tools (8)

### `ingest_repo` (~155 tokens)

Ingest Repository

Fetch and index a GitHub repository so it can be taught and interviewed. Call this FIRST whenever the user provides a repo URL or asks to prep a repo that has not been ingested yet. Builds a code map (sections in a suggested teaching order) and caches file contents locally. Returns the repo summary and the first few sections — NOT full code; use get_code_section to pull code. Safe to call again on the same repo: it refreshes the code while preserving the user's progress and weakness history.

Input parameters:

- `branch` (string): Branch to ingest; defaults to the repo's default branch
- `repo_url` (string, required): GitHub repo URL (https://github.com/owner/repo) or shorthand owner/repo

### `list_sections` (~96 tokens)

List Sections

List all sections of an ingested repo in the suggested teaching order, with covered status and weakness scores. Use this to decide what to teach next (first uncovered section) or what to re-attack in an interview (highest weakness_score). Returns metadata only, never code — keep context small and pull code per-section with get_code_section.

Input parameters:

- `repo` (string, required): Repo id in owner/repo form, as returned by ingest_repo

### `get_code_section` (~115 tokens)

Get Code Section

Fetch the actual code for one section, plus its file context (imports at the top of the file). Use during TEACH mode to walk the user through their code one section at a time, and during INTERVIEW mode to ground questions in the real code. After the user demonstrates understanding of a section in teach mode, call mark_covered — this tool does not mark automatically.

Input parameters:

- `repo` (string, required): Repo id in owner/repo form
- `section_id` (string, required): Section id from list_sections or ingest_repo

### `mark_covered` (~78 tokens)

Mark Section Covered

Mark a section as covered in teach mode. Call this ONLY after the user has explained the section back in their own words or answered a comprehension question about it correctly — not merely after showing them the code.

Input parameters:

- `repo` (string, required): Repo id in owner/repo form
- `section_id` (string, required): Section id to mark as covered

### `get_interview_targets` (~149 tokens)

Get Interview Targets

Get the most probe-worthy parts of the repo for a mock interview: external API calls, auth/secrets handling, raw SQL, concurrency, long uncommented functions, leftover TODOs — plus any sections the user previously performed poorly on (weakness_score > 0 comes first). Call this at the START of every interview session and build questions from the returned reasons. Use focus='weak_spots' on returning users to re-attack past struggles.

Input parameters:

- `focus` (string): all (default): every target. weak_spots: only sections with prior weak performance. design_decisions: only heuristic-detected probe points.
- `repo` (string, required): Repo id in owner/repo form

### `log_interview_result` (~179 tokens)

Log Interview Result

Record one interview question and how the user performed. Call this after EVERY question-answer exchange in a mock interview — this is what powers cross-session memory of weaknesses. performance: 'strong' (clear, correct, justified), 'okay' (mostly right, some gaps), 'weak' (couldn't explain or wrong). Include the specific gap in notes when performance is weak or okay, e.g. 'could not explain why JWT is verified server-side'.

Input parameters:

- `notes` (string): Specific gap or strength observed; be concrete
- `performance` (string, required): How the user performed on this question
- `question` (string, required): The interview question that was asked
- `repo` (string, required): Repo id in owner/repo form
- `section_id` (string): Section this question targeted, if any — weak performance raises its weakness_score

### `set_job_description` (~198 tokens)

Set Job Description

Store the prep context: job description, and optionally company name and CV text, tied to a repo. Call this when the user pastes or describes any of them. Once set, use it throughout: in teach mode, point out where the code demonstrates JD-required skills; in interview mode, probe JD-required concepts the repo does NOT demonstrate (e.g. 'the JD requires Docker and your repo has no containerization — how would you containerize this app?'). The JD is returned by get_progress so returning sessions stay JD-aware.

Input parameters:

- `company` (string): Company name, for company-specific briefing and question style
- `cv_text` (string): The candidate's CV/resume text — every claimed skill becomes bootcamp + interview material
- `job_description` (string, required): The full job description text, or the user's summary of the role
- `repo` (string, required): Repo id in owner/repo form this JD applies to

### `get_progress` (~100 tokens)

Get Progress

Get the user's full learning state for a repo: coverage %, session history, top weaknesses with notes, and recent interview performance. Call this FIRST at the start of any returning session ('let's continue', 'test me again', 'where were we') so you can resume from weak spots instead of starting over. Also call it to generate the strengths/weaknesses summary after an interview.

Input parameters:

- `repo` (string, required): Repo id in owner/repo form

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/girik-chadha-interviewer-mcp/interviewer-mcp#diagnostics

## Score history

- 2026-08-03: 56
- 2026-08-02: 56
- 2026-08-01: 5
- 2026-07-31: 18
- 2026-07-30: 25
- 2026-07-28: 43
- 2026-07-27: 43

## Links

- npm package: https://www.npmjs.com/package/interviewer-mcp
- Socket report: https://socket.dev/npm/package/interviewer-mcp
- Repository: https://github.com/girik-chadha/interviewer-mcp
- Changelog RSS feed: https://verifymcp.io/servers/girik-chadha-interviewer-mcp/interviewer-mcp/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/girik-chadha-interviewer-mcp/interviewer-mcp/changelog.json
- HTML version of this page: https://verifymcp.io/servers/girik-chadha-interviewer-mcp/interviewer-mcp
