EuropassMCP
EuropassMCP
Un servidor MCP que permite a un agente de IA ensamblar un CV Europass y exportarlo como XML Europass estrictamente conforme al esquema, o como PDF que lleva ese XML dentro.
El CV Europass es el formato de currículum vitae estandarizado de la Unión Europea. Su forma legible por máquina es un documento XML que se ajusta a la Definición de Esquema XML del CV Europass versión 3.0.3. Este servidor ofrece al agente un puñado de herramientas pequeñas y acotadas por sección para rellenarlo a lo largo de una conversación, y se niega a exportar cualquier cosa que el esquema rechazaría, de modo que "casi válido" no es un estado al que pueda llegar un documento terminado.
No oficial
Este proyecto no está afiliado, respaldado ni producido por la Unión Europea, la Comisión Europea o Cedefop. No incluye ningún emblema de la UE ni la marca Europass; el PDF que produce es una imitación independiente del diseño de Europass, no el documento oficial, y así lo indica en la página. Europass es una marca comercial de la Unión Europea.
El único activo de la Unión Europea que este repositorio redistribuye es el propio esquema XML, bajo la licencia EUPL-1.1 con la que sus autores lo publicaron. Véase Licencias.
Requisitos
Python 3.11 o más reciente.
Un cliente MCP que pueda lanzar un servidor a través de stdio.
Solo para la exportación a PDF, cuatro bibliotecas del sistema que pip no puede instalar. Véase Con exportación a PDF.
Related MCP server: layerone-mcp
Instalación
En una línea
curl -fsSL https://raw.githubusercontent.com/Tsadoq/EuropassMCP/main/install.sh | bashEso instala uv si falta, instala el servidor como una herramienta de uv y lo registra en tu cliente: mediante claude mcp add cuando la interfaz de línea de comandos de Claude está en tu PATH, y de lo contrario fusionando una entrada mcpServers en claude_desktop_config.json. La fusión reescribe esa única entrada y deja intactos todos los demás servidores del archivo, de modo que ejecutar el comando dos veces sigue dejando exactamente un europassmcp.
Las banderas llegan al script a través de la tubería mediante bash -s --:
curl -fsSL https://raw.githubusercontent.com/Tsadoq/EuropassMCP/main/install.sh | bash -s -- --with-pdf--with-pdf añade el extra de PDF y luego te remite a Con exportación a PDF para las bibliotecas del sistema que no puede instalar por ti. --config-only salta directamente a registrar el cliente, para una instalación que ya tengas.
Enviar una URL a un shell ejecuta lo que esa URL sirve. Si no es un trato que quieras hacer, el script es un archivo como cualquier otro:
curl -fsSL https://raw.githubusercontent.com/Tsadoq/EuropassMCP/main/install.sh -o install.sh
less install.sh
bash install.shA mano
El servidor habla MCP a través de stdio, así que en uso normal un cliente lo lanza en lugar de ejecutarlo tú manualmente. Lo que el script hace en tu nombre es instalar el servidor y escribir ese comando de lanzamiento en la configuración del cliente:
uv tool install europassmcp # or: uv tool install 'europassmcp[pdf]'seguido de la estrofa en Configuración del cliente.
Instalar de antemano es opcional, sin embargo. Los comandos siguientes lanzan el servidor mediante uvx, que lo obtiene bajo demanda; cualquiera de ellos es lo que va en esa estrofa, y ejecutar uno en una terminal inicia un servidor que espera en stdin.
Solo XML
uvx europassmcpNo se necesita nada fuera de Python. Todas las herramientas funcionan excepto export_pdf, que se niega con un mensaje que nombra el comando que lo arreglaría.
Con exportación a PDF
La exportación a PDF pasa por WeasyPrint, que carga Pango, PangoFT2, HarfBuzz y fontconfig a través de la ABI de C en el momento de la importación. pip no puede instalar ninguno de ellos, así que europassmcp[pdf] se instala limpiamente en una máquina que no tiene ninguno y luego rechaza cada PDF.
Instálalos con el gestor de paquetes del sistema antes de instalar el extra. Si no lo haces, export_pdf responde con la misma negativa que da a una instalación que nunca tuvo el extra: el subyacente OSError: cannot load library 'libpango-1.0-0' se captura y nunca llega a ti. Así que en una instalación que ya tiene europassmcp[pdf], esa negativa significa que estas bibliotecas son la parte que falta.
En Debian y Ubuntu:
sudo apt install libpango-1.0-0 libpangoft2-1.0-0 libharfbuzz0b libfontconfig1En macOS, con Homebrew:
brew install pangoHomebrew trae glib, harfbuzz y fontconfig como dependencias de pango. La guía de instalación de WeasyPrint es la autoridad para otras plataformas y para solucionar problemas de una carga que falla de todos modos.
Opcionalmente añade libharfbuzz-subset0 (Debian y Ubuntu; el harfbuzz de Homebrew ya lo incluye). Sin él los PDF aún se renderizan, pero cada fuente se incrusta completa en lugar de subconjuntada, lo que hace el archivo considerablemente más grande.
Entonces:
uvx --from 'europassmcp[pdf]' europassmcpAntes del primer lanzamiento
europassmcp aún no está en PyPI, y este repositorio no tiene remoto público, así que ni la URL de raw.githubusercontent.com ni ninguno de los comandos anteriores se resolverán hasta que ambos existan. Contra un clon, uvx --from . europassmcp y uvx --from '.[pdf]' europassmcp son los mismos dos caminos, y bash install.sh --config-only sigue registrando el cliente.
Configuración del cliente
La mayoría de los clientes MCP aceptan la misma estrofa mcpServers; en Claude Desktop vive en claude_desktop_config.json.
{
"mcpServers": {
"europassmcp": {
"command": "uvx",
"args": ["europassmcp"]
}
}
}Con exportación a PDF, el extra se mueve a los argumentos:
{
"mcpServers": {
"europassmcp": {
"command": "uvx",
"args": ["--from", "europassmcp[pdf]", "europassmcp"]
}
}
}Compilar el esquema tarda unos tres segundos, una vez, mientras el servidor arranca. Un cliente que agote el tiempo de espera de la primera respuesta de un servidor rápidamente puede necesitar un margen de arranque más largo.
Lo que obtiene el agente
Los borradores viven en memoria durante la sesión, identificados por un nombre que elige el agente, y se construyen sección por sección. No se escribe nada en disco.
Herramienta | Qué hace |
| Inicia un nuevo borrador vacío bajo un nombre que elige el agente. |
| Registra de quién es el CV. La única sección que un CV válido no puede omitir. |
| Añade un trabajo, en el orden en que debe imprimirse. |
| Añade un período de cualificación o formación. |
| Añade un idioma con sus niveles MCER, incluidas las lenguas maternas. |
| Añade una habilidad digital o informática. |
| Encuentra códigos de país Europass a partir de un nombre de país en cualquiera de los idiomas que documenta el esquema. |
| Encuentra códigos de idioma Europass de la misma manera. |
| Encuentra códigos de ocupación ISCO-88 a partir de una descripción de trabajo. |
| Informa de todo lo que el esquema objeta, con los valores válidos más cercanos para un código rechazado. |
| Devuelve el CV terminado como XML Europass. Rechaza un borrador que no validaría. |
| Maqueta el CV como PDF con el XML adjunto y devuelve un enlace a él. |
Dos de ellas llevan la mayor parte del diseño. Las herramientas de búsqueda existen porque las listas de códigos incluidas tienen 1350 miembros, incluidas 564 ocupaciones y 197 códigos de país, que es mucho más de lo que cabe en una descripción de herramienta o en el contexto de un modelo; el agente busca en lugar de recibir una lista. Y validate_cv responde a un valor rechazado con los valores válidos que se escriben de forma más parecida, de modo que un ITA rechazado vuelve con IT, que es la misma búsqueda desde la otra dirección.
El PDF vuelve como un enlace de recurso en lugar de como bytes en línea, porque un documento de varios cientos de kilobytes se reproduciría en el contexto del modelo en cada turno posterior. El XML fuente viaja dentro del PDF como archivo adjunto, de modo que el documento que recibe una persona sigue siendo el documento que una máquina puede leer.
El esquema incluido
Los doce archivos XSD bajo src/europassmcp/schema/ están incluidos en lugar de obtenerse, porque no queda de dónde obtenerlos: cada URL bajo europass.cedefop.europa.eu/xml/ ha respondido con una redirección a una página de marketing desde aproximadamente 2021. Se recuperaron del Archivo de Internet. docs/schema-provenance.md registra de dónde vino cada archivo, la única modificación que se les hizo y cómo repetir la recuperación.
Licencias
Esta distribución agrega dos cuerpos de trabajo con licencias separadas, mantenidos en directorios separados para que ninguna licencia tenga que leerse como que cubre a la otra.
Código de primera parte, que es todo excepto
src/europassmcp/schema/, está bajo la Licencia MIT enLICENSE.La Definición de Esquema XML Europass incluida, en
src/europassmcp/schema/, es Copyright Unión Europea 2002-2010, publicada por Cedefop bajo la Licencia Pública de la Unión Europea versión 1.1 (EUPL-1.1). La concesión MIT no se extiende a ella.
NOTICE declara la concesión EUPL-1.1 en su totalidad y viaja dentro de la rueda y el sdist, que es lo que mantiene el esquema redistribuible. Redistribuir estos archivos, modificados o no, significa llevarla con ellos.
Desarrollo
uv sync
uv run pytest
uv run pre-commit installuv run pre-commit run --all-files ejecuta las mismas comprobaciones de ruff, ruff-format y mypy que hace CI. El enlace generado bajo src/europassmcp/_generated/ es salida de xsdata y se regenera, nunca se edita a mano; CI lo regenera y falla ante cualquier diff. scripts/fetch_schema.py re-ejecuta la recuperación del esquema.
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