Learning System MCP Server
Learning System - AI-Powered Learning Assistant
AI驱动的学习成长系统 - 基于MCP 2026-07-28协议的Multi-Agent知识管理平台

项目概述
这是一个面向用户的学习应用,专为技术学习和面试准备设计。通过完整实现MCP 2026-07-28协议(MRTR、Tasks、Apps、Cache),结合多智能体架构和知识图谱,提供智能化、上下文感知的学习辅助。
核心价值
知识图谱可视化 - D3.js交互式图谱,探索概念间的关系
多智能体协作 - 6个专职Agent通过事件总线协同工作
MCP协议完整实现 - MRTR二次确认、长任务管理、UI组件返回、三层缓存
技能驱动工作流 - LLM基于Markdown技能文档动态编排原子工具
语义搜索 - PostgreSQL + pgvector实现向量检索
实时通信 - WebSocket双向聊天,延迟<100ms
为什么选择MCP?
MCP(Model Context Protocol)解决了AI应用的三大核心问题:
1. 上下文隔离
传统方式分析50个文件会污染主对话上下文10MB+,MCP通过Sub-Agent模式实现上下文隔离:
主Agent(干净上下文)
-> 启动Sub-Agent(分析50个文件)
-> 返回JSON结果(10KB)
-> Sub-Agent上下文销毁2. AI-First架构
核心理念:服务端只提供原子能力,不包含业务逻辑
# 错误方式:硬编码工作流
@server.tool("track_project")
def track_project(path):
framework = detect_framework() # 步骤1
structure = scan_structure() # 步骤2
# 工作流固定在代码中
# 正确方式:原子化工具 + Skill文档
@server.tool("project/detect_framework") # 只做框架检测
@server.tool("project/scan_structure") # 只做结构扫描
# 工作流由Skill markdown定义,LLM动态编排优势:
工作流与实现分离(修改Skill文档即可调整流程)
可复用ECC生态的Skills和MCP Servers
LLM根据用户需求灵活组合工具
3. MCP 2026四大特性
MRTR(多轮往返请求) - 危险操作二次确认(JWT + Nonce防重放)
Tasks(长任务管理) - 5-10分钟异步任务,支持进度追踪和取消
Apps(UI组件返回) - 服务端返回可视化组件(知识图谱、分析报告)
Cache(三层缓存) - public/user/session三级缓存,命中率60%+
技术架构
多智能体系统
6个专职Agent通过事件驱动总线协作:
Agent | 职责 | 触发条件 |
SessionAnalyzer | 从对话中提取知识点 | 会话结束、空闲60秒 |
MemoryManager | 持久化到PostgreSQL知识图谱 | 知识保存事件 |
LearningCoach | 生成间隔重复复习计划 | 会话结束、每日检查 |
ProjectAgent | 追踪项目经验用于面试 | 项目分析请求 |
InterviewAgent | 生成STAR格式面试材料 | 面试准备请求 |
ProjectAnalyzer | 深度项目分析(Sub-Agent模式) | 工具调用 |
知识图谱
基于PostgreSQL + pgvector实现:
实体(Entities) - 概念、技术、项目,带向量embeddings
关系(Relations) - 语义关系(uses、implements、depends-on)
多图谱支持 - 前端、后端、面试准备独立图谱
语义搜索 - pgvector余弦相似度 + DeepSeek embeddings
技术栈
前端
React 18.2 + TypeScript 5.2
Vite 5.0(构建工具)
Tailwind CSS 3.3(样式)
Zustand 4.4(状态管理)
D3.js 7.8(知识图谱可视化)
Recharts 2.10(统计图表)
后端
Python 3.x
FastMCP 3.4.5(MCP协议实现)
FastAPI 0.104(HTTP/WebSocket服务)
asyncpg 0.29(PostgreSQL驱动)
Redis 5.0(缓存层)
DeepSeek API(LLM聊天 + embeddings)
数据库
PostgreSQL with pgvector扩展
Redis三层缓存
项目结构
learning-system/
├── client/
│ ├── backend/ # Python WebSocket服务器
│ │ ├── websocket_server.py # WebSocket入口
│ │ ├── mcp_http_client.py # MCP HTTP客户端
│ │ ├── skill_executor.py # Skill执行引擎
│ │ ├── state.py # 会话状态管理
│ │ └── task_manager.py # 长任务管理
│ └── frontend/ # React + TypeScript UI
│ └── src/
│ ├── components/ # ChatInterface、KnowledgeGraphView等
│ ├── services/ # API客户端
│ └── stores/ # Zustand状态
├── mcp-server/ # MCP服务器实现
│ ├── server.py # 主服务器(32个工具)
│ ├── http_server.py # HTTP传输层(端口8080)
│ ├── config.py # 配置
│ ├── src/
│ │ ├── agents/ # 6个专职Agent
│ │ ├── protocol/ # MCP协议层(MRTR、Tasks、Apps)
│ │ ├── storage/ # PostgreSQL + Memory MCP适配器
│ │ ├── tools/ # MCP工具实现
│ │ ├── cache/ # Redis缓存装饰器
│ │ └── llm/ # DeepSeek LLM集成
│ ├── migrations/ # 数据库Schema
│ └── skills/ # Skill定义(.md)
├── docs/ # 文档
│ ├── mcp-features-mapping.md # MCP 2026特性映射
│ ├── ARCHITECTURE_CORRECTION.md # 架构决策
│ ├── learning-system-optimization-plan.md # ECC启发设计
│ └── system-completion-plan.md # 实现路线图
└── imgs/ # 截图快速开始
前置要求
Python 3.9+
Node.js 18+
PostgreSQL 14+ with pgvector扩展
Redis 5+
安装
克隆仓库
git clone <repository-url>
cd learning-system后端设置
cd mcp-server
pip install -r requirements.txt
# 配置环境变量
cp .env.example .env
# 编辑.env,配置PostgreSQL、Redis、DeepSeek API密钥
# 运行数据库迁移
psql -U postgres -d learning_system -f migrations/001_add_knowledge_graphs.sql前端设置
cd client/frontend
npm install
# 配置环境变量
cp .env.example .env
# 编辑.env,配置WebSocket服务器URL启动服务
终端1 - MCP服务器:
cd mcp-server
python http_server.py
# 运行在 http://localhost:8080终端2 - WebSocket后端:
cd client/backend
python websocket_server.py
# 运行在 ws://localhost:8765终端3 - 前端:
cd client/frontend
npm run dev
# 运行在 http://localhost:5173快速启动脚本
# 使用提供的批处理脚本(Windows)
cd client
start.bat使用方式
聊天界面
交互式提问和学习:
你:"MCP 2026的核心特性是什么?"
AI:"MCP 2026有四大核心特性:MRTR用于多轮确认..."每次会话后,知识点自动提取并保存到图谱。
知识图谱可视化
查看 - 点击"显示知识图谱"可视化关系
交互 - 拖动节点、缩放/平移、点击查看详情
搜索 - 双击节点触发语义搜索
项目追踪
追踪项目用于面试准备:
你:"分析E:/Desktop/learning-system项目"
AI:[使用Sub-Agent运行深度分析,保存到知识图谱]系统提取:
技术栈(FastAPI、PostgreSQL、React)
框架模式
面试技术亮点
面试准备
生成STAR格式材料:
你:"为learning-system项目准备面试材料"
AI:[生成项目介绍、技术亮点、常见问题]MCP工具(32个可用)
知识管理
save_knowledge- 保存提取的知识点search_knowledge- 使用embeddings语义搜索get_knowledge_graph- 通过节点名检索图谱ui_knowledge_graph- 返回可视化UI组件delete_knowledge- 删除节点(需MRTR确认)
项目分析
track_project- 追踪项目用于面试analyze_project_deep- 深度分析(长任务,5-10分钟)delete_project- 从图谱移除项目
学习
analyze_session- 从对话提取知识explore_technology- 深入研究技术主题research_technology_deep- 全面研究(长任务)
文件操作
read_file、write_file、list_directory、search_files、get_file_info
系统
get_cache_stats、invalidate_cache- 缓存管理tasks/get、tasks/list、tasks/cancel- 长任务控制
Skills系统
Skills以markdown格式定义工作流,LLM读取Skill并动态编排工具调用。
可用Skills:
codebase-onboarding.md- 分析新代码库interview-prep.md- 生成面试材料tech-deep-dive.md- 6阶段学习路径summarize-knowledge.md- 提取关键概念summarize.md- 通用总结
Skills存储在mcp-server/skills/,运行时加载。
从ECC学到的设计理念
AI-First架构 - 服务端提供原子工具,工作流用markdown定义
Sub-Agent模式 - 在独立Agent中隔离上下文密集操作
事件驱动多Agent - 解耦的Agent通过事件总线通信
Skill系统 - LLM编排的可复用工作流定义
MCP协议 - AI-工具通信的标准化接口
面试谈资要点
讨论此项目时的技术亮点:
技术特色:
实现完整MCP 2026协议(MRTR、Tasks、Apps、Cache)
事件驱动的多智能体架构
知识图谱 + 语义搜索(PostgreSQL + pgvector)
Sub-Agent模式实现上下文隔离
三层缓存策略(命中率60%+)
为什么用MCP? "MCP解决了AI应用的上下文污染问题。传统方式将用户对话和文件分析混在一起,导致上下文不可读。MCP通过Sub-Agent隔离分析,返回干净的JSON结果。"
为什么用多Agent? "每个Agent单一职责(SessionAnalyzer提取知识、MemoryManager持久化、LearningCoach生成复习计划)。它们通过事件通信,添加新Agent无需修改现有Agent。"
为什么用知识图谱? "支持基于关系的学习。准备面试时,我可以查询'learning-system使用了哪些技术?',得到FastAPI、PostgreSQL、MCP及其关系,而不是扁平列表。"
开发路线图
已完成(INT-1到INT-4)
PostgreSQL知识图谱集成
32个工具的MCP服务器
多Agent事件总线
WebSocket实时通信
D3.js图谱可视化
Skill执行引擎
进行中
知识图谱视觉增强(配色方案、节点大小)
统一设计令牌的设计系统
500+节点性能优化(WebGL目标)
计划中
高级图谱交互(右键菜单、多选)
侧边栏详情面板
完整interview-prep和tech-deep-dive工作流
前端动画系统
性能监控仪表板
跨页面刷新的会话持久化
配置
MCP服务器(mcp-server/config.py)
POSTGRES_HOST = "localhost"
POSTGRES_DB = "learning_system"
REDIS_HOST = "localhost"
DEEPSEEK_API_KEY = "your-api-key"
HTTP_SERVER_PORT = 8080前端(client/frontend/.env)
VITE_WEBSOCKET_URL=ws://localhost:8765许可证
MIT License - 详见LICENSE文件
致谢
设计模式灵感来自ECC(Embodied Coding Coach)生态系统
MCP协议规范来自Anthropic
知识图谱概念来自Memory MCP
构建技术: FastMCP, FastAPI, React, PostgreSQL, D3.js, DeepSeek API
开发状态: 🟢 生产就绪(核心功能完成)
面试重点: MCP协议实现、多Agent架构、知识图谱语义搜索