Skip to main content
Glama

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\\dhaval\\.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_meetingC

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: topic (required), employee_id (required), meeting_datetime (required). 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_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_historyB

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

Inputs: emp_id (required). Returns: result

get_meetingsB

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

Inputs: employee_id (required). Returns: result

list_ticketsA

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

Inputs: status (required), employee_id (required). 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_statusB

Update the status of a ticket. :param ticket_id: Ticket ID :param status: New status of the ticket :return: Confirmation message

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

    C2.7/5.0

    Scored across 12 tools

    Disambiguation4/5

    Tools are mostly distinct, covering employee management, leave, meetings, tickets, and email. Some potential confusion arises from similar parameter naming (emp_id vs employee_id) and the ambiguous send_email tool lacking description, but overall purposes are clear.

    Naming Consistency5/5

    All tool names follow a consistent verb_noun pattern (e.g., add_employee, get_employee_details, update_ticket_status). No mixing of conventions like camelCase or inconsistent verb forms.

    Tool Count5/5

    With 12 tools, the server covers multiple HR functions (employee, leave, meetings, tickets, email) without being overwhelming. The count is well-scoped for an HR assistant.

    Completeness2/5

    Several missing operations: no employee update/delete, no leave cancel/modify, no meeting update, no ticket delete. The send_email tool has no description or parameters, making it non-functional. These gaps would likely cause agent failures in common workflows.

    Maintenance

    ActivityInactive
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers