¿Eres empresa? Descubre nuestras soluciones y agenda una cita haciendoclic aquí

MCP de candidatos

Documentación técnica de herramientas y capacidades.

¿Qué es el MCP de candidatos?

El MCP de candidatos (@magneto/mcp-candidates) es un servidor MCP que expone capacidades inteligentes sobre candidatos y perfiles profesionales dentro de Magneto Empleos.

  • Búsqueda y búsqueda semántica de candidatos
  • Scoring y fit_analysis
  • Resúmenes de perfil (profile_summary)
  • Gestión: save_profile, save_opt_in
  • Aplicaciones: move_stage, get_pipeline_status, get_applications
  • Memoria contextual e historial conversacional

Instalación

El MCP de candidatos se expone vía Streamable HTTP. Para conectarlo solo necesitás la URL del endpoint y un token de acceso.

1. URL del endpoint

https://api.magneto365.com/mcp/candidates
.

2. Registrar en el cliente MCP

En Cursor, Claude Desktop o cualquier cliente HTTP, apuntá a la URL con transporte http:

{
  "mcpServers": {
    "magneto-candidates": {
      "url": "https://api.magneto365.com/mcp/candidates",
      "transport": "http"
    }
  }
}

3. Autenticación

El gateway valida un access token OAuth 2.1. Para las tools de candidato, el JWT viaja en params._meta.auth.bearerToken en cada tools/call; si falta, la tool responde UNAUTHORIZED.

  • Protected resource: /.well-known/oauth-protected-resource
  • Authorization server: /.well-known/oauth-authorization-server

Autenticación

Las tools de candidato operan con el JWT propio del candidato. Se propaga vía params._meta.auth.bearerToken en cada tools/call. El servidor no almacena credenciales.

{
  "method": "tools/call",
  "params": {
    "name": "candidate.search",
    "arguments": {},
    "_meta": {
      "requestId": "req-uuid",
      "auth": { "bearerToken": "eyJ..." }
    }
  }
}

Si falta bearerToken, la tool responde UNAUTHORIZED sin llegar al API upstream.

Herramientas

candidate.search

Consultar mi perfil

Lectura

Devuelve el perfil completo del candidato autenticado: habilidades, experiencia, nivel de completitud y más.

languagestringOpcional

Código de idioma para localizar la respuesta (ej. "es", "en").

candidate.save

Actualizar mi perfil

Escritura

Crea o edita el perfil del candidato autenticado (PATCH /sign-up/v3/candidate/).

firstNamestringOpcional

Nombre del candidato.

lastNamestringOpcional

Apellido del candidato.

salarynumberOpcional

Expectativa salarial (positivo).

candidateSectorsnumber[]Opcional

Ids de sectores. Resolver con candidate.resolve_catalogue.

availableToRemoteWorkbooleanOpcional

Disponibilidad para trabajo remoto.

studiesobject[]Opcional

Formación académica. Usar replaceStudies para reemplazar.

experiencesobject[]Opcional

Experiencia laboral. Usar replaceExperiences para reemplazar.

missingFieldGroupsstring[]Opcional

Grupos faltantes devueltos por candidate.job_apply.

candidate.resolve_catalogue

Resolver catálogos

Lectura

Lista los catálogos de Magneto (sectores, ciudades, niveles de estudio, jornadas, etc.) o sus items { id, label }.

slugstringOpcional

Slug del catálogo (ej. "sectors"). Sin él, lista todos los catálogos.

termstringOpcional

Término de búsqueda para catálogos templados (min 2 chars).

countryIdnumberOpcional

Filtro de país.

departmentIdnumberOpcional

Filtro de departamento para "cities".

candidate.job_search

Buscar vacantes

Lectura

Lista vacantes publicadas con búsqueda por texto libre y paginación.

querystringOpcional

Texto libre (min 2). Sin él, se aplica el ranking por defecto.

queryFieldstringOpcional

Campo sobre el que aplicar query. Default "all".

pagenumberOpcional

Número de página (1-indexed).

pageSizenumberOpcional

Tamaño de página (20 | 30 | 60).

orderFieldstringOpcional

Campo de orden. "_score" ordena por relevancia.

orderTypestringOpcional

Dirección de orden (ASC | DESC).

onlySavedbooleanOpcional

true para listar solo vacantes guardadas.

candidate.ai_search_jobs

Búsqueda con IA

Lectura

Interpreta una consulta en lenguaje natural y encuentra vacantes por rol, ubicación, modalidad y salario.

querystringRequerido

Consulta en lenguaje natural (min 2).

excludeIdsnumber[]Opcional

Ids de vacantes a excluir.

pageSizenumberOpcional

Tamaño de página (20 | 30 | 60).

candidate.job_suggestions

Vacantes sugeridas

Lectura

Lista vacantes recomendadas para el candidato por el recomendador Mimir (match de perfil + interacciones).

pagenumberOpcional

Número de página (1-indexed).

pageSizenumberOpcional

Cantidad de vacantes por página (max 60).

candidate.job_detail

Detalle de vacante

Lectura

Trae el detalle de una vacante y su cuestionario de prefiltro (si existe).

jobIdnumberRequerido

Id numérico de la vacante en magneto.jobs.api.

languagestringOpcional

Código de idioma para localizar la respuesta.

candidate.job_apply

Postularme a una vacante

Escritura

Postula al candidato autenticado a una vacante (POST /jobs/v1/jobs/apply).

jobIdnumberRequerido

Id de la vacante a la que postularse.

questionnairesobject[]Opcional

Cuestionarios con sus respuestas (id + questions).

suggestedByMatcherbooleanOpcional

true si la postulación viene de una recomendación del matcher.

fromPreApplicationbooleanOpcional

true si el candidato ya hizo una pre-aplicación.

candidate.job_applications

Mis postulaciones

Lectura

Lista las vacantes a las que se postuló el candidato con el estado de cada postulación.

pagenumberOpcional

Número de página (1-indexed).

statusbooleanOpcional

true = activas, false = inactivas (default true).

languagestringOpcional

Código de idioma para localizar la respuesta.