resmd MCP Server
# resmd MCP Server
Expose resmd as a Model Context Protocol (MCP) server so AI agents and automation tools can programmatically create, edit, tailor, and export resumes.
## Prerequisites
- Node.js 20+
- A running resmd instance (self-hosted or deployed)
- An MCP key generated from the resmd app
## 1. Generate an MCP Key
1. Open the dashboard and click your **user menu** (bottom-left)
2. Select **MCP Keys**
3. Enter a name for the key and click **Generate**
4. Copy the key immediately — it is only shown once
## 2. Configure Environment
```bash
# bash / zsh
export RESMD_API_URL=https://resmd.app
export RESMD_MCP_KEY=<your-mcp-key>
```
```powershell
# PowerShell
$env:RESMD_API_URL = "https://resmd.app"
$env:RESMD_MCP_KEY = "<your-mcp-key>"
```
## 3. Build and Run
```bash
npm install
npm run build
node dist/server.js
```
## 4. Claude Code Configuration
Claude Code supports local MCP servers directly. Use the `claude mcp` CLI to register the server.
**Against the hosted app:**
```bash
claude mcp add resmd \
--env RESMD_API_URL=https://resmd.app \
--env RESMD_MCP_KEY=<your-mcp-key> \
-- node /path/to/resmd-mcp/dist/server.js
```
**Against a local instance:**
```bash
claude mcp add resmd \
--env RESMD_API_URL=http://localhost:3000 \
--env RESMD_MCP_KEY=<your-mcp-key> \
-- node /path/to/resmd-mcp/dist/server.js
```
To remove or re-add (e.g. to update the key):
```bash
claude mcp remove resmd
```
> **Note:** Claude Desktop only supports cloud-hosted MCP servers. Use Claude Code for local MCP servers.
## 5. n8n / Make Integration
Use the MCP Client node (n8n) or HTTP module (Make) pointed at the MCP server running as a process. Alternatively, call the resmd HTTP API directly using the MCP key as a Bearer token:
```text
Authorization: Bearer <your-mcp-key>
```
## Available Tools
| Tool | Description |
| ------------------ | ----------------------------------------- |
| `list_resumes` | List all resumes |
| `get_resume` | Fetch a resume by ID |
| `create_resume` | Create a new resume |
| `update_resume` | Update resume content, title, or template |
| `delete_resume` | Delete a resume |
| `clone_resume` | Clone a resume with a new title |
| `tailor_resume` | Clone and AI-tailor for a job description |
| `chat_with_resume` | Chat with AI about a resume |
| `enhance_text` | AI-enhance a piece of resume text |
| `import_resume` | Import PDF/DOCX/TXT → resmarkup |
| `export_pdf` | Export resume as base64 PDF |
| `list_templates` | List available templates |
## Available Resources
| URI | Description |
| -------------------- | ----------------------------------- |
| `resmarkup://format` | Full resmarkup format specification |
## MCP Inspector
Test the server interactively:
```bash
npx @modelcontextprotocol/inspector node dist/server.js
```
TDQS
Scored across 12 tools
Each tool targets a clearly distinct action: CRUD operations, import/export, template listing, and three distinct AI features (chat, enhance, tailor). Even clone_resume and tailor_resume differ in that tailor adds job-specific AI modification.
The vast majority follow a verb_noun pattern (list_resumes, get_resume, create_resume, update_resume, delete_resume, import_resume, export_pdf, enhance_text, clone_resume, tailor_resume). chat_with_resume deviates slightly but remains readable and consistent in style.
12 tools is within the ideal 3-15 range and each tool earns its place, covering resume lifecycle, file conversion, and AI augmentation without redundancy.
The domain is fully covered: full CRUD, listing, get with raw content, import/export (PDF), template access, and multiple AI workflows (chat, enhance, tailor). No significant dead ends or missing core operations.