Skip to main content
Glama
Tsadoq

EuropassMCP

by Tsadoq

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 | bash

Eso 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.sh

A 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 europassmcp

No 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 libfontconfig1

En macOS, con Homebrew:

brew install pango

Homebrew 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]' europassmcp

Antes 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

create_cv

Inicia un nuevo borrador vacío bajo un nombre que elige el agente.

set_personal_info

Registra de quién es el CV. La única sección que un CV válido no puede omitir.

add_work_experience

Añade un trabajo, en el orden en que debe imprimirse.

add_education

Añade un período de cualificación o formación.

add_language_skill

Añade un idioma con sus niveles MCER, incluidas las lenguas maternas.

add_digital_skill

Añade una habilidad digital o informática.

lookup_country

Encuentra códigos de país Europass a partir de un nombre de país en cualquiera de los idiomas que documenta el esquema.

lookup_language

Encuentra códigos de idioma Europass de la misma manera.

search_occupation

Encuentra códigos de ocupación ISCO-88 a partir de una descripción de trabajo.

validate_cv

Informa de todo lo que el esquema objeta, con los valores válidos más cercanos para un código rechazado.

export_xml

Devuelve el CV terminado como XML Europass. Rechaza un borrador que no validaría.

export_pdf

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 en LICENSE.

  • 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 install

uv 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.

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