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 20 tools covering full-text search, skill lookup, company and role queries, achievement mining, education search, ATS-style job-match ranking, 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обязательный

    ID достижения из list_achievements

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

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

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

    Присвой бейдж идентификатору навыка из списка 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обязательный

    ID записи об образовании из списка list_education.

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

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

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

    Относительный путь, возвращаемый list_resumes, например 'MyResume_v2.docx' или '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обязательный

    Возобновляет ID из list_resume_summaries.

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

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

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

    Возобновляет ID из list_resume_summaries.

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

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

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

    Идентификатор побочного проекта из list_side_projects

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

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

Параметры
  • limitinteger

    Максимальное количество возвращаемых навыков (по умолчанию 20)

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

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

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

    Идентификатор опыта работы из 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

    Максимальное количество возвращаемых результатов (по умолчанию: 10).

  • modestring

    Режим сопоставления токенов для запроса: 'and' (по умолчанию) требует, чтобы все слова присутствовали в описании; 'or' требует совпадения любого слова; 'regex' обрабатывает запрос как регулярное выражение без учёта регистра.

  • offsetinteger

    Пропускает указанное количество результатов для пагинации (по умолчанию: 0).

  • querystring | null

    Необязательный текст для поиска в описаниях достижений (без учёта регистра)

  • resume_idstring | null

    Необязательный resume ID из list_resume_summaries, чтобы отфильтровать результаты.

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

    Необязательный фрагмент названия навыка/компетенции для сопоставления (без учёта регистра, частичное совпадение); имеет приоритет над query.

  • limitinteger

    Максимальное количество возвращаемых результатов (по умолчанию: 10).

  • modestring

    Режим сопоставления токенов: 'and' (по умолчанию) требует, чтобы все слова совпадали в одном и том же поле; 'or' требует, чтобы совпало любое слово; 'regex' обрабатывает query/competency как регулярное выражение без учёта регистра.

  • offsetinteger

    Пропускает указанное количество результатов для пагинации (по умолчанию: 0).

  • querystring | null

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

  • resume_idstring | null

    Необязательный resume ID из list_resume_summaries, чтобы отфильтровать результаты.

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

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

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

    Необязательный фильтр: резюме, сопроводительное письмо, материалы заявки, другое

  • limitinteger

    Максимальное количество возвращаемых результатов (по умолчанию 10, каждый элемент - полностью вложенное резюме)

  • offsetinteger

    Пропускает указанное количество результатов для пагинации (по умолчанию: 0).

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

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

Параметры
  • limitinteger

    Максимальное количество возвращаемых результатов (по умолчанию: 10).

  • modestring

    Token match mode: 'and' (по умолчанию) требует, чтобы все слова встречались в одном и том же поле имени; 'or' требует совпадения любого слова; 'regex' обрабатывает запрос как регулярное выражение без учёта регистра.

  • offsetinteger

    Пропускает указанное количество результатов для пагинации (по умолчанию: 0).

  • querystring | null

    Необязательный фрагмент имени для фильтрации по имени или фамилии (без учёта регистра).

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

    Максимальное количество возвращаемых результатов (по умолчанию: 10).

  • modestring

    Режим сопоставления токенов: 'and' (по умолчанию) требует, чтобы все слова совпадали в одном поле; 'or' требует совпадения любого слова; 'regex' обрабатывает запрос/технологию как регулярное выражение без учёта регистра.

  • offsetinteger

    Пропускает указанное количество результатов для пагинации (по умолчанию: 0).

  • querystring | null

    Необязательный текст для поиска по имени, описанию или технологии (без учёта регистра)

  • resume_idstring | null

    Необязательный resume ID из list_resume_summaries, чтобы отфильтровать результаты.

  • technologystring | null

    Необязательный фрагмент названия технологии/навыка для сопоставления (без учёта регистра, частичное совпадение); имеет приоритет над запросом.

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

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

Параметры
  • limitinteger

    Максимальное количество возвращаемых результатов (по умолчанию: 10).

  • modestring

    Режим сопоставления токенов для запроса - 'and' (по умолчанию) требует совпадения всех слов; 'or' требует совпадения любого слова; 'regex' обрабатывает запрос как регулярное выражение без учёта регистра

  • offsetinteger

    Пропускает указанное количество результатов для пагинации (по умолчанию: 0).

  • querystring | null

    Необязательный текст для поиска в названиях навыков (без учёта регистра)

  • resume_idstring | null

    Необязательный resume ID из list_resume_summaries, чтобы отфильтровать результаты.

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

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

Параметры
  • current_onlyboolean

    Если True, возвращает только те роли, у которых end_date имеет значение 'Present'.

  • limitinteger

    Максимальное количество возвращаемых результатов (по умолчанию: 10).

  • modestring

    Режим соответствия токенов для запроса: 'and' (по умолчанию) требует совпадения всех слов в одном поле; 'or' требует совпадения любого слова; 'regex' обрабатывает запрос как регулярное выражение без учета регистра.

  • offsetinteger

    Пропускает указанное количество результатов для пагинации (по умолчанию: 0).

  • querystring | null

    Необязательный текст для сопоставления с названием компании, должностью или описанием достижений (без учета регистра)

  • resume_idstring | null

    Необязательный resume ID из list_resume_summaries, чтобы отфильтровать результаты.

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

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

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

    Необязательный фильтр: резюме, сопроводительное письмо, материалы заявки, другое

  • limitinteger

    Максимальное количество возвращаемых результатов (по умолчанию: 10).

  • modestring

    Режим сопоставления токенов — «И» (по умолчанию) требует, чтобы все слова встречались в документе; «ИЛИ» требует совпадения любого слова; «regex» обрабатывает запрос как регулярное выражение без учёта регистра.

  • offsetinteger

    Пропускает указанное количество результатов для пагинации (по умолчанию: 0).

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

    Текст для поиска (без учёта регистра).

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

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

Параметры
  • limitinteger

    Максимальное количество возвращаемых результатов (по умолчанию: 10).

  • modestring

    Режим сопоставления токенов. Для одного навыка: 'and' (по умолчанию) требует, чтобы все слова встречались в названии навыка, 'or' требует совпадения любого слова, 'regex' интерпретирует его как не зависящее от регистра регулярное выражение. Для нескольких навыков режим также определяет, должно ли резюме соответствовать КАЖДОМУ навыку в списке ('and') или ЛЮБОМУ навыку в списке ('or'); режим 'regex' объединяет несколько навыков с семантикой ИЛИ.

  • offsetinteger

    Пропускает указанное количество результатов для пагинации (по умолчанию: 0).

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

    Фрагмент названия навыка или список фрагментов для поиска (без учёта регистра, частичное совпадение).

3.0.2основная
3.0.1
3.0.0
2.0.0
1.1.0
1.0.1
1.0.0
0.1.1

Выберите клиент, чтобы установить mnoomnoo/resume-mcp-server:

Любой клиент

Конфиг добавления MCP сервера стандартный, обычно он не меняется вообще, поэтому подходит практически к любому ИИ клиенту, поддерживающему MCP.

{
  "mcpServers": {
    "mnoomnoo-resume-mcp-server-c7rop289hm": {
      "command": "uvx",
      "args": [
        "resume-mcp-server"
      ],
      "env": {
        "RESUME_DIR": "/path/to/your/resumes"
      }
    }
  }
}
CursorCursor

Перейдите по ссылке и сервер автоматически будет добавлен в Cursor. Либо откройте/создайте файл ~/.cursor/mcp.json(%USERPROFILE%\.cursor\mcp.json на Windows) и добавьте конфиг сервера:

{
  "mcpServers": {
    "mnoomnoo-resume-mcp-server-c7rop289hm": {
      "command": "uvx",
      "args": [
        "resume-mcp-server"
      ],
      "env": {
        "RESUME_DIR": "/path/to/your/resumes"
      }
    }
  }
}
VS Code

Создайте .vscode/mcp.json в проекте (ключ верхнего уровня — servers):

{
  "servers": {
    "mnoomnoo-resume-mcp-server-c7rop289hm": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "resume-mcp-server"
      ],
      "env": {
        "RESUME_DIR": "/path/to/your/resumes"
      }
    }
  }
}

Либо добавьте сервер через терминал:

code --add-mcp "{\"name\":\"mnoomnoo-resume-mcp-server-c7rop289hm\",\"type\":\"stdio\",\"command\":\"uvx\",\"args\":[\"resume-mcp-server\"],\"env\":{\"RESUME_DIR\":\"/path/to/your/resumes\"}}"
ClaudeClaude Desktop

Откройте Settings → Developer → Edit Config — это откроет файл claude_desktop_config.json:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Впишите сервер и полностью перезапустите Claude Desktop:

{
  "mcpServers": {
    "mnoomnoo-resume-mcp-server-c7rop289hm": {
      "command": "uvx",
      "args": [
        "resume-mcp-server"
      ],
      "env": {
        "RESUME_DIR": "/path/to/your/resumes"
      }
    }
  }
}
Claude CodeClaude Code

Добавьте сервер одной командой в терминале:

claude mcp add mnoomnoo-resume-mcp-server-c7rop289hm --env RESUME_DIR=/path/to/your/resumes -- uvx resume-mcp-server

Либо через JSON-конфиг:

claude mcp add-json mnoomnoo-resume-mcp-server-c7rop289hm "{\"command\":\"uvx\",\"args\":[\"resume-mcp-server\"],\"env\":{\"RESUME_DIR\":\"/path/to/your/resumes\"}}"
CodexCodex

Добавьте сервер командой в терминале:

codex mcp add mnoomnoo-resume-mcp-server-c7rop289hm --env RESUME_DIR=/path/to/your/resumes -- uvx resume-mcp-server

Либо вручную в ~/.codex/config.toml(%USERPROFILE%\.codex\config.toml на Windows):

[mcp_servers.mnoomnoo-resume-mcp-server-c7rop289hm]
command = "uvx"
args = ["resume-mcp-server"]

[mcp_servers.mnoomnoo-resume-mcp-server-c7rop289hm.env]
RESUME_DIR = "/path/to/your/resumes"
PerplexityPerplexity

MCP доступен подписчикам Perplexity Pro / Max / Enterprise. Локальные серверы — только в приложении для macOS.

  1. Откройте Настройки аккаунта → Connectors.
  2. Установите вспомогательное приложение PerplexityXPC (один раз).
  3. Нажмите Add Connector → вкладка Simple.
  4. В поле Server Name укажите mnoomnoo/resume-mcp-server, а в поле команды запуска — строку ниже:
uvx resume-mcp-server

Нажмите Save и дождитесь статуса Running.

WindsurfWindsurf

Откройте Windsurf Settings → Cascade → MCP Servers или отредактируйте файл ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "mnoomnoo-resume-mcp-server-c7rop289hm": {
      "command": "uvx",
      "args": [
        "resume-mcp-server"
      ],
      "env": {
        "RESUME_DIR": "/path/to/your/resumes"
      }
    }
  }
}
ClineCline

В панели Cline нажмите иконку MCP Servers → Configure → Configure MCP Servers (или отредактируйте ~/.cline/mcp.json) и добавьте сервер:

{
  "mcpServers": {
    "mnoomnoo-resume-mcp-server-c7rop289hm": {
      "command": "uvx",
      "args": [
        "resume-mcp-server"
      ],
      "env": {
        "RESUME_DIR": "/path/to/your/resumes"
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}
Continue

Создайте файл в .continue/mcpServers/ (например mnoomnoo-resume-mcp-server-c7rop289hm.yaml) или добавьте блок в config.yaml. MCP работает только в режиме agent:

mcpServers:
  - name: mnoomnoo-resume-mcp-server-c7rop289hm
    command: uvx
    args:
      - "resume-mcp-server"
    env:
      RESUME_DIR: /path/to/your/resumes
Zed

Выполните agent: add context server или откройте настройки (zed: open settings file) и добавьте сервер в объект context_servers:

{
  "context_servers": {
    "mnoomnoo-resume-mcp-server-c7rop289hm": {
      "command": "uvx",
      "args": [
        "resume-mcp-server"
      ],
      "env": {
        "RESUME_DIR": "/path/to/your/resumes"
      }
    }
  }
}

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

mediar-ai/screenpipe

mediar-ai/screenpipe

от mediar-ai

screenpipe записывает всё, что вы видите, говорите и слышите на компьютере. Ищет по экрану, звуку и вводу, работает офлайн, данные не покидают устройство.

Rust⭐ 21996
topskychen/tilde

topskychen/tilde

от topskychen

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

Python⭐ 4
re-port-flow/reportflow-mcp

re-port-flow/reportflow-mcp

от re-port-flow

ReportFlow MCP превращает ваши шаблоны в PDF (счета, договоры, отчёты) прямо из Claude или VS Code. Работает удалённо без установки npm. Идеально для бизнес-пользователей, которым нужны готовые док...

TypeScript⭐ 1
ayo-nci/bulkrender-mcp

ayo-nci/bulkrender-mcp

от ayo-nci

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

JavaScript⭐ 1
Miro MCP

Miro MCP

официальный

Официальный MCP-сервер Miro: даёт AI-ассистенту доступ к вашим доскам — читать их содержимое и создавать на них диаграммы, стикеры и документы.

needle-ai/needle-mcp

needle-ai/needle-mcp

от needle-ai

MCP сервер для интеграции с Needle — управляйте документами, ищите по коллекциям через Claude Desktop. Поддерживает PDF, DOCX и другие форматы, делая данные доступными для семантического поиска без локальной установки. Идеально для AI-агентов.

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

Лука Никитин