MCP server for AI-assisted Markdown resume writing and PDF export
Project description
resume-markdown-mcp
Write your resume in Markdown, export to PDF — powered by AI via MCP.
Let Claude write, edit, and format your resume. The MCP server handles Markdown-to-PDF conversion with a built-in stylesheet — no CSS knowledge required.
Requires: Python ≥ 3.12, Google Chrome or Chromium (for PDF export)
Setup
claude mcp add resume-markdown -- uvx resume-markdown-mcp
What Can It Do?
| Type | Name | Description |
|---|---|---|
| Tool | export_resume_pdf |
Convert a Markdown resume to PDF. Accepts a file path or raw Markdown text. CSS is applied automatically. |
| Resource | resume://template |
The built-in Markdown resume template. AI reads this to understand the required format. |
| Resource | resume://style |
The built-in CSS stylesheet. AI reads this when you want to customise the appearance. |
Example Prompts
- "Help me write a resume for a software engineer role and export it as a PDF to my Desktop"
- "Here's my resume at ~/resume.md — export it to PDF"
- "My resume.md doesn't follow the right format, fix it and export to /tmp/resume.pdf"
- "Make the font size smaller and re-export my resume"
Resume Markdown Format
The PDF renderer depends on these Markdown conventions:
# Full Name
- email@example.com
- Phone number
- City, Country
One-line summary (optional)
## Experience
### <span>Job Title, Company</span> <span>2022 – 2025</span>
- Achievement one
- Achievement two
## Education
### <span>Degree, University</span> <span>2018 – 2022</span>
## Skills
- Skill category: item, item, item
The <span> tags inside ### headings are required — they enable the left/right flexbox layout for title and date. AI handles this automatically when writing from scratch; if your existing file lacks them, ask Claude to reformat it before exporting.
How It Works
- AI calls
export_resume_pdfwith Markdown content or a file path - The server converts Markdown to HTML using python-markdown, with the built-in CSS inlined
- Headless Chrome renders the HTML and prints it to PDF
- Chrome exits as soon as the PDF is written; the tool returns the output path
CLI Usage
The package also ships a standalone CLI:
# Create template files in the current directory
uvx resume-markdown-mcp init
# Build HTML and PDF from resume.md
uvx resume-markdown-mcp build
# Options
uvx resume-markdown-mcp build --no-pdf # HTML only
uvx resume-markdown-mcp build --no-html # PDF only
uvx resume-markdown-mcp build myresume.md # Custom input file
uvx resume-markdown-mcp build --chrome-path=... # Specify Chrome path
The CLI picks up a resume.css file alongside the input if present; otherwise the built-in stylesheet is used.
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file resume_markdown_mcp-1.0.1.tar.gz.
File metadata
- Download URL: resume_markdown_mcp-1.0.1.tar.gz
- Upload date:
- Size: 330.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e93575f0f4975ea353798a619cbd1f38d70e11ee9783b71566da61620345e2b4
|
|
| MD5 |
2449dda38bbbced9269cdc675852fbaf
|
|
| BLAKE2b-256 |
ba23a2d0349c02c6d398535df7e0f65038822c25792a15cc9158b297dc7bd0c3
|
Provenance
The following attestation bundles were made for resume_markdown_mcp-1.0.1.tar.gz:
Publisher:
release.yml on ailenshen/resume-markdown-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
resume_markdown_mcp-1.0.1.tar.gz -
Subject digest:
e93575f0f4975ea353798a619cbd1f38d70e11ee9783b71566da61620345e2b4 - Sigstore transparency entry: 1224957763
- Sigstore integration time:
-
Permalink:
ailenshen/resume-markdown-mcp@22ce1b5c19266d4e3c2caa7a2a832a2a2a055eb0 -
Branch / Tag:
refs/tags/v1.0.1 - Owner: https://github.com/ailenshen
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@22ce1b5c19266d4e3c2caa7a2a832a2a2a055eb0 -
Trigger Event:
release
-
Statement type:
File details
Details for the file resume_markdown_mcp-1.0.1-py3-none-any.whl.
File metadata
- Download URL: resume_markdown_mcp-1.0.1-py3-none-any.whl
- Upload date:
- Size: 4.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
57fea3d4338383ac20dd59d628c8ab4c625186d06db76a739a912b850f896ca4
|
|
| MD5 |
73dd8fdf670e1456386ba42e63dbab15
|
|
| BLAKE2b-256 |
ea6e066657f07f24d90ce4df84c52a50ea1d8225f78e9b8275e1afdf811a1e40
|
Provenance
The following attestation bundles were made for resume_markdown_mcp-1.0.1-py3-none-any.whl:
Publisher:
release.yml on ailenshen/resume-markdown-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
resume_markdown_mcp-1.0.1-py3-none-any.whl -
Subject digest:
57fea3d4338383ac20dd59d628c8ab4c625186d06db76a739a912b850f896ca4 - Sigstore transparency entry: 1224957800
- Sigstore integration time:
-
Permalink:
ailenshen/resume-markdown-mcp@22ce1b5c19266d4e3c2caa7a2a832a2a2a055eb0 -
Branch / Tag:
refs/tags/v1.0.1 - Owner: https://github.com/ailenshen
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@22ce1b5c19266d4e3c2caa7a2a832a2a2a055eb0 -
Trigger Event:
release
-
Statement type: