Skip to main content
Glama

NexTool MCP for GLPI

npm NexTools-Solutions/nextool-mcp-glpi MCP server

Open-source Model Context Protocol server that connects AI assistants (Claude, ChatGPT, Cursor, VS Code, Windsurf…) to your GLPI service desk: tickets, ITIL objects (problems, changes), assets, knowledge base, users, rules and webhooks. It works with GLPI 10 and 11, and supports both the REST API v1 and the GLPI 11 API v2 in one server.

Not affiliated with Teclib'. GLPI is a registered trademark of Teclib'.

Package

What it is

@nextoolsolutions/mcp-glpi

The MCP server (stdio and HTTP) and a library to embed it

@nextoolsolutions/mcp-glpi-core

Shared transport, write policy, idempotency and payload formatting

Two ways to use it:

  • Hosted, early access: nothing to install. Sign in with a NexTool account, then add one URL as a connector in Claude or ChatGPT. Request access at https://nextoolsolutions.com/mcp. How it works, step by step: https://nextoolsolutions.com/en/mcp/como-funciona.

  • Local, open source (this repository): runs on your machine with your GLPI credentials. It is free and also works with GLPI instances that are only reachable on your intranet.


1. Prepare GLPI (both ways)

  1. Enable the REST API: Setup → General → API. Turn on "Enable REST API" and "Enable login with external token".

  2. API client (optional but recommended): in the same screen, add an API client and copy its App-Token. If you restrict it by IP, allow the address the MCP connects from.

  3. User token: Administration → Users → (the user) → Remote access keys. Copy the API token. Every action runs as this user and follows their GLPI profile and entities. Use a dedicated user with only the rights the assistant needs.

  4. GLPI 11 API v2 (optional): create an OAuth client in GLPI 11 and note its client ID and secret. You also need a username and password, for the password grant.

Related MCP server: glpi-mcp-server

2. Local install (open source)

Published on npm as @nextoolsolutions/mcp-glpi and listed in the official MCP Registry as com.nextoolsolutions/glpi. Requires Node.js 18+.

GLPI_URL=https://glpi.example.com GLPI_USER_TOKEN=xxx GLPI_APP_TOKEN=yyy npx -y @nextoolsolutions/mcp-glpi

From source instead: clone this repository, then npm ci && npm run build in mcp-glpi-core and in mcp-glpi, and run node mcp-glpi/dist/index.js.

Environment variables

Variable

Meaning

GLPI_URL

GLPI base URL, e.g. https://glpi.example.com (REST API v1)

GLPI_USER_TOKEN

User API token (step 1.3)

GLPI_APP_TOKEN

App-Token of the API client (step 1.2), optional

GLPI_V2_URL, GLPI_V2_CLIENT_ID, GLPI_V2_CLIENT_SECRET, GLPI_V2_USERNAME, GLPI_V2_PASSWORD

GLPI 11 API v2 (OAuth). Optional; enables the glpi_v2_* tools

GLPI_TOOLSETS

Tool presets: core (recommended start), tickets, itil, assets, kb, documents, users, search, admin, v2. Combine with commas. Default: every tool

GLPI_READ_ONLY

true blocks every write before it reaches GLPI

GLPI_ALLOW_DELETE

true enables delete tools (default off); they then require a written reason

All options are listed in mcp-glpi/README.md.

Claude Code

claude mcp add glpi \
  -e GLPI_URL=https://glpi.example.com -e GLPI_USER_TOKEN=xxx -e GLPI_APP_TOKEN=yyy -e GLPI_TOOLSETS=core \
  -- npx -y @nextoolsolutions/mcp-glpi

Claude Desktop

Edit claude_desktop_config.json (Settings → Developer → Edit config) and restart Claude Desktop:

{
  "mcpServers": {
    "glpi": {
      "command": "npx",
      "args": ["-y", "@nextoolsolutions/mcp-glpi"],
      "env": {
        "GLPI_URL": "https://glpi.example.com",
        "GLPI_USER_TOKEN": "xxx",
        "GLPI_APP_TOKEN": "yyy",
        "GLPI_TOOLSETS": "core"
      }
    }
  }
}

Cursor / Windsurf / VS Code

Use the same command/args/env block:

  • Cursor: ~/.cursor/mcp.json (or .cursor/mcp.json in a project).

  • Windsurf: ~/.codeium/windsurf/mcp_config.json.

  • VS Code: .vscode/mcp.json. The top-level key there is "servers" instead of "mcpServers", and each entry also takes "type": "stdio".

Docker

The Dockerfile builds the stdio server from this repository (node:22-alpine, no credentials inside). Without GLPI_* variables it still starts and lists its tools, which is what directories that inspect servers need.

docker build -t nextool-mcp-glpi .
docker run -i --rm -e GLPI_URL=https://glpi.example.com -e GLPI_USER_TOKEN=xxx -e GLPI_TOOLSETS=core nextool-mcp-glpi

Shared HTTP server (optional)

To serve several users or GLPI instances from one machine, run mcp-glpi/dist/http.js (Streamable HTTP, Bearer keys stored as SHA-256 hashes). See "Two ways to run" in the package README.

3. Hosted version (early access)

The hosted NexTool MCP lives at https://mcp.nextoolsolutions.com/mcp. It adds:

  • sign-in through the NexTool portal (OAuth 2.1);

  • one-click connectors for Claude and ChatGPT;

  • GLPI credentials encrypted so that only the connector can use them;

  • per-user rate limits and audit logs, without storing prompts or results.

Your GLPI must be reachable from the internet. If it only accepts known IPs, the portal shows the address to allow when you test the connection.

Request early access: https://nextoolsolutions.com/mcp. Once you are in:

Client

How to connect

Claude (web, desktop, mobile)

Settings → Connectors → Add custom connector → URL https://mcp.nextoolsolutions.com/mcp → sign in with your NexTool account and authorize

ChatGPT

Add a connector/app with the same URL (developer mode while the app is in review)

Claude Code

claude mcp add --transport http nextool https://mcp.nextoolsolutions.com/mcp, then /mcp to sign in. Or use an API key from My account → NexTool MCP: add --header "Authorization: Bearer nxm_…"

Cursor

Add to Cursor (server URL https://mcp.nextoolsolutions.com/mcp, sign-in by OAuth), or the same URL with header Authorization: Bearer nxm_…

VS Code

Server URL https://mcp.nextoolsolutions.com/mcp with header Authorization: Bearer nxm_…

Connect your GLPI once at app.nextoolsolutions.com → My account → NexTool MCP (GLPI URL plus the tokens from step 1). Then click Test connection.

Safety

  • Every tool carries MCP annotations (readOnlyHint, destructiveHint, idempotentHint, openWorldHint), so clients can ask before changing data.

  • Deletes are refused unless GLPI_ALLOW_DELETE=true (always refused on the hosted free plan).

  • GLPI_READ_ONLY=true blocks every write.

  • Identical create calls within a short window are replayed, not repeated.

  • Redirects are never followed. The API v2 client talks only to the configured GLPI origin.

Troubleshooting

Symptom

Likely cause

ERROR_GLPI_LOGIN_USER_TOKEN / 401

wrong or regenerated user token

ERROR_WRONG_APP_TOKEN_PARAMETER

App-Token missing or wrong for that API client

ERROR_NOT_ALLOWED_IP

the API client restricts IPs: allow the address the MCP connects from

HTML instead of JSON

GLPI_URL points to a login page or proxy, not to the GLPI root

"redirect not followed"

GLPI_URL redirects (e.g. http→https or another host): use the final URL

Directories and release

  • MCP Registry: com.nextoolsolutions/glpi (mcp-glpi/server.json): the npm package (stdio) and the hosted server as a remote.

  • Cursor plugin: .cursor-plugin/plugin.json + mcp.json (hosted server, OAuth). Direct install link: cursor://anysphere.cursor-deeplink/mcp/install?name=nextool-glpi&config=eyJ1cmwiOiJodHRwczovL21jcC5uZXh0b29sc29sdXRpb25zLmNvbS9tY3AifQ==.

  • Glama: glama.json names the maintainers; the Dockerfile is the build they run.

Pushing a tag v<mcp-glpi version> runs release.yml: tests, npm (versions already published are skipped), then the MCP Registry. Repository secrets:

Secret

What it is

NPM_TOKEN

npm granular automation token with publish rights on the @nextoolsolutions scope

MCP_PRIVATE_KEY

Ed25519 private key (32-byte seed, hex) for the registry DNS login on nextoolsolutions.com; its public key is the v=MCPv1; k=ed25519; p=… TXT record on the domain apex

Development

cd mcp-glpi-core && npm ci && npm run build && npm test
cd ../mcp-glpi && npm ci && npm run build && npm test

This repository is a mirror published from NexTool's internal monorepo. Issues and pull requests are welcome here. Security reports: see SECURITY.md.

License

MIT © NexTool Solutions

Available Tools

111 tools
glpi_add_change_followupAdd followup to changeCInspect

Add a comment/followup to a change.

NameRequiredDescriptionDefault
contentYesFollowup text content
changeIdYesChange ID
is_privateNo1=private, 0=public

Output Schema

NameRequiredDescription
dataNo
replayedNoTrue when an identical recent create was returned instead of repeated

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already disclose the key traits: readOnlyHint=false (a write), idempotentHint=false (repeats create duplicates), destructiveHint=false (safe/non-destructive). The description adds nothing beyond this - it does not mention that followups are appended and irreversible, nor describe the effect of is_private. With annotations present the bar is lower, but no additional context is supplied.

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

Conciseness4/5

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

A single short sentence with zero waste and the action front-loaded. It is efficient, though its brevity means little guidance is packed in.

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

Completeness3/5

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

The tool is simple with an output schema (so return values need not be explained), full parameter coverage, and annotations covering the safety profile, making the definition minimally viable. However, it says nothing about duplicate-creation behavior (non-idempotent) or the visibility implications relevant to this mutation.

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

Parameters3/5

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

Schema description coverage is 100%, so all three parameters (content, changeId, is_private) are already documented in the schema, establishing the baseline of 3. The phrase 'comment/followup' loosely maps to the content parameter but adds no format, length, or visibility semantics beyond the schema.

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

Purpose4/5

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

The description states a specific verb ('Add') and resource ('comment/followup to a change'), so the operation is unambiguous. It does not distinguish this tool from near-identical siblings such as glpi_add_problem_followup or glpi_add_followup, but the resource noun makes the target clear.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives like glpi_add_followup, glpi_add_change_solution, or glpi_list_change_followups. No prerequisites (e.g., valid change ID, permissions) are stated, leaving usage 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_add_change_solutionAdd solution to changeAInspect

Add a solution to a change (status changes to Solved).

NameRequiredDescriptionDefault
contentYesSolution text content
changeIdYesChange ID

Output Schema

NameRequiredDescription
dataNo
replayedNoTrue when an identical recent create was returned instead of repeated

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already declare this a non-readonly, non-idempotent write, and the description adds a genuinely useful side effect beyond them: the change status transitions to Solved. It does not state whether an existing solution is overwritten, required permissions, or notification side effects.

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

Conciseness5/5

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

A single short sentence, front-loaded with the action, with the state-change consequence in parentheses. Nothing wasted.

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

Completeness3/5

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

An output schema exists so return values need no explanation, and annotations cover the safety profile. However, for a mutating tool that changes status to Solved, the description omits whether the change must be in a particular state beforehand or whether permissions are required, leaving 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.

Parameters3/5

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

Schema description coverage is 100% with only two parameters, so the schema already documents changeId and content. The description adds nothing about parameter formats or constraints, which is the expected baseline when the schema does the work.

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

Purpose4/5

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

States a specific verb (add) and resource (solution to a change), which is enough to distinguish it from the ticket and problem solution siblings by resource. It does not explicitly name those alternative tools, but the 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.

Usage Guidelines2/5

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

The description never says when to use this tool versus glpi_add_change_followup, glpi_update_change, or the ticket/problem solution variants. Usage must be inferred entirely from the name; no prerequisites or exclusions are given.

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.

NameRequiredDescriptionDefault
contentYesFollowup text content
ticketIdYesItem ID
users_idNoAuthor user ID (default: session user)
is_privateNo1 for private, 0 for public (default: 0)

Output Schema

NameRequiredDescription
dataNo
replayedNoTrue when an identical recent create was returned instead of repeated

TDQS

C2.8/5.0
Behavior2/5

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-and-non-idempotent profile is covered structurally. The description adds nothing beyond that: it does not warn that repeated calls create duplicate followups, does not mention the private/public visibility effect, and does not state 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.

Conciseness3/5

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

The single sentence is free of padding and front-loaded, which is good. But its brevity here stems from under-specification rather than disciplined editing, so it lands at an adequate-but-thin 3 rather than a 5.

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

Completeness2/5

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

With four parameters, an output schema, and annotations in place, the structured metadata carries most of the load, but the description still omits the sibling routing and the duplicate-followup behavior an agent should know before calling. For a mutation tool in a family of near-identical followup tools, this is a meaningful gap.

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

Parameters3/5

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

Schema description coverage is 100%, so all four parameters (content, ticketId, users_id, is_private) are already documented in the schema, including defaults and the 1/0 privacy convention. The description adds no parameter-level meaning beyond what the schema provides, making the baseline 3 correct.

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

Purpose4/5

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

The description gives a clear verb ("Add") and resource ("comment/followup to a ticket"), so the agent knows exactly what the tool produces. It does not, however, differentiate itself from the several sibling followup tools (glpi_add_problem_followup, glpi_add_change_followup), which is the only thing keeping it from a 5.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no prerequisites, and no mention of the alternative followup tools that exist for problems and changes. The agent must infer from the name alone that this is ticket-scoped rather than problem- or change-scoped.

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.

NameRequiredDescriptionDefault
contentYesFollowup text content
problemIdYesProblem ID
is_privateNo1=private, 0=public

Output Schema

NameRequiredDescription
dataNo
replayedNoTrue when an identical recent create was returned instead of repeated

TDQS

C2.9/5.0
Behavior2/5

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. The description adds nothing else – no indication that the followup becomes part of the problem timeline, whether is_private affects visibility in a meaningful way, 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.

Conciseness4/5

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

A single short sentence with zero filler, front-loading the action. It is efficient, though arguably terse enough that it shades into under-specification rather than ideal conciseness.

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

Completeness3/5

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

An output schema exists, so return values need not be explained. But for a mutation tool the description omits when to use it versus sibling followup/solution tools and any behavioral context, leaving the definition only minimally adequate.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents problemId, content, and is_private (including the 1=private/0=public mapping). The description adds no parameter meaning beyond that, making the baseline 3 appropriate.

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

Purpose4/5

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

States a specific verb (add) and resource (comment/followup to a problem), so an agent can tell it appends a followup to a problem record. It does not, however, differentiate itself from the many sibling followup tools (glpi_add_followup, glpi_add_change_followup, glpi_add_problem_solution); the problem-scope is only inferable from the name.

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

Usage Guidelines2/5

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

The description gives no when-to-use guidance and names no alternatives. With near-identical siblings (glpi_add_followup for tickets, glpi_add_change_followup for changes, glpi_add_problem_solution), an agent gets no help choosing among them beyond 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_add_problem_solutionAdd solution to problemAInspect

Add a solution to a problem (status changes to Solved).

NameRequiredDescriptionDefault
contentYesSolution text content
problemIdYesProblem ID

Output Schema

NameRequiredDescription
dataNo
replayedNoTrue when an identical recent create was returned instead of repeated

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare the write/safety profile (readOnlyHint=false, destructiveHint=false, idempotentHint=false, openWorldHint=false). The description adds a genuine side effect not present in the annotations: the problem's status is changed to Solved as a result of the call. It stops short of covering repeatability (adding a second solution) 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.

Conciseness5/5

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

A single short sentence with the action front-loaded and the state consequence attached where it matters most. No filler, nothing to trim.

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

Completeness4/5

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

For a low-complexity two-parameter mutation tool with full schema coverage, complete annotations, and an output schema, the description covers purpose and the key state change. The one meaningful gap is disambiguation from the ticket/change solution siblings, which the description never addresses.

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

Parameters3/5

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

Schema description coverage is 100% and both parameters (problemId, content) are documented in the schema, so the baseline is 3. The description adds no format, constraint, or meaning beyond what the schema already states.

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

Purpose4/5

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

The description states a specific verb and resource ('Add a solution to a problem'), which is clear on its own. It does not, however, differentiate from near-identical siblings such as glpi_add_change_solution or glpi_add_solution, which an agent could easily confuse with this one.

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

Usage Guidelines2/5

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

There is no statement of when to use this tool versus the sibling solution tools (glpi_add_solution, glpi_add_change_solution) or when a followup (glpi_add_problem_followup) is more appropriate instead. The parenthetical about status change is a consequence, 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_add_solutionAdd solution to ticketAInspect

Add a solution to a ticket (status changes to Solved).

NameRequiredDescriptionDefault
contentYesSolution text content
ticketIdYesItem ID

Output Schema

NameRequiredDescription
dataNo
replayedNoTrue when an identical recent create was returned instead of repeated

TDQS

A3.6/5.0
Behavior4/5

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=false), so the bar is lower. The description adds a genuinely useful behavioral fact not captured by annotations: the ticket status transitions to Solved as a side effect. It still omits whether an existing solution is replaced and whether specific permissions are required.

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

Conciseness5/5

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

A single short sentence with the core action front-loaded and the side effect in parentheses. Nothing is wasted and nothing is buried.

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

Completeness4/5

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 description notes the state change, which is the key behavioral fact for a mutation tool. Remaining gaps (replacement of prior solutions, permission requirements) are minor given the supporting structured data.

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

Parameters3/5

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

Schema description coverage is 100% and both parameters are documented there, so the baseline of 3 applies. The description adds no additional meaning about ticketId or content format beyond what the schema already provides.

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

Purpose4/5

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

States a specific verb and resource ('add a solution to a ticket'), and naming 'ticket' disambiguates it from the sibling solution tools glpi_add_change_solution and glpi_add_problem_solution. It stops short of explicitly routing the agent away from those siblings, but the resource noun is clear enough to select correctly.

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

Usage Guidelines2/5

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

The description gives no when-to-use guidance, no prerequisites (e.g. ticket must be open/assigned), and does not name alternatives such as glpi_add_followup or the change/problem solution variants. Usage context is entirely 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_add_ticket_groupAdd group to ticketBInspect

Add a group to a ticket as requester, observer, or assigned. type: 1=Requester, 2=Assigned, 3=Observer.

NameRequiredDescriptionDefault
typeYes1=Requester, 2=Assigned, 3=Observer
groups_idYesGroup ID
tickets_idYesTicket ID

Output Schema

NameRequiredDescription
dataNo
replayedNoTrue when an identical recent create was returned instead of repeated

TDQS

B3.4/5.0
Behavior3/5

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 and idempotency profile is covered. The description adds the role mapping, which is behavioral context (the group becomes requester/observer/assigned), but says nothing about duplicate handling, permissions, or side effects beyond what the schema and annotations already convey.

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

Conciseness5/5

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

Two short sentences with no filler; the core action is front-loaded and the role mapping follows immediately. Nothing an agent doesn't need.

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

Completeness4/5

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

For a simple relation-creation tool with full schema coverage, annotations, and an output schema, the description is nearly complete for correct invocation. It falls short only on selection context relative to siblings, which the usage guidelines also omit.

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

Parameters3/5

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

Schema description coverage is 100% and the schema already documents tickets_id, groups_id, and the type enum with identical wording. The description merely repeats the type mapping, adding no meaning beyond the structured fields, so the baseline of 3 applies.

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

Purpose4/5

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

States a specific verb and resource ('Add a group to a ticket') and enumerates the roles the group can take. The resource 'group' naturally distinguishes it from the sibling glpi_add_ticket_user, though no sibling is named explicitly.

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

Usage Guidelines2/5

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

The description explains what the tool does but gives no when-to-use guidance, no prerequisites, and no alternatives (e.g., glpi_add_ticket_user for users or glpi_list_ticket_groups to inspect existing groups). An 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_add_ticket_taskAdd task to ticketCInspect

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

NameRequiredDescriptionDefault
stateNo0=Info, 1=To do, 2=Done
contentYesTask content
actiontimeNoDuration in seconds
is_privateNo1=private, 0=public
tickets_idYesTicket ID
users_id_techNoAssigned technician user ID

Output Schema

NameRequiredDescription
dataNo
replayedNoTrue when an identical recent create was returned instead of repeated

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already disclose the safety profile (not read-only, not destructive, not idempotent), so the description carries a lower burden, but it adds nothing behavioral beyond that — no permission requirements, no duplicate-handling, no note on how private tasks differ. The remaining text merely restates schema fields.

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

Conciseness4/5

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

Two front-loaded sentences with no filler: the purpose comes first, then the required/optional field breakdown. Efficient, though the field enumeration largely duplicates the schema.

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

Completeness3/5

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

An output schema exists so return values need not be described, and annotations cover safety, but for a mutation tool the description omits any usage context, side effects, or prerequisites. It is minimally adequate rather than complete.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents every parameter. The description repeats the field list and value meanings (state 0/1/2, actiontime in seconds) rather than adding syntax or format detail 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.

Purpose4/5

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

The description gives a precise verb+resource ('Add a task to a ticket') that cleanly separates it from siblings like glpi_add_followup, glpi_add_ticket_user, and the read counterpart glpi_list_ticket_tasks. It does not, however, explicitly name any alternative to help route the agent.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no prerequisites, and no mention of the sibling tools an agent might confuse this with (followups, solutions, ticket users). Usage can only be inferred 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.

NameRequiredDescriptionDefault
typeYes1=Requester, 2=Assigned, 3=Observer
users_idYesUser ID
tickets_idYesTicket ID

Output Schema

NameRequiredDescription
dataNo
replayedNoTrue when an identical recent create was returned instead of repeated

TDQS

B3.2/5.0
Behavior3/5

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=false), so the description is not obligated to restate it. It adds the fact that a user can occupy one of three roles, but says nothing about duplicate assignments, notifications, or required permissions.

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

Conciseness4/5

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

Two short sentences, front-loaded with the core action, and the role mapping is placed where an agent will read it. Slightly redundant with the schema's type description, but there is no filler.

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

Completeness4/5

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 all three required parameters are covered by the schema. For a simple, fully-specified mutation the description is adequate, with only duplicate-handling behavior left unstated.

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

Parameters3/5

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

Schema description coverage is 100%, so tickets_id, users_id, and the type enum are already documented in the schema. The description's type mapping repeats the schema verbatim and adds no extra meaning, making the baseline 3 correct.

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

Purpose4/5

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

States a specific verb and resource ("Add a user to a ticket") and enumerates the three role kinds, so the operation is unambiguous. It doesn't name or contrast any sibling (e.g., glpi_add_ticket_group, glpi_list_ticket_users), but the scope is clear from the name-plus-description.

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

Usage Guidelines2/5

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

No when-to-use or when-not-to-use guidance is given, and no alternative is named even though close siblings exist (glpi_add_ticket_group, glpi_delete_ticket_user, glpi_update_ticket). The role list implies intent but supplies no routing logic.

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 entityA
Destructive
Inspect

Change the active entity for the current session. Essential for multi-entity GLPI instances. Use is_recursive=true to include sub-entities.

NameRequiredDescriptionDefault
entityIdYesEntity ID to switch to
is_recursiveNoInclude sub-entities (default: false)

Output Schema

NameRequiredDescription
dataNo

TDQS

A4/5.0
Behavior3/5

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

Annotations already carry the full safety profile (readOnlyHint=false, destructiveHint=true, idempotentHint=false), so the bar is lower. The description usefully adds session scoping and the multi-entity context, but it never explains what the destructiveHint implies, whether the switch is persisted or session-only, or what happens if the entity is not accessible to the user.

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

Conciseness5/5

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

Three short sentences, front-loaded with the core action, then rationale, then the parameter hint. No filler and nothing repeated.

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

Completeness4/5

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 the tool is a simple two-parameter session switch. The description covers purpose, applicability, and the recursive option; only edge behavior (invalid/inaccessible entity, effect on subsequent calls) is unaddressed, which is a minor gap here.

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

Parameters3/5

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

Schema description coverage is 100%, so both parameters are already documented in the schema. "Use is_recursive=true to include sub-entities" largely restates the schema's own "Include sub-entities (default: false)" and adds no extra syntax, format, or constraint detail. 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.

Purpose5/5

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

The description names a specific verb and resource ("Change the active entity") and scopes it precisely to the current session, which distinguishes it from the sibling glpi_update_entity (which edits entity records) and glpi_get_my_entities. An agent can separate it from all other entity tools 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.

Usage Guidelines4/5

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

"Essential for multi-entity GLPI instances" gives a clear condition that selects this tool over the entity CRUD siblings, and the recursive hint tells the caller how to widen scope. It lacks explicit when-not guidance (e.g. that this is a session switch, not a persistent change) and never names an alternative tool.

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

glpi_count_itemsCount itemsA
Read-onlyIdempotent
Inspect

Count matching items without transferring them — answers 'how many' in one cheap call. Use glpi_list_search_options to discover criteria field IDs.

NameRequiredDescriptionDefault
criteriaNoArray of {field, searchtype, value, link} — same shape as glpi_search
itemtypeYesItem type, e.g. Ticket, Computer, User

Output Schema

NameRequiredDescription
dataYes

TDQS

A4.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, so the safety profile is fully covered. The description adds the behavioral note that no data is transferred and the call is cheap, which is genuine but modest added context; it says nothing about result shape or limits. A 3 is appropriate against a rich annotation set.

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

Conciseness5/5

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

Two compact sentences, no padding, with the core purpose front-loaded and the companion-tool pointer trailing. Every clause earns its place.

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

Completeness5/5

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

With an output schema present and both parameters documented in the schema, the description only needs to cover purpose, the cheap-count rationale, and how to build criteria — all of which it addresses. 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.

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3; however, the description adds meaning the schema does not by directing the agent to glpi_list_search_options to discover valid criteria field IDs, which is the main ambiguity for the 'criteria' array. This is a real value-add beyond the structured fields.

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

Purpose5/5

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

States a specific verb and resource ('Count matching items') plus a scope qualifier ('without transferring them'), which functionally separates it from the search/list siblings that return records. An agent can tell what this does and how it differs from glpi_search 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.

Usage Guidelines4/5

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

Gives clear context — use it to answer 'how many' cheaply — and points to glpi_list_search_options as the way to discover criteria field IDs. It does not explicitly name glpi_search as the alternative when full records are needed or state when not to use this, so it falls short of a full 5.

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

glpi_create_assetCreate assetBInspect

Create an asset. Common fields: name, entities_id, serial, otherserial, locations_id, states_id, manufacturers_id, users_id, comment.

NameRequiredDescriptionDefault
inputYesAsset fields
asset_typeYesAsset itemtype, e.g. Computer, Monitor, Printer, NetworkEquipment, Software

Output Schema

NameRequiredDescription
dataNo
replayedNoTrue when an identical recent create was returned instead of repeated

TDQS

B3.3/5.0
Behavior3/5

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/non-idempotent/non-destructive profile is covered. The description adds only a modest hint via 'Common fields', implying field sets vary by asset type, but says nothing about type-specific requirements, auth, or failure modes.

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

Conciseness4/5

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

Two tight sentences, front-loaded with the operation and followed by the useful field list. No filler, though it is terse to the point of under-specification rather than wasteful.

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

Completeness3/5

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

An output schema exists, so return values need not be described. However, for a polymorphic tool spanning nine asset types with a freeform input object, the description omits which fields are required or type-specific, leaving a real gap for correct invocation.

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

Parameters4/5

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

Schema coverage is nominally 100%, but the critical 'input' param is a freeform object with no documented fields, so the description's field list (name, entities_id, serial, etc.) adds genuine meaning the schema lacks. asset_type semantics (the enum) are only covered by the schema, not expanded here.

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

Purpose4/5

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

States a specific verb (Create) and resource (asset), so the operation is unambiguous. It does not differentiate itself from siblings like glpi_update_asset or glpi_list_assets, but the create semantics are clear from the verb.

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

Usage Guidelines2/5

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

There is no guidance on when to use this versus glpi_update_asset or glpi_create_document, no prerequisites, and no indication of permissions or required context. It simply says what it does, leaving all usage 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_create_changeCreate changeCInspect

Create a new change. Common fields: name, content, entities_id, users_id_requester.

NameRequiredDescriptionDefault
inputYesChange fields

Output Schema

NameRequiredDescription
dataNo
replayedNoTrue when an identical recent create was returned instead of repeated

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=false, idempotentHint=false, destructiveHint=false, and openWorldHint=false, so the mutation/non-idempotent profile is covered. The description adds no behavioral context beyond restating creation - no auth requirements, no side effects, no note that a follow-up update is required to add solutions.

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

Conciseness4/5

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

Two compact sentences, front-loaded with the primary action and then the useful field hint. No filler, though the second sentence is quite terse for the value it carries.

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

Completeness3/5

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

An output schema exists, so return values need not be described. But for a create tool whose input schema is a free-form blob, the description leaves the caller without field requirements, permissions, or minimum viable input.

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

Parameters3/5

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

The schema exposes only an opaque free-form 'input' object labeled 'Change fields' with additionalProperties, so the description's list of common fields (name, content, entities_id, users_id_requester) adds genuine meaning the schema lacks. However, it names only four of the many possible ITIL change fields and gives no types or required/optional status.

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

Purpose4/5

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

States a specific verb and resource ('Create a new change'), which is clear enough to distinguish from glpi_update_change, glpi_get_change, and glpi_list_changes. It doesn't explicitly name a sibling for differentiation, but the resource+action pairing is unambiguous.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no alternatives (e.g. glpi_create_ticket/glpi_create_problem), and no prerequisites such as required entities or permissions. The agent must infer everything about applicability.

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.

NameRequiredDescriptionDefault
inputYesDocument fields

Output Schema

NameRequiredDescription
dataNo
replayedNoTrue when an identical recent create was returned instead of repeated

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, idempotentHint=false and openWorldHint=false, so the safety profile is covered. The description adds one useful behavioral nuance with '(metadata)' – that this creates a record rather than uploading file content – but says nothing about permissions, required fields, or side effects. With annotations carrying the safety burden, this is an adequate 3.

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

Conciseness4/5

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

Two short fragments, front-loaded with the action, with no wasted prose. The trailing 'etc.' is an imprecise shortcut that slightly weakens precision.

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

Completeness3/5

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

An output schema exists, so return values need no explanation. However, for a creation tool with a fully free-form input object, the description does not indicate which fields are required or that linking the document to an item may require a separate call – gaps the opaque schema cannot fill.

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

Parameters4/5

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

The schema exposes only a single opaque free-form 'input' object (additionalProperties: {}), so the schema itself conveys almost nothing about field names. The description's 'Fields: name, entities_id, comment, etc.' adds genuine meaning beyond the schema. The vague 'etc.' keeps it from a 5.

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

Purpose4/5

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

States a specific verb+resource ('Create a document') and the parenthetical '(metadata)' signals this creates the document record rather than attaching content, which meaningfully separates it from siblings like glpi_create_document_item or glpi_get_document. It stops short of naming those siblings explicitly, 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.

Usage Guidelines2/5

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 the many sibling document tools (glpi_create_document_item, glpi_get_document, glpi_list_documents), nor any prerequisites. The '(metadata)' hint implies a usage boundary but the agent must infer it.

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 itemBInspect

Create a link between a document and an item (Ticket, KnowbaseItem, etc.).

NameRequiredDescriptionDefault
items_idYesTarget item ID
itemtypeYesTarget item type, e.g. Ticket, KnowbaseItem
documents_idYesDocument ID

Output Schema

NameRequiredDescription
dataNo
replayedNoTrue when an identical recent create was returned instead of repeated

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare the write semantics (readOnlyHint=false, idempotentHint=false, destructiveHint=false), so the safety profile is covered. The description adds the meaningful detail that this creates a relation to a polymorphic target, but says nothing about what happens on a duplicate link attempt, required permissions, or whether it modifies the existing item.

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

Conciseness5/5

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

A single front-loaded sentence with zero filler. Nothing is repeated from the title or annotations and every clause carries information.

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

Completeness4/5

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

With a full output schema and complete annotations, the description only needs to convey the operation and its target space, which it does. The remaining gap is the absence of any usage context, but nothing required to invoke the tool correctly is missing.

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

Parameters3/5

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

Schema description coverage is 100% - documents_id, itemtype, and items_id are each documented in the schema. The description only echoes the itemtype concept ('Ticket, KnowbaseItem, etc.') without adding format or constraint detail, so baseline 3 applies.

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

Purpose4/5

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

States a specific verb and resource ('Create a link between a document and an item') and even names example target types. An agent can distinguish it from glpi_get_document_item, glpi_list_document_items, and glpi_delete_document_item by name, though the description never explicitly contrasts them.

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

Usage Guidelines2/5

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

No when-to-use guidance, no prerequisites (e.g. the document must already exist via glpi_create_document), and no mention of when to prefer this over listing or fetching links. The agent must infer the 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_entityCreate entityBInspect

Create a new entity. Fields: name (required), entities_id (parent, 0=Root), comment, address, etc.

NameRequiredDescriptionDefault
inputYesEntity fields

Output Schema

NameRequiredDescription
dataNo
replayedNoTrue when an identical recent create was returned instead of repeated

TDQS

B3.3/5.0
Behavior3/5

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. The description adds field-level context (required name, parent semantics with 0=Root) but does not disclose permissions, error behavior, or what happens to unspecified fields.

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

Conciseness4/5

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

The description is two short sentences and front-loads the core action. It is efficient, though the vague 'etc.' is slightly unhelpful.

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

Completeness3/5

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

An output schema exists and annotations cover the safety profile, reducing the description's burden. However, for a create tool with an open object schema, the incomplete field enumeration ('etc.') leaves agents uncertain about the full valid input set.

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

Parameters4/5

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

The input schema is an open object with no field-level documentation, so the description carries nearly the full burden. It usefully identifies 'name' as required and explains entities_id as the parent entity with 0=Root, though the trailing 'etc.' leaves the field list incomplete.

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

Purpose4/5

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

The description uses a specific verb and resource ('Create a new entity'), making the tool's purpose immediately clear. It does not explicitly differentiate from sibling tools like glpi_update_entity or glpi_list_entities, but the action verb distinguishes it enough.

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

Usage Guidelines2/5

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_entity or glpi_list_entities. The description only states the action, leaving usage context 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_create_itil_followup_templateCreate followup templateBInspect

Create a new followup template. Fields: name, content, comment, itemtype (Ticket/Change/Problem).

NameRequiredDescriptionDefault
inputYesTemplate fields

Output Schema

NameRequiredDescription
dataNo
replayedNoTrue when an identical recent create was returned instead of repeated

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare this as a non-read-only, non-destructive, non-idempotent write, so the safety profile is covered. The description adds the allowed itemtype values (Ticket/Change/Problem), which is useful behavioral context, but says nothing about required fields, validation, or side effects beyond the annotation set.

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

Conciseness4/5

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

Two short sentences, verb-first and front-loaded, with no filler. Nothing is wasted, though the field list could have been paired with required/optional markers.

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

Completeness3/5

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

An output schema exists, so return values need not be described, and annotations cover the mutation profile. Still, for a create tool it omits which fields are mandatory and any constraint on content/comment, leaving real gaps for an agent filling the input object.

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

Parameters4/5

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

The declared schema is a loose wrapper ("Template fields" with additionalProperties), so despite the reported coverage it documents no individual fields. The description compensates by naming name, content, comment, and itemtype and enumerating the itemtype values, which is genuine meaning the schema lacks.

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

Purpose4/5

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

States a specific verb and resource ("Create a new followup template") and names the concrete fields it accepts. The verb distinguishes it from the sibling family (list/get/update_itil_followup_template), though it never explicitly contrasts with them.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no prerequisite (e.g. permissions, category linkage), and no mention of the alternative update/get/list siblings. Usage is only inferable from the create verb.

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.

NameRequiredDescriptionDefault
inputYesCategory fields (name, knowbaseitemcategories_id for parent, comment)

Output Schema

NameRequiredDescription
dataNo
replayedNoTrue when an identical recent create was returned instead of repeated

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, and idempotentHint=false, so the write/non-destructive profile is covered structurally. The description adds nothing beyond that – no mention of whether names must be unique, whether a parent category is required or optional, or any permission requirement for a mutation tool.

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

Conciseness4/5

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

One short, front-loaded sentence with no filler or repetition. It is efficient, though the extreme brevity leaves the definition under-specified for a mutation tool.

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

Completeness3/5

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

An output schema exists, so return values need not be described, and annotations carry the safety profile. However, for a create operation with a nested input object and a parent-category reference, the absence of any hierarchy or required-field context is a noticeable gap.

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

Parameters3/5

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

Schema description coverage is 100% and the nested input description already enumerates the fields (name, knowbaseitemcategories_id for parent, comment). The description adds no format, naming, or hierarchy detail beyond the schema, so baseline 3 applies.

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

Purpose4/5

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

The description names a specific verb and resource ('Create a new knowledge base category'), which is unambiguous and clearly distinct from the list/get/update/delete category siblings. It stops short of explicitly differentiating itself from those siblings in text, so it does not reach a 5.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives such as glpi_create_knowbase_item or glpi_update_knowbase_category, and no prerequisites or parent-category requirements are mentioned. 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_create_knowbase_itemCreate knowledge base itemCInspect

Create a new knowledge base article. Fields: name, answer (HTML content), knowbaseitemcategories_id, etc.

NameRequiredDescriptionDefault
inputYesKnowledge base item fields

Output Schema

NameRequiredDescription
dataNo
replayedNoTrue when an identical recent create was returned instead of repeated

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare the full safety profile (readOnlyHint=false, destructiveHint=false, idempotentHint=false, openWorldHint=false). The description adds almost nothing beyond that; the only extra behavioral signal is that 'answer' expects HTML content, and it omits permissions, duplicate behavior, or what happens if a referenced category is missing.

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

Conciseness4/5

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

Two short sentences, front-loaded with the action and followed by field hints; no filler. The trailing 'etc.' is a minor weakness but the overall size is appropriate.

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

Completeness2/5

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

An output schema exists so return values need no explanation, but this is a mutation whose nested input object is effectively undocumented. Listing only three fields with 'etc.' leaves an agent guessing which fields are required to create a valid article.

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

Parameters3/5

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

Schema coverage is nominally 100%, but the schema's single 'input' parameter is an untyped object with additionalProperties: {}, so it documents no actual fields. The description names three fields (name, answer, knowbaseitemcategories_id) and truncates with 'etc.', adding real value but leaving required/optional status and the full field set unspecified.

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

Purpose4/5

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

States a specific verb and resource ('Create a new knowledge base article'), which cleanly separates it from the sibling list/get/update/delete knowbase tools. It doesn't explicitly name those siblings, but the create-vs-read distinction is unambiguous.

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

Usage Guidelines2/5

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

No guidance on when to use this versus glpi_update_knowbase_item or glpi_create_knowbase_category, no prerequisites such as an existing category ID, and no note about duplicate prevention despite idempotentHint=false.

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

glpi_create_problemCreate problemCInspect

Create a new problem. Common fields: name, content, entities_id, users_id_requester.

NameRequiredDescriptionDefault
inputYesProblem fields

Output Schema

NameRequiredDescription
dataNo
replayedNoTrue when an identical recent create was returned instead of repeated

TDQS

C2.9/5.0
Behavior2/5

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

Annotations declare non-readonly, non-idempotent, non-destructive, closed-world — the description adds essentially nothing beyond that. It does not mention required permissions, what the created object contains, or whether a followup/solution must be added separately.

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

Conciseness4/5

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

Two short sentences, front-loaded with the action. Minimal but not padded; the field list earns its place by hinting at expected keys.

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

Completeness2/5

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

For a mutation tool with a fully open input object (additionalProperties), an output schema present, and a large sibling set, the definition is thin: no required-field info, no note that the returned payload is the created problem, no routing to related tools like glpi_add_problem_task or glpi_add_problem_solution.

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

Parameters3/5

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

Schema coverage is 100% (the input object is free-form with additionalProperties), and the description names four common fields: name, content, entities_id, users_id_requester. That is useful orientation but does not explain requiredness, types, or the full accepted field set, which the free-form schema also leaves open.

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

Purpose4/5

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

Specific verb+resource: 'Create a new problem.' Sibling set contains glpi_create_ticket and glpi_create_change, so the resource distinction (problem vs ticket vs change) is the key disambiguation and is stated. It does not explicitly call out the sibling distinction, keeping it at 4.

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

Usage Guidelines2/5

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

No when-to-use guidance, no prerequisites, no mention of alternatives such as glpi_update_problem or glpi_create_ticket. The reader 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_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).

NameRequiredDescriptionDefault
endYesEnd, 'YYYY-MM-DD HH:MM:SS'
beginYesStart, 'YYYY-MM-DD HH:MM:SS'
commentNo
users_idNoUser the booking is for
reservationitems_idYesReservationItem ID (see glpi_list_reservation_items)

Output Schema

NameRequiredDescription
dataNo
replayedNoTrue when an identical recent create was returned instead of repeated

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare this as a non-idempotent, non-destructive write, so the safety profile is covered. The description adds the expected timestamp format and warns that the ID is a reservation-item ID rather than an asset ID, but says nothing about overlap/conflict handling, permission requirements, or what happens when a slot is already taken.

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

Conciseness5/5

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

Two tight sentences, zero filler, with the core action front-loaded and the two practical constraints (timestamp format, correct ID source) following. Every clause carries information an agent needs.

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

Completeness4/5

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 the 80% schema coverage handles most parameters. What remains thin is conflict/idempotency behavior for a booking tool and whether users_id defaults to the calling user. Overall sufficient for an agent to invoke the tool correctly.

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

Parameters4/5

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

Schema coverage is 80%, so the baseline is 3. The value-add is the explicit warning that reservationitems_id is not the asset ID and must come from glpi_list_reservation_items, which prevents a likely class of caller error. The restated begin/end format duplicates the schema, and the undocumented 'comment' field is left unaddressed.

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

Purpose5/5

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

The first sentence pairs a specific verb and resource ("Book a reservable item") that an agent can immediately distinguish from glpi_update_reservation, glpi_list_reservations, and glpi_get_reservation. It also names the prerequisite sibling tool, so the tool's role in the workflow is unambiguous.

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

Usage Guidelines3/5

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

The description implies the workflow (fetch the reservation item first, then book it) but never states when to choose this over glpi_update_reservation or what conditions make a booking invalid. The pointer to glpi_list_reservation_items is a useful prerequisite hint, but timing and alternatives are left implicit.

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.

NameRequiredDescriptionDefault
inputYesAction fields (rules_id, action_type, field, value)

Output Schema

NameRequiredDescription
dataNo
replayedNoTrue when an identical recent create was returned instead of repeated

TDQS

B3.1/5.0
Behavior2/5

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

Annotations already disclose the safety profile (readOnlyHint=false, idempotentHint=false, destructiveHint=false, openWorldHint=false). The description adds no behavioral context beyond that — nothing about permissions, side effects, or what happens to the parent rule. It does list fields, but that is parameter, not behavioral, information.

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

Conciseness4/5

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

Two tight sentences, front-loaded with the core action and then the field list. No padding. The parenthetical enum values are useful, though the list format is slightly terse.

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

Completeness3/5

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

An output schema exists, so return values need not be described, and annotations cover the safety profile. However, for a mutation tool, the description omits prerequisites (must the referenced rule exist?), permission requirements, and when to choose this over updating an existing action. Field names are covered, but operational context is thin.

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

Parameters4/5

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

The schema's single "input" object is loosely typed (additionalProperties with no defined nested fields), so the description's enumeration of rules_id, action_type, field, and value is genuinely compensating. It also supplies the action_type enum values (assign/regex_result/append_regex_result), which the schema omits (enums: 0). This adds real meaning beyond the schema.

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

Purpose4/5

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

States a specific verb and resource: "Create a new action for a rule." This is clearly distinguishable from siblings like glpi_update_rule_action or glpi_list_rule_actions by the verb. It does not explicitly name 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.

Usage Guidelines2/5

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., an existing rule/rules_id), and no mention of alternatives such as glpi_update_rule_action or glpi_create_rule_criteria. The agent must infer all routing 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_rule_criteriaCreate rule criteriaCInspect

Create a new criteria for a rule. Fields: rules_id, criteria (field name), condition, pattern.

NameRequiredDescriptionDefault
inputYesCriteria fields (rules_id, criteria, condition, pattern)

Output Schema

NameRequiredDescription
dataNo
replayedNoTrue when an identical recent create was returned instead of repeated

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare this is a non-read-only, non-idempotent, non-destructive, closed-world write, so the safety profile is covered structurally. The description adds nothing beyond that: it does not say whether criteria can be duplicated, whether condition/pattern values are validated, or what a duplicate create does (relevant since idempotentHint=false).

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

Conciseness4/5

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

Two short sentences, purpose first, field list second, with no filler. It is tight, though the field list largely duplicates the schema's own description rather than adding new information.

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

Completeness3/5

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

An output schema exists, so return values need not be explained, and annotations carry the mutation semantics. However, for a nested write against an existing rule, the absence of any prerequisite or rule-type constraint leaves the definition only minimally complete.

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

Parameters3/5

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

Schema coverage is reported at 100%, but the schema itself is a generic wrapper with additionalProperties={} whose only documentation is the same field list. The description does add one genuine clarification, "criteria (field name)", which disambiguates an otherwise confusing parameter name. No detail is given on legal condition operators or pattern formats, so this is baseline-plus.

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

Purpose4/5

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

The description gives a specific verb+resource ("Create a new criteria for a rule") and enumerates the fields involved, so the agent knows exactly what is being created. It stops short of distinguishing itself from close siblings such as glpi_create_rule_action or glpi_create_rule_ticket, which share the same rule-criteria family.

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

Usage Guidelines2/5

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

There is no statement of when to use this tool, nor any prerequisite (an existing rule id, a valid condition value, or the rule type the criteria must match). The agent must infer the workflow entirely from the name and the sibling list.

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.

NameRequiredDescriptionDefault
inputYesRule fields

Output Schema

NameRequiredDescription
dataNo
replayedNoTrue when an identical recent create was returned instead of repeated

TDQS

B3.1/5.0
Behavior2/5

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

Annotations already convey that this is a non-idempotent, non-readonly, non-destructive creation, so the safety profile is covered. The description adds nothing behavioral beyond that: no mention of permission requirements, validation failures, or the required follow-up steps. With annotations carrying the basics, additional context is what's missing.

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

Conciseness4/5

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

Two compact sentences with the action front-loaded and the field list as supporting detail; no filler. The trailing 'etc.' is slightly evasive but costs little.

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

Completeness3/5

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

An output schema exists, so return values need not be explained. For a create tool with an opaque nested object, however, the description omits prerequisites, auth, and lifecycle context (criteria/actions), leaving it only minimally sufficient.

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

Parameters4/5

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

The schema is a bare free-form 'input' object (additionalProperties: {}), so the nominal 100% coverage tells the agent almost nothing. The description compensates by naming concrete fields (name, match with AND/OR values, is_active, sub_type, ranking), which is real added value, though 'etc.' leaves the remaining fields unspecified.

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

Purpose4/5

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

States a specific verb and resource ('Create a new ticket business rule') and the field list sharpens what kind of rule it is. It does not explicitly distinguish itself from the closely related glpi_create_rule_criteria / glpi_create_rule_action siblings, so a 4 rather than a 5.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no prerequisites (e.g. that criteria/actions must be added afterward to make the rule functional), and no reference to the list/get rule siblings. The agent must infer everything 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_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.

NameRequiredDescriptionDefault
inputYesTicket fields

Output Schema

NameRequiredDescription
dataNo
replayedNoTrue when an identical recent create was returned instead of repeated

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare this as a non-read-only, non-idempotent, non-destructive, non-open-world write, so the safety profile is covered. The description adds nothing behavioral beyond that — no mention of side effects such as rule engine processing, notifications to assigned users, or that repeated calls create duplicate tickets (relevant given idempotentHint=false).

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

Conciseness4/5

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

Two sentences, action first, then a compact field list. Every token is doing work; the only minor flaw is that the field list is unprioritized and mixes identifiers with display fields without signaling requiredness.

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

Completeness3/5

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

For a create tool with an opaque nested-object schema and an output schema, the description gives useful field hints but omits required fields (name/content), entity/permission context, and creation side effects. Adequate to attempt a call, but an agent would likely need to guess at required inputs.

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

Parameters4/5

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

The input schema is effectively an opaque passthrough ('Ticket fields' with additionalProperties: {}), so the description carries the real semantic load by naming key fields and decoding the type enum ('1=Incident, 2=Request'). This adds genuine meaning beyond the schema, though it omits which fields are required and the accepted values for urgency/impact/priority.

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

Purpose4/5

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

The description states a specific verb+resource ('Create a new ticket'), which is straightforward and clearly distinct from sibling mutations like glpi_update_ticket, glpi_create_problem, and glpi_create_change. It does not explicitly contrast itself with those siblings or explain scope (e.g., which entity the ticket lands in), 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.

Usage Guidelines2/5

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_problem, glpi_create_change, or glpi_list_tickets, no mention of prerequisites (auth, entity selection), and no note about required vs optional fields. The description only lists candidate fields, leaving routing and preconditions 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_create_ticket_validationCreate ticket validationBInspect

Create an approval request assigning a validator (users_id_validate).

NameRequiredDescriptionDefault
ticketIdYesItem ID
users_id_validateYesApprover user ID
comment_submissionNoComment for the approval request

Output Schema

NameRequiredDescription
dataNo
replayedNoTrue when an identical recent create was returned instead of repeated

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, idempotentHint=false, destructiveHint=false, and openWorldHint=false, covering the safety profile. The description adds the semantic effect — that it creates an approval request assigning a validator — which is useful context beyond the generic 'create', but it omits side effects such as notifications to the approver or the request's pending-state behavior.

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

Conciseness4/5

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

A single efficient sentence with the action and key parameter front-loaded and no filler. It is appropriately tight, though for a mutation tool it is arguably too sparse to fully earn its place.

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

Completeness3/5

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

An output schema exists and annotations cover the safety profile, so return values and reversibility need not be explained. However, for a create/mutation tool the description leaves the agent without any prerequisite context (ticket must exist, approver must be a valid user), which is a meaningful gap.

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

Parameters3/5

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

Schema description coverage is 100% (ticketId, users_id_validate, comment_submission all documented in the schema), so the baseline is 3. The description names users_id_validate but adds no format, constraint, or meaning beyond what the schema already provides.

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

Purpose4/5

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

The description states a specific verb (Create) and resource (approval request/ticket validation) and identifies the key actor field (users_id_validate). It implicitly distinguishes itself from the list/update/delete ticket-validation siblings via the verb, but never names or contrasts them explicitly.

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

Usage Guidelines2/5

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

There is no guidance on when to use this versus alternatives. It doesn't state prerequisites (e.g., that the ticket must exist and be in a validatable state) or mention the sibling glpi_update_ticket_validation / glpi_list_ticket_validations that an agent might confuse this with.

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

NameRequiredDescriptionDefault
inputYesUser fields

Output Schema

NameRequiredDescription
dataNo
replayedNoTrue when an identical recent create was returned instead of repeated

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare the safety profile (write, non-idempotent, non-destructive), so the bar is lower. The description adds useful context by naming the required field and how email is routed through the _useremails array, but it omits what happens on duplicate logins, required permissions, and whether the password is stored hashed.

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

Conciseness4/5

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

Two compact sentences with the required field front-loaded and no filler. Every clause carries information, though the '_useremails array' phrasing is slightly cryptic without an example.

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

Completeness4/5

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 safety profile. For a create tool the entry covers the essential minimum (required field plus common fields), though it stops short of permissions, dedup behavior, and more complete field coverage.

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

Parameters4/5

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

The input schema is a single free-form 'input' object with only the placeholder text 'User fields', so the schema itself conveys essentially nothing despite the nominal 100% coverage. The description compensates by naming the required field (name/login) and the common fields (realname, firstname, password, email via _useremails), which is meaningfully more than the schema provides.

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

Purpose4/5

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

States a specific verb ('Create') and resource ('GLPI user'), making the operation unambiguous and clearly distinct from the sibling write tool glpi_update_user or the readers glpi_get_user/glpi_list_users. It does not explicitly name an alternative, but the name and phrasing leave no ambiguity about what the tool does.

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

Usage Guidelines2/5

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

The description says nothing about when to use this tool versus the alternatives in the sibling set (e.g. glpi_update_user for existing users, glpi_search_user_by_email for dedup checks). No prerequisites, no conditions, no exclusions – 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_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.

NameRequiredDescriptionDefault
inputYesWebhook fields

Output Schema

NameRequiredDescription
dataNo
replayedNoTrue when an identical recent create was returned instead of repeated

TDQS

B3.1/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=false, idempotentHint=false, destructiveHint=false and openWorldHint=false, so the safety profile is covered structurally. The description adds no behavioral context beyond a field list: no mention of required permissions, that duplicate webhooks are possible (non-idempotent), or whether the webhook is immediately armed after creation.

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

Conciseness4/5

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

Two sentences, front-loaded with the action and then the field inventory. Not padded, though the field enumeration is a bare list rather than prioritized into required vs optional.

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

Completeness3/5

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

An output schema exists so return values need not be described, and the field list gives reasonable coverage. However, with a fully open nested input object the description does not say whether any of these fields are required or what a minimal valid payload looks like, leaving a gap for a create mutation.

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

Parameters4/5

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

The schema's only property is an untyped free-form 'input' object, so the description is the sole source of field-level meaning. Naming name, url, itemtype, event, payload, http_method and use_cra_challenge, plus examples for itemtype (Ticket) and event (new/update/delete), materially compensates for the empty nested schema.

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

Purpose4/5

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

States a specific verb and resource ('Create a webhook'), which is unambiguous against siblings like glpi_update_webhook, glpi_delete_webhook, and glpi_set_webhook_active. It does not explicitly differentiate itself from those siblings, but the create verb makes the distinction inferable 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.

Usage Guidelines2/5

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. Given five sibling webhook tools (update, delete, set_active, list, get), a sentence such as 'use glpi_update_webhook to modify an existing webhook' would be expected and is absent.

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

glpi_delete_documentDelete documentB
DestructiveIdempotent
Inspect

Permanently delete a document by ID.

NameRequiredDescriptionDefault
reasonYesWhy this item is being deleted (audit trail, required)
documentIdYesItem ID

Output Schema

NameRequiredDescription
dataNo

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true and idempotentHint=true, so the safety and repeat-call profile is covered. The description's 'Permanently' reinforces irreversibility, which is mildly additive, but it omits the audit-trail reason requirement and any permission/authorization caveats. With annotations carrying most of the behavioral burden, 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.

Conciseness4/5

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

A single front-loaded sentence with zero filler. It is efficient, though arguably terse enough that it omits useful routing information rather than merely being compact.

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

Completeness3/5

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

Output schema exists and annotations are rich, so return values and safety need not be explained. The remaining gaps are sibling disambiguation (glpi_delete_document_item) and the mandatory reason parameter, which the schema covers but the description never acknowledges.

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

Parameters3/5

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

Schema description coverage is 100% (documentId and required reason with audit-trail note), so the description adds nothing beyond naming the ID argument. Baseline 3 is correct when the schema does all the parameter work.

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

Purpose4/5

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

States a specific verb and resource ('Permanently delete a document') and the identifier scope ('by ID'), so the agent knows exactly what entity is affected. However, it does not differentiate from the close sibling glpi_delete_document_item, which deletes a document-item association rather than the document itself.

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

Usage Guidelines2/5

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

No when-to-use guidance, no prerequisite or permission context, and no pointer to alternatives such as glpi_delete_document_item or glpi_list_documents. 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_delete_document_itemDelete document-item linkC
DestructiveIdempotent
Inspect

Remove a Document_Item link by ID.

NameRequiredDescriptionDefault
reasonYesWhy this item is being deleted (audit trail, required)
documentItemIdYesItem ID

Output Schema

NameRequiredDescription
dataNo

TDQS

C2.9/5.0
Behavior2/5

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 structurally. The description adds nothing beyond that – it doesn't note that only the association is removed (not the document), nor that the required reason is an audit-trail field.

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

Conciseness4/5

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

A single front-loaded sentence with zero waste, though it is terse to the point of under-specification rather than being optimally informative.

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

Completeness3/5

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

Annotations cover the destructive/idempotent profile and an output schema exists, so return values need not be described. However, for a destructive mutation the description leaves the caller without confirmation that only the link is removed and the document is preserved, which is the key semantic an agent needs.

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

Parameters3/5

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

Schema description coverage is 100%, and the schema documents both documentItemId and the required reason with its audit-trail purpose, so the baseline of 3 applies. The description's 'by ID' adds no meaning beyond what the schema provides.

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

Purpose4/5

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

The description states a specific verb ('Remove') and resource ('Document_Item link'), which is enough to distinguish it from glpi_delete_document (which deletes the document itself, not the link). It does not explicitly name or differentiate from the sibling it could be confused with, 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.

Usage Guidelines2/5

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_delete_document or glpi_list_document_items, no prerequisites, and no stated side effects beyond the implicit deletion. 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_delete_entityDelete entityB
DestructiveIdempotent
Inspect

Permanently delete an entity by ID. WARNING: irreversible action.

NameRequiredDescriptionDefault
reasonYesWhy this item is being deleted (audit trail, required)
entityIdYesEntity ID

Output Schema

NameRequiredDescription
dataNo

TDQS

B3.2/5.0
Behavior3/5

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 largely covered. The description reinforces permanence/irreversibility, which is marginally more than the annotation states, but omits important behavior such as whether child entities/items are cascade-deleted and what authorization the operation requires.

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

Conciseness4/5

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

Two short, front-loaded sentences with no filler. The warning clause duplicates what the destructiveHint annotation already conveys, so it is not purely additive, but the text is efficiently sized for the tool's simplicity.

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

Completeness3/5

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

An output schema exists, so return values need not be explained, and the annotations carry the destructive profile. What remains missing for a destructive, low-level admin tool is cascade/impact behavior and any prerequisite or confirmation guidance, leaving it only minimally complete.

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

Parameters3/5

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

Schema coverage is 100%, and the schema itself documents both parameters including the required 'reason' audit-trail field. The description adds only the 'by ID' hint for entityId and says nothing about the mandatory reason, so it cannot exceed the baseline.

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

Purpose4/5

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

The description gives a specific verb and resource ('Permanently delete an entity') and the 'by ID' qualifier pins the identifier. It does not, however, distinguish this from the many sibling delete tools (glpi_delete_document_item, glpi_delete_knowbase_item, etc.) or from glpi_update_entity, so the agent gets no help routing between them.

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

Usage Guidelines2/5

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

There is no indication of when to choose this tool over alternatives, no prerequisites (e.g., permission level, whether the entity must be empty), and no note that glpi_update_entity is the non-destructive path. The only guidance is the irreversible warning, which is about risk 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_delete_knowbase_categoryDelete knowledge base categoryB
DestructiveIdempotent
Inspect

Permanently delete a knowledge base category.

NameRequiredDescriptionDefault
reasonYesWhy this item is being deleted (audit trail, required)
categoryIdYesItem ID

Output Schema

NameRequiredDescription
dataNo

TDQS

B3.4/5.0
Behavior3/5

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 largely covered. The description adds 'Permanently', which clarifies irreversibility beyond the destructive hint, but it omits other useful context such as whether deletion cascades to child items or requires special permissions.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no wasted words. It states the core action clearly and immediately.

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

Completeness4/5

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

Given the simple delete operation, rich annotations, complete parameter schema, and presence of an output schema, the description is nearly sufficient. It could mention the mandatory audit reason or the permanence of deletion more explicitly, but those are covered by structured fields.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents both parameters, including the required 'reason' for audit trail. The description adds no additional parameter meaning or formatting details, making the baseline 3 appropriate.

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

Purpose4/5

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

The description states a specific verb ('delete') and resource ('knowledge base category') and adds the scope modifier 'permanently'. It distinguishes the tool from sibling operations on knowledge base items (e.g., glpi_delete_knowbase_item) by naming the category resource, but does not explicitly differentiate from other category tools like update or create.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives, such as glpi_delete_knowbase_item or glpi_update_knowbase_category. It simply restates the operation without context about prerequisites, exclusions, or the required audit reason.

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

glpi_delete_knowbase_itemDelete knowledge base itemB
DestructiveIdempotent
Inspect

Permanently delete a knowledge base article.

NameRequiredDescriptionDefault
reasonYesWhy this item is being deleted (audit trail, required)
knowbaseIdYesItem ID

Output Schema

NameRequiredDescription
dataNo

TDQS

B3.2/5.0
Behavior3/5

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 fully covered by structured data. The word 'Permanently' reinforces irreversibility but adds little beyond destructiveHint, and nothing is said about the required audit reason, permissions, or failure behavior, so this is a baseline 3 with no contradiction.

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

Conciseness4/5

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

A single front-loaded sentence with zero filler, and the destructive qualifier is placed first. It is efficient, though the brevity doubles as under-specification for a destructive tool.

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

Completeness3/5

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

An output schema exists, so return values need not be described, and annotations cover the safety profile. Still missing for a permanent-delete tool: whether the audit reason is mandatory (schema says required, description does not warn), and what happens to the item's attachments or children.

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

Parameters3/5

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

Schema description coverage is 100%: the required 'reason' parameter is documented as an audit-trail obligation with a minLength constraint, and 'knowbaseId' is typed. The description adds no syntax or format nuance, so the schema does all the work and the baseline 3 applies.

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

Purpose4/5

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

The description gives a specific verb and resource ('Permanently delete a knowledge base article'), which is unambiguous and tells the agent exactly what object is affected. It does not, however, differentiate itself from same-family mutators such as glpi_delete_knowbase_category or glpi_delete_document_item 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.

Usage Guidelines2/5

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, no prerequisites, and no warning about when not to call it. The agent must infer that this is the terminal step after listing/getting an item, with nothing in the text to confirm that.

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

glpi_delete_ticket_groupRemove group from ticketA
DestructiveIdempotent
Inspect

Remove a group-ticket link by Group_Ticket ID (get the ID from glpi_list_ticket_groups).

NameRequiredDescriptionDefault
reasonYesWhy this item is being deleted (audit trail, required)
groupTicketIdYesGroup_Ticket link ID

Output Schema

NameRequiredDescription
dataNo

TDQS

A4/5.0
Behavior3/5

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 fully covered. The description adds only the link-removal framing and ID provenance, but says nothing about whether the ticket or group itself survives, permissions required, or audit consequences beyond what the schema already notes for 'reason'.

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

Conciseness5/5

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

A single sentence with zero waste; the operation is front-loaded and the ID-provenance hint is attached to the parameter it concerns. Nothing redundant is repeated from the title or schema.

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

Completeness4/5

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

Output schema exists, so return values need not be described, and both required parameters are fully documented in the schema. For a two-parameter destructive link-removal with annotation-covered safety, this is nearly complete, though a note on consequences (e.g., that only the association is removed, not the group) would close the remaining gap.

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

Parameters3/5

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

Schema description coverage is 100%, with both parameters documented in the schema (including the audit-trail purpose of 'reason'). The description only clarifies where groupTicketId comes from, so the baseline 3 applies — schema does the heavy lifting.

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

Purpose5/5

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

States a specific verb and resource ('Remove a group-ticket link') and names the identifier type used to locate it. This clearly distinguishes it from glpi_add_ticket_group and glpi_delete_ticket_user without needing to open the schema.

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

Usage Guidelines4/5

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

Explicitly tells the agent where to obtain the required ID ('get the ID from glpi_list_ticket_groups'), which is genuine routing guidance. It does not state when-not to use this tool or what happens to the underlying ticket/group entities, so it stops short of full 5-level guidance.

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

glpi_delete_ticket_userRemove user from ticketA
DestructiveIdempotent
Inspect

Remove a user-ticket link by Ticket_User ID (get the ID from glpi_list_ticket_users).

NameRequiredDescriptionDefault
reasonYesWhy this item is being deleted (audit trail, required)
ticketUserIdYesTicket_User link ID

Output Schema

NameRequiredDescription
dataNo

TDQS

A4/5.0
Behavior3/5

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 by structured data. The description adds only the ID-provenance hint and says nothing about irreversibility, permission requirements, or what the audit reason is used for, so it adds limited context.

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

Conciseness5/5

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

A single sentence that front-loads the action and resource and parenthesizes the only non-obvious prerequisite. Zero wasted words.

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

Completeness4/5

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/idempotency profile. With two fully documented parameters, the definition is essentially complete; only a note about the effect of removing a link would add value.

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

Parameters3/5

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

Schema description coverage is 100%, so both ticketUserId and reason are already documented in the schema, with reason's audit-trail purpose and 10-char minimum made explicit there. The description adds only the sourcing note for ticketUserId, which is the expected 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.

Purpose5/5

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

States a specific verb (Remove) and resource (user-ticket link) plus the exact identifier semantics (Ticket_User ID). It is clearly distinguishable from siblings like glpi_add_ticket_user and glpi_delete_ticket_group.

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

Usage Guidelines4/5

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

Explicitly tells the agent where to obtain the required ID (glpi_list_ticket_users), which is the key prerequisite for calling this. It does not state when-not to use it or name alternative removal paths, so it stops short of full routing guidance.

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

glpi_delete_ticket_validationDelete ticket validationB
DestructiveIdempotent
Inspect

Remove a validation request by ID.

NameRequiredDescriptionDefault
reasonYesWhy this item is being deleted (audit trail, required)
validationIdYesItem ID

Output Schema

NameRequiredDescription
dataNo

TDQS

B3.2/5.0
Behavior2/5

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

The annotations already declare this operation destructive, non-read-only, and idempotent. The description adds no further behavioral context such as permission requirements, permanence of deletion, or the mandatory audit reason, so it contributes little beyond the structured safety hints.

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

Conciseness5/5

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

The description is a single front-loaded sentence with no filler or repetition. It is appropriately sized for a simple delete tool and wastes no words.

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

Completeness4/5

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

With annotations covering the destructive/idempotent profile, a full input schema, and an output schema, the description is adequate for correct selection and invocation. It omits mention of the required audit reason, but the schema already enforces and explains that requirement.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema fully documents both parameters, including the required audit reason. The description adds only 'by ID', which does not meaningfully extend the schema's parameter documentation. Baseline 3 applies when the schema carries the parameter detail.

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

Purpose4/5

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

The description states a specific verb and resource: 'Remove a validation request by ID.' It clearly identifies what is deleted and that an ID is required. It does not explicitly distinguish this tool from its create/update/list ticket-validation siblings, but the resource is specific enough to be understood.

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

Usage Guidelines2/5

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

The description gives no when-to-use guidance, no prerequisites, and no alternatives. It does not mention when to delete a validation request versus updating or listing validations, leaving the agent to 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_delete_webhookDelete webhookA
DestructiveIdempotent
Inspect

Delete a webhook. Set purge to remove it permanently instead of trashing it.

NameRequiredDescriptionDefault
purgeNo
reasonYesWhy this item is being deleted (audit trail, required)
webhookIdYesItem ID

Output Schema

NameRequiredDescription
dataNo

TDQS

A4.2/5.0
Behavior4/5

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

Annotations declare destructiveHint=true and idempotentHint=true, so the safety profile is already known. The description adds meaningful context beyond that: the default action is a recoverable trash, and purge escalates to irreversible removal. It does not mention the required audit reason, but the schema 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.

Conciseness5/5

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

Two short sentences with zero filler; the core action leads and the important purge nuance follows immediately.

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

Completeness4/5

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 the annotations carry the safety profile. The description covers the key behavioral nuance; only the required reason/audit-trail expectation is left purely to the schema.

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

Parameters4/5

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

Schema coverage is 67%, with webhookId and reason documented in the schema while purge has no schema description. The description compensates by explaining exactly what purge does, which is the one undocumented parameter.

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

Purpose5/5

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

States a specific verb and resource ('Delete a webhook') and immediately clarifies the two deletion modes (trash vs purge). The webhook resource makes it unambiguous against the many other glpi_delete_* siblings.

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

Usage Guidelines3/5

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

It gives a condition for choosing purge ('to remove it permanently instead of trashing it'), which is genuinely useful, but it offers no guidance on when to delete a webhook at all versus alternatives like glpi_set_webhook_active for disabling one.

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

glpi_get_assetGet assetA
Read-onlyIdempotent
Inspect

Retrieve a single asset by type and ID. For hardware detail use glpi_get_asset_details.

NameRequiredDescriptionDefault
fieldsNoField set: 'essential' (default, trims internal GLPI fields) or 'all'
formatNoOutput format: 'json' (default) or 'markdown' (a table for listings, key/value lines for one item; returned in both the text and the structured result)
assetIdYesItem ID
asset_typeYesAsset itemtype, e.g. Computer, Monitor, Printer, NetworkEquipment, Software
expand_dropdownsNoExpand dropdown IDs to names

Output Schema

NameRequiredDescription
dataNo
noteNoPagination hint: how to fetch the next page
countNoItems in this page
formatNo'markdown' when data holds the markdown rendering

TDQS

A4/5.0
Behavior3/5

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 fully covered. The description adds only the sibling routing, disclosing no further behavioral traits such as auth requirements, error behavior, or the essential/all field trimming effect on results.

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

Conciseness5/5

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

Two short sentences, front-loaded with the core action and followed immediately by the disambiguation rule. Zero filler.

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

Completeness4/5

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 the sibling for detail is named. Complete for the retrieval task, though it omits any note on what the asset ID refers to across types or the effect of expand_dropdowns on output.

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

Parameters3/5

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

Schema description coverage is 100%, and the schema richly documents all five parameters including enums and the fields/format semantics. The description adds no parameter meaning 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.

Purpose5/5

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

States a specific verb (Retrieve), resource (asset), and scope (single, by type and ID). It also names the sibling glpi_get_asset_details and when to prefer it, so an agent can distinguish the two 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.

Usage Guidelines4/5

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

Explicitly routes hardware-detail lookups to glpi_get_asset_details, giving a clear condition that selects the alternative. It stops short of stating when-not to use this tool for non-hardware cases, but the guidance is concrete and actionable.

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 detailsA
Read-onlyIdempotent
Inspect

Enriched asset view in one request: operating system, processors, memory and disks by default. Ask for sections ['softwares'] or ['networkports'] explicitly — on an inventoried host those are the bulk of the payload. Dropdown IDs come resolved to names.

NameRequiredDescriptionDefault
fieldsNoField set: 'essential' (default, trims internal GLPI fields) or 'all'
formatNoOutput format: 'json' (default) or 'markdown' (a table for listings, key/value lines for one item; returned in both the text and the structured result)
assetIdYesItem ID
sectionsNoSections to expand (default: devices, disks, softwares, networkports)
asset_typeYesAsset itemtype, e.g. Computer, Monitor, Printer, NetworkEquipment, Software
max_items_per_sectionNoRows kept per expanded section (default 25); the rest is reported as a count

Output Schema

NameRequiredDescription
dataNo
noteNoPagination hint: how to fetch the next page
countNoItems in this page
formatNo'markdown' when data holds the markdown rendering

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive, so the safety burden is low. The description adds genuinely useful behavior: dropdown IDs are resolved to names, the default section set, and that softwares/networkports are the bulk of the payload. It doesn't cover pagination/truncation (schema does), but this is solid added context.

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

Conciseness4/5

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

Three sentences, front-loaded with the core value (enriched view in one request), with no filler. Slightly dense in the second sentence but every clause carries information.

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

Completeness4/5

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 description covers default content, section behavior, and ID resolution. The remaining gap is the unstated relationship to the sibling glpi_get_asset and the default-sections inconsistency, but overall it is complete enough to call correctly.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3 and the schema already documents fields/format/sections/max_items. The description adds the 'bulk payload' hint for choosing sections, but it also conflicts with the schema: the description implies softwares/networkports are not default while the schema states the default is 'devices, disks, softwares, networkports', which muddies rather than clarifies.

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

Purpose4/5

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

States a specific verb and resource ('Enriched asset view in one request') and enumerates the default content (OS, processors, memory, disks), so an agent immediately knows what it returns. It does not explicitly distinguish itself from the sibling glpi_get_asset / glpi_list_assets, though 'enriched' implies it, 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.

Usage Guidelines3/5

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

Gives real usage context — request ['softwares'] or ['networkports'] explicitly because they dominate the payload — which helps an agent size its request. However, it never says when to choose this over glpi_get_asset or glpi_list_assets, and gives no when-not guidance, so usage 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_get_changeGet changeA
Read-onlyIdempotent
Inspect

Retrieve a change by ID, with names beside the IDs and status/priority labels in the GLPI user's language.

NameRequiredDescriptionDefault
fieldsNoField set: 'essential' (default, trims internal GLPI fields) or 'all'
formatNoOutput format: 'json' (default) or 'markdown' (a table for listings, key/value lines for one item; returned in both the text and the structured result)
changeIdYesItem ID
expand_dropdownsNoExpand dropdown IDs to names

Output Schema

NameRequiredDescription
dataNo
noteNoPagination hint: how to fetch the next page
countNoItems in this page
formatNo'markdown' when data holds the markdown rendering

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare the safe read-only, idempotent profile, so the bar is lower. The description adds genuine behavioral context beyond them: related IDs come back with names beside them and status/priority labels are localized to the GLPI user's language, which materially affects how the agent should interpret the output.

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

Conciseness5/5

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

A single tight sentence with the core action front-loaded and no filler. Every clause carries information.

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

Completeness4/5

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 safety profile is covered by annotations. The description is adequate for a simple ID lookup, though it omits error/not-found behavior or permission requirements.

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

Parameters3/5

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

Schema description coverage is 100%, so all four parameters (fields, format, changeId, expand_dropdowns) are already documented in the schema, which sets the baseline at 3. The description only loosely echoes the dropdown-expansion behavior ('names beside the IDs') without adding format or syntax detail.

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

Purpose4/5

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

States a specific verb and resource ('Retrieve a change by ID'), so the agent knows exactly what it returns. It does not differentiate itself from near-siblings like glpi_list_changes or glpi_get_ticket, but the verb+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.

Usage Guidelines2/5

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

There is no when-to-use guidance, no mention of alternatives (e.g. glpi_list_changes for browsing, glpi_update_change for modification), and no prerequisites. Usage is only implied by 'by ID'.

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

glpi_get_documentGet documentC
Read-onlyIdempotent
Inspect

Retrieve a document by ID.

NameRequiredDescriptionDefault
fieldsNoField set: 'essential' (default, trims internal GLPI fields) or 'all'
formatNoOutput format: 'json' (default) or 'markdown' (a table for listings, key/value lines for one item; returned in both the text and the structured result)
documentIdYesItem ID

Output Schema

NameRequiredDescription
dataNo
noteNoPagination hint: how to fetch the next page
countNoItems in this page
formatNo'markdown' when data holds the markdown rendering

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered. The description adds nothing beyond that – no error behavior for a missing/invalid ID, no note on the fields/format defaults, no pagination or permission context.

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

Conciseness4/5

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

A single front-loaded sentence with zero waste. It is efficient, though borderline under-specified rather than genuinely concise-and-complete.

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

Completeness3/5

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

An output schema exists and schema coverage is 100%, so return values need no explanation in the description. Still, for a tool sitting among several document siblings, the lack of any routing or behavioral note leaves a modest gap that the structured fields do not fill.

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

Parameters3/5

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

Schema description coverage is 100% and both optional parameters (fields, format) carry full enum descriptions in the schema, so the baseline is 3. The description's 'by ID' only restates the required documentId and adds no syntax or default information beyond the schema.

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

Purpose4/5

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

States a specific verb and resource ('Retrieve a document by ID'), which is unambiguous on its own. It does not distinguish itself from siblings like glpi_list_documents or glpi_get_document_item, so an agent must infer the difference from the names alone.

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

Usage Guidelines2/5

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

No guidance on when to use this versus the sibling document tools (list_documents, get_document_item). The 'by ID' phrasing implies single-item retrieval, but no alternatives or conditions are named.

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 linkB
Read-onlyIdempotent
Inspect

Retrieve a Document_Item link by ID.

NameRequiredDescriptionDefault
fieldsNoField set: 'essential' (default, trims internal GLPI fields) or 'all'
formatNoOutput format: 'json' (default) or 'markdown' (a table for listings, key/value lines for one item; returned in both the text and the structured result)
documentItemIdYesItem ID

Output Schema

NameRequiredDescription
dataNo
noteNoPagination hint: how to fetch the next page
countNoItems in this page
formatNo'markdown' when data holds the markdown rendering

TDQS

B3.1/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds nothing beyond 'by ID' — no note on what the link represents or how missing IDs behave — so it contributes little extra context.

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

Conciseness4/5

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

A single front-loaded sentence with no filler. Efficient, though its brevity is achieved by omitting rather than by distilling useful content.

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

Completeness4/5

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

For a simple read tool with an output schema and rich annotations, the description need not explain return values or safety. The structured fields carry nearly everything an agent needs; only usage routing is absent.

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

Parameters3/5

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

Schema description coverage is 100%, so documentItemId, fields, and format are fully documented in the schema. The description adds no formatting or field-set details, matching the baseline of 3 when the schema does all the work.

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

Purpose4/5

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

States a specific verb (Retrieve) and resource (Document_Item link) with the selection key (by ID). Clearly distinct from siblings like glpi_list_document_items or glpi_create_document_item, though it never names them explicitly.

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

Usage Guidelines2/5

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

No when-to-use guidance and no mention of alternatives. Retrieval by ID implies single-item lookup versus a list, but the agent is left to infer this from the name and schema alone.

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

glpi_get_entityGet entityC
Read-onlyIdempotent
Inspect

Retrieve an entity by ID.

NameRequiredDescriptionDefault
fieldsNoField set: 'essential' (default, trims internal GLPI fields) or 'all'
formatNoOutput format: 'json' (default) or 'markdown' (a table for listings, key/value lines for one item; returned in both the text and the structured result)
entityIdYesEntity ID

Output Schema

NameRequiredDescription
dataNo
noteNoPagination hint: how to fetch the next page
countNoItems in this page
formatNo'markdown' when data holds the markdown rendering

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered elsewhere. The description adds nothing on top of that: no note that a nonexistent ID fails or returns empty, no hint about what the 'essential' vs 'all' field sets change in practice. With annotations carrying the load this is a minor gap, but the description contributes zero 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.

Conciseness4/5

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

A single short, front-loaded sentence with no filler. It is efficient rather than padded, though it is arguably terse enough to be under-specified rather than truly concise.

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

Completeness3/5

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

An output schema exists and all three parameters (including both enums) are described in-schema, so the description need not explain return values or formats. What remains missing for a lookup tool is any failure/not-found behavior or routing guidance, leaving it minimally adequate.

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

Parameters3/5

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

Schema description coverage is 100% and both enums are documented in-schema, so the description's phrase "by ID" only restates the required entityId parameter. Baseline 3 is appropriate when the schema does all the parameter work.

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

Purpose4/5

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

States a specific verb and resource ("Retrieve an entity by ID"), which cleanly separates it from glpi_list_entities, glpi_create_entity, glpi_update_entity and glpi_delete_entity. It stops short of naming those siblings or the condition that selects this tool over them, so it lands just below 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.

Usage Guidelines2/5

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

There is no when-to-use guidance, no mention of prerequisites or alternatives, and no statement of when this is preferable to glpi_list_entities or glpi_get_my_entities. The ID-based retrieval is only implied by the tool name and purpose line.

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 infoA
Read-onlyIdempotent
Inspect

Get the full session info including active entity, profile, and user details. Useful for debugging and verifying the current session context.

NameRequiredDescriptionDefault
fieldsNoField set: 'essential' (default, trims internal GLPI fields) or 'all'
formatNoOutput 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

NameRequiredDescription
dataNo
noteNoPagination hint: how to fetch the next page
countNoItems in this page
formatNo'markdown' when data holds the markdown rendering

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered. The description adds that the payload covers active entity, profile, and user details, which is modest added context, but says nothing about auth requirements or session-expiry behavior beyond what a session call implies.

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

Conciseness4/5

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

Two short sentences, front-loaded with the action and payload, no filler. Slightly under-informative rather than bloated, so it earns its length without standing out as exemplary.

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

Completeness4/5

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 previews the key contents (entity, profile, user). For a zero-required-parameter, read-only introspection tool with full annotation and schema coverage, this is essentially complete.

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

Parameters3/5

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

Schema description coverage is 100% and both parameters are enums with documented values and defaults ('essential'/'all', 'json'/'markdown'), so the schema does the heavy lifting. The description contributes no parameter guidance at all, which is the expected baseline of 3 in this case.

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

Purpose4/5

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

States a specific verb ('Get') and resource ('full session info') and enumerates the contents: active entity, profile, user details. It is clearly distinct from sibling session-adjacent tools like glpi_get_my_entities or glpi_get_my_profiles, though it does not explicitly name those alternatives.

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

Usage Guidelines3/5

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

The description gives an implied usage context ('useful for debugging and verifying the current session context') but no explicit when-to-use versus when-not rules, and it never points to a sibling for a narrower query such as current entities or profiles.

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

glpi_get_groupGet groupC
Read-onlyIdempotent
Inspect

Retrieve a group by ID.

NameRequiredDescriptionDefault
fieldsNoField set: 'essential' (default, trims internal GLPI fields) or 'all'
formatNoOutput format: 'json' (default) or 'markdown' (a table for listings, key/value lines for one item; returned in both the text and the structured result)
groupIdYesItem ID

Output Schema

NameRequiredDescription
dataNo
noteNoPagination hint: how to fetch the next page
countNoItems in this page
formatNo'markdown' when data holds the markdown rendering

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, covering the safety profile fully. The description adds nothing beyond that – no note about missing-group behavior, permission scope, or response shape – so it contributes no extra behavioral value.

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

Conciseness4/5

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

A single short sentence with the resource and lookup key front-loaded and zero filler. It is efficient, though the brevity edges toward under-specification rather than model conciseness.

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

Completeness3/5

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

With a rich schema, an output schema, and full annotation coverage, the description needs to carry little – but for a lookup tool sitting among list/search siblings it should still indicate the ID-known precondition and point to glpi_list_groups.

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

Parameters3/5

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

Schema description coverage is 100%, with clear docs on fields and format enums and the groupId type. 'By ID' aligns with the required groupId param but adds no syntax or constraint 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.

Purpose4/5

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

States a specific verb and resource ('Retrieve a group') plus the lookup key ('by ID'), so the agent knows exactly what it returns. It does not distinguish itself from the sibling glpi_list_groups, which is the obvious alternative for group lookups.

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

Usage Guidelines2/5

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

There is no when-to-use guidance and no mention of glpi_list_groups as the alternative when the ID is unknown. The agent must infer that this tool requires a known groupId from the 'by ID' phrasing alone.

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 categoryB
Read-onlyIdempotent
Inspect

Retrieve an ITIL category by ID.

NameRequiredDescriptionDefault
fieldsNoField set: 'essential' (default, trims internal GLPI fields) or 'all'
formatNoOutput format: 'json' (default) or 'markdown' (a table for listings, key/value lines for one item; returned in both the text and the structured result)
categoryIdYesItem ID

Output Schema

NameRequiredDescription
dataNo
noteNoPagination hint: how to fetch the next page
countNoItems in this page
formatNo'markdown' when data holds the markdown rendering

TDQS

B3.2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, and the description adds nothing on top of that — no not-found behavior, no indication of caching or staleness. With a lower bar due to annotations, it still contributes zero 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.

Conciseness5/5

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

One short sentence, front-loaded with the verb and resource, with no filler or redundancy.

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

Completeness4/5

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 is nearly sufficient for a simple read tool; the only shortfall is the absence of any guidance on usage or missing-ID handling.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents categoryId, fields, and format in detail; baseline 3 applies. The description's 'by ID' merely restates the required parameter and adds no syntax or semantics beyond the schema.

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

Purpose4/5

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

States a specific verb (Retrieve) and resource (ITIL category) scoped to a single item via ID, which implicitly separates it from the sibling glpi_list_itil_categories. It does not explicitly name that sibling, but the singular/plural distinction is unambiguous.

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

Usage Guidelines2/5

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

No when-to-use guidance, no prerequisites, and no named alternative. The agent must infer that this is the single-item lookup versus glpi_list_itil_categories, and gets no signal about what to do when the ID is unknown.

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 templateB
Read-onlyIdempotent
Inspect

Retrieve a followup template by ID.

NameRequiredDescriptionDefault
fieldsNoField set: 'essential' (default, trims internal GLPI fields) or 'all'
formatNoOutput format: 'json' (default) or 'markdown' (a table for listings, key/value lines for one item; returned in both the text and the structured result)
templateIdYesItem ID
expand_dropdownsNoExpand dropdown IDs to names

Output Schema

NameRequiredDescription
dataNo
noteNoPagination hint: how to fetch the next page
countNoItems in this page
formatNo'markdown' when data holds the markdown rendering

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, covering the full safety profile of a simple read. The description adds no behavioral context beyond that (e.g. what happens on a missing/invalid ID), so it neither helps nor contradicts.

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

Conciseness5/5

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

A single front-loaded sentence with zero filler; the resource and lookup key come first. Nothing could be trimmed without losing meaning.

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

Completeness4/5

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 return values and inputs are handled by structured fields, and annotations cover safety. For a simple single-item read this is nearly complete; only explicit sibling routing is missing.

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

Parameters3/5

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

Schema description coverage is 100% and the schema documents all four parameters including the 'fields' and 'format' enums. The description adds nothing about parameters, so the baseline of 3 applies since the schema does the heavy lifting.

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

Purpose4/5

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

States a specific verb ('Retrieve') and resource ('followup template') scoped by identifier ('by ID'), which implicitly distinguishes it from the list/create/update siblings. However, it never names those alternatives, so an agent gets no explicit differentiation.

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

Usage Guidelines2/5

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

The phrase 'by ID' implies the caller must already hold a templateId, but there is no statement of when to use this versus glpi_list_itil_followup_templates or when it should not be used. No prerequisites or alternatives 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_knowbase_categoryGet knowledge base categoryC
Read-onlyIdempotent
Inspect

Retrieve a knowledge base category by ID.

NameRequiredDescriptionDefault
fieldsNoField set: 'essential' (default, trims internal GLPI fields) or 'all'
formatNoOutput format: 'json' (default) or 'markdown' (a table for listings, key/value lines for one item; returned in both the text and the structured result)
categoryIdYesItem ID

Output Schema

NameRequiredDescription
dataNo
noteNoPagination hint: how to fetch the next page
countNoItems in this page
formatNo'markdown' when data holds the markdown rendering

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so safety is covered structurally. The description adds nothing beyond that—no note on behavior when categoryId does not exist, permission requirements, or whether a missing ID errors versus 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.

Conciseness4/5

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

One short sentence, front-loaded with the verb and resource, with zero padding. It is efficient, though its brevity borders on under-specification rather than true concision.

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

Completeness3/5

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

An output schema exists, so return values need no explanation, and the annotations cover the read-only nature. However, for a 3-parameter tool with optional fields/format controls, the description omits any context about default behavior or error handling, leaving it only minimally adequate.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents categoryId, fields ('essential'/'all'), and format ('json'/'markdown'). 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.

Purpose4/5

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 distinguishes it from the sibling verbs list/create/update/delete_knowbase_category. It stops short of naming an alternative explicitly, but the action is unambiguous.

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

Usage Guidelines2/5

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

No when-to-use guidance, no exclusions, and no pointer to alternatives such as glpi_list_knowbase_categories for discovery or glpi_get_knowbase_item for items within a category. The agent must infer everything 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_knowbase_itemGet knowledge base itemC
Read-onlyIdempotent
Inspect

Retrieve a knowledge base article by ID.

NameRequiredDescriptionDefault
fieldsNoField set: 'essential' (default, trims internal GLPI fields) or 'all'
formatNoOutput format: 'json' (default) or 'markdown' (a table for listings, key/value lines for one item; returned in both the text and the structured result)
knowbaseIdYesItem ID

Output Schema

NameRequiredDescription
dataNo
noteNoPagination hint: how to fetch the next page
countNoItems in this page
formatNo'markdown' when data holds the markdown rendering

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare the full safety profile (readOnlyHint, idempotentHint, destructiveHint=false, openWorldHint=false), and the description adds nothing on top of that — no mention of error behavior for missing IDs, no note that permissions/visibility may restrict results. It essentially restates the title.

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

Conciseness4/5

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

A single front-loaded sentence with zero filler, which is appropriate for a simple getter. It is terse rather than padded, though it leans toward under-specification rather than optimal density.

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

Completeness3/5

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

An output schema exists, so return values need no explanation, and all three parameters are fully documented in the schema. What is missing is the surrounding context an agent needs to choose this tool confidently — no routing against the list sibling and no failure-mode note. Adequate but with a clear gap.

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

Parameters3/5

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

Schema description coverage is 100%, so the descriptions of knowbaseId, fields, and format already carry the meaning; baseline 3 applies. The tool description itself adds no further parameter nuance (e.g., default field set behavior or when markdown output is preferable).

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

Purpose4/5

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

States a specific verb ('Retrieve') and resource ('knowledge base article') plus the lookup key ('by ID'), so the operation is unambiguous. It does not, however, distinguish itself from sibling glpi_list_knowbase_items or the create/update/delete variants beyond the obvious verb.

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

Usage Guidelines2/5

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

The only implied guidance is that you need an ID. There is no statement of when to pick this over glpi_list_knowbase_items, no note on what happens with an unknown/out-of-range ID, and no 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_get_locationGet locationB
Read-onlyIdempotent
Inspect

Retrieve a location by ID.

NameRequiredDescriptionDefault
fieldsNoField set: 'essential' (default, trims internal GLPI fields) or 'all'
formatNoOutput format: 'json' (default) or 'markdown' (a table for listings, key/value lines for one item; returned in both the text and the structured result)
locationIdYesItem ID

Output Schema

NameRequiredDescription
dataNo
noteNoPagination hint: how to fetch the next page
countNoItems in this page
formatNo'markdown' when data holds the markdown rendering

TDQS

B3.1/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, fully covering the safety profile. The description adds nothing beyond that – no note about permissions, error behavior on missing IDs, or the returned shape.

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

Conciseness5/5

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

A single front-loaded sentence with zero filler. Nothing is wasted, though its brevity also reflects the thin content noted elsewhere.

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

Completeness3/5

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

Output schema exists, so return values need no explanation, and the operation is a simple entity fetch. Still, the definition omits any linkage to glpi_list_locations and any hint about fields/format selection, leaving minor gaps for such a trivial tool.

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

Parameters3/5

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

Schema description coverage is 100%, documenting locationId, the fields enum, and the format enum, so the schema carries the parameter burden. The description contributes no additional parameter meaning, making the baseline 3 appropriate.

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

Purpose4/5

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

States a specific verb ('Retrieve') and resource ('a location') scoped by ID, which implicitly separates it from glpi_list_locations. However, it never names the list sibling or otherwise differentiates explicitly, so it stops short of the 5 bar.

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

Usage Guidelines2/5

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

No when-to-use guidance, no prerequisites, and no mention of the alternative glpi_list_locations. The agent must infer that this is the single-item fetch versus the list tool.

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 entitiesB
Read-onlyIdempotent
Inspect

Get the list of entities available to the current user.

NameRequiredDescriptionDefault
fieldsNoField set: 'essential' (default, trims internal GLPI fields) or 'all'
formatNoOutput 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

NameRequiredDescription
dataNo
noteNoPagination hint: how to fetch the next page
countNoItems in this page
formatNo'markdown' when data holds the markdown rendering

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered. The description adds only the useful scoping fact that results are limited to the current user's entities; it says nothing about ordering, pagination, or result size for a list operation.

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

Conciseness5/5

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

One front-loaded sentence with the scope constraint stated immediately and zero filler. Nothing to trim.

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

Completeness4/5

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 the operation is a simple read with no required parameters. The only real omission is routing guidance against the several entity-related siblings.

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

Parameters3/5

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

Schema description coverage is 100% and both parameters (fields, format) have documented enums, so the schema fully carries parameter meaning. The description adds nothing about these options, which is acceptable but not additive.

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

Purpose4/5

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

Specific verb ('Get the list') plus resource ('entities') and a clear scope qualifier ('available to the current user'). This implicitly separates it from glpi_list_entities (all entities) and glpi_get_entity (single entity), but it never names those siblings, so the differentiation is inferred rather than explicit.

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

Usage Guidelines2/5

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

There is no when-to-use guidance and no mention of alternatives such as glpi_list_entities, glpi_get_entity, or glpi_get_my_profiles, even though the description's 'my' scope exists precisely to contrast with the broader list. Usage can only be inferred from the name and scope phrase.

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 profilesB
Read-onlyIdempotent
Inspect

Get the list of profiles available to the current user.

NameRequiredDescriptionDefault
fieldsNoField set: 'essential' (default, trims internal GLPI fields) or 'all'
formatNoOutput 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

NameRequiredDescription
dataNo
noteNoPagination hint: how to fetch the next page
countNoItems in this page
formatNo'markdown' when data holds the markdown rendering

TDQS

B3.4/5.0
Behavior3/5

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 fully covered externally. The description adds meaningful context by implying no user identifier is needed (results are scoped to the caller), but it says nothing about authentication requirements or result size beyond that. With annotations carrying the behavioral load, 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.

Conciseness5/5

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

A single sentence with zero waste, front-loading the verb and resource. Nothing redundant or padded.

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

Completeness4/5

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

The tool is trivial (zero required parameters), the schema fully documents both optional parameters, and an output schema exists so return values need not be described. The description covers purpose and scope adequately, though it could note the 'current user' scoping relies on session context.

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

Parameters3/5

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

Schema description coverage is 100% and both parameters (fields, format) have enum descriptions in the schema, so the schema does the heavy lifting. The description adds no additional meaning about these parameters, making the baseline 3 correct.

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

Purpose4/5

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

The description names a specific verb (Get) and resource (list of profiles) and scopes it to the current user, so an agent immediately knows what it returns. It doesn't differentiate from analogous siblings like glpi_get_my_entities, but no sibling competes for the same 'profiles' resource, so ambiguity is low.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no mention of when not to use it, and no reference to any alternative tool. The only implied context is that it returns the calling user's own profiles, which the agent must infer from the phrase 'current user'.

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

glpi_get_problemGet problemB
Read-onlyIdempotent
Inspect

Retrieve a problem by ID, with names beside the IDs and status/priority labels in the GLPI user's language.

NameRequiredDescriptionDefault
fieldsNoField set: 'essential' (default, trims internal GLPI fields) or 'all'
formatNoOutput format: 'json' (default) or 'markdown' (a table for listings, key/value lines for one item; returned in both the text and the structured result)
problemIdYesItem ID
expand_dropdownsNoExpand dropdown IDs to names

Output Schema

NameRequiredDescription
dataNo
noteNoPagination hint: how to fetch the next page
countNoItems in this page
formatNo'markdown' when data holds the markdown rendering

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so safety is covered. The description adds useful context that IDs are enriched with names and labels are localized to the GLPI user's language, but discloses nothing about auth, errors, or limits.

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

Conciseness4/5

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

A single efficient sentence with no waste and the core action front-loaded. It is arguably too terse for the tool's four parameters, but nothing is redundant.

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

Completeness3/5

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

With a full output schema and 100% param coverage, the description needn't explain returns, so it is mostly complete. The gap is the absence of any usage or alternative guidance for a get-by-ID tool in a large sibling set.

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

Parameters3/5

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

Schema description coverage is 100%, so fields, format, problemId, and expand_dropdowns are already documented. The phrase 'names beside the IDs' loosely echoes expand_dropdowns but adds no new syntax or default detail. Baseline 3 applies.

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

Purpose4/5

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

States a specific verb (Retrieve) and resource (problem) scoped to a single item via 'by ID', which implicitly distinguishes it from glpi_list_problems. However, it never names the list sibling, 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.

Usage Guidelines2/5

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

The description offers no when-to-use context, no prerequisites, and no reference to alternatives such as glpi_list_problems or glpi_get_ticket. The agent must infer usage entirely.

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

glpi_get_reservationGet reservationC
Read-onlyIdempotent
Inspect

Retrieve a reservation by ID.

NameRequiredDescriptionDefault
fieldsNoField set: 'essential' (default, trims internal GLPI fields) or 'all'
formatNoOutput format: 'json' (default) or 'markdown' (a table for listings, key/value lines for one item; returned in both the text and the structured result)
reservationIdYesItem ID

Output Schema

NameRequiredDescription
dataNo
noteNoPagination hint: how to fetch the next page
countNoItems in this page
formatNo'markdown' when data holds the markdown rendering

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, non-destructive, and closed-world, covering the full safety profile. The description adds nothing beyond that — no note on lookup failure, visibility/permission scope, 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.

Conciseness4/5

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

A single front-loaded sentence with zero waste, appropriately sized for a simple key-based lookup. It does not pad or bury the essential action.

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

Completeness3/5

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

With a complete input schema, an output schema, and full annotations, the missing pieces are minor: no mention of not-found behavior or how a reservation relates to reservation items. Adequate for a simple getter but not fully rounded out.

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

Parameters3/5

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

Schema description coverage is 100%: reservationId, fields, and format all carry inline enum descriptions. The description does not extend any of them, so the baseline of 3 applies for a schema that does the heavy lifting.

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

Purpose4/5

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

States a specific verb and resource ('Retrieve a reservation by ID'), so the agent knows exactly what it does. However, it offers no differentiation from siblings such as glpi_list_reservations or glpi_get_reservation_item-like tools, so it is clear but not disambiguating.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no prerequisites, and no mention of alternatives (e.g. glpi_list_reservations when the ID is unknown). The agent must infer the 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_get_rule_ticketGet ticket ruleB
Read-onlyIdempotent
Inspect

Retrieve a ticket business rule (RuleTicket) by ID.

NameRequiredDescriptionDefault
fieldsNoField set: 'essential' (default, trims internal GLPI fields) or 'all'
formatNoOutput format: 'json' (default) or 'markdown' (a table for listings, key/value lines for one item; returned in both the text and the structured result)
ruleIdYesItem ID
expand_dropdownsNoExpand dropdown IDs to names

Output Schema

NameRequiredDescription
dataNo
noteNoPagination hint: how to fetch the next page
countNoItems in this page
formatNo'markdown' when data holds the markdown rendering

TDQS

B3.3/5.0
Behavior3/5

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 fully covered. The description adds only the identification mechanism ('by ID'), which the schema already conveys, so it contributes little behavioral 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.

Conciseness5/5

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

A single, front-loaded sentence with zero waste. It states the action, resource, and scoping key immediately.

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

Completeness3/5

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

An output schema exists, so return values need not be explained, and annotations cover the safety profile. Still, for a get-by-ID tool surrounded by many rule-related siblings, the description omits any distinguishing or usage context, leaving it minimally adequate.

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

Parameters3/5

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

Schema description coverage is 100% with detailed enum docs for fields and format, so the schema carries the parameter burden. The description adds no additional meaning for fields, format, or expand_dropdowns, making the baseline 3 appropriate.

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

Purpose4/5

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

States a specific verb (Retrieve) and resource (ticket business rule / RuleTicket) scoped by ID, which distinguishes it from the list-oriented siblings like glpi_list_rules and glpi_list_rule_ticket_criteria. However, it does not explicitly differentiate itself from other rule endpoints (create_rule_ticket, list_rules), 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.

Usage Guidelines2/5

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, and no alternatives. With many sibling rule tools (list_rules, list_rule_ticket_criteria, create_rule_ticket), the agent gets no guidance on selecting this one versus fetching criteria/actions separately.

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

glpi_get_ticketGet ticketA
Read-onlyIdempotent
Inspect

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

NameRequiredDescriptionDefault
fieldsNoField set: 'essential' (default, trims internal GLPI fields) or 'all'
formatNoOutput format: 'json' (default) or 'markdown' (a table for listings, key/value lines for one item; returned in both the text and the structured result)
ticketIdYesItem ID
expand_dropdownsNoReplace dropdown IDs with their names in place (loses the IDs; by default names are added beside them)

Output Schema

NameRequiredDescription
dataNo
noteNoPagination hint: how to fetch the next page
countNoItems in this page
formatNo'markdown' when data holds the markdown rendering

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare the full safety profile (readOnly, idempotent, non-destructive, closed-world), so the bar is lower. The description adds useful return-shape behavior: dropdown IDs are returned with names beside them (including localized *_name fields), and relationship data is deliberately excluded from the ticket object.

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

Conciseness4/5

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

Three tight sentences, front-loaded with the core action before the return-shape detail and the routing note. No filler; each sentence carries distinct information.

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

Completeness4/5

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 re-explained, and the description covers the key gotcha (missing relationship fields) plus where to get them. For a single-item read tool this is essentially complete.

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

Parameters3/5

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

Schema coverage is 100% and each parameter is already documented, so the baseline is 3. The naming-behavior sentence touches on the default (names added beside IDs) that the expand_dropdowns parameter toggles, but it does not add format or syntax beyond the schema.

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

Purpose5/5

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

States a specific verb+resource+scope: 'Retrieve a single ticket by ID.' The word 'single' (and 'by ID') cleanly separates it from the list-style siblings such as glpi_list_tickets and glpi_list_my_tickets without needing their schemas.

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

Usage Guidelines4/5

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

Gives explicit routing for the common confusion: requesters, technicians and observers are not ticket fields, so use glpi_list_ticket_users / glpi_list_ticket_groups instead. It is clear context, though it does not explicitly contrast against glpi_list_tickets or glpi_get_ticket_stats.

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 statsA
Read-onlyIdempotent
Inspect

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

NameRequiredDescriptionDefault
criteriaNoOptional criteria to narrow the scope: array of {field, searchtype, value, link}

Output Schema

NameRequiredDescription
dataNo

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so the safety profile is fully covered. The description adds the aggregate-vs-record return behavior, which is useful, but says nothing about permissions, entity visibility scope, or cost of the query.

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

Conciseness4/5

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

Front-loaded with the return shape and the exclusion, then the optional criteria and example. Dense but every clause carries information; the parenthetical ID mapping is slightly heavy but earns its place.

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

Completeness4/5

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 detail is not the description's burden, and the single optional parameter is explained. What remains unstated is default scoping (which entities are counted when criteria are omitted), which an agent would need to know to interpret results correctly.

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

Parameters4/5

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

Schema coverage is 100% but the schema only documents the generic {field, searchtype, value, link} shape with no meaning for field values. The description supplies the mapping that matters most (80=entity, 4=requester, 5=technician, 7=category) and a worked example, which is well beyond the structured data, though the list is partial and searchtype values are still unexplained.

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

Purpose5/5

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

States a specific verb+resource ('ticket counts per status ... plus the total') and immediately delimits it against the sibling list tools by saying it works 'without listing the tickets'. An agent can distinguish this from glpi_list_tickets and glpi_search from the first clause alone.

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

Usage Guidelines4/5

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

Gives a clear usage context (aggregate counting rather than record retrieval) and demonstrates optional narrowing with a concrete criteria example. It does not name an explicit alternative to prefer (e.g. glpi_count_items) or state when not to use it, so it stops 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_get_userGet userC
Read-onlyIdempotent
Inspect

Retrieve a user by ID.

NameRequiredDescriptionDefault
fieldsNoField set: 'essential' (default, trims internal GLPI fields) or 'all'
formatNoOutput format: 'json' (default) or 'markdown' (a table for listings, key/value lines for one item; returned in both the text and the structured result)
userIdYesItem ID

Output Schema

NameRequiredDescription
dataNo
noteNoPagination hint: how to fetch the next page
countNoItems in this page
formatNo'markdown' when data holds the markdown rendering

TDQS

C2.9/5.0
Behavior2/5

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 nothing beyond that: no note on permission requirements, missing-record behavior, or how the 'fields' trimming affects the response, so it contributes no behavioral context of its own.

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

Conciseness4/5

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

A single short sentence with no waste and the key scope (by ID) front-loaded. It is efficient, though its brevity reflects under-specification rather than disciplined trimming of useful content.

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

Completeness3/5

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

An output schema exists, so return values need not be explained, and annotations carry the safety profile. What is missing is routing context in a large sibling set containing glpi_list_users and glpi_search_user_by_email, which the description should have addressed.

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

Parameters3/5

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

Schema description coverage is 100%, so userId, fields, and format are all documented in the schema itself. The phrase 'by ID' merely echoes the required parameter and adds no syntax or semantics beyond what the schema already provides, making the baseline 3 appropriate.

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

Purpose4/5

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

States a specific verb (Retrieve) and resource (user) scoped by ID, which is clearly distinct from the plural glpi_list_users. However, it doesn't explicitly differentiate itself from glpi_search_user_by_email or glpi_list_users, which are the natural alternatives an agent would weigh.

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

Usage Guidelines2/5

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

The description gives no when-to-use guidance and never mentions alternatives such as glpi_search_user_by_email or glpi_list_users. An agent must infer from the name alone that this is the direct-lookup path when a numeric ID is already known.

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

glpi_get_webhookGet webhookA
Read-onlyIdempotent
Inspect

Retrieve a webhook definition by ID, including its payload template.

NameRequiredDescriptionDefault
fieldsNoField set: 'essential' (default, trims internal GLPI fields) or 'all'
formatNoOutput format: 'json' (default) or 'markdown' (a table for listings, key/value lines for one item; returned in both the text and the structured result)
webhookIdYesItem ID

Output Schema

NameRequiredDescription
dataNo
noteNoPagination hint: how to fetch the next page
countNoItems in this page
formatNo'markdown' when data holds the markdown rendering

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, non-destructive, and openWorldHint=false, so the safety profile is covered. The description adds that the payload template is included in the result, which is useful content context but no auth, rate-limit, or error behavior.

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

Conciseness5/5

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

A single front-loaded sentence with no filler. The key resource and the notable content (payload template) come first, and nothing is wasted.

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

Completeness4/5

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

With an output schema handling return values and 100%-covered params, the description only needs to establish what is fetched and the ID-based scope, which it does. It is complete for a simple get-by-id tool, missing only explicit routing to sibling list/update tools.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents webhookId, fields, and format in full. The description adds no syntax or meaning beyond what the schema provides, making the baseline 3 correct.

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

Purpose4/5

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

States a specific verb (retrieve) and resource (webhook definition) with the scoping condition 'by ID', which distinguishes it from the sibling glpi_list_webhooks. It does not explicitly name the sibling, so it falls just 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.

Usage Guidelines3/5

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

Usage is only implied: 'by ID' suggests it is for fetching a single known webhook rather than enumerating them, and no alternatives (e.g. glpi_list_webhooks) or prerequisites are named. There is no explicit when/when-not guidance.

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

glpi_list_assetsList assetsA
Read-onlyIdempotent
Inspect

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.

NameRequiredDescriptionDefault
rangeNoPagination range, e.g. 0-49
fieldsNoField set: 'essential' (default, trims internal GLPI fields) or 'all'
formatNoOutput 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_typeYesAsset itemtype, e.g. Computer, Monitor, Printer, NetworkEquipment, Software
expand_dropdownsNoExpand dropdown IDs to names

Output Schema

NameRequiredDescription
dataNo
noteNoPagination hint: how to fetch the next page
countNoItems in this page
formatNo'markdown' when data holds the markdown rendering

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare a safe, idempotent, non-destructive read, so the safety profile is covered. The description adds that location_name, state_name and user_name are returned beside IDs, which is useful return context, but with an output schema present this is largely structured data already available.

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

Conciseness5/5

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

Two tight sentences: the core behavior and type scope come first, the alternative routing second. No filler, every clause earns its place.

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

Completeness4/5

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

With an output schema, full parameter coverage, and annotations covering the safety profile, the description covers purpose and routing well. Minor gaps like pagination behavior (the 'range' param) are left to the schema, which is acceptable here.

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

Parameters3/5

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

Schema coverage is 100%, so the schema documents all five parameters including enums and defaults. The description only restates the asset_type enumeration and hints at expanded name fields, adding little beyond the schema.

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

Purpose5/5

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

States a specific verb (List) and resource (assets), scopes it to a given type, and enumerates the valid types. It is clearly distinguishable from siblings like 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.

Usage Guidelines4/5

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

'Use glpi_search for filtered queries' explicitly names the alternative and the condition that selects it, which is strong routing guidance. It stops short of stating when-not to use this tool or any prerequisites, so it is clear but not exhaustive.

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 followupsB
Read-onlyIdempotent
Inspect

List followups (comments) of a change, with the author's name (user_name).

NameRequiredDescriptionDefault
rangeNoPagination range, e.g. 0-49
fieldsNoField set: 'essential' (default, trims internal GLPI fields) or 'all'
formatNoOutput format: 'json' (default) or 'markdown' (a table for listings, key/value lines for one item; returned in both the text and the structured result)
changeIdYesItem ID
expand_dropdownsNoExpand dropdown IDs to names

Output Schema

NameRequiredDescription
dataNo
noteNoPagination hint: how to fetch the next page
countNoItems in this page
formatNo'markdown' when data holds the markdown rendering

TDQS

B3.4/5.0
Behavior3/5

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 fully covered by structured fields and the description carries a lower burden. The only added behavioral detail is that the author's name (user_name) is included in the payload, which is modest but real 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.

Conciseness5/5

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

A single front-loaded sentence with no filler; the verb, resource and the one non-obvious output detail are all packed into it without waste.

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

Completeness4/5

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 need not repeat return values or risk semantics. It is adequate for a simple listing call, though a note on the difference from the ticket/problem followup listers would have closed the remaining gap.

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

Parameters3/5

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

Schema description coverage is 100% with all five parameters documented (range, fields, format, changeId, expand_dropdowns), so the schema does the heavy lifting and the baseline is 3. The description adds no parameter-level meaning beyond what is already in the schema.

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

Purpose4/5

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

States a specific verb and resource ('List followups of a change') and clarifies what a followup is (a comment), which is genuinely useful for an agent unfamiliar with GLPI terminology. It does not explicitly distinguish itself from the near-neighbours glpi_list_followups and glpi_list_problem_followups, but the scope word 'change' makes the target object unambiguous.

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

Usage Guidelines2/5

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

There is no when-to-use guidance and no routing to alternatives. With siblings glpi_list_followups, glpi_list_problem_followups, glpi_list_timeline and glpi_add_change_followup in the toolset, the agent must infer the intended 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_list_changesList changesA
Read-onlyIdempotent
Inspect

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.

NameRequiredDescriptionDefault
sortNoSort column (default date_mod = last update)
orderNoSort direction (default desc = most recent first)
rangeNoPagination range, e.g. 0-49
fieldsNoField set: 'essential' (default, trims internal GLPI fields) or 'all'
formatNoOutput 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_dropdownsNoExpand dropdown IDs to names

Output Schema

NameRequiredDescription
dataNo
noteNoPagination hint: how to fetch the next page
countNoItems in this page
formatNo'markdown' when data holds the markdown rendering

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare the safe read-only, idempotent, non-destructive profile, so the description only needs incremental context. It adds that results are sorted most-recently-updated first by default and that dropdown values (status/priority/category names) come back localized in the GLPI user's language, which is genuinely useful behavior not in 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.

Conciseness4/5

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

A single tight sentence, front-loaded with the purpose, then the default ordering and return-field details. Nothing is wasted, though the clause about localized names is somewhat dense.

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

Completeness4/5

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

With a full output schema, 100% parameter coverage, and annotations covering safety, the description carries enough to call the tool correctly. The one gap is routing guidance versus sibling list/search/get tools, which is a usage-guideline concern rather than a completeness failure.

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

Parameters3/5

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

Schema description coverage is 100%, so all six parameters (sort, order, range, fields, format, expand_dropdowns) are already documented in the schema; the description adds no syntax or format detail beyond what is there. The baseline of 3 applies, with the language note bleeding slightly into return semantics covered by the output schema.

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

Purpose4/5

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

States a clear verb (List) and resource (change management items), and specifies default ordering plus the named fields returned (status_name, priority_name, category_name). This is enough to separate it from glpi_list_problems and glpi_list_tickets, but it never explicitly names a sibling or scoping boundary as the strongest definitions do.

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

Usage Guidelines3/5

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

Usage is only implied by the tool name and the 'by default' ordering note; there is no statement of when to prefer this over glpi_search, glpi_get_change (single item), or other listing tools. No prerequisites or exclusions are given.

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 tasksA
Read-onlyIdempotent
Inspect

List tasks for a change, with author, technician and group names.

NameRequiredDescriptionDefault
rangeNoPagination range, e.g. 0-49
fieldsNoField set: 'essential' (default, trims internal GLPI fields) or 'all'
formatNoOutput format: 'json' (default) or 'markdown' (a table for listings, key/value lines for one item; returned in both the text and the structured result)
changeIdYesItem ID

Output Schema

NameRequiredDescription
dataNo
noteNoPagination hint: how to fetch the next page
countNoItems in this page
formatNo'markdown' when data holds the markdown rendering

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true, covering the safety profile. The description adds that returned tasks include author, technician, and group names, which is a useful hint about output content, but it does not disclose pagination behavior or other operational details. With annotations carrying the safety burden, 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.

Conciseness5/5

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

A single, front-loaded sentence that wastes no words. It states the purpose and the enriched fields efficiently.

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

Completeness5/5

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

For a simple list tool with full schema coverage, comprehensive annotations, and an output schema, the description is complete enough. It tells the agent what the tool does and what extra fields are included, and no critical calling information is missing.

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

Parameters3/5

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

Schema description coverage is 100%, so all four parameters are fully documented in the schema. The description adds no parameter-specific syntax or format 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.

Purpose5/5

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 change', and names the enriched fields (author, technician, group names). This clearly distinguishes it from sibling tools like glpi_list_ticket_tasks and glpi_list_problem_tasks, which target different ITIL objects.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives such as glpi_list_change_followups or glpi_get_change. The description only implies usage by stating it lists tasks for a change; it does not provide when/when-not conditions.

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 linksC
Read-onlyIdempotent
Inspect

List links between documents and other items.

NameRequiredDescriptionDefault
rangeNoPagination range, e.g. 0-49
fieldsNoField set: 'essential' (default, trims internal GLPI fields) or 'all'
formatNoOutput 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

NameRequiredDescription
dataNo
noteNoPagination hint: how to fetch the next page
countNoItems in this page
formatNo'markdown' when data holds the markdown rendering

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered elsewhere. The description adds nothing behavioral of its own – no mention of pagination behavior, result volume, or what a 'link' record contains – so it contributes little 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.

Conciseness4/5

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

A single short sentence with zero filler and the resource stated up front. It is efficient, though its brevity borders on under-specification rather than deliberate concision.

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

Completeness3/5

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

The tool is a simple read-only listing with a full schema, rich annotations and an output schema, so the description does not need to explain return values. Still, it omits what the linked 'items' can be and whether any filtering is possible, leaving a modest gap for an agent.

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

Parameters3/5

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

Schema description coverage is 100% with three optional, well-documented parameters (range, fields, format), so the schema carries the parameter burden. The description adds no extra meaning about these parameters, making the baseline 3 appropriate.

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

Purpose4/5

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

The description gives a specific verb and resource ('List links between documents and other items'), which is more precise than the bare name. However, it never distinguishes itself from close siblings like glpi_list_documents, glpi_get_document_item or glpi_create_document_item, and 'other items' stays vague about which item types are linkable.

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

Usage Guidelines2/5

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

No when-to-use, when-not-to-use, or alternative routing is provided. An agent cannot tell from this text whether it should call this tool or glpi_list_documents / glpi_get_document_item for a given need.

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

glpi_list_documentsList documentsB
Read-onlyIdempotent
Inspect

List documents with optional pagination.

NameRequiredDescriptionDefault
rangeNoPagination range, e.g. 0-49
fieldsNoField set: 'essential' (default, trims internal GLPI fields) or 'all'
formatNoOutput 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

NameRequiredDescription
dataNo
noteNoPagination hint: how to fetch the next page
countNoItems in this page
formatNo'markdown' when data holds the markdown rendering

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint, covering the safety profile. The description adds only 'optional pagination', which is a minor behavioral detail already implied by the range parameter. No additional behavioral context such as rate limits, return format, or permission requirements is provided.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with zero waste. It states the action and the one notable option immediately, making it easy to scan.

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

Completeness4/5

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

Given the rich structured fields—full schema descriptions, clear annotations, and an output schema—the description is largely complete for correct invocation. The only notable gap is the lack of sibling differentiation, but the tool can still be called accurately from the available structured data.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all three parameters in detail. The description mentions pagination, which maps to the range parameter, but adds no syntax or format details 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.

Purpose4/5

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 documents'. It is clear what the tool does, but it does not distinguish itself from related siblings such as glpi_list_document_items or glpi_get_document. The addition of 'with optional pagination' clarifies scope but not sibling differentiation.

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

Usage Guidelines2/5

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 mention conditions, prerequisites, or exclusions relative to siblings like glpi_list_document_items. Usage is only implied by the tool name and context.

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

glpi_list_entitiesList entitiesB
Read-onlyIdempotent
Inspect

List GLPI entities (organizational units) with optional pagination.

NameRequiredDescriptionDefault
rangeNoPagination range, e.g. 0-49
fieldsNoField set: 'essential' (default, trims internal GLPI fields) or 'all'
formatNoOutput 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_dropdownsNoExpand dropdown IDs to names

Output Schema

NameRequiredDescription
dataNo
noteNoPagination hint: how to fetch the next page
countNoItems in this page
formatNo'markdown' when data holds the markdown rendering

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered by structured data. The description only adds that pagination is optional, which is thin extra context; this is a baseline 3 for a well-annotated read tool.

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

Conciseness4/5

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

A single compact sentence with zero filler, front-loading the resource and terminology. It is perhaps slightly too terse for a tool with four parameters, but nothing in it is wasted.

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

Completeness3/5

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

With a full output schema, complete annotation coverage and 100% parameter documentation, the structured fields carry most of the load, so the description is functionally sufficient. However, it omits any routing against the many sibling list tools and the entity getter, leaving a gap an agent must resolve on its own.

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

Parameters3/5

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

Schema description coverage is 100%, with all four parameters (range, fields, format, expand_dropdowns) documented in the schema itself, including enum meanings. The description's mention of 'optional pagination' adds nothing beyond the schema's 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.

Purpose4/5

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) and clarifies the domain term with 'organizational units'. This clearly separates it from glpi_get_entity, glpi_create_entity, glpi_update_entity and glpi_delete_entity, but it makes no explicit reference to any sibling name.

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

Usage Guidelines2/5

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

No when-to-use, when-not-to-use, or alternative guidance is provided. The description does not mention the relevant sibling glpi_get_my_entities, which an agent might reasonably prefer when only the caller's own entities are wanted, nor does it state prerequisites for enumerating entities.

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 followupsB
Read-onlyIdempotent
Inspect

List followups (comments) of a ticket, oldest first, with the author's name (user_name).

NameRequiredDescriptionDefault
rangeNoPagination range, e.g. 0-49
fieldsNoField set: 'essential' (default, trims internal GLPI fields) or 'all'
formatNoOutput format: 'json' (default) or 'markdown' (a table for listings, key/value lines for one item; returned in both the text and the structured result)
ticketIdYesItem ID

Output Schema

NameRequiredDescription
dataNo
noteNoPagination hint: how to fetch the next page
countNoItems in this page
formatNo'markdown' when data holds the markdown rendering

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so safety is covered. The description does add one genuine behavioral fact — results are ordered 'oldest first' — and notes that the author's name (user_name) is included, but says nothing about pagination defaults or volume.

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

Conciseness5/5

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

A single sentence with zero filler, front-loading the resource and appending the ordering guarantee where it is most useful.

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

Completeness4/5

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

With an output schema and full annotation coverage, the description only needs to add what structured fields don't convey. Ordering and the presence of user_name do that; only pagination/volume context is missing, which is a minor gap.

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

Parameters3/5

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

Schema description coverage is 100%, so range, fields and format are already fully documented in the schema; the description adds nothing about parameters. Baseline 3 applies.

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

Purpose4/5

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

States a specific verb and resource ('List followups (comments) of a ticket') and disambiguates the term with the synonym 'comments'. The ticket scope implicitly separates it from glpi_list_change_followups and glpi_list_problem_followups, though it never names those siblings.

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

Usage Guidelines2/5

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

There is no when-to-use or when-not-to-use guidance, and no alternatives are mentioned (e.g. glpi_list_timeline or glpi_get_ticket, which could also surface followups). Usage is only inferable 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_list_groupsList groupsB
Read-onlyIdempotent
Inspect

List GLPI groups with optional pagination.

NameRequiredDescriptionDefault
rangeNoPagination range, e.g. 0-49
fieldsNoField set: 'essential' (default, trims internal GLPI fields) or 'all'
formatNoOutput 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_dropdownsNoExpand dropdown IDs to names

Output Schema

NameRequiredDescription
dataNo
noteNoPagination hint: how to fetch the next page
countNoItems in this page
formatNo'markdown' when data holds the markdown rendering

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so safety is fully covered. The description adds only that pagination is optional, which hints at an unbounded default result but does not confirm it, and says nothing about auth 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.

Conciseness5/5

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

A single front-loaded sentence with no filler; the resource and the one behavioral modifier (pagination) are stated immediately.

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

Completeness4/5

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

With an output schema handling return values, 100% schema coverage for all four parameters, and annotations covering the safety profile, the description is nearly sufficient for this low-complexity list tool. It falls short only on default-result behavior when range is omitted and on any routing hint versus glpi_get_group.

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

Parameters3/5

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

Schema description coverage is 100% and all four parameters (range, fields, format, expand_dropdowns) are documented in the schema itself. The description adds no syntax, default, or format detail beyond what the schema already supplies, so the baseline 3 applies.

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

Purpose4/5

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

States a specific verb and resource ('List GLPI groups') plus the scoping modifier 'with optional pagination'. It is easy to distinguish from the singular glpi_get_group sibling by the verb, but the description never names that distinction explicitly.

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

Usage Guidelines2/5

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

The only guidance is 'optional pagination', which is not a when-to-use statement. There is no mention of when to prefer this over glpi_get_group, glpi_search, or glpi_list_ticket_groups, so the agent must infer routing 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_itil_categoriesList ITIL categoriesB
Read-onlyIdempotent
Inspect

List ITIL categories (ticket/change/problem classification).

NameRequiredDescriptionDefault
rangeNoPagination range, e.g. 0-49
fieldsNoField set: 'essential' (default, trims internal GLPI fields) or 'all'
formatNoOutput 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_dropdownsNoExpand dropdown IDs to names

Output Schema

NameRequiredDescription
dataNo
noteNoPagination hint: how to fetch the next page
countNoItems in this page
formatNo'markdown' when data holds the markdown rendering

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered. The description adds only the semantic note that categories apply across ticket/change/problem, with nothing about pagination defaults or return shape; that is adequate given the annotation coverage but not enriching.

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

Conciseness5/5

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

A single short sentence with the verb and resource front-loaded and no filler. Nothing in the sentence is redundant or wasted.

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

Completeness4/5

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

The tool is simple, read-only, has an output schema, and rich annotations, so the short description is largely sufficient. It could still note the difference from the singular get_itil_category sibling, which is the main residual gap.

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

Parameters3/5

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

Schema description coverage is 100%, so all four parameters (range, fields, format, expand_dropdowns) are already documented with examples and enum meanings. The description adds no parameter-level guidance, so the baseline 3 applies.

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

Purpose4/5

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

States a specific verb and resource ('List ITIL categories') and adds a parenthetical clarifying that these classify tickets, changes, and problems. This is clear and unambiguous, though it does not explicitly distinguish itself from the sibling glpi_get_itil_category or note the flat/hierarchical nature of the listing.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no conditions, and no mention of alternatives such as glpi_get_itil_category for a single category or glpi_list_knowbase_categories for the analogous KB taxonomy. The agent must infer the purpose 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_list_itil_followup_templatesList followup templatesB
Read-onlyIdempotent
Inspect

List ITIL followup templates (predefined followup texts).

NameRequiredDescriptionDefault
rangeNoPagination range, e.g. 0-49
fieldsNoField set: 'essential' (default, trims internal GLPI fields) or 'all'
formatNoOutput 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_dropdownsNoExpand dropdown IDs to names

Output Schema

NameRequiredDescription
dataNo
noteNoPagination hint: how to fetch the next page
countNoItems in this page
formatNo'markdown' when data holds the markdown rendering

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds only the clarifying gloss that these are predefined texts; it says nothing about pagination defaults, result volume, or that no filtering parameters are accepted, so it earns a baseline 3 rather than more.

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

Conciseness5/5

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

A single short sentence with the verb and resource front-loaded and the parenthetical gloss placed where it aids comprehension. Nothing is padded or redundant.

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

Completeness3/5

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

An output schema exists and annotations carry the safety profile, so the description need not explain return values or side effects. For a simple read-only lister it is minimally adequate, but it omits any routing cue against the many followup-related siblings, which is the one thing an agent would still need.

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

Parameters3/5

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

Schema description coverage is 100% with all four parameters (range, fields, format, expand_dropdowns) documented inline, including enum meanings and defaults. The description contributes no additional parameter semantics, so the baseline 3 applies.

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

Purpose4/5

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

The description names a specific verb ('List') and resource ('ITIL followup templates'), and the parenthetical clarifies the domain object as predefined followup texts. It does not, however, distinguish this list-templates tool from the adjacent template siblings (get/create/update) or from the plain followup listers like glpi_list_followups, leaving that separation to the tool name alone.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no stated prerequisites, and no mention of alternatives. An agent must infer from the name that this retrieves template definitions rather than actual followups on a ticket.

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 categoriesB
Read-onlyIdempotent
Inspect

List knowledge base categories with optional pagination.

NameRequiredDescriptionDefault
rangeNoPagination range, e.g. 0-49
fieldsNoField set: 'essential' (default, trims internal GLPI fields) or 'all'
formatNoOutput 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

NameRequiredDescription
dataNo
noteNoPagination hint: how to fetch the next page
countNoItems in this page
formatNo'markdown' when data holds the markdown rendering

TDQS

B3.2/5.0
Behavior3/5

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

The annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered by structured data. The description adds only that pagination is optional, contributing minimal behavioral context beyond what the schema and annotations already convey.

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

Conciseness4/5

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

A single front-loaded sentence with no filler or repetition. It is efficient, though the extreme brevity means it also omits useful routing information rather than earning that space back.

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

Completeness3/5

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

An output schema exists, so return values need not be explained, and annotations cover the safety profile, which lightens the burden. Still, for a taxonomy-listing tool in a large sibling set, the absence of any guidance on selecting it over the other knowbase or ITIL category tools leaves a real gap.

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

Parameters3/5

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

Schema description coverage is 100%, and all three parameters (range, fields, format) are documented in the schema, including enum semantics. The description's only parameter-related content is the word 'pagination,' which adds nothing beyond the schema, so the baseline of 3 applies.

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

Purpose4/5

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

States a specific verb and resource ('List knowledge base categories'), which is clear and unambiguous on its own. However, it does nothing to distinguish itself from closely related siblings such as glpi_get_knowbase_category, glpi_create/update/delete_knowbase_category, or glpi_list_itil_categories, so the 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.

Usage Guidelines2/5

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

The only usage clue is 'with optional pagination,' which describes a parameter rather than when to choose this tool. There is no mention of when to use it versus glpi_get_knowbase_category (single item) or glpi_list_itil_categories (different taxonomy), and no prerequisites or exclusions are given.

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 itemsB
Read-onlyIdempotent
Inspect

List knowledge base articles with optional pagination.

NameRequiredDescriptionDefault
rangeNoPagination range, e.g. 0-49
fieldsNoField set: 'essential' (default, trims internal GLPI fields) or 'all'
formatNoOutput 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

NameRequiredDescription
dataNo
noteNoPagination hint: how to fetch the next page
countNoItems in this page
formatNo'markdown' when data holds the markdown rendering

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered by structured data. The description adds only that pagination is optional, with no detail on default page size, total counts, or ordering. Marginal value beyond annotations.

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

Conciseness4/5

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

One short sentence with the resource and the pagination note front-loaded and no filler. It is efficient, though extremely terse given three parameters and an output schema.

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

Completeness3/5

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

An output schema exists, so return values need not be described, and all three parameters are fully documented in the schema. Still, for a listing tool in a large sibling set, the description omits any guidance on filtering or when to prefer an alternative, leaving it minimally viable.

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

Parameters3/5

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

Schema description coverage is 100% and both enums (fields, format) are documented in the schema itself. The description's mention of 'optional pagination' loosely maps to the range parameter but adds no syntax or default beyond what the schema already states, so the baseline 3 applies.

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

Purpose4/5

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

States a specific verb ('List') and resource ('knowledge base articles'), which cleanly separates it from the singular glpi_get_knowbase_item and from glpi_list_knowbase_categories. It does not explicitly name or contrast 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.

Usage Guidelines2/5

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

The only usage hint is 'optional pagination', which describes a parameter rather than when to choose this tool. It never mentions glpi_get_knowbase_item for single items, glpi_search for querying, or any precondition, so the agent must infer routing 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_list_locationsList locationsC
Read-onlyIdempotent
Inspect

List GLPI locations with optional pagination.

NameRequiredDescriptionDefault
rangeNoPagination range, e.g. 0-49
fieldsNoField set: 'essential' (default, trims internal GLPI fields) or 'all'
formatNoOutput 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_dropdownsNoExpand dropdown IDs to names

Output Schema

NameRequiredDescription
dataNo
noteNoPagination hint: how to fetch the next page
countNoItems in this page
formatNo'markdown' when data holds the markdown rendering

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=false and destructiveHint=false, so the safety profile is fully covered by structured data. The description adds nothing behavioral beyond restating that pagination exists — no notes on default range, result limits, or dropdown expansion behavior.

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

Conciseness4/5

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

A single short sentence that is front-loaded and free of filler. It is efficient, though the terseness is part of why other dimensions suffer.

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

Completeness3/5

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

With an output schema, complete annotations, and 100% schema coverage, the structural burden is largely carried elsewhere, and this is a simple read-only listing tool. Still, a list tool benefits from stating scope/defaults, and the description provides none.

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

Parameters3/5

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

Schema description coverage is 100% with all four parameters documented in the schema, including enums for fields and format. The description only alludes to pagination ('range') and adds no syntax or default information 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.

Purpose4/5

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

States a specific verb (list) and resource (GLPI locations) plus the pagination scope, so an agent can distinguish it from glpi_get_location, which fetches a single location. It does not explicitly name that sibling or contrast with search-style 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.

Usage Guidelines2/5

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_get_location or glpi_search; usage is only implied by the name. The 'optional pagination' note is a hint about invocation, not a when/when-not rule.

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 ticketsA
Read-onlyIdempotent
Inspect

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

NameRequiredDescriptionDefault
roleNoWhich link to the user: requester, assigned (technician), observer, or any (default)
sortNoSort column (default date_mod = last update)
orderNoSort direction (default desc = most recent first)
rangeNoPagination range, e.g. 0-49
fieldsNoField set: 'essential' (default, trims internal GLPI fields) or 'all'
formatNoOutput format: 'json' (default) or 'markdown' (a table for listings, key/value lines for one item; returned in both the text and the structured result)
statusNoStatuses to include (default open = not solved nor closed): new, assigned (= processing), planned, pending, solved, closed, open. One name or a list.
users_idNoAnother user's ID (default: the connected user)

Output Schema

NameRequiredDescription
dataNo
noteNoPagination hint: how to fetch the next page
roleNo
userNoWhose tickets these are
countNoItems in this page
totalNoTotal matching tickets (all pages)
formatNo'markdown' when data holds the markdown rendering
statusNo

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds genuinely useful behavior: the default filter (open only, not solved nor closed), the default ordering (most recently updated first), and the per-row payload (requesters/assigned/observers as {id,name}, status_name, 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.

Conciseness5/5

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

Three tight sentences, front-loaded with the scoping rule before defaults and row shape. No filler, and every clause carries actionable information.

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

Completeness5/5

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 with annotations present the safety profile is covered; what remains (scope, defaults, role semantics, trigger phrases) is fully stated. Nothing an agent needs to select or invoke this tool correctly is missing.

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

Parameters3/5

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

Schema description coverage is 100% and five parameters carry enums, so the schema already documents role, sort, order, status, fields, format, range, and users_id thoroughly. The description reinforces a few defaults (open status, recency ordering, role meanings) but adds no syntax or format detail beyond the schema; baseline 3 applies.

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

Purpose5/5

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

States a specific verb and resource (list tickets) plus the precise scoping rule: tickets of the connected user (or users_id) where they are requester, assigned technician, or observer. This scope implicitly and effectively distinguishes it from the sibling glpi_list_tickets, which lists tickets generally.

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

Usage Guidelines4/5

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

Provides explicit trigger phrases ('meus chamados', 'my open tickets', 'tickets assigned to me') that map natural user requests to this tool. It does not, however, name an alternative tool or state when NOT to use it (e.g. use glpi_list_tickets for org-wide listings), so routing is guided but not fully closed.

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 followupsB
Read-onlyIdempotent
Inspect

List followups (comments) of a problem, with the author's name (user_name).

NameRequiredDescriptionDefault
rangeNoPagination range, e.g. 0-49
fieldsNoField set: 'essential' (default, trims internal GLPI fields) or 'all'
formatNoOutput format: 'json' (default) or 'markdown' (a table for listings, key/value lines for one item; returned in both the text and the structured result)
problemIdYesItem ID
expand_dropdownsNoExpand dropdown IDs to names

Output Schema

NameRequiredDescription
dataNo
noteNoPagination hint: how to fetch the next page
countNoItems in this page
formatNo'markdown' when data holds the markdown rendering

TDQS

B3.2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered. The description adds only that the author's name is included in the result, which is return-content detail already covered by the output schema, so it contributes little 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.

Conciseness5/5

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

A single front-loaded sentence with the verb, resource and scope stated immediately and zero filler. Nothing in it is redundant or padded.

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

Completeness4/5

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

For a simple read-only list tool with a fully documented schema and an output schema, the definition is nearly sufficient — return values need not be explained. It is only missing usage/routing guidance, a minor gap given the tool's simplicity.

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

Parameters3/5

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

Schema description coverage is 100% for all five parameters (range, fields, format, problemId, expand_dropdowns), including two enums, so the schema does the heavy lifting. The description mentions no parameters at all, making the baseline 3 appropriate.

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

Purpose4/5

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

The description states a specific verb ('List') and a scoped resource ('followups (comments) of a problem'), which cleanly separates it from glpi_list_change_followups and glpi_list_followups. It also names the returned attribution field (user_name). It stops short of explicitly routing the agent against those siblings, but the resource scoping is unambiguous.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no prerequisite (e.g. needing a valid problemId), and no mention of the sibling tools a user might confuse this with. 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_list_problemsList problemsA
Read-onlyIdempotent
Inspect

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.

NameRequiredDescriptionDefault
sortNoSort column (default date_mod = last update)
orderNoSort direction (default desc = most recent first)
rangeNoPagination range, e.g. 0-49
fieldsNoField set: 'essential' (default, trims internal GLPI fields) or 'all'
formatNoOutput 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_dropdownsNoExpand dropdown IDs to names

Output Schema

NameRequiredDescription
dataNo
noteNoPagination hint: how to fetch the next page
countNoItems in this page
formatNo'markdown' when data holds the markdown rendering

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, non-destructive, non-open-world. The description adds the useful behavioral fact that output is enriched with human-readable name fields in the user's language. It doesn't mention pagination limits, result caps, or auth requirements, so it's 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.

Conciseness4/5

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

Single sentence, front-loaded with the verb+resource, then default ordering and enriched fields. Efficient and low noise; minor weakness is the comma-heavy clause stack that slightly buries the field-enrichment fact.

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

Completeness4/5

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

For a read-only list tool with a rich input schema (6 documented params, enums) and an output schema, the description covers purpose, default ordering, and output enrichment. Missing only exclusions/alternatives routing, which is a minor gap given the surrounding sibling set.

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

Parameters3/5

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

Schema description coverage is 100%, so parameters are fully documented in structured data. The description only echoes the default sort behavior ('most recently updated first') already stated in the sort/order schema descriptions, adding no new semantics. Baseline 3 applies.

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

Purpose5/5

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

The description states a specific verb and resource ('List problem management items') and differentiates from siblings by naming the enriched output fields (status_name, priority_name, category_name) and the default ordering. An agent can tell this apart from glpi_get_problem (single item) and glpi_search (generic search).

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

Usage Guidelines3/5

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

The description implies usage as a listing tool with default sort/order, but stops short of explicit routing to alternatives like glpi_get_problem for a single problem or glpi_search_problem_followups. The default-sort cue helps orient intent but no when-to-use/when-not guidance is provided.

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 tasksA
Read-onlyIdempotent
Inspect

List tasks for a problem, with author, technician and group names.

NameRequiredDescriptionDefault
rangeNoPagination range, e.g. 0-49
fieldsNoField set: 'essential' (default, trims internal GLPI fields) or 'all'
formatNoOutput format: 'json' (default) or 'markdown' (a table for listings, key/value lines for one item; returned in both the text and the structured result)
problemIdYesItem ID

Output Schema

NameRequiredDescription
dataNo
noteNoPagination hint: how to fetch the next page
countNoItems in this page
formatNo'markdown' when data holds the markdown rendering

TDQS

A3.5/5.0
Behavior3/5

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 that results are enriched with author/technician/group names, which is marginally useful. It says nothing about pagination behavior or empty-result handling, so with annotations carrying the load this is a 3.

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

Conciseness4/5

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

A single front-loaded sentence with no filler, naming the resource and the enriched result fields. It is efficient, though arguably thin given the four parameters the tool accepts.

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

Completeness4/5

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), annotations cover the safety profile, and all four parameters are documented at 100% coverage. The description is complete enough for correct invocation, with the only minor gap being the absence of usage routing.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents problemId, range, fields and format. The description adds no parameter syntax or semantics beyond what the schema provides, so the baseline 3 is appropriate.

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

Purpose4/5

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

States a specific verb and resource ('List tasks for a problem'), which cleanly separates it from the parallel glpi_list_ticket_tasks and glpi_list_change_tasks siblings by the parent object type. It also names the enriched fields returned (author, technician, group names). It does not explicitly contrast itself against siblings, keeping it 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.

Usage Guidelines3/5

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

The intended use (retrieve tasks belonging to a given problem) is implied by the name and description, but there is no explicit when-to-use, when-not-to-use, or pointer to an alternative list tool. An agent can infer usage but gets no routing guidance.

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 itemsB
Read-onlyIdempotent
Inspect

List items flagged as reservable (the catalogue reservations point at).

NameRequiredDescriptionDefault
rangeNoPagination range, e.g. 0-49
fieldsNoField set: 'essential' (default, trims internal GLPI fields) or 'all'
formatNoOutput 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

NameRequiredDescription
dataNo
noteNoPagination hint: how to fetch the next page
countNoItems in this page
formatNo'markdown' when data holds the markdown rendering

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and closed-world scope, so the safety profile is fully covered. The description adds only the domain fact that these items are the ones reservations reference; no pagination, count, or return behavior beyond the (present) output schema.

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

Conciseness4/5

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

A single efficient sentence that front-loads the action and resource. No wasted words, though the terse parenthetical is the only elaboration offered.

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

Completeness3/5

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

With rich annotations, a fully described 3-param schema, and an output schema, the definition covers most needs. The gap is usage guidance — nothing tells the agent when this listing is the right choice over its reservation/asset siblings.

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

Parameters3/5

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

Schema description coverage is 100% and two of three params are enums with documented meanings, so the schema carries the burden. The description adds nothing about range/fields/format, so the baseline 3 applies.

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

Purpose4/5

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

States a specific verb ('List') and resource ('items flagged as reservable'), and the parenthetical clarifies these are the catalogue items that reservations point at. This distinguishes it from glpi_list_reservations, though it doesn't name that sibling explicitly.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no exclusions, and no named alternative. An agent cannot tell from the text whether to reach for this vs glpi_list_reservations or glpi_list_assets when looking for reservable things.

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

glpi_list_reservationsList reservationsC
Read-onlyIdempotent
Inspect

List reservations (bookings) of reservable items.

NameRequiredDescriptionDefault
rangeNoPagination range, e.g. 0-49
fieldsNoField set: 'essential' (default, trims internal GLPI fields) or 'all'
formatNoOutput 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

NameRequiredDescription
dataNo
noteNoPagination hint: how to fetch the next page
countNoItems in this page
formatNo'markdown' when data holds the markdown rendering

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so safety is covered. The description adds nothing beyond the safety profile - no mention of pagination behaviour, default result size, or what is returned, leaving the behavioral burden entirely on 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.

Conciseness3/5

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

A single short sentence with no waste and the resource front-loaded. However, its brevity reflects under-specification rather than disciplined concision, so it earns only a middling score.

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

Completeness3/5

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

An output schema exists, so return values need not be explained in the description, and all parameters are documented in the schema. What is missing is any scroll/filter scope guidance (e.g. whether reservations can be narrowed by item or date), which leaves the definition minimally adequate for a list tool.

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

Parameters3/5

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

Schema description coverage is 100% with all three parameters (range, fields, format) fully documented including enum meanings, so the schema does the heavy lifting. The description adds no parameter detail, which is the expected baseline when coverage is complete.

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

Purpose4/5

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

States a specific verb (List) and resource (reservations), with a parenthetical clarifying that reservations means bookings of reservable items. It is clear against most siblings, though it does not explicitly differentiate itself from glpi_list_reservation_items or glpi_get_reservation.

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

Usage Guidelines2/5

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

There is no guidance on when to use this versus alternatives such as glpi_list_reservation_items or glpi_get_reservation, nor any mention of prerequisites or filtering conditions. The tool's purpose implies listing, but nothing is stated about routing 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_rule_actionsList rule actions (global)A
Read-onlyIdempotent
Inspect

List rule actions via GET /RuleAction. Optionally filter by rules_id (works for any rule type: RuleTicket, RuleChange, RuleMailCollector).

NameRequiredDescriptionDefault
rangeNoPagination range, e.g. 0-49
fieldsNoField set: 'essential' (default, trims internal GLPI fields) or 'all'
formatNoOutput 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_idNoRule ID to filter by
expand_dropdownsNoExpand dropdown IDs to names

Output Schema

NameRequiredDescription
dataNo
noteNoPagination hint: how to fetch the next page
countNoItems in this page
formatNo'markdown' when data holds the markdown rendering

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so safety behavior is covered. The description adds the cross-rule-type scope, which is useful context, but says nothing about pagination defaults, result volume, or authentication beyond what the schema and annotations provide.

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

Conciseness4/5

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

Two tightly written sentences with no filler, and the core operation is front-loaded before the optional filter detail. It could be marginally tighter but nothing is wasted.

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

Completeness4/5

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 no explanation, and the annotations carry the safety profile. The description covers the operation and filter scope adequately; the only real gap is the absence of an explicit pointer to the sibling ticket-scoped list tool for disambiguation.

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

Parameters3/5

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

Schema description coverage is 100%, so every parameter (range, fields, format, rules_id, expand_dropdowns) is already documented in the schema. The description only reiterates the rules_id filter and its applicability across rule types, adding marginal value beyond the structured fields. Baseline 3 applies.

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

Purpose4/5

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

States a specific verb and resource (list rule actions) and even names the underlying endpoint GET /RuleAction, so the operation is unambiguous. The parenthetical 'works for any rule type' hints at the distinction from glpi_list_rule_ticket_actions, but it never names that sibling explicitly, so differentiation is only implied.

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

Usage Guidelines3/5

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

The description gives a usage signal via 'works for any rule type: RuleTicket, RuleChange, RuleMailCollector', which implies when this global tool is the right choice. However, it never states a when-not condition or names glpi_list_rule_ticket_actions as the ticket-scoped alternative, leaving the routing decision partially to inference.

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)A
Read-onlyIdempotent
Inspect

List rule criteria via GET /RuleCriteria. Optionally filter by rules_id (works for any rule type: RuleTicket, RuleChange, RuleMailCollector).

NameRequiredDescriptionDefault
rangeNoPagination range, e.g. 0-49
fieldsNoField set: 'essential' (default, trims internal GLPI fields) or 'all'
formatNoOutput 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_idNoRule ID to filter by
expand_dropdownsNoExpand dropdown IDs to names

Output Schema

NameRequiredDescription
dataNo
noteNoPagination hint: how to fetch the next page
countNoItems in this page
formatNo'markdown' when data holds the markdown rendering

TDQS

A3.6/5.0
Behavior3/5

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 the endpoint path and cross-rule-type scope, but says nothing about pagination behavior, result size, or auth requirements beyond what structured data provides.

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

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with zero filler; the core action is front-loaded and the scope qualifier follows immediately. Nothing redundant or padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only listing tool with rich annotations, an output schema, and 100% parameter coverage, the description supplies everything needed to call it correctly. It could still mention pagination or result-shape expectations, but the output schema largely absorbs that burden.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all five parameters are already documented, making 3 the baseline. The description adds only mild value by clarifying that the rules_id filter works for any rule type, which the schema's "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.

Purpose4/5

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") plus the backing endpoint GET /RuleCriteria, and the parenthetical noting it spans RuleTicket, RuleChange, and RuleMailCollector implicitly separates it from the ticket-specific sibling glpi_list_rule_ticket_criteria. It stops short of explicitly naming that sibling as the narrower alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description notes the rules_id filter is optional and applies across rule types, which implies when the filter is useful, but it never states when to pick this global tool over glpi_list_rule_ticket_criteria or glpi_list_rule_actions. Usage is left to inference.

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 rulesA
Read-onlyIdempotent
Inspect

List all ticket business rules (RuleTicket) with optional pagination.

NameRequiredDescriptionDefault
rangeNoPagination range, e.g. 0-49
fieldsNoField set: 'essential' (default, trims internal GLPI fields) or 'all'
formatNoOutput 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_dropdownsNoExpand dropdown IDs to names

Output Schema

NameRequiredDescription
dataNo
noteNoPagination hint: how to fetch the next page
countNoItems in this page
formatNo'markdown' when data holds the markdown rendering

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, closed-world behavior, lowering the disclosure bar. The description adds that pagination is optional, which is useful, but does not mention the return shape or default behavior for the 'fields'/'format' modifiers. With safety fully covered by annotations, 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single compact sentence that leads with the verb and resource and qualifies it with pagination. No filler or repetition of schema/annotation content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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. For a read-only list with 4 fully-documented optional params, the description is virtually sufficient; a note about default fields/format behavior would push it higher.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and each of the 4 params is fully documented there, so the schema does the heavy lifting. The description's phrase 'optional pagination' hints at the range param but adds no syntax or format detail beyond the schema. Baseline 3 applies when the schema is complete.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (List), a specific resource (ticket business rules, RuleTicket), and the scope (all). The parenthetical 'RuleTicket' disambiguates it from the sibling criteria/action rules tools (glpi_list_rule_criteria, glpi_list_rule_actions) which manage different rule facets. An agent can distinguish it from glpi_get_rule_ticket (singular get) as well.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use or when-not-to guidance, and no mention of the natural alternatives (glpi_get_rule_ticket for a single rule, or sibling rule_criteria/rule_actions tools). The reader must infer the routing themselves.

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 actionsB
Read-onlyIdempotent
Inspect

List actions of a specific ticket rule (sub-items of RuleTicket).

NameRequiredDescriptionDefault
rangeNoPagination range, e.g. 0-49
fieldsNoField set: 'essential' (default, trims internal GLPI fields) or 'all'
formatNoOutput format: 'json' (default) or 'markdown' (a table for listings, key/value lines for one item; returned in both the text and the structured result)
ruleIdYesItem ID
expand_dropdownsNoExpand dropdown IDs to names

Output Schema

NameRequiredDescription
dataNo
noteNoPagination hint: how to fetch the next page
countNoItems in this page
formatNo'markdown' when data holds the markdown rendering

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds only the parent/child framing (actions are sub-items of RuleTicket); it says nothing about pagination behavior, response shape, or permissions, but an output schema exists so return details are less critical.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One short sentence, front-loaded with the verb and scope, and the parenthetical disambiguation of the resource hierarchy is the only extra and it earns its place. Zero filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Annotations, a full-coverage schema and an output schema carry most of the burden, so the terse description is workable. The missing piece is sibling differentiation (list_rule_actions vs this tool), which an agent would need in order to pick correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so range, fields, format, ruleId and expand_dropdowns are fully documented in the schema. The description implies the required ruleId via 'a specific ticket rule' but adds no format or usage semantics beyond that, matching the baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (List) and resource (actions of a specific ticket rule), and the 'sub-items of RuleTicket' gloss clarifies the hierarchy. However, it does not distinguish itself from the sibling glpi_list_rule_actions, leaving the agent to infer which one applies.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no when-to-use guidance, prerequisites, or exclusions. With near-identical siblings such as glpi_list_rule_actions and glpi_list_rule_ticket_criteria present, the agent receives no routing signal.

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 criteriaB
Read-onlyIdempotent
Inspect

List criteria (conditions) of a specific ticket rule (sub-items of RuleTicket).

NameRequiredDescriptionDefault
rangeNoPagination range, e.g. 0-49
fieldsNoField set: 'essential' (default, trims internal GLPI fields) or 'all'
formatNoOutput format: 'json' (default) or 'markdown' (a table for listings, key/value lines for one item; returned in both the text and the structured result)
ruleIdYesItem ID
expand_dropdownsNoExpand dropdown IDs to names

Output Schema

NameRequiredDescription
dataNo
noteNoPagination hint: how to fetch the next page
countNoItems in this page
formatNo'markdown' when data holds the markdown rendering

TDQS

B3.3/5.0
Behavior3/5

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 fully covered by structured data. The description adds a modest structural note that criteria are RuleTicket sub-items, but says nothing about pagination behavior or result size beyond what the schema/output schema already provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single tight sentence with no filler, front-loading the action and resource. Every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With annotations, a full output schema, and 100% parameter coverage, the structured fields carry most of the burden, so the description is functional but thin. It lacks guidance on relationship to the generic rule-criteria sibling, which is the main ambiguity an agent would face here.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so range, fields, format, ruleId, and expand_dropdowns are all documented in the schema. The description adds no parameter syntax or format details beyond restating that a specific rule is targeted, which is the baseline-3 case 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.

Purpose4/5

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 ticket rule), and clarifies the criteria are sub-items of RuleTicket. This is clear, though it does not explicitly differentiate itself from the sibling glpi_list_rule_criteria (generic) or glpi_get_rule_ticket, so an agent must infer the ticket-rule scoping 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.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use or when-not-to-use guidance. It doesn't tell the agent when to prefer this over glpi_list_rule_criteria or glpi_get_rule_ticket, nor does it mention that a ruleId is required to scope the query. Usage is only implied by 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_search_optionsList search optionsA
Read-onlyIdempotent
Inspect

List available search fields for an itemtype. Critical for building search criteria with glpi_search. Returns field IDs, names, and types.

NameRequiredDescriptionDefault
itemtypeYesItem type, e.g. Ticket, User, Change, Problem, ITILCategory

Output Schema

NameRequiredDescription
dataNo

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered. The description adds that it returns field IDs, names, and types, but since an output schema exists, this is mostly redundant rather than new 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the core purpose and then the usage tie-in. The return-value sentence is somewhat redundant given the output schema, but no sentence is wasted in a harmful way.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple, single-parameter read-only tool with full schema coverage, complete annotations, and an output schema, this description is sufficient. It says what it lists, when it is useful, and what it returns, leaving nothing critical for an agent to infer.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for the single 'itemtype' parameter, so the schema already explains the parameter and gives examples. The description only echoes that the tool works 'for an itemtype' without adding syntax or format details beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'List available search fields for an itemtype.' It also names the sibling it supports ('glpi_search'), so an agent can distinguish it from other list tools 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear context: 'Critical for building search criteria with glpi_search.' This tells the agent when to use it and which sibling it pairs with, but it does not state explicit exclusions or when another tool would be preferable.

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 groupsA
Read-onlyIdempotent
Inspect

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.

NameRequiredDescriptionDefault
fieldsNoField set: 'essential' (default, trims internal GLPI fields) or 'all'
formatNoOutput format: 'json' (default) or 'markdown' (a table for listings, key/value lines for one item; returned in both the text and the structured result)
ticketIdYesItem ID

Output Schema

NameRequiredDescription
dataNo
noteNoPagination hint: how to fetch the next page
countNoItems in this page
formatNo'markdown' when data holds the markdown rendering

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the full safety profile (read-only, idempotent, non-destructive, closed-world), so the burden is light. The description adds genuinely useful context beyond annotations: the shape of each returned group (group_name beside groups_id and type_name) and the meaning of the type codes, plus the note that type_name is localized.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two compact sentences, front-loaded with the verb and resource. The type-code mapping is a terse trailing fragment; no wasted prose, though the parenthetical enumerations add slight density.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only, single-required-param tool with an output schema and full annotation coverage, the description is essentially complete — it even pre-describes the return fields. It only lacks explicit guidance on when to choose this over other listing tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and all three parameters (ticketId, fields, format) are documented in the schema, so the baseline is 3. The description's details (group_name, groups_id, type_name, type codes) describe return fields rather than parameters, so it adds nothing to parameter meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb ('List') plus resource ('groups linked to a ticket') and scope ('requester, observer, assigned'). It is immediately distinguishable from siblings like glpi_list_ticket_users or glpi_add_ticket_group 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.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied: call this to enumerate the groups attached to a given ticket. However, there is no explicit when-to-use guidance or routing to alternatives such as glpi_list_groups (all groups) vs this ticket-scoped list, so the agent must infer the distinction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

glpi_list_ticketsList ticketsA
Read-onlyIdempotent
Inspect

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.

NameRequiredDescriptionDefault
sortNoSort column (default date_mod = last update)
orderNoSort direction (default desc = most recent first)
rangeNoPagination range, e.g. 0-49
fieldsNoField set: 'essential' (default, trims internal GLPI fields) or 'all'
formatNoOutput format: 'json' (default) or 'markdown' (a table for listings, key/value lines for one item; returned in both the text and the structured result)
statusNoOnly 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_dropdownsNoExpand dropdown IDs to names

Output Schema

NameRequiredDescription
dataNo
noteNoPagination hint: how to fetch the next page
countNoItems in this page
totalNoTotal matching items in GLPI (all pages)
formatNo'markdown' when data holds the markdown rendering

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world). The description adds real context beyond them: the visibility scoping by connected user, the default sort (most recently updated first), and that names are rendered in the GLPI user's language. It stops short of describing pagination semantics for the range parameter.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with scope and ordering, then filtering, then the routing alternative. Every sentence carries distinct information; the row-fields sentence is long but useful for planning output handling.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

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, yet the description still previews the row shape (status_name, type_name, priority_name, category_name, requesters/technicians). Combined with full annotation coverage and a fully documented schema, nothing needed to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and every parameter already carries its own enum and description, so the schema does the heavy lifting. The description's status example ('open' = not solved nor closed) and sort-default mention largely restate what the schema documents, adding marginal value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('List GLPI tickets'), plus the exact scope ('the whole instance, every ticket the connected user may see') and the default ordering. It explicitly names the sibling it is not (glpi_list_my_tickets), so an agent can disambiguate 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.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit when-not plus the alternative: for the connected user's own tickets, use glpi_list_my_tickets instead. It also states the filtering intent ('Filter by status ... and choose the sort column and direction'), leaving no inference needed.

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 tasksB
Read-onlyIdempotent
Inspect

List tasks (to-do items) for a ticket, with author, technician and group names (user_name, tech_name, tech_group_name).

NameRequiredDescriptionDefault
rangeNoPagination range, e.g. 0-49
fieldsNoField set: 'essential' (default, trims internal GLPI fields) or 'all'
formatNoOutput format: 'json' (default) or 'markdown' (a table for listings, key/value lines for one item; returned in both the text and the structured result)
ticketIdYesItem ID

Output Schema

NameRequiredDescription
dataNo
noteNoPagination hint: how to fetch the next page
countNoItems in this page
formatNo'markdown' when data holds the markdown rendering

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered upstream. The description adds only that author/technician/group names are included, without mentioning pagination behavior, permissions, or empty-result handling; adequate but not rich 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence naming the action, target resource, and notable returned fields, with zero redundant or filler text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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 description only needs to establish purpose and scope, which it does. It is slightly thin on when this tool should be chosen over related list tools, but nothing essential for correct invocation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and all four parameters (ticketId, range, fields, format) are documented in the schema itself. The description adds no parameter-level meaning or syntax, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('List tasks (to-do items) for a ticket') and clarifies the domain concept (tasks = to-do items). The phrase 'for a ticket' implicitly separates it from glpi_list_change_tasks and glpi_list_problem_tasks, though no sibling is named explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no when-to-use guidance, no prerequisites, and no exclusions relative to alternatives such as glpi_list_timeline, glpi_list_followups, or the change/problem task variants. 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_list_ticket_usersList ticket usersA
Read-onlyIdempotent
Inspect

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.

NameRequiredDescriptionDefault
fieldsNoField set: 'essential' (default, trims internal GLPI fields) or 'all'
formatNoOutput format: 'json' (default) or 'markdown' (a table for listings, key/value lines for one item; returned in both the text and the structured result)
ticketIdYesItem ID

Output Schema

NameRequiredDescription
dataNo
noteNoPagination hint: how to fetch the next page
countNoItems in this page
formatNo'markdown' when data holds the markdown rendering

TDQS

A4/5.0
Behavior4/5

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 genuinely useful context beyond that: the returned field names (user_name beside users_id, type_name) and the meaning of the type codes. It does not describe pagination, but for a small list operation that is minor.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero filler, front-loaded with the operation and scope. The type-code legend is compact and earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 100% schema coverage and an output schema, the description need not explain return format, and it still helpfully decodes the type field. Nothing essential for correct invocation is missing, though explicit routing guidance would complete it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so ticketId, fields, and format are fully documented in the schema. The description's type mapping concerns returned values rather than inputs and adds little parameter-level meaning, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (List) and resource (users linked to a ticket), and enumerates the three link roles (requesters, observers, assigned). This clearly separates it from siblings like glpi_add_ticket_user and glpi_delete_ticket_user as well as glpi_list_ticket_groups.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The purpose implies when to use it (retrieving a ticket's users), but there is no explicit when-to-use vs alternative guidance (e.g., glpi_list_users to enumerate people globally). Usage is left to inference.

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 validationsA
Read-onlyIdempotent
Inspect

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).

NameRequiredDescriptionDefault
rangeNoPagination range, e.g. 0-49
fieldsNoField set: 'essential' (default, trims internal GLPI fields) or 'all'
formatNoOutput format: 'json' (default) or 'markdown' (a table for listings, key/value lines for one item; returned in both the text and the structured result)
ticketIdYesItem ID

Output Schema

NameRequiredDescription
dataNo
noteNoPagination hint: how to fetch the next page
countNoItems in this page
formatNo'markdown' when data holds the markdown rendering

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world). The description adds genuine domain context beyond them: the status code legend (1-4) and the fact that status_name is localized to the GLPI user's language. It does not mention pagination via the range parameter, a minor gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence that leads with the action and resource before the field/status details. Dense but no wasted words; could be slightly clearer with sentence breaks but earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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, yet the description usefully pre-declares the status enum semantics. For a read-only list tool with full schema coverage, nothing essential is missing beyond usage routing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with two enums, so the schema already documents range, fields, format and ticketId. The field names in the description (user_name, validator_name, status_name) are output fields, not inputs, so the description adds nothing to parameter understanding. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('List approval/validation requests for a ticket') and enumerates the key returned fields (user_name, validator_name, status_name). It clearly reads as the read-only 'list' counterpart to the create/update/delete_ticket_validation siblings, 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.

Usage Guidelines2/5

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 routing to alternatives such as glpi_create_ticket_validation or glpi_get_ticket. Usage is only implied by the purpose statement itself.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

glpi_list_timelineList timelineA
Read-onlyIdempotent
Inspect

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.

NameRequiredDescriptionDefault
orderNoasc (default) = oldest first, desc = latest first
rangeNoPagination range over the merged timeline, e.g. 0-24
fieldsNoField set: 'essential' (default, trims internal GLPI fields) or 'all'
formatNoOutput format: 'json' (default) or 'markdown' (a table for listings, key/value lines for one item; returned in both the text and the structured result)
itemIdYesItem ID
itemtypeYesITIL item type

Output Schema

NameRequiredDescription
dataNo
noteNoPagination hint: how to fetch the next page
countNoItems in this page
formatNo'markdown' when data holds the markdown rendering

TDQS

A4.3/5.0
Behavior4/5

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 real behavioral context beyond that: the default merge order (oldest first), the enrichment with people's names and solution type name, and the fact that it consolidates four sources — none of which the annotations convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two dense sentences, front-loaded with what is merged and the default ordering, closing on the value proposition versus manual interleaving. No filler; every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

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 needn't enumerate return fields; it still names the key enriched fields an agent would care about. Combined with full schema coverage and strong annotations, an agent has everything needed to call this correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with enums on four parameters, so the schema already documents order, range, fields, format, itemId and itemtype. The description reinforces the 'order' default ('oldest first; order desc for the latest first') but adds no syntax or semantics beyond the schema, making the baseline 3 correct.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (list/merge) and resource (followups, tasks, solutions, validations of a ticket/change/problem merged into one chronological list). The sentence 'Replaces calling the four list tools separately and interleaving them by hand' explicitly distinguishes it from the sibling *_followups and *_tasks list tools without needing to open their schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context for when to reach for this tool: when you want a unified chronological view of an item's activity instead of stitching four separate lists. It implicitly points at the alternatives it supersedes, but offers no explicit exclusions (e.g., when to still prefer glpi_list_followups alone).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

glpi_list_usersList usersB
Read-onlyIdempotent
Inspect

List all users with optional pagination and dropdown expansion.

NameRequiredDescriptionDefault
rangeNoPagination range, e.g. 0-49
fieldsNoField set: 'essential' (default, trims internal GLPI fields) or 'all'
formatNoOutput 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_dropdownsNoExpand dropdown IDs to names

Output Schema

NameRequiredDescription
dataNo
noteNoPagination hint: how to fetch the next page
countNoItems in this page
formatNo'markdown' when data holds the markdown rendering

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only, idempotent, non-destructive behavior. The description adds that pagination and dropdown expansion are optional, but does not explain defaults, result size limits, or what happens without a range. With annotations covering safety, this is adequate but thin.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence with no wasted words. It states the core action and supported options efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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 description is complete enough for basic invocation. It could mention default field set or behaviour when no range is provided, but those gaps are partially covered by the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so all four parameters are fully documented in the schema. The description merely names two of them (pagination, dropdown expansion) without adding format details beyond the schema. 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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear verb+resource: listing all users. It does not distinguish itself from the sibling glpi_search_user_by_email or glpi_get_user, 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.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance on when to use this versus alternatives like glpi_search_user_by_email or glpi_get_user. It only mentions the supported options, not selection criteria.

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 deliveriesA
Read-onlyIdempotent
Inspect

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.

NameRequiredDescriptionDefault
rangeNoPagination range, e.g. 0-49
fieldsNoField set: 'essential' (default, trims internal GLPI fields) or 'all'
formatNoOutput 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_failedNoOnly deliveries that failed: retried at least once (sent_try > 1) or last HTTP status >= 300
webhook_nameNoRestrict to webhooks whose name contains this text

Output Schema

NameRequiredDescription
dataNo
noteNoPagination hint: how to fetch the next page
countNoItems in this page
formatNo'markdown' when data holds the markdown rendering

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, closed-world behavior, so the bar is lower. The description still adds non-structured information: results are ordered newest first and span both sent and pending deliveries, which is behavioral context the schema does not carry. It omits pagination/volume limits, so it falls short of a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two compact sentences with zero filler: the resource and its contents come first, then the filter options. Front-loaded and appropriately sized for a read-only list tool, though the parenthetical resource name is slightly cryptic.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-required-parameter list tool with an output schema (so return shapes need not be explained) and full annotation coverage, the description gives enough to call it correctly and interpret the queue. It could say more about defaults and pagination, but nothing essential is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents range, fields, format, only_failed, and webhook_name in detail, including the precise only_failed semantics (sent_try > 1 or status >= 300). The description references webhook_name and only_failed but adds no syntax or meaning beyond what the schema provides, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names the specific resource (the delivery queue, QueuedWebhook) and enumerates what it contains: what was sent, when, and what is still pending. The listing verb comes from the name/title, and the description distinguishes this from the sibling glpi_list_webhooks by focusing on deliveries rather than webhook definitions. Not a tautology, though it never states the verb itself.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies usage via the two filter levers (webhook_name, only_failed 'to see what has been retried'), which tells the agent when to narrow results. However, it never states when to reach for this tool versus glpi_list_webhooks, glpi_get_webhook, or glpi_retry_webhook_delivery, so routing is left to inference from the resource name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

glpi_list_webhooksList webhooksA
Read-onlyIdempotent
Inspect

List configured webhooks (event, itemtype, target URL, active flag). Requires GLPI 10.0.7 or newer.

NameRequiredDescriptionDefault
rangeNoPagination range, e.g. 0-49
fieldsNoField set: 'essential' (default, trims internal GLPI fields) or 'all'
formatNoOutput 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_dropdownsNoExpand dropdown IDs to names

Output Schema

NameRequiredDescription
dataNo
noteNoPagination hint: how to fetch the next page
countNoItems in this page
formatNo'markdown' when data holds the markdown rendering

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and closed-world scope, so the safety profile is covered. The description adds a genuinely useful behavioral constraint the annotations cannot express: the GLPI 10.0.7 minimum version, which tells the agent when the call will fail.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, zero filler, with the what-it-lists content front-loaded and the version prerequisite trailing. Nothing needs trimming.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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 no explanation, and annotations cover safety and idempotency. The description covers the resource and the compatibility gate; only minor territory (pagination defaults, interaction with the range parameter) is left to the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and both enums (fields, format) are documented in-schema with examples, so the schema carries the parameter burden. The description's parenthetical field list restates what is returned rather than adding syntax or defaults, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('List') and resource ('configured webhooks') and even names the returned fields (event, itemtype, target URL, active flag). It reads clearly as the collection-listing counterpart to glpi_get_webhook, though it never explicitly contrasts itself with that sibling or with glpi_list_webhook_deliveries.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the verb: an agent can infer this is the browse/enumerate call for webhook configuration. The version prerequisite ('Requires GLPI 10.0.7 or newer') is stated, but there is no explicit when-to-use vs. when-to-use-glpi_get_webhook or glpi_list_webhook_deliveries guidance.

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 deliveryA
Destructive
Inspect

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.

NameRequiredDescriptionDefault
deliveryIdYesQueuedWebhook ID

Output Schema

NameRequiredDescription
dataNo

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true and idempotentHint=false, and the description usefully explains why: it mutates the delivery by resetting its send time and retry counter. The asynchronous behavior (queue now, cron sends later) is genuine context beyond the annotations. It stops short of noting permission requirements or whether the reset affects other queued deliveries.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences, no filler. The action and its effect come first, and the async caveat follows, so the agent gets the critical information without scanning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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 the safety profile, the description only needs to explain the queue-vs-send semantics, which it does. Adding whether the retry counter reset is bounded or whether permissions are required would make it fully complete for this mutation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the single required parameter is already documented as 'QueuedWebhook ID'. The description adds no format, id-range, or lookup guidance for deliveryId. Baseline 3 applies when the schema carries the parameter documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Queue a failed delivery for another attempt') with the exact mechanism (resetting send time and retry counter). It is unmistakable next to siblings like glpi_list_webhook_deliveries or glpi_get_webhook, and explicitly rules out an expectation the agent might otherwise have (no immediate send).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Scope is clear: use it on a failed delivery to re-queue it. It also preempts a wrong mental model by explaining the cron does the sending, so the agent does not hunt for an immediate-send tool. It does not, however, name any alternative or state preconditions (e.g., delivery must be in a failed state), so it falls short of explicit when/when-not guidance.

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 emailA
Read-onlyIdempotent
Inspect

Find users by exact email address (returns the user items: id, login, real name, first name...).

NameRequiredDescriptionDefault
emailYesEmail address
rangeNoPagination range, e.g. 0-49
fieldsNoField set: 'essential' (default, trims internal GLPI fields) or 'all'
formatNoOutput 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

NameRequiredDescription
dataNo
noteNoPagination hint: how to fetch the next page
countNoItems in this page
formatNo'markdown' when data holds the markdown rendering

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent and non-destructive, so safety is covered. The description adds the useful 'exact' match semantics and lists returned item fields, but says nothing about no-match behavior, rate limits, or result cardinality.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence that leads with the action and lookup key, with no filler. Slightly terse rather than wasteful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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 carry the safety profile. The description is complete enough to select and call the tool, with only minor gaps around match behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents email, range, fields and format. The description adds no parameter syntax or format detail beyond what the schema already provides, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Find) and resource (users) plus the discriminating lookup key ('exact email address'). This distinguishes it from glpi_get_user and glpi_list_users, though it 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.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by 'by exact email address' – an agent can infer this is the email-lookup path. However, it gives no explicit when-to-use/when-not guidance versus glpi_search or glpi_list_users, and no exclusion for fuzzy/partial matching.

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 webhookA
DestructiveIdempotent
Inspect

Turn a webhook on or off without touching the rest of its definition.

NameRequiredDescriptionDefault
activeYes
webhookIdYesItem ID

Output Schema

NameRequiredDescription
dataNo

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly=false, idempotentHint=true, destructiveHint=true and openWorld=false, so the safety profile is covered. The description adds genuinely useful context beyond them: that only the active flag is mutated and the rest of the webhook definition is left untouched, which is important given the destructiveHint flag.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence with no filler. Every clause earns its place: the action and the scope limitation are both conveyed in one pass.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter toggle tool with an output schema (so return values needn't be described) and annotations covering safety and idempotency, the description is nearly sufficient. It stops short of stating permissions or what happens if the webhook ID does not exist, which would be the only remaining gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 50% (only webhookId is documented, as 'Item ID'); the boolean 'active' parameter has no schema description. The description's 'a webhook' and 'on or off' loosely map to the two parameters but add no format, default, or constraint detail, so it does not fully compensate for the coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb pair (turn on/off) and a concrete resource (webhook). The clause 'without touching the rest of its definition' implicitly separates it from the full-update sibling glpi_update_webhook, though it never names that sibling explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: an agent can infer this is the narrow toggle path versus a full webhook update, but the description gives no explicit when-to-use, when-not-to-use, or prerequisite (e.g. permission or existence of the webhook) guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

glpi_update_assetUpdate assetC
DestructiveIdempotent
Inspect

Update an existing asset by type and ID.

NameRequiredDescriptionDefault
inputYesFields to update
assetIdYesItem ID
asset_typeYesAsset itemtype, e.g. Computer, Monitor, Printer, NetworkEquipment, Software

Output Schema

NameRequiredDescription
dataNo

TDQS

C2.9/5.0
Behavior2/5

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 known. The description adds nothing beyond that: it does not explain whether the update is a merge/partial update, what happens to unspecified fields, or any permission requirements. For a destructive mutation, this is a meaningful gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler, so it is efficiently sized. However, the extreme brevity borders on under-specification given the tool's complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need not be described, but the description leaves the agent without guidance on which fields the 'input' object accepts or the semantics of a destructive update. For a mutation tool with an unconstrained nested object, it is not complete enough.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema documents asset_type and assetId with an enum and ID pattern. The description only restates 'by type and ID' and says nothing about the critical 'input' parameter, which is an unconstrained additionalProperties object whose updatable fields are undocumented anywhere. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Update) and resource (asset) and indicates the keying mechanism (by type and ID). An agent can distinguish it from glpi_update_entity, glpi_update_ticket, etc. by resource, though the description does not explicitly contrast them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this versus alternatives (e.g., glpi_create_asset, glpi_get_asset) and no prerequisites or exclusions. The single sentence only implies usage through the word 'existing'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

glpi_update_changeUpdate changeC
DestructiveIdempotent
Inspect

Update an existing change by ID.

NameRequiredDescriptionDefault
inputYesFields to update
changeIdYesItem ID

Output Schema

NameRequiredDescription
dataNo

TDQS

C2.9/5.0
Behavior2/5

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 structurally. The description adds nothing beyond this—it does not warn that the update may overwrite existing fields, mention permission requirements, or explain the effect of the generic 'input' payload.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single short sentence with no wasted words, front-loaded with the verb and resource. It is efficient but under-specified rather than genuinely concise in the informative sense.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need not be explained, but this is a destructive mutation accepting a free-form object (additionalProperties: {}) with no indication of which fields are updatable or what the payload should contain. For a change-management write tool, the description is too thin to guide a correct call.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% (both changeId and input are documented in the schema), so the schema carries the parameter burden and baseline 3 applies. 'By ID' in the description merely echoes the schema and adds no format, ID-source, or field-level detail for the open-ended 'input' object.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Update an existing change') and identifies the target by ID, so it is clearly distinguishable from glpi_get_change, glpi_create_change, and glpi_list_changes. However, it never differentiates from the parallel update siblings (glpi_update_ticket, glpi_update_problem, glpi_update_user), which share the same verb pattern.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives, no prerequisites, and no note that a change must already exist. The only implied usage comes from the name itself.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

glpi_update_entityUpdate entityC
DestructiveIdempotent
Inspect

Update an existing entity by ID.

NameRequiredDescriptionDefault
inputYesFields to update
entityIdYesEntity ID

Output Schema

NameRequiredDescription
dataNo

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already disclose destructiveHint=true, idempotentHint=true, openWorldHint=false, and readOnlyHint=false, so the safety profile is covered by structured data. The description adds nothing beyond that – it doesn't say what a destructive update affects, which fields are mutable, or what permissions are needed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with zero filler. It is efficient, though the terseness borders on under-specification rather than deliberate conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation. However, for a destructive mutation tool with a nested free-form input object, the description omits what fields can be updated and what the change impacts, leaving it too thin given the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description only reinforces the entityId parameter ('by ID') and says nothing about the generic 'input' object, whose additionalProperties={} leaves the updatable field set undefined in both schema and description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (update) and resource (entity) plus the identifier used to select it ('by ID'), so the agent knows exactly what the tool does. It stops short of differentiating itself from siblings like glpi_create_entity or glpi_delete_entity, but the core 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.

Usage Guidelines2/5

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 rights on the entity), and no mention of alternatives such as glpi_get_entity for reading or glpi_delete_entity for removal. 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_update_itil_followup_templateUpdate followup templateC
DestructiveIdempotent
Inspect

Update a followup template by ID.

NameRequiredDescriptionDefault
inputYesFields to update
templateIdYesItem ID

Output Schema

NameRequiredDescription
dataNo

TDQS

C2.9/5.0
Behavior2/5

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 nothing beyond that — no mention of which fields are overwritten, required permissions, or whether omitted fields are preserved versus cleared. With annotations doing the heavy lifting, this is a minimal contribution, not a contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with zero filler, which is structurally clean. It is, however, terse to the point of under-specification rather than genuine economy, so it lands mid-range.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described, and annotations cover the mutation semantics. Still missing for a destructive update tool: whether the 'input' object is a partial patch or a full replacement, and any permission or scope caveats. Adequate as a minimum viable definition, not more.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both parameters are already documented in the schema ('Item ID' and 'Fields to update'). The description's phrase 'by ID' restates the schema rather than adding format or constraint detail, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Update) and resource (followup template) with an identifying key (by ID), so the operation is unambiguous. However, it offers no differentiation from the sibling itil_followup_template tools (list/get/create) beyond what the name already implies.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to use this tool versus glpi_get_itil_followup_template, glpi_create_itil_followup_template, or glpi_list_itil_followup_templates. No prerequisites, no note that the template must already exist. 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_update_knowbase_categoryUpdate knowledge base categoryC
DestructiveIdempotent
Inspect

Update a knowledge base category by ID.

NameRequiredDescriptionDefault
inputYesFields to update
categoryIdYesItem ID

Output Schema

NameRequiredDescription
dataNo

TDQS

C2.9/5.0
Behavior2/5

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 structurally. The description adds nothing on top of that — it does not say what a partial update does to unspecified fields, whether permissions are required, or how the destructive behavior manifests.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no padding or redundancy. It is efficient, though its brevity reflects under-specification rather than tight editing of richer content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained. But for a destructive mutation whose `input` is an unconstrained nested object (additionalProperties: {}), the description should at minimum indicate what fields are updatable and what the update semantics are — none of that is present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description's only parameter information is "by ID," which merely restates the categoryId parameter already documented as "Item ID" in the schema, and it says nothing about which fields the free-form `input` object accepts.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb and resource ("Update a knowledge base category"), which cleanly separates it from glpi_update_knowbase_item and glpi_update_knowbase_category's other siblings by resource type. However, it adds no explicit differentiation from the sibling list beyond the resource name itself.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus glpi_create_knowbase_category, glpi_delete_knowbase_category, or glpi_update_knowbase_item. No prerequisites, no preconditions, no 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_update_knowbase_itemUpdate knowledge base itemC
DestructiveIdempotent
Inspect

Update a knowledge base article by ID.

NameRequiredDescriptionDefault
inputYesFields to update
knowbaseIdYesItem ID

Output Schema

NameRequiredDescription
dataNo

TDQS

C2.9/5.0
Behavior2/5

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 structurally. The description adds nothing on top of that: it does not say which fields are mutable, whether omitted fields are preserved or wiped, or what happens on an unknown ID. With annotations carrying the load the bar is lower, but this adds zero 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler or redundancy. It is arguably under-specified rather than over-long, but structurally it is clean.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a destructive mutation whose 'input' is an unconstrained object with additionalProperties, so the agent has no indication of which fields are updatable or how partial updates behave; the description should compensate here. Output schema exists, so return values need not be described, but the input semantics gap leaves the definition materially incomplete for a destructive tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so knowbaseId and the generic 'input' object are already described in the schema. The description's 'by ID' merely echoes the knowbaseId parameter and offers no meaning for the free-form 'input' payload, which is where the real ambiguity lies. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Update') and resource ('knowledge base article') with an addressing scope ('by ID'), so the agent knows exactly what operation this performs. It does not, however, distinguish itself from the adjacent create/delete/get/list knowbase siblings beyond the verb.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to choose this over glpi_get_knowbase_item, glpi_create_knowbase_item, or glpi_update_knowbase_category, nor any prerequisite (e.g. must the item exist, does it require edit rights). Only the verb implies usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

glpi_update_problemUpdate problemC
DestructiveIdempotent
Inspect

Update an existing problem by ID.

NameRequiredDescriptionDefault
inputYesFields to update
problemIdYesItem ID

Output Schema

NameRequiredDescription
dataNo

TDQS

C2.9/5.0
Behavior2/5

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 nothing beyond restating that an update occurs, leaving unstated what fields are mutable, whether partial updates are allowed, or what permissions are required.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with zero filler. It is efficient, though the brevity borders on under-specification for a mutation tool with a nested payload.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema and annotations exist, so return values and safety need not be explained. However, the free-form 'input' object with additionalProperties={} means the agent has no idea which problem fields can be updated, and the description does nothing to fill that gap for a destructive operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the two parameters (problemId, input) are already documented in the schema. The description adds no extra meaning about the free-form 'input' object, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Update) and resource (problem) with the identifier form ('by ID'), so the agent knows exactly what the tool mutates. It does not, however, distinguish itself from siblings like glpi_update_ticket or glpi_update_change 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.

Usage Guidelines2/5

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_add_problem_solution or glpi_get_problem for reading. The agent must infer that this is the write path for an existing problem.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

glpi_update_reservationUpdate reservationC
DestructiveIdempotent
Inspect

Update an existing reservation by ID.

NameRequiredDescriptionDefault
inputYesFields to update (begin, end, comment, users_id)
reservationIdYesItem ID

Output Schema

NameRequiredDescription
dataNo

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, destructiveHint=true, and idempotentHint=true, so the safety profile is covered. The description adds nothing beyond that structured data: it does not say the update is partial (only supplied fields change), whether omitted fields are preserved, or what authorization is needed for a destructive write.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single short sentence with the resource and key front-loaded and no filler. It is efficient, though its brevity is partly a symptom of under-specification rather than disciplined concision.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described, and annotations cover the safety profile. What is missing is mutation semantics for the nested 'input' object and any usage context, leaving the definition minimally viable for a destructive write tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the schema itself enumerates the updatable fields (begin, end, comment, users_id), so the baseline is 3. The description only restates the ID-based addressing and adds no semantics beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('Update an existing reservation') and identifies the addressing key ('by ID'), so the agent knows exactly what operation this is. It does not, however, distinguish itself from sibling reservation tools like glpi_create_reservation or glpi_get_reservation, 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.

Usage Guidelines2/5

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_create_reservation, glpi_get_reservation, or glpi_list_reservations, and no prerequisites or exclusions are mentioned. The only implied context is that a reservation must already exist, which is inherent in the word 'existing'.

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 actionB
DestructiveIdempotent
Inspect

Update a rule action by ID. Fields: action_type, field, value.

NameRequiredDescriptionDefault
inputYesFields to update (action_type, field, value)
actionIdYesItem ID

Output Schema

NameRequiredDescription
dataNo

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, idempotentHint=true, readOnlyHint=false, and openWorldHint=false, so the safety and mutation profile is covered. The description adds nothing beyond the operation name — no detail on what changes are destructive, permissions required, or reversibility — but the annotation bar lowers 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the verb and resource, and zero filler. It is appropriately sized for a two-parameter tool, though the second sentence partly duplicates the nested schema's description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema and rich annotations exist, so return values and safety need not be restated. However, the `input` object is free-form (additionalProperties: {}), and the description offers no guidance on valid action_type/field/value combinations, leaving a meaningful gap for this mutation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the input object documents the same fields (action_type, field, value) that the description lists. The description adds no syntax, allowed values, or format detail beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Update') and resource ('rule action') plus the ID-based addressing, so its operation is unambiguous. It does not, however, differentiate itself from siblings like glpi_create_rule_action or 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.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance, no prerequisites, no mention of alternatives. The agent must infer that this is for modifying an existing rule action versus 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_ticketUpdate ticketC
DestructiveIdempotent
Inspect

Update an existing ticket by ID.

NameRequiredDescriptionDefault
inputYesFields to update
ticketIdYesItem ID

Output Schema

NameRequiredDescription
dataNo

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already disclose the safety profile (destructiveHint=true, idempotentHint=true, readOnlyHint=false), so the description is not the only source of behavioral information. However, for a destructive mutation the description adds nothing: it never says which fields are affected, what happens to unspecified fields, whether required auth/permission is needed, or how partial updates behave.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single short sentence that is front-loaded with the verb and resource; there is no filler. It is efficient, though its brevity reflects under-specification rather than economy of thought.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a destructive, idempotent mutation taking a free-form nested input object whose accepted fields are entirely undefined. An output schema exists, so return values need not be explained, but the description does nothing to close the significant input-field gap an agent needs to call this correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is reported at 100%, and the schema documents ticketId ('Item ID'). The 'input' parameter is an open object (additionalProperties: {}) described only as 'Fields to update', so the actual updatable field names remain undocumented in both schema and description. Per the high-coverage baseline, 3 is the appropriate score.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb and resource ('Update an existing ticket') plus a scoping detail ('by ID'), so the agent knows exactly what operation is being performed. It does not, however, distinguish itself from sibling mutators like glpi_update_change, glpi_update_problem, or glpi_update_entity, which share the identical verb+resource pattern.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives, no prerequisites (e.g., needing an existing ticket ID, permissions, or lifecycle state), and no mention of sibling update tools. 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_update_ticket_validationUpdate ticket validationA
DestructiveIdempotent
Inspect

Approve/refuse a validation (status: accepted/refused) or change the approver.

NameRequiredDescriptionDefault
inputYese.g. {status: 'accepted'} or {users_id_validate: 2}
validationIdYesItem ID

Output Schema

NameRequiredDescription
dataNo

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, readOnlyHint=false, and idempotentHint=true, so the safety profile is covered. The description adds the domain semantics of the mutation (it decides a validation), but does not warn that approving/refusing is a final state change or note 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single tight sentence that front-loads the primary operation and appends the alternative action with its parameter name. No filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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 destructive/idempotent profile. What remains thin is the state precondition for a validation (pending vs already decided) and the meaning of `users_id_validate`, but the definition is otherwise sufficient to invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but the freeform `input` object has additionalProperties with no enum on `status`, so the schema does not constrain values. The description supplies the allowed values (accepted/refused) and the approver-change alternative, which is genuine added meaning beyond the schema examples.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb pair (approve/refuse) and resource (validation), plus a second supported operation (change the approver). An agent can distinguish it from glpi_create_ticket_validation and glpi_delete_ticket_validation from the description alone, though the siblings are not named.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description lists the two possible operations but gives no when-to-use context, no prerequisites (e.g. the validation must be pending), and no routing away from the create/list/delete validation siblings. Usage is only implicit in 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_update_userUpdate userC
DestructiveIdempotent
Inspect

Update an existing user by ID.

NameRequiredDescriptionDefault
inputYesFields to update
userIdYesItem ID

Output Schema

NameRequiredDescription
dataNo

TDQS

C2.8/5.0
Behavior2/5

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 structurally. The description adds nothing on top of that: it does not say whether the update is partial or full-replacement, what permissions are needed, or how failures on a missing userId behave.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single short sentence with no waste, but it is under-specified rather than genuinely concise — the brevity comes from omission, not from efficient packing of useful information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive, record-mutating tool with a nested free-form input object, the description omits which fields are updatable, permission requirements, and partial-vs-full update semantics. The output schema and annotations cover return format and safety, but the mutation contract itself is undocumented.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and there are only 2 parameters, so the baseline is 3. However, the 'input' parameter is an opaque free-form object (additionalProperties, 'Fields to update') with no enumeration of valid user fields, and the description does not compensate for that opacity.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb (Update) and resource (existing user), and 'by ID' clarifies the addressing mode. It implicitly distinguishes itself from glpi_create_user and glpi_get_user, but never names a sibling explicitly, 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.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no mention of alternatives (glpi_create_user for new users), and no prerequisites such as required permissions on the user record. The agent must infer everything about when this tool 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_webhookUpdate webhookC
DestructiveIdempotent
Inspect

Update a webhook definition by ID.

NameRequiredDescriptionDefault
inputYes
webhookIdYesItem ID

Output Schema

NameRequiredDescription
dataNo

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already disclose destructiveHint=true, idempotentHint=true, and readOnlyHint=false, so the safety profile is covered. The description adds nothing beyond the name: it does not say what 'update' destroys or overwrites, whether the input is a partial or full replacement, or what permissions are required — 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.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The single sentence is front-loaded and free of filler, which is good, but its brevity reflects under-specification rather than efficiency. One clause is not enough for a destructive, free-form-payload mutation tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described, and annotations cover the safety traits. But with a nested, undocumented 'input' object and no statement of what can be changed or what an update replaces, the description is too thin for the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 50% and the uncovered parameter is the critical one: 'input' is a free-form nested object with additionalProperties {} and no documentation anywhere. The description's 'by ID' only partially reinforces webhookId's schema text ('Item ID') and says nothing about the shape or fields of the update payload.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource ('Update a webhook definition') and states it operates by ID, which is clearer than a bare 'Update webhook'. However, it does not distinguish itself from sibling tools like glpi_set_webhook_active or glpi_create_webhook, leaving the agent to infer the scope 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.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no mention of prerequisites, and no routing to alternatives. Critically, the description never explains how this differs from glpi_set_webhook_active, which is the closest sibling and also mutates a webhook.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 111 tool updatesv3.5.2
    • First observedglpi_add_change_followup
    • First observedglpi_add_change_solution
    • First observedglpi_add_followup
    • First observedglpi_add_problem_followup
    • First observedglpi_add_problem_solution
    • First observedglpi_add_solution
    • First observedglpi_add_ticket_group
    • First observedglpi_add_ticket_task
    • First observedglpi_add_ticket_user
    • First observedglpi_change_active_entities
    • First observedglpi_count_items
    • First observedglpi_create_asset
    • First observedglpi_create_change
    • First observedglpi_create_document
    • First observedglpi_create_document_item
    • First observedglpi_create_entity
    • First observedglpi_create_itil_followup_template
    • First observedglpi_create_knowbase_category
    • First observedglpi_create_knowbase_item
    • First observedglpi_create_problem
    • First observedglpi_create_reservation
    • First observedglpi_create_rule_action
    • First observedglpi_create_rule_criteria
    • First observedglpi_create_rule_ticket
    • First observedglpi_create_ticket
    • First observedglpi_create_ticket_validation
    • First observedglpi_create_user
    • First observedglpi_create_webhook
    • First observedglpi_delete_document
    • First observedglpi_delete_document_item
    • First observedglpi_delete_entity
    • First observedglpi_delete_knowbase_category
    • First observedglpi_delete_knowbase_item
    • First observedglpi_delete_ticket_group
    • First observedglpi_delete_ticket_user
    • First observedglpi_delete_ticket_validation
    • First observedglpi_delete_webhook
    • First observedglpi_get_asset
    • First observedglpi_get_asset_details
    • First observedglpi_get_change
    • First observedglpi_get_document
    • First observedglpi_get_document_item
    • First observedglpi_get_entity
    • First observedglpi_get_full_session
    • First observedglpi_get_group
    • First observedglpi_get_itil_category
    • First observedglpi_get_itil_followup_template
    • First observedglpi_get_knowbase_category
    • First observedglpi_get_knowbase_item
    • First observedglpi_get_location
    • First observedglpi_get_my_entities
    • First observedglpi_get_my_profiles
    • First observedglpi_get_problem
    • First observedglpi_get_reservation
    • First observedglpi_get_rule_ticket
    • First observedglpi_get_ticket
    • First observedglpi_get_ticket_stats
    • First observedglpi_get_user
    • First observedglpi_get_webhook
    • First observedglpi_list_assets
    • First observedglpi_list_change_followups
    • First observedglpi_list_change_tasks
    • First observedglpi_list_changes
    • First observedglpi_list_document_items
    • First observedglpi_list_documents
    • First observedglpi_list_entities
    • First observedglpi_list_followups
    • First observedglpi_list_groups
    • First observedglpi_list_itil_categories
    • First observedglpi_list_itil_followup_templates
    • First observedglpi_list_knowbase_categories
    • First observedglpi_list_knowbase_items
    • First observedglpi_list_locations
    • First observedglpi_list_my_tickets
    • First observedglpi_list_problem_followups
    • First observedglpi_list_problem_tasks
    • First observedglpi_list_problems
    • First observedglpi_list_reservation_items
    • First observedglpi_list_reservations
    • First observedglpi_list_rule_actions
    • First observedglpi_list_rule_criteria
    • First observedglpi_list_rule_ticket_actions
    • First observedglpi_list_rule_ticket_criteria
    • First observedglpi_list_rules
    • First observedglpi_list_search_options
    • First observedglpi_list_ticket_groups
    • First observedglpi_list_ticket_tasks
    • First observedglpi_list_ticket_users
    • First observedglpi_list_ticket_validations
    • First observedglpi_list_tickets
    • First observedglpi_list_timeline
    • First observedglpi_list_users
    • First observedglpi_list_webhook_deliveries
    • First observedglpi_list_webhooks
    • First observedglpi_retry_webhook_delivery
    • First observedglpi_search
    • First observedglpi_search_user_by_email
    • First observedglpi_set_webhook_active
    • First observedglpi_update_asset
    • First observedglpi_update_change
    • First observedglpi_update_entity
    • First observedglpi_update_itil_followup_template
    • First observedglpi_update_knowbase_category
    • First observedglpi_update_knowbase_item
    • First observedglpi_update_problem
    • First observedglpi_update_reservation
    • First observedglpi_update_rule_action
    • First observedglpi_update_ticket
    • First observedglpi_update_ticket_validation
    • First observedglpi_update_user
    • First observedglpi_update_webhook

TDQS

B3.1/5.0

Scored across 111 tools

Disambiguation3/5

Many tools are clearly distinct by entity, but several overlap: glpi_search can replace many list tools, followup/solution/task tools are duplicated per ITIL type, and glpi_list_rule_criteria vs glpi_list_rule_ticket_criteria are near-identical. Descriptions help, but the sheer volume makes misselection likely.

Naming Consistency5/5

All tools use the glpi_ prefix, snake_case, and consistent verb_noun patterns (list_, get_, create_, update_, delete_, add_). Minor irregularities like glpi_change_active_entities and glpi_set_webhook_active are still readable and fit the overall convention.

Tool Count1/5

111 tools is extreme for any MCP server; many CRUD operations are repeated per entity and some generic tools overlap with specific ones. This surface is far too large for an agent to select from reliably.

Completeness3/5

Broad domain coverage exists across tickets, problems, changes, users, assets, webhooks, and more, but CRUD is asymmetric: no delete for tickets/problems/changes/users/groups/locations, no create/update for groups and locations, and missing child operations like add_change_task or add_problem_task. Agents will hit dead ends for common lifecycle actions.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    C
    maintenance
    MCP server allowing an AI assistant to interact directly with your GLPI instance via its REST API, enabling ticket management, knowledge base operations, and statistics.
    40
    4
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    Connects AI assistants to GLPI IT Service Management, enabling ticket management, asset search, and ITIL processes via natural language.
    2 npm
    4
    MIT
  • A
    license
    C
    quality
    D
    maintenance
    Enables AI assistants to manage GLPI inventory, tickets, and CIA security fields via its REST API.
    9
    2 npm
    1
    ISC