# Talenta MCP by usefulapi (remote · talenta.usefulapi.io)

MCP server for Talenta — read employee, attendance, leave, payroll and recruitment data.

- Trust score: 18/100 (low)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- remote · `talenta.usefulapi.io`: 18/100 (this document), [markdown](https://verifymcp.io/servers/io-usefulapi-talenta/talenta.md), [page](https://verifymcp.io/servers/io-usefulapi-talenta/talenta)

## Channel facts

- Endpoint: `https://talenta.usefulapi.io/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.6.3`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-05.

- **Endpoint Security**: 46/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation not yet verified: we couldn't confirm whether this endpoint requires it.
  - HTTPS enforcement could not be verified: the plaintext port redirected somewhere other than https, so enforcement is unproven.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 0/100
  - Transport check failed: declared streamable-http, but the endpoint redirected instead of responding directly.
- **Schema Quality & AI Usability**: 0/100
  - Schema not yet verified: we couldn't read the endpoint's schema, or could read only part of its tool list.
- **Stability & Change Management**: 0/100
  - Stability not yet verified: not enough scan history yet (needs a 30-day window).
- **Tool Coverage**: 0/100
  - Tool coverage not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.
- **Tool Safety**: 0/100
  - Tool safety not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.
- **Capabilities**: 0/100
  - Capabilities not yet verified: we couldn't read the endpoint's capabilities.

**Unverified: 5 categories.** Categories scored 0 because we could not verify them: authentication we do not have, an unreachable endpoint, or not enough scan history. We only credit what we can confirm.

## Install

### How do I install the Talenta MCP by usefulapi server?

Talenta MCP by usefulapi is a hosted endpoint at https://talenta.usefulapi.io/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http io-usefulapi-talenta 'https://talenta.usefulapi.io/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "io-usefulapi-talenta": {
      "url": "https://talenta.usefulapi.io/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "io-usefulapi-talenta": {
      "type": "http",
      "url": "https://talenta.usefulapi.io/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.io-usefulapi-talenta]
url = "https://talenta.usefulapi.io/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "io-usefulapi-talenta": {
      "type": "remote",
      "url": "https://talenta.usefulapi.io/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add io-usefulapi-talenta --url 'https://talenta.usefulapi.io/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  io-usefulapi-talenta:
    url: "https://talenta.usefulapi.io/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "io-usefulapi-talenta": {
      "Transport": "http",
      "Url": "https://talenta.usefulapi.io/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add io-usefulapi-talenta -t streamable-http -u 'https://talenta.usefulapi.io/mcp'
```

### Other

```json
{
  "mcpServers": {
    "io-usefulapi-talenta": {
      "type": "http",
      "url": "https://talenta.usefulapi.io/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-02 (score 18, −47)

- [security regression] Endpoint reachability: reachable → not serving MCP
- [security regression] Tool safety: pass → unverified
- [security regression] Authorization: pass → unverified
- [security regression] Stability: 0.03 → unverified
- [functional regression] Schema quality: 100 → unverified
- [functional regression] Capabilities: pass → unverified
- [functional regression] Tool coverage: 100 → unverified

### 2026-11-01 (score 65, 0)

- [functional improvement] Stability: unverified → 0.03

### 2026-10-31 (score 65)

First indexed and scored.

## MCP tools (30)

### `talenta_list_employees` (~358 tokens)

List employees

List the employees of the company (Talenta Data API v3) with name, employee id, email, branch, organization, job position, employment status, join/resign dates and more. Filter by user ids, email, branch, organization, job position, job level, employment status, or join/created/modified dates. `include` adds sub-objects (approval line, family, education, payroll info, custom fields); use it sparingly, it slows the call. Contains personal data. GET /v3/employees.

Input parameters:

- `branch_ids` (array): Only these branch ids (0 = head office).
- `email` (string): Only the employee with this email.
- `employment_status_id` (integer): Only this employment status id.
- `include` (array): Extra sub-objects per employee.
- `job_level_id` (integer): Only this job level id.
- `job_position_ids` (array): Only these job position ids.
- `join_end_date` (string): Joined on or before (yyyy-mm-dd).
- `join_start_date` (string): Joined on or after (yyyy-mm-dd).
- `limit` (integer): Results per page, 1-100 (default 10).
- `modified_end_date` (string): Modified on or before (yyyy-mm-dd).
- `modified_start_date` (string): Modified on or after (yyyy-mm-dd).
- `order_join_date` (string): Sort by join date.
- `organization_ids` (array): Only these organization ids.
- `page` (integer): Page number, 1-based (default 1). Use data.pagination.next_page from the previous reply.
- `user_ids` (array): Only these Talenta user ids.

### `talenta_get_employee` (~71 tokens)

Get employee

One employee by Talenta user id: personal data, employment, family, education, payroll info, custom fields and access role. Contains personal data. GET /v2/employee/{user_id}.

Input parameters:

- `user_id` (integer, required): Talenta user id (talenta_list_employees: user_id).

### `talenta_get_employment_info` (~98 tokens)

Get employment info

Employment details of one employee (branch, class, grade, job, contract and probation dates, approval line). Give exactly one of user_id, employee_id or email. GET /v3/employee/employment-info.

Input parameters:

- `email` (string): The employee's email.
- `employee_id` (string): The company's employee id (for example SDET-001).
- `user_id` (integer): Talenta user id.

### `talenta_list_family_info` (~124 tokens)

List employee family members

Family members of one employee (name, relationship, birth date, marital status, ID number). Contains personal data. Give exactly one of user_id or employee_id. GET /v3/employee/family-info.

Input parameters:

- `employee_id` (string): The company's employee id.
- `limit` (integer): Results per page, 1-100 (default 10).
- `page` (integer): Page number, 1-based (default 1). Use data.pagination.next_page from the previous reply.
- `user_id` (integer): Talenta user id.

### `talenta_list_formal_education` (~121 tokens)

List employee formal education

Formal education history of one employee (degree, institution, major, years, score). Give exactly one of user_id or employee_id. GET /v3/employee/formal-education.

Input parameters:

- `employee_id` (string): The company's employee id.
- `limit` (integer): Results per page, 1-100 (default 10).
- `page` (integer): Page number, 1-based (default 1). Use data.pagination.next_page from the previous reply.
- `user_id` (integer): Talenta user id.

### `talenta_get_company_info` (~61 tokens)

Get company info

The company's profile: name, address, phone, email, BPJS and tax numbers. GET /v2/company/{company_id}/info.

Input parameters:

- `company_id` (integer): Talenta company id (default: the company of the connected credentials).

### `talenta_list_branches` (~126 tokens)

List branches

List the company's branches with address, province and tax details. Use the ids to filter employees. GET /v2/company/{company_id}/branch.

Input parameters:

- `company_id` (integer): Talenta company id (default: the company of the connected credentials).
- `include_head_office` (boolean): Also return the head office (default false).
- `limit` (integer): Results per page, 1-100 (default 10).
- `page` (integer): Page number, 1-based (default 1). Use data.pagination.next_page from the previous reply.

### `talenta_list_organizations` (~114 tokens)

List organizations

List the company's organizations (departments) with parent organization and branch. GET /v2/company/{company_id}/organization.

Input parameters:

- `company_id` (integer): Talenta company id (default: the company of the connected credentials).
- `limit` (integer): Results per page, 1-100 (default 10).
- `page` (integer): Page number, 1-based (default 1). Use data.pagination.next_page from the previous reply.
- `search` (string): Filter by organization name.

### `talenta_list_job_positions` (~159 tokens)

List job positions

List the company's job positions with level, parent position, branch and status. GET /v3/company/{company_id}/job-positions.

Input parameters:

- `branch_id` (integer): Only this branch id.
- `company_id` (integer): Talenta company id (default: the company of the connected credentials).
- `limit` (integer): Results per page, 1-100 (default 10).
- `page` (integer): Page number, 1-based (default 1). Use data.pagination.next_page from the previous reply.
- `parent_id` (integer): Only children of this job position id.
- `search` (string): Filter by job position name.
- `status`: 1 = active, 0 = inactive.

### `talenta_list_job_levels` (~107 tokens)

List job levels

List the company's job levels with code, status and employee count. GET /v3/company/job-levels.

Input parameters:

- `limit` (integer): Results per page, 1-100 (default 10).
- `page` (integer): Page number, 1-based (default 1). Use data.pagination.next_page from the previous reply.
- `search` (string): Match by job level name or code.
- `status`: 1 = active, 0 = inactive.

### `talenta_list_employment_statuses` (~97 tokens)

List employment statuses

List the company's employment statuses (permanent, contract, ...) with ids for employee filters. The company is selected by the HMAC credentials. GET /v2/company/me/employment-status.

Input parameters:

- `limit` (integer): Results per page, 1-100 (default 10).
- `page` (integer): Page number, 1-based (default 1). Use data.pagination.next_page from the previous reply.

### `talenta_list_time_off_requests` (~98 tokens)

List time off requests

Time off (leave) requests of the company in a date range, optionally for one user or one status. GET /v2/time-off.

Input parameters:

- `end_date` (string, required): End of the period (yyyy-mm-dd).
- `start_date` (string, required): Start of the period (yyyy-mm-dd).
- `status` (string): Only this request status.
- `user_id` (integer): Only this Talenta user id.

### `talenta_time_off_balance_history` (~142 tokens)

Time off balance history

Per-employee time off balances over a period: beginning balance, taken, adjustment, expired, carry forward, ending balance, per policy. GET /v3/time-off/balance-history.

Input parameters:

- `end_date` (string): To this date (yyyy-mm-dd).
- `limit` (integer): Results per page, 1-100 (default 10).
- `page` (integer): Page number, 1-based (default 1). Use data.pagination.next_page from the previous reply.
- `policy_name` (string): Only this time off policy (by name).
- `start_date` (string): From this date (yyyy-mm-dd).

### `talenta_time_off_balance_log` (~134 tokens)

Time off balance log

The log of time off balance changes (requests, adjustments, expiries) per employee and policy. GET /v3/time-off/balance-log.

Input parameters:

- `end_date` (string): To this date (yyyy-mm-dd).
- `limit` (integer): Results per page, 1-100 (default 10).
- `page` (integer): Page number, 1-based (default 1). Use data.pagination.next_page from the previous reply.
- `policy_name` (string): Only this time off policy (by name).
- `start_date` (string): From this date (yyyy-mm-dd).

### `talenta_attendance_summary` (~253 tokens)

Attendance summary for a day

The attendance summary of all employees for one day: schedule, shift, clock in/out, breaks, overtime, time off. Filter by branch, organization, job level/position, or clock-in/out status (early, late, none). GET /v3/attendance/summary-report.

Input parameters:

- `branch_ids` (array): Only these branch ids.
- `clock_in` (string): eci = early clock in, lci = late clock in, nci = no clock in.
- `clock_out` (string): eco = early clock out, lco = late clock out, nco = no clock out.
- `date` (string, required): The day (yyyy-mm-dd).
- `job_level_ids` (array): Only these job level ids.
- `job_position_ids` (array): Only these job position ids.
- `limit` (integer): Results per page, 1-100 (default 10).
- `order` (string): Sort order.
- `organization_ids` (array): Only these organization ids.
- `page` (integer): Page number, 1-based (default 1). Use data.pagination.next_page from the previous reply.
- `sort` (string): Sort field.

### `talenta_list_live_attendance` (~79 tokens)

List live attendance of an employee

Live attendance records (check-in/out time, location, schedule) of one employee in a date range. GET /v3/live-attendance.

Input parameters:

- `end_date` (string, required): To (yyyy-mm-dd).
- `start_date` (string, required): From (yyyy-mm-dd).
- `user_id` (integer, required): Talenta user id.

### `talenta_list_schedules` (~121 tokens)

List employee schedules

The current work schedule (shift pattern) of each employee, filterable by schedule name, branch and organization. GET /v3/schedule.

Input parameters:

- `branch_ids` (array): Only these branch ids.
- `limit` (integer): Results per page, 1-100 (default 10).
- `organization_ids` (array): Only these organization ids.
- `page` (integer): Page number, 1-based (default 1). Use data.pagination.next_page from the previous reply.
- `schedule` (string): Only this schedule name.

### `talenta_list_overtime_requests` (~166 tokens)

List overtime requests

Overtime requests in a date range (at most one year), with employee, date, duration, compensation type and status. GET /v3/overtime/request.

Input parameters:

- `employee_search` (string): Search by employee name or id.
- `end_date` (string, required): To (yyyy-mm-dd), at most one year after start_date.
- `limit` (integer): Results per page, 1-100 (default 10).
- `page` (integer): Page number, 1-based (default 1). Use data.pagination.next_page from the previous reply.
- `request_status` (array): Only these statuses.
- `start_date` (string, required): From (yyyy-mm-dd).
- `user_ids` (array): Only requests of these Talenta user ids.

### `talenta_list_timesheets` (~110 tokens)

List timesheets

Company timesheet entries (activity, duration, task, assignee) in a date range. GET /v3/timesheet.

Input parameters:

- `end_date` (string): To (yyyy-mm-dd).
- `limit` (integer): Results per page, 1-100 (default 10).
- `page` (integer): Page number, 1-based (default 1). Use data.pagination.next_page from the previous reply.
- `start_date` (string): From (yyyy-mm-dd).

### `talenta_list_payroll_info` (~255 tokens)

List employee payroll info

Payroll setup of the company's employees: tax status (PTKP), NPWP, BPJS numbers, bank account. Sensitive payroll and bank data. Filter by status, branch, organization, job position, employment status, job level, user ids or modified date. GET /v3/payroll.

Input parameters:

- `branch_ids` (array): Only these branch ids.
- `employment_status_ids` (array): Only these employment status ids.
- `job_level_ids` (array): Only these job level ids.
- `job_position_ids` (array): Only these job position ids.
- `limit` (integer): Results per page, 1-100 (default 10).
- `modified_end_date` (string): Modified on or before (yyyy-mm-dd).
- `modified_start_date` (string): Modified on or after (yyyy-mm-dd).
- `order` (string): Sort direction.
- `organization_ids` (array): Only these organization ids.
- `page` (integer): Page number, 1-based (default 1). Use data.pagination.next_page from the previous reply.
- `status`: 0 = active employees, 1 = resigned.
- `user_ids` (array): Only these Talenta user ids.

### `talenta_get_payroll_report` (~124 tokens)

Get monthly payroll report

Company-wide payroll summary (salary detail) for one month. Sensitive payroll data. Optional filters by payment method, branch, organization, job level. GET /v3/payroll/report.

Input parameters:

- `branch_ids` (array): Only these branch ids.
- `job_level_ids` (array): Only these job level ids.
- `month` (integer, required): Month, 1-12.
- `organization_ids` (array): Only these organization ids.
- `payment`: Payment method filter, 1 or 2.
- `year` (integer, required): Year (yyyy).

### `talenta_list_reimbursements` (~192 tokens)

List reimbursement requests

Reimbursement requests of the company with employee, policy, amount and approval/disbursement status. Filter by employee, status, policy or request date. GET /v3/reimbursement.

Input parameters:

- `disbursement_status` (string): Disbursement status.
- `end_request_date` (string): Requested on or before (yyyy-mm-dd).
- `full_name` (string): Only employees with this name.
- `id_employee` (string): Only this employee id.
- `limit` (integer): Results per page, 1-100 (default 10).
- `page` (integer): Page number, 1-based (default 1). Use data.pagination.next_page from the previous reply.
- `policy_name` (string): Only this reimbursement policy (by name).
- `start_request_date` (string): Requested on or after (yyyy-mm-dd).
- `status` (string): Request status.

### `talenta_list_reprimands` (~180 tokens)

List reprimands

Reprimand letters (SP 1/2/3 or custom) with the employee, dates and status. GET /v3/reprimand.

Input parameters:

- `end_date` (string): Reprimand range end (yyyy-mm-dd).
- `limit` (integer): Results per page, 1-100 (default 10).
- `page` (integer): Page number, 1-based (default 1). Use data.pagination.next_page from the previous reply.
- `search` (string): Keyword.
- `start_date` (string): Reprimand range start (yyyy-mm-dd).
- `status`: 1 = active, 2 = canceled, 3 = expired.
- `type`: 1 = SP 1, 2 = SP 2, 3 = SP 3, 99 = custom.

### `talenta_list_employee_transfers` (~82 tokens)

List employee transfers

Employee transfer and promotion requests with employee, type, effective date and approval status. GET /v3/employee-transfer.

Input parameters:

- `limit` (integer): Results per page, 1-100 (default 10).
- `page` (integer): Page number, 1-based (default 1). Use data.pagination.next_page from the previous reply.

### `talenta_list_delegations` (~150 tokens)

List delegations

Approval/admin/time-off delegations between employees with dates and type. GET /v3/delegations.

Input parameters:

- `delegate_from` (array): Only delegations from these user ids.
- `delegate_to` (array): Only delegations to these user ids.
- `delegation_type` (string): Delegation category.
- `end_date` (string): Ending before (yyyy-mm-dd).
- `limit` (integer): Results per page, 1-50 (default 10).
- `page` (integer): Page number, 1-based (default 1). Use data.pagination.next_page from the previous reply.
- `start_date` (string): Starting on or after (yyyy-mm-dd).

### `talenta_list_jobs` (~137 tokens)

List recruitment jobs

Job openings of the company, newest first. Filter by keyword, branch, job position, or only those live on the career page. GET /v3/recruitment/jobs.

Input parameters:

- `branch_ids` (array): Only these branch ids.
- `job_position_ids` (array): Only these job position ids.
- `keyword` (string): Search the job alias or id.
- `page` (integer): Page number, 1-based (default 1).
- `per_page` (integer): Results per page, 1-100 (default 10).
- `published_only` (boolean): Only jobs live on the career page.

### `talenta_get_job` (~54 tokens)

Get recruitment job

One job opening in full, with its hiring stages and custom questions. GET /v3/recruitment/jobs/{job_id}.

Input parameters:

- `job_id` (integer, required): Job id (talenta_list_jobs: job_id).

### `talenta_list_candidates` (~149 tokens)

List candidates

Candidate applications of the company, newest first. Search by name, filter by application date. Contains personal data. GET /v3/recruitment/candidates.

Input parameters:

- `application_date_end` (string): Applied on or before (yyyy-mm-dd); needs application_date_start.
- `application_date_start` (string): Applied on or after (alone: exactly this date) (yyyy-mm-dd).
- `limit` (integer): Results per page, 1-100 (default 10).
- `order` (string): Sort direction (default desc).
- `page` (integer): Page number, 1-based (default 1).
- `search` (string): Part of the candidate's name.

### `talenta_get_candidate` (~67 tokens)

Get candidate application

One candidate application with personal data, education and work experience. Contains personal data (ID numbers, address, salary). GET /v3/recruitment/candidates/{job_application_id}.

Input parameters:

- `job_application_id` (integer, required): Application id (talenta_list_candidates: job_application_id).

### `talenta_list_hiring_stages` (~123 tokens)

Hiring pipeline counts

For each job opening, how many candidates sit in each pipeline phase (screening, assessment, interview, job offer). GET /v3/recruitment/hiring-stages.

Input parameters:

- `branch_ids` (array): Only these branch ids.
- `job_position_ids` (array): Only these job position ids.
- `page` (integer): Page number, 1-based (default 1).
- `per_page` (integer): Results per page, 1-100 (default 10).
- `published_only` (boolean): Only published jobs.

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/io-usefulapi-talenta/talenta#diagnostics

## Score history

- 2026-11-05: 18
- 2026-11-04: 18
- 2026-11-03: 18
- 2026-11-02: 18
- 2026-11-01: 65
- 2026-10-31: 65

## Common questions

### What is the Talenta MCP by usefulapi server?

Talenta MCP by usefulapi is listed in the public MCP registry as io.usefulapi/talenta. MCP server for Talenta, read employee, attendance, leave, payroll and recruitment data. This page covers its hosted endpoint (https://talenta.usefulapi.io/mcp).

### Is the Talenta MCP by usefulapi server safe to use?

Talenta MCP by usefulapi scores 18 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the Talenta MCP by usefulapi server expose?

Talenta MCP by usefulapi exposes 30 tools: talenta_list_employees, talenta_get_employee, talenta_get_employment_info, talenta_list_family_info, talenta_list_formal_education, and 25 more. Their descriptions and schemas cost roughly 4,052 tokens of context every time the server is loaded.

### Does the Talenta MCP by usefulapi server require authentication?

Its publisher declares no required credentials for Talenta MCP by usefulapi. We have not been able to confirm that against the live endpoint, and a server can require authorisation without declaring it here.

### Is the Talenta MCP by usefulapi server still maintained?

Talenta MCP by usefulapi is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

### What did VerifyMCP test on the Talenta MCP by usefulapi server?

VerifyMCP ran 4 checks on Talenta MCP by usefulapi, covering TLS certificate, HSTS header, DNSSEC and Transport. 7 items could not be completed, a gap on our side rather than a finding about Talenta MCP by usefulapi: Authorization, HTTPS, Schema quality, Stability and 3 more. 5 categories score 0 for that reason, because we only credit what we can confirm. Supply Chain Security and Provenance & Transparency do not apply to a hosted endpoint, so they were not tested. The score does not measure everything, and the scoring documentation lists what it leaves out.

## Links

- Remote endpoint: https://talenta.usefulapi.io/mcp
- Repository: https://github.com/m190/usefulapi-mcp
- Website: https://usefulapi.io/talenta/
- Changelog RSS feed: https://verifymcp.io/servers/io-usefulapi-talenta/talenta.xml
- Changelog JSON feed: https://verifymcp.io/servers/io-usefulapi-talenta/talenta/changelog.json
- Trust report (JSON): https://verifymcp.io/servers/io-usefulapi-talenta/talenta.json
- HTML version of this page: https://verifymcp.io/servers/io-usefulapi-talenta/talenta
