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**