# Senior Developer Job Description MCP Server
An MCP (Model Context Protocol) server that helps you write compelling job descriptions for senior developers. This server provides hiring guidelines, a comprehensive discovery checklist, and an AI-powered prompt to refine your job descriptions.
## What This MCP Provides
### Resources
1. **Senior Developer Hiring Guide** (`hiring-guide://senior-developer`)
- Best practices for attracting and hiring senior developers
- Five key principles: Define, Match Channel, Pitch, Vet, Close
- Insights on what senior developers care about
2. **Recruiting Discovery Checklist** (`checklist://recruiting-discovery`)
- Comprehensive checklist covering all aspects of a position
- Topics: Business, Team, Requirements, Roadmap, Salary & Benefits
- Ensures you can answer all candidate questions
### Prompts
1. **Refine Job Description** (`refine-job-description`)
- Reviews your job description against best practices
- Identifies missing information
- Generates clarifying questions to create a complete profile
- **Argument**: `job_info` - Your current job description or position info
## Installation & Setup
### Prerequisites
- Node.js (v18 or higher)
- npm
- Vercel account (optional, for remote deployment)
### Build the Server
```bash
npm install
npm run build
```
This will compile the TypeScript code to the `build/` directory.
## Deployment Options
This MCP server supports two deployment methods:
### Option 1: Local (stdio transport)
Run locally on your machine for use with Claude Desktop. Best for development and personal use.
### Option 2: Remote (SSE transport via Next.js)
Deploy as a Next.js application to Laravel Forge, Digital Ocean, or any Node.js hosting platform. Best for production use with Manus, Claude Code, and sharing across teams.
## Usage with Claude Desktop (Local stdio)
To use this MCP server with Claude Desktop or Claude Code, add it to your MCP settings configuration:
### For Claude Desktop
Edit your Claude Desktop config file:
- macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
- Windows: `%APPDATA%/Claude/claude_desktop_config.json`
Add the following to the `mcpServers` section:
```json
{
"mcpServers": {
"senior-dev-job-description": {
"command": "node",
"args": ["/absolute/path/to/mcptest/build/index.js"]
}
}
}
```
Replace `/absolute/path/to/mcptest` with the actual path to this project.
### For Claude Code CLI
Add to your Claude Code MCP settings file (`~/.config/claude/mcp_settings.json`):
```json
{
"mcpServers": {
"senior-dev-job-description": {
"command": "node",
"args": ["/absolute/path/to/mcptest/build/index.js"]
}
}
}
```
### For Manus (Local)
Follow Manus documentation for adding MCP servers, using the same command structure:
- **Command**: `node`
- **Args**: `["/absolute/path/to/mcptest/build/index.js"]`
## Remote Deployment to Laravel Forge (Next.js)
Deploy this MCP server as a Next.js application to Laravel Forge or any Node.js hosting platform.
### Prerequisites
- Laravel Forge account
- A server provisioned on Forge (DigitalOcean, AWS, etc.)
- Git repository (GitHub, GitLab, or Bitbucket)
### Step 1: Push to Git Repository
```bash
git add .
git commit -m "Setup Next.js MCP server"
git push origin main
```
### Step 2: Create Site in Laravel Forge
1. Log into Laravel Forge
2. Select your server
3. Click "New Site"
4. Configure:
- **Root Domain**: `your-domain.com` (or subdomain like `mcp.your-domain.com`)
- **Project Type**: Select **"Node.js"**
- **Web Directory**: `/public` (or leave default)
### Step 3: Install Repository
1. After site creation, go to the site's "App" tab
2. Click "Install Repository"
3. Select your Git provider and repository
4. Branch: `main` (or your default branch)
### Step 4: Configure Build & Deployment
In the "App" tab, update the deployment script:
```bash
cd /home/forge/your-domain.com
git pull origin main
npm install
npm run build
npm run start
```
Set the **Port** to `3000` (or whatever port Next.js uses)
### Step 5: Environment Variables
In Forge's "Environment" tab, ensure you have:
```
NODE_ENV=production
PORT=3000
```
### Step 6: Deploy
Click "Deploy Now" in Forge. Your MCP server will be available at `https://your-domain.com`
### Step 7: Configure MCP Clients
#### For Manus
Edit your Manus config file (`~/.manus/config.json`):
```json
{
"mcpServers": {
"senior-dev-job-description": {
"url": "https://your-domain.com/api/sse",
"transport": "sse"
}
}
}
```
#### For Claude Code
Add to your project's MCP configuration:
```json
{
"mcpServers": {
"senior-dev-job-description": {
"url": "https://your-domain.com/api/sse",
"transport": "sse"
}
}
}
```
### Alternative: Deploy to Digital Ocean App Platform
1. Connect your Git repository
2. Select **Node.js** as the environment
3. Build Command: `npm run build`
4. Run Command: `npm start`
5. Set environment variable: `NODE_ENV=production`
### Alternative: Deploy to Any VPS
```bash
# Install dependencies
npm install
# Build the application
npm run build
# Start in production
npm start
```
For production, use PM2 to keep the app running:
```bash
npm install -g pm2
pm2 start npm --name "mcp-server" -- start
pm2 save
pm2 startup
```
## How to Use
Once configured, you can interact with this MCP server in your Claude conversations:
### Accessing Resources
Ask Claude to read the resources:
- "Show me the senior developer hiring guide"
- "What's in the recruiting discovery checklist?"
### Using the Refine Prompt
Use the prompt to improve your job description:
```
Use the refine-job-description prompt with this information:
[paste your current job description]
```
Claude will analyze your job description and ask targeted questions to fill in gaps.
## Development
### Project Structure
```
.
├── app/
│ ├── api/
│ │ └── sse/
│ │ └── route.ts # Next.js API route (SSE transport)
│ ├── layout.tsx # Next.js layout
│ └── page.tsx # Homepage
├── src/
│ └── index.ts # CLI entry point (stdio transport for local use)
├── resources/
│ ├── hiring-guide.md # Hiring best practices
│ └── recruiting-discovery-checklist.md
├── prompts/
│ └── refine-job-description.md
├── build/ # Compiled JavaScript for stdio version (generated)
├── .next/ # Next.js build output (generated)
├── package.json
├── tsconfig.json
├── next.config.js # Next.js configuration
└── README.md
```
The project supports both transport methods:
- **Local**: `src/index.ts` uses stdio transport (for Claude Desktop)
- **Remote**: `app/api/sse/route.ts` uses SSE transport over HTTP (for Manus, deployed apps)
### Making Changes
For the **Next.js version** (remote deployment):
```bash
# Development mode with hot reload
npm run dev
# Build for production
npm run build
# Start production server
npm start
```
For the **stdio version** (local use):
```bash
# Build TypeScript
npm run build:stdio
# The compiled file will be in build/index.js
```
### Testing the Server
You can test the MCP server using the MCP Inspector or by integrating it with Claude Desktop/Code and checking the logs.
## Contributing
This is a personal project for learning MCP server development. Feel free to fork and adapt for your own use.
## License
MIT