Skip to main content
Glama
arimon03

Evaluar MCP Server

by arimon03

Evaluar MCP Server

Servidor MCP (Model Context Protocol) para autenticarse en Evaluar y lanzar procesos eTalent desde tu IDE.

Instalación

1. Clonar y compilar

git clone <repository-url>
cd evaluar-mcp
npm install
npm run build

2. Configurar en tu MCP Host

Obtén la ruta absoluta del proyecto:

# En Windows
cd
# Resultado ejemplo: C:\Users\tu-usuario\proyectos\evaluar-mcp

# En Mac/Linux  
pwd
# Resultado ejemplo: /Users/tu-usuario/proyectos/evaluar-mcp

Claude Desktop

Edita ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "evaluar": {
      "command": "node",
      "args": ["C:\\Users\\tu-usuario\\proyectos\\evaluar-mcp\\dist\\index.js"],
      "env": {
        "EVALUAR_AUTH_URL": "https://auth.evaluar.com/auth/realms/evcore/protocol/openid-connect/token",
        "EVALUAR_API_URL": "https://apis.evaluar.com",
        "EVALUAR_GRAPHQL_URL": "https://apis.evaluar.com/v2/graphql",
        "EVALUAR_CLIENT_ID": "evcap"
      }
    }
  }
}

Cursor

Edita .cursor/mcp.json:

{
  "mcpServers": {
    "evaluar": {
      "command": "node",
      "args": ["C:\\Users\\tu-usuario\\proyectos\\evaluar-mcp\\dist\\index.js"],
      "env": {
        "EVALUAR_AUTH_URL": "https://auth.evaluar.com/auth/realms/evcore/protocol/openid-connect/token",
        "EVALUAR_API_URL": "https://apis.evaluar.com",
        "EVALUAR_GRAPHQL_URL": "https://apis.evaluar.com/v2/graphql",
        "EVALUAR_CLIENT_ID": "evcap"
      }
    }
  }
}

3. Reiniciar tu IDE

Reinicia Claude Desktop, Cursor o tu IDE preferido para que cargue el nuevo MCP server.

Related MCP server: Evaluar MCP Server

Herramientas Disponibles

Autenticación

  • auth_login: Iniciar sesión con usuario y contraseña

  • auth_refresh: Refrescar el token de autenticación

Gestión de Empresas

  • company_list: Listar empresas disponibles

  • company_select: Seleccionar empresa activa

Búsqueda de Positions

  • position_search: Buscar positions por nombre (soporta wildcard)

Procesos eTalent

  • process_create: Crear proceso eTalent (estado DRAFT)

  • process_assign_position: Asignar position a un proceso

  • process_launch: Lanzar proceso (devuelve URL de summary)

Flujo de Uso Típico

  1. Iniciar sesión:

    Usa auth_login con tus credenciales de Evaluar
  2. Seleccionar empresa (si tienes más de una):

    Usa company_list para ver opciones
    Usa company_select para elegir una
  3. Buscar position:

    Usa position_search con el nombre del cargo
  4. Crear y lanzar proceso:

    Usa process_create
    Usa process_assign_position
    Usa process_launch
  5. Acceder al proceso:

    Copia la URL de summary devuelta por process_launch

Ejemplo de Uso

"Necesito lanzar un proceso eTalent para un asesor de ventas"

El MCP te guiará paso a paso:

  1. Pedirá tus credenciales

  2. Si tienes varias empresas, te mostrará opciones

  3. Buscará positions relacionadas con "asesor ventas"

  4. Creará el proceso y te dará la URL de summary

Variables de Entorno

  • EVALUAR_AUTH_URL: URL de autenticación Keycloak

  • EVALUAR_API_URL: Base URL de APIs REST

  • EVALUAR_GRAPHQL_URL: URL de endpoint GraphQL

  • EVALUAR_CLIENT_ID: Client ID OAuth (default: evcap)

Rate Limiting

El servidor implementa un límite de 1 solicitud por segundo para evitar sobrecargar las APIs de Evaluar.

Manejo de Errores

  • 401: Requiere autenticación o refresh de token

  • 403: Permisos insuficientes

  • 5xx: Error del servidor Evaluar

  • Rate limit: Espera requerida antes de siguiente solicitud

Soporte

Este MCP solo soporta procesos tipo etalent. Otros tipos como cap360 o trust están fuera del alcance actual.

Estructura del Proyecto

evaluar-mcp/
├── src/
│   ├── index.ts          # Entry point MCP server
│   ├── tools/            # MCP tools implementations
│   ├── api/              # HTTP client
│   └── types.ts          # TypeScript types
├── dist/                 # Compiled output
├── package.json
└── tsconfig.json

Available Tools

8 tools
auth_loginB

Login to Evaluar using username and password

ParametersJSON Schema
NameRequiredDescriptionDefault
passwordYesYour Evaluar password
usernameYesYour Evaluar username (email)

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description carries the full burden. It states the basic action but does not disclose important behavioral traits such as session creation, token generation, failure behavior, or side effects. An agent is left without information about what happens after successful authentication.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no unnecessary words. It earns its place but offers no additional structural aids such as usage notes or context that could improve the definition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no annotations and no output schema, the description is too thin. It does not explain what the agent can expect as a result (e.g., token or session) or how this login fits into the wider workflow among sibling tools. This leaves critical context missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both parameters. The description adds no additional meaning beyond mentioning 'username and password,' which does not exceed what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Login') with a specific resource ('Evaluar') and the authentication method ('username and password'). It is easily distinguishable from sibling auth_refresh, which implies a different operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided about when to use this tool versus auth_refresh, or about preconditions such as needing to log in before accessing other tools. The intended usage context must be inferred by the agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

auth_refreshB

Refresh the authentication token

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full responsibility for behavioral disclosure. Merely saying 'refresh the authentication token' does not explain what happens to the existing token, whether a new token is returned, if authentication is required, or if the operation is idempotent. This is a significant gap for a security-sensitive operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no unnecessary words. It is appropriately concise for a parameterless tool, though it could have added a brief clause about the result or side effects without becoming verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has no output schema and no annotations, so the description is the only source of operational context. It fails to explain what the refresh produces, when it is needed, or how it relates to auth_login. For an authentication operation, an agent needs more context to invoke it correctly and safely.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema is empty and the tool takes zero parameters, so there is nothing to document. Per the baseline for zero-parameter tools, the description need not add parameter details, and it doesn't conflict with the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('refresh') and resource ('authentication token'), clearly indicating the tool's core action. It is distinguishable from the sibling auth_login, which implies initial authentication, though the description does not explicitly contrast them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives such as auth_login. It doesn't mention that refresh should be used when a token is expiring, nor does it state any prerequisites or conditions for calling it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

company_listA

List all companies available to the current user

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full disclosure burden. It does disclose one behavioral trait — results are scoped to the current user — and the verb 'List' implies a read-only operation. It does not mention authentication prerequisites, pagination, ordering, or response format, but for a zero-parameter list operation the core behavior is adequately conveyed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

An eight-word sentence with no filler. Every word earns its place, and the core purpose is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple zero-input, zero-annotation listing tool, the description states the essential purpose and scope. Minor gaps remain: no output schema means the return shape is undocumented, and the auth prerequisite is only implied by 'current user' and the auth_* siblings. These are small concerns for such a trivial tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the schema is trivially complete and there is nothing for the description to add. Per the baseline rule for zero-parameter tools, a 4 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb ('List'), a specific resource ('companies'), and a scope ('available to the current user'). It is immediately distinguishable from its closest sibling, company_select, which describes a selection operation rather than a listing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The usage context is implied by the plain meaning of the verb and resource, and the sibling set (auth_login, auth_refresh, company_select) hints at an authentication-then-list-then-select workflow. However, there is no explicit statement of when to use this tool versus company_select, or any exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

company_selectB

Select a company as the active company

ParametersJSON Schema
NameRequiredDescriptionDefault
companyIdYesThe ID of the company to select

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden, but it only says 'select' and 'active company.' It doesn't disclose persistence, authentication requirements, whether the previous active company is overwritten, or what side effects this selection has on other tools. This is inadequate for a state-changing tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no filler or redundancy. It communicates the operation and target resource directly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is structurally simple with one documented parameter, so the description is not grossly incomplete. However, it lacks context about how the active company is used by other tools and how to obtain a valid companyId. This is a notable gap for an agent trying to decide when to call it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema fully documents the single parameter `companyId` with 100% coverage, so the description adds no parameter detail. It also doesn't explain where the ID comes from or any validation constraints. Baseline 3 is appropriate because the schema does the necessary work.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear verb ('select') and resource ('company'), and adds the important effect: the company becomes the active company. This distinguishes it from company_list, but it doesn't explicitly name siblings or elaborate on what 'active' means.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance on when to call this tool relative to siblings like company_list or process_*. It implies a state change but never states that selection is a prerequisite for subsequent operations or that company IDs should come from company_list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

process_assign_positionB

Assign a position to a process

ParametersJSON Schema
NameRequiredDescriptionDefault
agencyIdNoOptional agency ID
processIdYesThe ID of the process
positionIdYesThe ID of the position to assign
departmentIdNoOptional department ID

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description offers only the bare action. It does not disclose whether the assignment overwrites an existing position, requires specific permissions, or has any side effects. This is the minimum implied mutation with no behavioral detail.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One concise sentence with no filler or repetition, making it efficient and front-loaded. However, the brevity sacrifices important usage and behavioral context, so it is not a fully effective description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no annotations and no output schema, this description is too sparse. It omits behavioral consequences and usage context; though the schema covers parameters, the agent lacks details about side effects and when to call it. It is minimally usable but incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all four parameters are documented in the input schema. The description adds no parameter-specific meaning beyond the action, matching the baseline of 3 for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific action—'Assign'—with a clear object ('a position') and recipient ('a process'). This distinguishes it from siblings like process_create and process_launch, which are creation and execution operations, and position_search, which is a lookup.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to choose this tool over alternatives; no mention of prerequisites, sequencing, or exclusions. The only implied usage is the action itself, leaving the agent to infer when it applies.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

process_createA

Create a new eTalent process in DRAFT status

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoProcess name (default: "Proceso eTalent")Proceso eTalent
languageNoProcess language (default: "es")es
timeZoneNoTime zone (default: "America/Bogota")America/Bogota

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It does add valuable context by specifying the created process will be in DRAFT status, but it does not disclose side effects, return values, required permissions, or any error behavior. This is minimal but not wholly inadequate for a simple create operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single efficient sentence that front-loads the action, resource, and state. Every word earns its place, and there is no repetition of schema details or irrelevant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool itself is simple with fully documented optional parameters, but the description omits important surrounding context: it does not mention authentication requirements, whether a company must be selected first (as hinted by company_select sibling), or what the tool returns. These gaps are notable given the absence of annotations and an output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with all three parameters having descriptions and defaults. The description adds no parameter-level information beyond what the schema already provides, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Create'), identifies the resource ('a new eTalent process'), and adds the meaningful state ('in DRAFT status'). This clearly differentiates it from sibling tools like process_launch, which suggest activating rather than creating a process.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The usage is implied by the action 'Create' - an agent would understand to call this when needing to create a draft process. However, there is no explicit guidance about when not to use it, no mention of prerequisites, and no differentiation from alternatives such as process_launch or process_assign_position.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

process_launchA

Launch a process (moves from DRAFT to ACTIVE)

ParametersJSON Schema
NameRequiredDescriptionDefault
processIdYesThe ID of the process to launch

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry behavioral disclosure. It does state the core side effect — changing a process from DRAFT to ACTIVE — which is useful. However, it does not mention any authorization requirements, whether the operation is idempotent, what happens if the process is already ACTIVE, or failure behavior, so some behavioral transparency gaps remain.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is one short sentence with a compact parenthetical that adds meaningful state information. There is no filler, and the key behavior is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter state-transition tool, the description is largely complete: it identifies the action, the target, and the resulting state. Since there is no output schema, a brief note on expected result or errors would be even more helpful, but the description provides enough context for correct selection and basic invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the single processId parameter is already documented in the schema. The description adds no additional meaning about the parameter beyond what the schema gives, which is acceptable given the baseline for full schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Launch') and resource ('a process'), and the parenthetical 'moves from DRAFT to ACTIVE' adds a precise state-transition meaning. This distinguishes it from sibling tools like process_create and process_assign_position, which handle different lifecycle stages.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The parenthetical makes the intended use case clear: this tool is appropriate when a process is in DRAFT and should transition to ACTIVE. It does not explicitly name when not to use it or list alternatives, but the state-transition context effectively signals when it applies.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 8 tool updatesv1.0.0
    • First observedauth_login
    • First observedauth_refresh
    • First observedcompany_list
    • First observedcompany_select
    • First observedposition_search
    • First observedprocess_assign_position
    • First observedprocess_create
    • First observedprocess_launch

TDQS

A3.7/5.0

Scored across 8 tools

Disambiguation5/5

Each tool maps cleanly to a distinct action: authentication, company context, position lookup, and process lifecycle steps. There is no meaningful overlap between tools.

Naming Consistency5/5

All tool names follow a consistent noun_verb pattern with clear prefixes (auth_, company_, position_, process_). This makes the API predictable and easy to navigate.

Tool Count5/5

With 8 tools, the server is well-scoped for an authentication, company selection, position search, and process creation workflow. Each tool contributes a meaningful step.

Completeness4/5

The process lifecycle is covered from creation through launch, but there is no way to list, view, or update existing processes. This is a minor gap that agents can partially work around but may hinder tracking.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables interaction with SAP ABAP systems through ABAP Development Tools (ADT), providing access to repository objects, source code, where-used analysis, and SQL queries with support for both on-premise and BTP systems.
    3
    -
  • F
    license
    A
    quality
    D
    maintenance
    Enables users to manage and launch eTalent recruitment processes on the Evaluar platform directly from their IDE. It supports authentication, company selection, position searching, and end-to-end process management including creation and assignment.
    8
    -
  • A
    license
    A
    quality
    D
    maintenance
    Enables interaction with Xray Cloud and Data Center for test management, including authentication, GraphQL queries, test execution/plan management, and result import via MCP.
    9
    6 npm
    MIT