Skip to main content
Glama
HR-ASSIST

HR-ASSIST

by dhanush-ts

HR-ASSIST Agentic AI System


HR ASSIST is an Agentic AI system designed to help HR teams automate routine workflows. This example demonstrates automation of the employee onboarding process, streamlining tasks that typically require manual intervention.

In terms of technical architecture, for MCP client we use Claude Desktop and the code base here represents the MCP server with necessary tools that will be used by MCP client

🛠️ Setup Instructions

To set up and run HR ASSIST, follow these steps:

  • Configure claude_desktop_config.json Add the following configuration to your claude_desktop_config.json file:

    {
    "mcpServers": {
        "hr-assist": {
        "command": "C:\\Users\\dhanush\\.local\\bin\\uv",
        "args": [
            "--directory",
            "C::\\code\\atliq-hr-assist",
            "run",
            "server.py"
        ],
        "env": {
            "CB_EMAIL": "YOUR_EMAIL",
            "CB_EMAIL_PWD": "YOUR_APP_PASSWORD"
        }
        }
    }
    }
  • Replace YOUR_EMAIL with your actual email.

  • Replace YOUR_APP_PASSWORD with your email provider’s app-specific password (e.g., for Gmail).

  • Run uv init and uv add mcp[cli] as per the video tutorial in the course.

Usage

  • Click on the + icon and select the Add from hr-assist option, and send the request.

  • Fill the details for the new employee:

Alternatively, you can draft a custom prompt and let the agent take over.

Available Tools

12 tools
add_employeeC

Add a new employee to the HRMS system. :param emp_name: Employee name :param manager_id: Manager ID (optional) :return: Confirmation message

Inputs: email (required), emp_name (required), manager_id (required). Returns: result

apply_leaveA

Apply for leave for an employee. :param emp_id: Employee ID :param leave_dates: List of leave dates :return: Leave application status message

Inputs: emp_id (required), leave_dates (required). Returns: result

cancel_meetingA

Cancel a scheduled meeting for an employee. :param employee_id: Employee ID :param meeting_datetime: Date and time of the meeting in python datetime format :param topic: Topic of the meeting (optional) :return: Confirmation message

Inputs: employee_id (required), meeting_datetime (required), topic. Returns: result

create_ticketA

Create a ticket for buying required items for an employee. :param emp_id: Employee ID :param item: Item requested (Laptop, ID Card, etc.) :param reason: Reason for the request :return: Confirmation message

Inputs: item (required), emp_id (required), reason (required). Returns: result

get_all_meetings_for_employeeB

Get the list of meetings scheduled for an employee. :param employee_id: Employee ID :return: List of meetings

Inputs: employee_id (required). Returns: result

get_employee_detailsB

Get employee details by name. :param name: Name of the employee :return: Employee ID and manager ID

Inputs: name (required). Returns: result

get_employee_leave_balanceB

Get the leave balance of an employee. :param emp_id: Employee ID :return: Leave balance message

Inputs: emp_id (required). Returns: result

get_leave_historyA

Get the leave history of an employee.

Args: emp_id (str): the employee ID for whom the leave history is being requested

Returns: List[Dict[str, str]]: List of leave history entries

Inputs: emp_id (required). Returns: result

list_ticketsB

List tickets for an employee with optional status filter. :param employee_id: Employee ID (optional) :param status: Ticket status (optional) :return: List of tickets

Inputs: status, employee_id. Returns: result

schedule_meetingA

Schedule a meeting for an employee. :param employee_id: Employee ID :param meeting_datetime: Date and time of the meeting in python datetime format :param topic: Topic of the meeting :return: Confirmation message

Inputs: topic (required), employee_id (required), meeting_datetime (required). Returns: result

send_emailD

Inputs: body (required), subject (required), to_emails (required), html. Returns: result

update_ticket_statusA

Update the status of a ticket. :param ticket_id: Ticket ID :param status: New status (Open, In Progress, Closed)

Inputs: status (required), ticket_id (required). Returns: result

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.1/5.0

    Scored across 12 tools

    Disambiguation5/5

    Each tool targets a distinct resource/action: employee management, email, tickets, meetings, and leave. No two tools overlap in purpose, making selection unambiguous.

    Naming Consistency5/5

    All tools follow a consistent verb_noun pattern in snake_case (add_employee, get_employee_details, create_ticket, schedule_meeting, etc.). No mixed conventions or chaotic naming.

    Tool Count5/5

    With 12 tools covering multiple HR sub-domains (employee, ticket, meeting, leave, email), the count is well-scoped and appropriate for the server's purpose, neither too thin nor overwhelming.

    Completeness4/5

    Core workflows are covered: employee creation/retrieval, ticket lifecycle (create/update/list), meeting scheduling/cancellation/list, leave balance/apply/history. Minor gaps exist (e.g., no employee update/delete, no single ticket detail, no leave cancellation) but they are workable.

    Related MCP Connectors

    Related MCP Servers