MCP server: One MCP server.

Hh

@theyahiaMCP server · External

MCP server for hh.ru jobs API — vacancy search, salary stats, employers, regions. Public endpoints,

Recruitingv1.0.0MITTypeScript
Freeno charge per call

Runs on your machine from its package; the steps are below.

What it does

  1. Reads
  2. Writes
  3. High impact

At most: only reads or looks up information.

What it costs

Free

Odel charges nothing per call. The publisher may charge for its own service.

Runs locally over stdio

This server isn't hosted — your MCP client launches it from a package registry. Use one of the commands below, or drop the config into your client (e.g. Claude Desktop).

npm@theyahia/hh-mcpv1.0.0

Run

npx -y @theyahia/hh-mcp

MCP client config

{
  "mcpServers": {
    "hh": {
      "command": "npx",
      "args": [
        "-y",
        "@theyahia/hh-mcp"
      ]
    }
  }
}
README4 min read

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

json
{
  "mcpServers": {
    "hh": {
      "command": "npx",
      "args": ["-y", "@theyahia/hh-mcp"],
      "env": {
        "HH_ACCESS_TOKEN": "optional-oauth-token"
      }
    }
  }
}

Claude Code

bash
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

json
{
  "servers": {
    "hh": {
      "command": "npx",
      "args": ["-y", "@theyahia/hh-mcp"]
    }
  }
}

Windsurf

json
{
  "mcpServers": {
    "hh": {
      "command": "npx",
      "args": ["-y", "@theyahia/hh-mcp"]
    }
  }
}

Режим HTTP (Streamable HTTP)

bash
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 (you@example.com).
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 в Москве и Санкт-Петербурге и предложи вакансии, похожие на самую высокооплачиваемую

Разработка

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

Справочник API

Лицензия

MIT


Часть WWmcp · Telegram: @vhodvai

Similar modules

Browse Recruiting