个性化学习路线生成服务器

一个基于Claude用户记忆和MCP技术的个性化AI学习助手,通过本地存储生成和调整学习路线,同时保护用户隐私。

  • by Siddhant-Goswami
  • Python
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 Siddhant-Goswami/100x-roadmap-mcp

使用说明

🧠 学习教练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       │ │
│                                └──────────────────────────────┘ │
└──────────────────────────────────────────────────────────────────┘

内存隐私是如何工作的:

  1. Claude会阅读自己关于你的用户记忆(背景、技能等)
  2. Claude总结相关上下文并将其传递给路线图生成器
  3. MCP服务器仅将学习特定数据存储在单独的本地目录中
  4. 克劳德的用户记忆是 从未读过或写过 通过MCP服务器

特性

🎯 路线图生成

  • 根据您的背景定制多阶段路线图
  • 每个阶段的具体主题、里程碑、资源和项目
  • 根据进展和不断变化的需求进行调整

📊 进度跟踪

  • 记录学习会话的主题、持续时间和信心
  • 每周总结,包括小时数、主题和拦截器
  • 每日连续追踪以获得动力

🧬 主题掌握图

  • 随着时间的推移,跟踪每个主题的置信度(加权最近的会话更高)
  • 识别需要注意的薄弱环节
  • 显示出您可以建立的坚实基础

📈 智能仪表板

  • 总体速度与目标小时数
  • 当前阶段和周指示器
  • 基于您的数据,人工智能生成推荐

🖥️ MCP应用程序用户界面

  • 用于路线图和仪表板视图的交互式主机内UI
  • 支持MCP客户端在调用关键工具时自动使用
  • 主机主题感知(使用MCP Apps风格的令牌和安全区域)

🔄 自适应学习

  • 记录路线图的调整及其原因
  • 完整的变化历史供反思
  • 克劳德建议在每周入住时进行调整

快速开始

1.安装

# Clone or create the project
git clone <your-repo> learning-coach-mcp
cd learning-coach-mcp

# Install dependencies
uv sync

2.本地测试

# 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/mcp

2.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_roadmap
  • get_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,您可以手动检查、编辑或备份它。


架构决策

为什么不直接阅读克劳德的记忆?

  1. 隐私:Claude的用户记忆可能包含与学习无关的个人信息
  2. 关注点分离:学习状态≠身份状态
  3. 不存在API:MCP服务器无法访问克劳德的内部存储系统
  4. 设计:克劳德扮演 经纪人 --它了解用户并将相关上下文转换为学习系统

为什么是本地JSON而不是数据库?

  1. 零依赖:没有SQLite,没有Postgres,无需安装
  2. 人类可读:您可以随时打开和检查您的数据
  3. 便携的:复制文件夹以移动您的学习历史记录
  4. 足够的:对于单用户学习助手来说,JSON非常快

为什么选择克劳德桌面的stdio传输?

Claude Desktop使用stdio与本地MCP服务器通信。服务器还支持Streamable HTTP,用于使用MCP Inspector进行测试或远程部署。


扩展此

在此基础上构建的想法:

  • 间隔重复:使用主题掌握图安排复习课程
  • 资源抓取:添加获取和总结学习资源的工具
  • 日历集成:连接到谷歌日历MCP以阻止学习时间
  • LLM驱动的摘要:从工具中调用Anthropic API以进行更丰富的分析
  • 多学习者支持:为基于队列的部署添加user_id参数
  • 导出到Notion/黑曜石:添加将路线图导出为markdown的工具

许可证

麻省理工学院