AI tools — HR

30 tools. The latest schema is always in hrm_tool_catalog once connected.

Attendance devices

ReadScope: hrm:read
hrm_attendance_devices_list

List attendance devices: name, serial, brand, protocol, IP, in/out role, status. Never returns device passwords.

ParameterTypeRequiredDescription
includeInactivebooleannotrue = 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:read
hrm_clock_history_daily

Daily clock-in/out per employee over a date range (max 62 days), filtered by employee or department.

ParameterTypeRequiredDescription
fromstringyesFrom date (yyyy-MM-dd)
tostringyesTo date (yyyy-MM-dd)
employeeIdstringnoEmployee id
orgUnitIdstringnoDepartment id
pageintegernoPage, starting at 1
pageSizeintegernoRows 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:read
hrm_clock_history_timeline

All clock events of one employee over a date range (max 62 days), in time order.

ParameterTypeRequiredDescription
employeeIdstringyesEmployee id
fromstringyesFrom date (yyyy-MM-dd)
tostringyesTo 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:read
hrm_contracts_expiring

Labor contracts expiring within N days, within the user's visible scope.

ParameterTypeRequiredDescription
daysintegernoDays ahead, default 30, max 90
pageintegernoPage, starting at 1
pageSizeintegernoRows 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:read
hrm_employee_credentials_list

Faces, fingerprints, cards and QR registered for one employee per device, with sync status. Never returns card numbers.

ParameterTypeRequiredDescription
employeeIdstringyesEmployee 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:read
hrm_employees_get

One employee profile: department, title, start date, probation end. Never returns ID documents, bank accounts or address.

ParameterTypeRequiredDescription
employeeIdstringyesEmployee 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"
    }
  }
}

Requests awaiting my approval

ReadScope: hrm:read
hrm_inbox_list

Requests waiting for the user's own approval (leave, corrections, overtime…).

ParameterTypeRequiredDescription
statusstringnoStatus, default PENDING
kindstringnoRequest kind
searchstringnoKeyword
pageintegernoPage, starting at 1
pageSizeintegernoRows 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:read
hrm_insurance_summary

Monthly social insurance summary, within the user's access.

ParameterTypeRequiredDescription
yearintegeryesYear
monthintegeryesMonth (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:read
hrm_me_clock_today

The 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:read
hrm_me_contracts

The 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:read
hrm_me_payslips

The user's own finalized payslips; with payslipId returns one payslip in detail.

ParameterTypeRequiredDescription
yearintegernoYear
payslipIdstringnoPayslip 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:read
hrm_me_requests

The user's own leave, correction and overtime requests by status.

ParameterTypeRequiredDescription
statusstringnopending (default), approved, rejected or cancelled
pageintegernoPage, starting at 1
pageSizeintegernoRows 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:read
hrm_me_summary

The 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:read
hrm_onboarding_list

Onboarding checklists within the user's visible scope.

ParameterTypeRequiredDescription
employeeIdstringnoEmployee id
statusstringnoStatus

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:read
hrm_org_units

Departments visible to the user: name, headcount, manager.

ParameterTypeRequiredDescription
searchstringnoDepartment 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:read
hrm_performance_meetings

The 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": {}
  }
}

Candidates

ReadScope: hrm:read
hrm_recruitment_list

Candidates visible to the user: name, source, notes. Never returns phone numbers.

ParameterTypeRequiredDescription
searchstringnoCandidate name
pageintegernoPage, starting at 1
pageSizeintegernoRows 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:read
hrm_report_attendance

Monthly attendance sheet by symbol, within the user's visible scope.

ParameterTypeRequiredDescription
yearintegeryesYear
monthintegeryesMonth (1–12)
orgUnitIdstringnoDepartment 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:read
hrm_report_overtime

Monthly overtime summary, within the user's visible scope.

ParameterTypeRequiredDescription
yearintegeryesYear
monthintegeryesMonth (1–12)
orgUnitIdstringnoDepartment 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:read
hrm_training_courses

List open training courses.

ParameterTypeRequiredDescription
searchstringnoCourse name
pageintegernoPage, starting at 1
pageSizeintegernoRows 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:read
hrm_training_learner

Courses one employee is enrolled in.

ParameterTypeRequiredDescription
employeeIdstringyesEmployee id (from hrm_employees_search)
pageintegernoPage, starting at 1
pageSizeintegernoRows 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:write
hrm.correction.submit

Submit 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.

ParameterTypeRequiredDescription
datestringyesDate (yyyy-MM-dd)
clockInstringnoCorrect clock-in (ISO)
clockOutstringnoCorrect clock-out (ISO)
reasonstringyesReason
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:write
hrm.inbox.approve

Approve a request waiting in the user's own approval inbox. Creates a proposal; it only runs after the user taps Confirm in the app.

ParameterTypeRequiredDescription
itemIdstringyesRequest id (from hrm_inbox_list)
kindstringyesRequest kind (from hrm_inbox_list)
commentstringnoComment
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:write
hrm.inbox.reject

Reject 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.

ParameterTypeRequiredDescription
itemIdstringyesRequest id
kindstringyesRequest kind
reasonstringyesRejection 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:write
hrm.leave.submit

Submit 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.

ParameterTypeRequiredDescription
fromDatestringyesFrom date (yyyy-MM-dd)
toDatestringyesTo date (yyyy-MM-dd)
reasonstringyesReason
leaveTypestringnoFULL_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:write
hrm.onboarding.tick

Mark an onboarding checklist item as done or pending. Creates a proposal; it only runs after the user taps Confirm in the app.

ParameterTypeRequiredDescription
checklistIdstringyesChecklist id
taskIdstringyesItem id
statusstringyesdone or pending
notesstringnoNotes
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:write
hrm.overtime.submit

Submit the user's own overtime request. Creates a proposal; it only runs after the user taps Confirm in the app.

ParameterTypeRequiredDescription
workDatestringyesWork date (yyyy-MM-dd)
startTimestringyesStart (HH:mm)
endTimestringyesEnd (HH:mm)
reasonstringyesReason
breakMinutesintegernoBreak 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:write
hrm.training.complete

Record one learner as having completed a training course. Creates a proposal; it only runs after the user taps Confirm in the app.

ParameterTypeRequiredDescription
enrollmentIdstringyesEnrollment id
notestringnoNote
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á"
    }
  }
}