英语学习MCP服务器
使用Prisma、PostgreSQL和NestJS的英语学习平台模型上下文协议(MCP)服务器。
特性
- 词汇管理:使用越南语翻译搜索和管理英语词汇
- 语法课:通过示例访问结构化语法课程
- 考试系统:托业、雅思和其他英语能力测试
- 学习路径:针对不同技能水平的结构化学习之旅
- 进度跟踪:监控不同领域的用户学习进度
- 博客系统:教育内容和文章
- MCP集成:通过模型上下文协议集成AI助手
设置
先决条件
- Node.js(v18或更高版本)
- PostgreSQL数据库
- 已配置环境变量
安装
- 安装依赖项:
npm install- 设置环境变量(复制自
env.example):
cp env.example .env
# Edit .env with your database configuration- 设置数据库:
# Generate Prisma client
npm run prisma:generate
# Run database migrations
npm run prisma:migrate
# (Optional) Seed the database with sample data
npm run prisma:seed发展
- 启动开发服务器:
npm run dev - 生产建设:
npm run build - 运行测试:
npm test - 打开Prisma工作室:
npm run prisma:studio
数据库模式
该应用程序使用Prisma ORM和PostgreSQL,包括以下主要实体:
- 用户和角色:用户管理和基于角色的访问
- 词汇:带有越南语翻译和示例的英语单词
- 语法:带解释和例子的语法课
- 考试:测试问题和答案选项
- 学习路径:结构化学习之旅
- 博客:教育文章和内容
- 进度跟踪:用户学习进度和成就
MCP工具
词汇工具
- get_vocabulary_by_topic:按主题获取词汇
- get_vocabulary_topics:列出所有词汇主题
- 搜索_词汇:按英语或越南语关键字搜索词汇
学习内容
- get_grammar_lessons:按难度级别访问语法课程
- get_exams:获取考试问题和测试
- get_earning_paths:检索结构化学习路径
内容管理
- get_blog_post:访问教育博客文章
- get_user_progress:跟踪用户学习进度
建筑
- Prisma ORM:使用自动生成的客户端进行类型安全的数据库访问
- MCP层:通过模型上下文协议公开的工具
- NestJS:依赖注入和模块化架构
- PostgreSQL:结构化数据的关系数据库
- 雷迪斯:缓存层可提高性能
环境变量
所需的环境变量:
DATABASE_URL:PostgreSQL连接字符串JWT_SECRET:JWT身份验证的密钥REDIS_HOST:Redis服务器主机REDIS_PORT:Redis服务器端口
API终点
GET /mcp/status:服务器状态GET /mcp/info:服务器信息GET /mcp/tools:可用的MCP工具GET /mcp/resources:可用资源POST /mcp:MCP协议请求GET /mcp/stream:服务器发送的事件
使用示例
按主题获取词汇
// Get vocabulary from "Daily Life" topic
const vocabulary = await mcpClient.callTool('get_vocabulary_by_topic', {
topic_name: 'Daily Life',
difficulty_level: 'Easy',
limit: 10
});搜索词汇
// Search for words containing "hello"
const results = await mcpClient.callTool('search_vocabulary', {
keyword: 'hello',
limit: 20
});获取学习路径
// Get beginner learning paths
const paths = await mcpClient.callTool('get_learning_paths', {
target_level: 'Beginner',
limit: 5
});贡献
- 将新的数据库模型添加到
prisma/schema.prisma - 跑
npm run prisma:migrate创建迁移 - 在中创建新的MCP工具
src/mcp/ - 使用测试您的更改
npm test
测试
- 测试MCP服务器:
npm run test:mcp - 演示MCP功能:
npm run demo:mcp - 运行单元测试:
npm test
