Skip to main content
Glama
tahiru-j

resmd MCP Server

by tahiru-j
README.md
# 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

A3.7/5.0

Scored across 12 tools

Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count5/5

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.

Completeness5/5

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.

Maintenance

ActivityInactive
ResponsivenessNo issues