EuropassMCP
EuropassMCP
Ein MCP-Server, der es einem KI-Agenten ermöglicht, einen Europass-Lebenslauf zu erstellen und ihn als strikt schema-konformes Europass-XML oder als PDF mit eingebettetem XML zu exportieren.
Der Europass-Lebenslauf ist das standardisierte Lebenslaufformat der Europäischen Union. Seine maschinenlesbare Form ist ein XML-Dokument, das der Europass-CV-XML-Schemadefinition Version 3.0.3 entspricht. Dieser Server stellt einem Agenten eine Handvoll kleiner, abschnittsbezogener Werkzeuge zur Verfügung, um einen solchen Lebenslauf im Laufe eines Gesprächs auszufüllen, und weigert sich, etwas zu exportieren, das das Schema ablehnen würde. So ist „fast gültig“ kein Zustand, den ein fertiges Dokument erreichen kann.
Inoffiziell
Dieses Projekt ist nicht verbunden mit, unterstützt von oder hergestellt von der Europäischen Union, der Europäischen Kommission oder Cedefop. Es enthält kein EU-Emblem und kein Europass-Wortzeichen; das von ihm erzeugte PDF ist eine unabhängige Nachbildung des Europass-Layouts, nicht das offizielle Dokument, und weist auf der Seite darauf hin. Europass ist eine Marke der Europäischen Union.
Das einzige Vermögensgut der Europäischen Union, das dieses Repository weiterverbreitet, ist das XML-Schema selbst, unter der EUPL-1.1-Lizenz, mit der seine Autoren es veröffentlicht haben. Siehe Lizenzierung.
Anforderungen
Python 3.11 oder neuer.
Ein MCP-Client, der einen Server über stdio starten kann.
Nur für den PDF-Export: vier Systembibliotheken, die pip nicht installieren kann. Siehe Mit PDF-Export.
Related MCP server: layerone-mcp
Installation
Eine Zeile
curl -fsSL https://raw.githubusercontent.com/Tsadoq/EuropassMCP/main/install.sh | bashDas installiert uv, falls es fehlt, installiert den Server als uv-Werkzeug und registriert ihn bei Ihrem Client: über claude mcp add, wenn die Claude-Befehlszeilenschnittstelle in Ihrem PATH ist, andernfalls durch Zusammenführen eines einzelnen mcpServers-Eintrags in claude_desktop_config.json. Das Zusammenführen überschreibt diesen einen Eintrag und lässt jeden anderen Server in der Datei unberührt, sodass das zweimalige Ausführen des Befehls weiterhin genau ein europassmcp hinterlässt.
Flags erreichen das Skript über die Pipe mittels bash -s --:
curl -fsSL https://raw.githubusercontent.com/Tsadoq/EuropassMCP/main/install.sh | bash -s -- --with-pdf--with-pdf fügt das PDF-Extra hinzu und verweist Sie dann auf Mit PDF-Export für die Systembibliotheken, die es nicht für Sie installieren kann. --config-only überspringt direkt die Registrierung des Clients, für eine Installation, die Sie bereits haben.
Das Einleiten einer URL in eine Shell führt aus, was diese URL liefert. Wenn das kein Handel ist, den Sie eingehen möchten, ist das Skript eine Datei wie jede andere:
curl -fsSL https://raw.githubusercontent.com/Tsadoq/EuropassMCP/main/install.sh -o install.sh
less install.sh
bash install.shVon Hand
Der Server spricht MCP über stdio, sodass im normalen Gebrauch ein Client ihn startet, anstatt dass Sie ihn von Hand ausführen. Was das Skript in Ihrem Namen tut, ist, den Server zu installieren und diesen Startbefehl in die Konfiguration des Clients zu schreiben:
uv tool install europassmcp # or: uv tool install 'europassmcp[pdf]'gefolgt von der Strophe unter Client-Konfiguration.
Die Installation im Voraus ist jedoch optional. Die folgenden Befehle starten den Server über uvx, das ihn bei Bedarf abruft; einer von beiden ist das, was in diese Strophe gehört, und das Ausführen eines in einem Terminal startet einen Server, der auf stdin wartet.
Nur XML
uvx europassmcpAußer Python ist nichts erforderlich. Jedes Werkzeug funktioniert außer export_pdf, das sich mit einer Meldung weigert, die den Befehl nennt, der es beheben würde.
Mit PDF-Export
Der PDF-Export läuft über WeasyPrint, das Pango, PangoFT2, HarfBuzz und fontconfig über die C-ABI zum Importzeitpunkt lädt. pip kann keines davon installieren, daher installiert sich europassmcp[pdf] sauber auf einem Rechner, der keines davon hat, und lehnt dann jedes PDF ab.
Installieren Sie sie mit dem Systempaketmanager, bevor Sie das Extra installieren. Wenn Sie das nicht tun, antwortet export_pdf mit derselben Ablehnung, die es einer Installation gibt, die das Extra nie hatte: Der zugrunde liegende OSError: cannot load library 'libpango-1.0-0' wird abgefangen und erreicht Sie nie. Bei einer Installation, die bereits europassmcp[pdf] hat, bedeutet diese Ablehnung, dass diese Bibliotheken der fehlende Teil sind.
Auf Debian und Ubuntu:
sudo apt install libpango-1.0-0 libpangoft2-1.0-0 libharfbuzz0b libfontconfig1Auf macOS mit Homebrew:
brew install pangoHomebrew zieht glib, harfbuzz und fontconfig als Abhängigkeiten von pango ein. WeasyPrints Installationsanleitung ist die Autorität für andere Plattformen und für die Fehlerbehebung bei einem Laden, das trotzdem fehlschlägt.
Optional können Sie libharfbuzz-subset0 hinzufügen (Debian und Ubuntu; Homebrews harfbuzz enthält es bereits). Ohne es werden PDFs weiterhin gerendert, aber jede Schriftart wird vollständig eingebettet statt unterteilt, was die Datei erheblich vergrößert.
Dann:
uvx --from 'europassmcp[pdf]' europassmcpVor der ersten Veröffentlichung
europassmcp ist noch nicht auf PyPI, und dieses Repository hat kein öffentliches Remote, daher werden weder die raw.githubusercontent.com-URL noch einer der obigen Befehle aufgelöst, bis beides existiert. Gegenüber einem Klon sind uvx --from . europassmcp und uvx --from '.[pdf]' europassmcp dieselben zwei Pfade, und bash install.sh --config-only registriert weiterhin den Client.
Client-Konfiguration
Die meisten MCP-Clients verwenden dieselbe mcpServers-Strophe; in Claude Desktop befindet sie sich in claude_desktop_config.json.
{
"mcpServers": {
"europassmcp": {
"command": "uvx",
"args": ["europassmcp"]
}
}
}Mit PDF-Export wandert das Extra in die Argumente:
{
"mcpServers": {
"europassmcp": {
"command": "uvx",
"args": ["--from", "europassmcp[pdf]", "europassmcp"]
}
}
}Das Kompilieren des Schemas dauert etwa drei Sekunden, einmal, während der Server startet. Ein Client, der die erste Antwort eines Servers schnell mit einem Timeout belegt, benötigt möglicherweise eine längere Startzeit.
Was der Agent erhält
Entwürfe leben für die Dauer der Sitzung im Speicher, unter einem Namen, den der Agent wählt, und werden Abschnitt für Abschnitt aufgebaut. Es wird nichts auf die Festplatte geschrieben.
Tool | Was es tut |
| Startet einen neuen leeren Entwurf unter einem Namen, den der Agent wählt. |
| Erfasst, um wen es sich bei dem Lebenslauf handelt. Der einzige Abschnitt, den ein gültiger Lebenslauf nicht auslassen kann. |
| Fügt einen Job in der Reihenfolge hinzu, in der er gedruckt werden soll. |
| Fügt eine Qualifikation oder einen Ausbildungszeitraum hinzu. |
| Fügt eine Sprache mit ihren CEFR-Niveaus hinzu, einschließlich Muttersprachen. |
| Fügt eine digitale oder Computerfertigkeit hinzu. |
| Findet Europass-Ländercodes aus einem Ländernamen in einer der Sprachen, die das Schema dokumentiert. |
| Findet Europass-Sprachcodes auf dieselbe Weise. |
| Findet ISCO-88-Berufscodes aus einer Berufsbeschreibung. |
| Meldet alles, was das Schema beanstandet, mit den nächstgelegenen gültigen Werten für einen abgelehnten Code. |
| Gibt den fertigen Lebenslauf als Europass-XML zurück. Lehnt einen Entwurf ab, der nicht validieren würde. |
| Legt den Lebenslauf als PDF mit angehängtem XML aus und gibt einen Link darauf zurück. |
Zwei davon tragen den Großteil des Designs. Die Nachschlagewerkzeuge existieren, weil die mitgelieferten Codelisten 1350 Einträge enthalten, darunter 564 Berufe und 197 Ländercodes, was weit mehr ist, als in eine Werkzeugbeschreibung oder in den Kontext eines Modells gehört; der Agent sucht, anstatt eine Liste zu erhalten. Und validate_cv antwortet auf einen abgelehnten Wert mit den gültigen Werten, die ihm am ähnlichsten geschrieben sind, sodass ein abgelehntes ITA mit IT zurückkommt, was dieselbe Suche aus der anderen Richtung ist.
Das PDF kommt als Ressourcenlink zurück und nicht als eingebettete Bytes, da ein Dokument von mehreren hundert Kilobyte sonst bei jeder späteren Runde in den Kontext des Modells wiedergegeben würde. Das Quell-XML reist im PDF als Dateianhang, sodass das Dokument, das eine Person erhält, immer noch das Dokument ist, das eine Maschine zurücklesen kann.
Das mitgelieferte Schema
Die zwölf XSD-Dateien unter src/europassmcp/schema/ sind mitgeliefert und nicht abgerufen, weil es keine Stelle mehr gibt, von der man sie abrufen könnte: Jede URL unter europass.cedefop.europa.eu/xml/ hat seit etwa 2021 mit einer Weiterleitung auf eine Marketingseite geantwortet. Sie wurden aus dem Internet Archive wiederhergestellt. docs/schema-provenance.md dokumentiert, woher jede Datei stammt, die eine Änderung, die an ihnen vorgenommen wurde, und wie die Wiederherstellung wiederholt werden kann.
Lizenzierung
Diese Distribution bündelt zwei getrennt lizenzierte Werke, die in getrennten Verzeichnissen aufbewahrt werden, sodass keine Lizenz als die andere abdeckend gelesen werden muss.
Code von Erstanbietern, also alles außer
src/europassmcp/schema/, steht unter der MIT-Lizenz inLICENSE.Die mitgelieferte Europass-XML-Schemadefinition in
src/europassmcp/schema/ist urheberrechtlich geschützt durch die Europäische Union 2002-2010, veröffentlicht von Cedefop unter der Europäischen Union Public Licence Version 1.1 (EUPL-1.1). Die MIT-Lizenz erstreckt sich nicht darauf.
NOTICE gibt die EUPL-1.1-Lizenz vollständig wieder und reist im Wheel und im Sdist mit, was das Schema weiterverbreitbar hält. Die Weiterverbreitung dieser Dateien, ob modifiziert oder nicht, bedeutet, sie mitzuführen.
Entwicklung
uv sync
uv run pytest
uv run pre-commit installuv run pre-commit run --all-files führt dieselben ruff-, ruff-format- und mypy-Prüfungen aus wie CI. Die generierte Bindung unter src/europassmcp/_generated/ ist xsdata-Ausgabe und wird neu generiert, nie von Hand bearbeitet; CI generiert sie neu und schlägt bei jeder Abweichung fehl. scripts/fetch_schema.py führt die Schema-Wiederherstellung erneut aus.
Maintenance
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
AlicenseAqualityAmaintenanceResume tailoring, cover letter generation, CV PDF export, and job search tools for AI agents. 18 tools powered by the Laddro Career API.18107MIT
layerone-mcpofficial
AlicenseAqualityCmaintenanceEnables AI agents to generate documents (PDF/DOCX/Factur-X) and manage electronic signatures (eIDAS/PAdES) via natural language using LayerOne's DocX and Sign APIs.2046MIT- AlicenseNot gradedqualityBmaintenanceEnables AI agents to issue Poland structured e-invoices (faktura ustrukturyzowana) through KSeF 2.0, handling FA(3) XML building, encrypted session flow, and KSeF number retrieval.MIT
- FlicenseNot gradedqualityAmaintenanceEnables AI agents to create and manage e-invoices through natural language, supporting EU compliance formats like ZUGFeRD and XRechnung, as well as US plain PDF invoices.7
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.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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