Skip to main content
Glama
HarindiNikeshala

MCP Resume Chat Server

README.md
# 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**

Maintenance

ActivityInactive
ResponsivenessNo issues