home / mcp / resumetailor mcp server
Provides an MCP server that tailors resumes using LibreOffice and optional Claude AI integration.
Configuration
View docs{
"mcpServers": {
"adi2355-file-editor-mcp": {
"url": "http://localhost:5001"
}
}
}ResumeTailor is an MCP server that automates tailoring your resume for specific job applications by coordinating a LibreOffice-based editor with MCP-powered content generation. You maintain a master resume template and generate customized versions efficiently, enabling focused applications and faster turnaround.
You interact with the ResumeTailor MCP server through an MCP client or via a containerized setup. You can run the local editor as a service and then request tailored resumes and keyword-based adjustments for job descriptions. Use the remote HTTP services to tailor resumes directly, or run the local editor in stdio mode for scripting and Claude integration.
Prerequisites you need to meet before installation include a working Python 3.10+ environment, a compatible LibreOffice installation, and Docker if you plan to run the containerized deployment.
Step 1: Prepare your environment.
Step 2: Install Python and dependencies.
Step 3: Set up the UNO Python bindings so the editor can talk to LibreOffice.
Step 4: Prepare your resume template in LibreOffice Writer with the required bookmarks.
Step-by-step commands you can run directly:
# Prerequisites: Python 3.10+ and LibreOffice installed
# (Adjust package names for your OS as needed)
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
# Create UNO symlinks (example paths; adjust to your system)
ln -s /usr/lib/python3/dist-packages/uno.py .venv/lib/python3.*/site-packages/uno.py
ln -s /usr/lib/python3/dist-packages/unohelper.py .venv/lib/python3.*/site-packages/unohelper.py
# Prepare your resume template in LibreOffice Writer with bookmarks
# Follow the guide for bookmarks setup in setup_resume_bookmarks.md
# Start LibreOffice in headless mode when using the direct scripts
soffice --accept="socket,host=localhost,port=2002;urp;" --headless --norestore --nologo --nodefault &
# Run a specific tailoring script to update a section
./test_skill_update.py
./test_project_update.py
./tailor_for_job.py
# If using containerized deployment, see the container section for run stepsConfiguration and deployment options let you choose between a direct local setup, Claude AI integration, or a containerized environment for cross-platform consistency.
Containerized deployment provides a consistent runtime across macOS and Linux without needing LibreOffice or UNO libraries installed on the host. The container runs both the Resume Editor service and the JD Keyword Extractor service and exposes them on ports 5001 and 5002.
# Start containerized deployment
./run_container.sh
# Access services
# Resume Editor: http://localhost:5001
# JD Keyword Extractor: http://localhost:5002
# Generated resumes appear in the Output directory on the hostClaude Desktop integration lets you drive tailoring from the Claude interface. You configure a local MCP server entry in Claude so commands from Claude trigger the editor service or the Python-based server that tailors your resume.
Two main workflow options exist for Claude integration. First, use the local editor service started by a dedicated script. Second, configure Claude Desktop to invoke a local Python server that runs the resume editor logic.
# Local editor service start (example)
./start_resume_editor_service.sh
# Claude Desktop configuration example (paths may vary)
# claude_desktop_config.json
{
"mcpServers": {
"LibreOfficeResumeEditor": {
"command": "/home/adi235/ResumeTailor/.venv/bin/python",
"args": ["resume_editor_server.py"],
"cwd": "/home/adi235/ResumeTailor"
}
}
}LibreOffice connection issues can arise if the editor is not running in headless mode. Ensure the editor is listening on the expected socket by starting it with headless mode and the UNO port.
If you encounter module errors for UNO, verify the symbolic links to UNO modules exist and point to the correct system paths.
If an MCP server does not appear in Claude, recheck the Claude config file formatting, ensure paths are correct, and verify that both LibreOffice and the MCP server are running. Restart Claude Desktop after changes.
For bookmark-related errors in your resume, open the document in LibreOffice Writer and verify each required bookmark exists, using the Navigator (F5) to locate them.
Container-specific issues include port conflicts, container start failures, and missing output mappings. Check Docker logs, verify port availability, and confirm the container is running and exposing the expected ports.
Core components include a Python module for interacting with the LibreOffice UNO API, a dedicated MCP server for Claude integration, and scripts to start services and run tests. The project uses a bookmark-based template to generate tailored resumes.
Hosts the resume editing and tailoring functionality, including direct integration with the LibreOffice UNO API for document manipulation.
Analyzes job descriptions to extract key requirements and skills used to tailor the resume content.
Enables Claude Desktop to communicate with the MCP server to request tailoring operations and manage workflows.