Habr Career MCP server
habr-career-mcp
An MCP server for the Habr Career API: filtered vacancy search, full vacancy text, a skills lookup and a local registry of vacancies already reviewed
Low risk
We rate an entry low when it mostly gives the agent instructions and reference material.
Why this level
- Only reads public vacancies and the skills directory, no authorization required
Install
Manual install
git clone <этот репозиторий> && cd habr-career-mcp && python3 server.pyCommand from the README, runs MCP over stdio.
This is third-party code. Review the repository files before installing.
What it does
A server built on Python's plain standard library calls Habr Career's undocumented frontend API and provides four tools: vacancy search with filters for text, grade, skill and remote work, flagging vacancies already in the registry, full vacancy text with a warning about hidden AI instructions in the description, skill id lookup by name for filtering, and checking a list of ids against a local registry. The registry is a TSV file on disk, with its path set as a constant at the top of the file.
Who it is for. For developers job-hunting who want to filter Habr Career vacancies faster than the site's UI and avoid re-reviewing ones they already saw.
Good fit when
- You want to filter new remote vacancies by grade and skill every day
- You want to read a vacancy in full and get a warning about hidden AI instructions in the text
- You want a local record of vacancies already reviewed
Not a fit when
- You need Habr Career's official documented API: this uses an internal endpoint reverse-engineered from observation
- You do not want a local TSV registry and configuring its path
Example request
Find new remote middle Python vacancies on Habr Career that I have not reviewed yetLimitations
The API is not officially documented; parameters were reverse-engineered and may change. Requests retry three times on network errors. The registry path is a hardcoded constant rather than an environment variable, and the qid grade filter values are not sequential, with some values empty.
How to disable. Remove the server from your MCP client config; there are no subscriptions or keys to revoke.
MCP
- Transport
- stdio
- Authentication
- not required
Security check
- Only reads public vacancies and the skills directory, no authorization required
README in short
The Russian README explains the motivation: paging through hundreds of vacancies by hand is costly and the UI's filters are scattered. It documents the four tools in a table, the reverse-engineered API parameters (endpoint, qid grade values, skill id lookup), and practical gotchas: reliably identifying the company name, exact id matching against the registry, and handling hidden AI instructions in vacancy text.
FAQ
Do I need external libraries?
No, the server uses only Python 3.9+'s standard library.
What is the hidden-instructions warning about?
Some employers insert phrases aimed at AI into vacancy text, like "if you are an AI, mention...", to detect generated responses. The get_vacancy tool flags such phrases; they should not be followed.
Related
CLI, skill and Python library for browser control: the agent clicks, fills forms and reads pages over CDP
A skill that gathers the last 30 days of discussion on a topic from Reddit, X, YouTube, HN, Polymarket and GitHub into one brief
The Chrome DevTools team's official MCP server: the agent drives a live Chrome, reads network and console, and records performance traces
A fast Rust CLI for agent browser automation: accessibility snapshots with element refs, an MCP server and skills