mcpField
H
hh-mcp

hh-mcp

Local
github.com/theYahiaBusiness & Marketing5Updated 7w ago

About hh-mcp

hh-mcp connects AI agents to the hh.ru jobs API. It supports vacancy and employer searches, salary statistics, and—when configured with an eligible employer token—resume searches.

Key features

  1. 01Search vacancies with detailed filters
  2. 02Retrieve vacancy and employer profiles
  3. 03Search resumes with an employer token
  4. 04View estimated salary distributions
  5. 05Browse regions and reference data
  6. 06Return concise summaries or raw JSON

Use cases

  1. 01Find remote vacancies by role and salary
  2. 02Review an employer's active listings
  3. 03Compare estimated salaries across regions
  4. 04Search candidate resumes with eligible access

MCP support

The server exposes hh.ru API operations as MCP tools, including vacancy, employer, salary, reference-data, and optional resume functions. It supports stdio and Streamable HTTP transports.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"theyahia-hh": {
"command": "npx",
"args": [
"-y",
"@theyahia/hh-mcp"
],
"env": {
"API_KEY": "<API_KEY>"
}
}
}
}
Run commandnpx -y @theyahia/hh-mcp
Environment variables to set
API_KEYSecretAPI key for the service

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npm@theyahia/hh-mcp1.0.0

Tools

6

Saved tool list · updated 2w ago

ParameterTypeRequiredDescription
areanumberNoКод региона (1=Москва, 2=СПб)
textstringNoКлючевые слова для поиска
salarynumberNoЖелаемая зарплата
currencystringNoВалюта зарплаты
per_pageintegerNoКоличество на странице
employmentenumNoТип занятостиfull | part | project | volunteer | probation
experienceenumNoОпыт работыnoExperience | between1And3 | between3And6 | moreThan6

Details

From the project README

MCP-сервер для hh.ru API — 19 инструментов для ИИ-агента: вакансии, резюме, зарплаты

Если вы искали, как подключить hh.ru к Claude или другому ИИ-агенту, — этот сервер даёт агенту поиск по вакансиям и резюме, карточки работодателей, статистику зарплат и справочники hh.ru по России и СНГ. Спрашиваете «найди Python-вакансии в Москве от 250 000 ₽ на удалёнке» — агент возвращает готовый список с зарплатами и опытом, а не ссылку на выдачу. Поиск вакансий работает без токена; токен нужен только для базы резюме.

npm CI License: MIT

Демонстрация: вопрос «найди Python-вакансии в Москве от 250 000 ₽ на удалёнке» — агент вызывает search_vacancies и отвечает списком вакансий

По умолчанию ответы приходят компактными сводками, удобными для LLM — передайте raw: true любому инструменту поиска или карточки, чтобы получить полный JSON hh.ru.

Часть серии WWmcp от @theYahia.

Два режима

РежимЧто доступноНужен токен?
Без токенаПоиск вакансий, вакансия по ID, похожие вакансии, работодатели, статистика зарплат, регионы, роли, отрасли, метро, справочники, подсказки, проверка токенанет
С токеномВсё перечисленное + поиск резюме, резюме по IDда (HH_ACCESS_TOKEN)

Токен выдаётся на dev.hh.ru/admin. Важно: поиск резюме дополнительно требует аккаунт работодателя с оплаченной подпиской на базу резюме — токены соискателя и анонимные получают 403. Проверить возможности своего токена можно инструментом validate_token.

Установка

Claude Desktop
{
  "mcpServers": {
    "hh": {
      "command": "npx",
      "args": ["-y", "@theyahia/hh-mcp"],
      "env": {
        "HH_ACCESS_TOKEN": "optional-oauth-token"
      }
    }
  }
}
Claude Code
claude mcp add hh -- npx -y @theyahia/hh-mcp
# С токеном:
claude mcp add hh -e HH_ACCESS_TOKEN=your-token -- npx -y @theyahia/hh-mcp
VS Code / Cursor
{
  "servers": {
    "hh": {
      "command": "npx",
      "args": ["-y", "@theyahia/hh-mcp"]
    }
  }
}
Windsurf
{
  "mcpServers": {
    "hh": {
      "command": "npx",
      "args": ["-y", "@theyahia/hh-mcp"]
    }
  }
}
Режим HTTP (Streamable HTTP)
npx @theyahia/hh-mcp --http
# или
HTTP_PORT=8080 npx @theyahia/hh-mcp --http

Эндпоинт: http://localhost:3000/mcp (POST) · Проверка состояния: http://localhost:3000/health (GET)

HTTP-режим stateless, по умолчанию слушает 127.0.0.1 с включённой защитой от DNS-rebinding. Чтобы открыть его наружу, задайте HOST=0.0.0.0, добавьте свой host/origin в HH_ALLOWED_HOSTS / HH_ALLOWED_ORIGINS и поставьте перед ним собственную аутентификацию.

Переменные окружения

ПеременнаяОбяз.Описание
HH_ACCESS_TOKENнетBearer-токен OAuth 2.0. Нужен для эндпоинтов резюме (работодатель + оплаченная база резюме).
HH_USER_AGENTнетСвой HH-User-Agent (hh.ru его требует). Рекомендуемый формат: your-app/1.0 ([email protected]).
HTTP_PORT / PORTнетПорт HTTP-режима (по умолчанию 3000).
HOSTнетИнтерфейс привязки в HTTP-режиме (по умолчанию 127.0.0.1).
HH_ALLOWED_HOSTSнетСписок разрешённых Host через запятую для HTTP-режима (по умолчанию loopback).
HH_ALLOWED_ORIGINSнетСписок разрешённых Origin через запятую для HTTP-режима.

См. .env.example.

Инструменты (19)

Любой инструмент поиска или карточки принимает raw: true — тогда вернётся полный JSON hh.ru вместо компактной сводки.

Вакансии
ИнструментОписаниеТокен?
search_vacanciesПоиск по ключевым словам, региону, профессиональной роли, отрасли, метро, работодателю, зарплате, опыту, формату работы и типу занятости, периоду (period или date_from/date_to), меткам и полю поиска, с сортировкой и пагинациейнет
get_vacancyПолная карточка вакансии: описание, требования, ключевые навыки, контактынет
get_similar_vacanciesНайти вакансии, похожие на заданнуюнет
Резюме (токен работодателя + оплаченная база резюме)
ИнструментОписаниеТокен?
search_resumesПоиск резюме кандидатов по ключевым словам, региону, роли, зарплате, опытуда
get_resumeПолное резюме: опыт, образование, навыки, контактыда
Работодатели
ИнструментОписаниеТокен?
search_employersПоиск компаний по названию и регионунет
get_employerПрофиль работодателя: описание, отрасли, сайт, число вакансийнет
get_employer_vacanciesАктивные вакансии конкретного работодателянет
Справочники и подсказки
ИнструментОписаниеТокен?
get_areasДерево регионов и городов (id — название)нет
get_areas_subtreeРегионы и города внутри одного региона — легче, чем всё деревонет
get_professional_rolesДерево профессиональных ролей с IDнет
get_industriesДерево отраслей компаний с IDнет
get_metroСтанции и линии метро с ID по городунет
get_dictionariesВсе справочные данные: валюты, типы занятости, графики, опыт, меткинет
suggest_positionsАвтодополнение названий должностейнет
suggest_companiesАвтодополнение названий компанийнет
suggest_areasАвтодополнение названий регионов и городовнет
Зарплаты и аккаунт
ИнструментОписаниеТокен?
get_salary_statisticsОценочное распределение зарплат (медиана, P25/P75, мин/макс) по роли в регионе, посчитанное по зарплатам опубликованных вакансий. Выборка смещённая, это не официальные данные рынка.нет
validate_tokenПроверить, действителен ли HH_ACCESS_TOKEN (через /me), и показать роль аккаунтанет

Ограничение частоты запросов

Встроенный лимитер соблюдает ограничение API hh.ru — 5 запросов в секунду. Автоматический повтор с экспоненциальной задержкой на ошибках 429 и 5xx (до 3 попыток). Учтите: лимитер общий на процесс, поэтому в общем HTTP-режиме все клиенты делят один бюджет 5 запросов/сек.

Демо-промпты

Найди удалённые вакансии Python-разработчика в Москве от 300 000 рублей
Покажи все открытые вакансии Яндекса и дай статистику зарплат по основным ролям
Сравни зарплаты Senior Backend в Москве и Санкт-Петербурге и предложи вакансии, похожие на самую высокооплачиваемую

Разработка

git clone https://github.com/theYahia/hh-mcp.git
cd hh-mcp
npm install
npm run build
npm test

Справочник API

Лицензия

MIT


Часть WWmcp · Telegram: @vhodvai

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.