SmartHR MCP by usefulapi

MCP server for SmartHR — employees, departments, dependents and employee invitations.

Should I use this

Quality & Safety

A
Description quality
96%
Schema completeness
94%
Naming quality
76%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (5)

  • LOWTool 'smarthr_list_maternity_childcare_leaves' name length outside 3-30 rangein smarthr_list_maternity_childcare_leaves
  • LOWTool 'smarthr_list_business_establishments' name length outside 3-30 rangein smarthr_list_business_establishments
  • LOWTool 'smarthr_list_employee_custom_fields' name length outside 3-30 rangein smarthr_list_employee_custom_fields
  • LOWTool 'smarthr_list_dependent_relations' name length outside 3-30 rangein smarthr_list_dependent_relations
  • LOWTool 'smarthr_list_employee_input_forms' name length outside 3-30 rangein smarthr_list_employee_input_forms

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~7,060Tokens (tool definitions)
~2.8 KBTypical response size
Significant attention impact (5.52% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "smarthr": {
      "url": "https://smarthr.usefulapi.io/mcp"
    }
  }
}

Remote endpoints

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

What it can do

Tool inventory

Tools (23)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢smarthr_list_employees(q, emp_status, emp_code, employment_type_id, department_id, ...)

List employees (従業員) of the SmartHR tenant, with filters: free-text name/department/position search, status (employed, absent, retired), employee number, employment type, department, position, hire and resignation date ranges. Returns a compact record per employee; use `fields` for more. Sensitive data (bank accounts, insurance numbers, residence cards, salary, ID images) is never returned.

Input Schema

{
  "type": "object",
  "properties": {
    "q": {
      "description": "Free-text search over name, business name, department name and position name.",
      "type": "string",
      "maxLength": 500
    },
    "emp_status": {
      "description": "Only employees with this status.",
      "type": "string",
      "enum": [
        "employed",
        "absent",
        "retired"
      ]
    },
    "emp_code": {
      "description": "Exact employee number.",
      "type": "string",
      "maxLength": 500
    },
    "employment_type_id": {
      "description": "Employment type id(s), comma separated (from smarthr_list_employment_types).",
      "type": "string",
      "pattern": "^[A-Za-z0-9_-]+(,[A-Za-z0-9_-]+)*$"
    },
    "department_id": {
      "description": "Department id(s), comma separated (from smarthr_list_departments).",
      "type": "string",
      "pattern": "^[A-Za-z0-9_-]+(,[A-Za-z0-9_-]+)*$"
    },
    "position_id": {
      "description": "Position id(s), comma separated (from smarthr_list_positions).",
      "type": "string",
      "pattern": "^[A-Za-z0-9_-]+(,[A-Za-z0-9_-]+)*$"
    },
    "id": {
      "description": "Employee id(s), comma separated.",
      "type": "string",
      "pattern": "^[A-Za-z0-9_-]+(,[A-Za-z0-9_-]+)*$"
    },
    "user_id": {
      "description": "User id(s), comma separated.",
      "type": "string",
      "pattern": "^[A-Za-z0-9_-]+(,[A-Za-z0-9_-]+)*$"
    },
    "entered_at_from": {
      "description": "Hired on or after this day (yyyy-mm-dd).",
      "type": "string"
    },
    "entered_at_to": {
      "description": "Hired on or before this day (yyyy-mm-dd).",
      "type": "string"
    },
    "resigned_at_from": {
      "description": "Resigned on or after this day (yyyy-mm-dd).",
      "type": "string"
    },
    "resigned_at_to": {
      "description": "Resigned on or before this day (yyyy-mm-dd).",
      "type": "string"
    },
    "sort": {
      "description": "Sort order: property names, several separated by commas, a leading \"-\" means descending, e.g. \"-updated_at\".",
      "type": "string",
      "pattern": "^-?[a-z_]+(,-?[a-z_]+)*$"
    },
    "fields": {
      "description": "Which employee fields to return (default: names, status, email, departments, positions, grade, job category, dates). Add address, tel_number, birth_at, custom_fields, contract_* and so on when needed. Bank, insurance, tax, salary and ID-document data are never available.",
      "maxItems": 47,
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "id",
          "user_id",
          "biz_establishment_id",
          "emp_code",
          "emp_type",
          "employment_type",
          "emp_status",
          "last_name",
          "first_name",
          "last_name_yomi",
          "first_name_yomi",
          "business_last_name",
          "business_first_name",
          "business_last_name_yomi",
          "business_first_name_yomi",
          "preferred_last_name",
          "preferred_first_name",
          "preferred_last_name_yomi",
          "preferred_first_name_yomi",
          "birth_at",
          "gender",
          "tel_number",
          "address",
          "email",
          "emergency_relation_name",
          "emergency_last_name",
          "emergency_first_name",
          "emergency_tel_number",
          "position",
          "positions",
          "grade",
          "job_category",
          "occupation",
          "entered_at",
          "resigned_at",
          "resigned_reason",
          "recruitment_type",
          "department",
          "departments",
          "contract_type",
          "contract_start_on",
          "contract_end_on",
          "contract_renewal_type",
          "nationality_code",
          "custom_fields",
          "created_at",
          "updated_at"
        ]
      }
    },
    "page": {
      "description": "Page number, 1-based (default 1). Use next_page from the previous reply.",
      "type": "integer",
      "minimum": 1,
      "maximum": 100000
    },
    "per_page": {
      "description": "Results per page, 1-100 (default 50).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢smarthr_get_employee(id, fields)

Get one employee (従業員) by id. Returns a compact record; use `fields` for more (address, phone, birth date, custom fields, contract dates). Sensitive data is never returned.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "Employee id (from smarthr_list_employees)."
    },
    "fields": {
      "description": "Which employee fields to return (default: names, status, email, departments, positions, grade, job category, dates). Add address, tel_number, birth_at, custom_fields, contract_* and so on when needed. Bank, insurance, tax, salary and ID-document data are never available.",
      "maxItems": 47,
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "id",
          "user_id",
          "biz_establishment_id",
          "emp_code",
          "emp_type",
          "employment_type",
          "emp_status",
          "last_name",
          "first_name",
          "last_name_yomi",
          "first_name_yomi",
          "business_last_name",
          "business_first_name",
          "business_last_name_yomi",
          "business_first_name_yomi",
          "preferred_last_name",
          "preferred_first_name",
          "preferred_last_name_yomi",
          "preferred_first_name_yomi",
          "birth_at",
          "gender",
          "tel_number",
          "address",
          "email",
          "emergency_relation_name",
          "emergency_last_name",
          "emergency_first_name",
          "emergency_tel_number",
          "position",
          "positions",
          "grade",
          "job_category",
          "occupation",
          "entered_at",
          "resigned_at",
          "resigned_reason",
          "recruitment_type",
          "department",
          "departments",
          "contract_type",
          "contract_start_on",
          "contract_end_on",
          "contract_renewal_type",
          "nationality_code",
          "custom_fields",
          "created_at",
          "updated_at"
        ]
      }
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢smarthr_list_dependents(employee_id, page, per_page)

List the dependents (家族情報) registered for one employee: name, relation, birth date, living arrangement and support status. Pension numbers, income and documents are not returned.

Input Schema

{
  "type": "object",
  "properties": {
    "employee_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "Employee id (from smarthr_list_employees)."
    },
    "page": {
      "description": "Page number, 1-based (default 1). Use next_page from the previous reply.",
      "type": "integer",
      "minimum": 1,
      "maximum": 100000
    },
    "per_page": {
      "description": "Results per page, 1-100 (default 50).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    }
  },
  "required": [
    "employee_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢smarthr_list_maternity_childcare_leaves(employee_id, page, per_page)

List the maternity and childcare leave records (産休育休) of one employee: expected birth, leave start/end and scheduled return dates. Bank, insurance and memo data are not returned.

Input Schema

{
  "type": "object",
  "properties": {
    "employee_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "Employee id (from smarthr_list_employees)."
    },
    "page": {
      "description": "Page number, 1-based (default 1). Use next_page from the previous reply.",
      "type": "integer",
      "minimum": 1,
      "maximum": 100000
    },
    "per_page": {
      "description": "Results per page, 1-100 (default 50).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    }
  },
  "required": [
    "employee_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢smarthr_list_departments(code, sort, page, per_page)

List departments (部署) with their hierarchy (parent, children), code and company.

Input Schema

{
  "type": "object",
  "properties": {
    "code": {
      "description": "Exact department code.",
      "type": "string",
      "maxLength": 500
    },
    "sort": {
      "description": "Sort order: property names, several separated by commas, a leading \"-\" means descending, e.g. \"-updated_at\".",
      "type": "string",
      "pattern": "^-?[a-z_]+(,-?[a-z_]+)*$"
    },
    "page": {
      "description": "Page number, 1-based (default 1). Use next_page from the previous reply.",
      "type": "integer",
      "minimum": 1,
      "maximum": 100000
    },
    "per_page": {
      "description": "Results per page, 1-100 (default 50).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢smarthr_get_department(id)

Get one department (部署) by id, with its parent and children.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "Department id (from smarthr_list_departments)."
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢smarthr_list_positions(sort, page, per_page)

List positions / job titles (役職) with their rank and code.

Input Schema

{
  "type": "object",
  "properties": {
    "sort": {
      "description": "Sort order: property names, several separated by commas, a leading \"-\" means descending, e.g. \"-updated_at\".",
      "type": "string",
      "pattern": "^-?[a-z_]+(,-?[a-z_]+)*$"
    },
    "page": {
      "description": "Page number, 1-based (default 1). Use next_page from the previous reply.",
      "type": "integer",
      "minimum": 1,
      "maximum": 100000
    },
    "per_page": {
      "description": "Results per page, 1-100 (default 50).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢smarthr_list_employment_types(page, per_page)

List employment types (雇用形態), e.g. full-timer, part-timer, contract worker, with their ids for filtering and writes.

Input Schema

{
  "type": "object",
  "properties": {
    "page": {
      "description": "Page number, 1-based (default 1). Use next_page from the previous reply.",
      "type": "integer",
      "minimum": 1,
      "maximum": 100000
    },
    "per_page": {
      "description": "Results per page, 1-100 (default 50).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢smarthr_list_grades(page, per_page)

List grades (等級) with their rank.

Input Schema

{
  "type": "object",
  "properties": {
    "page": {
      "description": "Page number, 1-based (default 1). Use next_page from the previous reply.",
      "type": "integer",
      "minimum": 1,
      "maximum": 100000
    },
    "per_page": {
      "description": "Results per page, 1-100 (default 50).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢smarthr_list_job_categories(page, per_page)

List job categories (職種).

Input Schema

{
  "type": "object",
  "properties": {
    "page": {
      "description": "Page number, 1-based (default 1). Use next_page from the previous reply.",
      "type": "integer",
      "minimum": 1,
      "maximum": 100000
    },
    "per_page": {
      "description": "Results per page, 1-100 (default 50).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢smarthr_list_companies(page, per_page)

List the companies (会社) of the tenant: name, code, corporate number, address, phone.

Input Schema

{
  "type": "object",
  "properties": {
    "page": {
      "description": "Page number, 1-based (default 1). Use next_page from the previous reply.",
      "type": "integer",
      "minimum": 1,
      "maximum": 100000
    },
    "per_page": {
      "description": "Results per page, 1-100 (default 50).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢smarthr_list_business_establishments(embed, page, per_page)

List business establishments (事業所): name, social insurance and labor insurance registration data, company.

Input Schema

{
  "type": "object",
  "properties": {
    "embed": {
      "description": "Embed the related object instead of only its id.",
      "type": "string",
      "enum": [
        "soc_ins_owner",
        "lab_ins_owner",
        "company"
      ]
    },
    "page": {
      "description": "Page number, 1-based (default 1). Use next_page from the previous reply.",
      "type": "integer",
      "minimum": 1,
      "maximum": 100000
    },
    "per_page": {
      "description": "Results per page, 1-100 (default 50).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢smarthr_list_employee_custom_fields(embed, page, per_page)

List the definitions of the tenant's custom employee fields (カスタム従業員項目): name, type and, for dropdowns, the choices. Use them to read the values in custom_fields.

Input Schema

{
  "type": "object",
  "properties": {
    "embed": {
      "description": "Embed the custom field group instead of only its id.",
      "type": "string",
      "enum": [
        "group"
      ]
    },
    "page": {
      "description": "Page number, 1-based (default 1). Use next_page from the previous reply.",
      "type": "integer",
      "minimum": 1,
      "maximum": 100000
    },
    "per_page": {
      "description": "Results per page, 1-100 (default 50).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢smarthr_list_dependent_relations(page, per_page)

List the relation types for dependents (続柄: spouse, child, parent...) with their ids, needed by smarthr_create_dependent.

Input Schema

{
  "type": "object",
  "properties": {
    "page": {
      "description": "Page number, 1-based (default 1). Use next_page from the previous reply.",
      "type": "integer",
      "minimum": 1,
      "maximum": 100000
    },
    "per_page": {
      "description": "Results per page, 1-100 (default 50).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢smarthr_list_users(sort, embed, page, per_page)

List SmartHR users (login accounts): email, administrator flag, role, linked employee, and the invitation status (created, opened, accepted, answered). Use it to find the administrator id for smarthr_invite_employee.

Input Schema

{
  "type": "object",
  "properties": {
    "sort": {
      "description": "Sort order: property names, several separated by commas, a leading \"-\" means descending, e.g. \"-updated_at\".",
      "type": "string",
      "pattern": "^-?[a-z_]+(,-?[a-z_]+)*$"
    },
    "embed": {
      "description": "Embed the related object instead of only its id.",
      "type": "string",
      "enum": [
        "crew",
        "biz_establishment",
        "biz_establishment_company",
        "department_company"
      ]
    },
    "page": {
      "description": "Page number, 1-based (default 1). Use next_page from the previous reply.",
      "type": "integer",
      "minimum": 1,
      "maximum": 100000
    },
    "per_page": {
      "description": "Results per page, 1-100 (default 50).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢smarthr_list_employee_input_forms(page, per_page)

List the employee information collection forms (従業員情報収集フォーム) that an invitation can use.

Input Schema

{
  "type": "object",
  "properties": {
    "page": {
      "description": "Page number, 1-based (default 1). Use next_page from the previous reply.",
      "type": "integer",
      "minimum": 1,
      "maximum": 100000
    },
    "per_page": {
      "description": "Results per page, 1-100 (default 50).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢smarthr_list_webhooks(page, per_page)

List the configured webhooks (target URL, which employee and dependent events notify). Read-only; secret tokens and the query string of the target URL are never shown.

Input Schema

{
  "type": "object",
  "properties": {
    "page": {
      "description": "Page number, 1-based (default 1). Use next_page from the previous reply.",
      "type": "integer",
      "minimum": 1,
      "maximum": 100000
    },
    "per_page": {
      "description": "Results per page, 1-100 (default 50).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴smarthr_create_employee(emp_code, emp_status, last_name, first_name, last_name_yomi, ...)

WRITE: Register a new employee (従業員) in SmartHR. Nothing is sent to the employee; to invite them to fill in their own data use smarthr_invite_employee afterwards. Only the fields you give are set. The tenant plan may cap the number of employees (error plan_limit_exceeded). Returns the created employee as a compact record.

Input Schema

{
  "type": "object",
  "properties": {
    "emp_code": {
      "description": "Employee number (社員番号).",
      "type": "string",
      "maxLength": 500
    },
    "emp_status": {
      "description": "Employment status: employed, absent (on leave) or retired.",
      "type": "string",
      "enum": [
        "employed",
        "absent",
        "retired"
      ]
    },
    "last_name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "Family name (required)."
    },
    "first_name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "Given name (required)."
    },
    "last_name_yomi": {
      "description": "Family name in katakana.",
      "type": "string",
      "maxLength": 100
    },
    "first_name_yomi": {
      "description": "Given name in katakana.",
      "type": "string",
      "maxLength": 100
    },
    "business_last_name": {
      "description": "Business name: family name.",
      "type": "string",
      "maxLength": 500
    },
    "business_first_name": {
      "description": "Business name: given name.",
      "type": "string",
      "maxLength": 500
    },
    "gender": {
      "description": "Legal gender (戸籍上の性別): male or female.",
      "type": "string",
      "enum": [
        "male",
        "female"
      ]
    },
    "birth_at": {
      "description": "Date of birth, yyyy-mm-dd.",
      "type": "string"
    },
    "email": {
      "description": "Work or contact email address.",
      "type": "string",
      "maxLength": 254
    },
    "tel_number": {
      "description": "Phone number.",
      "type": "string",
      "maxLength": 50
    },
    "address": {
      "type": "object",
      "properties": {
        "zip_code": {
          "description": "Postal code, e.g. 100-0001.",
          "type": "string",
          "maxLength": 20
        },
        "pref": {
          "description": "Prefecture, e.g. 東京都.",
          "type": "string",
          "maxLength": 50
        },
        "city": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100,
          "description": "City / ward."
        },
        "street": {
          "description": "Street and block number.",
          "type": "string",
          "maxLength": 100
        },
        "building": {
          "description": "Building and room.",
          "type": "string",
          "maxLength": 100
        },
        "country_number": {
          "description": "Country code (default Japan).",
          "type": "string",
          "maxLength": 5
        }
      },
      "required": [
        "city"
      ],
      "description": "Address; the city is required by SmartHR."
    },
    "entered_at": {
      "description": "Hire date, yyyy-mm-dd.",
      "type": "string"
    },
    "resigned_at": {
      "description": "Resignation date, yyyy-mm-dd.",
      "type": "string"
    },
    "resigned_reason": {
      "description": "Reason for leaving.",
      "type": "string",
      "maxLength": 500
    },
    "employment_type_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "Employment type id (from smarthr_list_employment_types)."
    },
    "department_ids": {
      "description": "Department ids (from smarthr_list_departments); replaces the current departments.",
      "maxItems": 20,
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 100
      }
    },
    "positions": {
      "description": "Position (job title) NAMES, e.g. [\"部長\"]; a name that does not exist yet may be created by SmartHR.",
      "maxItems": 20,
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 100
      }
    },
    "grade": {
      "description": "Grade name (等級).",
      "type": "string",
      "maxLength": 500
    },
    "job_category": {
      "description": "Job category name (職種).",
      "type": "string",
      "maxLength": 500
    },
    "occupation": {
      "description": "Job description (業務内容).",
      "type": "string",
      "maxLength": 500
    },
    "biz_establishment_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "Business establishment id (from smarthr_list_business_establishments)."
    }
  },
  "required": [
    "last_name",
    "first_name"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴smarthr_update_employee(id, emp_code, emp_status, last_name, first_name, ...)

WRITE: Change fields of one existing employee (partial update: only the fields you give change; others stay). Typical uses: set the status to absent or retired with the resignation date, correct a name, email or phone, move the employee to other departments (department_ids replaces the current list), change positions. SmartHR does not allow clearing a name that is already filled in. Returns the updated employee as a compact record.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "Employee id (from smarthr_list_employees)."
    },
    "emp_code": {
      "description": "Employee number (社員番号).",
      "type": "string",
      "maxLength": 500
    },
    "emp_status": {
      "description": "Employment status: employed, absent (on leave) or retired.",
      "type": "string",
      "enum": [
        "employed",
        "absent",
        "retired"
      ]
    },
    "last_name": {
      "description": "Family name (戸籍上の姓).",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "first_name": {
      "description": "Given name (戸籍上の名).",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "last_name_yomi": {
      "description": "Family name in katakana.",
      "type": "string",
      "maxLength": 100
    },
    "first_name_yomi": {
      "description": "Given name in katakana.",
      "type": "string",
      "maxLength": 100
    },
    "business_last_name": {
      "description": "Business name: family name.",
      "type": "string",
      "maxLength": 500
    },
    "business_first_name": {
      "description": "Business name: given name.",
      "type": "string",
      "maxLength": 500
    },
    "gender": {
      "description": "Legal gender (戸籍上の性別): male or female.",
      "type": "string",
      "enum": [
        "male",
        "female"
      ]
    },
    "birth_at": {
      "description": "Date of birth, yyyy-mm-dd.",
      "type": "string"
    },
    "email": {
      "description": "Work or contact email address.",
      "type": "string",
      "maxLength": 254
    },
    "tel_number": {
      "description": "Phone number.",
      "type": "string",
      "maxLength": 50
    },
    "address": {
      "type": "object",
      "properties": {
        "zip_code": {
          "description": "Postal code, e.g. 100-0001.",
          "type": "string",
          "maxLength": 20
        },
        "pref": {
          "description": "Prefecture, e.g. 東京都.",
          "type": "string",
          "maxLength": 50
        },
        "city": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100,
          "description": "City / ward."
        },
        "street": {
          "description": "Street and block number.",
          "type": "string",
          "maxLength": 100
        },
        "building": {
          "description": "Building and room.",
          "type": "string",
          "maxLength": 100
        },
        "country_number": {
          "description": "Country code (default Japan).",
          "type": "string",
          "maxLength": 5
        }
      },
      "required": [
        "city"
      ],
      "description": "Address; the city is required by SmartHR."
    },
    "entered_at": {
      "description": "Hire date, yyyy-mm-dd.",
      "type": "string"
    },
    "resigned_at": {
      "description": "Resignation date, yyyy-mm-dd.",
      "type": "string"
    },
    "resigned_reason": {
      "description": "Reason for leaving.",
      "type": "string",
      "maxLength": 500
    },
    "employment_type_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "Employment type id (from smarthr_list_employment_types)."
    },
    "department_ids": {
      "description": "Department ids (from smarthr_list_departments); replaces the current departments.",
      "maxItems": 20,
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 100
      }
    },
    "positions": {
      "description": "Position (job title) NAMES, e.g. [\"部長\"]; a name that does not exist yet may be created by SmartHR.",
      "maxItems": 20,
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 100
      }
    },
    "grade": {
      "description": "Grade name (等級).",
      "type": "string",
      "maxLength": 500
    },
    "job_category": {
      "description": "Job category name (職種).",
      "type": "string",
      "maxLength": 500
    },
    "occupation": {
      "description": "Job description (業務内容).",
      "type": "string",
      "maxLength": 500
    },
    "biz_establishment_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "Business establishment id (from smarthr_list_business_establishments)."
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴smarthr_create_department(name, parent_id, code, position, company_id)

WRITE: Create a department (部署). Give the parent department id to nest it. Returns the created department.

Input Schema

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "Department name (no slash)."
    },
    "parent_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "Parent department id (from smarthr_list_departments); omit for a top-level department."
    },
    "code": {
      "description": "Department code.",
      "type": "string",
      "maxLength": 500
    },
    "position": {
      "description": "Display order among siblings.",
      "type": "integer",
      "minimum": 0,
      "maximum": 100000
    },
    "company_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "Company id (from smarthr_list_companies); needed when the tenant has several companies."
    }
  },
  "required": [
    "name"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴smarthr_update_department(id, name, parent_id, code, position)

WRITE: Rename or move one department (partial update: only the fields you give change). Returns the updated department.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "Department id (from smarthr_list_departments)."
    },
    "name": {
      "description": "New name (no slash). Omit to keep the current name.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "parent_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "New parent department id."
    },
    "code": {
      "description": "New code.",
      "type": "string",
      "maxLength": 500
    },
    "position": {
      "description": "New display order among siblings.",
      "type": "integer",
      "minimum": 0,
      "maximum": 100000
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴smarthr_create_dependent(employee_id, last_name, first_name, last_name_yomi, first_name_yomi, ...)

WRITE: Register a dependent (家族情報) for an employee. Needs the relation id from smarthr_list_dependent_relations. Returns the created dependent without pension number, income or documents.

Input Schema

{
  "type": "object",
  "properties": {
    "employee_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "Employee id (from smarthr_list_employees)."
    },
    "last_name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "Family name."
    },
    "first_name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "Given name."
    },
    "last_name_yomi": {
      "description": "Family name in katakana.",
      "type": "string",
      "maxLength": 100
    },
    "first_name_yomi": {
      "description": "Given name in katakana.",
      "type": "string",
      "maxLength": 100
    },
    "birth_at": {
      "type": "string",
      "description": "Date of birth, yyyy-mm-dd."
    },
    "gender": {
      "type": "string",
      "enum": [
        "male",
        "female"
      ],
      "description": "Gender: male or female."
    },
    "relation_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "Relation id (from smarthr_list_dependent_relations)."
    },
    "live_together_type": {
      "type": "string",
      "enum": [
        "living_together",
        "living_separately"
      ],
      "description": "Living with the employee or separately."
    },
    "is_spouse": {
      "description": "True for a spouse.",
      "type": "boolean"
    },
    "tax_law_support_type": {
      "type": "string",
      "enum": [
        "unsupported",
        "unsupported_same_living_spouse",
        "supported",
        "special_spousal_exemption",
        "unknown"
      ],
      "description": "Tax-law dependent status (required: SmartHR would otherwise default it to supported). Use unknown when not decided."
    },
    "social_insurance_support_type": {
      "type": "string",
      "enum": [
        "unsupported",
        "supported",
        "unknown"
      ],
      "description": "Social-insurance dependent status (required: SmartHR would otherwise default it to supported). Use unknown when not decided."
    },
    "job": {
      "description": "Occupation.",
      "type": "string",
      "maxLength": 500
    },
    "tel_number": {
      "description": "Phone number.",
      "type": "string",
      "maxLength": 50
    },
    "address": {
      "type": "object",
      "properties": {
        "zip_code": {
          "description": "Postal code, e.g. 100-0001.",
          "type": "string",
          "maxLength": 20
        },
        "pref": {
          "description": "Prefecture, e.g. 東京都.",
          "type": "string",
          "maxLength": 50
        },
        "city": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100,
          "description": "City / ward."
        },
        "street": {
          "description": "Street and block number.",
          "type": "string",
          "maxLength": 100
        },
        "building": {
          "description": "Building and room.",
          "type": "string",
          "maxLength": 100
        },
        "country_number": {
          "description": "Country code (default Japan).",
          "type": "string",
          "maxLength": 5
        }
      },
      "required": [
        "city"
      ],
      "description": "Address; the city is required by SmartHR."
    }
  },
  "required": [
    "employee_id",
    "last_name",
    "first_name",
    "birth_at",
    "gender",
    "relation_id",
    "live_together_type",
    "tax_law_support_type",
    "social_insurance_support_type"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴smarthr_invite_employee(id, inviter_user_id, crew_input_form_id)

WRITE, SENDS AN EMAIL: Invite an employee to SmartHR. SmartHR emails the address stored on the employee (the employee must have one) an invitation to create their login and, with an input form, to fill in their own data. Asking again re-sends it (and updates the invited address if it changed). An employee who already accepted cannot be invited again. Confirm with the user before calling.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "Employee id (from smarthr_list_employees); the employee needs an email address."
    },
    "inviter_user_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "User id of the inviting administrator (from smarthr_list_users, an administrator)."
    },
    "crew_input_form_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "Employee information collection form id (from smarthr_list_employee_input_forms); its mail format is used."
    }
  },
  "required": [
    "id",
    "inviter_user_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded23 tools