Skip to main content
Glama

sdp-mcp

MCP server for the ManageEngine ServiceDesk Plus v3 REST API.

Configure

Requires Node.js 22 or newer. Keep credentials in a restricted environment file (such as ~/.admin/.env, mode 600), never in command arguments or committed files.

npm ci
# Set SDP_BASE_URL and one authentication variable in the client environment.
npm start

Set one authentication variable:

Variable

Purpose

SDP_AUTHTOKEN

Native SDP v3 authtoken (preferred).

SDP_API_KEY

Backward-compatible alias; sent as both authtoken and TECHNICIAN_KEY.

SDP_OAUTH_TOKEN

OAuth bearer token.

SDP_EMAIL

Acting technician email for OAuth.

SDP_TIMEOUT_MS

Positive request timeout in milliseconds; default 30000.

Related MCP server: Freshservice MCP Server

Tools

Dedicated tools cover the following v3 routes; availability and permissions depend on the SDP version and tenant:

  • Requests: list, get, create, update, close, assign, pickup, trash, restore, summary, resolution, notes, and tasks.

  • Changes, projects, general tasks, and users: list, get, create, update, and delete.

  • Change trash and restore.

assign_request uses PUT /requests/{id}, not the tenant-specific /assign action. Provide both technician and group objects. The group must belong to the target technician; do not reuse the request's current group when handing off between L1 and L2. For example, Pramod Patil uses { "id": "315", "name": "L2-Server Administrator", "site": null } for non-Webwerks sites.

save_request_draft saves an unsent public reply in the ticket's draft panel. It requires the recipient addresses and HTML description, and never sends the message.

Every other endpoint

Use sdp_call. It accesses any path after /api/v3/; all write payloads are sent as URL-encoded input_data. Object bodies are JSON-serialized; string bodies are sent verbatim, including an empty string for change restoration. Query parameters accept strings, numbers, booleans, and null (omitted).

The base URL may include a deployment context path, but must not include credentials, a query, or a fragment. Dedicated IDs must be positive integers (use strings for large IDs). API paths must not contain dot segments, percent escapes, whitespace, backslashes, queries, or fragments.

Calls reject redirects, honor MCP cancellation, and time out without automatic retries. A timed-out write may already have reached SDP; check its state before retrying. HTTP errors, SDP failure statuses, and non-JSON responses are tool errors. Configured authentication tokens are redacted from tool output. For internal CAs, set NODE_EXTRA_CA_CERTS; do not disable TLS verification.

Example:

{
  "method": "POST",
  "endpoint": "requests/123/conversations",
  "body": { "conversation": { "content": "Update", "is_public": true } }
}

Development

npm test

The test suite uses isolated credentials and local mock servers to check MCP registration, validation, wire formats, API failures, redirects, redaction, timeouts, and cancellation. It does not verify live tenant permissions or writes.

Available Tools

46 tools
add_request_noteAdd Request noteD

Add a request note.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes
request_idYes

TDQS

D1.5/5.0
Behavior1/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure, and it discloses nothing. For a mutation tool it does not state whether the note is appended or replaced, who can add notes, whether the request must be in a particular state, or what the response contains.

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

Conciseness2/5

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

A single short sentence, so there is no waste, but it is under-specification rather than conciseness. The brevity strips away information the agent needs instead of compressing it.

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

Completeness1/5

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

A two-parameter mutation tool with no annotations, no output schema, a nested undocumented body object, and 0% schema coverage gets essentially no support from the description. Every gap the structured fields leave is left unfilled.

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

Parameters1/5

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

Schema description coverage is 0% and the description adds no parameter meaning. The 'body' parameter is a nested object with additionalProperties: {} and no documented shape, and 'request_id' accepts either an integer or numeric string — none of this ambiguity is clarified by the description.

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

Purpose2/5

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

The description 'Add a request note.' is a tautology that restates the tool name and title almost verbatim. It does name a verb (add) and a resource (request note), but adds no scope, no subject identification, and nothing to distinguish it from siblings like add_request_task or add_request_resolution.

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 alternatives such as update_request_note or add_request_resolution. 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.

add_request_resolutionAdd Request ResolutionC

Add or update a resolution.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes
request_idYes

TDQS

C2.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. 'Add or update' hints at upsert semantics, but it says nothing about permissions, whether an existing resolution is overwritten, or what happens on conflict — critical for a mutation tool with zero annotation coverage.

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 filler, so it is concise. But it is under-specified rather than economical — brevity here comes at the cost of the information an agent needs.

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

Completeness2/5

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

For a mutation tool with no annotations, no output schema, an undocumented nested object parameter, and 0% schema coverage, the description is far too thin to be complete. The agent cannot determine what 'body' should contain or what the call returns.

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

Parameters2/5

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

Schema description coverage is 0% and the description explains neither parameter. The 'body' parameter is a free-form nested object with additionalProperties and no documented shape, which is exactly where the description should have added meaning; it adds none.

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

Purpose3/5

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

The description states a verb (add/update) and resource (resolution), and the upsert nuance is slightly beyond the name. But it never says a resolution *of a request*, nor distinguishes itself from get_request_resolution or update_request beyond the vague term 'resolution'.

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 add versus update, no prerequisites, and no mention of the sibling get_request_resolution or how this relates to update_request. The agent must infer the entire context of use.

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

add_request_taskAdd Request taskD

Add a request task.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes
request_idYes

TDQS

D1.5/5.0
Behavior1/5

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

No annotations are provided, so the description carries the full behavioral burden, and it discloses nothing. It does not say whether this is a mutation, what permissions are required, whether the task is appended or replaces existing tasks, or what side effects (notifications, status changes) occur.

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

Conciseness2/5

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

It is short and front-loaded, but that brevity reflects under-specification rather than efficiency. A single content-free sentence earns no credit for conciseness when it omits everything an agent needs.

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

Completeness1/5

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

For a two-parameter tool with a nested free-form object, no annotations, no output schema, and 0% schema coverage, this description is completely inadequate. Nothing tells the agent how to construct the body or what the call returns.

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

Parameters1/5

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

Schema description coverage is 0%, and the description adds no parameter meaning. The 'body' parameter is an unconstrained free-form object and 'request_id' has no documented format, so the agent has no idea what fields a request task body requires.

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

Purpose2/5

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

The description restates the tool name and title almost verbatim ('Add a request task'), giving only a verb and a resource with no further detail. It does not distinguish this tool from siblings such as add_request_note, add_request_resolution, or create_task.

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 the many related siblings (add_request_note, add_request_resolution, create_task, list_request_tasks). No prerequisites, context, or exclusions are stated.

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

assign_requestAssign RequestB

Assign through the normal request update route. The group must belong to the target technician; do not copy the request's current group when changing L1/L2 ownership.

ParametersJSON Schema
NameRequiredDescriptionDefault
groupYes
request_idYes
technicianYes

TDQS

B3/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden, and it does contribute real preconditions: the supplied group must belong to the target technician, and the current group must not be copied when reassigning L1/L2. It says nothing about permissions, whether the assignment notifies the technician, or what happens on failure, so the disclosure is useful but incomplete.

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, no repetition, and both carry substance. The only inefficiency is that the opening clause about the update route is vague filler rather than front-loaded purpose.

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

Completeness2/5

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

For a tool with three required parameters, nested free-form objects at 0% schema coverage, no annotations and no output schema, the description is too thin: it explains the group constraint but leaves the object shapes, the identifier format, the return behavior, and failure modes entirely 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 0% and all three parameters are effectively opaque objects or loosely typed ids, so the schema alone is unhelpful. The description rescues the 'group' parameter by stating it must belong to the target technician and contrasting it with the request's current group, but it adds nothing about the required 'technician' or 'request_id' parameters.

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

Purpose3/5

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

The name and title say 'Assign Request', and the description implies assigning a request to a technician/group, but the first sentence spends its budget on routing mechanics ('through the normal request update route') rather than stating the action directly. It never explicitly says what is being assigned or to whom, leaving the agent to reconstruct purpose from parameter names, and it only weakly differentiates itself from the sibling update_request.

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?

There is partial guidance: the second sentence implies this is the route for L1/L2 ownership changes, and warns not to reuse the request's current group in that case. However, it never states when to pick this tool over update_request, pickup_request, or the task-assignment siblings, so the agent must infer the selection rule.

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

close_requestClose RequestD

Close with closure_info.

ParametersJSON Schema
NameRequiredDescriptionDefault
request_idYes
closure_infoYes

TDQS

D1.8/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. 'Close' hints at a state change but the description says nothing about reversibility, required permissions, side effects, or what closure_info does. It is marginally better than a bare verb, but behaviorally opaque.

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

Conciseness2/5

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

The single fragment is short but that shortness reflects under-specification rather than efficiency. There is no front-loaded explanation of what closing entails or what the parameters mean.

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

Completeness1/5

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

A mutation tool with a nested free-form required parameter, no annotations, no output schema, and zero parameter documentation is not callable with confidence. The description supplies none of the missing context.

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

Parameters1/5

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

Schema description coverage is 0%, and closure_info is an unconstrained nested object with additionalProperties {}. 'Close with closure_info' tells the agent nothing about what keys or values that object requires, leaving the most important parameter completely unexplained.

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

Purpose2/5

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

The phrase 'Close with closure_info' essentially restates the tool name 'Close Request' plus the name of a required parameter. It does convey a mutation verb and implies the resource is a request, but adds no scope, effect, or distinguishing detail versus siblings like update_request or delete_request.

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 close a request versus updating, deleting, restoring, or assigning it, nor any prerequisites such as state requirements. The agent is given no routing information at all.

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

create_changeCreate changeD

Create a change.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes

TDQS

D1.5/5.0
Behavior1/5

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

No annotations are provided, so the description carries the full behavioral burden, yet it discloses nothing about side effects, required permissions, or what happens on success. For a mutation tool accepting an opaque nested 'body' object, this is a complete absence of 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.

Conciseness2/5

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

The text is short but that brevity reflects under-specification rather than earned conciseness. It is not front-loaded with useful information because it contains none.

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

Completeness1/5

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

With no annotations, no output schema, an opaque nested body parameter, and a one-line description, an agent has nothing to work with to invoke this tool correctly. The definition is inadequate for a write operation in a densely populated sibling set.

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

Parameters1/5

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

Schema description coverage is 0% and the single required 'body' parameter is an unconstrained object with additionalProperties, so the schema documents nothing. The description adds no meaning about what fields belong in body or their format, leaving the agent with zero guidance.

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

Purpose2/5

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

The description only restates the tool name and title ('Create a change'), providing no additional detail about what a change is or how it relates to siblings like create_request or create_project. It is effectively a tautology with no 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?

There is no guidance on when to use create_change versus update_change, restore_change, or trash_change, nor any prerequisite or context information. The verb 'create' implies a write, but nothing routes the agent among the many sibling tools.

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

create_projectCreate projectD

Create a project.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes

TDQS

D1.5/5.0
Behavior1/5

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

No annotations are provided, so the description carries the full behavioral burden. It says nothing about required permissions, side effects, validation rules, or what the body object should contain, leaving the agent with no operational context.

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

Conciseness2/5

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

It is short and front-loaded, but the one sentence is pure tautology and does not earn its place by conveying any useful information about the operation.

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

Completeness1/5

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

Given the nested body object, absent annotations, and no output schema, the description is completely inadequate for an agent to invoke this tool correctly.

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

Parameters1/5

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

The single body parameter is a nested object with no schema description or defined properties (0% coverage). The description adds no information about its expected structure or contents.

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

Purpose2/5

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

The description restates the tool name and title verbatim, giving no additional detail about what kind of project is created or how it differs from sibling tools like create_request, create_change, or create_task.

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 create_request or create_change, nor any prerequisite or context information.

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

create_requestCreate RequestD

Create a request.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes

TDQS

D1.3/5.0
Behavior1/5

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

No annotations are provided, so the description carries the full burden, and it discloses nothing: not the side effects, not required permissions, not whether the request is created in a draft/open state, not what happens on failure. A single sentence that only names the operation leaves a mutation tool fully opaque.

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

Conciseness2/5

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

It is short, but this is under-specification rather than conciseness. The single sentence does not earn its place because it conveys no information beyond the tool name.

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

Completeness1/5

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

For a mutation tool with a nested untyped body, no annotations, and no output schema, the description should explain the payload shape and behavior. It provides none of that, so an agent cannot invoke it correctly.

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

Parameters1/5

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

The one required parameter 'body' is a free-form object with additionalProperties {} and 0% schema description coverage, so the schema says nothing about what fields it expects. The description does not compensate at all, leaving the agent with no idea what payload to send.

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

Purpose2/5

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

The description restates the tool name and title almost verbatim ('Create a request'), which is the textbook tautology case. It does imply the resource is a 'request' rather than a change/task, but it offers no verb nuance, no scope, and no differentiation from the many sibling create_* tools.

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

Usage Guidelines1/5

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

There is no when-to-use guidance, no prerequisites, and no routing among the roughly 40 siblings (create_change, create_task, save_request_draft, etc.). An agent cannot tell from the description when to create a request versus saving a draft or creating a change.

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

create_taskCreate taskD

Create a task.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes

TDQS

D1.3/5.0
Behavior1/5

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

No annotations are provided, so the description carries the full behavioral burden and delivers none of it. It does not state permissions required, side effects, whether the created task is linked to anything, or what happens on failure.

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

Conciseness2/5

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

The single short sentence is not verbose, but it is under-specified rather than concise — it earns its place only by naming the operation. There is no front-loaded detail because there is no detail at all.

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

Completeness1/5

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

For a mutation tool with no annotations, no output schema, an opaque nested 'body' parameter, and many overlapping siblings, the description is completely inadequate. An agent has no basis for correct invocation.

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

Parameters1/5

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

The single required parameter 'body' is a free-form nested object with additionalProperties {} and 0% schema description coverage, and the description says nothing about its expected keys or shape. With zero coverage and a nested object, the description must compensate and does not.

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

Purpose2/5

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

The description 'Create a task' merely restates the tool name and title with no additional specificity. It states a verb and resource, but does not distinguish this tool from siblings like add_request_task or create_change, nor does it clarify scope (e.g., where the task is created or what a task is here).

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

Usage Guidelines1/5

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

There is no guidance whatsoever on when to use this tool versus alternatives. Siblings such as add_request_task and create_change overlap conceptually, and nothing in the description helps an agent choose.

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

create_userCreate userD

Create a user.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes

TDQS

D1.5/5.0
Behavior1/5

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

No annotations are provided, so the description carries the full behavioral burden and delivers none of it. It says nothing about required permissions, whether the requested username/email must be unique, what happens on conflict, or what is returned on success. For a mutation tool with zero annotation coverage this is a critical gap.

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

Conciseness2/5

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

One short sentence is technically concise, but here the brevity reflects under-specification rather than economy. There is no front-loaded detail to earn the space because there is no detail at all.

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

Completeness1/5

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

With no annotations, no output schema, a nested untyped object parameter, and 0% schema description coverage, the definition is missing everything an agent needs to invoke it correctly. The description would have to compensate for all of these gaps and instead contributes nothing.

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

Parameters1/5

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

The single required parameter is an opaque free-form object (additionalProperties: {}, propertyNames: string) with 0% schema description coverage, and the description adds nothing about which fields belong in the body. An agent has no way to construct a valid request from the definition alone.

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

Purpose2/5

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

"Create a user." is a verbatim restatement of the tool name and title with no added specificity. It does not distinguish this tool from the many other create_* siblings (create_task, create_project, create_change, create_request), each of which creates a different resource in the same namespace.

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 related siblings such as update_user, delete_user, get_user, or list_users. The agent is left to infer entirely from the name that this is the creation path for the user resource.

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

delete_changeDelete changeC

Delete a change.

ParametersJSON Schema
NameRequiredDescriptionDefault
change_idYes

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden, and it discloses almost nothing: it does not state whether the deletion is permanent or reversible, whether restore_change can undo it, or what permissions are required. The word 'Delete' at least signals a destructive mutation, which is marginally more than a tautology.

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 efficient and front-loaded with the verb, with zero padding. Its brevity is under-specification rather than genuine conciseness, so it cannot score higher.

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 mutation tool with no annotations, no output schema, an undocumented parameter, and sibling tools (trash_change, restore_change) that imply a recoverable-delete alternative, the definition omits everything an agent needs to choose and call it safely.

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

Parameters2/5

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

Schema description coverage is 0% for the single parameter change_id, so the description would need to compensate and does not — it never mentions the identifier, its accepted formats (integer or numeric string per the anyOf), or where to obtain it. The parameter name is self-explanatory, which keeps this above a 1.

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 ('Delete a change'), so the core operation is unambiguous and distinguishable from create_change/update_change by name alone. However, it offers no differentiation from the sibling trash_change (and restore_change), which strongly implies a soft-delete alternative — exactly the distinction an agent most needs here.

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 trash_change alternative that presumably performs a recoverable deletion. The agent is left to infer 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.

delete_projectDelete projectC

Delete a project.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYes

TDQS

C2.5/5.0
Behavior2/5

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

No annotations exist, so the description carries the full behavioral burden. It confirms the operation is destructive but says nothing about permanence, whether contents (tasks, requests) are cascaded, required permissions, or confirmation behavior — all critical for an irreversible-sounding delete.

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 waste-free, but its brevity is under-specification rather than genuine conciseness. It earns its place only by naming the operation.

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

Completeness1/5

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

For a destructive, single-parameter, unannotated tool with no output schema, the description is inadequate: no effect scope, no reversibility, no post-conditions, no error modes. An agent cannot safely call this without guessing.

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

Parameters2/5

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

Schema description coverage is 0% for the single parameter. The description adds no meaning about project_id beyond its obvious name (e.g., whether it accepts a numeric string, which the schema hints at but does not label). It fails to 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?

The description states a specific verb ('Delete') and resource ('project'), so intent is unambiguous. However, it offers no differentiation from the sibling delete tools (delete_task, delete_change, delete_user) and no scope or consequences, 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 tool, no prerequisites, and no mention of alternatives (e.g., whether projects can be trashed or restored, as changes can via trash_change/restore_change). 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.

delete_requestDelete RequestA

Trash a request, or permanently delete it with force.

ParametersJSON Schema
NameRequiredDescriptionDefault
forceNo
request_idYes

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations, the description must carry behavioral load. It usefully discloses the trash-vs-permanent distinction, implying force is irreversible. However it says nothing about required permissions, whether child notes/tasks are cascaded, or the operation's result, which matters for a destructive mutation.

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; the core action and the consequential modifier are both captured 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?

For a destructive mutation with no annotations and no output schema, the definition covers the mode difference well but omits permissions, cascade/side effects, and any pointer to restore_request as the reversal path. Adequate but with clear 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 coverage is 0%, so the description is the only source of parameter meaning. It does explain what 'force' does (permanent vs trash), which compensates for the undocumented boolean, but gives no detail on request_id format or accepted types.

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 ('trash'/'permanently delete') and resource ('a request'), and the two modes distinguish it from related tools like delete_request_note or delete_request_task. An agent can tell what it does 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 Guidelines3/5

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

The description implies usage via the force flag (default = trash, force = permanent), but never states when to use this versus restore_request or when trashing is preferable. No explicit preconditions 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.

delete_request_noteDelete Request noteC

Delete a request note.

ParametersJSON Schema
NameRequiredDescriptionDefault
note_idYes
request_idYes

TDQS

C2.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It conveys only that the operation is destructive; it says nothing about irreversibility, whether the note can be restored (note that a restore_request sibling exists, but no restore for notes), required permissions, or what happens to related data. A mutation tool with zero annotation coverage needs considerably more.

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?

It is a single short sentence with no filler, so there is no wasted text. But this is brevity by omission rather than economical writing — the structure is fine, the content is simply absent.

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 two-parameter destructive tool with no annotations and no output schema, the description should at minimum cover irreversibility and identifier sourcing. Neither is addressed, leaving the definition too thin for confident invocation.

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

Parameters1/5

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

Schema description coverage is 0% and there are two required parameters (request_id, note_id). The description does not explain what either identifier is, how to obtain them, or that note_id is scoped to request_id. With a low coverage schema, the description must compensate and does not.

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

Purpose3/5

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

The description names a specific verb (delete) and resource (request note), so an agent knows roughly what happens. However, it adds nothing beyond the tool name and title — it is effectively a restatement rather than an explanation, and it does not distinguish itself from siblings like update_request_note or delete_request_task beyond the 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 when-to-use guidance, no mention of alternatives (e.g., update_request_note for edits, or whether a note can be recovered), and no prerequisites. The agent gets only the bare action.

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

delete_request_taskDelete Request taskD

Delete a request task.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYes
request_idYes

TDQS

D1.8/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden, yet it only states 'Delete'. For a destructive mutation it says nothing about irreversibility, required permissions, cascading effects on the parent request, or whether the operation can be undone.

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

Conciseness2/5

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

One short sentence with no wasted words, but it is under-specified rather than concise — the brevity comes from omission of necessary information, not from efficient phrasing.

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

Completeness1/5

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

With no annotations, no output schema, no parameter documentation, and a destructive operation, the definition is completely inadequate. An agent cannot determine safety, scope, or argument sourcing from this description.

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

Parameters1/5

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

Schema description coverage is 0% for two required parameters (request_id, task_id), and the description does not explain what either identifier refers to or how to obtain it. It fails entirely to compensate for the documentation gap.

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

Purpose2/5

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

The description restates the tool name and title almost verbatim ('Delete a request task'), adding no distinguishing detail. It names a verb and resource, but offers nothing to separate it from siblings like delete_request, delete_task, or update_request_task.

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 indication of how this differs from the many other delete_* and *_request_task tools in the sibling list. The agent is left to infer everything.

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

delete_taskDelete taskC

Delete a task.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYes

TDQS

C2.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden and it delivers almost nothing. It does not say whether deletion is permanent or recoverable, what permissions are required, whether child records cascade, or what happens if the task_id does not exist.

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 short sentence is front-loaded and free of padding, which is structurally fine. But the brevity reflects under-specification rather than disciplined conciseness, 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.

Completeness2/5

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

For a destructive, irreversible-looking operation with no annotations and no output schema, the definition omits the details an agent needs: reversibility, required permissions, error behavior, and relationship to delete_request_task. The schema alone cannot cover these gaps.

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

Parameters2/5

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

The single parameter task_id has 0% schema description coverage, and the description adds no meaning beyond the schema's own type constraints (positive integer or numeric string). The agent gets no hint about where a valid task id comes from or expected format.

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

Purpose3/5

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

The description states a concrete verb and resource ('Delete a task'), so the agent knows the operation is a destructive removal of a task. However, it does no work to distinguish this tool from siblings such as delete_request_task, and it essentially restates the tool name/title rather than adding definition.

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 the related delete_request_task, or when a task should be updated/closed instead of deleted. No preconditions or exclusions 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.

delete_userDelete userD

Delete a user.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_idYes

TDQS

D1.5/5.0
Behavior1/5

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

With no annotations, the description carries the full behavioral burden, yet it discloses nothing: not whether the deletion is permanent or recoverable, what happens to the user's requests/tasks/notes, whether admin permissions are required, or what the response contains. For a destructive mutation this is a severe gap.

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

Conciseness2/5

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

The sentence is short but that brevity is under-specification rather than conciseness; there is no front-loaded context, no scoping, and no information an agent can act on.

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

Completeness1/5

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

A destructive single-parameter tool with no annotations, no output schema, and an undocumented parameter needs far more description than this. Nothing about safety, side effects, permissions, or return behavior is supplied.

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

Parameters1/5

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

Schema description coverage is 0% for the single required user_id parameter, and the description says nothing about it. It is unclear whether user_id is an internal numeric ID or a numeric-string identifier, or how to obtain it — the description does not compensate at all.

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

Purpose2/5

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

"Delete a user" restates the tool name and title verbatim, adding no scope, target domain, or distinction from sibling mutation tools like delete_request or delete_change. The verb+resource is clear only because the name already is; the description itself contributes nothing.

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 rather than update_user, or whether a soft-delete/restore path exists (siblings include restore_request and trash_change, suggesting lifecycle patterns). The agent gets no context for choosing this tool over alternatives.

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

get_changeGet changeD

Get a change.

ParametersJSON Schema
NameRequiredDescriptionDefault
change_idYes

TDQS

D1.8/5.0
Behavior2/5

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

With no annotations, the description fully carries the behavioral burden, yet it only implies a read operation. It omits whether the tool returns null for missing IDs, error behavior, or permission requirements, leaving critical behavioral traits undisclosed.

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

Conciseness3/5

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

The description is a single short phrase, which is concise but under-specified for a retrieval tool. Brevity here does not earn its place because it fails to convey essential information.

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

Completeness1/5

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

Given the tool's role in a CRUD suite with many sibling tools and no output schema or annotations, the description is completely inadequate. It lacks any detail about return values, error handling, or usage context needed for correct invocation.

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

Parameters2/5

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

Schema coverage is 0% and the description adds no meaning for the required change_id parameter. It does not explain that change_id must be a positive integer or its string representation, nor does it clarify valid ranges.

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

Purpose2/5

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

The description 'Get a change' is a tautology that restates the name and title. It does not clarify what a 'change' represents, nor does it distinguish this tool from its many siblings like get_task or get_request.

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

Usage Guidelines1/5

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

There is no guidance on when or why to use this tool versus alternatives such as list_changes, update_change, or get_request. The description provides no context for selection.

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

get_projectGet projectD

Get a project.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYes

TDQS

D1.5/5.0
Behavior1/5

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

No annotations are provided, so the description carries the full behavioral burden, and it discloses nothing: not whether this is a read-only operation, not permission requirements, not error/not-found behavior, and not the shape of the result. For a fetch tool with zero annotation coverage this is a complete gap.

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

Conciseness2/5

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

The text is short but this is under-specification rather than conciseness; two words plus a period cannot be considered front-loaded or well-structured when there is essentially no content to structure.

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

Completeness1/5

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

With no annotations, no output schema, and 0% parameter coverage, the description should carry substantial weight, yet it provides nothing an agent needs to call this tool correctly. It is entirely inadequate for the complexity implied by the surrounding request/project management toolset.

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

Parameters1/5

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

Schema description coverage is 0% and the single required parameter project_id is undocumented in both the schema and the description. The schema does constrain it to a positive integer or a numeric string, but the description adds no meaning about where that ID comes from or how to obtain it.

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

Purpose2/5

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

The description 'Get a project' is a verbatim restatement of the tool name and title, adding no information beyond them. It does not distinguish this from siblings like list_projects, get_task, or get_request, nor does it say what a 'project' is in this domain.

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

Usage Guidelines2/5

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

No guidance is given about when to use this tool versus list_projects (for discovery) or get_task/get_request. There are no stated prerequisites, no mention of what happens when the project_id does not exist, and no exclusions.

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

get_requestGet RequestD

Get a request.

ParametersJSON Schema
NameRequiredDescriptionDefault
request_idYes

TDQS

D1.7/5.0
Behavior1/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure, and it discloses nothing. It does not state permissions required, behavior for invalid or missing request_id, or what the returned record contains.

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

Conciseness2/5

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

The sentence is short and front-loaded, but this is under-specification rather than conciseness. Brevity here reflects missing information, not efficient packing of useful detail.

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

Completeness1/5

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

With no annotations, no output schema, and 0% parameter coverage, the description is the only source of guidance and it provides none. For a retrieval tool with an undocumented identifier parameter, this is completely inadequate.

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

Parameters2/5

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

Schema description coverage is 0% and the single parameter request_id is documented nowhere in the schema beyond its type/pattern. The description adds no meaning about what request_id represents (e.g., proxy request identifier) or its expected form.

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

Purpose2/5

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

"Get a request" merely restates the tool name and title with no added specificity. It does not distinguish this tool from the many siblings that also retrieve request-related entities (get_request_summary, get_request_resolution, get_request_note, get_task), nor does it clarify scope or return shape.

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 get_request versus get_request_summary, list_requests, or other retrieval siblings. The only implied usage comes from the verb 'Get', which is the minimum possible inference.

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

get_request_noteGet Request noteD

Get a request note.

ParametersJSON Schema
NameRequiredDescriptionDefault
note_idYes
request_idYes

TDQS

D1.3/5.0
Behavior1/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It does not state whether this is a read-only operation, what permissions are required, or what happens on invalid IDs.

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

Conciseness2/5

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

The single sentence is short but under-specified rather than concise. It does not front-load any useful information beyond restating the name.

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

Completeness1/5

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

For a two-parameter retrieval tool with no annotations, no output schema, and 0% schema description coverage, the description is completely inadequate. It omits all behavior, usage, and parameter context.

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

Parameters1/5

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

The schema has 0% description coverage for two required parameters (request_id and note_id), and the description adds no meaning about their format, source, or role. The description fails to compensate for the missing schema documentation.

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

Purpose2/5

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

The description 'Get a request note.' merely restates the tool name and title, adding no specific scope or distinguishing detail. It does not differentiate from siblings like list_request_notes or get_request.

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

Usage Guidelines1/5

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

No guidance is provided on when to use this tool versus alternatives such as list_request_notes, get_request, or add_request_note. There are no prerequisites or context clues.

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

get_request_resolutionGet Request ResolutionD

Get a resolution.

ParametersJSON Schema
NameRequiredDescriptionDefault
request_idYes

TDQS

D1.3/5.0
Behavior1/5

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

No annotations are provided, so the description carries the full burden, and it discloses nothing: not whether it is a read, whether a resolution may be absent (and what that returns), nor any auth or error behavior. 'Get a resolution' gives no behavioral context at all.

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

Conciseness2/5

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

It is short, but this is under-specification rather than conciseness — a single four-word fragment that earns none of its brevity by conveying meaning.

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

Completeness1/5

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

For a tool with an undocumented required parameter, no annotations, no output schema, and a crowded sibling namespace, this description is wholly inadequate; an agent has no basis for selecting or correctly invoking it.

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

Parameters1/5

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

Schema description coverage is 0% for the single required parameter request_id, and the description says nothing about it — not whether it refers to the request whose resolution is fetched, nor its format. The description fails to compensate for the schema gap.

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

Purpose2/5

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

The description 'Get a resolution' is essentially a restatement of the tool name and title, adding no scope, no verb specificity beyond 'get', and no differentiation from siblings like get_request, get_request_summary, or add_request_resolution. 'Resolution' is never defined, so an agent cannot tell what entity is actually being fetched.

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

Usage Guidelines1/5

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

There is no guidance on when to use this tool versus get_request, get_request_summary, list_request_notes, or add_request_resolution. No prerequisites, no conditions, no exclusions.

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

get_request_summaryGet Request SummaryD

Get request counts.

ParametersJSON Schema
NameRequiredDescriptionDefault
request_idYes

TDQS

D1.6/5.0
Behavior1/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It says only 'Get request counts' and reveals nothing about permissions, return format, pagination, or any other behavioral trait.

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

Conciseness2/5

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

The description is a single short sentence, but it is under-specified rather than appropriately concise. It is front-loaded but too terse to earn its place as useful documentation.

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

Completeness1/5

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

With no output schema, no annotations, and a required parameter that is undocumented in both schema and description, the definition is far too incomplete for an agent to call the tool correctly.

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

Parameters1/5

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

The tool has one required parameter (request_id) with 0% schema description coverage, and the description does not mention it at all. It fails to explain what the parameter represents or what format it expects.

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

Purpose3/5

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

The description states a verb ('Get') and a resource ('request counts'), so the basic purpose is inferable. However, it does not specify what kind of counts are returned or how this differs from siblings like get_request or list_requests, leaving the scope vague.

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

Usage Guidelines1/5

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

There is no guidance on when to use this tool versus alternatives. The description contains no conditions, exclusions, or references to sibling tools such as get_request or list_requests.

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

get_request_taskGet Request taskD

Get a request task.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYes
request_idYes

TDQS

D1.3/5.0
Behavior1/5

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

No annotations are provided, so the description carries the full behavioral burden, and it discloses nothing: not whether it requires permissions, what happens for missing IDs, or what shape the response takes. One tautological sentence provides 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.

Conciseness2/5

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

The single sentence is short, but this is under-specification rather than conciseness — it earns its brevity by omitting all useful information rather than by being tight and front-loaded.

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

Completeness1/5

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

For a two-required-parameter retrieval tool with no annotations, no output schema, and no parameter documentation, the description leaves everything an agent needs unstated. It is completely inadequate for the task.

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

Parameters1/5

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

Schema description coverage is 0% for two required parameters (request_id, task_id), and the description adds no meaning about their format, relationship, or valid values. The schema only encodes numeric type/pattern constraints, leaving the semantics entirely undocumented.

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

Purpose2/5

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

The description 'Get a request task' restates the tool name and title almost verbatim, adding no distinguishing detail. It does not clarify how it differs from get_task, get_request, or list_request_tasks, all of which appear as siblings.

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

Usage Guidelines1/5

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

There is no indication of when to use this tool versus get_task, get_request, or list_request_tasks. No prerequisites, no context, no alternatives named.

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

get_taskGet taskD

Get a task.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYes

TDQS

D1.7/5.0
Behavior1/5

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

With no annotations provided, the description carries the full behavioral burden and delivers nothing: no statement of what is returned, whether the task must exist, error behavior, or permissions. One word is the entire disclosure.

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

Conciseness2/5

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

The sentence is short but this is under-specification, not conciseness; it conveys no information an agent could act on beyond the tool name itself.

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

Completeness1/5

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

A retrieval tool with one undocumented required parameter, no annotations, and no output schema needs the description to explain identifier format and return shape. None of that is present.

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

Parameters2/5

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

Schema description coverage is 0% for the single required task_id parameter, and the description adds no meaning — it never mentions the identifier, its accepted integer-or-numeric-string forms, or the exclusiveMinimum constraint. Nothing compensates for the schema gap.

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

Purpose2/5

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

"Get a task." merely restates the tool name and title with no added specificity. It does not distinguish this from get_request_task, get_change, get_project, or get_user, all of which have the same verb+resource shape.

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 sibling get_request_task which appears to be the closely related alternative. The agent is left to infer usage entirely.

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

get_userGet userD

Get a user.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_idYes

TDQS

D1.3/5.0
Behavior1/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure, and it discloses nothing: no mention of read-only nature, permission requirements, error behavior for missing/unknown user_id, or whether the result is cached or scoped.

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

Conciseness2/5

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

The one-sentence description is short, but its brevity reflects under-specification rather than disciplined conciseness — there is no content to front-load or trim.

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

Completeness1/5

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

With no annotations, no output schema, and 0% parameter documentation, the description is completely inadequate for even a simple single-parameter lookup tool. An agent has no basis to call this correctly or safely.

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

Parameters1/5

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

Schema description coverage is 0% for the single required parameter user_id; the schema only constrains its type (positive integer or numeric string) but never explains what it identifies. The description adds no meaning whatsoever, so it fails to compensate for the coverage gap.

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

Purpose2/5

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

"Get a user." restates the tool name and title without adding a specific verb scope or resource qualifier beyond the obvious. It does not distinguish this tool from the many sibling reads such as list_users, get_request, or get_task.

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

Usage Guidelines1/5

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

No when-to-use guidance, no prerequisites, and no mention of alternatives (e.g., list_users for enumeration vs. this tool for a single lookup). 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.

list_changesList changesD

List changes.

ParametersJSON Schema
NameRequiredDescriptionDefault
list_infoNo

TDQS

D1.3/5.0
Behavior1/5

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

No annotations are provided, so the description carries the full behavioral burden, and it discloses nothing. It does not say what a "change" is, whether results are paginated, whether authentication is required, or what the return shape looks like.

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

Conciseness2/5

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

Two words is not conciseness but under-specification. Nothing is front-loaded because nothing is said; the brevity here reflects missing content rather than efficient prose.

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

Completeness1/5

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

For a tool with a complex nested parameter object, no annotations, no output schema, and 0% schema coverage, the description is completely inadequate. An agent cannot infer filtering, paging, or sorting behavior from "List changes."

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

Parameters1/5

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

The single parameter is a nested list_info object with 0% schema description coverage, containing seven undocumented sub-fields (row_count, sort_field, sort_order, start_index, fields_required, get_total_count, search_criteria). The description contributes zero meaning to any of them.

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

Purpose2/5

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

"List changes" is a tautological restatement of the tool name and title. It gives an agent no scope, no filtering semantics, and no differentiation from the many sibling list_* tools or from get_change.

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

Usage Guidelines1/5

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

There is no indication of when to use this tool versus get_change, list_requests, or any other sibling. No prerequisites, no context, 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.

list_projectsList projectsD

List projects.

ParametersJSON Schema
NameRequiredDescriptionDefault
list_infoNo

TDQS

D1.5/5.0
Behavior1/5

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

No annotations are provided, so the description carries the full behavioral burden, and it discloses nothing: no read-only confirmation, no pagination behavior, no default row_count, no indication of what happens when search_criteria is omitted, and no auth/permission requirements. For a listing tool with a rich nested parameter object, this is a complete gap.

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

Conciseness2/5

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

Two words is technically concise, but this is under-specification rather than conciseness. There is no front-loaded scope statement or constraint to justify the brevity.

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

Completeness1/5

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

Given a nested-object parameter with seven sub-fields, 0% schema coverage, no annotations, and no output schema, the description is far too thin for an agent to invoke this tool correctly. It leaves pagination, sorting, field selection, and search semantics entirely unexplained.

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

Parameters1/5

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

Schema description coverage is 0%, and the single parameter is a nested object containing row_count, sort_field, sort_order, start_index, fields_required, get_total_count, and search_criteria, none of which are documented anywhere. The description must compensate for this and provides zero parameter meaning.

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

Purpose2/5

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

The description 'List projects.' is a near-verbatim restatement of the tool name and title, adding no information beyond the identifier itself. It does not distinguish the tool from siblings such as list_tasks, list_changes, or list_requests, nor does it clarify scope (all projects vs. filtered). This is the textbook tautology case.

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 never mentions when to prefer list_projects over get_project (single fetch) or how it relates to the create/update/delete_project siblings. Nothing is misleading, but nothing is offered.

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

list_request_notesList Request notesD

List request notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
list_infoNo
request_idYes

TDQS

D1.3/5.0
Behavior1/5

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

No annotations are provided, so the description carries the full behavioral burden, yet it discloses nothing about pagination, sorting, search criteria, permissions, or return shape. For a tool with a nested list_info control object, this is a severe gap.

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

Conciseness2/5

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

The single sentence is short, but this is under-specification rather than conciseness. It wastes no words yet conveys almost no information, so brevity here does not earn credit.

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

Completeness1/5

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

Given a nested object parameter, pagination controls, search criteria, and no annotations or output schema, the description is wholly inadequate. An agent cannot determine how to page, filter, or interpret results from this text.

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

Parameters1/5

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

Schema description coverage is 0% and the description adds no parameter meaning whatsoever. The nested list_info object (row_count, sort_field, start_index, search_criteria, etc.) and the required request_id are completely undocumented beyond their machine-readable types.

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

Purpose2/5

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

The description restates the tool name and title almost verbatim ('List request notes'), giving only a bare verb+resource with no scope, filtering behavior, or distinction from sibling list tools such as list_request_tasks. It is effectively a tautology rather than an informative statement of purpose.

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

Usage Guidelines1/5

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

There is no guidance on when to use this tool versus alternatives like get_request_note, get_request, or list_request_tasks, and no prerequisites or context are mentioned. The agent is left to 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.

list_requestsList RequestsC

List requests.

ParametersJSON Schema
NameRequiredDescriptionDefault
list_infoNo

TDQS

C2.1/5.0
Behavior1/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. 'List requests.' reveals nothing about read-only safety, pagination, filtering, permissions, or result format, despite significant behavioral implications from the nested list_info parameter.

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

Conciseness2/5

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

The two-word description is extremely short but under-specified rather than concise. It is front-loaded yet fails to provide even the minimum structure needed for an agent to understand the tool's behavior.

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

Completeness1/5

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

Given the nested parameter structure, no annotations, no output schema, and the presence of many sibling tools, the description is completely inadequate. An agent cannot determine how to invoke the tool correctly or what to expect from it.

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

Parameters1/5

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

The schema has 0% description coverage and only one top-level parameter, list_info, whose many nested properties (row_count, sort_field, search_criteria, etc.) are entirely undocumented. The description adds no meaning or usage hints for any parameter.

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 ('List') and resource ('requests'), distinguishing it from sibling tools like create_request, update_request, and get_request. However, it offers no further differentiation among the many list_* siblings or any scope details.

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 get_request, list_request_notes, or other list_* tools. The description only names the operation and leaves context entirely unstated.

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

list_request_tasksList Request tasksD

List request tasks.

ParametersJSON Schema
NameRequiredDescriptionDefault
list_infoNo
request_idYes

TDQS

D1.3/5.0
Behavior1/5

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

No annotations are provided, so the description carries the full behavioral burden, yet it discloses nothing: no pagination behavior, no note that results are scoped to the request_id, no indication of read-only safety, and no mention of the nested list_info controls that materially change the response.

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

Conciseness2/5

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

The single sentence is technically free of waste, but it is under-specified rather than concise. It occupies no space and delivers no information, which is a deficiency, not efficiency.

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

Completeness1/5

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

For a tool with a nested object parameter, a required request_id, no output schema, and no annotations, the description is completely inadequate. Everything an agent needs to call it correctly, including what a "request task" is and how list_info shapes the result, is missing.

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

Parameters1/5

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

Schema description coverage is 0% across both parameters. request_id (accepting integer or numeric string) and the entire nested list_info object with its eight sub-fields are undocumented in both schema and description, so the agent has no semantic guidance for any input.

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

Purpose2/5

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

"List request tasks" merely restates the tool name and title with no additional specificity. It does not distinguish this tool from siblings like list_tasks, get_request_task, or list_requests, leaving the agent to guess the scope (tasks belonging to one request).

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

Usage Guidelines1/5

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

There is no guidance on when to use this tool versus alternatives. With siblings such as get_request_task, list_tasks, and list_requests available, the description provides nothing to route the agent between a single-task fetch, a global task list, or this per-request listing.

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

list_tasksList tasksD

List tasks.

ParametersJSON Schema
NameRequiredDescriptionDefault
list_infoNo

TDQS

D1.5/5.0
Behavior1/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure, yet it says nothing about read-only nature, pagination limits (row_count max 100), sorting, filtering, or return format. This is a complete gap for a tool with a complex nested parameter object.

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

Conciseness2/5

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

The sentence is technically concise, but it is under-specified rather than efficiently front-loaded. A single four-word restatement does not earn its place as a tool description for a nontrivial listing operation.

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

Completeness1/5

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

Given the nested schema, pagination controls, search criteria, no annotations, and no output schema, the description is completely inadequate. An agent has no information about what the tool returns, how to constrain results, or how it differs from related list tools.

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

Parameters1/5

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

The single parameter is a nested list_info object with seven sub-properties, but schema description coverage is 0%. The description adds no meaning about row_count, sort_field, search_criteria, or any other field, leaving the agent to infer everything from property names alone.

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

Purpose2/5

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

The description 'List tasks.' merely restates the tool name and title, making it a tautology rather than a specific statement of purpose. It does not distinguish this tool from sibling list_request_tasks or explain what scope of tasks is covered.

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 list_tasks versus alternatives such as list_request_tasks or get_task. The description supplies no context, exclusions, or routing information.

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

list_usersList usersC

List users.

ParametersJSON Schema
NameRequiredDescriptionDefault
list_infoNo

TDQS

C2/5.0
Behavior1/5

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

No annotations are present, so the description carries the full behavioral burden. It says nothing about whether the call is read-only, how pagination behaves, what the nested list_info structure controls, or what is returned, making it entirely uninformative for a tool that takes a complex nested object.

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

Conciseness2/5

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

The one-sentence text avoids verbosity, but it is under-specified rather than concise. There is no structure or front-loading of useful information, so brevity here reflects omission, not efficiency.

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

Completeness1/5

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

For a tool with a nested object parameter, 0% schema coverage, no annotations, and no output schema, the description supplies none of the detail an agent needs to invoke it correctly. It is not remotely complete.

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

Parameters2/5

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

Schema coverage is 0% and the description never mentions the single list_info parameter or any of its fields (row_count, sort_field, sort_order, start_index, search_criteria, etc.). With no param explanation at all, the description fails to compensate for the undocumented schema.

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

Purpose3/5

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

States a verb (list) and a resource (users), so an agent understands the basic operation. However, it does nothing to distinguish it from siblings like get_user or from the many other 'list_*' tools, and it lacks any scope or capability details.

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 mention of alternatives such as get_user for a single record, and no exclusions. The description leaves the agent to infer context.

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

pickup_requestPick Up RequestC

Assign to the authenticated technician.

ParametersJSON Schema
NameRequiredDescriptionDefault
request_idYes

TDQS

C2.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It does disclose one useful behavioral fact — the assignee is the authenticated user, not an arbitrary target — but says nothing about permissions, idempotency, failure if the request is already assigned, or 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.

Conciseness4/5

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

A single short sentence with no filler, and the key fact (assignment target) is front-loaded. It is efficient, though brevity here shades into under-specification rather than crispness.

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

Completeness2/5

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

For a mutation tool with no annotations, no output schema, and zero parameter documentation, one sentence is not enough. An agent lacks the state-change semantics, preconditions, and parameter meaning needed to invoke it confidently.

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

Parameters2/5

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

Schema description coverage is 0% and the description never mentions request_id or its accepted forms (integer or numeric string). The single parameter is left entirely to the raw schema, so the description adds no semantic value.

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

Purpose3/5

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

The description conveys a mutation on a request (assigning it), and 'the authenticated technician' hints that this is a self-assignment rather than an arbitrary assignment. However, it never names or contrasts with the obvious sibling assign_request, so an agent cannot tell the two apart without inspecting schemas.

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 prerequisite guidance is given. With assign_request, update_request, and close_request among the siblings, the absence of any routing guidance is a real gap.

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

restore_changeRestore ChangeC

Restore a change from trash.

ParametersJSON Schema
NameRequiredDescriptionDefault
change_idYes

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It conveys only that the change comes back from trash; it says nothing about required permissions, whether the change returns to its original location, whether the operation is idempotent, or what happens if the change is not in trash.

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, wasting no words. It is efficient, though its brevity borders on under-specification rather than pure 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?

For a one-parameter mutation with no annotations and no output schema, the description should at least explain the parameter and the effect of a successful or failed restore. It covers only the bare minimum concept and omits the preconditions and results an agent needs.

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

Parameters2/5

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

Schema description coverage is 0%, so the schema documents only that change_id is a positive integer/string but adds no meaning. The description never mentions the parameter or clarifies what identifier is expected, so it does nothing to 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?

The description states a specific verb (restore) and resource (change) with a scope qualifier ('from trash'), which clearly identifies the operation. It does not, however, distinguish itself from siblings like trash_change (its inverse) or the analogous restore_request, leaving the agent to infer the relationship.

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 explicit when-to-use or when-not-to-use guidance. The phrase 'from trash' weakly implies the tool is the undo for trash_change, but no alternative or precondition (e.g. the change must currently be trashed) is stated.

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

restore_requestRestore RequestC

Restore a request from trash.

ParametersJSON Schema
NameRequiredDescriptionDefault
request_idYes

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden, yet it omits whether the request returns to its prior state, what happens if the request is not in trash, permission requirements, and whether the action is reversible. It signals a mutation only implicitly via 'restore'.

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 no wasted words, but it is under-specified rather than efficient — brevity here reflects a lack of content, not tight structure.

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

Completeness2/5

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

For a mutation tool with no annotations, no output schema, and an undocumented required parameter, the description leaves key operational details (preconditions, side effects, failure modes) unaddressed.

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

Parameters2/5

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

Schema description coverage is 0% and there is one required parameter (request_id). The description says nothing about how to obtain or identify the request_id, so it does not compensate for the missing schema documentation.

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 ('restore') and resource ('request') plus the source state ('from trash'), which lets an agent distinguish it from the sibling restore_change. It does not explicitly contrast with any sibling, 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?

No guidance on when to use this versus delete_request, trash-related tools, or its sibling restore_change. The 'from trash' phrase implies the precondition (the request must already be trashed) but this 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.

save_request_draftSave Request Reply DraftB

Save an unsent public reply draft. It never sends the message.

ParametersJSON Schema
NameRequiredDescriptionDefault
ccNo
toYes
bccNo
typeNo
subjectYes
request_idYes
descriptionYes

TDQS

B3.1/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It does disclose one genuinely important non-obvious trait – the draft is never sent – but says nothing about overwrite behavior for an existing draft, permission requirements, or what is returned.

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, and the critical non-send constraint is placed immediately after the purpose. It is efficient, though the brevity comes at the cost of 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?

A 7-parameter mutation tool with no annotations, no output schema, and 0% parameter documentation needs substantially more than two sentences. The description leaves permission requirements, draft-overwrite semantics, and the meaning of several required parameters unaddressed.

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?

Seven parameters at 0% schema description coverage, and the description explains none of them. Names like to/cc/bcc/subject are somewhat self-evident, but required fields such as type and description are ambiguous with no guidance in either the schema or the 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?

The description gives a specific verb plus resource: 'Save an unsent public reply draft,' which is far more precise than the tool name alone. It does not, however, differentiate itself from siblings such as create_request or any send-reply tool, leaving the boundary 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 Guidelines3/5

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

Usage is only implied: the agent can infer 'use this when you want to prepare a reply without dispatching it.' There is no explicit when-to-use statement, no prerequisite, and no named alternative (e.g., a send tool) for the case where the message should actually go out.

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

sdp_callGeneric SDP API CallB

Call any SDP v3 endpoint. Write bodies are form-encoded as input_data; string bodies are sent verbatim.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNo
methodYes
paramsNo
endpointYes

TDQS

B3/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden, and it does disclose one genuinely useful trait: write bodies are form-encoded via input_data while string bodies are sent verbatim. However it says nothing about authentication requirements, DELETE/PUT irreversibility, error surfaces, or rate limits, which are important for a tool that can mutate anything.

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, front-loaded with the capability and immediately followed by the one non-obvious encoding rule. No filler, nothing repeated from the schema.

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

Completeness2/5

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

For a maximally generic passthrough with 4 loose params, 0% schema coverage and no output schema, the description leaves critical unknowns: reachable endpoint syntax, auth model, what comes back, and the danger profile of arbitrary DELETE/PUT calls. The single encoding note does not close the gap.

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

Parameters2/5

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

Schema description coverage is 0% across 4 parameters, so the description must compensate and largely does not. It clarifies only that write bodies go in 'body' as form-encoded input_data; it never explains the endpoint format (path, version prefix, base URL), how 'params' is serialized, or the distinction between body and params.

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+resource: 'Call any SDP v3 endpoint,' which pins down that this is a generic passthrough rather than a resource-specific operation like the many sibling tools. What's missing is any gloss on what 'SDP' is or what class of endpoints are reachable, so the agent must infer scope.

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

Usage Guidelines2/5

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

There is no when-to-use guidance at all, and this is precisely the tool where it matters most: the agent needs to know this is the fallback for endpoints with no dedicated tool (e.g. use get_request rather than sdp_call GET /requests/{id}). No exclusions or alternatives are named.

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

trash_changeTrash ChangeC

Move a change to trash.

ParametersJSON Schema
NameRequiredDescriptionDefault
change_idYes

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden. 'Move a change to trash' hints at a softer, possibly reversible state than deletion, but it never confirms reversibility, whether restore_change can undo it, what permissions are required, or how related data is affected.

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. Its brevity borders on under-specification rather than being wasteful, 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?

For a mutation tool with no annotations, no output schema, and a fully undocumented parameter, this description is too thin. An agent cannot determine reversibility, side effects, or expected response from it.

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

Parameters2/5

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

The single parameter change_id has 0% schema description coverage, and the description adds nothing about its format or origin. It does not compensate for the gap; only the name implies it identifies the change.

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: moving a change into a trash state. However, it does not distinguish itself from the sibling delete_change or explain what 'trash' means relative to deletion, leaving the agent to guess at the semantic difference.

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 prefer this over delete_change, nor any mention that restore_change is the inverse operation. The agent is given no conditions that select this tool versus its close siblings.

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

update_changeUpdate changeD

Update a change.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes
change_idYes

TDQS

D1.5/5.0
Behavior1/5

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

With no annotations, the description carries the full behavioral burden and delivers nothing: it does not say whether this is a partial merge or full replacement, whether existing fields are overwritten or preserved, what permissions are needed, or whether the operation is reversible. For a mutation tool this is a severe gap.

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

Conciseness2/5

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

The single sentence is short, but this is under-specification rather than conciseness — there is no front-loaded substance, no structure, and no sentence that earns its place because none convey actionable detail.

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

Completeness1/5

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

For a two-parameter mutation tool with a nested, unconstrained body object, no annotations, and no output schema, the description is completely inadequate. An agent cannot determine what payload to send or what behavior to expect.

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

Parameters1/5

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

Schema description coverage is 0% for both required parameters. The description does not clarify what change_id accepts, and more critically, 'body' is an unconstrained object with additionalProperties: {} whose expected keys and value types are documented nowhere in the description or schema.

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

Purpose2/5

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

The description 'Update a change' merely restates the tool name and title, adding no information about what aspects of a change are updatable or what an update means here. It is verb+resource but functionally a tautology, and it does nothing to distinguish this tool from siblings like create_change, delete_change, or trash_change.

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 such as trash_change/restore_change, and no indication of prerequisites or when an update is appropriate versus a delete. 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.

update_projectUpdate projectD

Update a project.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes
project_idYes

TDQS

D1.5/5.0
Behavior1/5

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

No annotations are provided, so the description carries the full behavioral burden and delivers none of it. It does not state whether this is a partial or full update, what happens to omitted fields, what permissions are required, whether changes are reversible, or what the body object must contain.

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

Conciseness2/5

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

The single sentence is short but not concise in the useful sense — it is under-specified rather than economical. There is no front-loaded detail because there is no detail at all.

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

Completeness1/5

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

For a mutation tool with two required parameters, a free-form nested body object, zero schema descriptions, and no annotations or output schema, this description is completely inadequate. An agent cannot invoke it correctly without guessing the body shape.

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

Parameters1/5

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

Schema description coverage is 0% for both required parameters, and the description adds no meaning. The 'body' parameter is a free-form nested object with additionalProperties: {}, so without any description the agent has no way to know which project fields are updatable.

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

Purpose2/5

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

The description is essentially a restatement of the tool name and title, offering no verb-specific detail, scope, or differentiation from siblings like update_task, update_request, or update_change. An agent cannot tell what fields are updatable or how this differs from create_project/delete_project 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?

No when-to-use guidance, no prerequisites, no alternatives named. Usage is only weakly implied by the sibling set (create/delete/update_project), but the description itself provides nothing about when this 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.

update_requestUpdate RequestD

Update a request.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes
request_idYes

TDQS

D1.3/5.0
Behavior1/5

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

No annotations are provided and the description carries the full burden, yet it discloses nothing: not what fields can be updated, whether the update is partial or full-replacement, whether existing values not supplied are preserved, permission requirements, or reversibility. This is a mutation tool with entirely undisclosed behavior.

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

Conciseness2/5

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

The single sentence is not padded, but it is under-specified rather than concise — it omits everything an agent needs, so brevity here is a liability, not an asset.

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

Completeness1/5

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

For a mutation tool with a nested, undocumented body object, no annotations, no output schema, and many sibling update tools, the description is completely inadequate to call it correctly.

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

Parameters1/5

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

Schema description coverage is 0% across both required parameters. The description does not explain request_id format or, more critically, the free-form nested `body` object (additionalProperties with no documented shape), which is the main semantic gap an agent needs filled.

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

Purpose2/5

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

"Update a request" restates the tool name and title without adding a verb-resource distinction beyond the obvious. It does not differentiate this tool from siblings like update_request_note, update_request_task, or update_change, so an agent must guess which "update" applies.

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

Usage Guidelines1/5

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

There is no when-to-use guidance, no mention of prerequisites, alternatives, or when-not to use this in favor of close_request, assign_request, or save_request_draft. The description provides zero routing help.

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

update_request_noteUpdate Request noteD

Update a request note.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes
note_idYes
request_idYes

TDQS

D1.3/5.0
Behavior1/5

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

With no annotations provided, the description carries the full behavioral burden, and it discloses nothing. It is silent on whether this is a full replace or partial merge, permission requirements, concurrency behavior, or what happens to unspecified note fields.

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

Conciseness2/5

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

The single sentence is short, but that brevity reflects under-specification rather than efficient communication. There is nothing to front-load because no useful content is present.

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

Completeness1/5

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

For a mutation tool with three required undocumented parameters, a nested free-form object body, no annotations, and no output schema, the description is wholly inadequate. An agent cannot safely construct a call from the information given.

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

Parameters1/5

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

Schema description coverage is 0% for all three required parameters. The 'body' parameter is an arbitrary nested object with additionalProperties: {} and no constraint documentation, and the description adds no meaning about its expected shape or the id formats.

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

Purpose2/5

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

The description 'Update a request note' is a verbatim restatement of the tool title and name, adding no information beyond the identifier. It does not distinguish this tool from close siblings such as update_request_task, update_request, or update_change.

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

Usage Guidelines1/5

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

No guidance whatsoever on when to use this tool versus alternatives like update_request_task or the sibling note tools (add_request_note, delete_request_note). No prerequisites, no conditions, 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.

update_request_taskUpdate Request taskD

Update a request task.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes
task_idYes
request_idYes

TDQS

D1.5/5.0
Behavior1/5

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

No annotations are provided, so the description carries the full behavioral burden, and it discloses nothing. It does not state which fields are updatable, whether the update is partial or full replacement, whether omitted fields are preserved or cleared, whether permissions are required, or whether the change is reversible.

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

Conciseness2/5

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

The single sentence is free of padding, but that brevity is under-specification rather than conciseness — it omits information the agent needs. There is no structure or front-loading because there is essentially no content.

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

Completeness1/5

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

For a three-parameter mutation tool with a nested body object, zero annotation coverage, no output schema, and no documentation of any kind, this is completely inadequate. Everything an agent needs to invoke the tool correctly is absent.

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

Parameters1/5

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

Schema description coverage is 0% for three required parameters, including a nested free-form `body` object with `additionalProperties: {}`. The description says nothing about request_id, task_id, or what keys the body accepts, so an agent has no way to construct a valid call from the text.

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

Purpose2/5

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

The description "Update a request task" is a near-verbatim restatement of the tool name and title, adding no scope, field, or effect information. An agent learns only that a mutation targets some entity called a request task, with nothing to distinguish it from the ~40 sibling tools beyond the literal 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, prerequisites, or alternative guidance is given. The description does not mention related siblings such as update_task, add_request_task, or delete_request_task, leaving routing entirely to the name.

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

update_taskUpdate taskD

Update a task.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes
task_idYes

TDQS

D1.5/5.0
Behavior1/5

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

With no annotations provided, the description carries the full behavioral burden and delivers none of it: it does not say whether the body replaces or merges existing fields, what permissions are required, whether the update is reversible, or what happens on a partial payload. For a mutation tool with a free-form nested body, this is a severe gap.

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

Conciseness2/5

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

The single sentence is short but this is under-specification rather than conciseness; there is no front-loaded scope, no key details, and nothing that earns the sentence its place beyond echoing the title.

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

Completeness1/5

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

A mutation tool with an opaque free-form nested body, no annotations, no output schema, and no parameter documentation requires far more context than one tautological sentence. An agent cannot call this correctly without guessing at the body shape.

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

Parameters1/5

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

Schema description coverage is 0% across 2 parameters. The 'body' parameter is an untyped object with additionalProperties: {} and no documented keys, so neither the schema nor the description tells the agent what can be updated. The description adds no parameter meaning whatsoever.

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

Purpose2/5

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

The description restates the tool name and title verbatim ('Update a task') without stating what fields are updatable, what kind of task is targeted, or how it differs from the sibling update_request_task, update_change, or update_user tools. It is a tautology rather than a specification.

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 alternatives are named. The sibling list contains update_request_task, which an agent could easily confuse with this tool, and nothing in the description disambiguates them.

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

update_userUpdate userD

Update a user.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes
user_idYes

TDQS

D1.3/5.0
Behavior1/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure, and it discloses nothing: not whether the update is partial or full-replacement, not what permissions are needed, not whether changes are reversible, and not what happens to fields omitted from the nested body object.

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

Conciseness2/5

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

It is short, but this is under-specification rather than conciseness; the single sentence earns nothing and conveys no information beyond the tool's name.

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

Completeness1/5

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

For a mutation tool with a nested body parameter, no annotations, no output schema, and 0% schema description coverage, the description is completely inadequate — an agent has nothing to act on beyond the name.

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

Parameters1/5

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

Schema description coverage is 0% and the description adds zero meaning for either parameter. The nested 'body' object with additionalProperties is entirely opaque — no hint of which fields are updatable or their expected shapes — which is a serious gap given the nested structure.

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

Purpose2/5

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

The description restates the tool name and title verbatim ('Update a user') without adding a specific resource scope, field list, or any distinguishing detail from siblings like update_request or update_task. It is a tautology rather than a statement of purpose.

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

Usage Guidelines1/5

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

There is no when-to-use guidance, no mention of alternatives, no prerequisites, and no exclusions. An agent cannot infer from the description when this tool is appropriate versus get_user or create_user.

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. 46 tool updatesv2.0.0
    • First observedadd_request_note
    • First observedadd_request_resolution
    • First observedadd_request_task
    • First observedassign_request
    • First observedclose_request
    • First observedcreate_change
    • First observedcreate_project
    • First observedcreate_request
    • First observedcreate_task
    • First observedcreate_user
    • First observeddelete_change
    • First observeddelete_project
    • First observeddelete_request
    • First observeddelete_request_note
    • First observeddelete_request_task
    • First observeddelete_task
    • First observeddelete_user
    • First observedget_change
    • First observedget_project
    • First observedget_request
    • First observedget_request_note
    • First observedget_request_resolution
    • First observedget_request_summary
    • First observedget_request_task
    • First observedget_task
    • First observedget_user
    • First observedlist_changes
    • First observedlist_projects
    • First observedlist_request_notes
    • First observedlist_request_tasks
    • First observedlist_requests
    • First observedlist_tasks
    • First observedlist_users
    • First observedpickup_request
    • First observedrestore_change
    • First observedrestore_request
    • First observedsave_request_draft
    • First observedsdp_call
    • First observedtrash_change
    • First observedupdate_change
    • First observedupdate_project
    • First observedupdate_request
    • First observedupdate_request_note
    • First observedupdate_request_task
    • First observedupdate_task
    • First observedupdate_user

TDQS

C2/5.0

Scored across 46 tools

Disambiguation3/5

Several tools operate on the same resource with overlapping but distinguishable actions (update_request, assign_request, pickup_request, close_request), and get_task vs get_request_task plus delete_change vs trash_change create boundary confusion. The generic sdp_call overlaps with every specific tool, which can cause an agent to bypass them entirely.

Naming Consistency4/5

Most tool names follow a clear snake_case verb_noun pattern (list_requests, create_change, update_project, delete_user). Minor deviations exist: sdp_call breaks the verb_noun convention, and delete_change vs trash_change uses different verbs for similar removal semantics.

Tool Count2/5

46 tools is well above the 25-tool threshold for 'too many', even for a broad ITSM domain. Many CRUD and sub-resource operations could be consolidated, and the presence of sdp_call as a catch-all makes the large specific surface less necessary.

Completeness3/5

The surface covers core CRUD for requests, changes, projects, tasks, and users, including sub-resources like notes and request tasks. However, gaps exist: no list for request resolutions, inconsistent trash/delete semantics across resources, and missing approval or workflow operations. The sdp_call escape hatch can fill gaps but requires endpoint knowledge.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI models to interact with Freshservice IT service management platform, allowing automated ticket management, change requests, asset tracking, and solution article operations through natural language commands.
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    Enables AI assistants to connect with Freshservice ITSM for managing tickets, assets, agents, and organizational data through natural language. It provides a comprehensive set of tools for performing CRUD operations on service desk records and searching across the Freshservice platform.
    53
    61 npm
    1
    MIT
  • F
    license
    Not graded
    quality
    F
    maintenance
    Integrates with Service Desk Plus Cloud API to enable AI assistants perform CRUD operations on service desk entities, including request management, technician management, and email communication.
    3
    -