resumeai-mcp
# resumeai-mcp
Local MCP server (stdio) that lets a Claude Code agent drive Big Interview ResumeAI. Spec: [PLAN.md](PLAN.md).
## Setup
```bash
uv sync
cp .env.example .env
```
The default `BROWSER_CHANNEL=chrome` uses your installed Google Chrome (PLAN.md §6.3). Install it
if missing (`uv run playwright install chrome`), or use bundled Chromium instead:
`uv run playwright install chromium` and set `BROWSER_CHANNEL=` (empty) in `.env`.
## Add to Claude Code
```bash
claude mcp add --scope user resumeai -- uv --directory /absolute/path/to/Biginterview-MCP run resumeai-mcp
claude mcp get resumeai # Status: ✔ Connected
```
The server exposes six tools (`auth_status`, `list_scans`, `start_scan`, `get_scan_status`, `get_scan_feedback`,
`delete_scan`); every call returns `{"ok": true, "data": …}` or `{"ok": false, "error": {code, message, hint}}`
(PLAN.md §7.0, §13). Log in first with `uv run python scripts/login.py`, and never run it while the server is
using the browser profile.
Troubleshooting and the full walkthrough land in Phase 6.
TDQS
Scored across 6 tools
Each tool maps to a distinct step in the scan lifecycle: auth_status (auth check), list_scans (history), start_scan (create), get_scan_status (poll), get_scan_feedback (results), delete_scan (remove). The boundaries between polling status, retrieving feedback, and starting a scan are clear and non-overlapping.
Most tools follow a clean verb_noun pattern (list_scans, start_scan, get_scan_status, get_scan_feedback, delete_scan). auth_status deviates slightly by leading with a noun-like token rather than an explicit verb, but it remains readable and consistent with the scan-status naming family.
Six tools is well-scoped for a scan-and-feedback workflow, with each tool earning its place across auth, listing, creation, polling, results, and deletion. Nothing feels padded or redundant.
The surface covers the full lifecycle: authentication, listing, starting, polling, fetching feedback, and deletion. Minor gaps exist (no explicit cancel/abort for an in-flight scan or resume-management operation), but these are workable given the one-scan-in-flight constraint and idempotent start.