HR Assistant MCP Agent
Server Quality Checklist
Latest release: v0.1.0
- Disambiguation5/5
Each tool maps to a distinct HR function: employee creation/retrieval, email, IT ticket, meeting scheduling, and leave operations. The leave tools are clearly separated into balance, application, and history, so there is little risk of an agent selecting the wrong one.
Naming Consistency4/5Tool names mostly follow a consistent verb_noun snake_case pattern such as add_employee, get_leave_balance, and schedule_meeting. Minor inconsistency exists between add_employee and create_ticket, but the overall convention is predictable and readable.
Tool Count5/5Eight tools is a well-scoped size for an HR assistant covering employee records, leave, meetings, email, and onboarding tickets. Each tool represents a meaningful workflow area without unnecessary overlap or bloat.
Completeness3/5The set covers core employee and leave operations, but obvious gaps remain: there is no update or delete employee, no list employees, and no leave cancellation or approval workflow. These gaps are workable for basic scenarios but could cause failures in fuller HR processes.
Average 2.9/5 across 8 of 8 tools scored.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 2 commits in the last 12 weeks
- No stable releases found
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI status not available
Add a LICENSE file by following GitHub's guide. Once GitHub recognizes the license, the system will automatically detect it within a few hours.
If the license does not appear after some time, you can manually trigger a new scan using the MCP server admin interface.
MCP servers without a LICENSE cannot be installed.
This repository includes a README.md file.
No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.
Tip: use the "Try in Browser" feature on the server page to seed initial usage.
Add a glama.json file to provide metadata about your server.
If you are the author, simply .
If the server belongs to an organization, first add
glama.jsonto the root of your repository:{ "$schema": "https://glama.ai/mcp/schemas/server.json", "maintainers": [ "your-github-username" ] }Then . Browse examples.
Add related servers to improve discoverability.
How to sync the server with GitHub?
Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.
To manually sync the server, click the "Sync Server" button in the MCP server admin interface.
How is the quality score calculated?
The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).
Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.
Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).
Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.
Tool Scores
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description is the only source for behavioral disclosure. It only states that an email is sent and that the return type is str, but it does not disclose whether the action is irreversible, whether it has external side effects, whether permissions are needed, or what happens on failure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness3/5Is the description appropriately sized, front-loaded, and free of redundancy?
The opening sentence is concise and front-loaded. However, the 'Args' and 'Returns' block largely duplicates the structured schema, adding little value and making the description slightly redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Although the tool is simple, the description leaves important operational gaps: it does not say whether the recipient must be an existing employee, how the email address can be obtained, or what the returned string means. The existence of an output schema reduces the return-value burden, but it does not fill the missing usage and behavioral context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate by explaining parameter meaning. It merely repeats the parameter names and types already present in the schema (to_email, subject, body) without adding constraints, format expectations, or relationships between parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence clearly states a specific action (send) and resource (email), with the recipient scope being an employee. This is enough to distinguish the tool from siblings like get_leave_balance or create_ticket, although it does not explicitly discuss edge cases or alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use or when-not-to-use guidance is provided. The description does not mention prerequisites such as looking up an employee's email address, nor does it differentiate this from potentially similar workflows like creating a ticket or scheduling a meeting. The agent must infer usage entirely from the verb 'send' and the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- 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 itself. It implies a read-only lookup and indicates a Dict return, but it does not state what happens if the employee is not found, if multiple employees share the same name, or whether lookup is case-sensitive/exact-match.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core sentence. The Args/Returns lines are somewhat redundant with the input schema and output schema, but they do not add meaningful bloat. Overall it is efficient and easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter lookup tool with an output schema, the description is minimally viable: it states the action and parameter. However, it leaves important gaps around duplicate or missing employee names and does not position the tool against sibling employee-related tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description needs to compensate for parameter meaning. It only restates that 'name' is a string and that lookup is by name, which duplicates the schema. It adds no details about name format, required specificity, or matching behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Get the details of an employee by name.' This is specific and identifies both the resource (employee details) and lookup method. It does not explicitly differentiate from sibling read tools like get_leave_balance or get_leave_history, but the tool name and description are unambiguous enough.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. It does not mention that leave-related information should go through get_leave_balance or get_leave_history, nor does it provide any context for when get_employee_details is the right choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- 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 behavioral burden. It only states that the tool gets a balance and returns a string; it does not disclose read-only guarantees, error behavior, what the string represents, or the effect of an invalid employee ID.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and follows an Args/Returns structure that is easy to scan. It contains a small amount of redundancy with the schema, but it is not bloated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read-style tool, the description is minimally sufficient: it states the purpose and the argument. However, it lacks sibling differentiation and edge-case behavior, which matters because an output schema exists but no guidance is given for selecting this tool over get_leave_history.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description repeats only the parameter name and type ('emp_id: str') without adding meaning. The phrase 'of an employee' lightly implies emp_id identifies an employee, but no format, source, or validation details are given.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
Description uses a specific verb ('Get') and resource ('leave balance of an employee'), clearly identifying what the tool returns. It is distinguishable from siblings like get_leave_history and apply_leave, though it does not explicitly call out the distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus sibling tools such as get_leave_history or apply_leave. The usage context must be inferred entirely from the tool name and the generic 'Get' phrasing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description must shoulder the burden of behavioral disclosure. It implies a write operation ('schedule') but says nothing about side effects, permission requirements, validation of employee existence, availability checks, or what the returned string represents.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loads the core purpose in a single sentence. However, the Args/Returns block duplicates schema information and adds little value, slightly reducing the quality of the structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite its simplicity, the description lacks important contextual details an agent needs to invoke it correctly, such as the format of meeting_dt, how the meeting is created, and whether it is appropriate for a given user request. The return value is stated, and an output schema exists, but behavioral and usage context are missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description's Args block only repeats the parameter names and Python types already present in the schema. It does not explain the meaning of emp_id, meeting_dt, or topic, nor any constraints such as date-time format or valid employee ID format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence 'Schedule a meeting for an employee' provides a specific verb and resource, making the tool's function unambiguous. The sibling tools (send_email, create_ticket, apply_leave) are clearly distinct in domain, so no confusion arises even without explicit differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool versus alternatives such as create_ticket or apply_leave, nor any exclusions or prerequisites. The description only states what it does, leaving the agent to infer usage context from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits itself, but it only states that a ticket is created and that a string is returned. It does not mention side effects, persistence, permissions, or any follow-up actions, which matters for a mutating create operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose sentence is front-loaded, and the Args/Returns block is compact and easy to scan. No unnecessary filler is present, though the grammar 'an new employees' is a minor defect.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The definition is adequate for a simple three-parameter creation tool: it gives the purpose, the argument names and types, and the return type. However, it leaves parameter semantics largely unspecified and offers no comparison or routing guidance for the nearby sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description needs to compensate, but it only repeats the parameter names and types alongside the examples 'laptop' and 'id card'. It does not clarify the expected format for emp_id, constraints on item, or what reason should contain.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates a ticket for new employees to request equipment such as a laptop and ID card, which distinguishes it from employee-management siblings like add_employee and leave tools. It uses a specific verb and resource, though it does not name an alternative explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended context is implied by 'for new employees' and the equipment examples, suggesting this is for onboarding-related ticket creation. No explicit guidance is given about when to use this tool instead of siblings like send_email or schedule_meeting, nor 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.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral burden. The verb 'Get' and 'Returns: str' make clear this is a read operation that returns a string, but the description does not explain output formatting, empty-result behavior, or any access requirements. For a simple getter this is acceptable but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with the purpose sentence. The Args/Returns block is compact and conventional, though it partly duplicates schema information rather than adding new value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter retrieval tool, the description is minimally sufficient to understand the call shape, but it lacks usage context, parameter semantics, and behavioral details. With no annotations and no output schema shown beyond 'str', an agent gets only the bare minimum.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description needed to compensate by explaining emp_id, but it only repeats 'emp_id: str', which duplicates the schema's type information. No additional meaning, format, or example is given.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb and resource: 'Get the leave history of an employee.' The word 'history' helps distinguish this from sibling tools like get_leave_balance and apply_leave, though it does not explicitly name those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus get_leave_balance or apply_leave. There are no prerequisites, exclusions, or alternative routing hints, so an agent must infer usage purely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only says 'Add a new employee' and gives return type as str. It does not mention whether manager_id must reference an existing employee, whether email must be unique, whether permissions are required, or what the returned string represents.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, front-loaded with the core purpose, and free of filler. The Args and Returns lines are structured simply, though they mostly restate schema information. It earns a high score for efficiency, but not a 5 because it omits useful detail while keeping the parameter block.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a create operation with no annotations and no detailed output schema, the description is too thin. It does not explain what manager_id refers to, whether the operation has side effects, what valid input values look like, or what the return value means. An agent would likely need to infer or discover critical details elsewhere.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description merely repeats the parameter names and types from the schema without adding meaning. It does not clarify the semantics of manager_id, email uniqueness, or any constraints or relationships. The description fails to compensate for the low schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear action and resource: 'Add a new employee to the system.' This is specific enough to distinguish the tool from siblings like get_employee_details, apply_leave, or send_email, none of which perform employee creation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is implied: use this tool when adding a new employee. However, there is no explicit guidance about prerequisites, when not to use it, or how it compares to other tools. The instruction is clear but leaves selection context entirely implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of disclosing behavior, but it only says 'Apply leave' and gives a return type. It does not explain side effects (e.g., whether leave is booked immediately, requires approval, or checks balance), prerequisites, or failure behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loads the main purpose in the first sentence, with a clean docstring layout. It is not overly long, though the Args/Returns lines are largely redundant with the structured schema and output schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a state-changing tool with no annotations, the description is too sparse: it omits context about leave-request rules, return-value semantics, and any validation or preconditions. The presence of an output schema offsets some need to describe return values, but behavioral context is still missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description should compensate, but the Args section merely repeats the schema's names and types without adding meaning. It does not explain what emp_id refers to, what date range is valid, or that leave_dates should be ISO-formatted strings, and the 'List[datetime]' type is potentially misleading given the schema's date-time string format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a clear verb ('Apply') and resource ('leave') and specifies the target ('for an employee'), making the tool's function immediately understandable and distinct from the read-oriented sibling tools like get_leave_balance and 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 Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The action-oriented description implies this tool is for submitting a leave request, in contrast to sibling get_leave_* tools that retrieve data, so an agent can infer when to use it. However, it provides no explicit guidance, alternative names, or conditions for 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.
GitHub Badge
Glama performs regular codebase and documentation scans to:
- Confirm that the MCP server is working as expected.
- Confirm that there are no obvious security issues.
- Evaluate tool definition quality.
Our badge communicates server capabilities, safety, and installation instructions.
Card Badge
Copy to your README.md:
Score Badge
Copy to your README.md:
shields.io Endpoint
For READMEs with an existing badge row. Append &style=flat-square (or any other shields.io style) to match the rest, and &metric=tools, &metric=maintenance or &metric=claim to badge a different dimension.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/sachink1712/HR-Assistant-MCP-Agent'
If you have feedback or need assistance with the MCP directory API, please join our Discord server