MCP Resume Chat Server
A comprehensive Model Context Protocol (MCP) server application that can chat about your resume/CV and send email notifications. Perfect for SE interviews and showcasing MCP capabilities.
๐ Features
- Resume Chat: AI-powered chat interface that answers questions about your resume
- Email Notifications: Send email notifications through the MCP server
- Modern Frontend: Beautiful Next.js interface with dark mode support
- Well-Architected: Clean folder structure with TypeScript support
- No Database Required: Uses JSON files for data storage
๐ Project Structure
mcp-server/
โโโ app/ # Next.js frontend
โ โโโ components/ # React components
โ โ โโโ ChatInterface.tsx # Resume chat interface
โ โ โโโ EmailForm.tsx # Email notification form
โ โ โโโ ResumeViewer.tsx # Resume data viewer
โ โโโ api/ # API routes
โ โ โโโ resume/ # Resume data endpoint
โ โโโ page.tsx # Main application page
โโโ mcp-server/ # MCP server implementation
โ โโโ index.js # Main MCP server (JavaScript)
โ โโโ index.ts # Main MCP server (TypeScript)
โโโ services/ # Business logic services
โ โโโ resumeParser.js/ts # Resume data parsing
โ โโโ resumeChatService.js/ts # AI chat functionality
โ โโโ emailService.js/ts # Email sending service
โโโ config/ # Configuration files
โ โโโ email.ts # Email configuration
โ โโโ mcp.ts # MCP server configuration
โโโ data/ # Data storage
โ โโโ resume.json # Sample resume data
โโโ types/ # TypeScript type definitions
โ โโโ index.ts # Core types and interfaces
โโโ lib/ # Utility libraries
๐ ๏ธ Installation
Clone the repository
git clone <your-repo-url> cd mcp-serverInstall dependencies
npm installSet up environment variablesCreate a
.env.localfile in the root directory:# OpenAI API Key (required for resume chat) OPENAI_API_KEY=your_openai_api_key_here # Email Configuration (optional, for real email sending) SMTP_HOST=smtp.gmail.com SMTP_PORT=587 SMTP_SECURE=false [email protected] SMTP_PASS=your_app_passwordUpdate resume dataEdit
data/resume.jsonwith your actual resume information.
๐ Running the Application
Start the Next.js Frontend
npm run dev
Open http://localhost:3000 to view the application.
Start the MCP Server
# Using JavaScript version
npm run mcp
# Using TypeScript version (requires compilation)
npm run dev:mcp
๐ Usage
1. Resume Chat
- Navigate to the "Resume Chat" tab
- Ask questions about your resume like:
- "What is my current position?"
- "What companies have I worked for?"
- "What are my main skills?"
- "What was my last role?"
2. Email Notifications
- Navigate to the "Email Notifications" tab
- Use the quick templates or create custom emails
- Configure SMTP settings for real email sending
3. Resume Viewer
- Navigate to the "View Resume" tab
- Browse through different sections of your resume
- View formatted resume data
๐ง MCP Server Tools
The MCP server exposes two main tools:
1. resume_chat
Answers questions about resume/CV information.
Parameters:
question(string, required): The question to ask about the resumecontext(string, optional): Additional context for the question
Example:
{
"name": "resume_chat",
"arguments": {
"question": "What is my current position?",
"context": "I'm preparing for an interview"
}
}
2. send_email
Sends email notifications.
Parameters:
recipient(string, required): Email address of the recipientsubject(string, required): Subject of the emailbody(string, required): Body content of the emailfrom(string, optional): Sender email address
Example:
{
"name": "send_email",
"arguments": {
"recipient": "[email protected]",
"subject": "Interview Invitation",
"body": "Thank you for your application...",
"from": "[email protected]"
}
}
๐ฏ Interview Demo Script
1. Show the Architecture
- Explain the clean folder structure
- Highlight separation of concerns (services, config, types)
- Show TypeScript usage for type safety
2. Demonstrate MCP Server
- Start the MCP server:
npm run mcp - Show the tools it exposes
- Explain how it integrates with AI for resume chat
3. Frontend Features
- Show the modern UI with tabs
- Demonstrate resume chat functionality
- Show email notification form
- Display resume viewer with different sections
4. Technical Highlights
- No Database: Uses JSON files for simplicity
- TypeScript: Full type safety throughout
- Modern Stack: Next.js 15, React 19, Tailwind CSS
- MCP Integration: Proper Model Context Protocol implementation
- Error Handling: Comprehensive error handling and user feedback
๐ง Configuration
Email Setup (Optional)
To enable real email sending:
Gmail Setup:
- Enable 2-factor authentication
- Generate an app password
- Use the app password in
SMTP_PASS
Other Providers:
- Update
SMTP_HOST,SMTP_PORT, andSMTP_SECUREaccordingly - Use appropriate authentication credentials
- Update
Resume Data
Update data/resume.json with your information:
- Personal information
- Work experience
- Education
- Skills
- Projects
- Certifications
๐ Deployment
Frontend (Vercel)
npm run build
# Deploy to Vercel or your preferred platform
MCP Server
The MCP server can be deployed as a standalone Node.js application or integrated into existing systems.
๐ค Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
๐ License
This project is licensed under the MIT License.
๐ Troubleshooting
Common Issues
MCP Server not starting:
- Check if all dependencies are installed
- Verify Node.js version compatibility
- Check console for error messages
Resume chat not working:
- Verify OpenAI API key is set
- Check if resume data is loaded correctly
- Ensure MCP server is running
Email sending fails:
- Verify SMTP configuration
- Check email provider settings
- Ensure app passwords are used for Gmail
Getting Help
- Check the console logs for detailed error messages
- Verify all environment variables are set correctly
- Ensure all dependencies are installed
Built with โค๏ธ for SE interviews and MCP demonstrations