Skip to main content
Glama
AndreyTepaykin

hh-mcp

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
HOSTNoInterface to bind in HTTP mode (default 127.0.0.1).
PORTNoPort for HTTP mode (default 3000). Alternative to HTTP_PORT.
HTTP_PORTNoPort for HTTP mode (default 3000). Alternative to PORT.
HH_USER_AGENTNoCustom HH-User-Agent (required by hh.ru). Recommended format: your-app/1.0 (you@example.com).
HH_ACCESS_TOKENNoBearer-token OAuth 2.0. Needed for resumes, ATS/response, and employer-scoped endpoints. Optional.
HH_ALLOWED_HOSTSNoComma-separated list of allowed Host headers for HTTP mode (default loopback).
HH_ALLOWED_ORIGINSNoComma-separated list of allowed Origin headers for HTTP mode.

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
search_vacanciesA

Search job vacancies on hh.ru by keywords, region, professional role, industry, metro, salary, experience, employment form, work format, date range and labels. Returns a compact paginated summary (pass raw:true for full JSON).

get_vacancyB

Get full vacancy details: description, requirements, key skills, contacts, employer info.

get_similar_vacanciesB

Find vacancies similar to a given one. Useful for expanding a candidate's job search.

get_related_vacanciesB

Find vacancies related to a given one (hh.ru related_vacancies endpoint). Public, no token.

get_vacancy_statsB

Get employer-facing vacancy statistics (views/responses/invitations). Requires HH_ACCESS_TOKEN.

get_vacancy_visitorsB

List visitors who viewed a vacancy. Requires HH_ACCESS_TOKEN.

get_vacancy_conditionsB

Get vacancy publication conditions / constraints for the current employer. Requires HH_ACCESS_TOKEN.

search_resumesA

Search candidate resumes by keywords, region, professional role, salary, experience. Requires an EMPLOYER OAuth token (HH_ACCESS_TOKEN) AND a paid hh.ru resume-database subscription — applicant/anonymous tokens get 403.

get_resumeA

Get full resume details: experience, education, skills, contacts. Requires an EMPLOYER OAuth token + paid resume-database access.

get_resume_negotiations_historyB

Get negotiation history for a resume (employer view). Requires HH_ACCESS_TOKEN.

list_saved_resume_searchesA

List saved resume searches for the current employer account. Requires HH_ACCESS_TOKEN.

get_saved_resume_searchB

Get a saved resume search by id. Requires HH_ACCESS_TOKEN.

list_application_collectionsA

List negotiation collections and employer states for a vacancy (inbox folders). Start here before list_applications. Requires HH_ACCESS_TOKEN.

list_applicationsB

List applications/responses in a negotiation collection for a vacancy (page/per_page/order_by). Requires HH_ACCESS_TOKEN.

get_applicationB

Get a single application/negotiation by topic id. Requires HH_ACCESS_TOKEN.

get_application_messagesB

Get chat messages for an application/negotiation topic. Requires HH_ACCESS_TOKEN.

get_negotiations_statisticsB

Get employer-level negotiations statistics. Requires employer_id and HH_ACCESS_TOKEN.

get_preferred_negotiations_orderA

Get the preferred negotiations sort order for a vacancy. Requires HH_ACCESS_TOKEN.

search_employersA

Search companies/employers on hh.ru by name. Returns company info and open vacancy count.

get_employerA

Get detailed employer profile: description, industries, website, vacancy count.

get_employer_vacanciesA

List active vacancies for a specific employer via public vacancy search (employer_id filter). No token required.

list_employer_managersC

List managers for an employer account. Requires employer_id and HH_ACCESS_TOKEN.

get_employer_managerB

Get a single employer manager by id. Requires HH_ACCESS_TOKEN.

get_manager_resume_limitsC

Get resume-view limits for a manager. Requires HH_ACCESS_TOKEN.

get_manager_negotiations_statisticsC

Get negotiations statistics for a manager. Requires HH_ACCESS_TOKEN.

list_active_vacanciesA

List published (active) vacancies for the authenticated employer account via /employers/{id}/vacancies/active. Requires HH_ACCESS_TOKEN. For any employer's public vacancies use get_employer_vacancies.

list_archived_vacanciesB

List archived vacancies for an employer. Requires HH_ACCESS_TOKEN.

list_hidden_vacanciesB

List hidden vacancies for an employer. Requires HH_ACCESS_TOKEN.

get_message_templateB

Get a negotiation message template by id (optionally with topic_id / resume_id / vacancy_id). Requires HH_ACCESS_TOKEN.

list_mail_templatesA

List employer mail templates. Requires employer_id and HH_ACCESS_TOKEN.

get_employer_vacancy_areasC

List active vacancy areas for an employer. Requires HH_ACCESS_TOKEN.

get_employer_departmentsB

List departments for an employer. Requires HH_ACCESS_TOKEN.

list_employer_addressesB

List addresses for an employer. Requires HH_ACCESS_TOKEN.

get_areasA

Get the full tree of regions and cities as id — name lines (pass raw:true for nested JSON). Use to find area IDs for search filters.

get_areas_subtreeA

Get the regions/cities subtree under one area id (e.g. 113=Russia) — lighter than the full /areas tree.

get_countriesA

List countries (id — name) from /areas/countries.

get_professional_rolesA

Get the tree of professional roles with IDs. Use to find role IDs for vacancy/resume search and salary stats.

get_industriesA

Get the tree of company industries with IDs. Use to find industry IDs for the search_vacancies industry filter.

get_metroA

Get metro stations and lines with IDs for a city (city_id), or for all cities. Use to find metro IDs for the search_vacancies metro filter.

get_languagesB

List languages (id — name) from /languages.

get_skillsA

Resolve skill names by id via /skills (1–50 ids). Use suggest_skill_set to discover ids by name first.

get_districtsA

List districts (optionally filtered by area_id). Useful for address/area fine-tuning.

get_dictionariesA

Get all reference dictionaries: currencies, employment types, schedules, experience levels, vacancy labels, and more.

validate_tokenA

Check whether HH_ACCESS_TOKEN is valid via /me and report the user role (applicant/employer). Use to diagnose resume-search and ATS access.

suggest_positionsA

Autocomplete free-form job titles / positions via /suggests/positions (not role IDs — use suggest_professional_roles for those).

suggest_professional_rolesA

Autocomplete professional roles with IDs via /suggests/professional_roles. Use for vacancy/resume search filters and salary stats.

suggest_companiesB

Autocomplete company names. Returns matching employer suggestions for partial input.

suggest_areasA

Autocomplete region/city names. Returns matching area suggestions for partial input.

suggest_vacancy_search_keywordC

Autocomplete vacancy-search keywords via /suggests/vacancy_search_keyword.

suggest_resume_search_keywordA

Autocomplete resume-search keywords via /suggests/resume_search_keyword.

suggest_skill_setC

Autocomplete skills via /suggests/skill_set.

get_salary_statisticsA

Salary distribution for a role/region. With HH_ACCESS_TOKEN + area_id, tries paid Банк данных зарплат (/salary_statistics/paid/salary_evaluation/{area_id}); on 401/403/404 or without token/area falls back to sampling vacancy salaries (biased). Optional speciality/employee_level/industry/extend_sources for the bank; text maps to position_name.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3.1/5.0

Scored across 52 tools

Disambiguation4/5

Most tools target a distinct resource+action, and descriptions clarify boundary cases like get_employer_vacancies vs list_active_vacancies. A few similar-sounding statistics and list tools (e.g., get_negotiations_statistics vs get_manager_negotiations_statistics vs get_vacancy_stats) require close reading but are ultimately distinguishable.

Naming Consistency3/5

The overall verb_noun pattern holds (get_, list_, search_, suggest_), but the use of get_ vs list_ is inconsistent: list operations like get_areas, get_languages, get_employer_vacancy_areas, and get_employer_departments use get_, while others like list_employer_addresses and list_active_vacancies use list_. Names are readable but the convention is not uniform.

Tool Count2/5

At 52 tools, this is a very large surface, far exceeding the 25+ threshold. The breadth of the hh.ru domain justifies more tools than a typical server, but 52 still feels heavy and likely overwhelms agents, especially with many near-duplicate reference-data getters.

Completeness3/5

The read/search/monitoring surface is remarkably comprehensive: vacancies, resumes, employers, negotiations, templates, suggestions, statistics, and reference data. However, the set lacks any write or mutation tools (no create_vacancy, update_negotiation, send_message, or create_saved_search), leaving common ATS workflow dead ends.

Maintenance

ActivityMaintained
ResponsivenessNo issues