TalentHR MCP by usefulapi

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

Sollte ich dies verwenden

Qualität und Sicherheit

A
Qualität der Beschreibung
100%
Vollständigkeit des Schemas
77%
Qualität der Benennung
74%
Risiko der Vergiftung
100%
Übereinstimmung der Berechtigungen
100%
Einhaltung des Protokolls
100%

Befunde (8)

  • LOWTool 'talenthr_get_organization_chart' name length outside 3-30 rangein talenthr_get_organization_chart
  • LOWTool 'talenthr_list_employee_time_off_requests' name length outside 3-30 rangein talenthr_list_employee_time_off_requests
  • LOWTool 'talenthr_get_employee_time_off_budgets' name length outside 3-30 rangein talenthr_get_employee_time_off_budgets
  • LOWTool 'talenthr_list_job_position_applicants' name length outside 3-30 rangein talenthr_list_job_position_applicants
  • LOWTool 'talenthr_get_hires_leaves_report' name length outside 3-30 rangein talenthr_get_hires_leaves_report
  • LOWTool 'talenthr_list_time_tracking_entries' name length outside 3-30 rangein talenthr_list_time_tracking_entries
  • LOWTool 'talenthr_create_time_off_request' name length outside 3-30 rangein talenthr_create_time_off_request
  • LOWTool 'talenthr_reply_time_off_request' name length outside 3-30 rangein talenthr_reply_time_off_request

Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.

Kontextkosten

~6,271Tokens (Tool-Definitionen)
~1.5 KBTypische Antwortgröße
Erhebliche Auswirkung auf die Aufmerksamkeit (4.90% von 128k Kontext)

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": {
    "talenthr": {
      "url": "https://talenthr.usefulapi.io/mcp"
    }
  }
}

Remote-Endpunkte

https://talenthr.usefulapi.io/mcpstreamable-http

Was es kann

Tool-Inventar

Tools (29)

🟢 Nur lesen🟡 Schreiben🔴 Löschen⚪ Unbekannt
🟢talenthr_list_employees(limit, offset, filter, custom_fields)

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.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "limit": {
      "description": "Rows per page, 1-100 (default 10).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "offset": {
      "description": "Row offset, 0-based (default 0). Use next_offset from the previous reply.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    },
    "filter": {
      "type": "string",
      "maxLength": 500,
      "pattern": "^[a-z_]{1,40}=[A-Za-z0-9,_ -]*(;[a-z_]{1,40}=[A-Za-z0-9,_ -]*)*;?$",
      "description": "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."
    },
    "custom_fields": {
      "description": "Comma-separated custom field slugs to include, e.g. address,city,custom-field-001.",
      "type": "string",
      "maxLength": 500,
      "pattern": "^[a-z0-9_-]+(,[a-z0-9_-]+)*$"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢talenthr_get_directory_filters

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.

Eingabe-Schema

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢talenthr_get_employee(employee_id)

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.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "employee_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 2000000000,
      "description": "The employee id (from talenthr_list_employees)."
    }
  },
  "required": [
    "employee_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢talenthr_get_employee_job(employee_id)

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.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "employee_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 2000000000,
      "description": "The employee id (from talenthr_list_employees)."
    }
  },
  "required": [
    "employee_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢talenthr_get_organization_chart

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

Eingabe-Schema

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢talenthr_list_departments

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

Eingabe-Schema

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢talenthr_list_divisions

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

Eingabe-Schema

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢talenthr_list_locations

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

Eingabe-Schema

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢talenthr_list_job_titles

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

Eingabe-Schema

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢talenthr_list_time_off_types

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.

Eingabe-Schema

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢talenthr_list_employee_time_off_requests(employee_id, limit, offset, sort)

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.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "employee_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 2000000000,
      "description": "The employee id (from talenthr_list_employees)."
    },
    "limit": {
      "description": "Rows per page, 1-100 (default 10).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "offset": {
      "description": "Row offset, 0-based (default 0). Use next_offset from the previous reply.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    },
    "sort": {
      "description": "Column to sort by: id, timeoff_type_name, created_at.",
      "type": "string",
      "enum": [
        "id",
        "timeoff_type_name",
        "created_at"
      ]
    }
  },
  "required": [
    "employee_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢talenthr_get_employee_time_off_budgets(employee_id, active, time_off_cycle_id)

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.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "employee_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 2000000000,
      "description": "The employee id (from talenthr_list_employees)."
    },
    "active": {
      "description": "true = only the currently active time off cycle.",
      "type": "boolean"
    },
    "time_off_cycle_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 2000000000,
      "description": "Limit to one time off cycle id."
    }
  },
  "required": [
    "employee_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢talenthr_get_calendar(start_date, end_date, employee_id, filter)

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.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "start_date": {
      "type": "string",
      "description": "First day, yyyy-mm-dd."
    },
    "end_date": {
      "description": "Last day, yyyy-mm-dd (default: end of the start month).",
      "type": "string"
    },
    "employee_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 2000000000,
      "description": "Only this employee's calendar."
    },
    "filter": {
      "type": "string",
      "maxLength": 500,
      "pattern": "^[a-z_]{1,40}=[A-Za-z0-9,_ -]*(;[a-z_]{1,40}=[A-Za-z0-9,_ -]*)*;?$",
      "description": "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."
    }
  },
  "required": [
    "start_date"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢talenthr_list_holidays(year)

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

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "year": {
      "description": "Year, e.g. 2026 (default: this year).",
      "type": "integer",
      "minimum": 1990,
      "maximum": 2100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢talenthr_list_benefits(filter)

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

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "filter": {
      "type": "string",
      "maxLength": 500,
      "pattern": "^[a-z_]{1,40}=[A-Za-z0-9,_ -]*(;[a-z_]{1,40}=[A-Za-z0-9,_ -]*)*;?$",
      "description": "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."
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢talenthr_get_employee_benefits(employee_id)

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

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "employee_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 2000000000,
      "description": "The employee id (from talenthr_list_employees)."
    }
  },
  "required": [
    "employee_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢talenthr_list_assets(limit, offset, search, filter, sort, ...)

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

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "limit": {
      "description": "Rows per page, 1-100 (default 10).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "offset": {
      "description": "Row offset, 0-based (default 0). Use next_offset from the previous reply.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    },
    "search": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "filter": {
      "type": "string",
      "maxLength": 500,
      "pattern": "^[a-z_]{1,40}=[A-Za-z0-9,_ -]*(;[a-z_]{1,40}=[A-Za-z0-9,_ -]*)*;?$",
      "description": "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."
    },
    "sort": {
      "description": "Column to sort by: created_at, name, category, location, department, division, used_by, serial_number, warranty_end_date.",
      "type": "string",
      "enum": [
        "created_at",
        "name",
        "category",
        "location",
        "department",
        "division",
        "used_by",
        "serial_number",
        "warranty_end_date"
      ]
    },
    "order": {
      "description": "Sort direction.",
      "type": "string",
      "enum": [
        "asc",
        "desc"
      ]
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢talenthr_get_employee_assets(employee_id, limit, offset, sort, order)

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

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "employee_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 2000000000,
      "description": "The employee id (from talenthr_list_employees)."
    },
    "limit": {
      "description": "Rows per page, 1-100 (default 10).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "offset": {
      "description": "Row offset, 0-based (default 0). Use next_offset from the previous reply.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    },
    "sort": {
      "description": "Column to sort by: assing_date, name, category, type, serial_number.",
      "type": "string",
      "enum": [
        "assing_date",
        "name",
        "category",
        "type",
        "serial_number"
      ]
    },
    "order": {
      "description": "Sort direction.",
      "type": "string",
      "enum": [
        "asc",
        "desc"
      ]
    }
  },
  "required": [
    "employee_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢talenthr_list_job_positions

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.

Eingabe-Schema

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢talenthr_list_job_position_applicants(job_position_id, limit, offset, search, sort, ...)

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.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "job_position_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 2000000000,
      "description": "The job position id (from talenthr_list_job_positions)."
    },
    "limit": {
      "description": "Rows per page, 1-100 (default 10).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "offset": {
      "description": "Row offset, 0-based (default 0). Use next_offset from the previous reply.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    },
    "search": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "sort": {
      "description": "Column to sort by: name, created_at.",
      "type": "string",
      "enum": [
        "name",
        "created_at"
      ]
    },
    "order": {
      "description": "Sort direction.",
      "type": "string",
      "enum": [
        "asc",
        "desc"
      ]
    }
  },
  "required": [
    "job_position_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢talenthr_list_applicants(limit, offset, search, starred_only, sort, ...)

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

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "limit": {
      "description": "Rows per page, 1-100 (default 10).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "offset": {
      "description": "Row offset, 0-based (default 0). Use next_offset from the previous reply.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    },
    "search": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "starred_only": {
      "type": "boolean"
    },
    "sort": {
      "description": "Column to sort by: name, created_at.",
      "type": "string",
      "enum": [
        "name",
        "created_at"
      ]
    },
    "order": {
      "description": "Sort direction.",
      "type": "string",
      "enum": [
        "asc",
        "desc"
      ]
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢talenthr_get_applicant(applicant_id)

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.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "applicant_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 2000000000,
      "description": "The applicant id (from talenthr_list_applicants)."
    }
  },
  "required": [
    "applicant_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢talenthr_get_headcount_report(period, start_date, end_date, filter, group_by)

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

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "period": {
      "type": "string",
      "pattern": "^(l12m|(19|20)\\d{2})$",
      "description": "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_date": {
      "description": "Custom range start, yyyy-mm-dd (use with end_date instead of period).",
      "type": "string"
    },
    "end_date": {
      "description": "Custom range end, yyyy-mm-dd.",
      "type": "string"
    },
    "filter": {
      "type": "string",
      "maxLength": 500,
      "pattern": "^[a-z_]{1,40}=[A-Za-z0-9,_ -]*(;[a-z_]{1,40}=[A-Za-z0-9,_ -]*)*;?$",
      "description": "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_by": {
      "description": "Break the headcount down by this dimension.",
      "type": "string",
      "enum": [
        "location",
        "department",
        "division",
        "gender",
        "age",
        "seniority"
      ]
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢talenthr_get_hires_leaves_report(period, start_date, end_date, filter)

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

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "period": {
      "type": "string",
      "pattern": "^(l12m|(19|20)\\d{2})$",
      "description": "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_date": {
      "description": "Custom range start, yyyy-mm-dd (use with end_date instead of period).",
      "type": "string"
    },
    "end_date": {
      "description": "Custom range end, yyyy-mm-dd.",
      "type": "string"
    },
    "filter": {
      "type": "string",
      "maxLength": 500,
      "pattern": "^[a-z_]{1,40}=[A-Za-z0-9,_ -]*(;[a-z_]{1,40}=[A-Za-z0-9,_ -]*)*;?$",
      "description": "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."
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢talenthr_get_time_off_report(period, start_date, end_date, filter)

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

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "period": {
      "type": "string",
      "pattern": "^(l12m|(19|20)\\d{2})$",
      "description": "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_date": {
      "description": "Custom range start, yyyy-mm-dd (use with end_date instead of period).",
      "type": "string"
    },
    "end_date": {
      "description": "Custom range end, yyyy-mm-dd.",
      "type": "string"
    },
    "filter": {
      "type": "string",
      "maxLength": 500,
      "pattern": "^[a-z_]{1,40}=[A-Za-z0-9,_ -]*(;[a-z_]{1,40}=[A-Za-z0-9,_ -]*)*;?$",
      "description": "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."
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢talenthr_list_time_tracking_entries(limit, offset, period, start_date, end_date, ...)

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.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "limit": {
      "description": "Rows per page, 1-100 (default 10).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "offset": {
      "description": "Row offset, 0-based (default 0). Use next_offset from the previous reply.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    },
    "period": {
      "description": "Preset period (default today when no dates are given). Alternatively pass start_date and end_date (max 36 months).",
      "type": "string",
      "enum": [
        "today",
        "yesterday",
        "week",
        "month"
      ]
    },
    "start_date": {
      "description": "Range start, yyyy-mm-dd.",
      "type": "string"
    },
    "end_date": {
      "description": "Range end, yyyy-mm-dd.",
      "type": "string"
    },
    "working_now": {
      "description": "true = only entries that are running right now.",
      "type": "boolean"
    },
    "search": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "filter": {
      "type": "string",
      "maxLength": 500,
      "pattern": "^[a-z_]{1,40}=[A-Za-z0-9,_ -]*(;[a-z_]{1,40}=[A-Za-z0-9,_ -]*)*;?$",
      "description": "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."
    },
    "sort": {
      "description": "Column to sort by: time, started_at, ended_at, name, tag, location.",
      "type": "string",
      "enum": [
        "time",
        "started_at",
        "ended_at",
        "name",
        "tag",
        "location"
      ]
    },
    "order": {
      "description": "Sort direction.",
      "type": "string",
      "enum": [
        "asc",
        "desc"
      ]
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴talenthr_create_time_off_request(employee_id, start_date, end_date, timeoff_type_id, preapproved, ...)

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.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "employee_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 2000000000,
      "description": "The employee id (from talenthr_list_employees)."
    },
    "start_date": {
      "type": "string",
      "description": "First day off, yyyy-mm-dd."
    },
    "end_date": {
      "type": "string",
      "description": "Last day off (inclusive), yyyy-mm-dd."
    },
    "timeoff_type_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 2000000000,
      "description": "Time off type id (from talenthr_list_time_off_types)."
    },
    "preapproved": {
      "description": "true = auto-approve (no manager e-mail decision). Default false.",
      "type": "boolean"
    },
    "amount_options": {
      "description": "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.",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {
        "anyOf": [
          {
            "type": "number"
          },
          {
            "type": "object",
            "properties": {
              "amount_days": {
                "type": "number"
              },
              "amount_hours": {
                "type": "number",
                "minimum": 0,
                "maximum": 24
              }
            },
            "additionalProperties": false
          }
        ]
      }
    },
    "note": {
      "description": "Note for the approver (max 255 characters).",
      "type": "string",
      "maxLength": 255
    }
  },
  "required": [
    "employee_id",
    "start_date",
    "end_date",
    "timeoff_type_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴talenthr_reply_time_off_request(employee_id, time_off_request_id, accept)

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

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "employee_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 2000000000,
      "description": "The id of the employee who made the request."
    },
    "time_off_request_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 2000000000,
      "description": "The time off request id."
    },
    "accept": {
      "type": "boolean",
      "description": "true = approve, false = reject."
    }
  },
  "required": [
    "employee_id",
    "time_off_request_id",
    "accept"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴talenthr_create_applicant_note(job_position_id, application_id, note_text)

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.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "job_position_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 2000000000,
      "description": "The job position id of the application."
    },
    "application_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 2000000000,
      "description": "The application id (from talenthr_get_applicant)."
    },
    "note_text": {
      "type": "string",
      "minLength": 1,
      "maxLength": 30000,
      "description": "The note text (max 30000 characters)."
    }
  },
  "required": [
    "job_position_id",
    "application_id",
    "note_text"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Community

Diesen Server bewerten

Nachweis

Aktuelle Beobachtungen

verifiziertVersion nicht aufgezeichnet29 Tools