Content
# @upcv/mcp-server
[English](./README.en.md)
## Tool List
## Features
- Resume Management — Create, view, edit, delete resumes, export PDF
- Fine-grained editing — Update basic information field by field, add/modify/delete experiences one by one, no need to manage complete JSON
- Section Management — Create custom sections, adjust section order
- Style Configuration — Switch templates, adjust theme color, font, margin
- Campus Recruitment Search — Filter by city, industry, major, company type, etc.
- Job Search — Browse job details, salary, requirements
- Smart Recommendation — Discover latest or upcoming campus recruitment
- Template Library — Browse and apply professional resume templates
## Installation
### Run with npx
```bash
env UPCV_API_KEY=your-api-key npx -y @upcv/mcp-server
```
### Global Installation
```bash
npm install -g @upcv/mcp-server
```
## Get API Key
1. Register or log in to [clawjob.upcv.tech](https://clawjob.upcv.tech)
2. After logging in, you can get your API Key on the homepage
## Client Configuration
### Claude Code / OpenClaw
```bash
claude mcp add upcv -- npx @upcv/mcp-server --api-key YOUR_API_KEY
```
### Claude Desktop
Add to `claude_desktop_config.json`:
```json
{
"mcpServers": {
"upcv": {
"command": "npx",
"args": ["-y", "@upcv/mcp-server"],
"env": {
"UPCV_API_KEY": "YOUR_API_KEY"
}
}
}
}
```
### Cursor
> Requires Cursor 0.45.6+
1. Open Cursor settings > Features > MCP Servers
2. Click "+ Add New MCP Server"
3. Configure:
- Name: `upcv`
- Type: `command`
- Command: `env UPCV_API_KEY=your-api-key npx -y @upcv/mcp-server`
For Windows users: `cmd /c "set UPCV_API_KEY=your-api-key && npx -y @upcv/mcp-server"`
### Windsurf
Add to `./codeium/windsurf/model_config.json`:
```json
{
"mcpServers": {
"upcv": {
"command": "npx",
"args": ["-y", "@upcv/mcp-server"],
"env": {
"UPCV_API_KEY": "YOUR_API_KEY"
}
}
}
}
```
## Configuration Options
| Method | Parameter | Description |
|--------|-----------|-------------|
| Command line | `--api-key` | UPCV API Key (required) |
| Command line | `--api-url` | API URL (default `https://clawjob.upcv.tech`) |
| Environment variable | `UPCV_API_KEY` | Equivalent to `--api-key` |
| Environment variable | `UPCV_API_URL` | Equivalent to `--api-url` |
Command line parameters take priority over environment variables.
## Available Tools
### Basic Resume Operations
| Tool | Description |
|------|-------------|
| `resume.list` | List all user resumes |
| `resume.get` | Get complete resume details |
| `resume.create` | Create a new resume, specify a template |
| `resume.update` | Update resume metadata (title, slug, visibility) |
| `resume.delete` | Delete a resume |
| `resume.print` | Export PDF and return download link |
| `template.list` | Get available template list |
### Resume Content Editing (fine-grained)
These tools automatically handle getting, merging, and submitting. AI only needs to pass the part to be modified:
| Tool | Description |
|------|-------------|
| `resume.updateBasics` | Update basic information (name, email, phone, etc.), only pass fields to be changed |
| `resume.updateSection` | Replace entire section content or update personal summary |
| `resume.updateSectionItem` | Update or add a single item (pass itemId to update, not pass to add) |
| `resume.deleteSectionItem` | Delete a single item |
| `resume.updateMetadata` | Update style configuration (template, theme color, font, etc.) |
### Section Management
| Tool | Description |
|------|-------------|
| `section.create` | Create a custom section and add it to the layout |
| `section.delete` | Delete a custom section and remove it from the layout |
| `resume.reorderLayout` | Adjust section display order |
### Campus Recruitment Search
| Tool | Description |
|------|-------------|
| `campus.searchRecruitments` | Search campus recruitment, support multi-dimensional filtering |
| `campus.getRecruitment` | Get campus recruitment details and associated jobs |
| `campus.recommend` | Get latest or upcoming campus recruitment recommendations |
| `campus.searchJobs` | Search specific jobs |
| `campus.getJob` | Get job details |
## Usage Examples
**Create a resume and fill in content:**
```
You: Help me create a front-end engineer resume
AI: [Call resume.create → resume.updateBasics → resume.updateSection × N]
Resume created and filled with basic information and work experience.
```
**Modify a work experience:**
```
You: Change the position of the first work experience to "Senior Front-end Engineer"
AI: [Call resume.get → resume.updateSectionItem]
Updated, position changed to "Senior Front-end Engineer".
```
**Search campus recruitment + optimize resume:**
```
You: Help me find ByteDance's campus recruitment and optimize my resume accordingly
AI: [Call campus.searchRecruitments → campus.getJob
→ resume.get → resume.updateSectionItem × N]
Optimized your resume according to job requirements.
```
**Export PDF:**
```
You: Export resume as PDF
AI: [Call resume.print]
PDF generated, download link: https://...
```
## Error Handling
| Status Code | Description |
|-------------|-------------|
| 400 | Data format verification failed — Return specific field-level error details |
| 401 | API Token invalid or expired — Please re-acquire on clawjob.upcv.tech |
| 402 | Insufficient credits — Please visit clawjob.upcv.tech to get more credits |
| 403 | Insufficient permissions — Please check account permissions |
| 404 | Resource does not exist |
| 429 | Request too frequent — Please try again later |
## Local Development
```bash
git clone https://github.com/HireTechUpUp/upcv-mcp-server.git
cd upcv-mcp-server
npm install
npm run build
```
Use [MCP Inspector](https://modelcontextprotocol.io/docs/tools/inspector) for debugging:
```bash
npx @modelcontextprotocol/inspector node dist/index.js --api-key YOUR_API_KEY
```
## Related Projects
- [UPCV](https://upcv.tech) — AI Resume Platform
## License
MIT