README.md•7.18 kB
# 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
1. **Clone the repository**
```bash
git clone <your-repo-url>
cd mcp-server
```
2. **Install dependencies**
```bash
npm install
```
3. **Set up environment variables**
Create a `.env.local` file in the root directory:
```env
# 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
SMTP_USER=your_email@gmail.com
SMTP_PASS=your_app_password
```
4. **Update resume data**
Edit `data/resume.json` with your actual resume information.
## 🚀 Running the Application
### Start the Next.js Frontend
```bash
npm run dev
```
Open [http://localhost:3000](http://localhost:3000) to view the application.
### Start the MCP Server
```bash
# 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 resume
- `context` (string, optional): Additional context for the question
**Example:**
```json
{
"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 recipient
- `subject` (string, required): Subject of the email
- `body` (string, required): Body content of the email
- `from` (string, optional): Sender email address
**Example:**
```json
{
"name": "send_email",
"arguments": {
"recipient": "recipient@example.com",
"subject": "Interview Invitation",
"body": "Thank you for your application...",
"from": "sender@example.com"
}
}
```
## 🎯 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:
1. **Gmail Setup:**
- Enable 2-factor authentication
- Generate an app password
- Use the app password in `SMTP_PASS`
2. **Other Providers:**
- Update `SMTP_HOST`, `SMTP_PORT`, and `SMTP_SECURE` accordingly
- Use appropriate authentication credentials
### Resume Data
Update `data/resume.json` with your information:
- Personal information
- Work experience
- Education
- Skills
- Projects
- Certifications
## 🚀 Deployment
### Frontend (Vercel)
```bash
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
1. Fork the repository
2. Create a feature branch
3. Make your changes
4. Add tests if applicable
5. Submit a pull request
## 📄 License
This project is licensed under the MIT License.
## 🆘 Troubleshooting
### Common Issues
1. **MCP Server not starting:**
- Check if all dependencies are installed
- Verify Node.js version compatibility
- Check console for error messages
2. **Resume chat not working:**
- Verify OpenAI API key is set
- Check if resume data is loaded correctly
- Ensure MCP server is running
3. **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**