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

MCP de analistas

Documentación técnica de herramientas y capacidades.

¿Qué es el MCP de analistas?

El MCP de analistas (@magneto/mcp-recruiting) expone capacidades relacionadas con vacantes, pipelines y procesos de selección en Magneto Empleos, orientadas a analistas.

  • Administración de vacantes (vacant_create, vacant_search)
  • Pipelines y stages (vacant_stages)
  • Búsqueda y recomendación de candidatos (candidate_search, candidate_suggestions)
  • Importación de candidatos al pipeline (candidate_import)

Instalación

El MCP de analistas 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/recruiting

2. Registrar en el cliente MCP

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

3. Autenticación

El gateway valida un access token OAuth 2.1 con audiencia CRM. El JWT del analista viaja en params._meta.auth.bearerToken en cada tools/call.

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

Autenticación

Este MCP requiere un JWT de analista (audiencia CRM), propagado vía params._meta.auth.bearerToken en cada tools/call. El servidor no almacena credenciales.

{
  "method": "tools/call",
  "params": {
    "name": "recruiting.vacant_search",
    "arguments": {},
    "_meta": {
      "requestId": "req-uuid",
      "auth": { "bearerToken": "eyJ..." }
    }
  }
}
  • recruiting.vacant_create requiere los scopes VC-02-1 / VC-02-2.
  • recruiting.candidate_import requiere el scope vacantsImportAccess.

Sin token válido, la tool responde UNAUTHORIZED sin llegar al API upstream.

Herramientas

recruiting.vacant_create

Crear vacante

Escritura

Crea una vacante en magneto_vacants_api_v2 (POST /vacants/v2/vacant/create).

typeOfVacancyobjectOpcional

Encabezado: isInternal, pageState, status, publicationType.

wizardVacancyobjectOpcional

Asistente: title, vacantDescription, sectorsAndPositions, cities, salary, jobExperience, educationLevels, vacantSkills, finalSection, publishDateAndRenew, socialMediaImage, automaticDiscardIn.

withPublishbooleanOpcional

true publica al momento; false deja en borrador.

isGenerateWithIAbooleanOpcional

Generar la descripción con IA.

commentstringOpcional

Comentario adjunto a la creación.

filesobject[]Opcional

Archivos adjuntos (path, fileName, mimeType, size).

recruiting.vacant_search

Buscar vacantes

Lectura

Lista las vacantes del analista con filtrado y paginación.

statusnumberOpcional

Filtro de estado (0..6).

querystringOpcional

Texto libre de búsqueda.

queryFieldstringOpcional

Campo sobre el que aplicar query.

pagenumberOpcional

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

pageSizenumberOpcional

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

orderFieldstringOpcional

Campo de orden (default created_at).

orderTypestringOpcional

Dirección de orden (ASC | DESC).

queriesobject[]Opcional

Búsqueda multi-campo.

recruiting.vacant_stages

Etapas de la vacante

Lectura

Lista las etapas del pipeline configuradas para una vacante.

vacantIdnumberRequerido

Id de la vacante (de recruiting.vacant_search).

recruiting.candidate_search

Buscar candidatos

Lectura

Busca candidatos en Magneto Catalogue (GET /catalogue/v1/catalogue/search).

querystringOpcional

Texto libre o email (min 2 chars).

queriesobject[]Opcional

Búsqueda multi-campo (field + term).

pagenumberOpcional

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

pageSizenumberOpcional

Tamaño de página.

orderFieldstringOpcional

Campo de orden (default updated_at).

orderTypestringOpcional

Dirección de orden (ASC | DESC).

languagestringOpcional

Código de idioma para localizar la respuesta.

recruiting.candidate_suggestions

Candidatos sugeridos

Lectura

Sugiere los mejores candidatos para una vacante descrita en texto libre, vía el matcher IA de Mimir.

vacantTextstringRequerido

Descripción de la vacante (min 10 chars).

locationsstring[]Opcional

Ubicaciones (puede ir vacío).

educationLevelOrdernumberOpcional

Nivel de educación requerido.

remotebooleanOpcional

true si la vacante es remota.

minSalarynumberOpcional

Salario mínimo.

maxSalarynumberOpcional

Salario máximo.

nCandidatesnumberOpcional

Cantidad de candidatos (default 10).

recruiting.candidate_import

Importar candidato

Escritura

Importa un candidato al pipeline de una vacante (PUT /vacants/v1/applications/import-single/).

vacantIdnumberRequerido

Id de la vacante.

acceptTermsbooleanRequerido

Debe ser true.

candidateIdnumberOpcional

Id del candidato existente (alternativa a email).

emailstringOpcional

Email del candidato (alternativa a candidateId).

firstNamestringOpcional

Nombre (solo candidato nuevo).

lastNamestringOpcional

Apellido (solo candidato nuevo).

identificationNumberstringOpcional

Número de documento (nuevo).

identificationTypenumberOpcional

Tipo de documento (nuevo).

phonestringOpcional

Teléfono (nuevo).

idCodeCountrynumberOpcional

Código de país (nuevo).

stageIdnumberOpcional

Etapa del pipeline (default: primera).

originstringOpcional

Origen del candidato.