Skip to main content
Glama
zsc140217

Learning System MCP Server

by zsc140217

Learning System - AI-Powered Learning Assistant

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

System Architecture

项目概述

这是一个面向用户的学习应用,专为技术学习面试准备设计。通过完整实现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+

安装

  1. 克隆仓库

git clone <repository-url>
cd learning-system
  1. 后端设置

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
  1. 前端设置

cd client/frontend
npm install

# 配置环境变量
cp .env.example .env
# 编辑.env,配置WebSocket服务器URL
  1. 启动服务

终端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_filewrite_filelist_directorysearch_filesget_file_info

系统

  • get_cache_statsinvalidate_cache - 缓存管理

  • tasks/gettasks/listtasks/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学到的设计理念

  1. AI-First架构 - 服务端提供原子工具,工作流用markdown定义

  2. Sub-Agent模式 - 在独立Agent中隔离上下文密集操作

  3. 事件驱动多Agent - 解耦的Agent通过事件总线通信

  4. Skill系统 - LLM编排的可复用工作流定义

  5. 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架构、知识图谱语义搜索