Skip to main content
Glama
enggvaij

HR Leave Management MCP Server

by enggvaij

He leave management MCP server integrated to claude desktop

Steps to be completed

  1. Install the claude desktop and login it - click on whatever OS you using- https://claude.com/download

  2. install pip install mcp help - https://pypi.org/project/mcp/

           pip install mcp
          
  3. We wil install uv for windows : by running the command

           powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
          
  4. Initialize the uv project in your location - d:\code\HrLeaveMan-mcp

            $c:  cd d:
     $d:  cd code
            $d:code   uv init HrLeaveMan-mcp
            $d:code   cd HrLeaveMan-mcp
          
    1. If facing any errror follow the command

    pip install --upgrade typer
    

    6.Write main.py python code for mcp server

    7.Run the command in virtual envirment

    uv run mcp install main.py
    
    1. check the claud developer tab and also config file by edit config option in developer tab under file ->settings->developer

    2. check the tool added to clude tool under the connector by pressing + key button on claude desktop UX.

    3. Carry some prompt to test the tool

    • Give EMP001 leave deatils

    • Apply leave for EMP002 from date and to date

    • List out the leaves

Available Tools

6 tools
apply_leaveC

Submit a leave request.

ParametersJSON Schema
NameRequiredDescriptionDefault
employee_idYes
start_dateYes
end_dateYes
reasonYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior2/5

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

No annotations provided. The description only implies mutation ('submit') but does not disclose what happens post-submission (e.g., approval workflow), required permissions, or constraints like overlapping leaves.

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?

Single sentence with no extraneous words. Highly concise, though structure could be improved with bullet points.

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 an output schema and 4 parameters, the description fails to explain return values, side effects, or any behavioral context. Leaves significant gaps for an agent.

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?

Schema has 0% description coverage for 4 required parameters, all strings. The description adds no parameter-specific information, leaving format (e.g., date format) or constraints undocumented.

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 'Submit a leave request' with a specific verb and resource. It distinguishes from sibling tools like approve_leave and reject_leave, though it doesn't elaborate on scope.

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., check_leave_balance first) or prerequisites. The description provides no context for appropriate usage.

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

approve_leaveC

Approve a leave request.

ParametersJSON Schema
NameRequiredDescriptionDefault
request_idYes

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?

With no annotations, the description must disclose behavioral traits, but it only states the action. It does not mention side effects (e.g., leave balance deduction), idempotency, or required permissions.

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 extremely concise (one sentence), but it sacrifices necessary detail. While not verbose, it is under-specified for effective use.

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 complexity (mutation tool with one parameter and no annotations), the description is incomplete. It does not cover error conditions, return value, or prerequisites.

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%, and the description provides no explanation for the 'request_id' parameter. The agent receives no additional context beyond the schema's type definition.

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 uses specific verb 'Approve' and resource 'leave request', clearly distinguishing from siblings like 'reject_leave' and 'apply_leave'. However, it lacks additional context about the scope or effect.

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., when to approve vs. reject). No prerequisites or conditions for use are mentioned.

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

check_leave_balanceC

Check an employee's remaining leave balance.

ParametersJSON Schema
NameRequiredDescriptionDefault
employee_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 exist, and the description does not disclose any behavioral traits such as authorization requirements, data scope, or side effects. The read-only nature is implied but not explicitly stated.

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 a single sentence, which is concise. However, it could be expanded slightly without losing efficiency, e.g., adding usage context. It is front-loaded but too sparse.

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 that an output schema exists (though not shown), the description does not need to explain return values. However, for a simple tool with one parameter, the description is minimally adequate but lacks completeness in terms of usage context and parameter semantics.

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?

The single parameter 'employee_id' is not described in the input schema (0% coverage) and the description does not provide any hints about its format, source, or purpose. The description completely fails to compensate for the missing schema documentation.

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 uses a specific verb 'Check' and identifies the resource as 'employee's remaining leave balance'. Among siblings like apply_leave, approve_leave, etc., this tool's purpose is uniquely about querying balances, making it distinct.

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 (e.g., list_leave_requests, employee_details). There are no exclusions or context hints.

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

employee_detailsC

Get employee details.

ParametersJSON Schema
NameRequiredDescriptionDefault
employee_idYes

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, and the description only says 'get,' implying a read operation but offering no details on permissions, error handling, or behavior for missing employees. The description does not compensate for the lack of annotations.

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 (three words) and front-loaded, but it lacks any explanatory sentences. While concise, it sacrifices content 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?

Given the output schema exists, the description could be complete by referencing what details are returned, but it does not. The tool is simple, yet the description omits crucial context about return values and usage.

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?

With 0% schema description coverage, the description should clarify the parameter 'employee_id,' but it does not mention its format, source, or expected values. The agent receives no additional semantics beyond the schema.

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 states 'Get employee details,' which clearly indicates a retrieval operation for employee information. The siblings are all leave-related tools, so the purpose is distinct 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 is given on when to use this tool, prerequisites, or alternatives. The agent is left to infer usage from context.

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

list_leave_requestsC

List all leave requests.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.8/5.0
Behavior1/5

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

No annotations provided, and the description fails to disclose any behavioral traits such as authentication requirements, read-only status, pagination, or performance implications. The minimal description offers no transparency beyond the basic action.

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 extremely concise at one sentence. While it is front-loaded and to the point, it may be overly brief, sacrificing necessary detail 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?

Given the tool has no parameters and an output schema, the description is still incomplete: it does not specify the scope ('all' could be misleading without pagination info), permissions, or any limitations. The output schema may define return values, but the description adds insufficient context.

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 tool has zero parameters, so schema coverage is 100%. The description adds no parameter meaning, which is acceptable as there are no parameters to document.

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 'List' and the resource 'leave requests', distinguishing it from sibling tools that involve applying, approving, rejecting, or checking balances. However, it lacks nuance about scope or filtering.

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., check_leave_balance). The description does not mention prerequisites or context.

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

reject_leaveC

Reject a leave request.

ParametersJSON Schema
NameRequiredDescriptionDefault
request_idYes

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?

With no annotations, the description must fully disclose behavior. It only states it rejects a leave request, but does not mention side effects (e.g., status change, notifications), required permissions, or whether the action is reversible. This is insufficient for a mutation tool.

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 concise (one sentence), but it sacrifices necessary detail for conciseness. While there is no fluff, the brevity leaves the agent with insufficient information.

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 tool is a mutation with a single required parameter and an output schema (not shown), the description should at least hint at success/failure outcomes, constraints (e.g., cannot reject already rejected requests), and the output format. It provides none of this, making it incomplete.

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%, so the description must clarify the single parameter 'request_id'. It does not explain what the ID represents (e.g., the leave request ID) or provide any format or source. The schema's title 'Request Id' adds minimal value, but the description adds nothing beyond the tool's purpose.

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 'Reject a leave request' clearly states the action and resource. It distinguishes from siblings like 'approve_leave' and 'apply_leave' through the verb 'reject'. However, it lacks any additional context about the scope or effect.

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 similar tools like 'approve_leave' or 'list_leave_requests'. The description does not mention prerequisites, nor does it contrast with alternatives.

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. 6 tool updatesv0.1.0
    • First observedapply_leave
    • First observedapprove_leave
    • First observedcheck_leave_balance
    • First observedemployee_details
    • First observedlist_leave_requests
    • First observedreject_leave

TDQS

B3.2/5.0

Scored across 6 tools

Disambiguation5/5

Each tool targets a distinct action (apply, approve, reject, list, check balance, employee details) with no overlap. An agent can easily distinguish their purposes.

Naming Consistency4/5

Most tools follow a consistent verb_noun pattern (e.g., apply_leave, approve_leave). However, 'employee_details' deviates slightly as it is a noun phrase rather than verb_noun, causing minor inconsistency.

Tool Count5/5

With 6 tools, the set is well-scoped for HR leave management. Each tool serves a necessary function, and the count is neither too few nor too many.

Completeness4/5

The core leave lifecycle is covered (apply, approve, reject, list, balance check). Missing features like cancel or update leave are minor gaps, but the surface is largely complete.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers