AI tools — HR
30 tools. The latest schema is always in hrm_tool_catalog once connected.
Attendance devices
ReadScope:hrm:readhrm_attendance_devices_listList attendance devices: name, serial, brand, protocol, IP, in/out role, status. Never returns device passwords.
| Parameter | Type | Required | Description |
|---|---|---|---|
includeInactive | boolean | no | true = include disabled devices |
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/hrm/hrm_attendance_devices_list/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{}'MCP call example (for AI assistants)
AI assistants send this call themselves when you ask in plain words; you only need it when debugging an MCP connection.
{
"name": "hrm_attendance_devices_list",
"arguments": {
"args": {}
}
}Daily clock-in/out
ReadScope:hrm:readhrm_clock_history_dailyDaily clock-in/out per employee over a date range (max 62 days), filtered by employee or department.
| Parameter | Type | Required | Description |
|---|---|---|---|
from | string | yes | From date (yyyy-MM-dd) |
to | string | yes | To date (yyyy-MM-dd) |
employeeId | string | no | Employee id |
orgUnitId | string | no | Department id |
page | integer | no | Page, starting at 1 |
pageSize | integer | no | Rows per page, max 50 |
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/hrm/hrm_clock_history_daily/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{"from":"2026-10-01","to":"2026-10-27"}'MCP call example (for AI assistants)
AI assistants send this call themselves when you ask in plain words; you only need it when debugging an MCP connection.
{
"name": "hrm_clock_history_daily",
"arguments": {
"args": {
"from": "2026-10-01",
"to": "2026-10-27"
}
}
}One employee's punches
ReadScope:hrm:readhrm_clock_history_timelineAll clock events of one employee over a date range (max 62 days), in time order.
| Parameter | Type | Required | Description |
|---|---|---|---|
employeeId | string | yes | Employee id |
from | string | yes | From date (yyyy-MM-dd) |
to | string | yes | To date (yyyy-MM-dd) |
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/hrm/hrm_clock_history_timeline/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{"employeeId":"0199a1b2-c3d4-7e5f-8a9b-0c1d2e3f4a5b","from":"2026-10-20","to":"2026-10-27"}'MCP call example (for AI assistants)
AI assistants send this call themselves when you ask in plain words; you only need it when debugging an MCP connection.
{
"name": "hrm_clock_history_timeline",
"arguments": {
"args": {
"employeeId": "0199a1b2-c3d4-7e5f-8a9b-0c1d2e3f4a5b",
"from": "2026-10-20",
"to": "2026-10-27"
}
}
}Expiring labor contracts
ReadScope:hrm:readhrm_contracts_expiringLabor contracts expiring within N days, within the user's visible scope.
| Parameter | Type | Required | Description |
|---|---|---|---|
days | integer | no | Days ahead, default 30, max 90 |
page | integer | no | Page, starting at 1 |
pageSize | integer | no | Rows per page |
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/hrm/hrm_contracts_expiring/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{"days":30}'MCP call example (for AI assistants)
AI assistants send this call themselves when you ask in plain words; you only need it when debugging an MCP connection.
{
"name": "hrm_contracts_expiring",
"arguments": {
"args": {
"days": 30
}
}
}Registered biometrics and cards
ReadScope:hrm:readhrm_employee_credentials_listFaces, fingerprints, cards and QR registered for one employee per device, with sync status. Never returns card numbers.
| Parameter | Type | Required | Description |
|---|---|---|---|
employeeId | string | yes | Employee id |
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/hrm/hrm_employee_credentials_list/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{"employeeId":"0199a1b2-c3d4-7e5f-8a9b-0c1d2e3f4a5b"}'MCP call example (for AI assistants)
AI assistants send this call themselves when you ask in plain words; you only need it when debugging an MCP connection.
{
"name": "hrm_employee_credentials_list",
"arguments": {
"args": {
"employeeId": "0199a1b2-c3d4-7e5f-8a9b-0c1d2e3f4a5b"
}
}
}Employee profile
ReadScope:hrm:readhrm_employees_getOne employee profile: department, title, start date, probation end. Never returns ID documents, bank accounts or address.
| Parameter | Type | Required | Description |
|---|---|---|---|
employeeId | string | yes | Employee id |
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/hrm/hrm_employees_get/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{"employeeId":"0199a1b2-c3d4-7e5f-8a9b-0c1d2e3f4a5b"}'MCP call example (for AI assistants)
AI assistants send this call themselves when you ask in plain words; you only need it when debugging an MCP connection.
{
"name": "hrm_employees_get",
"arguments": {
"args": {
"employeeId": "0199a1b2-c3d4-7e5f-8a9b-0c1d2e3f4a5b"
}
}
}Search employees
ReadScope:hrm:readhrm_employees_searchSearch employees by name or code: department, title, probation end. Never returns phone, email or ID documents.
| Parameter | Type | Required | Description |
|---|---|---|---|
search | string | no | Employee name or code |
page | integer | no | Page, starting at 1 |
pageSize | integer | no | Rows per page |
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/hrm/hrm_employees_search/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{"search":"An"}'MCP call example (for AI assistants)
AI assistants send this call themselves when you ask in plain words; you only need it when debugging an MCP connection.
{
"name": "hrm_employees_search",
"arguments": {
"args": {
"search": "An"
}
}
}Requests awaiting my approval
ReadScope:hrm:readhrm_inbox_listRequests waiting for the user's own approval (leave, corrections, overtime…).
| Parameter | Type | Required | Description |
|---|---|---|---|
status | string | no | Status, default PENDING |
kind | string | no | Request kind |
search | string | no | Keyword |
page | integer | no | Page, starting at 1 |
pageSize | integer | no | Rows per page |
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/hrm/hrm_inbox_list/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{}'MCP call example (for AI assistants)
AI assistants send this call themselves when you ask in plain words; you only need it when debugging an MCP connection.
{
"name": "hrm_inbox_list",
"arguments": {
"args": {}
}
}Monthly social insurance summary
ReadScope:hrm:readhrm_insurance_summaryMonthly social insurance summary, within the user's access.
| Parameter | Type | Required | Description |
|---|---|---|---|
year | integer | yes | Year |
month | integer | yes | Month (1–12) |
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/hrm/hrm_insurance_summary/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{"year":2026,"month":10}'MCP call example (for AI assistants)
AI assistants send this call themselves when you ask in plain words; you only need it when debugging an MCP connection.
{
"name": "hrm_insurance_summary",
"arguments": {
"args": {
"year": 2026,
"month": 10
}
}
}My attendance today
ReadScope:hrm:readhrm_me_clock_todayThe user's own shift and clock events today.
No parameters.
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/hrm/hrm_me_clock_today/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{}'MCP call example (for AI assistants)
AI assistants send this call themselves when you ask in plain words; you only need it when debugging an MCP connection.
{
"name": "hrm_me_clock_today",
"arguments": {
"args": {}
}
}My contracts
ReadScope:hrm:readhrm_me_contractsThe user's own labor contracts, including end date if any.
No parameters.
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/hrm/hrm_me_contracts/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{}'MCP call example (for AI assistants)
AI assistants send this call themselves when you ask in plain words; you only need it when debugging an MCP connection.
{
"name": "hrm_me_contracts",
"arguments": {
"args": {}
}
}My payslips
ReadScope:hrm:readhrm_me_payslipsThe user's own finalized payslips; with payslipId returns one payslip in detail.
| Parameter | Type | Required | Description |
|---|---|---|---|
year | integer | no | Year |
payslipId | string | no | Payslip id for details |
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/hrm/hrm_me_payslips/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{"year":2026}'MCP call example (for AI assistants)
AI assistants send this call themselves when you ask in plain words; you only need it when debugging an MCP connection.
{
"name": "hrm_me_payslips",
"arguments": {
"args": {
"year": 2026
}
}
}My requests
ReadScope:hrm:readhrm_me_requestsThe user's own leave, correction and overtime requests by status.
| Parameter | Type | Required | Description |
|---|---|---|---|
status | string | no | pending (default), approved, rejected or cancelled |
page | integer | no | Page, starting at 1 |
pageSize | integer | no | Rows per page |
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/hrm/hrm_me_requests/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{"status":"pending"}'MCP call example (for AI assistants)
AI assistants send this call themselves when you ask in plain words; you only need it when debugging an MCP connection.
{
"name": "hrm_me_requests",
"arguments": {
"args": {
"status": "pending"
}
}
}My summary
ReadScope:hrm:readhrm_me_summaryThe user's own overview: remaining annual leave, pending requests, monthly attendance.
No parameters.
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/hrm/hrm_me_summary/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{}'MCP call example (for AI assistants)
AI assistants send this call themselves when you ask in plain words; you only need it when debugging an MCP connection.
{
"name": "hrm_me_summary",
"arguments": {
"args": {}
}
}Onboarding checklists
ReadScope:hrm:readhrm_onboarding_listOnboarding checklists within the user's visible scope.
| Parameter | Type | Required | Description |
|---|---|---|---|
employeeId | string | no | Employee id |
status | string | no | Status |
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/hrm/hrm_onboarding_list/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{"status":"in_progress"}'MCP call example (for AI assistants)
AI assistants send this call themselves when you ask in plain words; you only need it when debugging an MCP connection.
{
"name": "hrm_onboarding_list",
"arguments": {
"args": {
"status": "in_progress"
}
}
}Departments
ReadScope:hrm:readhrm_org_unitsDepartments visible to the user: name, headcount, manager.
| Parameter | Type | Required | Description |
|---|---|---|---|
search | string | no | Department name |
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/hrm/hrm_org_units/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{}'MCP call example (for AI assistants)
AI assistants send this call themselves when you ask in plain words; you only need it when debugging an MCP connection.
{
"name": "hrm_org_units",
"arguments": {
"args": {}
}
}Upcoming 1:1 meetings
ReadScope:hrm:readhrm_performance_meetingsThe user's upcoming 1-on-1 meetings.
No parameters.
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/hrm/hrm_performance_meetings/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{}'MCP call example (for AI assistants)
AI assistants send this call themselves when you ask in plain words; you only need it when debugging an MCP connection.
{
"name": "hrm_performance_meetings",
"arguments": {
"args": {}
}
}Raw device punches
ReadScope:hrm:readhrm_raw_punches_searchRaw device punches, filtered by employee, processing status, type (FACE, FINGERPRINT, CARD, QR), device serial and date range.
| Parameter | Type | Required | Description |
|---|---|---|---|
employeeId | string | no | Employee id |
status | string | no | PENDING, PROCESSED, UNMATCHED, DUPLICATE or FAILED |
credentialType | string | no | FACE, FINGERPRINT, CARD or QR |
deviceSerial | string | no | Device serial |
search | string | no | Keyword |
from | string | no | From date (yyyy-MM-dd) |
to | string | no | To date (yyyy-MM-dd) |
page | integer | no | Page, starting at 1 |
pageSize | integer | no | Rows per page, max 50 |
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/hrm/hrm_raw_punches_search/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{"status":"UNMATCHED"}'MCP call example (for AI assistants)
AI assistants send this call themselves when you ask in plain words; you only need it when debugging an MCP connection.
{
"name": "hrm_raw_punches_search",
"arguments": {
"args": {
"status": "UNMATCHED"
}
}
}Candidates
ReadScope:hrm:readhrm_recruitment_listCandidates visible to the user: name, source, notes. Never returns phone numbers.
| Parameter | Type | Required | Description |
|---|---|---|---|
search | string | no | Candidate name |
page | integer | no | Page, starting at 1 |
pageSize | integer | no | Rows per page |
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/hrm/hrm_recruitment_list/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{}'MCP call example (for AI assistants)
AI assistants send this call themselves when you ask in plain words; you only need it when debugging an MCP connection.
{
"name": "hrm_recruitment_list",
"arguments": {
"args": {}
}
}Monthly attendance sheet
ReadScope:hrm:readhrm_report_attendanceMonthly attendance sheet by symbol, within the user's visible scope.
| Parameter | Type | Required | Description |
|---|---|---|---|
year | integer | yes | Year |
month | integer | yes | Month (1–12) |
orgUnitId | string | no | Department id |
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/hrm/hrm_report_attendance/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{"year":2026,"month":10}'MCP call example (for AI assistants)
AI assistants send this call themselves when you ask in plain words; you only need it when debugging an MCP connection.
{
"name": "hrm_report_attendance",
"arguments": {
"args": {
"year": 2026,
"month": 10
}
}
}Monthly overtime
ReadScope:hrm:readhrm_report_overtimeMonthly overtime summary, within the user's visible scope.
| Parameter | Type | Required | Description |
|---|---|---|---|
year | integer | yes | Year |
month | integer | yes | Month (1–12) |
orgUnitId | string | no | Department id |
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/hrm/hrm_report_overtime/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{"year":2026,"month":10}'MCP call example (for AI assistants)
AI assistants send this call themselves when you ask in plain words; you only need it when debugging an MCP connection.
{
"name": "hrm_report_overtime",
"arguments": {
"args": {
"year": 2026,
"month": 10
}
}
}Training courses
ReadScope:hrm:readhrm_training_coursesList open training courses.
| Parameter | Type | Required | Description |
|---|---|---|---|
search | string | no | Course name |
page | integer | no | Page, starting at 1 |
pageSize | integer | no | Rows per page |
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/hrm/hrm_training_courses/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{}'MCP call example (for AI assistants)
AI assistants send this call themselves when you ask in plain words; you only need it when debugging an MCP connection.
{
"name": "hrm_training_courses",
"arguments": {
"args": {}
}
}An employee's enrollments
ReadScope:hrm:readhrm_training_learnerCourses one employee is enrolled in.
| Parameter | Type | Required | Description |
|---|---|---|---|
employeeId | string | yes | Employee id (from hrm_employees_search) |
page | integer | no | Page, starting at 1 |
pageSize | integer | no | Rows per page |
Or call over REST with an API key
curl -X POST https://api.nextx.vn/api/v1/ai/tools/hrm/hrm_training_learner/read \
-H "X-Api-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{"employeeId":"0199a1b2-c3d4-7e5f-8a9b-0c1d2e3f4a5b"}'MCP call example (for AI assistants)
AI assistants send this call themselves when you ask in plain words; you only need it when debugging an MCP connection.
{
"name": "hrm_training_learner",
"arguments": {
"args": {
"employeeId": "0199a1b2-c3d4-7e5f-8a9b-0c1d2e3f4a5b"
}
}
}Submit an attendance correction
Write proposalScope:hrm:writehrm.correction.submitSubmit a clock-in/out correction request for the user's own day. Creates a proposal; it only runs after the user taps Confirm in the app.
| Parameter | Type | Required | Description |
|---|---|---|---|
date | string | yes | Date (yyyy-MM-dd) |
clockIn | string | no | Correct clock-in (ISO) |
clockOut | string | no | Correct clock-out (ISO) |
reason | string | yes | Reason |
MCP call example (for AI assistants)
AI assistants send this call themselves when you ask in plain words; you only need it when debugging an MCP connection.
{
"name": "hrm.correction.submit",
"arguments": {
"args": {
"date": "2026-10-27",
"clockIn": "2026-10-27T08:00:00+07:00",
"reason": "Quên chấm"
}
}
}Approve a request
Write proposalScope:hrm:writehrm.inbox.approveApprove a request waiting in the user's own approval inbox. Creates a proposal; it only runs after the user taps Confirm in the app.
| Parameter | Type | Required | Description |
|---|---|---|---|
itemId | string | yes | Request id (from hrm_inbox_list) |
kind | string | yes | Request kind (from hrm_inbox_list) |
comment | string | no | Comment |
MCP call example (for AI assistants)
AI assistants send this call themselves when you ask in plain words; you only need it when debugging an MCP connection.
{
"name": "hrm.inbox.approve",
"arguments": {
"args": {
"itemId": "0199a1b2-c3d4-7e5f-8a9b-0c1d2e3f4a5b",
"kind": "leave",
"comment": "Đồng ý"
}
}
}Reject a request
Write proposalScope:hrm:writehrm.inbox.rejectReject a request in the user's own approval inbox; a reason is required. Creates a proposal; it only runs after the user taps Confirm in the app.
| Parameter | Type | Required | Description |
|---|---|---|---|
itemId | string | yes | Request id |
kind | string | yes | Request kind |
reason | string | yes | Rejection reason |
MCP call example (for AI assistants)
AI assistants send this call themselves when you ask in plain words; you only need it when debugging an MCP connection.
{
"name": "hrm.inbox.reject",
"arguments": {
"args": {
"itemId": "0199a1b2-c3d4-7e5f-8a9b-0c1d2e3f4a5b",
"kind": "leave",
"reason": "Trùng lịch trực của bộ phận"
}
}
}Submit a leave request
Write proposalScope:hrm:writehrm.leave.submitSubmit the user's own leave request into the HR approval flow. Creates a proposal; it only runs after the user taps Confirm in the app.
| Parameter | Type | Required | Description |
|---|---|---|---|
fromDate | string | yes | From date (yyyy-MM-dd) |
toDate | string | yes | To date (yyyy-MM-dd) |
reason | string | yes | Reason |
leaveType | string | no | FULL_DAY or HALF_DAY; empty = full day |
MCP call example (for AI assistants)
AI assistants send this call themselves when you ask in plain words; you only need it when debugging an MCP connection.
{
"name": "hrm.leave.submit",
"arguments": {
"args": {
"fromDate": "2026-11-03",
"toDate": "2026-11-03",
"reason": "Việc gia đình"
}
}
}Tick an onboarding task
Write proposalScope:hrm:writehrm.onboarding.tickMark an onboarding checklist item as done or pending. Creates a proposal; it only runs after the user taps Confirm in the app.
| Parameter | Type | Required | Description |
|---|---|---|---|
checklistId | string | yes | Checklist id |
taskId | string | yes | Item id |
status | string | yes | done or pending |
notes | string | no | Notes |
MCP call example (for AI assistants)
AI assistants send this call themselves when you ask in plain words; you only need it when debugging an MCP connection.
{
"name": "hrm.onboarding.tick",
"arguments": {
"args": {
"checklistId": "0199a1b2-c3d4-7e5f-8a9b-0c1d2e3f4a5b",
"taskId": "0199a1b2-c3d4-7e5f-8a9b-0c1d2e3f4a5c",
"status": "done",
"notes": "Đã cấp laptop"
}
}
}Submit an overtime request
Write proposalScope:hrm:writehrm.overtime.submitSubmit the user's own overtime request. Creates a proposal; it only runs after the user taps Confirm in the app.
| Parameter | Type | Required | Description |
|---|---|---|---|
workDate | string | yes | Work date (yyyy-MM-dd) |
startTime | string | yes | Start (HH:mm) |
endTime | string | yes | End (HH:mm) |
reason | string | yes | Reason |
breakMinutes | integer | no | Break minutes |
MCP call example (for AI assistants)
AI assistants send this call themselves when you ask in plain words; you only need it when debugging an MCP connection.
{
"name": "hrm.overtime.submit",
"arguments": {
"args": {
"workDate": "2026-10-28",
"startTime": "18:00",
"endTime": "21:00",
"reason": "Chốt báo cáo"
}
}
}Mark a training completed
Write proposalScope:hrm:writehrm.training.completeRecord one learner as having completed a training course. Creates a proposal; it only runs after the user taps Confirm in the app.
| Parameter | Type | Required | Description |
|---|---|---|---|
enrollmentId | string | yes | Enrollment id |
note | string | no | Note |
MCP call example (for AI assistants)
AI assistants send this call themselves when you ask in plain words; you only need it when debugging an MCP connection.
{
"name": "hrm.training.complete",
"arguments": {
"args": {
"enrollmentId": "0199a1b2-c3d4-7e5f-8a9b-0c1d2e3f4a5b",
"note": "Đạt bài kiểm tra cuối khoá"
}
}
}