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

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYes
emp_nameYes
manager_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.4/5.0
Behavior2/5

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

No annotations exist. The description only mentions adding an employee and returning a confirmation, but contradicts the schema (manager_id optional vs required). No disclosure of side effects, permissions, or response details.

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

Conciseness3/5

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

The description is short and front-loaded with purpose, but includes misleading 'optional' for manager_id. The docstring format is acceptable but not fully correct.

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

Completeness2/5

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

Despite having an output schema (details unknown), the description only promises a confirmation message. With 3 required parameters and no schema descriptions, the description should provide more complete parameter guidance.

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

Parameters2/5

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

Schema coverage is 0%. The description explains emp_name and manager_id, but wrongly marks manager_id as optional (schema requires it) and omits the email parameter entirely. This misleads the agent.

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

Purpose3/5

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

The description clearly states it adds a new employee to HRMS, but fails to distinguish from related sibling tools like get_employee_details. The missing email parameter and incorrect optionality of manager_id reduce clarity.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives such as create_ticket or apply_leave. No prerequisites or context are given.

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

apply_leaveB

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

ParametersJSON Schema
NameRequiredDescriptionDefault
emp_idYes
leave_datesYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, and the description lacks details on side effects, such as whether the leave is immediately applied, if it checks balance, or if it requires approval. Only the return type is mentioned.

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

Conciseness4/5

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

The description is concise with one sentence and two parameter comments. However, the parameter comments are formatted like a docstring, which is slightly redundant with the schema.

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

Completeness2/5

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

The description lacks important context such as date format, validation rules, what the status message contains, and any error handling. With no annotations and partial param descriptions, it is insufficient for a produce-ready tool.

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

Parameters4/5

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

The description adds meaning beyond the schema by explaining that emp_id is 'Employee ID' and leave_dates is 'List of leave dates'. Since schema coverage is 0%, this is essential and well-provided.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'Apply for leave for an employee.' It uses a specific verb and resource, and is distinct from sibling tools like get_leave_history and get_employee_leave_balance.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives, nor any prerequisites or conditions for use. The description does not differentiate it from related tools like get_employee_leave_balance.

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

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

ParametersJSON Schema
NameRequiredDescriptionDefault
topicYes
employee_idYes
meeting_datetimeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

No annotations provided. The description only says 'Cancel a scheduled meeting' without disclosing side effects (e.g., irreversibility, notifications). The return type is mentioned as 'Confirmation message' but lacks detail.

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

Conciseness4/5

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

The description is concise with a clear action line and parameter docstring. However, the docstring could be more structured (e.g., bullet points). Front-loaded with purpose.

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

Completeness2/5

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

For a mutation tool with no annotations and 3 required parameters, the description lacks context on preconditions, side effects, and error cases. Output schema exists but is not shown; description does not leverage it.

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

Parameters2/5

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

The docstring adds some meaning to parameters (e.g., 'python datetime format' for meeting_datetime), but there is a contradiction: description calls topic 'optional' while the input schema marks it as required. Schema coverage is 0%.

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

Purpose5/5

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

The description clearly states the action ('cancel') and resource ('a scheduled meeting for an employee'), which is distinct from sibling tools like 'schedule_meeting' and 'get_meetings'.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives. It does not specify prerequisites (e.g., meeting must exist) or when not to use it.

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

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

ParametersJSON Schema
NameRequiredDescriptionDefault
itemYes
emp_idYes
reasonYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the full burden. It does not disclose side effects, permissions, idempotency, or error behavior. Only states creation and a confirmation return.

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

Conciseness5/5

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

The description is concise, with a clear purpose stated first, followed by parameter documentation. No unnecessary words or repetition.

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

Completeness3/5

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

For a simple create tool, the description covers basic purpose and parameters, but lacks usage guidance and behavioral context. Return value is hinted but not fully detailed. Adequate but with gaps.

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

Parameters4/5

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

Despite 0% schema description coverage, the description adds meaningful explanations for all three parameters (emp_id, item, reason) and mentions the return value, compensating for the schema's lack of descriptions.

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

Purpose5/5

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

The description clearly states the verb 'Create' and the resource 'ticket' with a specific scope 'for buying required items for an employee', distinguishing it from siblings like list_tickets and update_ticket_status.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives. The description only states what it does, without mentioning prerequisites, exclusions, or comparing to other tools like send_email or schedule_meeting.

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

get_employee_detailsA

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

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

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

No annotations provided, so the description carries full burden. It mentions return values (ID and manager ID) from docstring, but lacks detail on side effects, permissions, or edge cases like missing names.

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

Conciseness4/5

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

Description is brief with a single sentence and structured docstring. No fluff, but could be front-loaded with return info.

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

Completeness3/5

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

Has output schema, and description mentions return values. However, missing details on behavior for not found or duplicate names. Adequate but not thorough.

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

Parameters4/5

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

The docstring adds 'Name of the employee' to the parameter, and describes return values, supplementing the schema that only defines type. Schema description coverage is 0%, so this added context is valuable.

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

Purpose5/5

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

The description clearly states the tool gets employee details by name, with a specific verb and resource. It distinguishes from siblings like 'add_employee' or 'apply_leave'.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives (e.g., get_employee_leave_balance). Does not specify prerequisites or exclusion criteria.

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

get_employee_leave_balanceC

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

ParametersJSON Schema
NameRequiredDescriptionDefault
emp_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

No annotations provided, and description only says 'Get' with no detail on side effects, return value structure, or access requirements.

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

Conciseness4/5

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

Very short and to the point, but could be more structured; the docstring format (param/return) adds minimal value.

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

Completeness2/5

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

Given the simplicity of the tool, the description is too sparse; it should clarify what 'leave balance' includes and note any assumptions.

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

Parameters2/5

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

Schema coverage is 0%; the description only repeats the parameter name and 'Employee ID' with no additional format or constraints.

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

Purpose5/5

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

Clearly states it retrieves the leave balance of an employee using a specific verb and resource, distinguishing it from sibling tools like get_leave_history.

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

Usage Guidelines2/5

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

No guidance on when to use this tool vs alternatives (e.g., get_leave_history). Does not specify any prerequisites or context.

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

get_leave_historyC

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

ParametersJSON Schema
NameRequiredDescriptionDefault
emp_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

The description lacks behavioral details beyond the verb 'get'. No annotations exist, so the description carries the full burden, but it does not disclose side effects, authorization needs, or the scope of history retrieved. The output schema exists but its content is not described.

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

Conciseness3/5

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

The description is very short (two sentences), but it omits critical usage details. Conciseness is achieved at the cost of completeness, making it less effective for an AI agent.

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

Completeness3/5

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

For a simple tool with one parameter and an output schema, the description is adequate but not thorough. It lacks information about the scope of history (e.g., date range) and fails to integrate with sibling tool distinctions.

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

Parameters3/5

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

The parameter 'emp_id' has a textual description in the docstring ('Employee ID'), which adds meaning beyond the schema's title 'Emp Id'. However, the description is minimal and does not clarify expected format or constraints.

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

Purpose4/5

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

The description clearly states the tool retrieves 'leave history of an employee' using a specific verb and resource. However, it does not differentiate from the sibling tool 'get_employee_leave_balance', which could cause confusion.

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

Usage Guidelines2/5

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

No guidance provided on when to use this tool versus alternatives like 'get_employee_leave_balance'. There is no mention of prerequisites or context such as required permissions or data availability.

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

get_meetingsB

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

ParametersJSON Schema
NameRequiredDescriptionDefault
employee_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It only states it returns a list of meetings, omitting details like read-only nature, authentication requirements, error handling, or response structure.

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

Conciseness5/5

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

The description is extremely concise (one sentence plus param/return docs), front-loaded with the core purpose, and contains no filler.

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

Completeness3/5

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

Given the low complexity (1 required param) and presence of an output schema, the description is minimally adequate. However, it could better describe the return structure or behavior for missing IDs.

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

Parameters2/5

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

Schema coverage is 0%, and the description adds a brief param doc ('Employee ID') that barely supplements the schema. It does not explain format, constraints, or optionality beyond the required string.

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

Purpose5/5

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

The description clearly states the verb 'Get', the resource 'list of meetings', and the scope 'scheduled for an employee', effectively distinguishing it from siblings like schedule_meeting or cancel_meeting.

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

Usage Guidelines3/5

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

The description implies usage for fetching an employee's meetings but provides no explicit guidance on when to use this tool versus alternatives, nor any when-not conditions.

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

list_ticketsB

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

ParametersJSON Schema
NameRequiredDescriptionDefault
statusYes
employee_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It discloses that the tool returns a list of tickets, but does not mention behavior for missing employee, pagination, ordering, or error handling. Additionally, the description contradicts the schema by stating status is optional when schema requires it, reducing trustworthiness.

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

Conciseness4/5

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

The description is short and to the point, with no filler. However, it uses a Python docstring format with :param and :return lines, which is slightly verbose for an MCP description but still clear and front-loaded.

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

Completeness3/5

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

Given the low complexity (2 parameters, no nested objects), the description is minimally adequate. It mentions the return type (list of tickets) but does not cover edge cases like no matching tickets. An output schema exists, so return format is documented elsewhere, but behavioral gaps remain.

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

Parameters3/5

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

Schema coverage is 0%, so the description must compensate. It adds meaning: employee_id is the employee ID, status is ticket status and optional. However, the contradiction about status being optional undermines clarity. Overall, it provides some value beyond the empty schema descriptions.

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

Purpose4/5

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

The description clearly states the verb 'List' and the resource 'tickets for an employee', with an optional status filter. It distinguishes from sibling tools like create_ticket and update_ticket_status, but does not explicitly differentiate from other list tools.

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

Usage Guidelines3/5

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

The description implies using the tool to list tickets for a specific employee, with an optional filter by status. However, it lacks explicit guidance on when to use this tool versus alternatives, or any prerequisites or exclusions.

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

schedule_meetingC

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

ParametersJSON Schema
NameRequiredDescriptionDefault
topicYes
employee_idYes
meeting_datetimeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavioral traits. It only says 'schedule' and returns a confirmation, but does not mention side effects (e.g., notifications, conflict checking, permission requirements) or idempotency. The return value is vague.

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

Conciseness3/5

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

The description is short with a clear first sentence, but the param docs are formatted as code and could be more integrated. It is not verbose, but it sacrifices completeness for brevity.

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

Completeness2/5

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

With 3 required parameters, no annotations, and no output schema, the description should provide more context about tool behavior (e.g., what happens on success, error cases, conflict handling). The sibling tools hint at possible workflows (e.g., cancel_meeting), but the description does not address them.

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

Parameters2/5

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

Schema description coverage is 0%, placing full burden on the description. The param docs add minimal value: 'Employee ID' and 'Topic' are self-explanatory from titles; 'python datetime format' is ambiguous (no exact format specified). Missing details like allowed values or constraints.

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

Purpose4/5

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

The description clearly states the action ('schedule a meeting') and the resource ('for an employee'). It distinguishes from siblings like cancel_meeting and get_meetings. However, it could be more specific about the scope (e.g., whether conflicts are checked).

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like cancel_meeting or get_meetings. No prerequisites (e.g., employee existence) or success conditions are mentioned. The description lacks usage context entirely.

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

update_ticket_statusB

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

ParametersJSON Schema
NameRequiredDescriptionDefault
statusYes
ticket_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description carries full burden for behavioral disclosure. It states the tool 'updates' status but does not disclose any side effects (e.g., triggers notifications, changes workflow state), permissions needed, or whether the change is irreversible. The return value is mentioned as 'confirmation message' but not elaborated.

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

Conciseness4/5

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

The description is very short (three lines) and includes param docstrings and a return line. It is front-loaded and avoids redundancy. However, it could be slightly more concise by removing the Python-style docstring markers and integrating into prose.

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

Completeness3/5

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

Given the low complexity (2 required parameters, no nested objects, output schema exists), the description is minimally adequate. It covers the basic purpose and parameters. However, missing details like valid status transitions, idempotency, and effect on related entities (e.g., assigned agent). An agent might need to guess valid status values.

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

Parameters3/5

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

Input schema has no descriptions (0% coverage). The description adds minimal docstring for each parameter: 'Ticket ID' and 'New status of the ticket'. While this provides basic meaning beyond the parameter names, it lacks details like allowed status values, format, or constraints. The presence of enums would improve it, but none are defined.

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

Purpose5/5

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

The description clearly states action ('Update') and resource ('status of a ticket'). This distinguishes it from sibling tools like create_ticket or list_tickets. The verb+resource pair is specific and unambiguous.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like create_ticket or list_tickets. There is no mention of prerequisites (e.g., ticket must exist) or when not to use (e.g., for transitions that require approval). The agent is left to infer context from the name alone.

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. Dates show when Glama detected each change.

  1. 12 tool updatesv0.1.0
    • First observedadd_employee
    • First observedapply_leave
    • First observedcancel_meeting
    • First observedcreate_ticket
    • First observedget_employee_details
    • First observedget_employee_leave_balance
    • First observedget_leave_history
    • First observedget_meetings
    • First observedlist_tickets
    • First observedschedule_meeting
    • First observedsend_email
    • First observedupdate_ticket_status

TDQS

C2.7/5.0
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

ActivityStale
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/dishant1901-prog/GenAI-HRMS-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server