Skip to main content
Glama

HR Assist

HR Assist is an AI-powered HR automation agent that uses Claude Desktop and MCP tools to handle tasks like onboarding, leave management, meeting scheduling, and ticket creation.

Architecture

HR Assist Architecture

HR Assist is an agentic AI-powered HR automation system built using Claude Desktop, MCP (Model Context Protocol), and Python.

Claude Desktop acts as the AI agent and MCP client, understanding user requests and deciding which HR actions need to be performed. The MCP server exposes HR operations as tools and connects Claude with the HRMS components.

The system includes the following managers:

  • Employee Manager

  • Leave Manager

  • Meeting Manager

  • Ticket Manager

Related MCP server: HR-Assist

How It Works

The user provides an HR request through Claude Desktop. Claude understands the request, selects the required MCP tools, and executes the appropriate actions through the MCP server.

For example, when onboarding a new employee, the system can add the employee, send a welcome email, notify the manager, raise a laptop ticket, schedule an introduction meeting, and handle leave-related actions.

Tool Selection

Tool Selection

Employee Onboarding Inputs

Prompt Inputs

Meeting Scheduling

Meeting Time Selection

Onboarding Result

Onboarding Summary

MCP Tools

The project provides tools for:

  • šŸ‘¤ Adding and retrieving employees

  • šŸ—“ļø Managing leave

  • šŸ“§ Sending emails

  • šŸ“… Scheduling meetings

  • šŸŽ« Creating HR/IT tickets

  • šŸš€ Supporting employee onboarding workflows

Project Structure

hrms/
ā”œā”€ā”€ employee_manager.py
ā”œā”€ā”€ leave_manager.py
ā”œā”€ā”€ meeting_manager.py
ā”œā”€ā”€ ticket_manager.py
└── schemas.py

images/
ā”œā”€ā”€ architecture.png
ā”œā”€ā”€ tool_selection.png
ā”œā”€ā”€ prompt_inputs.png
ā”œā”€ā”€ meeting_time_selection.png
└── onboarding_summary.png

server.py
emails.py
utils.py
pyproject.toml
README.md

Tech Stack

  • šŸ Python

  • šŸ¤– Claude Desktop

  • šŸ”Œ Model Context Protocol (MCP)

  • šŸ“¦ uv

  • āœ‰ļø Gmail SMTP

  • šŸ¢ HRMS Components

Setup

Clone the repository and install the dependencies:

uv sync

Run the MCP server:

uv run python server.py

Configure the MCP server with Claude Desktop and start interacting with HR Assist.

Example

User:
Onboard a new employee named Likhitha and assign Tony Sharma as the manager.

HR Assist:
āœ“ Employee added
āœ“ Welcome email sent
āœ“ Manager notified
āœ“ Laptop ticket created
āœ“ Introduction meeting scheduled
āœ“ Leave status checked

Conclusion

HR Assist demonstrates how agentic AI + MCP tools can automate real-world HR workflows by allowing an AI agent to understand requests, select tools, and execute multiple actions autonomously.

Available Tools

7 tools
add_employeeD
ParametersJSON Schema
NameRequiredDescriptionDefault
emailYes
emp_nameYes
manager_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

D1/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Tool has no description.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness1/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Tool has no description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Tool has no description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Tool has no description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose1/5

Does the description clearly state what the tool does and how it differs from similar tools?

Tool has no description.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Tool has no description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

apply_leaveD
ParametersJSON Schema
NameRequiredDescriptionDefault
emp_idYes
leave_datesYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

D1/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Tool has no description.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness1/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Tool has no description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Tool has no description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Tool has no description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose1/5

Does the description clearly state what the tool does and how it differs from similar tools?

Tool has no description.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Tool has no description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_ticketD
ParametersJSON Schema
NameRequiredDescriptionDefault
empYes
itemYes
reasonYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

D1/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Tool has no description.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness1/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Tool has no description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Tool has no description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Tool has no description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose1/5

Does the description clearly state what the tool does and how it differs from similar tools?

Tool has no description.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Tool has no description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_employee_detailsD
ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

D1/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Tool has no description.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness1/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Tool has no description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Tool has no description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Tool has no description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose1/5

Does the description clearly state what the tool does and how it differs from similar tools?

Tool has no description.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Tool has no description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_leave_historyD
ParametersJSON Schema
NameRequiredDescriptionDefault
emp_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

D1/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Tool has no description.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness1/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Tool has no description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Tool has no description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Tool has no description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose1/5

Does the description clearly state what the tool does and how it differs from similar tools?

Tool has no description.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Tool has no description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

schedule_meetingD
ParametersJSON Schema
NameRequiredDescriptionDefault
topicYes
emp_idYes
emp_nameYes
meeting_dtYes
manager_nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

D1/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Tool has no description.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness1/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Tool has no description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Tool has no description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Tool has no description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose1/5

Does the description clearly state what the tool does and how it differs from similar tools?

Tool has no description.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Tool has no description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

send_emailD
ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes
subjectYes
to_emailsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

D1/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Tool has no description.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness1/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Tool has no description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Tool has no description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Tool has no description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose1/5

Does the description clearly state what the tool does and how it differs from similar tools?

Tool has no description.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Tool has no description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

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

  1. 7 tool updatesv0.1.0
    • First observedadd_employee
    • First observedapply_leave
    • First observedcreate_ticket
    • First observedget_employee_details
    • First observedget_leave_history
    • First observedschedule_meeting
    • First observedsend_email

TDQS

C2/5.0

Scored across 7 tools

Disambiguation4/5

Tool names map to fairly distinct actions (employee CRUD-ish, email, ticketing, meetings, leave), so an agent can mostly tell them apart. However, with no descriptions provided, boundaries like add_employee vs get_employee_details and the generic send_email/create_ticket/schedule_meeting are only inferable from names, leaving mild ambiguity.

Naming Consistency5/5

All seven tools follow a clean snake_case verb_noun pattern (add_employee, get_employee_details, apply_leave, get_leave_history, etc.). No mixing of conventions or vague standalone verbs.

Tool Count5/5

Seven tools is well-scoped for an HR assistant spanning employee records, leave, and administrative actions. Each tool appears to earn its place without redundancy.

Completeness3/5

The surface covers create/read for employees and full leave apply/history, but lacks update_employee, delete/offboard, or a list_employees operation, creating dead ends in the employee lifecycle. Generic email/ticket/meeting tools are present but no supporting read/list operations for them.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers