🧠 学习教练MCP服务器
一个个性化的人工智能学习助手,使用克劳德的用户记忆+MCP生成超个性化的路线图,而不会损害记忆隐私。
使用MCP Python SDK v1.26.0构建|作为Claude桌面MCP服务器运行
______________________________________________________________________
核心思想
┌──────────────────────────────────────────────────────────────────┐
│ CLAUDE DESKTOP │
│ │
│ ┌──────────────────┐ ┌──────────────────────────────┐ │
│ │ Claude's Native │ │ Learning Coach MCP Server │ │
│ │ User Memory │ │ │ │
│ │ │ │ Tools: │ │
│ │ • Background │ ──(1)──▶│ • set_learning_goal │ │
│ │ • Skills │ Claude │ • generate_roadmap │ │
│ │ • Interests │ reads & │ • log_learning_session │ │
│ │ • Preferences │ passes │ • get_progress_dashboard │ │
│ │ • Past projects │ context │ • get_weekly_summary │ │
│ │ │ │ • adapt_roadmap │ │
│ │ ❌ NOT modified │ │ │ │
│ │ by this server │ │ Local Storage: │ │
│ └──────────────────┘ │ ~/.learning-coach/ │ │
│ │ ├── learner_profile.json │ │
│ │ ├── roadmap.json │ │
│ │ ├── progress_log.json │ │
│ │ └── topic_graph.json │ │
│ └──────────────────────────────┘ │
└──────────────────────────────────────────────────────────────────┘内存隐私是如何工作的:
- Claude会阅读自己关于你的用户记忆(背景、技能等)
- Claude总结相关上下文并将其传递给路线图生成器
- MCP服务器仅将学习特定数据存储在单独的本地目录中
- 克劳德的用户记忆是 从未读过或写过 通过MCP服务器
______________________________________________________________________
特性
🎯 路线图生成
- 根据您的背景定制多阶段路线图
- 每个阶段的具体主题、里程碑、资源和项目
- 根据进展和不断变化的需求进行调整
📊 进度跟踪
- 记录学习会话的主题、持续时间和信心
- 每周总结,包括小时数、主题和拦截器
- 每日连续追踪以获得动力
🧬 主题掌握图
- 随着时间的推移,跟踪每个主题的置信度(加权最近的会话更高)
- 识别需要注意的薄弱环节
- 显示出您可以建立的坚实基础
📈 智能仪表板
- 总体速度与目标小时数
- 当前阶段和周指示器
- 基于您的数据,人工智能生成推荐
🖥️ MCP应用程序用户界面
- 用于路线图和仪表板视图的交互式主机内UI
- 支持MCP客户端在调用关键工具时自动使用
- 主机主题感知(使用MCP Apps风格的令牌和安全区域)
🔄 自适应学习
- 记录路线图的调整及其原因
- 完整的变化历史供反思
- 克劳德建议在每周入住时进行调整
______________________________________________________________________
快速开始
1.安装
# Clone or create the project
git clone learning-coach-mcp
cd learning-coach-mcp
# Install dependencies
uv sync2.本地测试
# Run the test client (exercises all tools)
uv run test_client.py
# Or test with MCP Inspector
uv run server.py http # Start HTTP server
# Then: npx @modelcontextprotocol/inspector
# Connect to: http://localhost:8000/mcp2.5构建MCP UI(可选但推荐)
交互式MCP应用程序UI由 ui/dist/mcp-app.html.\ 如果没有构建,服务器就会退回到一个简单的HTML消息。
cd ui
npm install
npm run build构建后,服务器公开UI资源:
ui://learning-coach/mcp-app.html
3.连接到克劳德桌面
编辑您的Claude Desktop配置:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json 窗户: %APPDATA%\Claude\claude_desktop_config.json Linux: ~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"learning-coach": {
"command": "uv",
"args": [
"--directory", "/absolute/path/to/learning-coach-mcp",
"run", "server.py", "stdio"
]
}
}
}重新启动克劳德桌面 编辑后。
______________________________________________________________________
用法--会话流
🚀 首次设置
你: “我想学习人工智能代理开发。你能为我制定一个学习路线图吗?” 克劳德: *(读取它对你的记忆,调用set_learning_goal,然后用你的上下文生成e_route,用update_roadmap_phase填充每个阶段)* “根据你使用Python和FastAPI的经验,这是你的10周路线图……”
📝 学习结束后
你: “我刚刚花了45分钟学习RAG架构” 克劳德: *(调用log_learning_session,包括主题、持续时间、摘要、置信度)* “已登录!您本周参加了3次会议。您对RAG的信心为3/5——想更深入地了解检索策略吗?”
📅 每周入住
你: “我们每周登记一次吧” 克劳德: *(调用get_weekly_summary、get_progress_dashboard、get_loadmap)* “第3周总结:4节课,3.5小时。你稍微落后于每周12小时的目标。MCP基础很强,但工具调用需要更多的练习。本周,重点是……”
🔄 调整计划
你: “我发现ML的数学先决条件比预期的要难” 克劳德: *(调用adapt_roadmap,然后更新受影响的阶段)* “我已经记录了这个改编并调整了你的路线图。在我们进入高级机器学习主题之前,我在第4-5周添加了一个‘数学基础’冲刺…”
______________________________________________________________________
工具参考
| 工具 | 目的 |
|---|---|
set_learning_goal | 设定/更新你的学习目标、目标角色和时间表 |
get_learner_profile | 检索您当前的个人资料和目标 |
generate_roadmap | 创建个性化的多阶段路线图 |
update_roadmap_phase | 填写每个阶段的具体主题、里程碑和资源 |
get_roadmap | 获取完整的进展路线图 |
log_learning_session | 记录学习会话(主题、持续时间、信心) |
get_weekly_summary | 会议和时间的周级总结 |
get_progress_dashboard | 完整的仪表板,包括速度、条纹和建议 |
get_topic_mastery | 所有有信心水平和投入时间的主题 |
adapt_roadmap | 记录并应用路线图更改 |
资源(自动可用)
| URI | 内容 |
|---|---|
learning://profile | 学员简介和目标 |
learning://roadmap | 完整路线图JSON |
learning://progress | 所有会话日志 |
learning://topics | 主题掌握图 |
ui://learning-coach/mcp-app.html | MCP应用程序HTML(交互式路线图/仪表板UI) |
learning://this-week | 本周快速总结 |
MCP UI渲染
以下工具启用了UI,并在支持主机中呈现MCP应用程序:
get_roadmapget_progress_dashboard
两人都回来了 structuredContent 加一个 ui 资源引用,允许主机显示丰富的交互式视图,而不是纯文本输出。
提示(可重复使用的模板)
| 提示 | 用例 |
|---|---|
get_learning_context | 指导Claude从内存中收集用户上下文 |
weekly_checkin | 结构化的每周审查流程 |
end_of_session_log | 学习对话后快速记录 |
personalise_roadmap | 完整的路线图生成工作流程 |
______________________________________________________________________
数据存储
所有数据都存储在本地 ~/.learning-coach/ (可通过以下方式配置 LEARNING_COACH_DATA env 是:
~/.learning-coach/
├── learner_profile.json # Goal, role, schedule
├── roadmap.json # Full roadmap with phases
├── progress_log.json # All session entries
└── topic_graph.json # Topic mastery data数据是纯JSON,您可以手动检查、编辑或备份它。
______________________________________________________________________
架构决策
为什么不直接阅读克劳德的记忆?
- 隐私:Claude的用户记忆可能包含与学习无关的个人信息
- 关注点分离:学习状态≠身份状态
- 不存在API:MCP服务器无法访问克劳德的内部存储系统
- 设计:克劳德扮演 *经纪人* --它了解用户并将相关上下文转换为学习系统
为什么是本地JSON而不是数据库?
- 零依赖:没有SQLite,没有Postgres,无需安装
- 人类可读:您可以随时打开和检查您的数据
- 便携的:复制文件夹以移动您的学习历史记录
- 足够的:对于单用户学习助手来说,JSON非常快
为什么选择克劳德桌面的stdio传输?
Claude Desktop使用stdio与本地MCP服务器通信。服务器还支持Streamable HTTP,用于使用MCP Inspector进行测试或远程部署。
______________________________________________________________________
扩展此
在此基础上构建的想法:
- 间隔重复:使用主题掌握图安排复习课程
- 资源抓取:添加获取和总结学习资源的工具
- 日历集成:连接到谷歌日历MCP以阻止学习时间
- LLM驱动的摘要:从工具中调用Anthropic API以进行更丰富的分析
- 多学习者支持:为基于队列的部署添加user_id参数
- 导出到Notion/黑曜石:添加将路线图导出为markdown的工具
______________________________________________________________________
许可证
麻省理工学院
