MCP简历助理
   
一个老练的 模型上下文协议(MCP)服务器 该实现使人工智能助手能够智能地与简历/履历数据交互并处理电子邮件通信。该项目将强大的后端MCP服务器与优雅的Next.js前端游乐场相结合,用于测试和演示。
🎯 概述
该项目实现了一个MCP服务器,该服务器提供两个主要功能:
- CV/简历情报:分析、理解和回答有关简历内容的问题
- 电子邮件通信:使用Resend API发送专业电子邮件
该系统旨在展示MCP服务器如何将AI助手与现实世界的数据和服务连接起来,使其更加实用和有用。
✨ 特性
🧠 CV智能
- PDF解析:从PDF简历中提取结构化数据
- 聪明提问:回答有关教育、技能、项目和经验的智能问题
- 上下文感知响应:了解问题背后的意图并提供相关信息
- 数据缓存:基于JSON的缓存系统可提高性能
📧 电子邮件功能
- 专业电子邮件发送:与Resend API集成,实现可靠的电子邮件传递
- 表单验证:使用Zod模式进行全面验证
- 错误处理:通过用户友好的消息进行优雅的错误处理
- 实时反馈:电子邮件发送过程中的实时状态更新
🎨 现代前端
- 交互式聊天界面:简历问题的对话式用户界面
- 预定义快速问题:一键访问常见查询
- 实时电子邮件表单:专业的电子邮件撰写界面
- 响应式设计:针对台式机和移动设备进行了优化
- 漂亮的UI:采用Tailwind CSS和流畅动画的现代设计
🏗️ 建筑
前端(src/app/)
src/app/
├── page.tsx # Main playground page
├── layout.tsx # Root layout component
├── globals.css # Global styles
├── components/
│ ├── ChatInterface.tsx # CV question chat interface
│ ├── EmailForm.tsx # Email sending form
│ └── Layout.tsx # Layout wrapper component
└── api/
├── mcp/route.ts # MCP API endpoints
└── email/route.ts # Email API endpoints关键技术:
- Next.js 15.5.2 使用App Router
- 反应19 配有现代挂钩
- TypeScript 用于类型安全
- 顺风CSS 用于造型
- React钩子形式 用于表单管理
- 萨德 用于验证
后端(src/server/)
src/server/
├── index.ts # MCP server entry point
├── services/
│ ├── cv-parser.ts # PDF parsing and CV intelligence
│ └── email-service.ts # Email service using Resend
├── tools/
│ ├── cv-chat.ts # CV question handling tool
│ └── email-sender.ts # Email sending tool
└── types/
└── index.ts # TypeScript type definitions关键技术:
- 模型上下文协议SDK 用于MCP服务器实现
- pdf解析 用于PDF文本提取
- 重新发送API 用于电子邮件传递
- Node.js 使用TypeScript
- 萨德 用于运行时验证
🚀 入门指南
先决条件
- Node.js 18+
- npm 或 纱线
- 重新发送API密钥 (用于电子邮件功能)
安装
- 克隆存储库
git clone https://github.com/adeeshperera/mcp-resume-assistant.git
cd mcp-resume-assistant- 安装依赖项
npm install- 设置环境变量
cp .env.example .env.local编辑 .env.local 并添加重新发送API密钥:
RESEND_API_KEY=your_resend_api_key_here
NEXT_PUBLIC_APP_URL=http://localhost:3000- 添加您的简历
将您的PDF简历放在 public/ 目录为 adeesh_perera_resume.pdf 或更新中的路径 src/server/tools/cv-chat.ts.
运行应用程序
前端开发服务器
npm run dev访问 http://localhost:3000 访问游乐场界面。
MCP服务器(独立)
npm run mcpMCP服务器(自动重新加载开发)
npm run mcp:dev生产大楼
npm run build
npm start🧪 测试
该项目包括前端和后端组件的全面测试套件。
运行所有测试
npm test在监视模式下运行测试
npm run test:watch测试覆盖率
npm test -- --coverage测试文件:
tests/cv-parser.test.ts-简历分析和智力测试tests/email-service.test.ts-电子邮件服务验证测试tests/mcp-tools.test.ts-MCP工具功能测试
📡 API终点
MCP API(/api/mcp)
发布 -询问有关简历的问题
// Request
{
"question": "What skills does Adeesh have?"
}
// Response
{
"success": true,
"answer": "Here's information about skills:\nJava / Spring Boot, Spring JPA..."
}电子邮件API(/api/email)
发布 -发送电子邮件
// Request
{
"recipient": "recipient@example.com",
"subject": "Hello from MCP Server",
"body": "This is a test email sent via the MCP Resume Assistant."
}
// Response
{
"success": true,
"message": "Email sent successfully",
"id": "email_id"
}🔧 配置
环境变量
| 变量 | 描述 | 必填 |
|---|---|---|
RESEND_API_KEY | 为电子邮件功能重新发送API密钥 | 是 |
NEXT_PUBLIC_APP_URL | 应用程序的公共URL | 否 |
定制
添加自己的简历
- 替换
public/adeesh_perera_resume.pdf附上你的简历 - 更新中的文件路径
src/server/tools/cv-chat.ts如有需要 - 系统将自动提取和缓存CV数据
修改CV解析逻辑
编辑 src/server/services/cv-parser.ts 自定义:
- 更好地提取部分关键字
- 响应格式
- 问题解释逻辑
📦 依赖项
核心依赖关系
@modelcontextprotocol/sdk-MCP服务器实现next-React框架react&react-dom-React库typescript-类型安全pdf-parse-PDF文本提取resend-电子邮件服务zod-运行时验证react-hook-form-表单管理
发展依赖性
jest&ts-jest-测试框架@types/*-TypeScript类型定义eslint-代码lintingtailwindcss-CSS框架nodemon-开发自动重新加载
🙏 致谢
______________________________________________________________________
🚀 快速启动命令
# Clone and setup
git clone https://github.com/adeeshperera/mcp-resume-assistant.git
cd mcp-resume-assistant
npm install
# Configure environment
cp .env.example .env.local
# Add your RESEND_API_KEY to .env.local
# Run development server
npm run dev
# Run MCP server
npm run mcp:dev
# Run tests
npm test