mnoomnoo/resume-mcp-server

mnoomnoo/resume-mcp-server

от mnoomnoo
MCP сервер для поиска по коллекции резюме и сопроводительных писем. Парсит docx, pdf, md, txt, индексирует навыки, компании, достижения. Полезен соискателям и рекрутерам, позволяя ИИ-клиентам находить нужные документы по любому критерию без ручного копирования.

resume-mcp-server

CI License: GPL v3 Python 3.12+ MCP PyPI resume-mcp-server MCP server

An MCP server that gives Claude (or any MCP client) structured, searchable access to your resume collection — resumes, cover letters, and application materials in .docx, .pdf, .md, or .txt format.

Job seekers accumulate document sprawl fast: multiple resume versions tailored to different roles, cover letter drafts, reference sheets. Manually digging through them to draft a new application is tedious. Point this server at your resume folder and Claude can answer questions like "which of my resumes highlights Kubernetes experience?", "what achievements have I listed across my backend roles?", or "draft a cover letter drawing from my work at Acme Corp" — without you pasting anything.

The server parses each document into structured data (contact info, work history, education, skills, side projects) and exposes 27 tools covering full-text search, skill lookup, company and role queries, achievement mining, education search, collection analytics, and more. Files are watched and re-indexed automatically, so edits to your documents are reflected immediately.

Инструменты были проиндексированы:
get_achievementтолько чтениеидемпотентный

Получает одно достижение (фразовый навык) по ID. Возвращает {"error": ...}, если id не найден.

Пожалуйста, уточните, о каком достижении идёт речь и в каком контексте. Например, это достижение в игре, в приложении, на платформе или что-то другое? Опишите подробнее, и я помогу разобраться.

Параметры
  • idstringобязательный

    Achievement ID from list_achievements

get_badge_skillтолько чтениеидемпотентный

Получает один навык-значок по ID. Возвращает {"error": ...}, если id не найден.

Получить значок навыка

Параметры
  • idstringобязательный

    Badge skill ID from list_skills

get_collection_statsтолько чтениеидемпотентный

Возвращает агрегированные подсчёты и средние значения по всей загруженной коллекции резюме. Возвращает total_resumes, total_work_experiences, total_unique_skills, total_side_projects, total_education_entries, total_achievements, avg_skills_per_resume, avg_work_experiences_per_resume. Пример: get_collection_stats()

Получает статистику коллекции.

Параметры

Без параметров.

get_educationтолько чтениеидемпотентный

Получает одну запись об образовании по идентификатору, включая её компетенции. Возвращает {"error": ...}, если id не найден.

Получить образование

Параметры
  • idstringобязательный

    Education entry ID from list_education

get_resumeтолько чтениеидемпотентный

Возвращает полный извлечённый текст документа в виде {"text": "..."}.Примечание: принимает путь к файлу (см. list_resumes), а не resume_id — используйте get_resume_profile или list_resumes для получения структурированных данных по resume_id.Возвращает {"error": ...}, если путь не найден.

Получить резюме

Параметры
  • pathstringобязательный

    Relative path as returned by list_resumes, e.g. 'MyResume_v2.docx' or 'Acme/MyResume.docx'

get_resume_fullтолько чтениеидемпотентный

Получает полную вложенную структуру резюме за один вызов: поля профиля, весь опыт работы (с достижениями), навыки-значки, пет-проекты (с технологиями) и записи об образовании (с компетенциями). Предпочитайте get_resume_profile и специализированные list_* инструменты (list_work_experiences, list_skills, list_side_projects, list_education), когда нужна только часть — это эффективнее по токенам. Используйте get_resume_full, когда нужно сразу получить полную картину. Возвращает {"error": ...}, если resume_id не найден.

Получить полное резюме

Параметры
  • resume_idstringобязательный

    Resume ID from list_resume_summaries

get_resume_profileтолько чтениеидемпотентный

Получает поля верхнего уровня резюме (контактная информация, профессиональная аннотация, образование) без вложенных списков опыта работы и badge skill lists. Смотрите также: get_resume_full — всё об этом резюме за один вызов. Возвращает {"error": ...}, если resume_id не найден.

Get Resume Profile

Параметры
  • resume_idstringобязательный

    Resume ID from list_resume_summaries

get_side_projectтолько чтениеидемпотентный

Получает один сайд-проект по ID, включая технологии, которые он демонстрирует. Возвращает {"error": ...}, если ID не найден.

Получить сайд-проект

Параметры
  • idstringобязательный

    Side project ID from list_side_projects

get_skill_frequencyтолько чтениеидемпотентный

Возвращает навыки (значки), отсортированные по количеству резюме, в которых они указаны, в порядке убывания. Помогает выявить наиболее распространённые технологии среди всех кандидатов.

Получить частоту навыков

Параметры
  • limitinteger

    Maximum number of skills to return (default 20)

get_work_experienceтолько чтениеидемпотентный

Получает одну запись о трудовом опыте с её достижениями. Возвращает {"error": ...}, если id не найден.

Получите опыт работы

Параметры
  • idstringобязательный

    Work experience ID from list_work_experiences

list_achievementsтолько чтениеидемпотентный

Выводит достижения (пункты резюме) с возможностью фильтрации по конкретному резюме и/или ключевому запросу, сопоставляемому с текстом достижения (поглощает старый инструмент search_achievements). Форма ответа зависит от переданных аргументов, чтобы сделать типичный случай дешёвым: - resume_id указан, query опущен: для каждого элемента только {id, desc} (самый дешёвый — вы уже знаете, к какому резюме они относятся). - query указан и/или resume_id опущен: каждый элемент также включает company_name, position_title, work_experience_id и resume_id, так как иначе этот контекст было бы невозможно восстановить из одного достижения. Ответ содержит total_count и items для пагинации. Возвращает {"error": ...}, если resume_id указан, но не найден.

Список достижений

Параметры
  • limitinteger

    Maximum number of results to return (default 50)

  • modestring

    Token match mode for query — 'and' (default) requires all words to appear in the description; 'or' requires any word to match; 'regex' treats query as a case-insensitive regular expression

  • offsetinteger

    Number of results to skip for pagination (default 0)

  • querystring | null

    Optional text to search for in achievement descriptions (case-insensitive)

  • resume_idstring | null

    Optional resume ID from list_resume_summaries to filter results

list_educationтолько чтениеидемпотентный

Выводит записи об образовании (степень, учебное заведение, год и релевантные курсы/компетенции) с возможностью фильтрации по резюме и/или сопоставления по ключевому слову или компетенции (заменяет старые инструменты search_education и search_education_by_competency). - Если указана компетенция (competency), записи сопоставляются только с названиями компетенций, и каждый результат использует облегчённую форму: id, institution, degree, year, matched_competencies, resume_id. - Иначе, если указан запрос (query), записи сопоставляются с названиями учебного заведения, степени или компетенции, и каждый результат включает полную вложенную структуру плюс resume_id. - Если указаны оба, компетенция имеет приоритет, а запрос игнорируется. - Если не указано ни то, ни другое, применяется текущее поведение простого списка. Ответ включает total_count и items для постраничного вывода. Возвращает {"error": ...}, если указан resume_id, но не найден.

Перечислите образование

Параметры
  • competencystring | null

    Optional skill/competency name fragment to match (case-insensitive, partial match); takes precedence over query

  • limitinteger

    Maximum number of results to return (default 25)

  • modestring

    Token match mode — 'and' (default) requires all words to match within the same field; 'or' requires any word to match; 'regex' treats query/competency as a case-insensitive regular expression

  • offsetinteger

    Number of results to skip for pagination (default 0)

  • querystring | null

    Optional text to match against institution, degree, or competency (case-insensitive)

  • resume_idstring | null

    Optional resume ID from list_resume_summaries to filter results

list_resumesтолько чтениеидемпотентный

Перечисляет все документы. Если doc_type равен 'resume' (или не указан), возвращает структурированные данные резюме (если доступны); в противном случае возвращает метаданные плоского файла. Ответ содержит total_count и items для пагинации. См. также: list_resume_summaries — для более лёгкого и экономичного по токенам вывода списка; get_resume_full — для получения полной вложенной структуры одного резюме по resume_id.

Список резюме

Параметры
  • doc_typestring | null

    Optional filter — one of: resume, cover_letter, application_material, other

  • limitinteger

    Maximum number of results to return (default 10 — each item is a fully nested resume)

  • offsetinteger

    Number of results to skip for pagination (default 0)

list_resume_summariesтолько чтениеидемпотентный

Выводит резюме в виде облегченных записей идентичности — только id, имя, email, телефон.Используйте это, чтобы сориентироваться и выбрать resume_id перед получением деталей с помощью других инструментов.Значительно экономнее по токенам, чем list_resumes, когда нужно только определить, кто присутствует.Передайте параметр query для фильтрации по имени или фамилии (заменяет старый инструмент search_resumes_by_name).Ответ включает total_count и items для пагинации.

Выводит список сводок резюме.

Параметры
  • limitinteger

    Maximum number of results to return (default 100)

  • modestring

    Token match mode — 'and' (default) requires all words to appear in the same name field; 'or' requires any word to match; 'regex' treats query as a case-insensitive regular expression

  • offsetinteger

    Number of results to skip for pagination (default 0)

  • querystring | null

    Optional name fragment to filter by first or last name (case-insensitive)

list_side_projectsтолько чтениеидемпотентный

Перечисляет пет-проекты (личные/портфолио проекты, не относящиеся к опыту работы), с возможностью фильтрации по резюме и/или поиска по ключевому слову или технологии (объединяет старые инструменты search_side_projects и search_side_projects_by_technology). - Если задана технология, проекты сопоставляются только с названиями технологий, и каждый результат использует облегчённую форму: id, name, description, matched_technologies, resume_id. - Иначе, если задан поисковый запрос, проекты сопоставляются с названием, описанием или названиями технологий, и каждый результат включает полную вложенную структуру плюс resume_id. - Если заданы оба параметра, технология имеет приоритет, а запрос игнорируется. - Если не задан ни один, применяется текущее обычное поведение списка. Ответ включает total_count и items для пагинации. Возвращает {"error": ...}, если resume_id задан, но не найден.

Перечисли побочные проекты.

Параметры
  • limitinteger

    Maximum number of results to return (default 25)

  • modestring

    Token match mode — 'and' (default) requires all words to match within the same field; 'or' requires any word to match; 'regex' treats query/technology as a case-insensitive regular expression

  • offsetinteger

    Number of results to skip for pagination (default 0)

  • querystring | null

    Optional text to match against name, description, or technology (case-insensitive)

  • resume_idstring | null

    Optional resume ID from list_resume_summaries to filter results

  • technologystring | null

    Optional technology/skill name fragment to match (case-insensitive, partial match); takes precedence over query

list_skillsтолько чтениеидемпотентный

Выводит список навыков-бейджей (технологий, инструментов, языков) с возможностью фильтрации по резюме и/или запросу ключевого слова, сопоставляемого с названием навыка (заменяет старый инструмент search_skills). Обратите внимание: навыки-бейджи дедублицируются и обобщаются по названию между резюме, поэтому, в отличие от опыта работы, проектов и образования, у этих элементов нет поля resume_id. Ответ содержит total_count и items для пагинации. Возвращает {"error": ...}, если передан resume_id, но резюме не найдено.

Перечисляет навыки.

Параметры
  • limitinteger

    Maximum number of results to return (default 100)

  • modestring

    Token match mode for query — 'and' (default) requires all words to match; 'or' requires any word to match; 'regex' treats query as a case-insensitive regular expression

  • offsetinteger

    Number of results to skip for pagination (default 0)

  • querystring | null

    Optional text to search for in skill titles (case-insensitive)

  • resume_idstring | null

    Optional resume ID from list_resume_summaries to filter results

list_work_experiencesтолько чтениеидемпотентный

Перечисляет опыт работы, опционально отфильтрованный по конкретному резюме, только текущие должности и/или ключевое слово, совпадающее с названием компании, должностью или описанием достижений (заменяет старый инструмент search_work_experiences). Каждый результат включает поле resume_id, указывающее, к какому резюме относится опыт. Ответ включает total_count и items для пагинации. Возвращает {"error": ...}, если передан resume_id, но он не найден.

Перечислите опыт работы.

Параметры
  • current_onlyboolean

    If True, return only roles where end_date is 'Present'

  • limitinteger

    Maximum number of results to return (default 25)

  • modestring

    Token match mode for query — 'and' (default) requires all words to match within the same field; 'or' requires any word to match; 'regex' treats query as a case-insensitive regular expression

  • offsetinteger

    Number of results to skip for pagination (default 0)

  • querystring | null

    Optional text to match against company name, position title, or achievement descriptions (case-insensitive)

  • resume_idstring | null

    Optional resume ID from list_resume_summaries to filter results

search_resumesтолько чтениеидемпотентный

Ищет по всем документам ключевое слово или фразу. Ответ включает поля total_count, items, has_more, next_offset и message для пагинации.

Поиск резюме

Параметры
  • doc_typestring | null

    Optional filter — one of: resume, cover_letter, application_material, other

  • limitinteger

    Maximum number of results to return (default 100)

  • modestring

    Token match mode — 'and' (default) requires all words to appear in the document; 'or' requires any word to match; 'regex' treats query as a case-insensitive regular expression

  • offsetinteger

    Number of results to skip for pagination (default 0)

  • querystringобязательный

    Text to search for (case-insensitive)

search_resumes_by_skillтолько чтениеидемпотентный

Находит резюме, в которых указаны один или несколько заданных навыков. Возвращает только идентификатор резюме и названия совпавших навыков: более эффективно по токенам, чем list_resumes при фильтрации по навыкам. Принимает либо одну строку навыка, либо список навыков для фильтрации по нескольким одновременно. Каждый результат включает: id, first_name, last_name, matched_skills. Ответ включает total_count, items, has_more, next_offset и message для пагинации.

Поиск резюме по навыкам

Параметры
  • limitinteger

    Maximum number of results to return (default 100)

  • modestring

    Token match mode. For a single skill: 'and' (default) requires all words to appear in the skill title, 'or' requires any word to match, 'regex' treats it as a case-insensitive regular expression. For multiple skills, mode also controls whether a resume must match EACH skill in the list ('and') or ANY skill in the list ('or'); 'regex' mode combines multiple skills with OR semantics.

  • offsetinteger

    Number of results to skip for pagination (default 0)

  • skillstring | string[]обязательный

    Skill title fragment, or list of fragments, to search for (case-insensitive, partial match)

Похожие MCP-сервера

Himalayas-App/himalayas-mcp

Himalayas-App/himalayas-mcp

MCP-сервер для поиска удалённых вакансий, публикации вакансий, найма кандидатов и проверки зарплатных данных через AI. Работает с Claude, ChatGPT и другими платформами. Полезен рекрутерам и соискат...

19
6figr-com/jobgpt-mcp-server

6figr-com/jobgpt-mcp-server

MCP сервер JobGPT интегрирует AI-ассистентов с платформой поиска работы для автоматического поиска и отклика, генерации резюме под должность и отслеживания заявок. Помогает соискателям автоматизировать процесс.

TypeScript22
shinpr/mcp-local-rag

shinpr/mcp-local-rag

MCP сервер для локального семантического поиска с бустом ключевых слов (например, коды ошибок, имена функций). Индексирует PDF, DOCX, TXT, MD без облака, работает offline. Удобен разработчикам: быстрый доступ к технической документации и коду через MCP или CLI. Запуск одной командой npx без Docke...

TypeScript388
ayo-nci/bulkrender-mcp

ayo-nci/bulkrender-mcp

BulkRender MCP сервер для создания DOCX и PDF документов прямо из Claude, Cursor и других AI-ассистентов. Работает по шаблонам, поддерживает пакетную генерацию до 500 документов и не требует устано...

JavaScript1
SecretiveShell/MCP-searxng

SecretiveShell/MCP-searxng

MCP инструмент для подключения агентов к поиску через searXNG. Выполняет запросы к метапоиску, собирает выдачу из разных источников. Идеально, когда ИИ-агенту нужны свежие данные из интернета.

Python128
henilcalagiya/google-sheets-mcp

henilcalagiya/google-sheets-mcp

MCP-сервер для автоматизации Google Sheets: создание, чтение, обновление и удаление таблиц через MCP-клиенты. Использует сервисный аккаунт Google для безопасной интеграции. Полезен разработчикам, а...

Python13
© Каталог MCP, 2026. Все права защищены.
Проект не аффилирован с Anthropic и любыми упомянутыми продуктами.
Все названия и торговые марки принадлежат их владельцам.
Контакты для связи: hi@mcp-katalog.ru

Лука Никитин