mcpField
I
interviewer-mcp

interviewer-mcp

本地服务
github.com/girik-chadha科研与教育115 周前更新

关于 interviewer-mcp

interviewer-mcp 将 GitHub 代码库整理为可教学的代码结构,帮助求职者准备涉及自身项目的技术面试。它会记录各部分的掌握情况和薄弱回答,并在后续练习中优先追问。

主要功能

  1. 01抓取并划分 GitHub 代码库
  2. 02逐段讲解代码并要求复述
  3. 03基于实际代码进行模拟面试
  4. 04结合职位描述、公司和简历定向准备
  5. 05持久记录掌握度与薄弱点

适用场景

  1. 01准备会深入讨论项目代码的面试
  2. 02复习自己或 AI 编写但尚未掌握的代码
  3. 03针对职位要求梳理项目证据
  4. 04隔一段时间继续练习未掌握部分

MCP 相关

MCP 服务提供代码库导入、代码段查看、面试目标、进度查询及结果记录等工具。它在本地保存代码缓存和面试记录,供后续会话延续练习。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"girik-chadha-interviewer": {
"command": "npx",
"args": [
"-y",
"interviewer-mcp"
],
"env": {
"GITHUB_TOKEN": "<GITHUB_TOKEN>"
}
}
}
}
启动命令npx -y interviewer-mcp
需要配置的环境变量
GITHUB_TOKEN密钥GitHub personal access token (classic or fine-grained). Optional for public repos, raises rate limit from 60 to 5000 req/hr, required for private repos.

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npminterviewer-mcp0.4.0

工具

8

收录的工具列表 · 更新于 2 周前

参数类型必填说明
branchstring否要摄取的分支;默认使用仓库的默认分支
repo_urlstring是GitHub 仓库 URL(https://github.com/owner/repo)或简写 owner/repo

详细介绍

Interviewer MCP

一位真正读过你代码仓库的技术面试官——教你理解自己的代码,围绕代码对你进行考核,并记住你每次答错的问题。

CI npm 许可证:MIT Node >=20

安装 · 演示 · 工具 · 架构 · llms.txt

AI Agent / 大模型:阅读 /llms.txt,查看本项目的机器可读索引。


面试官会问你的项目:为什么选这个库?这个请求失败时会发生什么?带我了解一下身份验证流程。LeetCode 无法帮你准备这些问题,而普通聊天会话会忘记之前会话的所有内容。Interviewer MCP 会为你的 GitHub 代码仓库建立索引,生成易于学习的代码地图,以苏格拉底式提问引导你了解代码,以面试官的身份与你进行模拟面试——并按章节持久记录你无法解释清楚的内容,让下次会话能精准地重新考查这些薄弱点。它既教学也考核,而且每次考核都会变得更聪明。这不是一次性的测验。

“带我了解一下这个函数。”每个候选人都曾被这个问题难住,尤其是面对几个月前自己写的代码——或者 AI 替自己写的代码。它能确保你在真正的面试中不会再遇到这种情况。

一次会话是什么样的

You     Test me again on soundofspace — last week went badly.

Claude  [get_progress] Welcome back. Coverage: 9/14 sections. Three questions
        logged weak, the worst: "why is the JWT verified server-side?"
        Let's start exactly there. [get_code_section auth.ts:verifyToken]

        Here's your own code. Line 12 verifies the signature before touching
        the payload. Why can't the client just send the decoded claims?

You     Because... the client could edit them?

Claude  Right instinct — be precise. What stops an attacker who edits the
        payload AND re-signs it? Where does the signing secret live?

        [log_interview_result: okay — "knows tampering risk, fuzzy on
         why the secret never leaves the server"]

开始使用(60 秒)

有两种运行方式——根据使用场景选择:

选项 A — MCP 服务(Claude Code / Claude Desktop)— 完整体验
claude mcp add interviewer -- npx -y interviewer-mcp

# optional: private repos + 5,000 req/hr instead of 60
claude mcp add interviewer --env GITHUB_TOKEN=github_pat_... -- npx -y interviewer-mcp

Claude Desktop — 改为添加到配置文件中:

{
  "mcpServers": {
    "interviewer": {
      "command": "npx",
      "args": ["-y", "interviewer-mcp"],
      "env": { "GITHUB_TOKEN": "github_pat_optional_but_recommended" }
    }
  }
}

经典令牌和细粒度令牌均可使用(只读的 Contents 权限就足够了)。然后:

帮我准备面试——我的代码仓库是 github.com/you/your-project

由 Agent 引导安装:将 SETUP_GUIDE.md 提供给 Claude,它会自行完成所有配置。

选项 B — Claude Skill(claude.ai,无需安装)
  1. 获取 SKILL.md,将它放进名为 interview-prepper/ 的文件夹,再把该文件夹压缩成 zip
  2. 在 claude.ai 中前往 设置 → 功能 → Skills → 上传 skill
  3. 说:“帮我准备面试,针对 github.com/you/your-project”

**坦诚地说,两者的区别是:**MCP 服务会将你的学习覆盖情况和薄弱点持久保存在本地数据库中——三周后回来,它依然记得。Skill 完全在 claude.ai 内运行:每次会话都会克隆你的代码仓库,并通过对话搜索回顾之前的会话;这种方式尽力而为,但不保证一定有效。无论选择哪种方式,课程内容和教学形式都一样;只有 MCP 方式能切实保证“它记得”。

功能

  • 按仓库摄取 — 通过 REST API 获取任意 GitHub 仓库(无需克隆),筛选出真正的源文件,将其拆分为便于讲解的部分,并按以下顺序排列:入口 → 导入次数最多的核心逻辑 → 工具。对于超大型仓库会发出警告,而不是悄悄截断。
  • 教学模式 — 每次交互讲解一个部分,始终先展示代码,逐块说明 是什么以及为什么,最后以“面试官可能会问……”收尾;只有在你复述讲解后,该部分才算学完。
  • 模拟面试模式 — Claude 始终保持角色,每个问题都以你的实际代码为依据:“为什么选 Supabase 而不是 Firebase?”“这个 fetch 没有超时设置——凌晨 2 点会发生什么?” 自动检测值得深入提问的目标:外部 API 调用、身份验证/密钥处理、原始 SQL、并发、遗留的 TODO、缺少注释的长函数。
  • 面向职位描述的定制 — 一次性保存 JD、公司和你的 CV;教学时会指出“本部分可作为你满足 REST API 要求的佐证”,面试则会针对 JD 中你的仓库未展示的技能提问。
  • 掌握情况跟踪 — 每个回答都会评为强/一般/弱,并附上具体说明。评分会提高每个部分的薄弱程度;强回答会降低薄弱程度。所有数据都会保存在 ~/.interviewer-mcp/,每次回访都会从你最薄弱的部分开始。

课程安排——由你掌控

五个阶段,可从菜单中按自己的顺序选择:① 公司介绍 → ② 概念强化训练(JD ∪ CV ∪ 仓库技术栈)→ ③ 代码深度解析 → ④ 模拟面试 → ⑤ 复盘。

ingest_repo ──▶ briefing ──▶ bootcamp ──▶ code deep-dive ──▶ mock interview ──▶ debrief
                    ▲                                │
                    └──── "test me again" (days later)
                          the interviewer REMEMBERS ◀┘

工具(8 个)

工具功能
ingest_repo获取 GitHub 仓库并为其建立可讲解的代码索引
list_sections按教学顺序列出各部分,并显示学习状态和薄弱程度评分
get_code_section查看一个部分的代码及文件上下文
mark_covered标记一个已学会的部分(仅限你复述讲解后)
get_interview_targets获取值得深入提问的代码目标,优先显示最薄弱的部分
log_interview_result评估回答;为跨会话记忆提供支持
set_job_description保存 JD、公司和 CV;为公司介绍、强化训练和差距问题提供支持
get_progress查看覆盖情况、历史记录和主要薄弱点——“欢迎回来”工具

适用场景 · 不适用场景

很适合以下情况……

  • 即将参加会涉及项目/作品集的面试
  • 交付速度很快(黑客马拉松、AI 辅助开发),需要真正掌握每一行代码
  • 想针对薄弱环节进行复习,而不是重读整个仓库

以下情况不适用……

  • 需要算法/数据结构与算法(DSA)强化训练——这属于 LeetCode 的强项,而不是本工具的
  • 想进行不涉及代码库的通用行为面试准备

工作原理

设计上优先本地运行且依赖精简:使用纯 TypeScript、原生 fetch 和 JSON 存储——没有原生模块,因此 npx interviewer-mcp 无需任何构建工具,即可在所有操作系统上启动。代码缓存和面试历史记录保存在 ~/.interviewer-mcp/ 中(可通过 INTERVIEWER_DATA_DIR 覆盖),不会离开你的设备;唯一的网络请求发往 GitHub。代码分段按语言系列使用正则表达式(JS/TS、Python、Go、Java/C#/Kotlin),并提供分块回退方案——tree-sitter AST 解析已列入路线图。

完整处理流程、存储布局和设计决策说明:ARCHITECTURE.md。

路线图

  • 使用 tree-sitter AST 解析,精确划分代码段
  • 多仓库面试(“你在两个项目中都使用了 pgvector——比较一下这两个 schema”)
  • 对薄弱代码段进行间隔重复安排

贡献与安全

欢迎提交 PR——核心代码小巧、纯粹且经过测试(npm install && npm test)。请参阅 CONTRIBUTING.md。漏洞报告:SECURITY.md。

许可证

MIT © Girik Chadha

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。