A sophisticated Model Context Protocol (MCP) server implementation that enables AI assistants to intelligently interact with resume/CV data and handle email communications. The project combines a powerful backend MCP server with an elegant Next.js frontend playground for testing and demonstration.
This project implements an MCP server that provides two main capabilities:
- CV/Resume Intelligence: Parse, understand, and answer questions about CV content
- Email Communication: Send professional emails using the Resend API
The system is designed to showcase how MCP servers can bridge AI assistants with real-world data and services, making them more practical and useful.
- PDF Parsing: Extract structured data from PDF resumes
- Smart Questioning: Answer intelligent questions about education, skills, projects, and experience
- Context-Aware Responses: Understand the intent behind questions and provide relevant information
- Data Caching: JSON-based caching system for improved performance
- Professional Email Sending: Integration with Resend API for reliable email delivery
- Form Validation: Comprehensive validation using Zod schemas
- Error Handling: Graceful error handling with user-friendly messages
- Real-time Feedback: Live status updates during email sending
- Interactive Chat Interface: Conversational UI for CV questions
- Predefined Quick Questions: One-click access to common queries
- Real-time Email Form: Professional email composition interface
- Responsive Design: Optimized for desktop and mobile devices
- Beautiful UI: Modern design with Tailwind CSS and smooth animations
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
Key Technologies:
- Next.js 15.5.2 with App Router
- React 19 with modern hooks
- TypeScript for type safety
- Tailwind CSS for styling
- React Hook Form for form management
- Zod for validation
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
Key Technologies:
- Model Context Protocol SDK for MCP server implementation
- pdf-parse for PDF text extraction
- Resend API for email delivery
- Node.js with TypeScript
- Zod for runtime validation
- Node.js 18+
- npm or yarn
- Resend API Key (for email functionality)
-
Clone the repository
git clone https://github.com/adeeshperera/mcp-resume-assistant.git cd mcp-resume-assistant -
Install dependencies
npm install
-
Set up environment variables
cp .env.example .env.local
Edit
.env.localand add your Resend API key:RESEND_API_KEY=your_resend_api_key_here NEXT_PUBLIC_APP_URL=http://localhost:3000
-
Add your resume
Place your PDF resume in the
public/directory asadeesh_perera_resume.pdfor update the path insrc/server/tools/cv-chat.ts.
npm run devVisit http://localhost:3000 to access the playground interface.
npm run mcpnpm run mcp:devnpm run build
npm startThe project includes comprehensive test suites for both frontend and backend components.
npm testnpm run test:watchnpm test -- --coverageTest Files:
tests/cv-parser.test.ts- CV parsing and intelligence teststests/email-service.test.ts- Email service validation teststests/mcp-tools.test.ts- MCP tool functionality tests
POST - Ask questions about the CV
// Request
{
"question": "What skills does Adeesh have?"
}
// Response
{
"success": true,
"answer": "Here's information about skills:\nJava / Spring Boot, Spring JPA..."
}POST - Send emails
// 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"
}| Variable | Description | Required |
|---|---|---|
RESEND_API_KEY |
Resend API key for email functionality | Yes |
NEXT_PUBLIC_APP_URL |
Public URL of the application | No |
- Replace
public/adeesh_perera_resume.pdfwith your resume - Update the file path in
src/server/tools/cv-chat.tsif needed - The system will automatically extract and cache the CV data
Edit src/server/services/cv-parser.ts to customize:
- Section keywords for better extraction
- Response formatting
- Question interpretation logic
@modelcontextprotocol/sdk- MCP server implementationnext- React frameworkreact&react-dom- React librarytypescript- Type safetypdf-parse- PDF text extractionresend- Email servicezod- Runtime validationreact-hook-form- Form management
jest&ts-jest- Testing framework@types/*- TypeScript type definitionseslint- Code lintingtailwindcss- CSS frameworknodemon- Development auto-reload
- Model Context Protocol for the innovative MCP framework
- Resend for reliable email delivery
- Next.js for the excellent React framework
- Vercel for deployment platform
# 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