NexTool MCP for GLPI
Server Details
MCP server for GLPI: tickets, ITIL, assets, knowledge base. GLPI 10/11. Not affiliated with Teclib'.
The last two health checks of this connector failed. If this server requires authentication, missing or expired test credentials may be the cause. A test profile lets Glama authenticate for health checks and discover tools; it is separate from your personal connections.
If you are the author, claim ownership, then add or update a test profile under Admin → Test Profile.
- Status
- Unhealthy
- Uptime
- 14.6% over 21 days
- OAuth
- Works in Glama
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- NexTools-Solutions/nextool-mcp-glpi
- GitHub Stars
- 1
- Server Listing
- NexTool MCP for GLPI
TDQS
Scored across 102 tools
Most tools target a distinct resource+action, and descriptions actively disambiguate the tricky pairs (glpi_get_asset vs glpi_get_asset_details, glpi_list_tickets vs glpi_list_my_tickets, glpi_search vs typed list tools). However, the rule family (glpi_list_rules, glpi_list_rule_actions, glpi_list_rule_criteria, glpi_list_rule_ticket_actions, glpi_list_rule_ticket_criteria) has genuinely fuzzy boundaries, and glpi_list_timeline overlaps with the four separate followup/task/solution/validation listers.
Every tool follows a strict glpi_verb_noun snake_case pattern (create_ticket, update_change, list_problem_tasks, get_knowbase_item). The convention is applied uniformly across all 102 tools with no deviations in casing or verb style.
102 tools is excessive even for a large ITSM platform like GLPI, and many are thin per-resource wrappers (get_X/list_X/update_X repeated across tickets, changes, problems, assets, users, groups, entities, documents). While the domain is genuinely broad, the count is well past a comfortable working set and increases selection cost.
Coverage is broad across CRUD and search for most resources (tickets, changes, problems, assets, users, entities, knowledge base, reservations, rules, webhooks). The glaring gap is that no delete/purge operation exists anywhere, and some resources lack create (groups, locations, ITIL categories), leaving lifecycle dead ends.
Available Tools
102 toolsglpi_add_change_followupAdd followup to changeCInspect
Add a comment/followup to a change.
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes | Followup text content | |
| changeId | Yes | Change ID | |
| is_private | No | 1=private, 0=public |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| replayed | No | True when an identical recent create was returned instead of repeated |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safety profile (readOnlyHint=false, idempotentHint=false, destructiveHint=false, openWorldHint=true), so the bar is lower. The description adds nothing beyond: it doesn't disclose whether followers are notified, how private vs public works, or side effects on the change timeline.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with no waste and the action front-loaded. It is efficient, though the extreme sparseness means there is little structure to speak of.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and params are fully covered by the schema. But for a mutating tool in a crowded sibling family, the absence of any usage or behavioral context leaves real gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents changeId, content, and the is_private enum meaning (1=private, 0=public). The description adds no parameter meaning beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear verb+resource: 'Add a comment/followup to a change.' An agent understands the action and target. However, it does not distinguish this from closely-named siblings like glpi_add_followup (generic) or glpi_add_change_solution, so the differentiation is missing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no exclusions, and no mention of alternatives. With three near-identical followup tools (change, problem, generic) plus change solutions, the description leaves the agent to guess which one applies.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_add_change_solutionAdd solution to changeAInspect
Add a solution to a change (status changes to Solved).
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes | Solution text content | |
| changeId | Yes | Change ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| replayed | No | True when an identical recent create was returned instead of repeated |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare the safety profile (readOnly=false, destructive=false, non-idempotent, openWorld), and the description adds a genuinely useful trait beyond them: the change's status is set to Solved as a side effect. It stops short of noting what happens if a solution already exists (non-idempotent overwrite risk) or any permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with no filler, and the side-effect disclosure is placed inline rather than buried. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values need not be explained, and both required parameters are fully covered by the schema. The description is complete for invocation purposes, though it lacks any routing guidance relative to the many sibling solution/followup tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters (changeId, content) are documented in the schema, so the baseline is 3. The description adds no format, validation, or usage nuance for either parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource ("Add a solution to a change") and the parenthetical discloses the resulting state change. It does not explicitly distinguish itself from near-name siblings like glpi_add_solution or glpi_add_problem_solution, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this instead of glpi_add_solution, glpi_add_problem_solution, or glpi_update_change. The agent must infer from the tool name alone which resource/solution variant applies.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_add_followupAdd followup to ticketCInspect
Add a comment/followup to a ticket.
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes | Followup text content | |
| ticketId | Yes | Item ID | |
| users_id | No | Author user ID (default: session user) | |
| is_private | No | 1 for private, 0 for public (default: 0) |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| replayed | No | True when an identical recent create was returned instead of repeated |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=false, destructiveHint=false, and openWorldHint=true, so safety is covered. The description adds no behavioral context of its own — nothing about whether the followup triggers notifications, whether it is visible to requesters, or permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero padding. It is efficient, though the brevity borders on under-specification rather than genuine conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and full annotation coverage, the description need not explain return values. However, for a write operation with four parameters and three near-identical followup siblings, it omits the disambiguation and side-effect context an agent would need to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters (content, ticketId, users_id, is_private) are already documented in the schema, including the private/public default. The description adds no meaning beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (add) and resource (comment/followup) scoped to a ticket, which is clear on its own. It does not explicitly differentiate from the close siblings glpi_add_change_followup and glpi_add_problem_followup, relying on the tool name to carry that distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus the change/problem followup variants, nor when to prefer a solution (glpi_add_solution) over a followup. No prerequisites or exclusions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_add_problem_followupAdd followup to problemCInspect
Add a comment/followup to a problem.
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes | Followup text content | |
| problemId | Yes | Problem ID | |
| is_private | No | 1=private, 0=public |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| replayed | No | True when an identical recent create was returned instead of repeated |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=false, destructiveHint=false and openWorldHint=true, so the safety profile is covered by structured data. The description adds nothing on top of that: it does not say whether the followup is public or private by default, who can see it, or that the problem must already exist. For a mutation tool at this bar, the description contributes no behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short, front-loaded sentence with zero filler, which is the right shape. It is efficient but so terse that it reads as under-specified rather than deliberately compact.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and the schema fully covers the three parameters. However, for a non-idempotent write tool in a family with several near-identical 'add followup' siblings, the description leaves the agent without routing or visibility guidance, which is a real gap relative to the context's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so problemId, content and is_private (1=private, 0=public) are all documented structurally; the schema baseline of 3 applies. The phrase 'comment/followup' loosely clarifies what content represents, but no default for is_private or relationship between the two required params is added.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a concrete verb plus resource ('Add a comment/followup to a problem'), which clearly separates it from the get/list/problem-update siblings. It stops short of distinguishing itself from the other additive siblings that share its name pattern (glpi_add_followup, glpi_add_change_followup, glpi_add_problem_solution), so the agent must infer the split from the name alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use language, no prerequisites, and no alternatives named. The sibling set contains glpi_add_problem_solution and a generic glpi_add_followup, and the description does nothing to tell the agent which of these is correct for a given intent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_add_problem_solutionAdd solution to problemBInspect
Add a solution to a problem (status changes to Solved).
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes | Solution text content | |
| problemId | Yes | Problem ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| replayed | No | True when an identical recent create was returned instead of repeated |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare non-read-only, non-destructive, non-idempotent behavior. The description usefully adds the side effect that the problem status changes to 'Solved', which is not encoded in annotations. However, it omits auth requirements, error/validation conditions, and re-solve semantics, so it adds only partial behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with zero filler that states the action and its most important consequence immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and annotations cover the safety profile. The mutation's key side effect is noted, but the description is thin on when to choose this over sibling solution tools and on any state prerequisites, leaving gaps for an agent acting among many similar tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters (problemId, content) are already fully documented in the schema. The description adds no additional meaning about parameter format or constraints, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Add a solution to a problem'), which is clearly distinct in name from the generic glpi_add_solution and glpi_add_change_solution siblings. It does not explicitly explain how it differs from the generic add_solution tool, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does 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 the sibling glpi_add_solution or glpi_add_change_solution, nor any prerequisites such as the required problem state before a solution can be added. The agent must infer usage 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.
glpi_add_solutionAdd solution to ticketBInspect
Add a solution to a ticket (status changes to Solved).
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes | Solution text content | |
| ticketId | Yes | Item ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| replayed | No | True when an identical recent create was returned instead of repeated |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=false, and destructiveHint=false, so the mutation profile is covered. The description adds one genuinely useful fact not in the annotations: the ticket status transitions to Solved. It says nothing about permissions required, whether an existing solution is replaced, or reversibility.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with zero filler, and the side effect is front-loaded within the parenthesis. It is efficient but borderline terse given the behavioral gaps that remain.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With only two required params, full schema coverage, an output schema, and annotations covering the safety profile, most of the burden is carried by structured fields. Still missing are the conditions for a valid call (e.g., ticket must exist and be in a solvable state) and whether repeated calls stack multiple solutions, which matters given idempotentHint=false.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both ticketId and content documented in the schema, so the baseline of 3 applies. The description adds no format, length, or validation detail beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ("Add a solution to a ticket") plus the resulting state change, which is more than the title alone. It implicitly scopes to tickets versus the change/problem solution siblings (glpi_add_change_solution, glpi_add_problem_solution), but never names those alternatives explicitly, so an agent must infer the routing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: adding a solution signals ticket resolution, and the parenthetical clarifies the terminal effect. There is no explicit when-to-use, no prerequisites, and no mention of the sibling tools that add solutions to changes or problems.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_add_ticket_groupAdd group to ticketAInspect
Add a group to a ticket as requester, observer, or assigned. type: 1=Requester, 2=Assigned, 3=Observer.
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | 1=Requester, 2=Assigned, 3=Observer | |
| groups_id | Yes | Group ID | |
| tickets_id | Yes | Ticket ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| replayed | No | True when an identical recent create was returned instead of repeated |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=false, destructiveHint=false and openWorldHint=true, so the mutation/safety profile is covered structurally. The description adds the role semantics of the type field, but that information is duplicated in the schema rather than adding new behavioral context such as ordering, duplicate handling, or permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences with the core action front-loaded and no filler. The second sentence restates the type mapping already present in the schema, which is minor redundancy rather than bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With only three fully documented parameters, a present output schema, and annotations covering the safety profile, the description supplies everything an agent needs to invoke the tool correctly. The only gap is that it never distinguishes this from glpi_add_ticket_user.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema alone documents all three parameters, including the same '1=Requester, 2=Assigned, 3=Observer' mapping the description repeats. Baseline 3 applies since the description contributes no meaning beyond the structured fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Add a group to a ticket') and enumerates the three relationship roles, so the agent knows exactly what the operation creates. It is clear without opening the schema, though it does not explicitly name the adjacent sibling glpi_add_ticket_user as the alternative for individual users.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the name and the role list, but there is no explicit when-to-use guidance, no statement of the alternative (glpi_add_ticket_user) or exclusion. An agent must infer that this tool is for groups and the sibling is for individual users.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_add_ticket_taskAdd task to ticketBInspect
Add a task to a ticket. Fields: tickets_id, content (required). Optional: is_private (0/1), state (0=Info, 1=To do, 2=Done), actiontime (seconds), users_id_tech (assigned technician).
| Name | Required | Description | Default |
|---|---|---|---|
| state | No | 0=Info, 1=To do, 2=Done | |
| content | Yes | Task content | |
| actiontime | No | Duration in seconds | |
| is_private | No | 1=private, 0=public | |
| tickets_id | Yes | Ticket ID | |
| users_id_tech | No | Assigned technician user ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| replayed | No | True when an identical recent create was returned instead of repeated |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly=false, idempotent=false, destructive=false, and openWorld=true, so the safety profile is covered by structured data. The description adds field semantics but discloses nothing about side effects, required permissions, or what happens to ticket state when a task is added, leaving the annotation bar only partially met.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a compact single block with the core purpose front-loaded and required fields flagged before optional ones. It is efficient, though the terse field dump reads more like a schema echo than a curated summary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and 100% parameter coverage, the description need not explain return values, and it covers the required/optional split adequately for a straightforward create operation. It is only slightly thin on prerequisites and error conditions for a mutation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents every parameter, and the description's field list (including the state and is_private codes) largely restates it. It adds no format, validation, or default details beyond what the schema provides, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Add a task to a ticket') and enumerates the fields it accepts, so an agent can immediately tell it is a task-creation tool. However, it does not differentiate from close siblings like glpi_add_followup or glpi_add_solution, which also attach content to a ticket.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites (e.g. the ticket must exist), and no pointer to the alternative tools such as glpi_add_followup or glpi_list_ticket_tasks. Usage must be inferred entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_add_ticket_userAdd user to ticketBInspect
Add a user to a ticket as requester, observer, or assigned. type: 1=Requester, 2=Assigned, 3=Observer.
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | 1=Requester, 2=Assigned, 3=Observer | |
| users_id | Yes | User ID | |
| tickets_id | Yes | Ticket ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| replayed | No | True when an identical recent create was returned instead of repeated |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the write profile (readOnlyHint=false, idempotentHint=false, destructiveHint=false, openWorldHint=true). The description adds no behavioral context beyond that — no note on duplicate-user handling, permissions, or side effects — and merely restates the schema's type mapping.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences, front-loaded with the operation and immediately followed by the role-value mapping. Slightly redundant with the schema, but no wasted preamble.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A simple 3-parameter mutation with full schema coverage, annotations covering the safety profile, and an output schema that handles return values. The only gap is absence of prerequisite/permission context, which is minor for this operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters (tickets_id, users_id, type) are already documented. The description's type mapping duplicates the schema's enum explanation rather than adding new meaning, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (add), resource (user), and target (to a ticket), plus the three role values that define scope. An agent can distinguish it from glpi_add_ticket_group and glpi_add_ticket_task purely from the name/description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites (e.g., ticket must exist), and no mention of alternatives such as glpi_update_ticket for changing an existing assignment. The role definitions hint at intent but don't route the agent between tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_change_active_entitiesChange active entityADestructiveInspect
Change the active entity for the current session. Essential for multi-entity GLPI instances. Use is_recursive=true to include sub-entities.
| Name | Required | Description | Default |
|---|---|---|---|
| entityId | Yes | Entity ID to switch to | |
| is_recursive | No | Include sub-entities (default: false) |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare destructiveHint=true, idempotentHint=false and openWorldHint=true; the description only reinforces the session scope ('for the current session') and does not explain why the operation is flagged destructive or that it mutates context for every subsequent call in the session. That is a meaningful gap given the strong destructive annotation, though the session-scope statement does add context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the core action and no wasted words. The middle sentence is slightly promotional ('Essential...') but still conveys useful context rather than filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described, and both parameters are fully documented. For a simple session-switch operation the description is nearly complete; the only shortfall is not explaining the consequences of the destructive/idempotent flags it carries.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so entityId and is_recursive are already documented in the schema. The description's 'Use is_recursive=true to include sub-entities' largely restates the schema description ('Include sub-entities (default: false)'), adding only a usage framing. Baseline 3 applies when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (change active entity) and adds the crucial scope qualifier 'for the current session,' which separates it from glpi_update_entity and glpi_get_entity. It does not explicitly name a sibling alternative, but the session-scoping makes the target distinct enough for an agent to pick correctly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Essential for multi-entity GLPI instances' implies when the tool matters, giving the agent a context trigger. However, it never states when to call it versus glpi_get_my_entities or glpi_get_full_session, nor any prerequisites (e.g., needing rights to the target entity). Usage is implied rather than instructed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_count_itemsCount itemsARead-onlyIdempotentInspect
Count matching items without transferring them — answers 'how many' in one cheap call. Use glpi_list_search_options to discover criteria field IDs.
| Name | Required | Description | Default |
|---|---|---|---|
| criteria | No | Array of {field, searchtype, value, link} — same shape as glpi_search | |
| itemtype | Yes | Item type, e.g. Ticket, Computer, User |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and openWorld, so the safety profile is covered elsewhere. The description adds genuinely new behavioral context: no record payload is transferred and the operation is cheap, which matters for an agent choosing between counting and listing. It does not mention the shape or limits of the returned count, but the output schema presumably covers that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences, front-loaded with the core distinction (counting without transfer) and followed by the one operational hint. No filler or restatement of the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With rich annotations, a 100%-covered two-parameter schema, and an existing output schema, the description supplies exactly the missing pieces: the count-vs-transfer distinction and how to obtain criteria field IDs. Nothing needed to select or invoke the tool correctly is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, both parameters are documented, and the criteria shape is cross-referenced to glpi_search. The description goes beyond the schema by pointing to glpi_list_search_options as the way to discover valid criteria field IDs, which is actionable value the schema does not supply.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (count items) and immediately distinguishes itself from the list/search siblings by saying it counts 'without transferring them'. The parenthetical 'answers "how many" in one cheap call' removes any ambiguity about what the tool returns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'without transferring them' implicitly routes the agent here when only a total is needed rather than glpi_search or glpi_list_tickets, and it explicitly names glpi_list_search_options for criteria discovery. It stops short of an explicit 'use instead of glpi_search when you don't need the records' statement or any exclusion conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_create_assetCreate assetCInspect
Create an asset. Common fields: name, entities_id, serial, otherserial, locations_id, states_id, manufacturers_id, users_id, comment.
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | Asset fields | |
| asset_type | Yes | Asset itemtype, e.g. Computer, Monitor, Printer, NetworkEquipment, Software |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| replayed | No | True when an identical recent create was returned instead of repeated |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare it is a non-read-only, non-idempotent, open-world write, so the safety profile is covered. The description adds no behavioral context beyond that: it does not say unknown/unlisted fields are accepted, what validation or error behavior looks like, or that entity/permission scoping applies (assets are created into an entity).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, purpose front-loaded, no filler. The trailing field enumeration is a dense list rather than prose, which is efficient, though it reads more like a schema restatement than curated guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need not be described. However, for a create operation with a fully open nested payload, the description omits whether additional fields beyond the 'common' list are accepted, whether name is required, and any permission/entity prerequisite — the agent lacks what it needs to invoke this reliably beyond a bare happy path.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Top-level schema coverage is nominally 100%, so the baseline is 3, but the nested 'input' object is `additionalProperties: {}` with only 'Asset fields' as its description. The field list (name, entities_id, serial, locations_id, states_id, ...) is the only real guidance for that open object, which adds value, yet it is flagged as merely 'common' with no indication of which fields are mandatory or how they vary by asset_type.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Create an asset'), and the asset domain is distinguishable from the many sibling create_* tools (ticket, user, document, entity). It stops short of naming what an 'asset' covers versus those siblings, but the intent is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites (e.g. required permissions or referenced entity/user IDs needing to exist first), and no pointer to glpi_get_asset / glpi_list_assets / glpi_update_asset as related siblings. The agent must infer all of this.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_create_changeCreate changeBInspect
Create a new change. Common fields: name, content, entities_id, users_id_requester.
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | Change fields |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| replayed | No | True when an identical recent create was returned instead of repeated |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=false, and destructiveHint=false, so the safety profile is covered structurally. The description adds no behavioral context beyond that — no mention of required permissions, side effects, or whether the change is created in a draft state.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short, front-loaded sentences with no waste. The purpose is stated first and the field hints follow immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool whose input schema is an opaque free-form object, the description is too thin: it doesn't say which fields are required, what defaults apply, or what the created change looks like. The presence of an output schema relieves it of explaining return values, but the input side remains underspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema's single 'input' parameter is a free-form object (additionalProperties: {}) described only as 'Change fields', so it conveys almost no real semantics. The description partially compensates by naming common fields (name, content, entities_id, users_id_requester), which is genuine added value, but it omits required-vs-optional and field formats.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear verb+resource ('Create a new change'), which an agent can distinguish from glpi_create_ticket, glpi_create_problem, and glpi_update_change. It does not, however, differentiate the scope or intent from closely related siblings beyond the resource noun.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no mention of alternatives such as glpi_update_change or glpi_add_change_followup. The agent must infer usage 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.
glpi_create_documentCreate documentBInspect
Create a document (metadata). Fields: name, entities_id, comment, etc.
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | Document fields |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| replayed | No | True when an identical recent create was returned instead of repeated |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safety profile (readOnlyHint=false, destructiveHint=false, idempotentHint=false, openWorldHint=true), so the bar is lower. The description adds the meaningful '(metadata)' hint, implying no binary payload, but says nothing about required fields, auth scope, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, purpose front-loaded before the field list, with no filler. The vague 'etc.' slightly dilutes an otherwise efficient structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need no explanation, and annotations cover the mutation/safety profile. However, for a create operation on an opaque freeform schema, the description should at least state which fields are required and how this differs from glpi_create_document_item.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter is a freeform object with additionalProperties: {}, so the schema itself defines no field names. The description partially compensates by naming name, entities_id, and comment, but the trailing 'etc.' leaves the accepted field set open-ended and unverified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (create a document) and adds the qualifier '(metadata)', which usefully hints that this does not upload binary file content. It stops short of naming or distinguishing itself from the closest sibling, glpi_create_document_item, so an agent must still infer the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool versus alternatives such as glpi_create_document_item (linking a document to an item) or the get/list document tools. No prerequisites, permissions, or follow-up steps are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_create_document_itemLink document to itemCInspect
Create a link between a document and an item (Ticket, KnowbaseItem, etc.).
| Name | Required | Description | Default |
|---|---|---|---|
| items_id | Yes | Target item ID | |
| itemtype | Yes | Target item type, e.g. Ticket, KnowbaseItem | |
| documents_id | Yes | Document ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| replayed | No | True when an identical recent create was returned instead of repeated |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=false, destructiveHint=false and openWorldHint=true, so the mutation profile is covered. The description adds nothing beyond that: it does not warn that repeated calls create duplicate links (non-idempotent), nor state permission requirements, despite being the natural place to do so.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler, correctly stating verb and operands first. It is efficient, though 'etc.' leaves the accepted itemtype set open rather than bounded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained. However, for a non-idempotent linking mutation with three required parameters, the description omits the lifecycle context (existence prerequisites, duplicate-link behavior) that an agent needs to call it safely, leaving it minimally viable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents documents_id, itemtype and items_id, and the description only echoes the itemtype examples ('Ticket, KnowbaseItem'). With the schema doing the heavy lifting, baseline 3 is appropriate; no format, ID-space or type-mismatch guidance is added.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Create a link') and both resources (document and item), and enumerates example target types (Ticket, KnowbaseItem). It implicitly separates itself from glpi_create_document (creates the document) and glpi_get_document_item/glpi_list_document_items (reads links), but never explicitly routes the agent among those siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no stated prerequisites (e.g. that the document must already exist, likely via glpi_create_document, and that the target item must exist), and no mention of the read-side siblings glpi_get_document_item or glpi_list_document_items for verification.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_create_entityCreate entityAInspect
Create a new entity. Fields: name (required), entities_id (parent, 0=Root), comment, address, etc.
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | Entity fields |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| replayed | No | True when an identical recent create was returned instead of repeated |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, openWorldHint=true, idempotentHint=false, and destructiveHint=false, covering the safety profile. The description adds no behavioral context beyond what the annotations convey—no mention of permission requirements, side effects, or hierarchy constraints. With annotations doing the heavy lifting, a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence followed by a compact field list. Every element earns its place, with no redundant or filler text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described, and annotations cover the safety profile. However, the description omits usage context such as required permissions, parent-entity validation, or the full set of acceptable fields for a creation tool with a nested, open-ended input object. It is minimally adequate but leaves clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema only defines a single open 'input' object with the vague description 'Entity fields'. The description adds real meaning by naming required field name, the parent entity field entities_id with 0=Root semantics, and optional fields comment and address. However, the trailing 'etc.' indicates the list is incomplete, leaving some parameter semantics undisclosed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (Create) and resource (entity), clearly distinguishing it from siblings like glpi_update_entity, glpi_get_entity, and glpi_list_entities. An agent can immediately tell this is a write operation for a new entity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does 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 alternatives such as glpi_update_entity or glpi_create_user. It lists fields but does not state prerequisites, exclusions, or typical scenarios for creating an entity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_create_itil_followup_templateCreate followup templateBInspect
Create a new followup template. Fields: name, content, comment, itemtype (Ticket/Change/Problem).
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | Template fields |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| replayed | No | True when an identical recent create was returned instead of repeated |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, idempotentHint=false, and openWorldHint=true, so the safety profile is covered. The description adds nothing behavioral beyond that — no permission requirements, no note about template reuse or visibility — it only restates the purpose and lists fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the action, no filler. Slightly terse but every sentence carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema and annotations exist, so return values and safety are handled elsewhere. However, for a create tool whose schema hides the real fields behind an opaque object, more detail on field constraints, required vs optional, and template scope would help an agent call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema is a loose 'input' object with additionalProperties and 100% coverage of a single opaque parameter, so it does not actually document the nested fields. The description compensates by naming the concrete fields (name, content, comment, itemtype) and giving the allowed itemtype values, which is genuine value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Create) and resource (followup template), which is clearly distinct from sibling create tools like glpi_create_ticket. It does not explicitly name what separates it from glpi_update_itil_followup_template or list templates, but the purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage (creating a reusable ITIL followup template) and the itemtype enumeration hints at the Ticket/Change/Problem scoping, but there is no explicit when-to-use, prerequisite, or alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_create_knowbase_categoryCreate knowledge base categoryCInspect
Create a new knowledge base category.
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | Category fields (name, knowbaseitemcategories_id for parent, comment) |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| replayed | No | True when an identical recent create was returned instead of repeated |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=false, destructiveHint=false and openWorldHint=true, so the mutation/safety profile is covered. The description adds nothing beyond that: no mention of required permissions, parent-category constraints, or whether a duplicate name is rejected.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single front-loaded sentence with no padding, which is structurally fine. However, the brevity reflects under-specification rather than disciplined conciseness — there is no second sentence carrying actual value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a create tool with a nested free-form input object and hierarchical parent semantics, the description omits everything an agent needs beyond the schema: hierarchy rules, permission expectations, and validation behavior. The output schema and annotations cover the response and safety profile, but the creation semantics are left unexplained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is only one parameter ('input'), and schema description coverage is 100% with the nested field list (name, knowbaseitemcategories_id, comment) already documented in the schema. The description adds no parameter meaning of its own, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description restates the tool title almost verbatim ('Create knowledge base category' → 'Create a new knowledge base category'), adding only the word 'new'. It says nothing about the resource's role (GLPI knowledge base hierarchy) and does not distinguish it from adjacent siblings such as glpi_create_knowbase_item or glpi_update_knowbase_category.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites, and no mention of alternatives. An agent gets no signal about whether to create a category here versus an item, or how this relates to glpi_get_knowbase_category/glpi_update_knowbase_category.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_create_knowbase_itemCreate knowledge base itemBInspect
Create a new knowledge base article. Fields: name, answer (HTML content), knowbaseitemcategories_id, etc.
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | Knowledge base item fields |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| replayed | No | True when an identical recent create was returned instead of repeated |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false, openWorldHint=true, idempotentHint=false, destructiveHint=false, so the safety profile is defined. The description adds a little about field format ('HTML content') but doesn't cover what happens on creation, validation, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the action and then useful field examples. No waste, though the 'etc.' is slightly vague.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a nested-object create tool with an output schema, the description is thin. It should indicate required fields, whether the category must exist, and basic behavioral expectations. The output schema covers returns, but the input side is under-specified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single 'input' parameter, but that parameter is a blanket object with additionalProperties and no field-level documentation. The description lists some fields (name, answer, knowbaseitemcategories_id, etc.) but does not compensate for the lack of schema detail on the nested object.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb + resource: 'Create a new knowledge base article.' Clearly distinguished from glpi_update_knowbase_item, glpi_get_knowbase_item, and glpi_create_knowbase_category among the sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 glpi_update_knowbase_item or glpi_create_knowbase_category. No context about required permissions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_create_problemCreate problemBInspect
Create a new problem. Common fields: name, content, entities_id, users_id_requester.
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | Problem fields |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| replayed | No | True when an identical recent create was returned instead of repeated |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, openWorldHint=true and idempotentHint=false, so the mutation and safety profile is covered. The description adds nothing beyond that: no mention of required permissions, whether duplicate problems are rejected, or what the operation returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with the purpose front-loaded and field hints second. Tight and efficient, though the field list is a bare enumeration with no indication of which fields are required.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained. For a create tool whose input is an unconstrained object, however, the description gives only four sample fields and no required/optional distinction, leaving the agent under-specified on the actual payload.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema exposes only a free-form "input" object (additionalProperties: {}), so the enumerated fields (name, content, entities_id, users_id_requester) provide real semantic value that the schema does not. It falls short of a full field list or required-field indication, hence not a 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Create a new problem"), which is unambiguous on its own. However, it offers no differentiation from the many sibling create tools (glpi_create_ticket, glpi_create_change, glpi_create_asset), leaving the agent to infer from the name alone when a problem is the right ITIL object.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisite information, and no mention of alternatives such as creating a ticket or change. Nothing tells the agent under what circumstances a problem record should be created rather than another ITIL type.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_create_reservationCreate reservationAInspect
Book a reservable item. begin/end use 'YYYY-MM-DD HH:MM:SS'. reservationitems_id comes from glpi_list_reservation_items (not the asset ID).
| Name | Required | Description | Default |
|---|---|---|---|
| end | Yes | End, 'YYYY-MM-DD HH:MM:SS' | |
| begin | Yes | Start, 'YYYY-MM-DD HH:MM:SS' | |
| comment | No | Free-text note stored on the reservation (optional) | |
| users_id | No | User the booking is for | |
| reservationitems_id | Yes | ReservationItem ID (see glpi_list_reservation_items) |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| replayed | No | True when an identical recent create was returned instead of repeated |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=false and destructiveHint=false, so the mutation profile is covered structurally. The description adds the trap that reservationitems_id is not the asset ID, but says nothing about permission needs, how booking conflicts are handled, or whether a failed window is rejected.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the action, then the two highest-risk parameter facts. Tight and readable, though the date-format sentence partially duplicates the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values need not be described, and the description covers the two most error-prone inputs. It leaves users_id semantics and any conflict behavior unstated, but that is a modest gap for a 5-param tool with full schema coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and both begin/end already carry the 'YYYY-MM-DD HH:MM:SS' format in their schema descriptions, so the format sentence largely restates structured data. The genuinely additive piece is '(not the asset ID)', which prevents a common misuse of reservationitems_id; baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
'Book a reservable item' gives a specific verb (book/create) and resource (reservable item), clearly distinct from the get/list reservation siblings. It does not explicitly distinguish itself from glpi_update_reservation, but the create vs. modify intent is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It points the agent to glpi_list_reservation_items as the source of the required ID, which is a useful workflow hint. However, it never states when to use this versus glpi_update_reservation, nor any prerequisites (permissions, conflict-free window) beyond the ID lookup.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_create_rule_actionCreate rule actionBInspect
Create a new action for a rule. Fields: rules_id, action_type (assign/regex_result/append_regex_result), field, value.
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | Action fields (rules_id, action_type, field, value) |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| replayed | No | True when an identical recent create was returned instead of repeated |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=false and destructiveHint=false, so the write semantics are covered structurally. The description adds the action_type vocabulary (assign/regex_result/append_regex_result), which is genuinely useful behavior context since the schema leaves the nested object untyped, but it says nothing about permissions required or side effects on existing rules.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the operation and followed by the field list; nothing is padded. It is terse to the point that some items (meaning of 'field', target rule type) go unaddressed, but there is no wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and annotations cover the mutation profile. However, for a write tool in a family with both generic rules and rule_ticket variants, the description never clarifies which rule set rules_id refers to or what auth/scope is needed, leaving a meaningful ambiguity for an agent choosing among siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only top-level parameter is a free-form 'input' object whose nested keys are the real payload. The description enumerates those keys (rules_id, action_type, field, value) and supplies the only enum-like vocabulary for action_type, which the schema does not provide. This compensates well for the schema's untyped additionalProperties, though the meaning of 'field' and 'value' is left unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Create a new action for a rule') and enumerates the fields involved, so the agent knows exactly what object is being created. It does not, however, distinguish this generic rule-action creator from the closely named siblings glpi_create_rule_criteria, glpi_create_rule_ticket or glpi_update_rule_action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use or when-not-to-use guidance, no prerequisites, and no pointer to alternatives such as glpi_create_rule_criteria or glpi_update_rule_action. The agent must infer that this is the write-side companion to glpi_list_rule_actions purely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_create_rule_criteriaCreate rule criteriaBInspect
Create a new criteria for a rule. Fields: rules_id, criteria (field name), condition, pattern.
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | Criteria fields (rules_id, criteria, condition, pattern) |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| replayed | No | True when an identical recent create was returned instead of repeated |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=false, destructiveHint=false, and openWorldHint=true, covering the safety profile. The description adds no behavioral context beyond that — no mention of effects on existing rule evaluation, required permissions, or creation semantics. With annotations carrying the load, a 3 is the appropriate minimum-viable score.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences with the core action front-loaded and the field list appended. No filler, though the field enumeration partially duplicates the schema description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a create tool whose safety profile is covered by annotations and which has an output schema, the description is minimally adequate. It nonetheless leaves gaps an agent would want: valid condition operators/values, and how criteria field names map to GLPI search options.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema's top-level 'input' object has additionalProperties={}, so inner fields are effectively undocumented by structure; the description's list of fields (rules_id, criteria, condition, pattern) is the main source of meaning. It still omits the accepted values for 'condition' or where 'criteria' field names come from (search options), so it does not fully compensate for the free-form nested object.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Create a new criteria for a rule'), which is inherently distinguishable from siblings like glpi_create_rule_action or glpi_create_rule_ticket. However, it never names or contrasts those siblings, and 'criteria' vs 'action' vs 'rule' selection is left to the agent's inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no when-to-use guidance, no prerequisites (e.g., that the parent rule must already exist), and no mention of alternative tools such as glpi_create_rule_action or glpi_update_rule_action. Usage is only implicit in the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_create_rule_ticketCreate ticket ruleBInspect
Create a new ticket business rule. Fields: name, match (AND/OR), is_active, sub_type, ranking, etc.
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | Rule fields |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| replayed | No | True when an identical recent create was returned instead of repeated |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=false, openWorldHint=true and destructiveHint=false, so the safety profile is covered structurally. The description adds nothing behavioral beyond that — no note on permissions required, no statement of what happens to existing or triggering rules, and no indication that the created rule takes effect on new tickets.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with the action front-loaded and no filler. The truncated field list ending in 'etc.' is the one element that wastes rather than earns space, since it signals incompleteness without resolving it.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need not be explained. However, for a rule-creation tool whose entire input is an opaque free-form object, the definition should at minimum outline required fields, the AND/OR semantics of 'match', and the relationship to the criteria/action creation tools. It is minimally viable but leaves real gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema only exposes a free-form 'input' object with additionalProperties={} and the description 'Rule fields', so it provides almost no real field documentation. The description compensates by naming concrete fields — name, match (AND/OR), is_active, sub_type, ranking — which is genuinely new information. It loses a point for trailing off into 'etc.' and leaving required vs optional fields unspecified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: 'Create a new ticket business rule', which is distinguishable from glpi_create_rule_action and glpi_create_rule_criteria (sub-resources of a rule) and from glpi_get_rule_ticket / glpi_list_rules. It does not, however, explicitly name those siblings or clarify how the ticket rule relates to its criteria/actions, so it stops short of full differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites (e.g., admin rights), and no mention of alternatives or the workflow of attaching criteria/actions afterward. The agent must infer the usage context entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_create_ticketCreate ticketBInspect
Create a new ticket. Common fields: name (title), content (description), entities_id, users_id_requester, itilcategories_id, type (1=Incident, 2=Request), urgency, impact, priority.
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | Ticket fields |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| replayed | No | True when an identical recent create was returned instead of repeated |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=false, openWorldHint=true, and destructiveHint=false, so the safety profile is covered. The description adds nothing beyond that – no note on the risk of duplicate tickets given non-idempotency, no permission/auth requirements, and no side effects such as notifications to requesters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two front-loaded sentences with no filler; the purpose comes first and the field list follows. The list is dense but each item is useful given the empty schema, so little could be cut without losing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values are not the description's burden. However, for a creation tool with a completely open input object, the description doesn't state minimum required fields or the duplicate-creation caveat implied by idempotentHint=false, leaving gaps an agent would need filled.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema is effectively unconstrained (a single free-form object with additionalProperties: {}), so the description is the only real source of field semantics and it delivers: it maps common field names to meaning and decodes the type enum (1=Incident, 2=Request). It falls short of stating which fields are required or the full field set.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Create a new ticket') and backs it with a concrete field list, which cleanly separates it from glpi_update_ticket, glpi_get_ticket, and glpi_list_tickets. It does not, however, explicitly name a sibling or scope boundary (e.g., ticket vs change vs problem).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance and no alternatives named. Given siblings like glpi_create_change and glpi_create_problem exist, an agent gets no signal about when a ticket is the right artifact versus those. Usage is only implied by the verb.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_create_ticket_validationCreate ticket validationBInspect
Create an approval request assigning a validator (users_id_validate).
| Name | Required | Description | Default |
|---|---|---|---|
| ticketId | Yes | Item ID | |
| users_id_validate | Yes | Approver user ID | |
| comment_submission | No | Comment for the approval request |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| replayed | No | True when an identical recent create was returned instead of repeated |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, idempotentHint=false and openWorldHint=true, so the mutation/non-destructive/non-idempotent profile is covered. The description adds the useful framing that this creates an approval request tied to a validator, but omits side effects such as notifications to the approver or duplicate-validation behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the parenthetical naming users_id_validate is slightly redundant with the schema but harmless. Efficient overall.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and annotations carry the safety profile. However, for a mutation tool with several close siblings, the description lacks the routing and prerequisite context an agent needs to select it confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters (ticketId, users_id_validate, comment_submission) are already documented in the schema. The description only echoes users_id_validate and adds no format, constraint, or semantic detail beyond the schema, matching the baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Create') and clarifies the domain meaning of a 'ticket validation' as an 'approval request assigning a validator', which is more than a restatement of the name. It does not, however, distinguish this tool from close siblings like glpi_update_ticket_validation or glpi_create_ticket.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does 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 such as glpi_update_ticket_validation or glpi_list_ticket_validations, nor any stated prerequisite (e.g. ticket must exist, validator must be a valid user). Usage must be inferred entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_create_userCreate userBInspect
Create a new GLPI user. Required: name (login). Common: realname, firstname, password, email (via _useremails array).
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | User fields |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| replayed | No | True when an identical recent create was returned instead of repeated |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, idempotentHint=false, openWorldHint=true. The description adds nothing beyond the user fields, but with annotations covering the safety profile and the schema documenting the structure, the description doesn't contradict and doesn't need to repeat. It adds marginal value by naming common fields, but doesn't mention permissions, duplicate-login behavior, or password policy.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, front-loaded with the action and required field. Zero waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is a create mutation with openWorld and no idempotency. The description names common fields but omits duplicate-user behavior, required permissions, and validation semantics. With annotations covering safety and an output schema present, the description is adequate but leaves behavioral gaps for an agent creating a real user.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with the nested input object described as 'User fields'. The description adds field names (name, realname, firstname, password, email via _useremails) which is useful context beyond the opaque schema, but the schema itself is flexible (additionalProperties: {}) so the description is doing important work naming the key fields. However, it doesn't explain the _useremails array structure or required constraints beyond 'name (login)'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Create) and resource (GLPI user), clearly distinguishing it from glpi_update_user and glpi_get_user siblings. Lacks explicit differentiation phrasing but the operation is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this vs glpi_update_user or glpi_search_user_by_email, no prerequisites, no mention of what happens if the login already exists. The agent is left to infer usage context entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_create_webhookCreate webhookBInspect
Create a webhook. Common fields: name, url, itemtype (e.g. Ticket), event (new, update, delete), is_active, payload, http_method, use_cra_challenge.
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | Webhook fields |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| replayed | No | True when an identical recent create was returned instead of repeated |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=false, destructiveHint=false, and openWorldHint=true, so the write/open-world nature is covered. The description adds the field vocabulary of a webhook but does not disclose auth requirements, side effects, or whether creation triggers delivery attempts beyond what the annotations imply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler, with the core action front-loaded and the field list kept to a compact inline enumeration. Every clause carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described, and annotations cover the safety profile. The gap is that an agent is not told which fields are required to create a valid webhook, given the open-ended input object, leaving a meaningful operational unknown.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The declared schema is an opaque object (additionalProperties: {}, only 'Webhook fields'), so the description's enumeration of name, url, itemtype, event, is_active, payload, http_method, use_cra_challenge is the only real field documentation, with useful examples for itemtype and event. However it is framed as 'common fields' with no required/optional distinction or formats, so it compensates only partially. Baseline 3 given the nominal 100% coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (create) and resource (webhook), which cleanly separates it from siblings like glpi_update_webhook, glpi_get_webhook, and glpi_set_webhook_active. It does not explicitly name those siblings, but the name+title make the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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, no mention of prerequisites, permissions, or when not to create a webhook. It simply restates the action, leaving all routing decisions to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_get_assetGet assetARead-onlyIdempotentInspect
Retrieve a single asset by type and ID. For hardware detail use glpi_get_asset_details.
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Field set: 'essential' (default, trims internal GLPI fields) or 'all' | |
| format | No | Output format: 'json' (default) or 'markdown' (a table for listings, key/value lines for one item; returned in both the text and the structured result) | |
| assetId | Yes | Item ID | |
| asset_type | Yes | Asset itemtype, e.g. Computer, Monitor, Printer, NetworkEquipment, Software | |
| expand_dropdowns | No | Expand dropdown IDs to names |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| note | No | Pagination hint: how to fetch the next page |
| count | No | Items in this page |
| format | No | 'markdown' when data holds the markdown rendering |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is fully covered by structured data. The description's only added behavioral content is the scope statement that this returns exactly one asset, which is minor; it says nothing about permissions, missing-ID behavior, or output shape (though an output schema exists).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with the core purpose front-loaded and the disambiguation trailing. No filler, no repetition of the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With rich annotations, a fully described five-parameter schema and an output schema present, the description only needs to establish purpose and routing, which it does. It is complete for correct invocation, though a note on asset_type/assetId pairing errors or when to use glpi_list_assets would close the remaining gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and three of five parameters have enums, so the schema fully documents asset_type, assetId, fields, format and expand_dropdowns. The description adds no syntax or format guidance beyond what the schema already provides, making the baseline 3 correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Retrieve a single asset by type and ID') and explicitly names the sibling it is not (glpi_get_asset_details for hardware detail). An agent can distinguish it from glpi_get_asset_details and glpi_list_assets without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes the agent to glpi_get_asset_details when hardware detail is needed, which is a real disambiguation against a very similarly named sibling. It does not, however, mention when to prefer glpi_list_assets for multiple items or state any prerequisites/permissions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_get_asset_detailsGet asset detailsARead-onlyIdempotentInspect
Get one GLPI asset (computer, monitor, printer, network equipment, phone, peripheral...) by type and ID together with its hardware details in a single call: operating system, processors, memory and disks by default, with names instead of IDs. Installed software and network ports are large on inventoried hosts, so they are returned only when asked for with sections ['softwares'] or ['networkports']. For the plain asset record use glpi_get_asset.
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Field set: 'essential' (default, trims internal GLPI fields) or 'all' | |
| format | No | Output format: 'json' (default) or 'markdown' (a table for listings, key/value lines for one item; returned in both the text and the structured result) | |
| assetId | Yes | Item ID | |
| sections | No | Sections to expand (default: devices, disks, softwares, networkports) | |
| asset_type | Yes | Asset itemtype, e.g. Computer, Monitor, Printer, NetworkEquipment, Software | |
| max_items_per_section | No | Rows kept per expanded section (default 25); the rest is reported as a count |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| note | No | Pagination hint: how to fetch the next page |
| count | No | Items in this page |
| format | No | 'markdown' when data holds the markdown rendering |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent non-destructive behavior. The description adds meaningful context beyond them: hardware defaults, names-instead-of-IDs, and that softwares/networkports are large on inventoried hosts and only returned when requested. It stops short of describing pagination/truncation behavior beyond the schema's max_items_per_section.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core purpose, then adds the default fields, the large-section caveat, and the sibling alternative in tight, waste-free prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, and annotations cover safety, so the description needn't explain returns. It covers the key behavioral caveats (default vs opt-in sections) needed to call correctly; minor gap is not restating truncation reporting, though the schema's max_items_per_section covers it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds value by clarifying that sections defaults to hardware fields and that softwares/networkports must be explicitly listed, which refines the schema's flat section list. It leaves fields/format/max_items_per_section to the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get one GLPI asset ... together with its hardware details in a single call') and explicitly delineates the asset types and returned hardware fields. It also distinguishes itself from the sibling glpi_get_asset by naming it as the plain-record alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Tells the agent to use glpi_get_asset for the plain asset record and this tool for hardware details, and explains that softwares/networkports must be requested via sections. It does not cover when asset_type choices beyond the enumerated ones apply, but the routing guidance is explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_get_changeGet changeARead-onlyIdempotentInspect
Retrieve a change by ID, with names beside the IDs and status/priority labels in the GLPI user's language.
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Field set: 'essential' (default, trims internal GLPI fields) or 'all' | |
| format | No | Output format: 'json' (default) or 'markdown' (a table for listings, key/value lines for one item; returned in both the text and the structured result) | |
| changeId | Yes | Item ID | |
| expand_dropdowns | No | Expand dropdown IDs to names |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| note | No | Pagination hint: how to fetch the next page |
| count | No | Items in this page |
| format | No | 'markdown' when data holds the markdown rendering |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive, openWorld), so the bar is lower. The description still adds genuine output behavior the annotations do not: dropdown IDs are resolved to names and status/priority values are localized to the GLPI user's language.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the core action comes first and the output-shaping detail follows. Nothing here is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the description is not obligated to explain return values, and it correctly focuses on scope and output shaping instead. For a simple four-parameter read tool this is nearly sufficient, with only the when-to-use guidance left unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters are already documented in the schema and a baseline of 3 applies. The description echoes changeId ('by ID') and hints at name expansion, which maps loosely to expand_dropdowns and fields, but adds no new syntax or defaults.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb (Retrieve) and resource (a change), and the 'by ID' qualifier separates it from glpi_list_changes without needing a schema read. It never names the sibling alternatives explicitly, so it falls short of the top band.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: fetching a single change by its identifier as opposed to listing changes. There is no statement about when to prefer this over glpi_list_changes or glpi_search, and no prerequisites such as read permissions on the item.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_get_documentGet documentCRead-onlyIdempotentInspect
Retrieve a document by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Field set: 'essential' (default, trims internal GLPI fields) or 'all' | |
| format | No | Output format: 'json' (default) or 'markdown' (a table for listings, key/value lines for one item; returned in both the text and the structured result) | |
| documentId | Yes | Item ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| note | No | Pagination hint: how to fetch the next page |
| count | No | Items in this page |
| format | No | 'markdown' when data holds the markdown rendering |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is fully covered structurally. The description adds nothing beyond that — no note on what a document contains, whether access is permission-gated, or any rate/scope caveat. With annotations carrying the load, a low score reflects the absence of any supplementary behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with no filler, and the key identifier ('by ID') is front-loaded. It is efficient, though the brevity edges toward under-specification rather than true concision.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need not be described, and annotations cover the safety profile, making the minimal description roughly viable for a simple by-ID lookup. Still, nothing tells the agent how this differs from related document tools or what access assumptions apply.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and two of the three parameters are enums with inline explanations, so the schema fully documents inputs. The description contributes no additional meaning about documentId, fields, or format, which is exactly the baseline-3 case.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Retrieve a document by ID'), which is unambiguous as an operation. However, it does not differentiate from close siblings such as glpi_get_document_item (the link between a document and an item) or glpi_list_documents, leaving the agent to infer the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance and no mention of alternatives, even though glpi_list_documents and glpi_get_document_item are adjacent candidates an agent could confuse with this one. The description simply restates the operation without routing the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_get_document_itemGet document-item linkBRead-onlyIdempotentInspect
Retrieve a Document_Item link by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Field set: 'essential' (default, trims internal GLPI fields) or 'all' | |
| format | No | Output format: 'json' (default) or 'markdown' (a table for listings, key/value lines for one item; returned in both the text and the structured result) | |
| documentItemId | Yes | Item ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| note | No | Pagination hint: how to fetch the next page |
| count | No | Items in this page |
| format | No | 'markdown' when data holds the markdown rendering |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true and destructiveHint=false, so the safety profile is fully covered by structured data. The description adds nothing beyond that — no note on permissions, result scope, or what a 'link' record contains — so it earns no credit for behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler or redundancy. It is efficient, though the economy comes at the cost of the guidance the tool lacks rather than through disciplined editing of richer content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (single required ID), annotations carry the full safety profile, the schema is 100% documented, and an output schema exists so return values need not be described. The only real gap is lack of sibling routing, which is minor at this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both enums (fields, format) and documentItemId fully documented in the schema itself. The description adds no meaning beyond the schema, so the baseline 3 applies rather than a penalty.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ("Retrieve a Document_Item link") plus the keying parameter ("by ID"), so the operation is unambiguous. However, it does nothing to distinguish this "link" entity from siblings like glpi_get_document or glpi_list_document_items, leaving the agent to infer what a Document_Item link is.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no reference to any alternative such as glpi_list_document_items or glpi_get_document. The agent is left to infer selection context 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.
glpi_get_entityGet entityCRead-onlyIdempotentInspect
Retrieve an entity by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Field set: 'essential' (default, trims internal GLPI fields) or 'all' | |
| format | No | Output format: 'json' (default) or 'markdown' (a table for listings, key/value lines for one item; returned in both the text and the structured result) | |
| entityId | Yes | Entity ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| note | No | Pagination hint: how to fetch the next page |
| count | No | Items in this page |
| format | No | 'markdown' when data holds the markdown rendering |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true and destructiveHint=false, so the safety profile is fully covered. The description adds nothing beyond the title — no note on GLPI entity hierarchy, permission/visibility scoping (entities are access-controlled in GLPI), or what 'retrieve' returns at a high level. With the annotation bar already met, the description contributes no extra behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler or repetition. It is efficient, though its brevity is also the source of the gaps elsewhere rather than a deliberate trade-off.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, so return-value explanation is not required, and annotations cover the safety profile. What is missing is the surrounding context an agent needs to choose this tool — when an entity ID is warranted over listing or over glpi_get_my_entities — leaving the definition merely adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and both optional enums ('fields', 'format') are documented in-schema with their defaults and semantics. The description adds nothing about parameters, so it cannot exceed the baseline; a 3 is the correct floor when the schema fully carries the parameter burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Retrieve an entity by ID'), which cleanly separates it from the listing sibling glpi_list_entities. However, it never names or contrasts against the similar one-off readers glpi_get_my_entities or glpi_get_asset, so the agent gets no explicit sibling differentiation beyond the ID hint.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool versus glpi_list_entities (browse/filter) or glpi_get_my_entities (current user scope). No prerequisites, no note that entityId must be known in advance, no exclusions. The agent must infer usage entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_get_full_sessionGet full session infoARead-onlyIdempotentInspect
Get the full session info including active entity, profile, and user details. Useful for debugging and verifying the current session context.
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Field set: 'essential' (default, trims internal GLPI fields) or 'all' | |
| format | No | Output format: 'json' (default) or 'markdown' (a table for listings, key/value lines for one item; returned in both the text and the structured result) |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| note | No | Pagination hint: how to fetch the next page |
| count | No | Items in this page |
| format | No | 'markdown' when data holds the markdown rendering |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is fully covered without description help. The description adds only scope-of-returned-data (entity/profile/user), and says nothing about auth requirements or what happens if no session exists. Adequate, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences that front-load the what before the why, with no filler. The second sentence is arguably redundant given the tool name, but it carries the only usage signal present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value structure need not be explained, and the description still summarizes the payload's content (entity, profile, user). For a zero-required-parameter read-only tool with rich annotations, an agent has everything needed to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with two enum-constrained, optional parameters ('fields' and 'format'), both fully documented in the schema. The description adds no parameter meaning beyond it, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get the full session info') and enumerates what the payload contains: active entity, profile, and user details. This makes it distinguishable in spirit from glpi_get_my_entities and glpi_get_my_profiles, though it never names those siblings as alternatives or clarifies the overlap.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Useful for debugging and verifying the current session context' gives a genuine, concrete use case rather than leaving usage implied. It stops short of exclusions or alternatives ('use X instead when...'), so it lands at clear-context-but-no-routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_get_groupGet groupCRead-onlyIdempotentInspect
Retrieve a group by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Field set: 'essential' (default, trims internal GLPI fields) or 'all' | |
| format | No | Output format: 'json' (default) or 'markdown' (a table for listings, key/value lines for one item; returned in both the text and the structured result) | |
| groupId | Yes | Item ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| note | No | Pagination hint: how to fetch the next page |
| count | No | Items in this page |
| format | No | 'markdown' when data holds the markdown rendering |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is fully covered. The description adds nothing on top of that – no note about what a missing group returns, permission needs, or the effect of the fields/format options.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler, which is proportionate for a simple one-ID lookup. It is arguably under-specified rather than padded, but from a conciseness standpoint nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a 100%-documented schema, an output schema, and rich read-only annotations, the essentials for correct invocation are externally covered. The description contributes no extra completeness — no sibling routing and no mention of the fields/format trade-offs — so it is minimum viable for an otherwise simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and 'fields' and 'format' are each documented with defaults and enum meanings in the schema itself, so the baseline of 3 applies. 'Retrieve a group by ID' adds no syntax or semantic detail beyond the schema's own 'Item ID' description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Retrieve) and resource (a group) scoped by ID, so an agent immediately knows this is a single-item fetch. It does not differentiate from the sibling glpi_list_groups (collection listing) or explain how it relates to the other glpi_get_* single-item tools, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance at all: no condition for choosing this over glpi_list_groups, no note that it is the read counterpart to group creation/update tools. The only implied hint is 'by ID', leaving routing entirely to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_get_itil_categoryGet ITIL categoryCRead-onlyIdempotentInspect
Retrieve an ITIL category by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Field set: 'essential' (default, trims internal GLPI fields) or 'all' | |
| format | No | Output format: 'json' (default) or 'markdown' (a table for listings, key/value lines for one item; returned in both the text and the structured result) | |
| categoryId | Yes | Item ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| note | No | Pagination hint: how to fetch the next page |
| count | No | Items in this page |
| format | No | 'markdown' when data holds the markdown rendering |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is covered. The description adds nothing beyond that — no note on error behavior for a missing ID, no mention of permission requirements, and no return-shape context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single six-word sentence with the verb front-loaded and zero waste. It is efficient, though bordering on under-specification rather than genuine conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is a simple single-item getter with a full output schema and annotations, so return values and safety need not be restated. However, with ~100 sibling tools, the missing routing signal between get and list leaves a real gap for correct tool selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema documents fields, format, and the ID (including its accepted integer/string forms). The description's 'by ID' adds no meaning beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Retrieve) and resource (ITIL category) scoped to a single item by ID, which implicitly separates it from the list variant. It does not name glpi_list_itil_categories as the sibling alternative, so differentiation is left partly to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this versus glpi_list_itil_categories or glpi_search. The ID-based phrasing implies 'use when you already have the identifier,' but this is never stated, and no prerequisites are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_get_itil_followup_templateGet followup templateCRead-onlyIdempotentInspect
Retrieve a followup template by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Field set: 'essential' (default, trims internal GLPI fields) or 'all' | |
| format | No | Output format: 'json' (default) or 'markdown' (a table for listings, key/value lines for one item; returned in both the text and the structured result) | |
| templateId | Yes | Item ID | |
| expand_dropdowns | No | Expand dropdown IDs to names |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| note | No | Pagination hint: how to fetch the next page |
| count | No | Items in this page |
| format | No | 'markdown' when data holds the markdown rendering |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is fully covered elsewhere. The description adds no behavioral context of its own (no note on what happens with an invalid/unknown ID, permissions, or output shape), so it contributes essentially nothing beyond structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with no filler, front-loading the operation and the key identifier. It is efficient, though its brevity is also why it leaves gaps the other dimensions penalize.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and annotations plus 100% schema coverage handle safety and parameters. What remains missing is routing context against the list/update/create siblings, leaving the definition minimally adequate rather than complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with clear enum descriptions for 'fields' and 'format' and a documented 'expand_dropdowns' flag, so the schema carries parameter semantics. The description mentions only the ID and adds no meaning beyond it, which fits the baseline 3 when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear verb ('Retrieve'), resource ('followup template'), and access method ('by ID'), which an agent can act on directly. It does not distinguish itself from glpi_list_itil_followup_templates, so the agent must infer that this is the single-item lookup versus the listing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance and no mention of the sibling alternatives (glpi_list_itil_followup_templates, glpi_update_itil_followup_template, glpi_create_itil_followup_template). The 'by ID' phrasing implies the precondition of needing an ID, but that is the only usage cue.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_get_knowbase_categoryGet knowledge base categoryBRead-onlyIdempotentInspect
Retrieve a knowledge base category by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Field set: 'essential' (default, trims internal GLPI fields) or 'all' | |
| format | No | Output format: 'json' (default) or 'markdown' (a table for listings, key/value lines for one item; returned in both the text and the structured result) | |
| categoryId | Yes | Item ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| note | No | Pagination hint: how to fetch the next page |
| count | No | Items in this page |
| format | No | 'markdown' when data holds the markdown rendering |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is fully covered. The description adds no behavioral context of its own — no error behavior for a missing ID, no note on what a non-existent category returns — so it contributes nothing beyond the structured data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with the resource and lookup key first and zero filler. Nothing could be removed without losing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-by-ID tool with full annotations, a fully described parameter schema and an output schema handling return values, the description is close to sufficient. The only shortfall is that it does not mention the fields/format options or disambiguate from the sibling list and item tools, but the agent has enough to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so categoryId, the 'essential'/'all' fields enum and the json/markdown format enum are all documented in the schema itself. The description mentions none of them and adds no syntax or format meaning beyond what is already there, making 3 the correct baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (retrieve) and resource (knowledge base category) plus the lookup key (by ID), which cleanly separates it from glpi_list_knowbase_categories and glpi_get_knowbase_item. It stops short of naming those siblings explicitly, so the differentiation must be inferred from the tool names.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use or when-not-to-use guidance. 'By ID' weakly implies the caller must already know the identifier, but nothing tells the agent to call the list tool first or how this differs from glpi_get_knowbase_item.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_get_knowbase_itemGet knowledge base itemCRead-onlyIdempotentInspect
Retrieve a knowledge base article by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Field set: 'essential' (default, trims internal GLPI fields) or 'all' | |
| format | No | Output format: 'json' (default) or 'markdown' (a table for listings, key/value lines for one item; returned in both the text and the structured result) | |
| knowbaseId | Yes | Item ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| note | No | Pagination hint: how to fetch the next page |
| count | No | Items in this page |
| format | No | 'markdown' when data holds the markdown rendering |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is fully covered without the description. The description adds nothing beyond that — no note on authentication, error behavior for a missing ID, or whether the item is fetched from an external/open corpus.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero padding. It is efficient, though its brevity is close to under-specification rather than deliberate conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists and the input schema fully documents all three parameters, so the description need not cover return values. For a simple get-by-ID tool this is minimally adequate, but it offers no behavioral context to help the agent call it correctly in ambiguous situations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema documents knowbaseId plus the fields/format enums in detail, so the baseline of 3 applies. The description adds no semantics beyond 'by ID'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Retrieve') and resource ('knowledge base article') scoped by ID, which clearly separates it from glpi_list_knowbase_items and glpi_update_knowbase_item. It does not explicitly name a sibling, so routing relies on the agent inferring the singular/by-ID distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this versus glpi_list_knowbase_items, glpi_search, or glpi_get_knowbase_category. The only implicit signal is 'by ID', which the agent must interpret on its own.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_get_locationGet locationARead-onlyIdempotentInspect
Retrieve a location by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Field set: 'essential' (default, trims internal GLPI fields) or 'all' | |
| format | No | Output format: 'json' (default) or 'markdown' (a table for listings, key/value lines for one item; returned in both the text and the structured result) | |
| locationId | Yes | Item ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| note | No | Pagination hint: how to fetch the next page |
| count | No | Items in this page |
| format | No | 'markdown' when data holds the markdown rendering |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description adds little beyond the operation itself — no mention of auth requirements, error behavior for missing IDs, or output characteristics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with zero waste. Nothing redundant, and the operation is stated up front.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists and annotations cover the safety profile, so the description needn't explain return values. Still, for a getter tool the description could have noted missing-ID behavior or the essential-vs-all field tradeoff; as-is it is minimally adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters (locationId, fields, format) are already documented in the schema. The description only implies the ID parameter and adds no syntax or enum guidance beyond what the schema provides; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Retrieve a location by ID'), which is clear enough to distinguish a single-item getter from the listing sibling glpi_list_locations. It doesn't explicitly name that sibling, so it falls short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'by ID' phrasing implies it is for single-item lookup, which hints at when to use it, but there is no explicit statement about when to use this versus glpi_list_locations or other alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_get_my_entitiesGet my entitiesBRead-onlyIdempotentInspect
Get the list of entities available to the current user.
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Field set: 'essential' (default, trims internal GLPI fields) or 'all' | |
| format | No | Output format: 'json' (default) or 'markdown' (a table for listings, key/value lines for one item; returned in both the text and the structured result) |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| note | No | Pagination hint: how to fetch the next page |
| count | No | Items in this page |
| format | No | 'markdown' when data holds the markdown rendering |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is fully covered by structured data. The description adds only the access-scoping notion ('available to the current user'), which is genuinely useful, but nothing about return shape or permission behavior beyond that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence, front-loaded with the verb and resource, with the scoping qualifier in the right place. No filler, no repetition of the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple zero-required-param read tool with an output schema and rich annotations, the description covers the essential purpose and scope. It would be complete with one line routing the agent between this, glpi_list_entities, and glpi_change_active_entities.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with both optional params (fields, format) fully described including enum values, so the schema does the heavy lifting. The description adds nothing about the parameters, which is the expected baseline at full coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Get') and resource ('entities') with the scope qualifier 'available to the current user', which contrasts with the sibling glpi_list_entities (all entities) and glpi_get_entity (single entity). Clear, though it never names those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use guidance, prerequisites, or alternatives. An agent must infer that this is the scoped-down variant of glpi_list_entities and that glpi_change_active_entities is the related write operation, with no help from the text.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_get_my_profilesGet my profilesARead-onlyIdempotentInspect
Get the list of profiles available to the current user.
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Field set: 'essential' (default, trims internal GLPI fields) or 'all' | |
| format | No | Output format: 'json' (default) or 'markdown' (a table for listings, key/value lines for one item; returned in both the text and the structured result) |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| note | No | Pagination hint: how to fetch the next page |
| count | No | Items in this page |
| format | No | 'markdown' when data holds the markdown rendering |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is fully covered by structured data. The description adds the useful current-user scoping but says nothing about auth prerequisites or what the profile list contains. With annotations carrying the operational profile, a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero waste. It is arguably too terse, but every word earns its place and the key scope qualifier is not buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A simple read tool with rich annotations, 100% parameter documentation and an output schema, so return values need not be explained in prose. The only remaining gap is the absence of any when-to-use routing against similar session/profile tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters (fields, format) are fully documented with enum semantics, so the schema does the heavy lifting. The description adds no further detail on the fields/format behavior, which is fine at baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get the list of profiles') and scopes it to 'the current user', which distinguishes it from the many glpi_list_users / glpi_get_user siblings that operate on arbitrary users. It does not explicitly name an alternative, but the scope is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by the phrase 'available to the current user'; there is no statement of when to call this versus glpi_get_my_entities, glpi_get_full_session, or glpi_list_users. The context is clear enough for a simple read tool, but no exclusions or alternatives are offered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_get_problemGet problemARead-onlyIdempotentInspect
Retrieve a problem by ID, with names beside the IDs and status/priority labels in the GLPI user's language.
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Field set: 'essential' (default, trims internal GLPI fields) or 'all' | |
| format | No | Output format: 'json' (default) or 'markdown' (a table for listings, key/value lines for one item; returned in both the text and the structured result) | |
| problemId | Yes | Item ID | |
| expand_dropdowns | No | Expand dropdown IDs to names |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| note | No | Pagination hint: how to fetch the next page |
| count | No | Items in this page |
| format | No | 'markdown' when data holds the markdown rendering |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, openWorld, so safety is covered. The description adds genuine context about output behavior (dropdown names rendered beside IDs, localized labels in the GLPI user's language), but does not address the interaction with the expand_dropdowns/fields options or error behavior for a missing ID.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the resource, access key, and output enrichment are all stated up front.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists and annotations carry the safety profile, so return value and permission details are not needed in prose. For a read-only single-item fetch, the description supplies everything required to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with two enum parameters fully documented in the schema, so the baseline is 3. The description adds no parameter-level detail (e.g., how 'fields' interacts with name expansion or what 'format' affects for a single item) beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Retrieve a problem by ID') and describes the output enrichment (names beside IDs, localized status/priority labels). It implicitly distinguishes itself from glpi_list_problems by the 'by ID' framing, but never names the list/search siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'by ID' phrasing implies this is the single-item fetch versus the list/search alternatives, so usage is inferable. However, there is no explicit when-to-use statement, no mention of prerequisites, and no routing to glpi_list_problems or glpi_search for other access patterns.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_get_reservationGet reservationBRead-onlyIdempotentInspect
Retrieve a reservation by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Field set: 'essential' (default, trims internal GLPI fields) or 'all' | |
| format | No | Output format: 'json' (default) or 'markdown' (a table for listings, key/value lines for one item; returned in both the text and the structured result) | |
| reservationId | Yes | Item ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| note | No | Pagination hint: how to fetch the next page |
| count | No | Items in this page |
| format | No | 'markdown' when data holds the markdown rendering |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is well covered. The description adds no behavioral context beyond 'Retrieve', such as authentication requirements, pagination behavior, or anything about how missing IDs are handled.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no filler. It is appropriately sized for a simple retrieval tool and every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple, the input schema is fully documented, an output schema exists, and annotations cover the safety profile, so the description is arguably sufficient for calling it. However, it does not clarify when to use this tool versus glpi_list_reservations or how the optional fields and format parameters affect the retrieval result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema itself documents reservationId, fields, and format in detail. The description adds no parameter meaning beyond the schema, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Retrieve) and resource (reservation) with a scoping qualifier (by ID), which distinguishes it from list/create/update siblings. However, it does not explicitly name or contrast itself with glpi_list_reservations or other get tools, so it stops short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use guidance, no exclusions, and no alternative tools for retrieving reservation information. The 'by ID' qualifier implies lookup usage, but no condition or alternative selection is stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_get_rule_ticketGet ticket ruleCRead-onlyIdempotentInspect
Retrieve a ticket business rule (RuleTicket) by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Field set: 'essential' (default, trims internal GLPI fields) or 'all' | |
| format | No | Output format: 'json' (default) or 'markdown' (a table for listings, key/value lines for one item; returned in both the text and the structured result) | |
| ruleId | Yes | Item ID | |
| expand_dropdowns | No | Expand dropdown IDs to names |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| note | No | Pagination hint: how to fetch the next page |
| count | No | Items in this page |
| format | No | 'markdown' when data holds the markdown rendering |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is fully covered elsewhere. The description adds nothing beyond that – no note on whether the rule is fetched live, what happens for unknown/invalid IDs, or any permission/auth context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with the purpose and the key lookup key ('by ID') first; no filler or redundancy. It is appropriately sized, though extremely terse, leaving room that guidance could have used.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema and full annotations exist, so return values and safety need not be repeated. For a simple single-item getter the description is minimally sufficient, but it omits when-to-use routing against the rule-related siblings, which is the one thing structured fields cannot supply.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so fields, format, ruleId and expand_dropdowns are already documented in the schema with enums and patterns. The description mentions only 'by ID' and adds no semantics beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Retrieve a ticket business rule (RuleTicket) by ID'), naming the GLPI entity so an agent knows what object is returned. It does not, however, distinguish itself from nearby siblings such as glpi_list_rules or glpi_list_rule_ticket_criteria other than by implying single-item retrieval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only usage cue is 'by ID', with no statement of when to use this versus the rule-listing tools or the criteria/action siblings. There are no prerequisites, exclusions, or alternatives named, so the routing decision is left entirely to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_get_ticketGet ticketARead-onlyIdempotentInspect
Retrieve a single ticket by ID. IDs come with names beside them (recipient_name, category_name, entity_name; status_name, type_name, priority_name in the GLPI user's language). Requesters, technicians and observers are not ticket fields: list them with glpi_list_ticket_users (and groups with glpi_list_ticket_groups).
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Field set: 'essential' (default, trims internal GLPI fields) or 'all' | |
| format | No | Output format: 'json' (default) or 'markdown' (a table for listings, key/value lines for one item; returned in both the text and the structured result) | |
| ticketId | Yes | Item ID | |
| expand_dropdowns | No | Replace dropdown IDs with their names in place (loses the IDs; by default names are added beside them) |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| note | No | Pagination hint: how to fetch the next page |
| count | No | Items in this page |
| format | No | 'markdown' when data holds the markdown rendering |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, openWorld, so the safety profile is covered. The description adds real behavioral context beyond that: dropdown IDs come with names beside them, and names are rendered in the GLPI user's language, which affects how results should be read.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with the core action, followed by field-shape context and the routing note. No filler, and the most important information comes first.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the description need not explain return values, and it still closes the main gap an agent would hit: where to find ticket users and groups. Nothing needed to invoke or interpret this read-only tool is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description goes slightly further by enumerating the name fields that appear alongside IDs (recipient_name, category_name, entity_name, status_name, type_name, priority_name), which clarifies the default non-expanded behavior and the trade-off behind expand_dropdowns.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource with explicit scope: retrieve a single ticket by ID. It is immediately distinguishable from the many list/create/update ticket siblings, and the singular 'single ticket by ID' rules out the listing tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear 'when not' guidance by naming glpi_list_ticket_users and glpi_list_ticket_groups as the tools for requesters/technicians/observers/groups, which are not ticket fields. It does not explicitly contrast with glpi_list_tickets or glpi_search, but the alternative routing for related data is concrete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_get_ticket_statsGet ticket statsARead-onlyIdempotentInspect
Ticket counts per status (New, Processing, Pending, Solved, Closed) plus the total, without listing the tickets. Optional criteria narrow the scope, e.g. one entity: [{field: 80, searchtype: 'equals', value: }] (Ticket search option IDs: 80 = entity, 4 = requester, 5 = technician, 7 = category; same criteria shape as glpi_search).
| Name | Required | Description | Default |
|---|---|---|---|
| criteria | No | Optional criteria to narrow the scope: array of {field, searchtype, value, link} |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly, idempotent, destructive=false and openWorld, so the safety profile is fully declared. The description adds genuine behavioral context beyond that: the result is aggregated counts, no ticket records are returned, and criteria are optional. It does not discuss pagination or scale limits, but for an aggregate read those gaps are minor.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A compact two-part sentence that front-loads the payload (per-status counts + total) and then the optional narrowing mechanism. The embedded inline example makes the second half dense, but every element earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With one optional parameter, full schema coverage, an output schema and safety annotations, the description supplies everything needed to invoke it correctly, including the non-obvious search-option field IDs. The example criteria omits the 'link' element and the option-ID list is illustrative rather than exhaustive, which keeps it just short of fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is already 100%, yet the description still adds real meaning by supplying concrete Ticket search option IDs (80=entity, 4=requester, 5=technician, 7=category) that appear nowhere in the schema, plus a worked criteria example and a pointer to glpi_search for the same shape.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource+output shape: counts of tickets broken down by the five named statuses plus a total. The clause 'without listing the tickets' explicitly distinguishes it from the many sibling list tools (glpi_list_tickets, glpi_list_my_tickets), so an agent can tell them apart without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Makes clear this is the tool for aggregate counts rather than enumeration, and shows how to narrow scope with a concrete entity example. It also points at glpi_search for the criteria shape, which helps reuse. It stops short of naming an explicit alternative or a when-not condition beyond the implicit 'not listing' contrast.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_get_userGet userCRead-onlyIdempotentInspect
Retrieve a user by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Field set: 'essential' (default, trims internal GLPI fields) or 'all' | |
| format | No | Output format: 'json' (default) or 'markdown' (a table for listings, key/value lines for one item; returned in both the text and the structured result) | |
| userId | Yes | Item ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| note | No | Pagination hint: how to fetch the next page |
| count | No | Items in this page |
| format | No | 'markdown' when data holds the markdown rendering |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false, so the safety profile is fully covered structurally. The description adds nothing beyond that—no note on what happens when the ID does not exist, no permission context, no mention of the fields/format output knobs. A terse lookup tool needs little, but zero added context is still zero.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence with zero filler and the key lookup parameter front-loaded. It is genuinely concise rather than merely under-specified, though the terseness leaves no room for routing or behavioral content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is low complexity, has an output schema, 100% schema coverage, and rich annotations, so most structured information is already available to the agent. What remains missing is the routing signal against near-neighbor read tools and any hint about failure behavior for an unknown ID.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: userId, fields, and format are all documented in the schema, including enum meanings for 'essential'/'all' and 'json'/'markdown'. The description's 'by ID' merely restates the required userId parameter and adds no syntax or format detail beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource ('Retrieve a user by ID'), which is unambiguous about the operation and the lookup key. It does not, however, differentiate itself from the many sibling read tools such as glpi_list_users, glpi_search_user_by_email, or glpi_get_full_session, so an agent must infer the distinction from the name alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does 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 glpi_list_users (bulk retrieval) or glpi_search_user_by_email (lookup by email instead of ID). The description offers no conditions, prerequisites, or alternatives, leaving selection entirely to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_get_webhookGet webhookARead-onlyIdempotentInspect
Retrieve a webhook definition by ID, including its payload template.
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Field set: 'essential' (default, trims internal GLPI fields) or 'all' | |
| format | No | Output format: 'json' (default) or 'markdown' (a table for listings, key/value lines for one item; returned in both the text and the structured result) | |
| webhookId | Yes | Item ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| note | No | Pagination hint: how to fetch the next page |
| count | No | Items in this page |
| format | No | 'markdown' when data holds the markdown rendering |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is fully covered. The description adds only that the payload template is returned, which is modest extra context; it says nothing about errors for missing IDs or field-set behavior. Adequate 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with the action and identifier requirement front-loaded and no filler. It is efficient, though it is perhaps too minimal to be considered exemplary structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With full schema coverage, rich annotations, and an output schema that carries return-value detail, the description needs only to identify the operation and its target. It does that, plus a note on payload template inclusion, leaving little an agent needs missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with webhookId, fields and format all documented in the schema itself. The description only restates that retrieval is by ID, adding no format or field-set detail beyond what the schema provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Retrieve) and resource (webhook definition) and scopes it to a single item via 'by ID', which implicitly separates it from the listing sibling glpi_list_webhooks. It also notes the payload template is included, adding a bit of content scope. It does not explicitly name the sibling alternative, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'by ID' implies the tool is for fetching one known webhook, which hints at usage, but the description never states when to use this versus glpi_list_webhooks or glpi_list_webhook_deliveries. No prerequisites or exclusions are given, so guidance is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_list_assetsList assetsARead-onlyIdempotentInspect
List assets of a given type (Computer, Monitor, Printer, NetworkEquipment, Peripheral, Phone, Software, Rack, Enclosure), with location_name, state_name and user_name beside the IDs. Use glpi_search for filtered queries.
| Name | Required | Description | Default |
|---|---|---|---|
| range | No | Pagination range, e.g. 0-49 | |
| fields | No | Field set: 'essential' (default, trims internal GLPI fields) or 'all' | |
| format | No | Output format: 'json' (default) or 'markdown' (a table for listings, key/value lines for one item; returned in both the text and the structured result) | |
| asset_type | Yes | Asset itemtype, e.g. Computer, Monitor, Printer, NetworkEquipment, Software | |
| expand_dropdowns | No | Expand dropdown IDs to names |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| note | No | Pagination hint: how to fetch the next page |
| count | No | Items in this page |
| format | No | 'markdown' when data holds the markdown rendering |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and open-world, so the safety profile is covered. The description adds one useful behavioral detail — that location_name, state_name and user_name are returned alongside the raw IDs, which tells the agent dropdown expansion is partly automatic. It says nothing about pagination behavior or result limits, so it is adequate rather than rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the operation and scope, followed immediately by the routing hint. The long parenthetical enumeration of asset types partly duplicates the schema enum, costing a little economy without harm.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, annotations covering read-only/idempotent behavior, and full schema coverage, the description supplies what an agent needs to select and call the tool. Only the absence of pagination/result-size guidance keeps it from being fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with three enum-typed parameters, so the schema already documents range, fields, format, asset_type and expand_dropdowns thoroughly. The description repeats the asset_type enum values and implies the name-beside-ID behavior but adds no syntax or format detail beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List) and resource (assets) with the constrained scope (of a given type) and enumerates the valid asset types. It also distinguishes itself from the closest sibling by name, so an agent can tell it apart from glpi_search and glpi_get_asset without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes the agent to glpi_search for filtered queries, which is the key selection rule among the many list_* siblings. It does not say when to prefer glpi_get_asset/glpi_get_asset_details for single-item retrieval, so a small gap remains.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_list_change_followupsList change followupsARead-onlyIdempotentInspect
List followups (comments) of a change, with the author's name (user_name).
| Name | Required | Description | Default |
|---|---|---|---|
| range | No | Pagination range, e.g. 0-49 | |
| fields | No | Field set: 'essential' (default, trims internal GLPI fields) or 'all' | |
| format | No | Output format: 'json' (default) or 'markdown' (a table for listings, key/value lines for one item; returned in both the text and the structured result) | |
| changeId | Yes | Item ID | |
| expand_dropdowns | No | Expand dropdown IDs to names |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| note | No | Pagination hint: how to fetch the next page |
| count | No | Items in this page |
| format | No | 'markdown' when data holds the markdown rendering |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds that results include the author's name (user_name), a useful return-content note, but says nothing about pagination or ordering beyond what annotations/schema provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single efficient sentence with the key resource front-loaded and no wasted words. It is on the terse side but nothing is padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list operation with an output schema, full schema coverage, and rich annotations, the description is sufficient to call the tool correctly. Only minor routing/pagination guidance is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents changeId, range, fields, format, and expand_dropdowns. The description adds no parameter-level detail, which is the correct baseline when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('List') and resource ('followups (comments) of a change'), and even disambiguates the term followups as comments. It clearly scopes to changes, distinguishing it from glpi_list_followups and glpi_list_problem_followups, though it does not name those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the resource scope (you call it to see a change's followups), but there is no explicit when-to-use guidance and no routing to the generic glpi_list_followups or glpi_list_timeline alternatives. Adequate but with clear gaps.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_list_changesList changesBRead-onlyIdempotentInspect
List change management items, most recently updated first by default, with status_name and priority_name (in the GLPI user's language) and category_name.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | Sort column (default date_mod = last update) | |
| order | No | Sort direction (default desc = most recent first) | |
| range | No | Pagination range, e.g. 0-49 | |
| fields | No | Field set: 'essential' (default, trims internal GLPI fields) or 'all' | |
| format | No | Output format: 'json' (default) or 'markdown' (a table for listings, key/value lines for one item; returned in both the text and the structured result) | |
| expand_dropdowns | No | Expand dropdown IDs to names |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| note | No | Pagination hint: how to fetch the next page |
| count | No | Items in this page |
| format | No | 'markdown' when data holds the markdown rendering |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the safety profile is covered. The description usefully adds default ordering and that status/priority names are localized to the GLPI user's language, but says nothing about permissions, result volume, or pagination behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the default sort and the notable returned fields are stated immediately. Slightly dense but every clause carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and all six optional parameters are documented in-schema. For a zero-required-parameter read-only list tool this is nearly complete; only the relationship to the search/list alternatives is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with four enum-constrained parameters, so the schema carries the parameter burden. The description only echoes the default sort ('most recently updated first') and the dropdown-name expansion, adding little beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('List change management items') and adds the default ordering and the enriched name fields returned. It is clearly distinguishable from siblings listing tickets or problems by resource, though it does not name any sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It says nothing about when to use this versus glpi_search, glpi_get_change (single item), or the change follow-up/task list tools. Usage is only implied by the tool name and resource, with no conditions or exclusions offered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_list_change_tasksList change tasksBRead-onlyIdempotentInspect
List tasks for a change, with author, technician and group names.
| Name | Required | Description | Default |
|---|---|---|---|
| range | No | Pagination range, e.g. 0-49 | |
| fields | No | Field set: 'essential' (default, trims internal GLPI fields) or 'all' | |
| format | No | Output format: 'json' (default) or 'markdown' (a table for listings, key/value lines for one item; returned in both the text and the structured result) | |
| changeId | Yes | Item ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| note | No | Pagination hint: how to fetch the next page |
| count | No | Items in this page |
| format | No | 'markdown' when data holds the markdown rendering |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is fully covered elsewhere. The description adds the useful detail that results are enriched with resolved author/technician/group names, but says nothing about empty-result or pagination behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the resource comes first and the enrichment detail follows. It is efficient, though arguably thin enough that it leaves the definition under-specified rather than merely concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value explanation is unnecessary, and the annotations cover read safety. What remains missing is usage context: prerequisites for changeId, behavior on an unknown change, and how this differs from sibling list/get tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, including enum explanations for 'format' and 'fields' and the 'range' pagination hint, so the schema carries parameter semantics. The description contributes nothing beyond the schema, which is the expected baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (list) and scoped resource (tasks for a change), and names the enrichment fields returned (author, technician, group names). This implicitly separates it from glpi_list_ticket_tasks and glpi_list_problem_tasks, but it never names those siblings or explicitly contrasts scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisite (e.g. the change must exist / be visible to the caller), and no mention of alternatives such as glpi_list_change_followups or glpi_get_change. The 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.
glpi_list_document_itemsList document-item linksBRead-onlyIdempotentInspect
List links between documents and other items.
| Name | Required | Description | Default |
|---|---|---|---|
| range | No | Pagination range, e.g. 0-49 | |
| fields | No | Field set: 'essential' (default, trims internal GLPI fields) or 'all' | |
| format | No | Output format: 'json' (default) or 'markdown' (a table for listings, key/value lines for one item; returned in both the text and the structured result) |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| note | No | Pagination hint: how to fetch the next page |
| count | No | Items in this page |
| format | No | 'markdown' when data holds the markdown rendering |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the description doesn't need to repeat safety traits. It adds no further context about pagination defaults, result size, or which item types appear in links, which would be helpful beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, efficient sentence with no waste. It is front-loaded and appropriately sized for a simple list operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a junction lister with no required parameters and an output schema, the description omits what the links represent (which item types, direction, whether both document-to-item and item-to-document are included) and any pagination behavior. The output schema covers return values, but operational context is thin.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all three parameters are fully documented in the schema. The description adds nothing beyond the schema, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List) and resource (links between documents and other items), clearly identifying it as a junction/association lister. It is distinguishable from glpi_list_documents and glpi_get_document_item, though it doesn't explicitly name those siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus glpi_list_documents, glpi_get_document_item, or glpi_list_assets. The agent must infer the use case 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.
glpi_list_documentsList documentsCRead-onlyIdempotentInspect
List documents with optional pagination.
| Name | Required | Description | Default |
|---|---|---|---|
| range | No | Pagination range, e.g. 0-49 | |
| fields | No | Field set: 'essential' (default, trims internal GLPI fields) or 'all' | |
| format | No | Output format: 'json' (default) or 'markdown' (a table for listings, key/value lines for one item; returned in both the text and the structured result) |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| note | No | Pagination hint: how to fetch the next page |
| count | No | Items in this page |
| format | No | 'markdown' when data holds the markdown rendering |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive, and openWorldHint, so the safety profile is fully covered by structured data. The description contributes only 'optional pagination', which is already implied by the range parameter in the schema, adding essentially no behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short, front-loaded sentence with no filler. It is efficient, though its brevity comes at the cost of useful scope and routing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-shape explanation is not required, and the schema fully covers parameters. However, for a listing tool among many *_list_* siblings, the description omits what is being listed (documents in what scope) and how it relates to get/search, leaving it minimally adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and all three parameters (range, fields, format) are documented with enums and examples in the schema. The description's mention of 'optional pagination' merely restates the range parameter, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List documents'), which distinguishes it from the singular glpi_get_document and the related glpi_list_document_items. It does not explicitly name those siblings or state scope, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no indication of when to use this tool versus glpi_get_document, glpi_search, or glpi_list_document_items, and no prerequisites or exclusions. Usage is only implied by the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_list_entitiesList entitiesBRead-onlyIdempotentInspect
List GLPI entities (organizational units) with optional pagination.
| Name | Required | Description | Default |
|---|---|---|---|
| range | No | Pagination range, e.g. 0-49 | |
| fields | No | Field set: 'essential' (default, trims internal GLPI fields) or 'all' | |
| format | No | Output format: 'json' (default) or 'markdown' (a table for listings, key/value lines for one item; returned in both the text and the structured result) | |
| expand_dropdowns | No | Expand dropdown IDs to names |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| note | No | Pagination hint: how to fetch the next page |
| count | No | Items in this page |
| format | No | 'markdown' when data holds the markdown rendering |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, open-world access, so safety is covered. The description adds only that pagination is optional; it does not disclose default page size, ordering, or what openWorld implies (e.g., live GLPI calls). A 3 is appropriate given annotations carry most of the burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence front-loads the resource and purpose with zero filler. Nothing could be removed without losing meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With annotations covering safety and a 100%-covered schema, the description is minimally adequate. It omits how entities are scoped (root vs. active), ordering, and why a user would choose this over glpi_get_my_entities, leaving real gaps for a list tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and every parameter has a description, so the schema does the work; the description only mentions pagination generically. Baseline 3 is the correct ceiling here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List) and resource (GLPI entities, glossed as organizational units), which is clear enough to act on. It does not differentiate itself from siblings like glpi_get_entity, glpi_get_my_entities, or glpi_list_my_tickets, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description says nothing about when to use this list tool vs glpi_get_entity (single item), glpi_get_my_entities (scoped to user), or other list tools. Only the phrase 'optional pagination' hints at context; no alternatives or exclusions are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_list_followupsList ticket followupsARead-onlyIdempotentInspect
List followups (comments) of a ticket, oldest first, with the author's name (user_name).
| Name | Required | Description | Default |
|---|---|---|---|
| range | No | Pagination range, e.g. 0-49 | |
| fields | No | Field set: 'essential' (default, trims internal GLPI fields) or 'all' | |
| format | No | Output format: 'json' (default) or 'markdown' (a table for listings, key/value lines for one item; returned in both the text and the structured result) | |
| ticketId | Yes | Item ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| note | No | Pagination hint: how to fetch the next page |
| count | No | Items in this page |
| format | No | 'markdown' when data holds the markdown rendering |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With the annotations covering read-only, idempotent, and non-destructive behavior, the description adds useful context beyond that: the results come back oldest-first, and each entry includes the author's name. It doesn't discuss pagination or volume limits, but ordering is a genuine behavioral detail that the annotations do not convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single sentence with little waste, and it gives the key facts first: what is listed, the order, and the author field. The useful information shows up right away, with no extra padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The output schema exists, so the description does not need to explain return values. For a simple listing tool with annotations and full schema coverage, it covers what an agent needs to call the tool. Only the mention of pagination or when to choose a sibling could be added.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100 percent, so all four parameters are already fully documented in the schema. The description adds no parameter guidance beyond naming user_name as a returned field; it says nothing about range, fields, or format. For this dimension, a score of 3 is the right baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
This describes a specific verb and resource: it lists the followups of a specific ticket. The parenthetical '(comments)' plus the note about ordering and the author field adds extra detail, and the sibling tools glpi_list_change_followups and glpi_list_problem_followups make it clear this is the ticket variant.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description lets you infer that this reads followups for a given ticketId and does not create one; that job belongs to glpi_add_followup. However, it never explicitly says when to use this instead of glpi_list_timeline or glpi_get_ticket, and it does not state any exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_list_groupsList groupsCRead-onlyIdempotentInspect
List GLPI groups with optional pagination.
| Name | Required | Description | Default |
|---|---|---|---|
| range | No | Pagination range, e.g. 0-49 | |
| fields | No | Field set: 'essential' (default, trims internal GLPI fields) or 'all' | |
| format | No | Output format: 'json' (default) or 'markdown' (a table for listings, key/value lines for one item; returned in both the text and the structured result) | |
| expand_dropdowns | No | Expand dropdown IDs to names |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| note | No | Pagination hint: how to fetch the next page |
| count | No | Items in this page |
| format | No | 'markdown' when data holds the markdown rendering |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false, covering the full safety profile. The description's only added behavioral note is 'optional pagination', which is already implied by the nullable range parameter. It adds essentially nothing beyond structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; nothing is wasted. It is simply thin rather than bloated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With rich annotations, a full output schema, and 100% schema coverage, the description's brevity is tolerable, but it still omits any mention of filtering, default ordering, or how results relate to sibling listing tools, leaving the agent slightly under-informed for a listing operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each of the four parameters documented (range syntax, default field sets, output format, dropdown expansion). The description contributes no parameter detail, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a clear verb+resource ('List GLPI groups'), which separates it from the sibling glpi_get_group (single-item retrieval). However, it does not name any sibling or state scope constraints, so differentiation must be inferred from the name alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance at all: nothing says to prefer glpi_get_group for a single group, whether filtering is possible, or when pagination is required. The agent is left to infer usage entirely 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.
glpi_list_itil_categoriesList ITIL categoriesCRead-onlyIdempotentInspect
List ITIL categories (ticket/change/problem classification).
| Name | Required | Description | Default |
|---|---|---|---|
| range | No | Pagination range, e.g. 0-49 | |
| fields | No | Field set: 'essential' (default, trims internal GLPI fields) or 'all' | |
| format | No | Output format: 'json' (default) or 'markdown' (a table for listings, key/value lines for one item; returned in both the text and the structured result) | |
| expand_dropdowns | No | Expand dropdown IDs to names |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| note | No | Pagination hint: how to fetch the next page |
| count | No | Items in this page |
| format | No | 'markdown' when data holds the markdown rendering |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the full safety profile (readOnlyHint=true, idempotentHint=true, destructiveHint=false, openWorldHint=true), so almost nothing behavioral is required. The description adds only a semantic gloss and says nothing about pagination, result volume, or scoping beyond what annotations and the output schema provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero padding. It is appropriately sized, though its brevity reflects thin content rather than tight editing of rich content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool, the output schema and annotations cover return values and safety, and the description states the resource. It is minimally sufficient but does not clarify listing scope or how results relate to the singular getter sibling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so range, fields, format, and expand_dropdowns are fully documented in the schema. The description adds no parameter meaning beyond that, which is the correct baseline when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('List ITIL categories') and adds a clarifying gloss that these are ticket/change/problem classifications, so the agent knows what the resource is. It implicitly distinguishes itself from the singular glpi_get_itil_category sibling, though it never names it explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus alternatives such as glpi_get_itil_category (single lookup) or glpi_list_knowbase_categories. The parenthetical explains what the resource is, not when to invoke the listing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_list_itil_followup_templatesList followup templatesBRead-onlyIdempotentInspect
List ITIL followup templates (predefined followup texts).
| Name | Required | Description | Default |
|---|---|---|---|
| range | No | Pagination range, e.g. 0-49 | |
| fields | No | Field set: 'essential' (default, trims internal GLPI fields) or 'all' | |
| format | No | Output format: 'json' (default) or 'markdown' (a table for listings, key/value lines for one item; returned in both the text and the structured result) | |
| expand_dropdowns | No | Expand dropdown IDs to names |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| note | No | Pagination hint: how to fetch the next page |
| count | No | Items in this page |
| format | No | 'markdown' when data holds the markdown rendering |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the safety profile is fully covered by structured data. The description adds only the clarification that templates are predefined followup texts; it does not mention pagination behavior despite a range parameter existing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with the resource and its definition front-loaded. No filler, no repetition of the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple filtered-list tool with an output schema covering return values and annotations covering the safety profile, the description is essentially sufficient. The only shortfall is the absence of pagination or field-set guidance, which the schema already documents.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, including enum options for fields and format, so the schema already carries full parameter semantics. The description contributes nothing beyond that, which lands at the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb 'List' plus resource 'ITIL followup templates', reinforced by the clarifying parenthetical 'predefined followup texts'. The list/get/create distinction is clear enough that an agent can tell it apart from glpi_get_itil_followup_template and glpi_create_itil_followup_template, though the text doesn't name those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance and no alternatives named. The agent must infer that this is for enumerating templates, and nothing says how it relates to glpi_get_itil_followup_template or when to prefer one over the other.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_list_knowbase_categoriesList knowledge base categoriesCRead-onlyIdempotentInspect
List knowledge base categories with optional pagination.
| Name | Required | Description | Default |
|---|---|---|---|
| range | No | Pagination range, e.g. 0-49 | |
| fields | No | Field set: 'essential' (default, trims internal GLPI fields) or 'all' | |
| format | No | Output format: 'json' (default) or 'markdown' (a table for listings, key/value lines for one item; returned in both the text and the structured result) |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| note | No | Pagination hint: how to fetch the next page |
| count | No | Items in this page |
| format | No | 'markdown' when data holds the markdown rendering |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is fully covered by structured data. The description adds only 'optional pagination,' which merely restates the range parameter and contributes no new behavioral context (ordering, defaults, result size).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the resource is named immediately. It is efficient, though so terse that it borders on under-specification for a list endpoint.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and the annotations cover safety. However, nothing is said about default ordering, result size, or how this list relates to the knowbase item/category hierarchy, leaving the definition merely adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with all three parameters documented, including enum values for fields and format, so the baseline is 3. The description's mention of pagination adds no syntax or format detail beyond the schema's own 'e.g. 0-49' example.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List knowledge base categories'), which is clear enough to distinguish it from the singular glpi_get_knowbase_category and the sibling glpi_list_knowbase_items. It does not explicitly name those siblings, so it lands at 4 rather than 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only guidance is 'with optional pagination,' which describes a parameter rather than when to use this tool. It never says to prefer glpi_get_knowbase_category for a single category or glpi_list_knowbase_items for items, so an agent gets no routing help.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_list_knowbase_itemsList knowledge base itemsCRead-onlyIdempotentInspect
List knowledge base articles with optional pagination.
| Name | Required | Description | Default |
|---|---|---|---|
| range | No | Pagination range, e.g. 0-49 | |
| fields | No | Field set: 'essential' (default, trims internal GLPI fields) or 'all' | |
| format | No | Output format: 'json' (default) or 'markdown' (a table for listings, key/value lines for one item; returned in both the text and the structured result) |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| note | No | Pagination hint: how to fetch the next page |
| count | No | Items in this page |
| format | No | 'markdown' when data holds the markdown rendering |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, covering the full safety profile. The only behavioral claim, 'optional pagination', merely restates the 'range' parameter already documented in the schema, so the description adds essentially no context beyond structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler or repetition. It is efficient, though arguably so terse that it omits useful scoping detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and the annotations cover safety. But the description omits defaults, the meaning of the 'fields'/'format' options in practice, and any relationship to sibling listing/search tools, leaving it only minimally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and each of the three parameters (range, fields, format) is fully documented in the schema with enums and defaults. The description's passing mention of pagination adds no syntax or format detail beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear verb+resource ('List knowledge base articles'), which an agent can distinguish from glpi_get_knowbase_item and glpi_create/update_knowbase_item. However it never names a sibling or explicitly contrasts listing with single-item retrieval, so differentiation is inferred from the name rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use guidance: it doesn't say to prefer this over glpi_search or glpi_get_knowbase_item, nor does it describe any filtering context or prerequisites. 'Optional pagination' is a capability, not usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_list_locationsList locationsCRead-onlyIdempotentInspect
List GLPI locations with optional pagination.
| Name | Required | Description | Default |
|---|---|---|---|
| range | No | Pagination range, e.g. 0-49 | |
| fields | No | Field set: 'essential' (default, trims internal GLPI fields) or 'all' | |
| format | No | Output format: 'json' (default) or 'markdown' (a table for listings, key/value lines for one item; returned in both the text and the structured result) | |
| expand_dropdowns | No | Expand dropdown IDs to names |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| note | No | Pagination hint: how to fetch the next page |
| count | No | Items in this page |
| format | No | 'markdown' when data holds the markdown rendering |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is fully covered without the description. The description adds nothing beyond that — no mention of permission requirements, result limits, or ordering behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with no filler, appropriately front-loaded. It is arguably under-specified rather than padded, which is a completeness issue rather than a conciseness one.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is low-complexity (4 optional params), the input schema is fully described, an output schema exists, and annotations cover the safety profile, so little must be said. Still, the absence of any hint about result scope or how it relates to glpi_get_location leaves a small gap for an agent choosing among ~80 siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with enums documented for 'fields' and 'format', so the schema carries the parameter semantics. The description's 'optional pagination' merely restates the 'range' parameter at a lower resolution than the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List GLPI locations'), which is unambiguous on its own. However it does not distinguish itself from the sibling glpi_get_location (single-location fetch) or explain its place among the many other glpi_list_* tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no guidance on when to use this versus glpi_get_location or the generic glpi_search. There is no stated prerequisite, scope, or exclusion — 'optional pagination' is the only hint, and it is about mechanics rather than usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_list_my_ticketsList my ticketsARead-onlyIdempotentInspect
"My tickets": tickets of the connected GLPI user (or of users_id) where they are requester, assigned technician or observer. Defaults: open tickets only (not solved nor closed), most recently updated first. Each row names the people: requesters, assigned and observers as {id, name}, plus status_name and my_roles. Use this for "meus chamados", "my open tickets", "tickets assigned to me".
| Name | Required | Description | Default |
|---|---|---|---|
| role | No | Which link to the user: requester, assigned (technician), observer, or any (default) | |
| sort | No | Sort column (default date_mod = last update) | |
| order | No | Sort direction (default desc = most recent first) | |
| range | No | Pagination range, e.g. 0-49 | |
| fields | No | Field set: 'essential' (default, trims internal GLPI fields) or 'all' | |
| format | No | Output format: 'json' (default) or 'markdown' (a table for listings, key/value lines for one item; returned in both the text and the structured result) | |
| status | No | Statuses to include (default open = not solved nor closed): new, assigned (= processing), planned, pending, solved, closed, open. One name or a list. | |
| users_id | No | Another user's ID (default: the connected user) |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| note | No | Pagination hint: how to fetch the next page |
| role | No | |
| user | No | Whose tickets these are |
| count | No | Items in this page |
| total | No | Total matching tickets (all pages) |
| format | No | 'markdown' when data holds the markdown rendering |
| status | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the read-only, idempotent, non-destructive safety profile. The description adds genuinely useful behavior beyond that: the default filter (open only, excluding solved/closed), the default sort (most recently updated first), and the shape of each returned row ({id, name} people plus status_name and my_roles).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Effectively two dense sentences: the first front-loads scope and defaults, the second describes row contents and gives usage cues. No filler, and the most decision-relevant information (whose tickets, default filter) leads.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, fully-defaulted listing tool, the description covers scope, defaults, sort behavior, and row shape, and an output schema exists so return values needn't be re-explained. Nothing an agent needs to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and each parameter already carries a clear enum and description (role, sort, order, range, fields, format, status, users_id). The description only echoes the role/scope semantics and adds no syntax or format detail beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (list) and resource (my tickets) and pins the exact scope: tickets where the connected user is requester, assigned technician, or observer. This cleanly separates it from the sibling glpi_list_tickets (all tickets) without requiring the agent to open either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context and even trigger phrases ("meus chamados", "my open tickets", "tickets assigned to me") that map user intent to this tool. However it never explicitly names the alternative (e.g. glpi_list_tickets for tickets not involving me), so the when-not condition is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_list_problem_followupsList problem followupsBRead-onlyIdempotentInspect
List followups (comments) of a problem, with the author's name (user_name).
| Name | Required | Description | Default |
|---|---|---|---|
| range | No | Pagination range, e.g. 0-49 | |
| fields | No | Field set: 'essential' (default, trims internal GLPI fields) or 'all' | |
| format | No | Output format: 'json' (default) or 'markdown' (a table for listings, key/value lines for one item; returned in both the text and the structured result) | |
| problemId | Yes | Item ID | |
| expand_dropdowns | No | Expand dropdown IDs to names |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| note | No | Pagination hint: how to fetch the next page |
| count | No | Items in this page |
| format | No | 'markdown' when data holds the markdown rendering |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description adds one behavioral detail beyond that: results are enriched with the author's user_name, which is useful context about what the call returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with the resource and the enrichment detail front-loaded; nothing is wasted. It is arguably too terse rather than verbose, but it is well structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema covering return values and annotations covering the safety profile, the description only needs to identify the resource, which it does. The remaining gap is sibling differentiation (list_followups vs list_change_followups vs list_problem_tasks), which the tool name largely handles.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all five parameters (range, fields, format, problemId, expand_dropdowns) are documented in the schema itself. The description adds nothing about pagination, format selection, or field trimming, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (List) and resource (followups of a problem) and clarifies the domain term by equating followups with comments. It does not explicitly differentiate itself from the near-identical siblings glpi_list_followups or glpi_list_change_followups, though the problem-scoped resource is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use or when-not-to-use guidance, no mention of prerequisites (e.g. a valid problemId), and no routing to alternatives such as glpi_get_problem or glpi_list_timeline. Usage is only inferable 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.
glpi_list_problemsList problemsBRead-onlyIdempotentInspect
List problem management items, most recently updated first by default, with status_name and priority_name (in the GLPI user's language) and category_name.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | Sort column (default date_mod = last update) | |
| order | No | Sort direction (default desc = most recent first) | |
| range | No | Pagination range, e.g. 0-49 | |
| fields | No | Field set: 'essential' (default, trims internal GLPI fields) or 'all' | |
| format | No | Output format: 'json' (default) or 'markdown' (a table for listings, key/value lines for one item; returned in both the text and the structured result) | |
| expand_dropdowns | No | Expand dropdown IDs to names |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| note | No | Pagination hint: how to fetch the next page |
| count | No | Items in this page |
| format | No | 'markdown' when data holds the markdown rendering |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description adds the default ordering behavior and the fact that status/priority names are localized to the GLPI user's language, which is useful context, but says nothing about pagination limits or result volume.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tightly-packed sentence with the resource and default behavior front-loaded and no filler. Every clause conveys information about ordering or returned fields.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With rich annotations, 100% schema coverage and an output schema, the description is nearly sufficient. The main omission is that it never states there are no filtering parameters, so an agent may assume it can narrow results without being routed to glpi_search.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all six parameters are already documented in the schema; the description only echoes the default sort (date_mod, most recent first) that sort/order already describe. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('List') and resource ('problem management items'), and it adds the default ordering and the returned name fields, so an agent can distinguish it from glpi_get_problem (single item) and glpi_list_problem_tasks. It does not, however, name any sibling explicitly to route between them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no note that this tool has no filter parameters and returns the full problem set, and no pointer to alternatives such as glpi_search or glpi_get_problem for a single record. Usage is only implied by the verb 'List'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_list_problem_tasksList problem tasksBRead-onlyIdempotentInspect
List tasks for a problem, with author, technician and group names.
| Name | Required | Description | Default |
|---|---|---|---|
| range | No | Pagination range, e.g. 0-49 | |
| fields | No | Field set: 'essential' (default, trims internal GLPI fields) or 'all' | |
| format | No | Output format: 'json' (default) or 'markdown' (a table for listings, key/value lines for one item; returned in both the text and the structured result) | |
| problemId | Yes | Item ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| note | No | Pagination hint: how to fetch the next page |
| count | No | Items in this page |
| format | No | 'markdown' when data holds the markdown rendering |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is fully covered. The description adds that returned records are enriched with author/technician/group names, which is modestly useful context but leans on output content rather than new behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence that identifies the resource and the enriched return fields with no wasted words. It is efficient, though arguably sparse given the tool's available parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only listing tool, the annotations cover safety, the schema covers all four parameters, and an output schema exists to explain returns. The description is complete enough to call the tool correctly, with only routing guidance missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so range, fields, format and problemId are all documented in the schema itself. The description adds no syntax, format or constraint detail beyond that, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List) and resource (tasks for a problem), which cleanly separates it from glpi_list_problem_followups and glpi_list_problems. It also names the enriched fields returned (author, technician, group names), but does not explicitly contrast itself with the parallel task listers like glpi_list_ticket_tasks or glpi_list_change_tasks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use or when-not-to-use guidance and no named alternatives. The phrase 'for a problem' implies the tool is scoped to problems, but an agent gets no explicit routing rule against the many sibling list_* tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_list_reservation_itemsList reservable itemsCRead-onlyIdempotentInspect
List items flagged as reservable (the catalogue reservations point at).
| Name | Required | Description | Default |
|---|---|---|---|
| range | No | Pagination range, e.g. 0-49 | |
| fields | No | Field set: 'essential' (default, trims internal GLPI fields) or 'all' | |
| format | No | Output format: 'json' (default) or 'markdown' (a table for listings, key/value lines for one item; returned in both the text and the structured result) |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| note | No | Pagination hint: how to fetch the next page |
| count | No | Items in this page |
| format | No | 'markdown' when data holds the markdown rendering |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is fully covered by structured data. The description adds no behavioral context beyond that — no auth requirements, rate limits, or scale/pagination expectations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact sentence, front-loaded with the verb and resource. Nothing is wasted, though the brevity comes at the cost of the guidance noted above.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and annotations covering safety, the definition is minimally viable. It is still thin on what 'items' means (asset types, scope, whether filtering is possible), which an agent needs in order to know it is calling the right catalogue endpoint.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with only 3 optional parameters (range, fields, format), all documented with enums and defaults in the schema. The description adds no parameter meaning, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb+resource ('list items flagged as reservable') and clarifies the parenthetical relationship to reservations, which helps separate it from glpi_list_reservations. It does not, however, distinguish itself from asset-listing siblings (e.g. glpi_list_assets) or state what kind of items these are.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use or when-not-to-use guidance and no named alternative. The phrase 'the catalogue reservations point at' only loosely implies that this should be called before creating a reservation, leaving the agent to infer the workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_list_reservationsList reservationsARead-onlyIdempotentInspect
List reservations (bookings) of reservable items.
| Name | Required | Description | Default |
|---|---|---|---|
| range | No | Pagination range, e.g. 0-49 | |
| fields | No | Field set: 'essential' (default, trims internal GLPI fields) or 'all' | |
| format | No | Output format: 'json' (default) or 'markdown' (a table for listings, key/value lines for one item; returned in both the text and the structured result) |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| note | No | Pagination hint: how to fetch the next page |
| count | No | Items in this page |
| format | No | 'markdown' when data holds the markdown rendering |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, covering the safety profile. The description adds context by clarifying that 'reservations' means 'bookings' and that they are 'of reservable items', but it does not disclose any additional behavioral traits such as pagination behavior, default result limits, or output characteristics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with zero wasted words, and the core purpose is front-loaded. It is appropriately sized for a simple list operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity, full schema description coverage (100%), rich annotations, and the presence of an output schema, the description is complete enough for an agent to invoke it correctly. Nothing essential for calling the tool is missing, and return values are covered by the output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all three parameters (range, fields, format) with descriptions and enums. The description adds no parameter semantics beyond what the schema provides; baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('List') and resource ('reservations (bookings) of reservable items'), making the core purpose clear. It does not explicitly distinguish itself from siblings like glpi_get_reservation (single reservation) or glpi_list_reservation_items (reservable items), so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does 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 alternatives. It does not name any sibling tool, nor does it state conditions or exclusions. Usage is only implied by the verb 'List', which is insufficient for selecting the right tool among many siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_list_rule_actionsList rule actions (global)ARead-onlyIdempotentInspect
List rule actions via GET /RuleAction. Optionally filter by rules_id (works for any rule type: RuleTicket, RuleChange, RuleMailCollector).
| Name | Required | Description | Default |
|---|---|---|---|
| range | No | Pagination range, e.g. 0-49 | |
| fields | No | Field set: 'essential' (default, trims internal GLPI fields) or 'all' | |
| format | No | Output format: 'json' (default) or 'markdown' (a table for listings, key/value lines for one item; returned in both the text and the structured result) | |
| rules_id | No | Rule ID to filter by | |
| expand_dropdowns | No | Expand dropdown IDs to names |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| note | No | Pagination hint: how to fetch the next page |
| count | No | Items in this page |
| format | No | 'markdown' when data holds the markdown rendering |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is covered. The description adds the HTTP endpoint and the cross-rule-type scope of the filter, but says nothing about pagination behavior, default limits, or result ordering, which the range parameter hints at.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly written sentences, front-loaded with the verb and resource, and the second sentence adds only the filtering caveat. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and the tool has no required parameters, making it low-risk. What remains is minor: no note on pagination defaults or result volume limits, which an agent listing a potentially large collection would benefit from.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3, but the description adds genuinely new semantics for rules_id: that it filters across any rule type (RuleTicket, RuleChange, RuleMailCollector), which the schema's terse "Rule ID to filter by" does not convey.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ("List rule actions") and even names the underlying endpoint GET /RuleAction. The parenthetical about working for any rule type implicitly distinguishes it from the ticket-specific sibling glpi_list_rule_ticket_actions, though that sibling is never named directly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear context for the tool: it lists rule actions globally and can be filtered by rules_id across RuleTicket, RuleChange and RuleMailCollector. This effectively tells the agent when to prefer this over the rule-type-specific variants, but there is no explicit "use X instead of Y" routing statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_list_rule_criteriaList rule criteria (global)ARead-onlyIdempotentInspect
List rule criteria via GET /RuleCriteria. Optionally filter by rules_id (works for any rule type: RuleTicket, RuleChange, RuleMailCollector).
| Name | Required | Description | Default |
|---|---|---|---|
| range | No | Pagination range, e.g. 0-49 | |
| fields | No | Field set: 'essential' (default, trims internal GLPI fields) or 'all' | |
| format | No | Output format: 'json' (default) or 'markdown' (a table for listings, key/value lines for one item; returned in both the text and the structured result) | |
| rules_id | No | Rule ID to filter by | |
| expand_dropdowns | No | Expand dropdown IDs to names |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| note | No | Pagination hint: how to fetch the next page |
| count | No | Items in this page |
| format | No | 'markdown' when data holds the markdown rendering |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is fully covered. The description adds the endpoint and the cross-rule-type scope, but says nothing about pagination behavior, result volume, or default limits beyond what the schema's range/fields params already carry.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences with zero filler, and the core action plus endpoint are front-loaded ahead of the optional filter detail. Nothing can be trimmed without losing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, rich annotations, and 100% schema coverage, the description need only establish purpose and scope, which it does. It could be stronger by explicitly naming the rule-type-specific sibling to route the agent, but no essential calling information is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all five parameters are already documented in the schema and the baseline is 3. The description adds only one useful nuance beyond the schema: that rules_id filtering spans all rule types, not just RuleTicket.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (list rule criteria) and names the underlying endpoint GET /RuleCriteria. The parenthetical that it works for any rule type (RuleTicket, RuleChange, RuleMailCollector) implicitly separates it from the rule-type-specific sibling, but it never names that sibling directly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives the one filtering option (rules_id) and the scope of rule types it covers, which implies when it is the right pick over glpi_list_rule_ticket_criteria. However, there is no explicit when-to-use/when-not statement or named alternative, leaving the routing inference to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_list_rulesList ticket rulesBRead-onlyIdempotentInspect
List all ticket business rules (RuleTicket) with optional pagination.
| Name | Required | Description | Default |
|---|---|---|---|
| range | No | Pagination range, e.g. 0-49 | |
| fields | No | Field set: 'essential' (default, trims internal GLPI fields) or 'all' | |
| format | No | Output format: 'json' (default) or 'markdown' (a table for listings, key/value lines for one item; returned in both the text and the structured result) | |
| expand_dropdowns | No | Expand dropdown IDs to names |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| note | No | Pagination hint: how to fetch the next page |
| count | No | Items in this page |
| format | No | 'markdown' when data holds the markdown rendering |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is fully covered elsewhere. The description adds nothing beyond that: no note that these are administrative configuration objects, no statement about the unfiltered full-set return, no pagination or size limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence naming the verb, the resource, and the scope modifier. Nothing is wasted and nothing is padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and the tool is a simple zero-required-parameter read. Still, the description omits that the call returns the entire unfiltered rule set and that the only lever on volume is 'range', which is relevant for an agent deciding how to invoke it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and all four parameters (range, fields, format, expand_dropdowns) are documented in the schema, so the baseline is 3. The description only echoes the pagination parameter and adds no format or field-set semantics of its own.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (list ticket business rules) and pins the underlying GLPI type as RuleTicket, which usefully separates it from glpi_list_rule_actions and glpi_list_rule_criteria. It does not, however, distinguish itself from glpi_get_rule_ticket or glpi_create_rule_ticket by routing an agent between them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only usage cue is 'with optional pagination', which is a schema fact rather than guidance. There is no statement of when to use this list tool versus glpi_get_rule_ticket for a single rule, one of the other rule-list siblings, or glpi_search.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_list_rule_ticket_actionsList ticket rule actionsBRead-onlyIdempotentInspect
List actions of a specific ticket rule (sub-items of RuleTicket).
| Name | Required | Description | Default |
|---|---|---|---|
| range | No | Pagination range, e.g. 0-49 | |
| fields | No | Field set: 'essential' (default, trims internal GLPI fields) or 'all' | |
| format | No | Output format: 'json' (default) or 'markdown' (a table for listings, key/value lines for one item; returned in both the text and the structured result) | |
| ruleId | Yes | Item ID | |
| expand_dropdowns | No | Expand dropdown IDs to names |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| note | No | Pagination hint: how to fetch the next page |
| count | No | Items in this page |
| format | No | 'markdown' when data holds the markdown rendering |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is fully covered. The description adds the useful structural fact that these are sub-items of RuleTicket, but says nothing about pagination defaults, result size, or whether an unknown ruleId errors or returns empty.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with the resource front-loaded and no filler; the parenthetical earns its place by naming the underlying GLPI type. It is arguably too terse to carry any routing guidance, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With rich annotations, a full output schema, and 100% parameter coverage, most of the burden is already carried elsewhere, so a short description is defensible. The remaining gap is disambiguation from the very similar sibling list tools, which the description does not address.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and every parameter (range, fields, format, ruleId, expand_dropdowns) is documented in the schema with enums and examples. The description contributes no additional parameter meaning, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb and resource ('List actions of a specific ticket rule') and adds the parenthetical that these are sub-items of RuleTicket, which clarifies the object model. It does not, however, explicitly distinguish itself from the near-identical sibling glpi_list_rule_actions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use, when-not-to-use, or alternative-tool guidance. The phrase 'of a specific ticket rule' only implies that a ruleId is required, which the schema already enforces via required: [ruleId]. Nothing helps an agent choose between this and glpi_list_rule_actions or glpi_list_rule_ticket_criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_list_rule_ticket_criteriaList ticket rule criteriaBRead-onlyIdempotentInspect
List criteria (conditions) of a specific ticket rule (sub-items of RuleTicket).
| Name | Required | Description | Default |
|---|---|---|---|
| range | No | Pagination range, e.g. 0-49 | |
| fields | No | Field set: 'essential' (default, trims internal GLPI fields) or 'all' | |
| format | No | Output format: 'json' (default) or 'markdown' (a table for listings, key/value lines for one item; returned in both the text and the structured result) | |
| ruleId | Yes | Item ID | |
| expand_dropdowns | No | Expand dropdown IDs to names |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| note | No | Pagination hint: how to fetch the next page |
| count | No | Items in this page |
| format | No | 'markdown' when data holds the markdown rendering |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered structurally. The description adds useful domain context ('sub-items of RuleTicket') but says nothing about pagination behavior or result volume that the annotations don't cover.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact sentence with the resource and scope front-loaded and no filler. It is efficient, though its brevity contributes to the thin usage guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value explanation is not required, and annotations carry the safety profile. However, for a nested-resource listing tool the description gives no hint about how to locate the parent rule or how criteria relate to actions, leaving a modest gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all five parameters (range, fields, format, ruleId, expand_dropdowns) are documented in the schema itself. The description adds no syntax or format meaning beyond that, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('List') and resource ('criteria (conditions) of a specific ticket rule'), and clarifies the domain relationship by calling them 'sub-items of RuleTicket'. It does not explicitly name the sibling it differs from (e.g. glpi_list_rule_actions or glpi_list_rules), so it stops short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'of a specific ticket rule' implies a ruleId must first be obtained, but there is no explicit when-to-use statement, no mention of the alternative listing tools (glpi_list_rule_actions, glpi_list_rules), and no exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_list_search_optionsList search optionsARead-onlyIdempotentInspect
List available search fields for an itemtype. Critical for building search criteria with glpi_search. Returns field IDs, names, and types.
| Name | Required | Description | Default |
|---|---|---|---|
| itemtype | Yes | Item type, e.g. Ticket, User, Change, Problem, ITILCategory |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the safety profile is fully covered by structured data. The description adds the workflow prerequisite for glpi_search, which is genuinely useful, but 'Returns field IDs, names, and types' duplicates the output schema and no auth/scope caveats are given.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the action and immediately followed by the practical reason to call it. Every sentence carries distinct information with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value documentation in the description is unnecessary, and annotations cover the safety profile for this read-only, idempotent tool. The single parameter is fully documented in the schema; nothing an agent needs to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is a single required parameter with 100% schema description coverage, including examples (Ticket, User, Change, Problem, ITILCategory), so the schema already does the heavy lifting. The description only says 'for an itemtype' and adds no syntax or constraint detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List available search fields for an itemtype') and names what it returns (field IDs, names, types). No sibling in the list provides search metadata, so the tool is clearly distinguishable from glpi_list_* and glpi_search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Critical for building search criteria with glpi_search' explicitly ties the tool to a workflow and names the downstream consumer, giving a clear when-to-use signal. It stops short of stating when not to use it or naming alternatives, so it doesn't reach a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_list_ticket_groupsList ticket groupsARead-onlyIdempotentInspect
List all groups linked to a ticket (requester, observer, assigned), with each group's name (group_name) beside groups_id and type_name (in the GLPI user's language). type: 1=Requester, 2=Assigned, 3=Observer.
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Field set: 'essential' (default, trims internal GLPI fields) or 'all' | |
| format | No | Output format: 'json' (default) or 'markdown' (a table for listings, key/value lines for one item; returned in both the text and the structured result) | |
| ticketId | Yes | Item ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| note | No | Pagination hint: how to fetch the next page |
| count | No | Items in this page |
| format | No | 'markdown' when data holds the markdown rendering |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so safety is covered. The description adds real value beyond that: the exact returned fields (group_name, groups_id, type_name) and the fact that names come back in the GLPI user's language, which is non-obvious behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences: the scope and returned fields come first, the type-code legend second. Nothing is redundant and the front-loaded clause tells the agent immediately what the call yields.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value documentation is not required, and the description still describes the shape of results. Coverage is strong for a read-only listing tool; only pagination/empty-result behavior is left unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (ticketId, fields, format all documented with enums), so the schema carries parameter meaning. The description adds no syntax or constraint detail for ticketId/fields/format, so the baseline 3 applies. The type: 1/2/3 mapping refers to an output field, not an input parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource ('List all groups linked to a ticket') and enumerates the link types it returns (requester, observer, assigned), which clearly separates it from glpi_list_groups or glpi_list_ticket_users. It never names a sibling tool explicitly, so it stops short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the scoping phrase 'linked to a ticket' — an agent can infer this is the per-ticket group lookup rather than the global group list. There is no explicit when-to-use/when-not-to-use statement or named alternative such as glpi_add_ticket_group for mutation or glpi_list_groups for the global list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_list_ticketsList ticketsARead-onlyIdempotentInspect
List GLPI tickets of the whole instance (every ticket the connected user may see), most recently updated first by default. Filter by status (e.g. status: 'open' = not solved nor closed) and choose the sort column and direction. Each row carries status_name, type_name, priority_name (in the GLPI user's language), category_name, and requesters and assigned technicians as {id, name}. For the connected user's OWN tickets ("my tickets") use glpi_list_my_tickets instead.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | Sort column (default date_mod = last update) | |
| order | No | Sort direction (default desc = most recent first) | |
| range | No | Pagination range, e.g. 0-49 | |
| fields | No | Field set: 'essential' (default, trims internal GLPI fields) or 'all' | |
| format | No | Output format: 'json' (default) or 'markdown' (a table for listings, key/value lines for one item; returned in both the text and the structured result) | |
| status | No | Only tickets in these statuses: new, assigned (= processing), planned, pending, solved, closed, or open (= new + assigned + planned + pending). One name or a list. Default: every status. | |
| expand_dropdowns | No | Expand dropdown IDs to names |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| note | No | Pagination hint: how to fetch the next page |
| count | No | Items in this page |
| total | No | Total matching items in GLPI (all pages) |
| format | No | 'markdown' when data holds the markdown rendering |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive and openWorld, so the safety profile is covered. The description adds genuine behavioral context beyond that: results are limited to what the connected user may see, the default ordering is by last update, and dropdown names are returned in the GLPI user's language. It does not mention pagination limits or result-set size behavior, which is the remaining gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences with the scope and default ordering front-loaded and the sibling routing last, which is the right priority order. The middle sentence enumerating row fields is the weakest part — it is partly redundant with the output schema — but it still communicates the localization detail efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Since an output schema exists, return-shape detail is not required, and the description covers scope, defaults, status filtering and the sibling alternative. It omits mention of the range/pagination parameter, which matters for an instance-wide listing that can be large, though the schema documents it explicitly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, including the enum semantics for status, sort, order, fields and format, so the schema does the heavy lifting and the baseline is 3. The description restates the status and sort behavior but adds no format, syntax, or constraint detail beyond what the schema already documents.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('List GLPI tickets'), names the scope of the listing ('the whole instance, every ticket the connected user may see'), and states the default ordering. It explicitly distinguishes itself from the closest sibling, glpi_list_my_tickets, so an agent can route without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives the selection condition for this tool (instance-wide listing, permission-limited) and names the alternative with the exact condition that selects it ('For the connected user's OWN tickets use glpi_list_my_tickets instead'). It also clarifies the semantics of the primary filter (status: 'open' = not solved nor closed).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_list_ticket_tasksList ticket tasksCRead-onlyIdempotentInspect
List tasks (to-do items) for a ticket, with author, technician and group names (user_name, tech_name, tech_group_name).
| Name | Required | Description | Default |
|---|---|---|---|
| range | No | Pagination range, e.g. 0-49 | |
| fields | No | Field set: 'essential' (default, trims internal GLPI fields) or 'all' | |
| format | No | Output format: 'json' (default) or 'markdown' (a table for listings, key/value lines for one item; returned in both the text and the structured result) | |
| ticketId | Yes | Item ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| note | No | Pagination hint: how to fetch the next page |
| count | No | Items in this page |
| format | No | 'markdown' when data holds the markdown rendering |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is fully covered structurally. The description adds little beyond that: it does not say what happens for an invalid or empty ticket, how pagination defaults behave, or the shape of the enriched names, so it mostly restates the read operation the annotations already declare.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence that front-loads the resource and lists the enrichment fields. It earns its place, though the parenthetical field list adds modest value rather than routing the agent to alternatives.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a full input schema, an output schema and rich annotations, the core contract is already implied. The description leaves out the guidance an agent still needs: when to choose this over sibling listing tools and what the enriched fields mean operationally.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters (ticketId, range, fields, format) are already documented in the schema. The description adds no syntax, defaults, or format details beyond what the schema provides, so it sits at the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List tasks (to-do items) for a ticket') and enumerates the enriched fields returned (user_name, tech_name, tech_group_name). It is distinguishable from mutation siblings like glpi_add_ticket_task, but does not explicitly differentiate from the analogous list tools for changes and problems.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this rather than glpi_list_timeline, glpi_get_ticket, or the change/problem task variants, and no stated preconditions such as that the ticket must exist. Usage is only implied by the name and the required ticketId.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_list_ticket_usersList ticket usersARead-onlyIdempotentInspect
List all users linked to a ticket (requesters, observers, assigned), with each person's name (user_name) beside users_id and type_name (in the GLPI user's language). type: 1=Requester, 2=Assigned, 3=Observer.
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Field set: 'essential' (default, trims internal GLPI fields) or 'all' | |
| format | No | Output format: 'json' (default) or 'markdown' (a table for listings, key/value lines for one item; returned in both the text and the structured result) | |
| ticketId | Yes | Item ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| note | No | Pagination hint: how to fetch the next page |
| count | No | Items in this page |
| format | No | 'markdown' when data holds the markdown rendering |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so the safety profile is covered. The description adds the returned field list (user_name, users_id, type_name) and the language behavior of type_name, but since an output schema exists this is largely return-shape context rather than behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences; the primary purpose is front-loaded and the role enumeration is placed at the end. The parenthetical field list is slightly redundant given the output schema, but overall there is little waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With complete schema coverage, an output schema, and full annotations, the definition covers what an agent needs to invoke it. Only the lack of explicit sibling routing keeps it from being fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents fields, format, and ticketId. The description adds a 'type' mapping, but there is no type parameter in the schema, so it does not actually clarify any input. Baseline 3 applies when the schema carries the full load.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List all users linked to a ticket') and scopes the three relationship types it returns. It implicitly distinguishes itself from glpi_list_users (all users) and glpi_list_ticket_groups, but never names those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the name and description – you call this to see who is involved with a ticket – but there is no explicit when-to-use, when-not-to-use, or pointer to an alternative such as glpi_list_ticket_groups or glpi_get_ticket.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_list_ticket_validationsList ticket validationsARead-onlyIdempotentInspect
List approval/validation requests for a ticket, with requester and approver names (user_name, validator_name) and status_name in the GLPI user's language (status: 1 = not subject to approval, 2 = waiting, 3 = granted, 4 = refused).
| Name | Required | Description | Default |
|---|---|---|---|
| range | No | Pagination range, e.g. 0-49 | |
| fields | No | Field set: 'essential' (default, trims internal GLPI fields) or 'all' | |
| format | No | Output format: 'json' (default) or 'markdown' (a table for listings, key/value lines for one item; returned in both the text and the structured result) | |
| ticketId | Yes | Item ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| note | No | Pagination hint: how to fetch the next page |
| count | No | Items in this page |
| format | No | 'markdown' when data holds the markdown rendering |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive, openWorld), so the description is free to add behavior, which it does: it discloses returned field names (user_name, validator_name, status_name) and that status_name is localized to the GLPI user's language. It still omits pagination behavior and what happens with an invalid or missing ticketId.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single front-loaded sentence that leads with the core action and then the payload detail. The parenthetical status legend is dense but earns its place; the sentence is slightly overloaded but not padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the description need not explain return structure, yet it still names key fields, which is helpful surplus. It is complete enough for a 4-param read tool, with only pagination/error behavior left implicit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so range, fields, format and ticketId are already fully documented in the schema; the 3 baseline applies. The description adds no parameter-level meaning beyond the schema — the status enumeration it provides describes output values, not inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource ('List approval/validation requests for a ticket'), which is enough for an agent to separate it from glpi_create_ticket_validation and glpi_update_ticket_validation. It does not explicitly contrast itself with adjacent list tools (e.g. glpi_list_ticket_tasks), so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the phrase 'for a ticket' plus the required ticketId tells the agent this is the per-ticket read path. There is no explicit when-to-use, no mention of alternatives such as glpi_list_timeline, and no stated prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_list_timelineList timelineARead-onlyIdempotentInspect
Followups, tasks, solutions and validations of a ticket, change or problem, merged into one chronological list (oldest first; order 'desc' for the latest first), with the people's names (user_name, tech_name, validator_name) and the solution type name. Replaces calling the four list tools separately and interleaving them by hand.
| Name | Required | Description | Default |
|---|---|---|---|
| order | No | asc (default) = oldest first, desc = latest first | |
| range | No | Pagination range over the merged timeline, e.g. 0-24 | |
| fields | No | Field set: 'essential' (default, trims internal GLPI fields) or 'all' | |
| format | No | Output format: 'json' (default) or 'markdown' (a table for listings, key/value lines for one item; returned in both the text and the structured result) | |
| itemId | Yes | Item ID | |
| itemtype | Yes | ITIL item type |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| note | No | Pagination hint: how to fetch the next page |
| count | No | Items in this page |
| format | No | 'markdown' when data holds the markdown rendering |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered. The description adds real behavioral value beyond that: default ordering is oldest-first, 'desc' flips it, and the result carries resolved people names and the solution type name. It doesn't mention pagination limits or rate/auth behavior, keeping it at 4.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense but well-ordered sentence that front-loads what is merged and the ordering default, then ends with the value proposition about replacing four tools. It is efficient, though the parenthetical ordering detail adds minor length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With annotations covering the safety profile and an output schema present, the description fills the remaining gap by explaining what the merged result contains (the four activity types plus resolved names). It is complete enough to call the tool correctly; only pagination/volume expectations are left unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the schema already documents order, range, fields, format, itemId and itemtype semantics. The description's mention of ordering and the merged-timeline scope largely restates what the schema already says, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the exact resources merged (followups, tasks, solutions, validations) across the three ITIL item types and the operation (merge into one chronological list). An agent can immediately distinguish this from glpi_list_followups, glpi_list_ticket_tasks, glpi_list_ticket_validations and glpi_list_change_tasks without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly frames the tool as a replacement for calling 'the four list tools separately and interleaving them by hand', which routes the agent away from the sibling list tools. It lacks an explicit when-NOT-to-use clause (e.g. when you only need one stream), so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_list_usersList usersBRead-onlyIdempotentInspect
List all users with optional pagination and dropdown expansion.
| Name | Required | Description | Default |
|---|---|---|---|
| range | No | Pagination range, e.g. 0-49 | |
| fields | No | Field set: 'essential' (default, trims internal GLPI fields) or 'all' | |
| format | No | Output format: 'json' (default) or 'markdown' (a table for listings, key/value lines for one item; returned in both the text and the structured result) | |
| expand_dropdowns | No | Expand dropdown IDs to names |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| note | No | Pagination hint: how to fetch the next page |
| count | No | Items in this page |
| format | No | 'markdown' when data holds the markdown rendering |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds only that pagination and dropdown expansion are 'optional', which is already visible in the schema; it does not state default page size, whether omitting 'range' returns everything or a first page, or any instance-size limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; every clause maps to a real capability of the tool. It is efficient, though the word 'all' sits slightly awkwardly next to 'optional pagination' without clarifying the default result size.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and the schema fully documents the four optional parameters. The remaining gap is the ambiguous default: an agent cannot tell from the description whether calling with no 'range' enumerates every user or only the first page, which is material for a listing tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the two enum parameters are fully documented with defaults and output implications, so the schema carries the semantic load. The description adds no format examples, range syntax, or interaction between 'range' and 'fields'/'expand_dropdowns' beyond what is already there. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb+resource ('List all users') with the two optional behaviors (pagination, dropdown expansion) named up front. It does not differentiate itself from siblings like glpi_get_user, glpi_search_user_by_email, or glpi_list_groups, leaving the agent to infer the boundary from the name alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use guidance, no prerequisites, and never names an alternative such as glpi_get_user for a single record or glpi_search_user_by_email for lookup by email. The only usage signal is the word 'List', which the tool name already conveys.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_list_webhook_deliveriesList webhook deliveriesARead-onlyIdempotentInspect
Delivery queue (QueuedWebhook): what was sent, when, and what is still pending, newest first. Filter by webhook name, or only_failed to see what has been retried.
| Name | Required | Description | Default |
|---|---|---|---|
| range | No | Pagination range, e.g. 0-49 | |
| fields | No | Field set: 'essential' (default, trims internal GLPI fields) or 'all' | |
| format | No | Output format: 'json' (default) or 'markdown' (a table for listings, key/value lines for one item; returned in both the text and the structured result) | |
| only_failed | No | Only deliveries that failed: retried at least once (sent_try > 1) or last HTTP status >= 300 | |
| webhook_name | No | Restrict to webhooks whose name contains this text |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| note | No | Pagination hint: how to fetch the next page |
| count | No | Items in this page |
| format | No | 'markdown' when data holds the markdown rendering |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and openWorld, so the safety profile is covered. The description adds two useful traits not present elsewhere: results are 'newest first' and include pending items, and it names the underlying queue (QueuedWebhook). No mention of queue depth, retention, or output volume behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero waste: the first front-loads what the resource is and its ordering, the second covers filtering. Nothing is repeated from the schema and nothing extraneous is included.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need no explanation, and all five parameters are documented. Purpose, ordering, and filter intent are all covered. Minor gap: pagination behaviour (range) and any interaction with the retry tool are left entirely to the schema and agent inference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for all five params, so the schema already explains range, fields, format, only_failed and webhook_name in detail. The description's 'filter by webhook name' and 'only_failed to see what has been retried' are restatements, not added semantics. Baseline 3 applies when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource and scope: the delivery queue (QueuedWebhook) with what was sent, when, and what is pending, plus ordering. This clearly separates it from glpi_list_webhooks (webhook definitions) and glpi_retry_webhook_delivery (action on a delivery), so an agent can route without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It indicates intent for two filters ('filter by webhook name', 'only_failed to see what has been retried'), which is better than nothing. But it never states when to reach for this tool versus glpi_list_webhooks, nor the natural workflow with glpi_retry_webhook_delivery (inspect failures here, then retry). Usage is implied rather than prescribed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_list_webhooksList webhooksARead-onlyIdempotentInspect
List configured webhooks (event, itemtype, target URL, active flag). Requires GLPI 10.0.7 or newer.
| Name | Required | Description | Default |
|---|---|---|---|
| range | No | Pagination range, e.g. 0-49 | |
| fields | No | Field set: 'essential' (default, trims internal GLPI fields) or 'all' | |
| format | No | Output format: 'json' (default) or 'markdown' (a table for listings, key/value lines for one item; returned in both the text and the structured result) | |
| expand_dropdowns | No | Expand dropdown IDs to names |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| note | No | Pagination hint: how to fetch the next page |
| count | No | Items in this page |
| format | No | 'markdown' when data holds the markdown rendering |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the safety profile is covered. The description adds a genuine operational constraint not present in structured data: a minimum GLPI version. It does not discuss pagination behavior, which the schema handles via 'range'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short clauses with no filler; the purpose is front-loaded and the compatibility caveat follows. Every sentence carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value explanation is unnecessary, and the version prerequisite plus the field list make the definition adequate for a simple read-only list tool. Only the lack of routing guidance versus sibling list/get tools leaves a small gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and all four optional parameters (range, fields, format, expand_dropdowns) are documented in the schema itself. The description adds nothing about parameter behavior, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List configured webhooks') and even names the data points returned (event, itemtype, target URL, active flag). It is distinguishable from glpi_get_webhook and glpi_create_webhook by name, but never explicitly contrasts itself with siblings, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The GLPI 10.0.7+ prerequisite is a real usage constraint, but there is no guidance on when to choose this over glpi_get_webhook or glpi_list_webhook_deliveries, and no exclusions. Usage is implied by the 'list' scope only.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_retry_webhook_deliveryRetry webhook deliveryADestructiveInspect
Queue a failed delivery for another attempt by resetting its send time and retry counter. The GLPI cron does the actual sending — there is no immediate-send endpoint.
| Name | Required | Description | Default |
|---|---|---|---|
| deliveryId | Yes | QueuedWebhook ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=false, and openWorldHint=true. The description adds the key behavioral detail that retry resets the send time and retry counter, which is a mutation of state. It does not explain what happens to a delivery in progress or exact consequences.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, front-loaded with the action and including a useful constraint about cron sending. No wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a single parameter, full schema coverage, output schema present, and annotations covering safety profile, the description supplies the essential mechanism and the cron caveat. It could mention only failed deliveries are eligible, but is largely complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a description on deliveryId ('QueuedWebhook ID'). The description does not add further semantic detail about the parameter beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb ('Queue... for another attempt') plus resource ('failed delivery') and mechanism ('resetting its send time and retry counter'). Clearly distinguished from siblings like glpi_list_webhook_deliveries and glpi_set_webhook_active.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explains that the cron does the actual sending and there is no immediate-send endpoint, which addresses a likely agent expectation. Does not explicitly state when not to use it (e.g., only failed deliveries, not pending), but the failed-delivery scope is implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_searchSearch itemsARead-onlyIdempotentInspect
Search GLPI items with criteria. itemtype: Ticket, User, Change, Problem, Computer, etc. Each criterion is {field, searchtype, value, link}: field = search option ID, searchtype = contains | equals | notequals | lessthan | morethan | under, link = AND | OR (omit on the first). Rows come keyed by the search option names in the GLPI user's language ('Título', 'ID', 'Status'...); coded columns (status, priority, urgency, impact, type, approval) hold the GLPI label and the code sits beside it as ' (id)' (e.g. 'Status': 'Solucionado', 'Status (id)': 5). named_columns=false returns the raw search keyed by option ID ('1', '2'...). Use glpi_list_search_options to discover the option IDs for criteria, forcedisplay and sort.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | Search option ID to sort by (e.g. 19 = last update on Ticket) | |
| order | No | Sort direction (default asc) | |
| range | No | Pagination range, e.g. 0-49 | |
| fields | No | Field set: 'essential' (default, trims internal GLPI fields) or 'all' | |
| format | No | Output format: 'json' (default) or 'markdown' (a table for listings, key/value lines for one item; returned in both the text and the structured result) | |
| criteria | No | Array of {field, searchtype, value, link}; a group is {link, criteria: [...]} (e.g. requester OR technician) | |
| itemtype | Yes | Item type, e.g. Ticket, User, Change, Problem | |
| forcedisplay | No | Search option IDs to add as columns | |
| named_columns | No | Key each row by search option name, coded values labelled (default true); false = raw, by numeric option ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| note | No | Pagination hint: how to fetch the next page |
| count | No | Items in this page |
| total | No | Total matching items in GLPI (all pages) |
| format | No | 'markdown' when data holds the markdown rendering |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, yet the description adds genuinely non-obvious behavior: rows are keyed by localized option names in the GLPI user's language, coded columns appear as '<name> (id)', and named_columns=false switches to numeric option IDs. This is real disclosure beyond the structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Dense but front-loaded: purpose first, then criteria grammar, then output-keying semantics, then the pointer to glpi_list_search_options. Every clause carries information, though the single-paragraph block is heavy for one read.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a rich 9-param schema, an output schema, and annotations covering safety, the description fills the remaining gaps: criteria grammar, localized/raw keying modes, and the search-option discovery dependency. An agent has enough to call this correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the top-level params, but the criteria items are only 'additionalProperties: {}'. The description compensates by defining the criterion shape ({field, searchtype, value, link}), enumerating legal searchtype values (contains | equals | notequals | lessthan | morethan | under), link semantics (AND | OR, omit on first), and the group form {link, criteria: [...]}.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (search) and resource (GLPI items) and enumerates valid itemtypes (Ticket, User, Change, Problem, Computer). It implies but never explicitly distinguishes itself from the many specialized glpi_list_* siblings, so the agent must infer that criteria-based search is the differentiator.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives one concrete prerequisite-style tip: use glpi_list_search_options to discover option IDs for criteria, forcedisplay and sort. However, it never states when to prefer this generic search over glpi_list_tickets, glpi_list_users, or glpi_count_items, leaving tool selection to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_search_user_by_emailSearch user by emailARead-onlyIdempotentInspect
Find users by exact email address (returns the user items: id, login, real name, first name...).
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | Email address | ||
| range | No | Pagination range, e.g. 0-49 | |
| fields | No | Field set: 'essential' (default, trims internal GLPI fields) or 'all' | |
| format | No | Output format: 'json' (default) or 'markdown' (a table for listings, key/value lines for one item; returned in both the text and the structured result) |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| note | No | Pagination hint: how to fetch the next page |
| count | No | Items in this page |
| format | No | 'markdown' when data holds the markdown rendering |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is fully covered. The description adds that the result is a collection of user items, which is mildly useful, but says nothing about matching semantics beyond exactness, permissions, or how large result sets behave.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the purpose and the return shape are both packed in. The trailing '(id, login, real name, first name...)' is slightly redundant given an output schema exists, but it costs almost nothing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only search tool with full schema coverage, an output schema, and safety annotations, the description supplies what the structured data cannot: the exact-match matching rule. It does not address pagination via 'range', but the schema documents that, so the remaining gap is minor.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so email, range, fields, and format are already documented in the schema; baseline is 3. The description does add one genuine semantic detail the schema lacks: matching is exact rather than fuzzy, which affects how callers construct the email value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource plus the lookup key: 'Find users by exact email address'. This implicitly separates it from glpi_get_user (by id) and glpi_list_users (unfiltered), but it never names those siblings, so the differentiation is left to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'exact email address' qualifier implies the usage mode (you already have a full email and want the matching user, not a partial-match browse), which is more than nothing. However, there is no explicit when-to-use, when-not-to-use, or pointer to glpi_get_user / glpi_list_users as alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_set_webhook_activeEnable or disable webhookADestructiveIdempotentInspect
Turn a webhook on or off without touching the rest of its definition.
| Name | Required | Description | Default |
|---|---|---|---|
| active | Yes | true turns the webhook on, false turns it off | |
| webhookId | Yes | Item ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare idempotentHint=true, destructiveHint=true and readOnlyHint=false, so the safety profile is covered. The description contributes one useful scoping fact (other fields are left untouched), but says nothing about consequences of disabling (e.g. deliveries stop) or permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the scoping clause is the only thing worth saying and it is stated once.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter toggle with full schema coverage, rich annotations and an output schema, the description is essentially complete. The only mild gap is not stating the practical effect of disabling (halting webhook deliveries), which the destructiveHint gestures at but does not explain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% — both 'active' (true/false semantics) and 'webhookId' are documented in the schema itself, so the baseline is 3. The description adds no format or constraint detail beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('turn a webhook on or off') that clearly identifies a state-toggle operation rather than a full edit. The phrase 'without touching the rest of its definition' implicitly distances it from glpi_update_webhook, though it never names that sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the reader must infer that this is the narrow tool to use when only the active flag should change, versus glpi_update_webhook for broader edits. No explicit when-to-use or prerequisite (e.g. webhook must already exist) is stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_update_assetUpdate assetBDestructiveIdempotentInspect
Update an existing asset by type and ID.
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | Fields to update | |
| assetId | Yes | Item ID | |
| asset_type | Yes | Asset itemtype, e.g. Computer, Monitor, Printer, NetworkEquipment, Software |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly=false, destructive=true, idempotent=true, and openWorld=true. The description adds no behavioral context beyond restating that it updates an existing asset, such as required permissions, partial-update semantics, or side effects. It does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the verb and resource appear immediately. It is efficient, though extremely terse, which is appropriate for the conciseness dimension.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists and annotations cover the destructive/idempotent safety profile, the description is largely sufficient to invoke the tool correctly. It omits usage context but the rich schema and annotations compensate; only minor contextual details about the update operation are missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters. The description's phrase 'by type and ID' merely repeats asset_type and assetId from the schema, adding no extra syntax, constraints, or meaning. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Update') and resource ('asset'), and scopes it to existing assets identified by type and ID. However, it does not explicitly name or distinguish siblings such as glpi_create_asset or glpi_get_asset, so it is clear but not fully differentiating.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides no guidance on when to use this tool versus alternatives like create, get, or list. There are no prerequisites, exclusions, or contextual conditions; usage is only implied by the verb 'Update'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_update_changeUpdate changeCDestructiveIdempotentInspect
Update an existing change by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | Fields to update | |
| changeId | Yes | Item ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=true, and openWorldHint=true, so the safety profile is covered. The description adds nothing beyond that — it does not say what gets overwritten, whether unspecified fields are preserved, or what permission is required for this mutation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with no filler, and the essential information (verb, resource, targeting key) is front-loaded. It is arguably too thin for the tool's complexity, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive mutation whose payload is an open-ended object, the description says nothing about which fields are updatable or how partial updates behave. An output schema exists so return values need not be explained, but the input-side gap is significant given the untyped nested object.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters are documented in the schema, so the baseline is 3. However, the nested 'input' object accepts arbitrary properties with no field-level documentation anywhere, and the description does not compensate by hinting at valid fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Update an existing change') and identifies the targeting key ('by ID'), which cleanly separates it from glpi_create_change and glpi_get_change. It lacks any explicit naming of those siblings, but the operation is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does 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 such as glpi_get_change (to read first) or glpi_create_change, nor any prerequisite or preconditions. The agent must infer usage entirely 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.
glpi_update_entityUpdate entityBDestructiveIdempotentInspect
Update an existing entity by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | Fields to update | |
| entityId | Yes | Entity ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already disclose readOnly=false, destructive=true, idempotent=true, and openWorld=true, lowering the bar. The description adds only that the entity must already exist and is identified by ID; it does not describe what gets destroyed, partial-update behavior, or permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with zero wasted words. It is exactly as long as it needs to be for the minimal information it provides.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The input schema is an open object with no defined properties, so the agent does not know which fields can be updated. Although annotations and an output schema exist, the description does not compensate for this significant input ambiguity, making it incomplete for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema documents entityId and the input object. The description adds no meaning beyond 'by ID' and does not explain what fields the input object accepts, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Update) and resource (entity) and adds a scoping detail (by ID). It is clear what the tool does, but it does not differentiate from sibling update tools or mention the related get/create/list entity tools, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use guidance, no prerequisites, and no alternatives. It implies an existing entity is required, but does not say when to choose this over glpi_create_entity, glpi_get_entity, or other update tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_update_itil_followup_templateUpdate followup templateCDestructiveIdempotentInspect
Update a followup template by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | Fields to update | |
| templateId | Yes | Item ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare destructiveHint=true, idempotentHint=true, openWorldHint=true and readOnlyHint=false, which is a fairly complete safety profile. The description adds nothing on top: it doesn't say which fields in 'input' are mutable, what the destruction risk actually is, or whether omitted fields are preserved.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler, but it is spare to the point of under-specification for a destructive mutation tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need no explanation, but for a destructive update with an open-ended nested 'input' object the description gives an agent nothing about required permissions, destructive consequence, or merge semantics. Too thin for this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents templateId ('Item ID') and input ('Fields to update'). The description's 'by ID' confirms templateId's role but adds nothing about the free-form input object, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
State a specific verb ('Update') plus resource ('followup template') and scope ('by ID'), so the operation is unambiguous. It doesn't distinguish itself from the sibling create/get/list followup-template tools, which are equally plausible on name alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance and no alternatives named, even though glpi_get_itil_followup_template and glpi_create_itil_followup_template sit in the same family. The only inference available is that it modifies an existing template rather than creating one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_update_knowbase_categoryUpdate knowledge base categoryCDestructiveIdempotentInspect
Update a knowledge base category by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | Fields to update | |
| categoryId | Yes | Item ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=true, and openWorldHint=true, so the safety profile is covered by structured data. The description adds nothing on top: it does not say what 'update' destroys or overwrites, whether unspecified fields are preserved (partial vs full replace), or what happens to child categories/items. For a destructive mutation this is a real gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no padding or redundancy, and the identifying key is stated up front. It is efficient, though its brevity comes at the cost of the missing detail noted in other dimensions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained. However, for a destructive update whose payload is a free-form nested object, the definition omits the essential information an agent needs to invoke it correctly: which fields can be set and what the update semantics are.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema documents both top-level params, but the 'input' object is an unconstrained free-form object with no declared properties, so the agent has no idea which fields are updatable or what types/values they accept. The description does not compensate at all, offering no field list or format guidance beyond 'by ID'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Update) and resource (knowledge base category) plus the lookup key (by ID), which cleanly separates it from glpi_create_knowbase_category, glpi_get_knowbase_category, and glpi_list_knowbase_categories. It does not explicitly name or contrast with those siblings, so it lands just short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use context, no prerequisites (e.g., category must already exist), and no mention of alternatives such as create vs update. The only guidance is the implied 'you must have an ID', which is already obvious from the required parameter.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_update_knowbase_itemUpdate knowledge base itemCDestructiveIdempotentInspect
Update a knowledge base article by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | Fields to update | |
| knowbaseId | Yes | Item ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=true, idempotentHint=true, and openWorldHint=true, so the safety profile is covered elsewhere. The description adds nothing beyond that profile: it doesn't say whether the update replaces or merges fields, which fields are updatable, or what auth/permission is required for a destructive operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler, which is appropriately sized. It is arguably too terse for a destructive tool, but there is no wasted text to penalize.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and the annotations carry much of the behavioral load. However, for a destructive update taking an unconstrained input object, the description leaves the agent without the information needed to call it well.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both knowbaseId and input are documented in the schema and the baseline is 3. The phrase 'by ID' loosely reinforces knowbaseId, but the free-form 'input' object (additionalProperties: {}) is opaque in both places and the description does nothing to compensate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
It states a specific verb (update) and resource (knowledge base article) plus the lookup key (ID), which is clear. It does not distinguish itself from its siblings such as create_knowbase_item, get_knowbase_item, or list_knowbase_items, so any differentiation is left to the name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use or when-not-to-use guidance and no mention of alternatives. The agent gets no help deciding between this and update_knowbase_category, or between updating versus creating a knowbase item.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_update_problemUpdate problemBDestructiveIdempotentInspect
Update an existing problem by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | Fields to update | |
| problemId | Yes | Item ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=true, and openWorldHint=true. The description adds no behavioral context beyond restating that the operation updates an existing problem by ID, so it does not help the agent understand what is destroyed, how changes are applied, or any authorization constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no redundant or filler text. It is maximally concise for the amount of information it chooses to convey.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and annotations cover the safety profile. However, the 'input' parameter is an open object for update fields, and the description provides no additional guidance on what fields are valid or expected, leaving a gap for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3 even with minimal parameter detail in the description. The phrase 'by ID' maps to the required problemId parameter, but the description says nothing about the 'input' object or which fields it accepts.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Update an existing problem by ID.' This clearly distinguishes the tool from create, get, and list siblings. However, it does not explicitly differentiate it from other update tools such as glpi_update_ticket or glpi_update_change beyond the resource name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does 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, nor any prerequisite or exclusion conditions. The only implicit signal is the verb 'update,' which is sufficient to infer it modifies an existing problem, but no usage context is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_update_reservationUpdate reservationCDestructiveIdempotentInspect
Update an existing reservation by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | Fields to update (begin, end, comment, users_id) | |
| reservationId | Yes | Item ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=true, openWorldHint=true and readOnlyHint=false, so the safety profile is covered structurally. The description adds nothing beyond that — it doesn't say what fields get overwritten, whether omitted fields are preserved, or whether permissions are required, which is the kind of context a mutation tool benefits from.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler or repetition, which is appropriately sized for a simple two-parameter update. It is efficient, though the terseness edges toward under-specification rather than optimal economy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is a mutation with a nested input object, but an output schema and full annotations are present, so return values and safety traits needn't be restated. What remains missing is semantic context about the update itself (partial vs full replacement of fields, permission requirements), leaving the definition only minimally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: reservationId is documented as the item ID and the input object already enumerates the updatable fields (begin, end, comment, users_id). The description adds no format, validation, or nesting detail beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (Update) and resource (reservation) plus the lookup key (by ID), so the agent knows exactly what operation this performs. It does not, however, differentiate itself from the other reservation tools (glpi_create_reservation, glpi_get_reservation, glpi_list_reservations), which the name alone has to disambiguate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does 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 glpi_create_reservation or glpi_get_reservation, nor any stated preconditions (e.g., the reservation must already exist, required permissions). The single phrase 'existing reservation' implies a precondition but does not state one explicitly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_update_rule_actionUpdate rule actionBDestructiveIdempotentInspect
Update a rule action by ID. Fields: action_type, field, value.
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | Fields to update (action_type, field, value) | |
| actionId | Yes | Item ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=true and non-readOnly, so the safety profile is covered without description help. The description adds only the list of updatable fields; it says nothing about whether omitted fields are preserved, whether action_type can be changed after creation, or what a destructive update actually overwrites.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, verb-resource first and field list second, with zero filler. It is arguably under-specified rather than verbose, which is a completeness issue rather than a conciseness one.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described, and the annotation block carries the destructive/idempotent profile. However, for a destructive update tool whose input is an opaque nested object, the description omits field mutability, partial-update behavior, and how rule actions relate to their parent rules, leaving real gaps an agent would want filled.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema already documents 'actionId' as Item ID and 'input' as the fields-to-update object, so the description is largely repeating structured data. Because the nested 'input' object uses additionalProperties with no per-field typing, the enumeration of action_type/field/value adds marginal value over the schema text rather than new semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Update a rule action by ID') and identifies the three mutable fields, so the operation is unambiguous. It does not differentiate itself from adjacent rule tools (glpi_create_rule_action, glpi_list_rule_actions) or mention the rule/action hierarchy, but the core purpose is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites (e.g. does the parent rule need to exist, are some fields immutable after creation?), and no mention of alternatives such as glpi_create_rule_action for adding rather than editing. The agent must infer invocation conditions entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_update_ticketUpdate ticketCDestructiveIdempotentInspect
Update an existing ticket by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | Fields to update | |
| ticketId | Yes | Item ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=true, openWorldHint=true and readOnlyHint=false, so the safety profile is fully carried by structured data. The description adds no behavioral context of its own — no note on permission requirements, on whether the update is partial or full, or on what happens to fields omitted from the payload. It does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero padding, so nothing needs trimming. The problem is under-specification rather than verbosity — it is too sparse rather than too long.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive, open-world mutation whose payload is an unconstrained free-form object, the description is far too thin. An output schema exists so return values need no explanation, but the description should still cover valid fields, permission needs, and partial-update semantics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is nominally 100%, but the "input" parameter is an additionalProperties:{} free-form object described only as "Fields to update", so the schema does not actually tell the agent which ticket fields are settable. The description says nothing to compensate, leaving the payload contract undefined.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ("Update an existing ticket") and keys it on ID, which cleanly separates it from glpi_create_ticket and glpi_get_ticket. However, it does not name or contrast any sibling such as glpi_update_change or the ticket sub-resource tools (glpi_add_followup, glpi_add_solution).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does 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. A ticket can also be modified through glpi_add_followup, glpi_add_solution, glpi_add_ticket_user, glpi_add_ticket_task, and glpi_update_ticket_validation, and nothing tells the agent when a general update is the right call.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_update_ticket_validationUpdate ticket validationBDestructiveIdempotentInspect
Approve/refuse a validation (status: accepted/refused) or change the approver.
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | e.g. {status: 'accepted'} or {users_id_validate: 2} | |
| validationId | Yes | Item ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=true, and readOnlyHint=false, so the safety profile is covered. The description adds useful operational context by naming the two modes (status change vs. approver change) and the accepted/refused values. It still omits permission requirements and what the mutation affects, so it is additive 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tightly-packed sentence with zero waste, front-loading the primary action ('Approve/refuse') before the secondary one. Nothing needs trimming.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need no explanation, and annotations carry the safety profile. However, the 'input' object is a free-form additionalProperties bag, and the description does not clarify whether only status/users_id_validate are valid or whether other fields are accepted, nor who is authorized to perform the update.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the schema already documents both parameters; the baseline is 3. The description restates the payload shape (status accepted/refused, users_id_validate) that the schema's 'input' example already conveys, adding little beyond it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a clear verb ('Approve/refuse ... or change the approver') plus the target resource implied by the tool name (ticket validation). An agent can tell it apart from glpi_create_ticket_validation and glpi_list_ticket_validations by the mutating 'approve/refuse/change' framing. It does not explicitly name those siblings, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It enumerates the operations the tool performs but gives no when-to-use guidance, no prerequisites (e.g. must be the designated approver), and no conditions for choosing between approving, refusing, or reassigning. The alternative siblings are never mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_update_userUpdate userCDestructiveIdempotentInspect
Update an existing user by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | Fields to update | |
| userId | Yes | Item ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=true and openWorldHint=true, so the safety profile is covered elsewhere. The description adds nothing beyond them: no note on whether omitted fields are preserved, whether the update is partial or full replacement, or what happens to existing values.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short, front-loaded sentence with zero filler. It is efficient, but its brevity stems from under-specification rather than disciplined editing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need no explanation, and annotations cover safety. What is missing is the essential input knowledge: which user fields may be passed in the free-form `input` object. For a destructive mutation tool with an untyped nested parameter, this is a significant gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3; 'by ID' merely restates the userId schema description ('Item ID'). Critically, the `input` parameter is a free-form object with additionalProperties {} and only 'Fields to update' as documentation, so the description does not compensate for the schema's silence on which user fields are valid.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Update an existing user') and scopes it to a single item via ID, which distinguishes it from glpi_create_user and glpi_get_user. It does not, however, say anything about what kinds of fields are updatable, which is the natural differentiator from sibling update tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance: nothing about needing a pre-existing userId (e.g., from glpi_get_user or glpi_search_user_by_email), no mention of prerequisites or permissions, and no comparison against alternatives. An agent must infer the whole workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glpi_update_webhookUpdate webhookCDestructiveIdempotentInspect
Update a webhook definition by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | Webhook fields to change (e.g. { "url": "https://example.com/hook", "is_active": 1 }) | |
| webhookId | Yes | Item ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=true, and openWorldHint=true, so the safety profile is covered. The description adds nothing beyond the annotation layer: it doesn't say updates are partial vs. full, which fields are mutable, or that unspecified fields are left untouched, despite 'input' being an open additionalProperties object.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short, front-loaded sentence with zero wasted words; the verb and scoping key appear immediately. It is arguably too terse to carry useful detail, but it is not padded or buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values needn't be explained, and annotations cover the safety/behavioral profile. What remains missing is guidance on partial vs. full update semantics for the open 'input' object and any routing versus the sibling setter tools — enough of a gap to keep this at minimum-viable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% — both webhookId and the input object are documented, including an inline example of the input shape, so the schema does the heavy lifting. The description's 'by ID' merely echoes the webhookId parameter and adds no new semantics. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Update') and resource ('a webhook definition') plus the lookup key ('by ID'), so an agent knows exactly what the tool does. It does not differentiate itself from the nearby sibling glpi_set_webhook_active, which also mutates a webhook, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no exclusions, and no mention of the alternative glpi_set_webhook_active for toggling activation state. Usage can only be inferred from the verb.
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.
102 tool updates
- First observed
glpi_add_change_followup - First observed
glpi_add_change_solution - First observed
glpi_add_followup - First observed
glpi_add_problem_followup - First observed
glpi_add_problem_solution - First observed
glpi_add_solution - First observed
glpi_add_ticket_group - First observed
glpi_add_ticket_task - First observed
glpi_add_ticket_user - First observed
glpi_change_active_entities - First observed
glpi_count_items - First observed
glpi_create_asset - First observed
glpi_create_change - First observed
glpi_create_document - First observed
glpi_create_document_item - First observed
glpi_create_entity - First observed
glpi_create_itil_followup_template - First observed
glpi_create_knowbase_category - First observed
glpi_create_knowbase_item - First observed
glpi_create_problem - First observed
glpi_create_reservation - First observed
glpi_create_rule_action - First observed
glpi_create_rule_criteria - First observed
glpi_create_rule_ticket - First observed
glpi_create_ticket - First observed
glpi_create_ticket_validation - First observed
glpi_create_user - First observed
glpi_create_webhook - First observed
glpi_get_asset - First observed
glpi_get_asset_details - First observed
glpi_get_change - First observed
glpi_get_document - First observed
glpi_get_document_item - First observed
glpi_get_entity - First observed
glpi_get_full_session - First observed
glpi_get_group - First observed
glpi_get_itil_category - First observed
glpi_get_itil_followup_template - First observed
glpi_get_knowbase_category - First observed
glpi_get_knowbase_item - First observed
glpi_get_location - First observed
glpi_get_my_entities - First observed
glpi_get_my_profiles - First observed
glpi_get_problem - First observed
glpi_get_reservation - First observed
glpi_get_rule_ticket - First observed
glpi_get_ticket - First observed
glpi_get_ticket_stats - First observed
glpi_get_user - First observed
glpi_get_webhook - First observed
glpi_list_assets - First observed
glpi_list_change_followups - First observed
glpi_list_change_tasks - First observed
glpi_list_changes - First observed
glpi_list_document_items - First observed
glpi_list_documents - First observed
glpi_list_entities - First observed
glpi_list_followups - First observed
glpi_list_groups - First observed
glpi_list_itil_categories - First observed
glpi_list_itil_followup_templates - First observed
glpi_list_knowbase_categories - First observed
glpi_list_knowbase_items - First observed
glpi_list_locations - First observed
glpi_list_my_tickets - First observed
glpi_list_problem_followups - First observed
glpi_list_problem_tasks - First observed
glpi_list_problems - First observed
glpi_list_reservation_items - First observed
glpi_list_reservations - First observed
glpi_list_rule_actions - First observed
glpi_list_rule_criteria - First observed
glpi_list_rule_ticket_actions - First observed
glpi_list_rule_ticket_criteria - First observed
glpi_list_rules - First observed
glpi_list_search_options - First observed
glpi_list_ticket_groups - First observed
glpi_list_ticket_tasks - First observed
glpi_list_ticket_users - First observed
glpi_list_ticket_validations - First observed
glpi_list_tickets - First observed
glpi_list_timeline - First observed
glpi_list_users - First observed
glpi_list_webhook_deliveries - First observed
glpi_list_webhooks - First observed
glpi_retry_webhook_delivery - First observed
glpi_search - First observed
glpi_search_user_by_email - First observed
glpi_set_webhook_active - First observed
glpi_update_asset - First observed
glpi_update_change - First observed
glpi_update_entity - First observed
glpi_update_itil_followup_template - First observed
glpi_update_knowbase_category - First observed
glpi_update_knowbase_item - First observed
glpi_update_problem - First observed
glpi_update_reservation - First observed
glpi_update_rule_action - First observed
glpi_update_ticket - First observed
glpi_update_ticket_validation - First observed
glpi_update_user - First observed
glpi_update_webhook
Related MCP Connectors
MCP server for Support & Service Management
Remote MCP server for managing Muninx tickets, messages, ticket search, and support analytics.
MCP server for SmartAgent CRM: leads, tasks, sales pipelines, property listings
MCP server for lacita - appointment management software
Related MCP Servers
- AlicenseCqualityAmaintenanceMCP server for GLPI integration, providing tools for ITIL management (tickets, problems, changes, knowledge base, stats, assets, and administration) via the GLPI API.30MIT
- AlicenseBqualityCmaintenanceMCP server allowing an AI assistant to interact directly with your GLPI instance via its REST API, enabling ticket management, knowledge base operations, and statistics.404-
- FlicenseNot gradedqualityDmaintenanceMCP server for iTop ITSM that provides 19 tools for analytics, ticket management, comments, knowledge base, and CI impact analysis, enabling AI assistants to interact with iTop.1-
- AlicenseBqualityBmaintenanceEnables AI assistants to interact with a GLPI instance through its REST API, allowing natural-language consultation, creation, and updating of tickets, followups, tasks, solutions, knowledge base articles, suppliers, contacts, contracts, and statistics.52-
Glama MCP Gateway
Add one secure layer between your agents and this server.