apprentice-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@apprentice-mcpTeach my apprentice Mia about the water cycle"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
apprentice-mcp
一个开源的 MCP(Model Context Protocol)Server,为 Claude Desktop、Cursor、Windsurf 等任意支持 MCP 的 AI 客户端提供"长期学习跟踪"能力,基于学徒效应(观察 → 模仿 → 独立 → 精通)与间隔重复(FSRS 算法)帮你系统性地学习和巩固任意领域的知识/技能。
产品定位:角色反转的学徒
apprentice-mcp 采用角色反转的教学设计:你是"师傅",AI 扮演"学徒"本人。你把知识点讲给学徒听,学徒像真实的人一样有理解、有疑问、有情绪地反馈——这是费曼学习法(教是最好的学)的落地:如果学徒总是似懂非懂、追问的问题正好戳中逻辑漏洞,说明你自己也没有真正吃透这块知识。
apprentice-mcp 本身不调用任何 LLM、不管理任何模型 API Key——学徒该怎么说话、什么时候表现出哪种情绪,完全由你正在用的 AI 客户端(Claude/Cursor 等)决定;apprentice-mcp 只负责确定性的存储、FSRS 调度算法与统计。
内置的三个学徒人设
不同难度的知识需要不同"心智水平"的学徒来陪练:
人设 | 年龄 / 认知阶段 | 适合场景 |
米娅 Mia | 8 岁,具体运算阶段早期 | 给孩子讲重要概念前的"教学彩排",或孩子自己用来加深理解 |
贝蒂 Betty | 12 岁,具体运算→形式运算过渡阶段 | 给 10-13 岁孩子讲解前的排练,或需要一点抽象思维但还不到大学水平的知识 |
文森 Vincent | 刚上大学的大一新生,形式运算成熟阶段 | 你自己学习强化学习、世界模型这类有门槛的知识,检验自己是不是真的能应用 |
也可以用 upsert_persona 自定义更多人设(比如给自己配一个更挑剔的"资深同行",或给孩子配一个更年幼的"弟弟妹妹")。完整的人设设计方法论见 docs/design/apprentice-mcp-design.md。
Related MCP server: knowledge-graph
配套 Skill:让学徒真的"演"起来
apprentice-mcp 只提供确定性的存储和调度,学徒该怎么说话、怎么表现出五维人格(立场/情绪/记忆/边界/成长),需要配套的 Agent Skill 来落地。仓库自带 skill/apprentice-teaching/,安装本包后可以直接使用:
# 复制到个人 Skill 目录(对所有项目生效)
cp -r node_modules/apprentice-mcp/skill/apprentice-teaching ~/.cursor/skills/
# 或复制到某个项目的 Skill 目录(仅该项目生效)
cp -r node_modules/apprentice-mcp/skill/apprentice-teaching <your-project>/.cursor/skills/复制后重启客户端,直接说"我来教教我的学徒 XX"、"考一下贝蒂"之类的话就会自动触发;完整的教学会话流程、人设语气参考、示例对话见 skill/apprentice-teaching/SKILL.md。
安装与配置
前置要求
Node.js 20 / 22 / 24(最低 20;dashboard 子命令依赖 open@11)。推荐 Node 22 LTS——仓库根目录有 .nvmrc,贡献者可用 nvm use / fnm use 对齐。
通过 npx apprentice-mcp 使用时,native 依赖会在你当前的 Node 版本下自动安装,无需手动编译。Node 版本详情与常见问题见下文 Node 版本与 troubleshooting。
Claude Desktop
编辑 claude_desktop_config.json(macOS: ~/Library/Application Support/Claude/claude_desktop_config.json,Windows: %APPDATA%\Claude\claude_desktop_config.json):
{
"mcpServers": {
"apprentice-mcp": {
"command": "npx",
"args": ["apprentice-mcp"]
}
}
}Cursor
编辑项目或全局的 mcp.json:
{
"mcpServers": {
"apprentice-mcp": {
"command": "npx",
"args": ["apprentice-mcp"]
}
}
}重启客户端后即可在对话中使用下面的工具。
环境变量
变量 | 说明 | 默认值 |
| SQLite 数据文件路径 |
|
数据库文件首次启动时自动创建并建表,无需任何额外配置。
工具清单
工具 | 参数 | 说明 |
| subject, topic?, title, content, tags?, masteryStage?, personaId? | 新增知识点/技能条目,自动初始化 FSRS 状态 |
| subject?, tag?, masteryStage?, personaId?, limit?, offset? | 按条件筛选查看条目 |
| itemId, 可更新字段 | 修改条目内容/标签/mastery_stage/关联人设 |
| itemId | 级联删除相关复习状态与历史 |
| limit?, personaId? | 取出当前到期需要复习的条目,按到期时间升序 |
| itemId, rating(again/hard/good/easy), correct?, timeSpentSec?, notes? | 记录一次练习结果,驱动 FSRS 更新复习计划 |
| itemId?, category, description?, occurredAt? | 记录一次错误分类 |
| subject?, itemId?, limit? | 按类别汇总反复出现的错误类型,用于"举一反三" |
| itemId?, subject?, personaId? | 复习次数、正确率趋势、mastery_stage 分布统计 |
| isBuiltin? | 查看学徒人设列表(内置 3 个 + 全部自定义) |
| id?, name, ageLabel?, cognitiveStage?, traits | 新增或更新一个自定义学徒人设(内置人设禁止修改) |
| personaId | 删除一个自定义学徒人设(内置人设禁止删除) |
详细的设计思路(学徒效应方法论、五维人格框架、认知发展阶段与人设的对应关系)见 docs/design/apprentice-mcp-design.md。
可视化面板
查看当前所有知识点的掌握度分布(整体 / 按主题 / 按人设):
npx apprentice-mcp dashboard会在本地起一个只读的小型 web server 并自动打开浏览器,数据来自同一个 SQLite 文件,随时刷新页面看最新进度。
Node 版本与 troubleshooting
官方支持范围
Node 版本 | 状态 |
20 LTS | 支持(CI 测试) |
22 LTS | 推荐( |
24 Current | 支持(CI 测试) |
18 及以下 | 不支持 |
package.json 中 engines.node 为 >=20。日常用户通过 npx 安装时,npm 会按运行时 Node 版本拉取 better-sqlite3 的预编译二进制,一般开箱即用。
核心原则
better-sqlite3 是原生 C++ 模块,.node 文件必须与运行时的 Node 大版本 ABI 一致。因此:
npm install与node dist/index.js/ MCP 启动应使用同一个 Node 大版本切换 Node 大版本(如 22 → 24)后,需要重装或 rebuild native 依赖
常见错误:NODE_MODULE_VERSION 不匹配
启动 MCP 或跑测试时出现类似报错:
Error: The module '.../better_sqlite3.node' was compiled against a different Node.js version
using NODE_MODULE_VERSION 127. This version of Node.js requires NODE_MODULE_VERSION 137.说明 better-sqlite3 是在旧 Node 版本下安装的,按以下步骤修复:
# 克隆仓库本地开发时
npm rebuild better-sqlite3
# 若仍失败,彻底重装(Windows 上若报 EPERM/EBUSY,先关闭 Cursor 里占用的 MCP 进程)
rm -rf node_modules
npm installWindows PowerShell 等价命令:
Remove-Item -Recurse -Force node_modules
npm installWindows 上 prebuild 下载失败
若 npm install 时 better-sqlite3 无法下载预编译包,会 fallback 到 node-gyp 本地编译,需要:
Visual Studio Build Tools(勾选「使用 C++ 的桌面开发」)
或改用 WSL / Linux 环境开发
MCP 配置建议
普通用户(推荐,自动适配本机 Node):
{
"mcpServers": {
"apprentice-mcp": {
"command": "npx",
"args": ["-y", "apprentice-mcp"]
}
}
}本地开发(指向仓库编译产物):
{
"mcpServers": {
"apprentice-mcp": {
"command": "node",
"args": ["<你的仓库路径>/dist/index.js"]
}
}
}本地开发时修改源码后需先 npm run build;切换 Node 大版本后需 npm rebuild better-sqlite3 或重装 node_modules。
本地开发
nvm use # 或 fnm use — 对齐 .nvmrc(Node 22)
npm install
npm run dev # 用 tsx 直接运行 src/index.ts
npm test # 跑单元测试(vitest + 内存 SQLite)
npm run build # 编译到 dist/License
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/nancliu/apprentice-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server