intelliHR MCP by usefulapi
Read intelliHR people, jobs, leave, skills and training; create and update people records.
Sollte ich dies verwenden
Qualität und Sicherheit
Befunde (4)
- LOWin intellihr_list_person_documents
- LOWin intellihr_list_business_entities
- LOWin intellihr_list_custom_field_definitions
- LOWin intellihr_create_extended_leave
Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.
Kontextkosten
Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.
Installieren
Installation mit einem Klick
Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:
{
"mcpServers": {
"intellihr": {
"url": "https://intellihr.usefulapi.io/mcp"
}
}
}Remote-Endpunkte
https://intellihr.usefulapi.io/mcpstreamable-httpWas es kann
Tool-Inventar
Tools (22)
🟢intellihr_list_people(name, email, employee_number, job_id, updated_within_days, ...)
List the people (employees) in intelliHR as at today: name, employee number, email, phone, addresses, emergency contact, employment status, their jobs (summary) and custom fields. Filter by name (matches any part of the name), email, employee number, job id, recently updated, or who is on extended leave. Health information is never returned. GET /people.
Eingabe-Schema
{
"type": "object",
"properties": {
"name": {
"description": "Match any part of a person's name (case-insensitive, any name order).",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"email": {
"description": "Exact primary email address.",
"type": "string",
"minLength": 3,
"maxLength": 254
},
"employee_number": {
"description": "Exact employee number.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"job_id": {
"description": "Current job id(s), comma separated: the people who hold them.",
"type": "string"
},
"updated_within_days": {
"description": "Only people updated within this many days.",
"type": "integer",
"minimum": 0,
"maximum": 36500
},
"on_extended_leave": {
"description": "true = only people on extended leave, false = only people not on extended leave.",
"type": "boolean"
},
"newest_first": {
"description": "Sort by creation date, newest first (default: API order).",
"type": "boolean"
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"limit": {
"description": "Results per page, 1-100 (default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢intellihr_get_person(person_id)
One person's full record by id: names, date of birth, gender, employee number, contact details, addresses, emergency contact, employment status, jobs, work rights, user account and custom fields. Health information is never returned. GET /people/{id}.
Eingabe-Schema
{
"type": "object",
"properties": {
"person_id": {
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
}
},
"required": [
"person_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢intellihr_list_person_documents(person_id, page, limit)
The documents stored on a person's record (file name, type, size, upload status and a download link). Contents are not read. GET /people/{personId}/documents.
Eingabe-Schema
{
"type": "object",
"properties": {
"person_id": {
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"limit": {
"description": "Results per page, 1-100 (default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"required": [
"person_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢intellihr_list_person_skills(person_id)
The skills assigned to a person (with their level and review details as intelliHR returns them). The whole list comes back at once. GET /people/{personId}/skills.
Eingabe-Schema
{
"type": "object",
"properties": {
"person_id": {
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
}
},
"required": [
"person_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢intellihr_list_person_tasks(person_id, tab, page, limit)
Tasks (forms, reviews, check-ins, onboarding steps) for a person, by tab: DUE (default), ABOUT_ME, ABOUT_OTHERS, DONE or IGNORED. GET /people/{personId}/tasks.
Eingabe-Schema
{
"type": "object",
"properties": {
"person_id": {
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
},
"tab": {
"description": "Which tab of tasks (default DUE).",
"type": "string",
"enum": [
"DUE",
"ABOUT_ME",
"ABOUT_OTHERS",
"DONE",
"IGNORED"
]
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"limit": {
"description": "Results per page, 1-100 (default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"required": [
"person_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢intellihr_list_jobs(person_id, person_name, email, employee_number, job_id, ...)
List jobs (roles people hold, past, current and future) as at today: person, position title, location, business unit and entity, supervisor, work type, FTE, remuneration schedule, start/end dates and status. Filter by person, job title, status (Current Job, Future Job, Ending Job, Past Job), work type, primary job, or upcoming/recent end dates. GET /jobs.
Eingabe-Schema
{
"type": "object",
"properties": {
"person_id": {
"description": "Person id(s), comma separated: the jobs of those people.",
"type": "string"
},
"person_name": {
"description": "The holder's name.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"email": {
"description": "The holder's primary email.",
"type": "string",
"minLength": 3,
"maxLength": 254
},
"employee_number": {
"description": "The holder's employee number.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"job_id": {
"type": "string",
"description": "One UUID, or several separated by commas."
},
"job_name": {
"description": "The job (position title) name.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"status": {
"type": "string",
"enum": [
"Current Job",
"Future Job",
"Ending Job",
"Past Job"
]
},
"work_type": {
"description": "Work type name, e.g. Fixed Contract.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"primary_only": {
"description": "true = only primary jobs, false = only non-primary jobs.",
"type": "boolean"
},
"ending_within_days": {
"description": "Jobs with an end date in the next N days (including today).",
"type": "integer",
"minimum": 0,
"maximum": 36500
},
"ended_within_days": {
"description": "Jobs that ended in the last N days (including today).",
"type": "integer",
"minimum": 0,
"maximum": 36500
},
"updated_within_days": {
"type": "integer",
"minimum": 0,
"maximum": 36500
},
"employment_condition_id": {
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
},
"newest_first": {
"description": "Sort by creation date, newest first.",
"type": "boolean"
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"limit": {
"description": "Results per page, 1-100 (default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢intellihr_get_job(job_id)
One job by id with its person, position title, location, business unit, supervisor, pay grade, remuneration and dates. GET /jobs/{id}.
Eingabe-Schema
{
"type": "object",
"properties": {
"job_id": {
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
}
},
"required": [
"job_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢intellihr_get_job_timeline(job_id)
The upcoming changes and current information about a job (scheduled changes, end date). GET /jobs/{jobId}/timeline.
Eingabe-Schema
{
"type": "object",
"properties": {
"job_id": {
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
}
},
"required": [
"job_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢intellihr_list_locations(page, limit)
The organisation's locations (sites) with parent location, code, address, enabled flag and representatives. GET /locations.
Eingabe-Schema
{
"type": "object",
"properties": {
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"limit": {
"description": "Results per page, 1-100 (default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢intellihr_list_business_units(name, identifier, page, limit)
The organisation's business units (departments, teams). Filter by name or identifier. GET /business-units.
Eingabe-Schema
{
"type": "object",
"properties": {
"name": {
"description": "Part of the business unit name.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"identifier": {
"description": "The customer identifier of the unit.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"limit": {
"description": "Results per page, 1-100 (default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢intellihr_list_business_entities(page, limit)
The organisation's business entities (legal employers). GET /business-entities.
Eingabe-Schema
{
"type": "object",
"properties": {
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"limit": {
"description": "Results per page, 1-100 (default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢intellihr_list_position_titles(name, page, limit)
The position titles (job names) defined in intelliHR. Filter by name. GET /position-titles.
Eingabe-Schema
{
"type": "object",
"properties": {
"name": {
"description": "Part of the position title.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"limit": {
"description": "Results per page, 1-100 (default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢intellihr_list_pay_grades(as_at, page, limit)
The pay grades and their rates, optionally as at a date. GET /pay-grades.
Eingabe-Schema
{
"type": "object",
"properties": {
"as_at": {
"description": "Show the pay grades as at this point in time: an RFC3339 datetime (2026-10-01T09:00:00+10:00) or a date yyyy-mm-dd (= 00:00 UTC that day). Default now.",
"type": "string"
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"limit": {
"description": "Results per page, 1-100 (default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢intellihr_list_users(page, limit)
The user accounts that can sign in to intelliHR: username, enabled flag, permission groups and the linked person. GET /users.
Eingabe-Schema
{
"type": "object",
"properties": {
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"limit": {
"description": "Results per page, 1-100 (default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢intellihr_list_custom_field_definitions(page, limit)
The custom fields defined in intelliHR (what each field on a person, job or location means and its type). GET /custom-field-definitions.
Eingabe-Schema
{
"type": "object",
"properties": {
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"limit": {
"description": "Results per page, 1-100 (default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢intellihr_list_reference_data(kind, page, limit)
Look up one of intelliHR's reference lists: employment_conditions, work_classes, work_types, work_rights, recruitment_sources, extended_leave_types, job_change_reasons, skill_disciplines, training_types, training_providers, qualification_types, qualification_library_items, onboarding_templates, permission_groups or representative_types. Use it to find the ids and names other tools need.
Eingabe-Schema
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"employment_conditions",
"work_classes",
"work_types",
"work_rights",
"recruitment_sources",
"extended_leave_types",
"job_change_reasons",
"skill_disciplines",
"training_types",
"training_providers",
"qualification_types",
"qualification_library_items",
"onboarding_templates",
"permission_groups",
"representative_types"
]
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"limit": {
"description": "Results per page, 1-100 (default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"required": [
"kind"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢intellihr_list_skills(business_critical, discipline_id, page, limit)
The skills catalogue, optionally only business-critical skills or one discipline. GET /skills.
Eingabe-Schema
{
"type": "object",
"properties": {
"business_critical": {
"description": "true = only business-critical skills.",
"type": "boolean"
},
"discipline_id": {
"description": "Only skills in this skill discipline (see list_reference_data kind skill_disciplines).",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"limit": {
"description": "Results per page, 1-100 (default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢intellihr_list_qualifications(person_id, employee_number, qualification_library_item_id, page, limit)
Qualification records held by people (licences, certificates) with status and dates. Filter by person, employee number or library item. GET /qualifications.
Eingabe-Schema
{
"type": "object",
"properties": {
"person_id": {
"description": "Person id(s), comma separated.",
"type": "string"
},
"employee_number": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"qualification_library_item_id": {
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"limit": {
"description": "Results per page, 1-100 (default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢intellihr_list_trainings(name, provider_name, type_name, employee_number, email, ...)
Training records completed or booked by people, with provider, type and dates. Filter by training name, provider, type, employee number or email. GET /trainings.
Eingabe-Schema
{
"type": "object",
"properties": {
"name": {
"description": "Training name.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"provider_name": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"type_name": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"employee_number": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"email": {
"description": "The person's primary email.",
"type": "string",
"minLength": 3,
"maxLength": 254
},
"newest_first": {
"description": "Sort by creation date, newest first.",
"type": "boolean"
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"limit": {
"description": "Results per page, 1-100 (default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟡intellihr_create_person(last_name, first_name, middle_name, preferred_name, date_of_birth, ...)
WRITE: create a new person record in intelliHR (last name required). It creates the person only: no job, no user account and no welcome email is sent. A job is added separately in intelliHR. Check with list_people first to avoid duplicates. POST /people.
Eingabe-Schema
{
"type": "object",
"properties": {
"last_name": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"first_name": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"middle_name": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"preferred_name": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"date_of_birth": {
"description": "yyyy-mm-dd.",
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
},
"gender": {
"type": "string",
"enum": [
"Female",
"Male",
"Non-binary",
"Other",
"Undisclosed"
]
},
"employee_number": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"title": {
"description": "For example Mr, Ms, Dr.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"email": {
"description": "Primary email address.",
"type": "string",
"minLength": 3,
"maxLength": 254
},
"email_is_personal": {
"description": "true if the email is personal rather than a work address (default false).",
"type": "boolean"
},
"phone": {
"description": "Primary phone number.",
"type": "string",
"minLength": 3,
"maxLength": 40
}
},
"required": [
"last_name"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴intellihr_update_person(person_id, last_name, first_name, middle_name, preferred_name, ...)
WRITE: change fields on an existing person (only the fields you pass change): names, date of birth, gender, employee number, title and emergency contact. Contact details, addresses and jobs are not changed by this tool. PATCH /people/{id}.
Eingabe-Schema
{
"type": "object",
"properties": {
"person_id": {
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
},
"last_name": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"first_name": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"middle_name": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"preferred_name": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"date_of_birth": {
"description": "yyyy-mm-dd.",
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
},
"gender": {
"type": "string",
"enum": [
"Female",
"Male",
"Non-binary",
"Other",
"Undisclosed"
]
},
"employee_number": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"title": {
"description": "For example Mr, Ms, Dr.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"emergency_contact": {
"description": "Emergency contact details to set.",
"type": "object",
"properties": {
"name": {
"type": "string",
"maxLength": 200
},
"relationship": {
"type": "string",
"maxLength": 100
},
"phone": {
"type": "string",
"maxLength": 40
},
"email": {
"type": "string",
"maxLength": 254
}
}
}
},
"required": [
"person_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟡intellihr_create_extended_leave(job_id, start_date, end_date, leave_type_id, leave_type_name, ...)
WRITE: record extended leave (parental, long service, unpaid, etc.) on an existing job. It changes the person's employment record and can trigger intelliHR workflows. The leave is created with the end date you give as expected; finalise it in intelliHR when the person returns. Find leave types with list_reference_data kind extended_leave_types. POST /extended-leave.
Eingabe-Schema
{
"type": "object",
"properties": {
"job_id": {
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
"description": "The job the leave belongs to."
},
"start_date": {
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
},
"end_date": {
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
"description": "Expected end date, yyyy-mm-dd."
},
"leave_type_id": {
"description": "Extended leave type id.",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
},
"leave_type_name": {
"description": "Extended leave type name (used when no id is given).",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"fte": {
"description": "FTE during the leave, e.g. 0.6.",
"type": "string",
"pattern": "^\\d+(\\.\\d+)?$"
}
},
"required": [
"job_id",
"start_date",
"end_date"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Community
Nachweis