Skip to main content
Glama
Asma-Amin
by Asma-Amin

resume-tailor-mcp-server

An MCP server that helps job seekers tailor their resume and generate cover letters against a specific job posting — powered by Claude.

What it does

Three tools, all backed by the Claude API:

Tool

Purpose

resume_tailor_analyze_match

Scores how well a resume fits a job description (0-100), lists matched/missing keywords, strengths, and gaps. Read-only.

resume_tailor_tailor_resume

Rewrites/reorders an existing resume to better match a job posting — never invents experience, only reworks real content.

resume_tailor_generate_cover_letter

Generates a cover letter from the resume + job description, with adjustable tone.

Related MCP server: Job Search MCP Server

Requirements

Setup

npm install
npm run build

Set your API key:

export ANTHROPIC_API_KEY="sk-ant-..."

Running

stdio (for local MCP clients like Claude Desktop, Claude Code):

npm start

Streamable HTTP (for remote hosting):

TRANSPORT=http PORT=3000 npm start

The HTTP server listens on POST /mcp.

Connecting to Claude Desktop / Claude Code

Add to your MCP client config:

{
  "mcpServers": {
    "resume-tailor": {
      "command": "node",
      "args": ["/absolute/path/to/resume-tailor-mcp-server/dist/index.js"],
      "env": {
        "ANTHROPIC_API_KEY": "sk-ant-..."
      }
    }
  }
}

Deploying to Netlify (for a live public endpoint)

The repo already includes netlify/functions/mcp.ts and netlify.toml, so this is mostly point-and-click.

  1. Push this repo to GitHub (e.g. via GitHub Desktop).

  2. In Netlify: Add new site → Import an existing project → GitHub → select the repo.

  3. Build settings: leave the build command empty (nothing to build — Netlify's esbuild bundler compiles the function directly). Publish directory: public.

  4. In Site settings → Environment variables, add ANTHROPIC_API_KEY with your key. Never commit this to the repo.

  5. Deploy. Your MCP endpoint will be live at:

    https://<your-site-name>.netlify.app/mcp
  6. Sanity check it's alive: https://<your-site-name>.netlify.app/health should return {"status":"ok",...}.

Known limitation: Netlify's free-tier synchronous functions time out after 10 seconds. resume_tailor_tailor_resume (max 4096 output tokens) can occasionally run longer than that on a slow response. If you hit timeouts in production, either upgrade your Netlify plan (26s+ function timeout) or move to a host without a hard timeout (Render, Fly.io, a small VPS).

Use the MCP Inspector to poke at it without a full client:

npx @modelcontextprotocol/inspector node dist/index.js

Or from the CLI directly:

npx @modelcontextprotocol/inspector --cli node dist/index.js \
  --method tools/call \
  --tool-name resume_tailor_analyze_match \
  --tool-arg resume_text="..." \
  --tool-arg job_description="..."

Design notes

  • No fabrication guardrail: the tailoring and cover-letter prompts explicitly instruct Claude to never invent experience, employers, or achievements — only rework what's already true in the source resume.

  • Stateless HTTP transport: each HTTP request gets a fresh server + transport instance, so it scales horizontally without session affinity.

  • Character limits: resume/JD inputs are capped at 20,000 characters and tool output at 15,000 characters to keep cost and context usage predictable.

License

MIT — do whatever you want with it.

F
license - not found
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Asma-Amin/Resume-Tailor-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server