browser-control-mcp: safe hh.ru applications
browser-control-mcp
A local MCP server that controls an open Chrome session via CDP, helps apply on hh.ru, blocks payments and confirms before sending
- 0 ★ on the repository
- Last commit
- MIT
Extended access
Why this level
- Can submit a real application and cover letter after confirmation
- Controls the user's already-open Chrome session through the powerful CDP protocol
Install
- Works in
- Services
In your terminal, with SkillFoxx CLI
npx skillfoxx add mcp/browser-control-mcpDetects the agents on your machine, shows the access level and pins the version.
Other ways to install
Access and checks
How we reviewExtended accessThe tool runs code or makes network calls and only reads external data.
- Can submit a real application and cover letter after confirmation
- Controls the user's already-open Chrome session through the powerful CDP protocol
This is third-party code. Review the repository files before installing.
What it does
The server attaches to an already-running Chrome instance through the Chrome DevTools Protocol on a local port, rather than opening its own browser, and stores no logins, passwords or cookies. A dedicated hh.ru module opens a vacancy page in the current user session, checks that the user is logged in, parses the vacancy, finds employer questions and drafts a cover letter, but only fills in answers and the letter after confirmation and never submits an application without explicit permission. Every action is classified by risk: read and low run immediately, sensitive and irreversible need a one-time token with a limited lifetime, and critical actions (payments, purchases, money transfers) are blocked outright with no way to confirm them. Dry-run is on by default: even a confirmed flow won't press the final apply button until it's explicitly turned off. A separate generic browser-control module gives basic tab-opening, clicking and field-filling tools under the same risk model, not tied to hh.ru.
Who it is for. For job seekers who want to automate filling in an hh.ru application but insist on manual confirmation before it's actually sent.
Good fit when
- You need help drafting a cover letter and answers to employer questions in a real hh.ru tab
- It matters that an application never goes out without explicit confirmation, and that payment actions are blocked outright
- You need general risk-aware browser control, not just the hh.ru flow
Not a fit when
- You need fully autonomous bulk application submission with no confirmation: the MVP deliberately doesn't do that
- You don't want to open Chrome with a debug port: the author describes CDP access as very powerful and says it should only listen on 127.0.0.1
- You need ready-made candidate-answer tools (parse_resume_context, fill_question_answers): those are listed as planned, not implemented
Example request
Open this hh.ru vacancy, check if the employer has a required question, and draft a cover letter, but don't submit without meMCP
- Transport
- stdio
- Authentication
- not required
Environment variables
CDP_URLrequired- The local Chrome DevTools Protocol address, defaults to http://127.0.0.1:9222.
DRY_RUN- On by default (true): the final apply button is never pressed even with confirmation.
ALLOWED_DOMAINS- The list of domains where hh.ru automation is allowed, e.g. hh.ru,ramenskoe.hh.ru.
Limitations
The project calls itself an MVP and a TypeScript learning exercise. It requires running Chrome with an open local debug port, and the author explicitly warns against exposing it externally. Several tools (resume context parsing, filling candidate answers, a full submit_response) are listed in the README as planned, not implemented. There's no automatic tab recovery by URL or title after a tab closes or Chrome restarts if several similar tabs exist.
How to disable. Stop the MCP process and close the debug-port Chrome instance, then remove the server from your client configuration.
FAQ
Can the server submit an application without my knowledge?
No, by design an application is never sent without explicit confirmation, and with DRY_RUN=true the final button isn't pressed at all.
Can the server make a payment or purchase?
No, such actions are classified as critical and are blocked outright with no way to confirm them.
Discussion
No questions or reviews yet.
Related
All hh.ru toolsHH.ru MCP Server: browser auto-apply
HH.ru MCP Server
An MCP server that emulates an hh.ru browser session via Playwright for search, AI vacancy scoring and automatic applications with a daily cap
A browser-based MCP server for job search on hh.ru: resume-matched vacancy recommendations, applications and statuses
An MCP server with 52 tools over the official hh.ru API: vacancy search with no token, employer resumes and applications with one, and salary statistics
A FastMCP server with 43 hh.ru tools: signs in via the official hh.ru Android app's OAuth, no need to register your own app at dev.hh.ru
hh-ru-apply: hh.ru application automation
hh-ru-apply
A Node.js and Playwright script suite that searches hh.ru vacancies, scores them with an LLM, drafts cover letters and opens the application in a browser
An MCP server for the employer side of the hh.ru and hh.kz API: your vacancies, applications, resume search, sourcing and webhooks through an OAuth app
README in short
The README describes the safety model in detail: no credential storage, dry-run by default, one-time confirmation tokens with a TTL, a full block on payment actions, and separate prepare/submit tool pairs for different hh.ru application flows. It includes an architecture diagram, a table of implemented and planned MCP tools, Chrome debug-port launch instructions for macOS, Linux and Windows, and a list of environment variables. It separately notes the project is not an official Google, Chromium or hh.ru product.