Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

TalentHR MCP by usefulapi

REMOTE · TALENTHR.USEFULAPI.IO

Read employees, leave, recruiting and reports; book or decide leave and add applicant notes.

18 Trust /100

Last scanned (7 hours ago)

Scores higher than 4% of remote servers

Reachable. Last reached 5 Nov 2026.

Category CRM and Sales

Trust breakdown (7 categories)

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. How we score → Why this is hard to score →

Endpoint Security46
Transport & Reachability0
Schema Quality & AI Usability0
  • Schema not yet verified: we couldn't read the endpoint's schema, or could read only part of its tool list.Unverified
Stability & Change Management0
  • Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
Tool Coverage0
  • Tool coverage not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.Unverified
Tool Safety0
  • Tool safety not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.Unverified
Capabilities0
  • Capabilities not yet verified: we couldn't read the endpoint's capabilities.Unverified

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.

What we tested

Checks we ran (4)

  • TLS certificate
  • HSTS header
  • DNSSEC
  • Transport

Checks we could not complete (7)

These are gaps on our side, not findings about this hosted endpoint. We only credit what we can confirm, so a category made up entirely of them scores 0.

  • Authorization in Endpoint SecurityAuthorisation not yet verified: we couldn't confirm whether this endpoint requires it.
  • HTTPS in Endpoint SecurityHTTPS enforcement could not be verified: the plaintext port redirected somewhere other than https, so enforcement is unproven.
  • Schema quality in Schema Quality & AI Usability (scores 0 for this)Schema not yet verified: we couldn't read the endpoint's schema, or could read only part of its tool list.
  • Stability in Stability & Change Management (scores 0 for this)Stability not yet verified: not enough scan history yet (needs a 30-day window).
  • Tool coverage in Tool Coverage (scores 0 for this)Tool coverage not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.
  • Tool safety in Tool Safety (scores 0 for this)Tool safety not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.
  • Capabilities in Capabilities (scores 0 for this)Capabilities not yet verified: we couldn't read the endpoint's capabilities.

Does not apply to this hosted endpoint (2)

  • Supply Chain SecurityScored on package channels only. This is a hosted endpoint, so there is nothing to install or inspect.
  • Provenance & TransparencyScored on package channels only. This is a hosted endpoint, so there is nothing to install or inspect.

The score does not measure everything. What the score does not measure →

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 2 Nov 26 −47
    • Endpoint reachability: reachable → not serving MCP ▼ security
    • Tool safety: pass → unverified ▼ security
    • Authorization: pass → unverified ▼ security
    • Stability: 0.03 → unverified ▼ security
    • Schema quality: 100 → unverified ▼ functional
    • Capabilities: pass → unverified ▼ functional
    • Tool coverage: 100 → unverified ▼ functional
  • 1 Nov 26 0
    • Stability: unverified → 0.03 ▲ functional
  • 31 Oct 26 65

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 5 Nov 2026 · Probed https://talenthr.usefulapi.io/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=usefulapi.io CN=WE1,O=Google Trust Services,C=US 13 Sept 2026 12 Dec 2026 ECDSA 256 ECDSA-SHA256 d9be3287b0fde9630e825ba1f79bff3f
SANs: usefulapi.io, *.usefulapi.io
CN=WE1,O=Google Trust Services,C=US (CA) CN=GTS Root R4,O=Google Trust Services LLC,C=US 13 Dec 2023 20 Feb 2029 ECDSA 256 ECDSA-SHA384 7ff31977972c224a76155d13b6d685e3
CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE 15 Nov 2023 28 Jan 2028 ECDSA 384 SHA256-RSA 7fe530bf331343bedd821610493d8a1b

Background: What to check on a remote MCP endpoint →

DNSSEC insecure

Validation of talenthr.usefulapi.io. — Not signed

Zone DS Keys Algorithms Outcome
. Trust anchor 20326, 38696 8, 8 Verified
io. DS published 38690 8 Verified
usefulapi.io. No DS Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication Inconclusive

We could not reach the endpoint well enough to judge its authorisation posture.

Result Inconclusive
HTTP status 302

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://talenthr.usefulapi.io/mcp Redirected 302 https://usefulapi.io/talenthr/
http (plaintext) http://talenthr.usefulapi.io/mcp Inconclusive 302 http://talenthr.usefulapi.io/mcp
MCP tools · 29 exposed · ~3,495 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
talenthr_create_applicant_note ~127

WRITE: add an internal note to a job application (visible to the hiring team in TalentHR; no one is e-mailed). Needs the job position id and the application id (talenthr_get_applicant lists an applicant's applications with their job_position_id). Notes cannot be edited or deleted through this server.

NameTypeReqDescription
application_idintegeryesThe application id (from talenthr_get_applicant).
job_position_idintegeryesThe job position id of the application.
note_textstringyesThe note text (max 30000 characters).

No output schema declared.

No examples provided.

talenthr_create_time_off_request ~323

WRITE: book a time off request for an employee (talenthr_list_time_off_types gives the type id). Unless preapproved=true, TalentHR automatically E-MAILS THE EMPLOYEE'S MANAGER to approve or reject it. preapproved=true auto-approves it when the key's user is allowed to (so no manager decides): only use it when the user explicitly said the time off is already approved. Dates must be within one year from today and inside a time off cycle. Optionally give amount_options (days per date: 1, 0.5, 0 for non-working days; every date from start to end needs a value); when omitted TalentHR works it out. Cannot be undone through this server.

NameTypeReqDescription
amount_optionsobject–Per-day amounts keyed by yyyy-mm-dd, e.g. {"2026-11-02":1,"2026-11-03":0.5}. Must cover every date from start_date to end_date.
employee_idintegeryesThe employee id (from talenthr_list_employees).
end_datestringyesLast day off (inclusive), yyyy-mm-dd.
notestring–Note for the approver (max 255 characters).
preapprovedboolean–true = auto-approve (no manager e-mail decision). Default false.
start_datestringyesFirst day off, yyyy-mm-dd.
timeoff_type_idintegeryesTime off type id (from talenthr_list_time_off_types).

No output schema declared.

No examples provided.

talenthr_get_applicant ~66

Get one candidate with contact data, description, CV info and all applications with the hiring step each one is in. The application ids are used by talenthr_create_applicant_note.

NameTypeReqDescription
applicant_idintegeryesThe applicant id (from talenthr_list_applicants).

No output schema declared.

No examples provided.

talenthr_get_calendar ~199

Who is off when: employees with their time off requests and the holidays for a date range. Without end_date the range runs to the end of the start month (max 2 years). Without a filter it includes every employee (also terminated). Filter with keys time_off (pending, approved), department, division, location, emp_state and time_off_type (e.g. time_off=pending,approved;department=6), or one employee with employee_id.

NameTypeReqDescription
employee_idinteger–Only this employee's calendar.
end_datestring–Last day, yyyy-mm-dd (default: end of the start month).
filterstring–Filter: key=comma-separated ids, keys separated by ';', e.g. location=36;emp_state=1,2,3. Valid keys and ids come from talenthr_get_directory_filters.
start_datestringyesFirst day, yyyy-mm-dd.

No output schema declared.

No examples provided.

talenthr_get_directory_filters ~50

List the valid filter options (departments, divisions, locations, employment statuses) with their ids, to build the `filter` argument of talenthr_list_employees and talenthr_get_calendar.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

talenthr_get_employee ~95

Get one employee's profile: birth date, hire and termination date, personal e-mail, work phone, address, nationality, gender, job title, department, division, location, role, seniority and custom fields. Contains sensitive personal data (it can include the SSN); only fetch it when the user asked about that person.

NameTypeReqDescription
employee_idintegeryesThe employee id (from talenthr_list_employees).

No output schema declared.

No examples provided.

talenthr_get_employee_assets ~128

List the assets (inventory and memberships) assigned to one employee. Paged: use next_offset to continue.

NameTypeReqDescription
employee_idintegeryesThe employee id (from talenthr_list_employees).
limitinteger–Rows per page, 1-100 (default 10).
offsetinteger–Row offset, 0-based (default 0). Use next_offset from the previous reply.
orderstring–Sort direction.
sortstring–Column to sort by: assing_date, name, category, type, serial_number.

No output schema declared.

No examples provided.

talenthr_get_employee_benefits ~47

List the benefits one employee has (category, cost, start and end date).

NameTypeReqDescription
employee_idintegeryesThe employee id (from talenthr_list_employees).

No output schema declared.

No examples provided.

talenthr_get_employee_job ~71

Get one employee's job information: employment status history, manager records, job records (title, department, location over time), compensation records and benefits. Compensation is sensitive; only fetch it when the user asked.

NameTypeReqDescription
employee_idintegeryesThe employee id (from talenthr_list_employees).

No output schema declared.

No examples provided.

talenthr_get_employee_time_off_budgets ~115

Get one employee's time off budgets per type and cycle: budget, original budget, used days and accrual figures, i.e. how many days they have left. Optionally limit to the current cycle (active) or one cycle id.

NameTypeReqDescription
activeboolean–true = only the currently active time off cycle.
employee_idintegeryesThe employee id (from talenthr_list_employees).
time_off_cycle_idinteger–Limit to one time off cycle id.

No output schema declared.

No examples provided.

talenthr_get_headcount_report ~188

Headcount per month over a period (total and optionally grouped by gender, location, department, division, ...), plus the current headcount.

NameTypeReqDescription
end_datestring–Custom range end, yyyy-mm-dd.
filterstring–Filter: key=comma-separated ids, keys separated by ';', e.g. location=36;emp_state=1,2,3. Valid keys and ids come from talenthr_get_directory_filters.
group_bystring–Break the headcount down by this dimension.
periodstring–Reporting period: l12m (last 12 months) or a 4-digit year (the current or the previous calendar year). Alternatively pass start_date and end_date (max 36 months).
start_datestring–Custom range start, yyyy-mm-dd (use with end_date instead of period).

No output schema declared.

No examples provided.

talenthr_get_hires_leaves_report ~160

Hires, terminations and attrition rate per month over a period.

NameTypeReqDescription
end_datestring–Custom range end, yyyy-mm-dd.
filterstring–Filter: key=comma-separated ids, keys separated by ';', e.g. location=36;emp_state=1,2,3. Valid keys and ids come from talenthr_get_directory_filters.
periodstring–Reporting period: l12m (last 12 months) or a 4-digit year (the current or the previous calendar year). Alternatively pass start_date and end_date (max 36 months).
start_datestring–Custom range start, yyyy-mm-dd (use with end_date instead of period).

No output schema declared.

No examples provided.

talenthr_get_organization_chart ~37

List all current employees with their manager (reports_to_employee_id), job title and role, to answer who reports to whom.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

talenthr_get_time_off_report ~167

Approved, non-canceled time off summarized per month and per weekday, split by time off type, for a period.

NameTypeReqDescription
end_datestring–Custom range end, yyyy-mm-dd.
filterstring–Filter: key=comma-separated ids, keys separated by ';', e.g. location=36;emp_state=1,2,3. Valid keys and ids come from talenthr_get_directory_filters.
periodstring–Reporting period: l12m (last 12 months) or a 4-digit year (the current or the previous calendar year). Alternatively pass start_date and end_date (max 36 months).
start_datestring–Custom range start, yyyy-mm-dd (use with end_date instead of period).

No output schema declared.

No examples provided.

talenthr_list_applicants ~149

List every candidate across all job positions with contact data and the number of applications. Paged: use next_offset to continue. `search` matches first name, last name and e-mail; `starred_only` returns only the starred candidates (the talent pool).

NameTypeReqDescription
limitinteger–Rows per page, 1-100 (default 10).
offsetinteger–Row offset, 0-based (default 0). Use next_offset from the previous reply.
orderstring–Sort direction.
searchstring––
sortstring–Column to sort by: name, created_at.
starred_onlyboolean––

No output schema declared.

No examples provided.

talenthr_list_assets ~221

List the company's assets (laptops, phones, subscriptions, memberships) with status, category, serial number, cost, purchase and warranty dates. Paged: use next_offset to continue. `search` matches name, description or category; `filter` takes status and category ids (e.g. status=1,2;category=19).

NameTypeReqDescription
filterstring–Filter: key=comma-separated ids, keys separated by ';', e.g. location=36;emp_state=1,2,3. Valid keys and ids come from talenthr_get_directory_filters.
limitinteger–Rows per page, 1-100 (default 10).
offsetinteger–Row offset, 0-based (default 0). Use next_offset from the previous reply.
orderstring–Sort direction.
searchstring––
sortstring–Column to sort by: created_at, name, category, location, department, division, used_by, serial_number, warranty_end_date.

No output schema declared.

No examples provided.

talenthr_list_benefits ~110

List the company's benefits with category, cost, dates and who they are required for. Optional `filter` with keys location, department, division, job_title, emp_state and employee (e.g. location=36;emp_state=1,2).

NameTypeReqDescription
filterstring–Filter: key=comma-separated ids, keys separated by ';', e.g. location=36;emp_state=1,2,3. Valid keys and ids come from talenthr_get_directory_filters.

No output schema declared.

No examples provided.

talenthr_list_departments ~37

List all departments of the company with their ids (the ids are what talenthr_list_employees filters and employee records refer to).

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

talenthr_list_divisions ~37

List all divisions of the company with their ids (the ids are what talenthr_list_employees filters and employee records refer to).

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

talenthr_list_employee_time_off_requests ~134

List one employee's time off requests (dates, type, days, approved or pending, canceled). Paged: use next_offset to continue. A request with approved=null is still pending.

NameTypeReqDescription
employee_idintegeryesThe employee id (from talenthr_list_employees).
limitinteger–Rows per page, 1-100 (default 10).
offsetinteger–Row offset, 0-based (default 0). Use next_offset from the previous reply.
sortstring–Column to sort by: id, timeoff_type_name, created_at.

No output schema declared.

No examples provided.

talenthr_list_employees ~238

List the company's employees from the TalentHR directory with name, e-mail, job title, department, division, location, employment status, manager id, hire date and phone. Paged (limit max 100): use next_offset to continue. Filter by location, department, division or employment status (emp_state) with `filter`; get the ids from talenthr_get_directory_filters. Use `custom_fields` to add extra field slugs (from the company's custom fields). Returns personal data; summarize only what the user asked for.

NameTypeReqDescription
custom_fieldsstring–Comma-separated custom field slugs to include, e.g. address,city,custom-field-001.
filterstring–Filter: key=comma-separated ids, keys separated by ';', e.g. location=36;emp_state=1,2,3. Valid keys and ids come from talenthr_get_directory_filters.
limitinteger–Rows per page, 1-100 (default 10).
offsetinteger–Row offset, 0-based (default 0). Use next_offset from the previous reply.

No output schema declared.

No examples provided.

talenthr_list_holidays ~52

List the company holidays of a year (current year by default) with date and who they apply to.

NameTypeReqDescription
yearinteger–Year, e.g. 2026 (default: this year).

No output schema declared.

No examples provided.

talenthr_list_job_position_applicants ~153

List the applicants of one job position with contact data, current hiring step and whether they are disqualified. Paged: use next_offset to continue. `search` matches first name, last name and e-mail.

NameTypeReqDescription
job_position_idintegeryesThe job position id (from talenthr_list_job_positions).
limitinteger–Rows per page, 1-100 (default 10).
offsetinteger–Row offset, 0-based (default 0). Use next_offset from the previous reply.
orderstring–Sort direction.
searchstring––
sortstring–Column to sort by: name, created_at.

No output schema declared.

No examples provided.

talenthr_list_job_positions ~48

List the company's job positions (open and closed) with title, status, location, department, publish date and the hiring steps. The id is used to list a position's applicants.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

talenthr_list_job_titles ~38

List all job titles of the company with their ids (the ids are what talenthr_list_employees filters and employee records refer to).

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

talenthr_list_locations ~43

List all locations (with address and remote flag) of the company with their ids (the ids are what talenthr_list_employees filters and employee records refer to).

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

talenthr_list_time_off_types ~57

List the time off types (vacation, sick leave, ...) with id, yearly budget, whether approval is needed and whether it is paid. The id is needed to book a request with talenthr_create_time_off_request.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

talenthr_list_time_tracking_entries ~271

List time tracking entries across all employees (start, end, duration, tags) for a period or date range. Paged: use next_offset to continue. working_now=true lists only running timers. Needs a key whose user may see everyone's time tracking.

NameTypeReqDescription
end_datestring–Range end, yyyy-mm-dd.
filterstring–Filter: key=comma-separated ids, keys separated by ';', e.g. location=36;emp_state=1,2,3. Valid keys and ids come from talenthr_get_directory_filters.
limitinteger–Rows per page, 1-100 (default 10).
offsetinteger–Row offset, 0-based (default 0). Use next_offset from the previous reply.
orderstring–Sort direction.
periodstring–Preset period (default today when no dates are given). Alternatively pass start_date and end_date (max 36 months).
searchstring––
sortstring–Column to sort by: time, started_at, ended_at, name, tag, location.
start_datestring–Range start, yyyy-mm-dd.
working_nowboolean–true = only entries that are running right now.

No output schema declared.

No examples provided.

talenthr_reply_time_off_request ~134

WRITE: approve (accept=true) or reject (accept=false) a pending time off request. TalentHR automatically E-MAILS THE EMPLOYEE the decision. A request that was already answered or canceled cannot be answered again. Only do this when the user explicitly asked for that decision on that request (find ids with talenthr_list_employee_time_off_requests or talenthr_get_calendar).

NameTypeReqDescription
acceptbooleanyestrue = approve, false = reject.
employee_idintegeryesThe id of the employee who made the request.
time_off_request_idintegeryesThe time off request id.

No output schema declared.

No examples provided.

Install

How do I install the TalentHR MCP by usefulapi server?

TalentHR MCP by usefulapi is a hosted endpoint at https://talenthr.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.

remote · talenthr.usefulapi.io

# add to Claude Code
claude mcp add --transport http io-usefulapi-talenthr 'https://talenthr.usefulapi.io/mcp'
Common questions

What is the TalentHR MCP by usefulapi server?

TalentHR MCP by usefulapi is listed in the public MCP registry as io.usefulapi/talenthr. Read employees, leave, recruiting and reports; book or decide leave and add applicant notes. This page covers its hosted endpoint (https://talenthr.usefulapi.io/mcp).

Is the TalentHR MCP by usefulapi server safe to use?

TalentHR 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 TalentHR MCP by usefulapi server expose?

TalentHR MCP by usefulapi exposes 29 tools: talenthr_list_employees, talenthr_get_directory_filters, talenthr_get_employee, talenthr_get_employee_job, talenthr_get_organization_chart, and 24 more. Their descriptions and schemas cost roughly 3,495 tokens of context every time the server is loaded.

Does the TalentHR MCP by usefulapi server require authentication?

Its publisher declares no required credentials for TalentHR 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 TalentHR MCP by usefulapi server still maintained?

TalentHR 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 TalentHR MCP by usefulapi server?

VerifyMCP ran 4 checks on TalentHR 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 TalentHR 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.