hh-mcp-ru

API hh.ru в ИИ-ассистенте: вакансии, отклики, резюме, статистика зарплат. 133 метода, запись спрашивает подтверждение.

Documentation

hh-mcp-ru

API hh.ru для ИИ-ассистентов: вакансии, отклики и приглашения, резюме, справочники, статистика зарплат. Каталог из официальной спеки, у каждого метода класс доступа.

PyPI CI License: MIT Методов Сайт Звёзды

Install in VS Code Install in Cursor

hh-mcp-ru: API hh.ru в ИИ-ассистенте. 133 метода, поиск метода словами, гейт безопасности перед записью

Каталог собран из первоисточника (официальная спека api.hh.ru/openapi/specification/public) и лежит в репозитории как hh_mcp/endpoints.yaml: 133 метода, из них 92 на чтение, 32 на запись и 9 необратимых. Сервер исполняет ровно этот файл, поэтому таблица ниже не может разойтись с кодом.

Установка

uvx hh-mcp-ru

Claude Desktop, claude_desktop_config.json:

{
  "mcpServers": {
    "hh-mcp": {
      "command": "uvx",
      "args": ["hh-mcp-ru"],
      "env": { "HH_TOKEN": "...", "HH_APP_NAME": "..." }
    }
  }
}

Ключи

dev.hh.ru → Мои приложения → создать приложение → access token. HH_APP_NAME заполняется обязательно: hh отклоняет запросы без внятного User-Agent, и это первая причина непонятных ошибок 400.

переменнаясекретчто это
HH_TOKENдаТокен приложения hh.ru (dev.hh.ru → Мои приложения).
HH_APP_NAMEнетИмя приложения и контактный email для заголовка HH-User-Agent: без него hh отклоняет запросы.

Ключи можно не держать в окружении: сервер умеет кабинеты и кладёт их в ~/.ru-mcp/cabinets.json с правами 600, вне репозитория.

Карта методов

разделметодовчтениезаписьнеобратимое
Работодатель и менеджеры302352
Вакансии211272
Общие справочники14671
Подсказки111100
Отклики и приглашения10550
Сохранённые поиски6231
Статистика зарплат5500
Вебхуки4121
Комментарии к соискателю4121
Резюме3300
Звонки3300
Регионы3300
Токены2011
Учебные заведения2200
Локали2200
Метро2200
Текущий пользователь1100
Аккаунты менеджеров1100
Отрасли1100
Словари1100
Профессиональные роли1100
Языки1100
Навыки1100
Clickme1100
Районы1100
Шаблоны сообщений1100
Условия публикации вакансий1100
всего13392329

Как это выглядит в чате

Вы: поиск вакансий

hh_search_methods("поиск вакансий")
  hh_get_vacancies                     GET  /vacancies                                 чтение
  hh_get_vacancies_related_to_vacancy  GET  /vacancies/{vacancy_id}/related_vacancies  чтение
  hh_get_vacancies_similar_to_vacancy  GET  /vacancies/{vacancy_id}/similar_vacancies  чтение

hh_describe_method("hh_get_vacancies")
  Поиск по вакансиям
  GET api.hh.ru/vacancies
  параметры: page, per_page, text, search_field, experience, employment, schedule, area и ещё 36
  класс доступа: чтение

hh_call_method("hh_get_vacancies", {"page": "...", "per_page": "..."})

Три инструмента вместо 133 функций: агент ищет метод словами, читает его карточку и вызывает. Запись и необратимое спрашивают подтверждение.

Что обычно просят:

  • Выгрузить свои вакансии и отклики за период и свести в таблицу.
  • Посмотреть статистику зарплат по роли перед публикацией вакансии.
  • Найти вакансии конкурентов по региону и профессиональной роли.
  • Ответить кандидатам шаблоном, показав список человеку до отправки.

Безопасность

Сервер работает на машине пользователя, ключи наружу не уходят. У методов три класса доступа: чтение идёт сразу, запись и необратимые действия требуют подтверждения. Заголовок авторизации не покидает домены сервиса даже при вызове произвольного пути.

Проверить установку

uvx hh-mcp-ru doctor

Печатает, сколько методов загрузилось, найдены ли ключи и откуда. Секреты не показывает. С --live делает один дешёвый реальный вызов на чтение.

Родня

Ядро вынесено в schema-mcp-core. Соседние серверы: vk-mcp-ru, diadoc-mcp-ru, sbis-mcp-ru, chestny-znak-mcp-ru. Маркетплейсы живут отдельно: marketplaces-mcp-ru.

MIT. Автор Илья Утов.

Все проекты одним списком, разобранные по назначению: ilyautov.github.io.