Skip to main content
Glama
Tsadoq

EuropassMCP

by Tsadoq

EuropassMCP

Это MCP-сервер, позволяющий ИИ-агенту собрать CV в формате Europass и экспортировать его в строго соответствующий схеме Europass XML или в PDF, содержащий этот XML внутри.

Europass CV — это стандартизированный формат резюме Европейского союза. Его машиночитаемая форма представляет собой XML-документ, соответствующий определению схемы Europass CV XML версии 3.0.3. Этот сервер предоставляет агенту набор небольших инструментов, ограниченных по разделам, для заполнения резюме в ходе разговора, и отказывается экспортировать то, что схема отвергнет, так что состояние «почти валидно» недостижимо для готового документа.

Неофициальный

Этот проект не связан с Европейским союзом, Европейской комиссией или Cedefop, не одобрен ими и не создан ими. Он не содержит эмблемы ЕС и не использует товарный знак Europass; создаваемый им PDF — это независимая имитация макета Europass, а не официальный документ, о чём сказано на странице. Europass является товарным знаком Европейского союза.

Единственный актив Европейского союза, который распространяется этим репозиторием, — это сама XML-схема, на условиях гранта EUPL-1.1, под которым её опубликовали авторы. См. Лицензирование.

Требования

  • Python 3.11 или новее.

  • MCP-клиент, способный запускать сервер через stdio.

  • Для экспорта в PDF — четыре системные библиотеки, которые pip установить не может. См. С экспортом в PDF.

Related MCP server: layerone-mcp

Установка

В одну строку

curl -fsSL https://raw.githubusercontent.com/Tsadoq/EuropassMCP/main/install.sh | bash

Это устанавливает uv, если он отсутствует, устанавливает сервер как инструмент uv и регистрирует его в вашем клиенте: через claude mcp add, если интерфейс командной строки Claude находится в PATH, и в противном случае — путём добавления одной записи mcpServers в claude_desktop_config.json. Объединение перезаписывает только эту запись, не затрагивая остальные серверы в файле, так что повторный запуск команды по-прежнему оставляет ровно один europassmcp.

Флаги передаются скрипту через канал с помощью bash -s --:

curl -fsSL https://raw.githubusercontent.com/Tsadoq/EuropassMCP/main/install.sh | bash -s -- --with-pdf

--with-pdf добавляет дополнительный пакет для PDF, а затем указывает на С экспортом в PDF для системных библиотек, которые он не может установить за вас. --config-only пропускает установку и сразу переходит к регистрации клиента для уже существующей установки.

Передача URL в оболочку запускает то, что этот URL отдаёт. Если такой обмен вас не устраивает, скрипт — это обычный файл:

curl -fsSL https://raw.githubusercontent.com/Tsadoq/EuropassMCP/main/install.sh -o install.sh
less install.sh
bash install.sh

Вручную

Сервер общается по MCP через stdio, поэтому в обычном использовании клиент запускает его, а не вы запускаете его вручную. Что скрипт делает от вашего имени, так это устанавливает сервер и записывает команду запуска в конфигурацию клиента:

uv tool install europassmcp          # or: uv tool install 'europassmcp[pdf]'

затем вставляете блок из Конфигурация клиента.

Установка заранее не обязательна. Приведённые ниже команды запускают сервер через uvx, который подгружает его по запросу; любая из них может быть помещена в этот блок, а запуск одной из них в терминале запускает сервер, ожидающий ввода со стандартного ввода.

Только XML

uvx europassmcp

Вне Python ничего не требуется. Работают все инструменты, кроме export_pdf, который отказывается с сообщением, указывающим команду, которая это исправит.

С экспортом в PDF

Экспорт в PDF осуществляется через WeasyPrint, который загружает Pango, PangoFT2, HarfBuzz и fontconfig через C ABI при импорте. pip не может установить ни одну из них, поэтому europassmcp[pdf] устанавливается чисто на машине, где их нет, а затем отказывает в каждом PDF.

Установите их системным менеджером пакетов перед установкой дополнительного пакета. Если вы этого не сделаете, export_pdf ответит тем же отказом, что и при установке, которая никогда не имела дополнительного пакета: лежащая в основе OSError: cannot load library 'libpango-1-0-0' перехватывается и до вас не доходит. Так что на установке, где europassmcp[pdf] уже есть, такой отказ означает, что отсутствуют именно эти библиотеки.

На Debian и Ubuntu:

sudo apt install libpango-1.0-0 libpangoft2-1.0-0 libharfbuzz0b libfontconfig1

На macOS, с Homebrew:

brew install pango

Homebrew подтягивает glib, harfbuzz и fontconfig как зависимости pango. Руководство по установке WeasyPrint — авторитетный источник для других платформ и для устранения неполадок при сбое загрузки.

Опционально добавьте libharfbuzz-subset0 (Debian и Ubuntu; harfbuzz от Homebrew уже включает его). Без него PDF всё ещё рендерится, но каждый шрифт встраивается целиком, а не подмножеством, что делает файл значительно больше.

Затем:

uvx --from 'europassmcp[pdf]' europassmcp

До первого релиза

europassmcp ещё не опубликован на PyPI, и у этого репозитория нет публичного удалённого доступа, поэтому ни URL raw.githubusercontent.com, ни какая-либо из приведённых выше команд не будут работать, пока оба не появятся. Для клона uvx --from . europassmcp и uvx --from '.[pdf]' europassmcp — это те же два пути, а bash install.sh --config-only по-прежнему регистрирует клиента.

Конфигурация клиента

Большинство MCP-клиентов принимают одинаковый блок mcpServers; в Claude Desktop он находится в claude_desktop_config.json.

{
  "mcpServers": {
    "europassmcp": {
      "command": "uvx",
      "args": ["europassmcp"]
    }
  }
}

С экспортом в PDF дополнительный пакет перемещается в аргументы:

{
  "mcpServers": {
    "europassmcp": {
      "command": "uvx",
      "args": ["--from", "europassmcp[pdf]", "europassmcp"]
    }
  }
}

Компиляция схемы занимает около трёх секунд, один раз, при запуске сервера. Клиенту, который быстро завершает тайм-аут первого ответа сервера, может потребоваться больше времени на запуск.

Что получает агент

Черновики хранятся в памяти в течение сеанса, под именем, которое выбирает агент, и собираются по разделам. Ничего не записывается на диск.

Инструмент

Что делает

create_cv

Начинает новый пустой черновик под именем по выбору агента.

set_personal_info

Записывает, о ком этот CV. Единственный раздел, который не может быть пропущен в валидном CV.

add_work_experience

Добавляет одну должность в порядке, в котором она должна быть напечатана.

add_education

Добавляет одну квалификацию или период обучения.

add_language_skill

Добавляет один язык с уровнями CEFR, включая родные языки.

add_digital_skill

Добавляет один цифровой или компьютерный навык.

lookup_country

Находит коды стран Europass по названию страны на любом из языков, документированных схемой.

lookup_language

Находит коды языков Europass аналогичным образом.

search_occupation

Находит коды профессий ISCO-88 по описанию работы.

validate_cv

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

export_xml

Возвращает готовый CV в виде Europass XML. Отказывает черновику, который не пройдёт валидацию.

export_pdf

Компонует CV в PDF с прикреплённым XML и возвращает ссылку на него.

Два из них несут основную часть дизайна. Инструменты поиска существуют, потому что в поставляемых списках кодов содержится 1350 элементов, включая 564 профессии и 197 кодов стран, что слишком много для описания инструмента или контекста модели; агент ищет, а не получает готовый список. А validate_cv отвечает на отклонённое значение допустимыми значениями, наиболее похожими по написанию, так что отклонённый ITA возвращается с IT, что представляет собой тот же поиск в обратном направлении.

PDF возвращается в виде ссылки на ресурс, а не встроенных байтов, потому что документ объёмом в несколько сотен килобайт иначе воспроизводился бы в контексте модели на каждом последующем шаге. Исходный XML путешествует внутри PDF как вложение файла, так что документ, который получает человек, остаётся документом, который машина может прочитать обратно.

Поставляемая схема

Двенадцать XSD-файлов в src/europassmcp/schema/ поставляются, а не загружаются, потому что их больше неоткуда загрузить: каждый URL в europass.cedefop.europa.eu/xml/ с примерно 2021 года отвечает перенаправлением на маркетинговую страницу. Они были восстановлены из Интернет-архива. docs/schema-provenance.md фиксирует, откуда взят каждый файл, единственное внесённое в них изменение и как повторить восстановление.

Лицензирование

Этот дистрибутив объединяет два отдельно лицензируемых массива работ, хранящихся в отдельных каталогах, чтобы ни одна лицензия не трактовалась как покрывающая другую.

  • Собственный код — всё, кроме src/europassmcp/schema/, — находится под лицензией MIT в LICENSE.

  • Поставляемое определение схемы Europass XML в src/europassmcp/schema/ защищено авторским правом Европейского союза 2002-2010, опубликовано Cedefop под Европейской публичной лицензией версии 1.1 (EUPL-1.1). Грант MIT на него не распространяется.

NOTICE полностью воспроизводит грант EUPL-1.1 и распространяется внутри колеса и sdist, что делает схему пригодной для перераспространения. Перераспространение этих файлов, изменённых или нет, означает их передачу вместе с ними.

Разработка

uv sync
uv run pytest
uv run pre-commit install

uv run pre-commit run --all-files выполняет те же проверки ruff, ruff-format и mypy, что и CI. Сгенерированная привязка в src/europassmcp/_generated/ — это вывод xsdata и регенерируется, но никогда не редактируется вручную; CI перегенерирует её и завершается с ошибкой при любом расхождении. scripts/fetch_schema.py повторяет восстановление схемы.

Install Server
A
license - permissive license
A
quality
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • Italy FatturaPA invoices for AI agents: build FPR12 XML, transmit to the SdI, query status.

  • Turn a description into a shareable, editable PDF — invoices, certificates, reports, resumes.

  • AI document editing for agents: draft, edit, export .docx/PDF. 37 MCP tools; agent self-signup.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Tsadoq/EuropassMCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server