testmonitor-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@testmonitor-mcpWhat are the latest test run results in the Alpha project?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
TestMonitor MCP server
A local Node.js MCP server that lets AI agents interact with TestMonitor through 173 tools generated from the official TestMonitor REST API specification. Uses the official MCP SDK and stdio transport; no build step or public web server is needed.
Supports projects, members, applications, versions, requirements, risks, test cases and folders, test runs, test results, issues, comments, attachments, teams, users, webhooks, custom fields, and status lookups. See TOOLS.md for the complete catalog. Available operations still depend on your TestMonitor permissions and subscription.
Local installation (optional)
Requires Node.js 22 or later. Skip this manual installation if you use the npx configuration below.
git clone https://github.com/deanchong/testmonitor-mcp.git
cd testmonitor-mcp
npm ci
cp .env.example .envEdit .env with your instance URL and Personal Access Token. In TestMonitor, open My Account → API → Create token. Keep the token private; .env is excluded from Git.
TESTMONITOR_URL=https://yourcompany.testmonitor.com
TESTMONITOR_TOKEN=your-token
TESTMONITOR_READ_ONLY=falseStart manually with:
node --env-file=.env src/index.jsThe process waits for MCP messages on stdin. It is not an interactive command prompt. Protocol messages are the only stdout output. npm start also works when the environment variables are already exported; it does not automatically load .env.
Related MCP server: TestRail MCP Server
Connect your AI agent
Configure your AI agent harness to launch this server as a local stdio MCP server. The harness starts the process and discovers its tools. GitHub provides the downloadable package; each user supplies their own TestMonitor URL and token.
Recommended: launch with npx
Requires Node.js 22+, npm (which includes npx), and Git on the machine running the harness. No manual clone or npm ci is needed for this option.
Add this entry to your harness's MCP configuration, preserving any existing servers. This example uses the common mcpServers structure; adapt the outer structure to your harness while keeping the command, arguments, and environment values:
{
"mcpServers": {
"testmonitor": {
"command": "npx",
"args": [
"--yes",
"--package=github:deanchong/testmonitor-mcp#main",
"testmonitor-mcp"
],
"env": {
"TESTMONITOR_URL": "https://yourcompany.testmonitor.com",
"TESTMONITOR_TOKEN": "your-personal-access-token",
"TESTMONITOR_READ_ONLY": "false"
}
}
}
}Replace the URL and token with your own values, then restart or reconnect your harness. Create a token in TestMonitor under My Account → API → Create token. Keep your configuration private or use your harness's secret-management mechanism. Set TESTMONITOR_READ_ONLY to true if you only need read access.
On launch, npx downloads the specified GitHub revision and installs its dependencies into npm's local cache when needed, then starts testmonitor-mcp. The harness communicates with that process over stdio, and the process calls your TestMonitor API. --yes allows package installation without an interactive prompt. The public repository alone does not automatically register or launch the server. See npm exec / npx documentation.
If the harness cannot find npx, use its full executable path (which npx on macOS/Linux or where npx on Windows). Windows harnesses may require npx.cmd or their documented command-shell wrapper.
The example uses #main, which follows a moving branch. For repeatable startup, replace main with a reviewed commit's full SHA from this repository. npm caching means you should not assume every launch fetches the latest code. This repository does not need to be published to npm for the GitHub package command to work.
Alternative: launch an installed copy with node
Complete Local installation above and configure the harness to launch your installed copy:
{
"mcpServers": {
"testmonitor": {
"command": "node",
"args": [
"--env-file=/absolute/path/to/testmonitor-mcp/.env",
"/absolute/path/to/testmonitor-mcp/src/index.js"
]
}
}
}Replace both placeholders with actual absolute paths. For Windows JSON, use escaped backslashes, such as C:\\Users\\you\\testmonitor-mcp\\src\\index.js. If your client cannot find Node, use its absolute executable path. Clients with a different configuration format need the same command and arguments. Restart or reconnect after changing settings. This option runs the local checkout; update it explicitly with git pull --ff-only followed by npm ci.
npx versus node
Command | Package setup | What runs |
| Downloads the specified package and installs dependencies when needed; can reuse npm's cache | The package's |
| You clone/download the project and install dependencies first | The local |
Both start the same Node.js MCP server. Choose npx for configuration-based installation or node for a local checkout you manage yourself. This project implements stdio only; a harness that accepts only remote MCP URLs needs a separately configured transport or gateway. The GitHub URL is not an MCP endpoint.
Try the connection
Suggested agent requests:
“List my TestMonitor projects.”
“Find login test cases in project 7.”
“Create a test case for a failed login in project 7.”
“List result statuses, then record the outcome for test case 42 in run 5.”
Tool arguments
Each tool publishes its JSON Schema to the agent. Arguments are grouped into path, query, and body; only applicable groups are present. Operation names follow the upstream operation IDs in snake_case. The upstream GetTestRuneCollection typo is exposed as get_test_run_collection.
List test cases:
{
"name": "get_test_case_collection",
"arguments": {
"query": {
"project_id": 7,
"query": "login",
"limit": 25,
"page": 1,
"order": "-name",
"filter": { "draft": false },
"with": ["requirements", "risks"]
}
}
}Create a test case:
{
"name": "post_test_case",
"arguments": {
"body": {
"project_id": 7,
"name": "Valid login",
"instructions": ["Open the login page", "Enter valid credentials", "Submit"],
"expected_result": "The dashboard is displayed"
}
}
}Record a result (look up the actual status ID with get_test_result_states_collection first):
{
"name": "post_test_result",
"arguments": {
"body": {
"test_case_id": 42,
"test_run_id": 5,
"draft": false,
"test_result_status_id": 2,
"description": "Dashboard displayed as expected."
}
}
}Upload an attachment using post_test_case_attachment, post_issue_attachment, or post_test_result_attachment. The file is supplied as { "filename": "note.txt", "base64": "aGVsbG8=", "mimeType": "text/plain" } in body.file, with the entity ID in path. Files are limited to 14 million base64 characters (approximately 10 MiB). The server does not read local files. Result create/update tools use JSON; add attachments separately after obtaining the result ID.
Behavior and configuration
Environment variable | Purpose |
| Required HTTPS instance URL, optionally ending in |
| Required Personal Access Token |
|
|
| Request timeout, default |
| Optional comma-separated exact tool names; unknown names fail startup |
Use the tool allowlist to reduce the catalog for agents with tool-count limits, for example:
TESTMONITOR_TOOLS=get_project_collection,get_test_case_collection,post_test_case,get_test_run_collection,get_test_result_states_collection,post_test_resultTool responses contain
{ status, ok, data }and optionallyretryAfter. HTTP failures set MCPisError: true. TestMonitor validation details are retained.Collections return one page with the original
data,links, andmetaenvelope. Request subsequent pages explicitly withquery.page. The API's documented limit is 5–100, with a default of 15.Filters use bracket notation, nested custom-field filters are supported, and array filters use the JSON-array form documented in the introduction. Relations use comma-separated values. Descending sort values are added to upstream enums because the introduction explicitly documents them.
Requests use Bearer authentication, HTTPS, a fixed configured origin, redirect rejection, cancellation, and a timeout. Responses are capped at 10 MiB.
Failed requests are not retried automatically, avoiding duplicate writes. Inspect errors before deciding whether another attempt is appropriate; timed-out writes may have succeeded remotely.
Writes, deletes, comments, user administration, and webhooks operate on the live instance. MCP annotations identify mutations; they are hints for the agent, not an approval system. Use TestMonitor account permissions, read-only mode, and an allowlist to constrain access.
Schemas preserve upstream validation and incomplete definitions. The API remains authoritative for business rules and fields whose types are underspecified. Deprecated endpoints remain available and are identified in their descriptions.
Development and validation
npm run generate
npm run check
npm testThe tests use the MCP client over in-memory transport and a real stdio child process, with mocked HTTP responses. They cover tool discovery, schema validation, JSON writes, batch requests, pagination/filter encoding, multipart uploads, access restrictions, and errors. They do not access a live TestMonitor instance.
The checked-in spec/openapi.yaml is the official version 8.3.1 specification retrieved on 2026-09-06 from docs.testmonitor.com/openapi.yaml. It is kept for reproducible generation and retains its upstream license metadata. The upstream license name and URL disagree; this project does not reinterpret them. To update, replace that file with a reviewed upstream specification, run npm run generate, review the generated changes, and run tests. Runtime startup never downloads documentation.
Source layout: scripts/generate.js builds the catalog; src/client.js handles HTTP; src/server.js validates and dispatches MCP tools; src/index.js starts stdio transport. src/operations.json and TOOLS.md are generated files.
Available Tools
173 toolsarchive_projectBDestructive
Archive a project. Archive a project using its unique identifier. Archived projects are read-only and no longer appear in the project overview.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so the mutation profile is covered. The description adds genuinely useful post-state context: archived projects become read-only and are removed from the project overview. It does not mention reversibility (that unarchive_project exists) or permission requirements, but the added behavioral detail is meaningful.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first two sentences are near-duplicates ('Archive a project.' / 'Archive a project using its unique identifier.'), which wastes space. The substantive effect statement is last rather than front-loaded, so structure is adequate but not tight.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter mutation with full annotation coverage and no output schema, the description covers the essential outcome of the call. The main missing piece is recoverability (that unarchive_project can reverse it) and whether archiving cascades to child entities.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is reported as 0%, but the only parameter is a nested path.projectId whose schema description ('The project identifier.') is self-evident. The description's 'using its unique identifier' adds little beyond the schema and gives no format or ID-source hints, so it neither compensates nor misleads.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (archive) and resource (project), and the effect is clear. It does not explicitly name sibling alternatives like unarchive_project or delete_project, so an agent must infer the distinction from the name alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance is given: nothing explains when archiving is preferable to deleting, or when unarchive_project applies. The description only says what archiving does, not when an agent should choose this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
archive_userBDestructive
Archive a user. Archive a user using its unique identifier.
Archived users can no longer sign in or be assigned to projects and test runs, but their historical data is preserved.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, readOnlyHint=false, idempotentHint=false and openWorldHint=true, so the safety profile is covered. The description adds genuinely new behavioral context the annotations cannot express: archived users cannot sign in or be assigned to projects/test runs, and historical data is retained. It stops short of stating whether the action is reversible or what permissions are required.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first two sentences are near-duplicates ('Archive a user. Archive a user using its unique identifier.'), which is wasted space in a short description. The third sentence is the only one that earns its place, so structure is adequate but not front-loaded efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter mutation where annotations carry the destructive/idempotency profile and no output schema exists, the description covers the essential effect and data-retention consequence. It omits permission requirements and reversibility, which keeps it just short of complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter, and the schema already describes it as 'The user identifier.' The description's phrase 'using its unique identifier' restates that without adding format, scope, or lookup detail. With no enrichment beyond the schema, this sits at the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (archive) and resource (user), and names the identifier as the targeting mechanism. However, it offers no differentiation from adjacent lifecycle siblings such as delete_user, put_user, or make_admin_user, so an agent must infer that this is a soft/state-changing operation rather than a removal.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use or when-not-to-use guidance is given. The description never tells the agent how this differs from delete_user or what precondition (e.g. user must be active, admin privileges) applies before archiving.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clone_test_runBDestructive
Clone a test run. Create a copy of an existing test run using its unique identifier.
The cloned test run optionally includes the same test cases and user assignments, allowing you to quickly set up a new test run with similar configurations.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | ||
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the write/destructive/idempotent profile, and the description adds useful context that the clone optionally carries over test cases and user assignments. However, it never explains the destructiveHint=true, permission requirements, or what happens to pre-existing data, so it adds only partial behavioral detail beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the action verb and kept to three short sentences. The second sentence partially restates the first ('Clone' vs 'Create a copy'), a minor redundancy but not enough to hurt usability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with a nested body and no output schema, the description covers the clone concept but omits return behavior, error/precondition handling, and most body parameters. Adequate but with clear gaps given the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description clarifies that the source is identified by its unique identifier (path.testRunId) and that copied test cases and user assignments are optional, which loosely maps to the copy_test_cases and copy_users flags. It does not clarify the remaining body fields (draft, repeat, priority, dates, milestone/environment ids), so it only partially compensates for the sparse coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (clone/create a copy) and resource (test run) and identifies the identifier that drives it. It is clearly distinguishable from get/put/delete siblings, though it does not explicitly name how it differs from post_test_run.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use guidance or named alternative. The agent is left to infer that this is the right choice whenever a copy of an existing run is wanted rather than creating one from scratch via post_test_run.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
close_test_runBDestructive
Close a test run. Close a test run using its unique identifier, marking it as completed. Closed test runs can be reopened if further testing is needed.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=false and openWorldHint=true, so the safety profile is largely covered. The description adds one genuinely useful behavioral fact not in annotations — that closing is reversible via reopen — but omits valid source states, required permissions, and any 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the action, and the reopening caveat is placed last where it belongs. Slightly repetitive opening ('Close a test run. Close a test run using its unique identifier') costs it a point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With annotations present and no output schema, the description covers the action and its reversibility, but for a destructive state mutation it should say which run states are closable and what happens to in-progress results. The nested single-parameter shape is simple enough that this is only a moderate gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% at the top level, but the description compensates partially by saying the run is identified by 'its unique identifier.' The nested path/testRunId structure and its integer type are left to the schema, so this is adequate but not enriching.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb+resource: 'Close a test run ... marking it as completed.' It clarifies the resulting state, which is more than a restatement of the name. It doesn't explicitly name the sibling open_test_run, though the reopening note gestures at it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the note that closed runs can be reopened 'if further testing is needed,' which hints at when to close versus reopen. There is no explicit when-to-use statement, no prerequisites (e.g., which run states can be closed), and open_test_run is never named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_applicationBDestructive
Delete an application. Delete an application using its unique identifier. Deleted applications are moved to the trash and can be restored later if needed.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, readOnlyHint=false, and idempotentHint=false, so the safety profile is covered. The description adds genuinely new behavioral context beyond annotations: deletions are soft and moved to the trash, meaning the record can be restored later. That is meaningful disclosure for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first two sentences are redundant ('Delete an application. Delete an application using its unique identifier.'). The recoverability detail at the end earns its place, but the opening restates the name rather than front-loading the unique soft-delete behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter destructive tool with rich annotations and no output schema, the description is largely complete: it conveys the action, the identifier requirement, and the soft-delete/restore behavior. It leaves minor gaps around permissions and idempotency, but the annotations carry those.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is one nested parameter (path.applicationId) with a low schema description coverage. The description compensates partially by stating the identifier is unique to the application, but it does not clarify the nesting/path structure or the identifier format beyond what the schema implies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Delete an application') and adds that a unique identifier is required, which is clear. It implies the soft-delete nature that distinguishes it from a hard delete, but never explicitly names the sibling restore_application, so sibling differentiation is only partial.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this tool versus restore_application, post_batch_delete_applications, or put_application. The note that deletions can be restored hints at reversibility but is not framed as usage guidance or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_folderADestructive
Delete a folder. Delete a test case folder using its unique identifier. Deleted folders are moved to the trash and can be restored later if needed.
When you delete a folder, all test cases and subfolders within that folder are also moved to the trash.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and openWorldHint=true, so the base safety profile is known. The description adds genuinely useful behavior beyond annotations: deletion is soft (moved to trash, restorable) and cascades to all test cases and subfolders, which is the key risk an agent needs. Idempotency is not clarified.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the action, then the scope, then the two behavioral facts. Slightly repetitive ('Delete a folder' immediately followed by the more specific restatement), but no substantive waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive, cascading delete with no output schema and no real parameter documentation, the description covers the most important behavioral facts but omits permissions required, whether the cascade is recoverable as a unit, and the exact identifier 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the nested object's property is barely described ('The test case folder identifier'). The description says 'using its unique identifier', which adds little beyond the property name testCaseFolderId. It does not explain the nested path.testCaseFolderId structure, so it only partially compensates for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Delete a folder') and then scopes it precisely to 'a test case folder using its unique identifier', which distinguishes it from the many sibling delete_* tools for issues, risks, teams, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance, and no mention of the sibling restore_folder as the recovery path even though restoration is described. Usage is implied by the verb but not routed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_issueBDestructive
Delete an issue. Delete an issue using its unique identifier. Deleted issues are moved to the trash and can be restored later if needed.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, readOnlyHint=false, and idempotentHint=false, so the safety profile is covered. The description adds a genuinely useful detail beyond annotations: deletion is soft and recoverable via trash, which tempers the destructive hint. It stops short of describing child-item effects, permissions, or permanence.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Sentence one and sentence two restate the same action ('Delete an issue. Delete an issue using its unique identifier.'), which is wasted space. The third sentence earns its place by disclosing the trash/restore behavior, and the action is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter delete with no output schema, the description covers the essential outcome (soft delete with restore possibility) and the annotations cover the safety profile. Missing only edge-case context such as effects on linked items or required permissions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
One required parameter; the schema already carries a description ('The issue identifier.') even though the reported coverage is 0%. The description's 'using its unique identifier' is consistent but adds no syntax or format detail, and the nested path wrapper is not explained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Delete an issue') with the identifier-based invocation. It does not explicitly name siblings like restore_issue or post_batch_delete_issues, so the agent must infer the soft-delete relationship from the phrase 'moved to the trash'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use, when-not-to-use, or alternative tooling is stated. The presence of post_batch_delete_issues for bulk deletion and restore_issue for recovery is never mentioned, leaving the agent without routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_issue_attachmentCDestructive
Delete an attachment from an issue. Delete an attachment from an issue using its unique identifier.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=false and readOnlyHint=false, so the safety profile is covered structurally. The description adds nothing beyond that: it does not state whether deletion is permanent, whether any restore path exists (unlike delete_issue, which has restore_issue), or what permissions are required. 'using its unique identifier' is schema restatement, not behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences where the second is a near-verbatim repeat of the first; the redundancy wastes space rather than adding value. The core intent is front-loaded, but the duplicated sentence should have carried new information (constraints, permanence, ordering) instead.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive, non-idempotent mutation with a nested two-field identifier and no output schema, the description omits the information an agent most needs: permanence of deletion, required privileges, and the error/return behavior when the attachment or issue does not exist. Neither the schema nor any structured field covers these, so the description leaves a real gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% at the parameter level, and the only parameter is a nested object with two required fields. The description says 'its unique identifier' singular, which does not clarify that both an issueId and an attachmentId must be supplied nor how they relate. It fails to compensate for the documentation gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource (delete an attachment from an issue), so the operation is identifiable. However, the second sentence merely restates the first with no added information, and there is no differentiation from near-identical siblings such as delete_test_case_attachment or delete_test_result_attachment.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool, what prerequisites exist, or how it relates to the attachment siblings (get_issue_attachments, post_issue_attachment, and the parallel test-case/test-result attachment deleters). Usage is left entirely to inference 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_issue_taskCDestructive
Delete a task. Delete a task using its unique identifier.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, readOnlyHint=false, and idempotentHint=false, so the agent knows this is a destructive, non-idempotent operation. The description adds nothing beyond this, such as whether the deletion is permanent, whether it cascades to related test results, or what permissions are required. With annotations covering the basic safety profile, the description should still provide additional behavioral context, which it fails to do.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description consists of two sentences that convey the same information, with the second being a redundant restatement of the first. This is not concise; it wastes space on repetition rather than providing useful details. The structure is not front-loaded with any additional context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (nested object parameters, no output schema, destructive operation), the description is inadequate. It omits critical details such as the required parameters (issueId and taskId), the scope of deletion, and any behavioral caveats. With no output schema and 0% schema description coverage, the description should carry more burden but does not.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning the schema itself provides no descriptions for the nested 'path' object or its 'issueId' and 'taskId' properties. The description only says 'using its unique identifier,' which is vague and does not compensate for the missing parameter documentation. The agent cannot determine from the description alone that two parameters (issueId and taskId) are required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb+resource ('Delete a task'), but the second sentence merely restates the first. It does not differentiate from siblings like delete_issue (which deletes an issue, not a task) or delete_issue_test_result, leaving the agent to infer the distinction from the name alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description does not mention that this deletes a task within an issue, nor does it clarify its relationship to other deletion tools such as delete_issue or delete_issue_attachment. There is no when-to-use or when-not-to-use information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_issue_test_resultCDestructive
Unlink a test result from an issue. Unlink a test result from an issue using its unique identifier.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=false and openWorldHint=true. The word 'unlink' adds some value by implying the test result entity itself survives and only the association is removed, which tempers the destructive hint. However, nothing is said about reversibility, auth requirements, or behavior on a non-existent link.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The second sentence restates the first with no added information ('using its unique identifier' adds nothing meaningful). Half the text is redundant padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive, non-idempotent mutation with an undocumented nested parameter object and no output schema, the description is too thin. It leaves unanswered what a failed unlink looks like, whether the operation is reversible, and which id maps to which argument.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is reported at 0% for the top-level 'path' object; the description only says 'using its unique identifier' (singular), which does not clarify that two nested identifiers, issueId and testResultId, are required. The description 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.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: 'Unlink a test result from an issue.' This distinguishes it from siblings such as delete_test_result or get_issue_test_results, since it removes an association rather than an entity. No explicit sibling naming, but the operation is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites, no alternatives named. An agent gets no signal about when unlinking is appropriate versus using post_issue_test_results or get_issue_test_results, nor what happens if the link does not exist.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_milestoneBDestructive
Delete a milestone. Delete a milestone using its unique identifier. Deleted milestones are moved to the trash and can be restored later if needed.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=false. The description adds useful behavioral context beyond the annotations by disclosing that deleted milestones are moved to the trash and can be restored later, clarifying the soft-delete behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loads the operation, but the first two sentences are redundant: 'Delete a milestone. Delete a milestone using its unique identifier.' The third sentence adds new value, so structure is adequate but not maximally concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter delete tool with annotations covering safety and no output schema, the description is mostly complete. It explains soft deletion and recovery, though it could clarify the identifier's format or expected scope.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is reported as 0%, so the description should compensate. It says deletion uses the milestone's 'unique identifier,' which maps to the milestoneId parameter, but adds no format, type, or path details beyond what the schema property already names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Delete a milestone.' It clearly identifies the operation, but it does not distinguish this tool from sibling alternatives like post_batch_delete_milestones or restore_milestone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no explicit guidance on when to use this tool versus alternatives such as restoring or batch-deleting milestones. It implies deletion is recoverable, but provides no conditions or exclusions for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_requirementBDestructive
Delete a requirement. Delete a requirement using its unique identifier. Deleted requirements are moved to the trash and can be restored later if needed.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this destructive and non-idempotent, but the description adds the key behavioral fact they do not carry: the delete is soft, moving the item to trash with later restoration possible. It does not mention permissions or cascade effects, keeping it from a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences where two would do — the first two are near-duplicates ('Delete a requirement. Delete a requirement using its unique identifier.'), which wastes the front-loaded position that should carry the soft-delete information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter mutation with no output schema, the description covers the essential reversibility fact but leaves gaps on identifier format, permissions, and how this relates to the batch-delete and restore siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the argument is a nested object (path.requirementId), which the description does not explain. Saying deletion is 'using its unique identifier' adds only marginal value over the parameter's own 'The requirement identifier.' text and does not clarify the path wrapper or accepted id form.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (delete) and resource (requirement) with the identifier-based scope. It implies differentiation from restore_requirement by noting items go to trash and can be restored, but never names the sibling, so an agent must infer the routing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied rather than stated: soft-delete semantics ('moved to the trash') suggest this is the single-item, reversible deletion path, but the description never says when to prefer this over post_batch_delete_requirements or restore_requirement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_riskADestructive
Delete a risk. Delete a risk using its unique identifier. Deleted risks are moved to the trash and can be restored later if needed.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so the safety profile is covered. The description adds valuable behavioral context beyond annotations: deleted risks are moved to the trash and can be restored later, indicating a non-permanent soft delete. It does not mention permissions or edge cases, but the key reversibility trait is disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core action and appropriately sized. However, the first two sentences are redundant—'Delete a risk. Delete a risk using its unique identifier.'—which slightly weakens conciseness, though the third sentence earns its place by describing the trash/restore behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-risk deletion tool with rich annotations and no output schema, the description is nearly complete: it covers the action, identifier use, and post-deletion behavior. The main gap is parameter-level detail about the nested path object, but the schema itself supplies this, and annotations already handle the destructive/read-only profile.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has low description coverage (0%) and uses a nested path object, so the description must compensate. It only says 'using its unique identifier' without naming riskId, explaining the nested path structure, or clarifying the integer type. This adds little beyond what the schema already conveys, and the unusual nesting is left unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: deleting a risk by its unique identifier. It also clarifies the scope as a single risk, which distinguishes it from batch deletion tools like post_batch_delete_risks. The purpose is immediately clear without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage through 'using its unique identifier' and notes that deleted risks can be restored later, which hints at soft deletion. However, it does not explicitly state when to use this tool versus alternatives such as post_batch_delete_risks or restore_risk, leaving that inference to the agent's understanding of sibling names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_teamBDestructive
Delete a team. Delete a team using its unique identifier. Deleted teams are moved to the trash and can be restored later if needed.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=false, but the description adds genuinely useful behavioral context beyond them: this is a soft delete that moves the team to trash and can be restored. That 'reversible delete' detail is exactly what an agent needs and is not captured by the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded and short, but the first two sentences restate each other ('Delete a team.' / 'Delete a team using its unique identifier.'), wasting a sentence on redundancy rather than adding information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive delete with no output schema, the reveal that deletion is soft and reversible is important and present. However, the unaddressed `with` parameter and the absence of any side-effect or permission detail leave the definition only minimally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is reported at 0% despite 2 parameters. The description hints at 'its unique identifier' (mapping loosely to teamId) but says nothing about the `with` relation-inclusion parameter, so it does not compensate for the schema's gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Delete a team') and clarifies it operates on a unique identifier. It does not differentiate from close siblings like post_batch_delete_teams or delete_team_member, but the core purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus restore_team, post_batch_delete_teams (batch alternative), or delete_team_member. The description only notes that deletion is reversible, without routing the agent to related tools or stating prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_team_memberCDestructive
Remove a member from a team. Remove a member from a team using the team and user identifiers.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, readOnlyHint=false, idempotentHint=false, and openWorldHint=true, so the safety profile is covered structurally. The description adds nothing beyond 'remove' — no note on whether removal is reversible, whether re-adding is possible, what permissions are needed, or what happens to the member's assignments.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences where one would do; the second is a near-verbatim restatement of the first. The purpose is front-loaded, but roughly half the text is redundant padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive, non-idempotent mutation with no output schema, the description should at minimum say what operation it performs against team membership and whether the action can be undone. It supplies no behavioral or eligibility context, leaving the agent to infer everything from the name.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the schema is a single nested object, but both teamId and userId carry inline descriptions with the same wording as the description. The phrase 'using the team and user identifiers' confirms the two required keys but adds no format, type, or lookup guidance beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: 'Remove a member from a team.' An agent can distinguish it from get_team_members and post_team_members, and from delete_team. However, the second sentence merely restates the first with the identifier names and adds no distinguishing scope, so it falls short of 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites, and no mention of alternatives such as delete_team (removes the whole team) or post_team_members (the inverse operation). Usage is only implied by the verb.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_test_caseBDestructive
Delete a test case. Delete a test case using its unique identifier. Deleted test cases are moved to the trash and can be restored later if needed.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, readOnlyHint=false and idempotentHint=false, so the safety profile is covered. The description adds genuinely new behavior beyond them: deletion is a soft delete (moved to trash) and is reversible. It does not mention permission requirements or side effects on linked test runs/results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first two sentences say the same thing twice ('Delete a test case. Delete a test case using its unique identifier.'), wasting a sentence. The third sentence carries the only new information, so the structure is front-loaded but partially redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter destructive tool with no output schema, the description covers what an agent most needs: the identifier to supply and the recoverable nature of the deletion. Missing only scope-of-impact details (permissions, effect on linked runs) and sibling routing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter, and the schema already carries a description for testCaseId ('The test case identifier'). The description's 'using its unique identifier' restates that rather than adding format, type, or lookup guidance, so it neither compensates for the low coverage metric nor adds meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (delete) and resource (test case), and specifies the deletion key ('using its unique identifier'). It does not differentiate itself from the adjacent bulk/restore siblings such as post_batch_delete_test_cases or restore_test_case, but the core purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use guidance or routing to alternatives. The mention that cases 'can be restored later' implicitly points at restore_test_case, but the tool is never named and no condition is given for choosing single vs. batch delete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_test_case_attachmentBDestructive
Delete an attachment from a test case. Delete a specific attachment from a test case using both the test case identifier and the attachment identifier. This permanently removes the file from the test case.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=false, so the mutation semantics are known. The description adds useful specifics beyond that: it clarifies that this permanently removes the file and that both IDs are needed, though it says nothing about auth needs, cascading effects, or recoverability.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences that restate the same action twice ('Delete an attachment from a test case' then 'Delete a specific attachment from a test case...'), which is mildly redundant. It is front-loaded and short overall, but one sentence could have been cut.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive tool with annotations covering the safety profile and no output schema, the description covers the essentials: what is deleted, the identifiers required, and that removal is permanent. Only authorization and cascade behavior are left unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is reported at 0%, so the description must carry parameter meaning; it does state that both the test case identifier and attachment identifier are required, which corresponds to the two nested fields. However, it adds no format, type, or constraint detail beyond what the nested schema properties already say.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Delete) and resource (attachment from a test case) with the scope clarified as a single attachment identified by both test case and attachment IDs. This clearly distinguishes it from sibling delete_*_attachment tools, though it never names the alternatives explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description only says what it does, not when to use it versus the many sibling attachment tools (delete_issue_attachment, delete_test_result_attachment). No prerequisites, no conditions, no 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_test_environmentBDestructive
Delete an environment. Delete a test environment using its unique identifier. This action is permanent and cannot be undone.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, readOnlyHint=false, idempotentHint=false, and openWorldHint=true. The description adds that the action is permanent and cannot be undone, which is useful context beyond annotations. However, it doesn't disclose whether the delete is soft or hard, what happens to associated data, or any required permissions. With annotations covering the behavioral profile, this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences: 'Delete an environment. Delete a test environment using its unique identifier. This action is permanent and cannot be undone.' The first sentence is redundant with the second, and the core action is repeated. It is not optimally concise; the first sentence could be removed without loss.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive mutation tool with no output schema and 0% schema description coverage, the description should do more. It doesn't explain the parameter's expected format beyond 'unique identifier', doesn't mention any side effects on related resources, and doesn't clarify error conditions. While it states permanence, other critical details are missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for the single nested parameter testEnvironmentId. The description mentions 'using its unique identifier' but does not specify the parameter name, type, or format. It fails to compensate for the lack of schema descriptions. Baseline for 0 params is 4, but here there is 1 param with no documentation; the description adds minimal value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: 'Delete a test environment using its unique identifier.' This is clear and distinct from siblings like put_test_environment or get_test_environment. However, it doesn't explicitly differentiate from other delete tools, though the resource name makes it obvious.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage by stating the action is permanent and cannot be undone, which signals caution. However, there is no explicit guidance on when to use this tool vs alternatives like put_test_environment or when deletion is appropriate. No alternatives or prerequisites mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_test_result_attachmentCDestructive
Delete an attachment from a test result. Delete an attachment from a test result using its unique identifier.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, readOnlyHint=false, idempotentHint=false. The description adds nothing beyond the name: no mention of whether the file is permanently removed, whether it can be restored, auth requirements, or effects on the test result. With strong annotations covering the safety profile, the description should still add operational context, which it fails to do.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two near-identical sentences that repeat the same information verbatim. This is redundant, not concise, and wastes tokens without adding new meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a destructive mutation with nested parameters, no output schema, and zero schema description coverage, the description is inadequate: no return info, no error conditions, no nested parameter explanation. It doesn't provide enough for an agent to call the tool confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% – neither the outer 'path' object nor its nested properties are described in the schema. The description says 'using its unique identifier' but does not explain the nested structure (testResultId + attachmentId) or how they combine. The description is insufficient to compensate for the zero-coverage schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Delete an attachment from a test result') and specifies the identifier mechanism. Distinguishable from siblings like delete_issue_attachment or delete_test_case_attachment by naming the test result context, though it doesn't explicitly call out that distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites, no mention of alternatives like delete_test_case_attachment or delete_issue_attachment. The agent must infer this is for attaachments on test results specifically.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_test_runBDestructive
Delete a test run. Delete a test run using its unique identifier. Deleted test runs are moved to the trash and can be restored later if needed.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructive=true, readOnly=false and non-idempotent, but the description adds a genuinely useful trait beyond them: the delete is a soft delete that moves the run to the trash and is restorable. It does not cover permissions or side effects on related test results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The second sentence ('Delete a test run using its unique identifier.') largely repeats the first verb+resource statement, wasting space. The third sentence (trash/restore) carries the real value and should have been front-loaded with the rest.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter destructive delete with annotations covering the safety profile, the description supplies the key missing behavior (soft delete + restore path). It would be complete with a pointer to restore_test_run for recovery, but nothing essential blocks correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the single parameter is nested (path.testRunId), so the schema does not explain the wrapper. The description only says 'using its unique identifier', which confirms the id is required but adds no format or source details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Delete a test run') and clarifies the identifier-based target. It does not name the closely related sibling restore_test_run or post_batch_delete_test_runs, so an agent must infer the boundary from the sibling list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use or when-not-to-use guidance and no named alternative, even though restore_test_run and post_batch_delete_test_runs exist as obvious siblings. The soft-delete note implies recoverability but is not framed as usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_userADestructive
Delete a user. Permanently delete a user using its unique identifier. This action cannot be undone.
Consider archiving the user instead if you want to retain their data and history.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=false, so the safety profile is covered; the description adds the crucial consequence 'This action cannot be undone' and the data-retention tradeoff. It does not disclose side effects on related entities, required permissions, or whether the user must be inactive first.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the action and the irreversibility warning before the alternative. Minor redundancy between 'Delete a user' and 'Permanently delete a user using its unique identifier' keeps it from a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive one-parameter tool with no output schema, the description covers the essential facts: permanence, identifier-based targeting, and the archive alternative. Remaining gaps (cascading effects, permission requirements) are secondary but real for a delete operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is one parameter (a nested path.userId) and schema description coverage is reported as 0%, so the description carries the burden; 'using its unique identifier' loosely maps to userId but adds no format or type detail. That is the minimum viable compensation for a single-parameter schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Delete a user') and immediately qualifies the scope with 'Permanently' and 'using its unique identifier'. It also carves out territory against the archive_user sibling by noting that archiving is a different, non-destructive option.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit when-to-use (permanent deletion) and when-not (if you want to retain data and history, archive instead), which is real routing guidance. It stops short of naming the sibling tool (archive_user) directly, so the agent must map 'archiving' to the actual tool itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_webhookBDestructive
Delete a webhook. Delete a webhook using its unique identifier. This action is permanent and cannot be undone.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=false, so the safety profile is covered. The description adds a genuinely useful nuance beyond that: the deletion is 'permanent and cannot be undone', which matters because many sibling resources have restore_* tools but no webhook restore exists. It still omits auth requirements and any cascade effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first two sentences are near-verbatim restatements of each other ('Delete a webhook. Delete a webhook using its unique identifier.'), wasting a third of the text. The permanent-deletion warning is the only sentence that earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter delete with annotations covering safety and no output schema, the definition is minimally adequate: purpose plus irreversibility are stated. It leaves gaps around permissions/scope and whether anything referencing the webhook is affected.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the single parameter is a nested object (path.webhookId), so the description carries some burden. Saying deletion happens 'using its unique identifier' correctly signals that the parameter is the webhook's ID, which maps to webhookId, but it adds no format or type detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb and resource ('Delete a webhook'), which is enough to distinguish it from sibling mutators like delete_application or delete_issue. However, the second sentence only restates the same act, and nothing differentiates it from the sibling webhook tools (get_webhook, put_webhook, post_webhook).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no exclusions, and no mention of the alternative webhook tools (get_webhook, put_webhook, get_webhook_collection) that an agent should consider first. The only hint is the word 'unique identifier', not routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_applicationBRead-onlyIdempotent
Get a specific application. Retrieve a specific application using its unique identifier. Use the relations parameter to include associated data in a single request.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and open-world behavior, so the safety profile is covered without the description. The description adds only the relations-inclusion behavior, and even that is a thin restatement of the schema's 'with' parameter.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences where the first two say effectively the same thing ('Get a specific application' / 'Retrieve a specific application using its unique identifier'), so there is redundancy. The relations hint is the only sentence that earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-resource read with annotations covering the safety profile and no output schema, the description is adequate but incomplete: it never clarifies the nested path object or reconciles 'relations' with the 'with' parameter, leaving an agent to infer both from the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is reported as 0%, so the description must carry the burden, yet it only gestures at a 'relations parameter' while the actual parameter is named 'with' — a naming mismatch that could confuse the agent. It does not explain the nested path/applicationId structure at all.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get a specific application') and clarifies it operates on a unique identifier, which distinguishes it from get_application_collection and get_application_versions. However, it does not explicitly contrast itself with those siblings, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives one piece of actionable guidance: use the relations parameter to fetch associated data in a single request. But it offers no when-not conditions and does not mention the sibling tools (get_application_collection, put_application) an agent might otherwise reach for.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_application_collectionCRead-onlyIdempotent
Get all applications. Retrieve all applications.
Apply sorting and pagination to organize the results. Include related data using the relations parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive and openWorldHint, so the safety profile is fully covered. The description adds no behavioral context beyond that — no pagination defaults, no maximum page size behavior, no indication of what an empty result means.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first two sentences are duplicate statements of the same fact, and the third and fourth sentences restate what the schema already documents. Structure is not front-loaded with anything an agent cannot infer, and half the text is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With nested parameters, a search field, and a large family of sibling tools, the description omits default page size, ordering behavior when unspecified, and the relationship to get_application. It is not sufficient for an agent to call this confidently without opening the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Top-level schema description coverage is 0% (the single `query` object is undocumented at that level), but the nested properties carry rich descriptions and enums for page, limit, order, with, and query. The description only echoes sorting/pagination/relations at a high level without adding syntax or constraints, so it neither compensates nor detracts much.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Get all applications" states a verb and resource, but the second sentence ("Retrieve all applications") is a pure restatement that adds nothing. It never distinguishes itself from the sibling get_application (single resource), leaving the collection-vs-single distinction implicit in the name alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this collection endpoint versus get_application, get_my_project_collection, or any filtered alternative. The remaining sentences describe what parameters do, not when to reach for this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_application_versionsCRead-onlyIdempotent
Get all versions for an application. Retrieve all versions for an application using its unique identifier.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the safety profile is covered without the description. The description adds nothing beyond that—no pagination behavior, no result ordering, no note on whether all versions are returned unpaged, which matters for a 'get all' tool on an open-world resource.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences convey one idea; the second is a rephrase of the first with no new information ('using its unique identifier' is the only marginal addition). The definition wastes half its length on redundancy rather than front-loading useful detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, nested object parameters at 0% description coverage, and an open-world read that may page or truncate, the description should explain return shape or listing behavior. It omits all of this, leaving an agent unable to predict what it will receive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for the single nested parameter (applicationId inside path). The description says only 'using its unique identifier,' which hints at the identifier but gives no type, format, or sourcing guidance for the nested path object. This barely compensates for the complete absence of schema-level documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('Get') and resource ('all versions for an application'), so an agent can tell this is a read of an application's version list. However, it does not differentiate from the sibling get_versions_collection, and the second sentence merely restates the first with different words rather than adding scope or distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as get_versions_collection or get_application. No prerequisites, no context cues, and no exclusions are provided; 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.
get_custom_field_collectionBRead-onlyIdempotent
Get all custom fields. Retrieve all custom fields for a project. Use the model parameter to filter custom fields by resource type (i.e., requirements, risks, test cases, test runs, or issues).
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description adds no behavioral context beyond that — it does not mention pagination behavior (page/limit exist in the schema) or result size limits, leaving the extra-burden partially unmet.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences where the first two are near-duplicates ('Get all custom fields' / 'Retrieve all custom fields for a project'), wasting space before the genuinely useful model-filter sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only paginated collection endpoint the description covers the main filter but omits pagination, default ordering, and scope caveats. It is minimally viable rather than complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is reported as 0%, so the schema is not doing the explanatory work. The description does explain the model parameter's meaning and lists the resource types, but says nothing about project_id, page, or limit, so it only partially compensates.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb+resource: retrieve all custom fields for a project, and notes the model dimension. It is clear what the tool returns, though it does not explicitly contrast itself with any sibling (no other custom-field tool exists in the sibling list, so differentiation is less critical).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It tells the agent to use the model parameter to filter by resource type, which implies the filtering use case, but it never states when to reach for this tool versus other collection endpoints, nor any prerequisites such as required project access.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_folderBRead-onlyIdempotent
Get a specific folder. Retrieve a specific test case folder using its unique identifier. This endpoint returns all details of the folder, including its name, description, and parent folder.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered without the description's help. The description adds some value by enumerating returned fields (name, description, parent folder), but says nothing about authorization needs or behavior when the folder is missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences where two would suffice: 'Get a specific folder' largely restates the tool name and is immediately re-explained by the second sentence. The return-value sentence is the only one carrying new information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully enumerates the returned fields (name, description, parent folder), which is the main missing piece an agent would need. Annotations cover safety, so the remaining gap is only the not-found/error behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is reported as 0% at the outer level, though the nested testCaseFolderId property carries a description. The description's 'using its unique identifier' reinforces that the argument is a primary key, but adds no format, type, or sourcing detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get a specific folder', 'test case folder') and clarifies scope as a single-folder retrieval by unique identifier. It does not name or contrast with the obvious sibling get_folders_collection, so it stops short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'using its unique identifier' implies this is the single-item counterpart to a collection listing, which is implicit usage guidance. However, it never explicitly says when to use this versus get_folders_collection, nor mentions prerequisites or failure cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_folders_collectionBRead-onlyIdempotent
Get all folders. Retrieve all test case folders from a project.
Use the parent identifier to filter folders by their parent folder, allowing you to navigate the folder hierarchy level by level.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered structurally. The description adds only the hierarchy-navigation behavior of parent_id; it says nothing about pagination behavior, default page size, or the shape of results, which is modest added value over the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the tool's core action and followed by the useful parent_id navigation note. The opening two clauses ('Get all folders. Retrieve all test case folders from a project.') are mildly redundant but not wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a collection query with a nested 7-field query object (including a rich filter object and a with-relations enum array) and no output schema, the description is far too thin. It does not cover pagination, the relations parameter, or the available filters that an agent would need to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is reported as 0%, so the description must carry parameter meaning, yet it only explains parent_id and gestures vaguely at project scoping ('from a project'). The required project_id, plus page, limit, with, and the entire filter object, are left unaddressed by the prose.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Get all folders. Retrieve all test case folders from a project.' This clearly separates it from the singular get_folder sibling. However, it does not differentiate itself from the many other get_*_collection tools in the sibling list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Use the parent identifier to filter folders by their parent folder, allowing you to navigate the folder hierarchy level by level' gives one concrete usage pattern for hierarchical navigation. But no alternatives are named (e.g., get_folder for a single folder, get_test_suites_collection) and there are no explicit when-not-to-use conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_issueBRead-onlyIdempotent
Get a specific issue. Retrieve a specific issue using its unique identifier. Use the relations parameter to include associated data in a single request.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the agent knows this is a safe, repeatable read. The description adds that associated data can be pulled in a single request via relations, which is a useful behavioral trait (reduced round trips), but it says nothing about not-found errors or response shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the core action. The main flaw is redundancy: sentence one and sentence two both say the same retrieve-one-issue statement, so one sentence is essentially wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool whose annotations cover the safety profile, the description is adequate but thin: it does not address what happens when the issue does not exist, nor what the returned representation contains. No output schema exists, so that gap is not excused by structured data.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is reported as 0%, and the description only partially compensates: it explains the intent of the relations parameter (fetch associated data in one request) but never describes the required 'path.issueId' nesting, nor does it mention the parameter's actual name ('with'), calling it 'relations' instead. Marginal added value over the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get/Retrieve a specific issue') and specifies the lookup key (unique identifier), which distinguishes it from the collection tool get_issue_collection. However, the first two sentences are near-duplicates and it never names a sibling to contrast with, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use guidance and no comparison to alternatives such as get_issue_collection or get_issue_tasks. The only actionable hint is the note about the relations parameter, which is parameter guidance rather than usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_issue_attachmentsCRead-onlyIdempotent
Get all attachments for an issue. Retrieve all attachments for an issue using its unique identifier.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructionHint=false, and openWorldHint=true, so the agent knows this is a safe, repeatable read. The description adds no behavioral detail beyond the annotations – no pagination, auth, result-size, or empty-state notes. With annotations carrying the safety profile, a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences that are essentially duplicates – the second sentence ('Retrieve all attachments for an issue using its unique identifier') paraphrases the first without adding information. Front-loading is fine but the repetition wastes space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read tool with no output schema, the definition is minimally adequate. It lacks any note on return shape, nested path structure, or behavior on empty results, though annotations cover the safety profile.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the single parameter is a nested object (path.issueId) with only 'The issue identifier.' documented in the schema. The description does not compensate by explaining the required wrapping 'path' object or the integer format for issueId, leaving the nesting under-explained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (get/retrieve) and resource (attachments for an issue), clear enough to distinguish from siblings like get_test_case_attachments or get_test_result_attachments. The second sentence merely restates the first, adding no further precision.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no mention of alternatives, and no exclusions. The agent must infer usage purely from the name and the issueId parameter.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_issue_categories_collectionBRead-onlyIdempotent
Get project issue categories. Retrieve all issue categories configured for a project. Issue categories classify issues by their type, such as bug, feature, or test design.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is fully covered by structured data. The description adds the useful domain context that categories are project-level classifications, but says nothing about pagination behavior, result limits, or permissions, which matters for a collection endpoint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded and short, but the first two sentences are near-redundant ('Get project issue categories' / 'Retrieve all issue categories configured for a project'), so one sentence does not earn its place. The third sentence is the only one adding real information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only collection tool with annotations covering safety and no output schema, the description is adequate but incomplete: nothing is said about pagination, total counts, or whether categories come in a fixed/reorderable set. An agent can call it, but with avoidable guesswork.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description never mentions any parameter, even though the schema contains a nested path.projectId plus query.page and query.limit. With the reported schema description coverage at 0%, the description is expected to compensate for the undocumented paging semantics (defaults, max 100 per page) and it does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb ('get/retrieve') and resource ('issue categories configured for a project') and even clarifies the domain concept ('classify issues by their type, such as bug, feature, or test design'). It does not, however, differentiate itself from the many sibling taxonomy-collection tools (get_issue_priorities_collection, get_issue_statuses_collection, get_issue_tags_collection, get_requirement_types_collection).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the phrase 'configured for a project' tells the agent this is a project-scoped read of a lookup collection, which is enough to pick it instead of, say, get_issue_collection. But there is no explicit when-to-use, when-not-to-use, or named alternative among the near-identical taxonomy tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_issue_collectionBRead-onlyIdempotent
Get all issues. Retrieve all issues from a project.
Apply custom filters, sorting, and pagination to find the issues you need. Include related data using the relations parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description adds that this is a paginated, filterable collection that can embed relations, but says nothing about default page size, empty-result behavior, or any permission requirements. With annotations carrying the safety burden, this is adequate but thin.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first two sentences are redundant ('Get all issues. Retrieve all issues from a project.'), spending a sentence on a restatement before any differentiating detail. The remaining two sentences are useful, so the opening waste is the main structural flaw.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The nested schema is rich and the annotations cover the safety profile, so the description need not carry everything. But for a heavily-used list endpoint on a large API it omits sibling disambiguation, pagination defaults, and the correct parameter name for relation embedding, leaving meaningful gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Top-level coverage is reported as 0% (the single required `query` wrapper is undocumented), though the nested properties carry good inline descriptions. The description hints at the filter/sort/pagination knobs and mentions the 'relations parameter', but the schema actually names it `with` — a naming mismatch that could cost an agent a round trip.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Retrieve all issues from a project') and mentions filtering, sorting and pagination. However, it never distinguishes itself from the sibling get_my_issue_collection, which is a near-identical collection tool scoped to the current user, so an agent must infer the difference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It implies context by describing filters/sorting/pagination and telling the agent to use the relations parameter for related data. It gives no explicit when-to-use guidance, no exclusions, and does not route to alternatives such as get_my_issue_collection or get_issue for a single item.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_issue_commentsCRead-onlyIdempotent
Get all comments for an issue. Retrieve all comments for an issue using its unique identifier.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is fully covered elsewhere. The description adds nothing beyond that: no pagination behavior, no ordering, no volume expectations, and no indication of what is returned for an issue with no comments.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is short, but the second sentence duplicates the first almost exactly, so half the content is waste. Front-loading is fine, efficiency is not.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with annotations covering safety and no output schema, the main missing pieces are pagination/result-size expectations and clarification of the nested path parameter. Neither is addressed, leaving the agent to infer the invocation shape from the schema alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the single parameter is a nested 'path' object wrapping issueId, which is an unusual shape an agent could easily get wrong. The phrase 'using its unique identifier' loosely points at issueId but never explains the path wrapper or the identifier's format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence names a specific verb and resource ('Get all comments for an issue'), which is enough to separate it from write siblings like post_issue_comment and from the analogous get_test_case_comments / get_test_result_comments. The second sentence is a near-verbatim restatement that adds no distinguishing detail.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no mention of the sibling alternatives (post_issue_comment, get_test_case_comments), and no prerequisites such as needing a valid issue ID. The only signal is the name itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_issue_priorities_collectionBRead-onlyIdempotent
Get project issue priorities. Retrieve all issue priorities configured for a project. Issue priorities indicate the urgency of an issue.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so safety and idempotency are covered. The description adds the useful fact that these are configured priorities indicating issue urgency, but it says nothing about whether pagination is supported for exhaustive retrieval or what the response shape is.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no padding, and the purpose is front-loaded in the first sentence. The second sentence adds conceptual clarity rather than filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With annotations covering read behavior and no output schema, the description is adequate but still incomplete: it omits pagination expectations, result scope, and the nested path parameter's meaning. For a collection endpoint with 0% schema coverage and nested params, it should do more.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the tool has a nested path object plus a query object with page/limit. The description supplies zero parameter semantics, leaving the agent to parse the nested schema alone for a required projectId and optional pagination controls.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and resource ('project issue priorities') and clarifies what the resource represents ('urgency of an issue'). It fits the *collection tool pattern in the sibling list, but it never names or contrasts a sibling like get_issue_categories_collection.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no mention of pagination semantics, and no indication of how this configuration-readable tool relates to the sibling list tools. The agent must infer context entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_issue_resolutions_collectionBRead-onlyIdempotent
Get project issue resolutions. Retrieve all issue resolutions configured for a project. Issue resolutions describe how an issue was resolved.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the full safety profile (readOnlyHint, idempotentHint, destructiveHint=false, openWorldHint), so the description is not the source of that information. It adds a semantic definition of issue resolutions but says nothing about pagination behavior, defaults, or what a 'configured' set implies, so it is only moderately additive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences where the first two ('Get project issue resolutions' and 'Retrieve all issue resolutions configured for a project') restate the same fact, creating redundancy. The third sentence is the only genuinely additive content, so the description is not tightly front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, annotated list tool with no output schema, the description covers the basic purpose but omits pagination semantics for the query object. It is minimally sufficient rather than complete, especially given the nested path structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is reported at 0%, so the description carries the burden of explaining the nested path.projectId and the query page/limit parameters. It mentions only that the tool is project-scoped and provides no guidance on pagination, page size limits, or the projectId requirement, failing to compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Get/Retrieve') and resource ('issue resolutions') scoped to a project, and adds a definition of what an issue resolution is. It does not explicitly differentiate itself from structurally identical siblings like get_issue_categories_collection or get_issue_statuses_collection, but the resource is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent can infer this fetches configured issue resolutions for a project. There is no statement of when to prefer it, no prerequisites, and no mention of related sibling collections (statuses, priorities, categories) that an agent might confuse it with.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_issue_statuses_collectionBRead-onlyIdempotent
Get project issue statuses. Retrieve all issue statuses configured for a project. Issue statuses track the current state of an issue in your workflow.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds the project-scoping context and the semantic meaning of the returned entities, but says nothing about pagination behavior or that results are bounded by page/limit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, but the first ('Get project issue statuses') and second ('Retrieve all issue statuses configured for a project') largely restate the same fact, so one sentence does not fully earn its place. Front-loading is good and size is reasonable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only collection endpoint with no output schema, the description explains what is returned conceptually but omits pagination semantics, response shape, and any note on ordering or volume — gaps that matter for a paginated list endpoint with a nested required parameter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is reported at 0%, and the nested 'path' and 'query' objects carry no descriptions in the schema. The description supplies no parameter-level detail at all — it never mentions projectId, page, or limit — so it fails to compensate for the coverage gap on a nested-object input.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource ('Retrieve all issue statuses configured for a project') and clarifies the domain concept (statuses track workflow state). It is clearly distinguishable from sibling collections like get_issue_priorities_collection or get_issue_categories_collection by resource alone, though it does not explicitly contrast with them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by 'configured for a project' — an agent can infer this is the tool for enumerating a project's workflow statuses — but there is no explicit when-to-use guidance, no conditions, and no mention of alternatives among the many sibling collection endpoints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_issue_tagsCRead-onlyIdempotent
Get all tags for an issue. Retrieve all tags assigned to an issue using its unique identifier.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false, covering the safety profile. The description adds no further behavioral context such as return format, pagination, or authorization requirements beyond restating the read operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short, but the second sentence largely repeats the first. It is front-loaded, yet one sentence would have sufficed, so it is only adequately concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tag retrieval tool, the description is minimally adequate: annotations cover safety, and it states that all tags for one issue are returned. However, it does not help distinguish this tool from the collection variant or clarify the nested parameter structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is reported as 0% for the top-level parameter, and the nested issueId description merely says 'The issue identifier.' The description's 'using its unique identifier' is essentially redundant with that schema text and does not explain the nested path object or add meaningful semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (Get/Retrieve) and resource (tags for an issue), and specifies scope via the issue's unique identifier. It is clear, but does not differentiate itself from the sibling get_issue_tags_collection, so it misses the top score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this tool versus alternatives such as get_issue_tags_collection. The phrase 'for an issue using its unique identifier' implies per-issue usage, but no prerequisites or exclusions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_issue_tags_collectionBRead-onlyIdempotent
Get all issue tags. Retrieve all tags that are currently used on issues within a project.
Tags are labels that help categorize and organize issues, making it easier to filter and group related issues.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and non-destructive behavior. The description adds the useful scoping detail that only tags currently used on issues are returned, but it omits pagination, auth requirements, and return format details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core action, but the first two sentences are largely redundant ('Get all issue tags' vs 'Retrieve all tags...'), and the third sentence about labels is generic filler that does not aid invocation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with no output schema, the description covers the basic purpose but leaves the return value format and parameter semantics unaddressed, making it only minimally complete for an agent to call correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is reported as 0% and the only parameter (project_id) is nested inside a query object. The description does not explain how to supply the project identifier or what form it takes, so it fails to compensate for the low schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Retrieve') and resource ('tags'), and scopes it to tags 'currently used on issues within a project', which helps distinguish it from the issue-level sibling get_issue_tags. However, it never names the sibling explicitly, so a small amount of inference is required.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the project-level scope ('within a project'), but the description offers no explicit when-to-use guidance, no alternatives, and no exclusions relative to the many sibling tag tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_issue_taskCRead-onlyIdempotent
Get a specific task. Retrieve a specific task using its unique identifier.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint, so the safety profile is fully covered. The description adds nothing beyond that — no statement about error behavior for invalid IDs, permissions, or what a successful lookup returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences are front-loaded, but the second is essentially a restatement of the first with only marginally more information. It is not bloated, but one sentence would have sufficed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read tool with no output schema, the description should at least hint at what is returned or how failures behave. Combined with the unaddressed two-identifier requirement and no sibling routing, the definition leaves meaningful gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is reported as 0% (the nested taskId/issueId descriptions are near-tautological), so the description must carry the load. It says 'its unique identifier' in the singular, which is misleading: the schema requires both an issueId and a taskId. The description does not clarify this two-key requirement.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear verb and resource ('Get a specific task'), and the second sentence adds the retrieval mechanism (unique identifier). However, the two sentences largely restate each other, and nothing distinguishes this singular retrieval from the sibling collection tool get_issue_tasks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this instead of get_issue_tasks, get_my_issue_tasks_collection, or put_issue_task/delete_issue_task. The singular-vs-plural distinction is left entirely to inference 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.
get_issue_tasksCRead-onlyIdempotent
Get all tasks for an issue. Retrieve all tasks for an issue using its unique identifier.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is fully covered without the description. The description adds nothing behavioral beyond that — no return format, no pagination, no ordering — so it does not earn credit above the annotation floor.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded and short, but the second sentence is a near-verbatim restatement of the first, adding only 'using its unique identifier.' Half the text is redundant padding rather than new information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list getter with full annotation coverage, the essentials are present, but it lacks return-shape and pagination detail and offers no routing among the many sibling task tools. Adequate but not complete for the surrounding tool set.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is reported at 0%, so the description must compensate. 'Using its unique identifier' hints that the issue's ID is the lookup key, marginally reinforcing the nested issueId field, but it gives no format, type, or nesting detail beyond what the schema structure already shows.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear verb+resource: 'Get all tasks for an issue.' An agent knows exactly what it does, but the description never distinguishes it from siblings like get_issue_task (singular) or get_my_issue_tasks_collection, so the second sentence only rephrases the first rather than differentiating.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance and no mention of alternatives, exclusions, or prerequisites. Usage is only implied by the tool name, which is weak given the several near-identical sibling task retrievers.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_issue_test_resultsCRead-onlyIdempotent
Get all test results linked to an issue. Retrieve all test results linked to an issue using its unique identifier.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false, so the safety profile is fully covered elsewhere. The description adds nothing beyond that — no note on pagination, empty-result behavior, or permissions — and the second sentence merely restates the first. It is redundant rather than enriching.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded in the first sentence, which is good, but the second sentence is a near-verbatim restatement ('Retrieve all test results linked to an issue using its unique identifier') and earns no place. Net effect is a two-sentence description carrying one sentence of information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only lookup with full annotation coverage and no output schema, the minimum is met: the agent knows what it fetches and that it is safe. What is missing is disambiguation from the sibling test-result tools and any note on the nested path parameter or result shape, which are the remaining gaps an agent would hit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is reported as 0%, so the description should carry the burden of explaining the nested 'path.issueId' structure. It only says 'using its unique identifier', which confirms that the issue's identifier is required but adds no format, type, or nesting detail beyond what the schema already conveys.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Get all test results linked to an issue'), which is unambiguous on its own. It does not, however, distinguish itself from closely related siblings such as get_test_case_test_results, get_test_run_test_results, or the inverse get_test_result_issues, so the agent must infer the difference from the name alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this tool versus the many sibling test-result queries (by test case, by test run, or the reverse get_test_result_issues). The only usage signal is implicit in the phrase 'linked to an issue', which gives context but no exclusions or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_milestoneCRead-onlyIdempotent
Get a specific milestone. Retrieve a specific milestone using its unique identifier. Use the relations parameter to include associated data in a single request.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is covered. The description adds essentially nothing beyond that — no note on auth requirements, error behavior when the milestone is absent, or what the relations expansion actually returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first two sentences are near-duplicates ('Get a specific milestone. Retrieve a specific milestone using its unique identifier.'), wasting space. The relations tip is front-loaded reasonably but the definition could be one sentence without losing content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description should say something about the shape of the returned milestone, and it does not. The relations pointer helps, but for a nested-object tool with a required path parameter the definition is only minimally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Reported schema description coverage is 0%, so the description must carry the burden, and it partially does by naming the identifier and explaining that relations pull in associated data in one request. It omits the allowed relation values and the list-vs-repeated syntax, which the agent would need for correct invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource (get a specific milestone by unique identifier), so an agent knows exactly what the tool retrieves. However, it never distinguishes itself from the sibling get_milestone_collection, leaving the singular-vs-collection choice to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use or when-not-to-use guidance, and no alternative tool is named. The only usage hint is that the relations parameter can pull associated data in one request, which is parameter guidance rather than tool-selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_milestone_collectionBRead-onlyIdempotent
Get all milestones. Retrieve all milestones from a project.
Apply custom filters, sorting, and pagination to find the milestones you need. Include related data using the relations parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is fully covered. The description adds that filtering, sorting, pagination and relation inclusion are supported, which is useful but states no constraints (pagination defaults, limits, auth requirements).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four short sentences, front-loaded with the core action, and no wasted prose. The first two sentences are somewhat redundant ('Get all milestones.' / 'Retrieve all milestones from a project.'), which is the only real inefficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a collection endpoint with a deep, self-documenting nested schema and no output schema, the description covers the main capabilities an agent needs. It omits the required project_id and any pagination defaults, but the schema carries those details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Top-level schema coverage is reported as 0% (the single 'query' parameter is undocumented), but the nested schema itself is richly annotated for page, limit, order, with and filter. The description merely names those capabilities ('custom filters, sorting, and pagination', 'relations parameter') without adding syntax or defaults, so it does not materially compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Get all milestones') and scopes it to a project, so an agent knows this is the collection-level reader. It does not, however, distinguish itself from the singular get_milestone or get_milestone_types_collection siblings, so the differentiation is only partial.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use guidance and names no alternative. It never explains when to reach for this collection tool rather than get_milestone (single fetch) or the related batch/delete milestone tools, so the agent must infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_milestone_types_collectionBRead-onlyIdempotent
Get all milestone types. Retrieve all milestone types configured for a project. Milestone types categorize milestones by their purpose, such as releases or sprints.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the safety profile is covered. The description adds project-scoping and a conceptual definition of milestone types, but does not mention pagination or list-return behavior despite page/limit parameters existing. With annotations doing the heavy lifting, this is a moderate addition.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first two sentences are largely redundant ('Get all milestone types' and 'Retrieve all milestone types configured for a project'), wasting space. The third sentence adds useful conceptual context, but the overall structure is not as front-loaded or economical as it could be.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only collection endpoint with no output schema, the description covers purpose and defines milestone types conceptually. However, it omits mention of pagination and does not explain that the response is a list of types, leaving some gaps for an agent needing to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema itself documents projectId, page, and limit with clear descriptions, so baseline 3 applies. The description reinforces that the collection is project-scoped ('configured for a project') but adds no syntax, format, or pagination guidance beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get/Retrieve') and resource ('milestone types'), and clarifies that they are project-scoped and categorize milestones by purpose. It does not, however, explicitly distinguish this tool from siblings like get_milestone_collection or other type collections, so it falls short of the top score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It mentions that the types are 'configured for a project', giving minimal context, but provides no guidance on when to use this tool instead of alternatives such as get_milestone_collection or other type-listing tools. There are no exclusions or usage conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_my_issue_collectionBRead-onlyIdempotent
Get all assigned issues. Retrieve all issues assigned to the authenticated user.
Apply custom filters, sorting, and pagination to find the issues you need. Include related data using the relations parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is fully covered. The description adds the scoping constraint ('authenticated user') and the related-data capability, but says nothing about pagination defaults, limits, or result shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences with the purpose front-loaded, but the first two are near-duplicates ('Get all assigned issues' / 'Retrieve all issues assigned to the authenticated user'), so a full sentence is spent restating the same fact.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only collection tool with no output schema, the description is adequate: it establishes scope and the available refinement dimensions. It stops short of explaining the nested argument structure or pagination behavior that an agent needs to call it correctly on the first attempt.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single top-level 'query' object carries no description (coverage reported as 0%), so the description does useful work by naming the four capabilities it wraps: filters, sorting, pagination, and relations. However it never states that these live inside the nested 'query' object, leaving room for a malformed call.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource with scope: 'Retrieve all issues assigned to the authenticated user.' The 'my/assigned to me' scoping implicitly separates it from get_issue_collection, but the description never names that sibling, so the differentiation is left to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It tells the agent what can be done (filters, sorting, pagination, relations) but not when to prefer this tool over get_issue_collection or get_my_issue_tasks_collection, and gives no exclusions or prerequisites. Usage is implied by the 'assigned to me' scope rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_my_issue_tasks_collectionCRead-onlyIdempotent
Get all assigned tasks. Retrieve all tasks assigned to the authenticated user. Apply pagination to navigate through the results.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint, so the safety profile is covered. The description adds that results are scoped to the authenticated user and require pagination, but does not disclose return format, pagination defaults, or any rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first two sentences restate the same idea in slightly different words, so not every sentence earns its place. The text is short and front-loaded, but the redundancy prevents a higher score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only collection tool in a large sibling set, the description omits what kind of tasks are returned and how this differs from closely related issue-task or issue-collection endpoints. Annotations and schema cover safety and pagination fields, but the tool's exact scope remains ambiguous.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description mentions pagination but does not explain the page or limit parameters, their defaults, or acceptable ranges. With schema description coverage reported as 0% for this nested parameter, the description does not compensate for the missing parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear verb and scope: retrieve tasks assigned to the authenticated user. However, it does not distinguish this from sibling tools like get_issue_tasks or get_my_issue_collection, and the word 'tasks' is less precise than the tool name's 'issue tasks'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides no guidance on when to choose this tool over alternatives such as get_issue_tasks or get_my_issue_collection. The only usage-like sentence concerns pagination, not tool selection or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_my_project_collectionBRead-onlyIdempotent
Get all assigned projects. Retrieve all projects that the authenticated user is a member of.
Apply custom filters, sorting, and pagination to find the projects you need. Include related data using the relations parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so safety is covered. The description adds the meaningful scoping fact that results are limited to the caller's memberships, but says nothing about default page size, result caps, or authentication requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The opening two sentences say nearly the same thing ('Get all assigned projects' / 'Retrieve all projects that the authenticated user is a member of'), which is redundant. The remaining guidance is brief and front-loaded, so the overall shape is fine but not tight.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description should carry more of the return-shape burden, and with a complex nested filter/relations schema it should offer more than a one-line pointer to relations. It covers the broad capabilities adequately but leaves pagination defaults, sorting syntax, and result envelope unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Top-level schema description coverage is 0% and the single 'query' parameter is a large nested object. The description names the capability buckets (filters, sorting, pagination, relations) which maps onto the schema's groups, but adds no syntax, defaults, or field-level meaning beyond what the nested field descriptions already provide.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
It states a specific verb+resource and a clear scope: projects the authenticated user is a member of. That distinguishes it conceptually from the sibling get_project_collection, but the description never names that sibling, so the agent must infer the boundary from the tool name alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied ('Apply custom filters, sorting, and pagination') rather than instructed. There is no statement of when to prefer this over get_project_collection or get_project, and no prerequisites or exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_my_test_run_collectionARead-onlyIdempotent
Get all assigned test runs. Retrieve all test runs assigned to the currently authenticated user.
Apply custom filters, sorting, and pagination to find the test runs you need. Include related data using the relations parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the safety profile is covered structurally. The description contributes the user-scoping constraint, which is genuinely useful, but says nothing about pagination defaults, result caps, or response shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action and scope, and the remaining sentences are short and purposeful. The first two sentences restate the same fact twice ('Get all assigned test runs' / 'Retrieve all test runs assigned to...'), which is minor redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only collection endpoint with a deeply nested but self-documenting schema and no output schema, the description covers the main axes an agent needs (scope, filtering, sorting, pagination, relations). It omits mention of the required project_id, but the schema marks that as required.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description names three capability families (filter, sort, pagination) and the relations parameter, which maps to schema fields. Schema description coverage is reported at 0% at the top level, and the description does not add syntax or format detail beyond naming the concepts, so it only partially compensates.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Get all assigned test runs') and clarifies the scope is the currently authenticated user, which distinguishes it functionally from get_test_run_collection. It does not name that sibling explicitly, but the 'assigned to the currently authenticated user' qualifier makes the distinction inferable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It tells the agent that filters, sorting, and pagination can be applied and that relations can be requested, but gives no when-to-use guidance, no condition that routes the agent here versus get_test_run_collection, and no exclusions. Usage is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_projectCRead-onlyIdempotent
Get a specific project. Retrieve a specific project using its unique identifier.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, destructiveHint=false. The description adds nothing beyond this — no mention of what is returned, error behavior for missing IDs, or access scope.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences that say the same thing; the second is pure redundancy rather than front-loaded value. Nothing in the text earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-by-ID tool with no output schema and one nested parameter, the description is technically adequate but contributes no information beyond the name and annotations. It fails to clarify the identifier's shape or the tool's relation to sibling project lookups.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% overall, and the only meaningful detail — that the parameter is a project identifier — is stated both in the description ('unique identifier') and the schema's projectId description. The nested 'path' wrapper object is not explained, and the description adds no format or constraint information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The two sentences restate the tool name ('Get a specific project' / 'Retrieve a specific project using its unique identifier') without adding distinguishing detail. It does convey verb+resource but offers nothing to tell it apart from the many sibling read tools like get_project_collection or get_my_project_collection.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this versus get_project_collection (list) or get_my_project_collection, nor any prerequisite or context. Usage is entirely implied by the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_project_collectionBRead-onlyIdempotent
Get all projects. Retrieve all projects.
Apply custom filters, sorting, and pagination to find the projects you need. Include related data using the relations parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, covering the safety profile. The description adds that filters, sorting, pagination, and relations are supported, but does not disclose pagination defaults, rate limits, or response format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first two sentences are redundant ('Get all projects. Retrieve all projects.'), which hurts conciseness. The remaining sentences are front-loaded and informative, but the repetition is unnecessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has a complex nested filter object and no output schema. The description covers high-level capabilities but omits details like pagination limits, default page size, and the exact parameter names for relations and filters, leaving some gaps for an agent to fill from the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description refers to a 'relations parameter,' but the schema uses 'with' inside the 'query' object. It does not explain the nested structure or provide syntax details, and top-level schema description coverage is 0%, so the description fails to fully compensate for the gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: 'Get all projects' / 'Retrieve all projects.' It distinguishes itself from the singular get_project tool implicitly, but does not explicitly differentiate from sibling collection tools like get_my_project_collection.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It mentions applying custom filters, sorting, and pagination, which implies usage, but provides no guidance on when to use this tool versus alternatives, nor any exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_project_members_collectionCRead-onlyIdempotent
Get all project members. Retrieve all members of a project. Project members have access to the project's resources and can perform actions based on their roles.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is fully covered. The description adds only mild domain context (members have access and act via roles), and says nothing about pagination behavior or authorization requirements, so it barely clears the bar set by the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, but the first two sentences are near-verbatim restatements ('Get all project members' / 'Retrieve all members of a project'), so one of them does not earn its place. The remaining sentence is background rather than operational detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, paginated collection endpoint with no output schema, the description should convey return shape (what a member record contains) and pagination behavior. It gestures at member semantics but omits pagination and any note on ordering or result envelope.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description mentions none of the inputs: the nested path.projectId, or the query.page/limit pagination parameters. With schema description coverage reported at 0%, the description needed to compensate for parameter semantics and does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb+resource: 'get all project members' / 'retrieve all members of a project.' The purpose is unambiguous, but it never distinguishes this tool from similar collection tools such as get_team_members, get_user_collection, or get_project_collection in the sibling list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool, when not to, or which alternative to pick (e.g., team members vs. project members). The third sentence describes the domain concept of a member but gives no invocation context or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_requirementBRead-onlyIdempotent
Get a specific requirement. Retrieve a specific requirement using its unique identifier.
This endpoint returns all details of the requirement, including its name, description, type, and custom fields.
Use the relations parameter to include associated data in a single request.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds value by enumerating what the response contains (name, description, type, custom fields) and by calling out relation expansion, but it is silent on error behavior for a missing/nonexistent ID and gives no note about the openWorldHint scope.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first two sentences restate the same fact ('Get a specific requirement' then 'Retrieve a specific requirement using its unique identifier'), which is redundant padding. The last two sentences earn their place by describing the payload and the relations option.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description partially compensates by naming the returned fields, but for a nested-path tool with relation expansion it omits key details such as what happens when the ID does not exist or is inaccessible. Adequate but with visible gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is reported as 0%, so the description must carry the load; it does identify that the lookup is by unique identifier and that 'relations' pulls in associated data. Yet it never explains the identifier format (integer ID vs. key) or which relation values are legal, so compensation is partial.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Get a specific requirement' / 'Retrieve a specific requirement using its unique identifier'), which is unambiguous against collection-style siblings like get_requirement_collection. However, it never explicitly distinguishes itself from the other requirement-scoped reads (get_requirement_tags, get_requirement_test_cases) beyond the singular/plural distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the identifier-based lookup context makes it clear this is the single-record read, and the last line points at the relations parameter for expanding associated data. There is no explicit when-to-use/when-not or naming of alternatives such as the collection endpoint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_requirement_collectionBRead-onlyIdempotent
Get all requirements. Retrieve all requirements from a project.
Apply custom filters, sorting, and pagination to find the requirements you need. Include related data using the relations parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, so the safety profile is covered. The description adds that filters/sorting/pagination and relations are supported, but says nothing about defaults, max page size, or result volume beyond what the annotations and schema imply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first two sentences are near-duplicates ('Get all requirements.' / 'Retrieve all requirements from a project.'), which wastes the front-loaded position. The remaining sentences are useful but the opening is redundant padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description is not obliged to explain returns, but for a nested-schema, one-required-param list tool it should at least state that project_id is mandatory and give a hint about paged result shape. As written it is minimally viable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Reported schema description coverage is 0% at the top level, so the description must compensate; it does so loosely by naming filters, sorting, pagination, and relations, each mapping to nested fields (filter, order, page/limit, with). However it omits the required project_id and the free-text 'query' search field entirely.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: 'Get all requirements' / 'Retrieve all requirements from a project.' The collection-vs-singular distinction from sibling get_requirement is implicit in the name and scope, but the description never names an alternative to distinguish it explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Apply custom filters, sorting, and pagination to find the requirements you need' implies the intended retrieve-and-filter use case, but there is no when-to-use vs. when-not guidance and no routing to siblings such as get_requirement (single) or get_requirement_test_cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_requirement_tagsARead-onlyIdempotent
Get all tags for a requirement. Retrieve all tags assigned to a specific requirement using its unique identifier.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint, covering the safety profile. The description adds no behavioral context beyond matching those annotations, such as return format or pagination, but it does not contradict them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with the core purpose front-loaded. The second sentence largely restates the first with only the identifier clarification added, which is mild redundancy rather than clutter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read operation with annotations and no output schema, the description states what is returned ('all tags') and how the target is identified. It does not describe the output shape or differentiate from the collection sibling, so it is adequate but leaves gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is reported as 0%, so the description must compensate. It does partially by saying 'using its unique identifier,' which clarifies the requirementId parameter, but it does not explain the nested path wrapper or add formatting details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb 'Get' and resource 'tags' scoped to a requirement, and 'using its unique identifier' distinguishes it from broader tag-collection siblings such as get_requirement_tags_collection. An agent can identify the operation without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: retrieve tags for a specific requirement. However, there is no explicit when-to-use guidance, no exclusions, and no comparison with the sibling get_requirement_tags_collection, so the agent must infer the routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_requirement_tags_collectionBRead-onlyIdempotent
Get all requirement tags. Retrieve all tags that are currently used on requirements within a project.
Tags are labels that help categorize and organize requirements, making it easier to filter and group related requirements.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is fully covered by structured data. The description adds that tags are scoped to a project and currently used, a mild behavioral note, but doesn't cover pagination, sorting, or return shape. Baseline 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action, which is good. The second paragraph explaining what tags are is filler that doesn't help an agent invoke the tool and inflates length without adding invocation value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list tool with annotations covering the safety profile and a documented single parameter, the description is adequate but thin. It could say whether results are paginated or filtered by tag type, but nothing an agent needs to call it is strictly missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and there is one nested required parameter (query.project_id). The description implies project scoping ('within a project') which matches the schema, but adds no format, type, or wiring detail. Schema itself has a description on project_id, so baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: 'Get all requirement tags.' and clarifies scope as 'tags that are currently used on requirements within a project.' It doesn't explicitly differentiate from the near-twin sibling get_requirement_tags, but the collection/scope framing does some work.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance. Nothing steers the agent to this tool over get_requirement_tags or the issue/risk/test-case tag variants, apart from the implied 'all tags' scope.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_requirement_test_casesCRead-onlyIdempotent
Get test cases assigned to a requirement. Retrieve all test cases assigned to a specific requirement using its unique identifier.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the safety profile is covered. The description adds nothing beyond that: no indication of whether results are paginated, how large the result set may be, or what happens if the requirement has no test cases.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences that say the same thing — the second is pure redundancy rather than added information. Short, but the length is spent on repetition instead of useful content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with no output schema and annotations covering the safety profile, the description is minimally adequate. It omits pagination behavior and the relationship to get_test_case_requirements, which matters in a sibling set this dense.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the parameter is a nested object, so the description has to carry weight. It does clarify that the identifier is the requirement's unique ID, which maps to requirementId, but it adds no format or type detail beyond that; partial compensation only.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: retrieve test cases assigned to a requirement. However, the second sentence merely restates the first with slightly different words, and it never distinguishes this tool from the inverse sibling get_test_case_requirements, leaving the agent to infer the direction of the relationship.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites, and no mention of the closely related get_test_case_requirements sibling that returns the same association from the other direction. The agent gets no help choosing between them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_requirement_types_collectionBRead-onlyIdempotent
Get all requirement types. Retrieve all requirement types configured for a project. Requirement types classify requirements by their nature, such as functional or non-functional.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is fully covered. The description adds that results are project-scoped and defines the resource's meaning, but says nothing about pagination behavior or response shape, so it is additive but thin.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Short and front-loaded, with the core verb+resource leading. The first two sentences are largely redundant ('Get all requirement types' / 'Retrieve all requirement types configured for a project'), which costs a little efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only collection endpoint with no output schema, it covers what the tool returns and its project scope, which is enough for correct invocation. Mentioning pagination defaults or an example result would complete it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents projectId, page, and limit inline, so the schema carries most of the parameter burden. The description only reinforces that scope is 'configured for a project', adding no detail on pagination or limits beyond what the schema states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get all requirement types'), scopes it to a project, and adds a clarifying definition ('classify requirements by their nature, such as functional or non-functional'). It is easy to distinguish from write siblings like post_requirement, though it does not explicitly differentiate itself from the parallel get_*_collection tools (e.g. get_risk_classifications_collection).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is project-scoped but gives no when-to-use guidance, no exclusions, and never names an alternative among the many sibling collection endpoints. An agent gets a purpose but no routing logic.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_riskBRead-onlyIdempotent
Get a specific risk. Retrieve a specific risk using its unique identifier.
This endpoint returns all details of the risk, including its name, description, classification, and custom fields.
Use the relations parameter to include associated data in a single request.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so the safety profile is covered. The description adds that the call returns full risk details (name, description, classification, custom fields) and that relations can be embedded, which is real added context, but it says nothing about auth, error behavior for a missing/invalid riskId, or deleted-risk handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first two sentences restate the same idea ('Get a specific risk' / 'Retrieve a specific risk using its unique identifier'), so one of them is pure redundancy. The remaining sentences about returned fields and relations are useful and reasonably front-loaded, but the opening wastes space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only single-resource fetch with annotations covering safety and no output schema, the description covers the essentials: what identifies the risk, what comes back, and how to expand related data. Only minor gaps remain, such as not clarifying the `with` vs 'relations' naming or error behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents the nested riskId ('The risk identifier.') and the `with` parameter in detail, including its enum values and comma-separated syntax. The description's only parameter-level contribution is the phrase 'relations parameter', which does not match the schema's actual name `with` and could cause a naming mismatch for the agent.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Get a specific risk', 'Retrieve a specific risk using its unique identifier'), making the single-item fetch unambiguous. It does not explicitly contrast with get_risk_collection, though 'specific' plus the required riskId implies the distinction well enough.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives one concrete usage hint — use the relations parameter to pull associated data in a single request — which is genuinely useful guidance. But there is no when-to-use/when-not-to-use framing and no mention of alternatives such as get_risk_collection or the dedicated get_risk_tags/get_risk_test_cases endpoints for related data.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_risk_classifications_collectionCRead-onlyIdempotent
Get all risk classifications. Retrieve all risk classifications configured for a project. Risk classifications categorize risks by their type.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds that the classifications are 'configured for a project' and defines their purpose, but it does not describe pagination behavior, output format, or any special access constraints beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded and reasonably sized, but the first two sentences are near-duplicates: 'Get all risk classifications' and 'Retrieve all risk classifications configured for a project' say essentially the same thing. The third sentence adds a brief definition, but the redundancy reduces efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple collection getter with annotations and a nested input schema, the description is minimally adequate. However, it omits relevant details such as pagination behavior (implied by the query parameters) and what the response contains, and with no output schema the description could do more to set expectations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With schema description coverage reported at 0%, the description must carry meaning for the parameters, but it only implies the required projectId via 'configured for a project.' It does not mention the optional page or limit query parameters at all, leaving pagination semantics undocumented in both the description and schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Get all risk classifications' and 'Retrieve all risk classifications configured for a project.' It distinguishes the tool from risk-related siblings like get_risk_collection by specifying 'classifications,' though it does not explicitly name an alternative tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not say when to use this tool versus alternatives. It implies usage by stating it retrieves classifications for a project, but provides no exclusions, prerequisites, or comparison to sibling collection endpoints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_risk_collectionBRead-onlyIdempotent
Get all risks. Retrieve all risks from a project.
Apply custom filters, sorting, and pagination to find the risks you need. Include related data using the relations parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds that results are project-scoped and that relations can be requested, but says nothing about pagination defaults, result caps, or permission requirements beyond what annotations and schema supply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four short sentences, front-loaded with the core action, and the capability summary is easy to scan. 'Get all risks' and 'Retrieve all risks from a project' are redundant restatements of the same idea, which is the only wasted space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list tool with a richly documented nested schema and safety annotations, the description is adequate. It omits anything about the shape of the returned collection or pagination behavior, and with no output schema that information is unavailable elsewhere, leaving a modest gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single top-level parameter (the nested query object) has no schema description, though its nested properties are thoroughly documented with descriptions, enums, and bounds. The description maps loosely onto four capability groups (filters, sorting, pagination, relations) but adds no syntax or default-value detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get all risks... Retrieve all risks from a project'), so the agent knows this returns a risk collection rather than a single risk. It does not name or contrast with the sibling get_risk or the other *_collection tools, so sibling differentiation is left to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The second and third sentences imply usage ('Apply custom filters, sorting, and pagination to find the risks you need') but give no when-to-use vs. when-not-to-use guidance and never point to an alternative such as get_risk for a single record or get_risk_test_cases for related test cases. Usage is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_risk_tagsCRead-onlyIdempotent
Get all tags for a risk. Retrieve all tags assigned to a specific risk using its unique identifier.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint, so the safety profile is fully covered. The description adds no behavioral context beyond that – no return shape, pagination, or error behavior – and largely repeats the name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded, which is good, but the second sentence is pure redundancy of the first. It is efficiently sized yet low in information density.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only lookup with full annotation coverage and no output schema, this is minimally adequate. However, the nested path parameter structure and the relationship to get_risk_tags_collection are left unexplained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is reported as 0% and the nested 'path' wrapper object is undocumented, though the inner riskId field does carry 'The risk identifier.' The phrase 'using its unique identifier' loosely maps to riskId but adds no format or type guidance beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb+resource (get tags for a risk), but the second sentence merely restates the first with no added specificity. It also fails to distinguish this tool from the closely named sibling get_risk_tags_collection, leaving the agent to infer the singular-vs-collection distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites, and no mention of the alternative get_risk_tags_collection for retrieving tags across risks. The agent gets no help choosing between the two closely related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_risk_tags_collectionBRead-onlyIdempotent
Get all risk tags. Retrieve all tags that are currently used on risks within a project.
Tags are labels that help categorize and organize risks, making it easier to filter and group related risks.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description usefully adds that results are scoped to tags actively used on risks within a single project, but says nothing about pagination, ordering, or auth requirements, so it adds moderate value rather than rich context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded in the first sentence, but the second sentence largely restates it, and the third sentence is generic filler defining what a tag is. Two of three sentences are near-redundant, so it is adequate rather than tight.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries some burden for describing returns; it conveys that the result is the set of tags used on project risks, which is sufficient to call the tool. It omits return shape and error/empty behavior, leaving it at minimum viable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is a single nested parameter (query.project_id) whose schema description is minimal, and context reports 0% coverage. The description compensates partially by making the project scoping explicit ('within a project'), but adds no format, type, or edge-case detail beyond that.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb+resource ('Get all risk tags') and scopes it to tags 'currently used on risks within a project,' which clearly distinguishes it from non-tag tools. It does not, however, differentiate itself from the sibling get_risk_tags or from the parallel *_tags_collection tools, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to call this versus get_risk_tags, get_risk_collection, or the other tag collections. The only implied usage is that the tags help 'filter and group related risks,' which hints at purpose but offers no selection criteria or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_risk_test_casesCRead-onlyIdempotent
Get test cases assigned to a risk. Retrieve all test cases assigned to a specific risk using its unique identifier.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is fully covered. The description adds almost no behavioral context beyond that – it does not mention pagination, result volume, or the shape of the returned list, so it contributes little beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded, which is good, but the second sentence is a near-verbatim restatement of the first and earns no additional information. It is adequately sized but contains redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a simple single-parameter read tool with rich safety annotations, so little is strictly required. Still, with no output schema the description says nothing about what the returned test cases contain or how they are scoped, leaving a modest gap for the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the input is a nested 'path' object whose wrapper is undocumented in the schema. The description's phrase 'using its unique identifier' only faintly reinforces the riskId semantics and does nothing to explain the required nested path structure, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource ('Get test cases assigned to a risk') and defines the lookup key ('using its unique identifier'), so the purpose is unambiguous. However, it offers no differentiation from closely related siblings such as get_test_case_risks (the inverse relation) or get_requirement_test_cases, and the second sentence merely restates the first.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus the inverse get_test_case_risks or the sibling collection getters. The description provides no context, prerequisites, or exclusions – only a restatement of what the tool fetches.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_symbols_collectionCRead-onlyIdempotent
Get all symbols. Retrieve all available symbols.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, openWorldHint=true, so the safety profile is fully covered by structured data. The description adds nothing about result size, ordering, or scope, contributing no behavioral context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences that say exactly the same thing; the second is pure redundancy. Short, but the sizing comes from under-specification rather than disciplined concision.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-parameter list tool with no output schema, the description still leaves the central question unanswered: what is a 'symbol' in this resource model. Sibling tools at least name concrete domains (issues, risks, test runs), while this one stays opaque.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so schema coverage is moot and the baseline of 4 applies. Nothing in the description is needed to clarify non-existent parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description restates the tool name with no added meaning: 'Get all symbols. Retrieve all available symbols.' It never identifies what a 'symbol' is in this API's domain, and with a large family of sibling get_*_collection tools it offers no differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool, when not to, or what alternative exists. The two sentences are interchangeable restatements rather than usage conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_teamCRead-onlyIdempotent
Get a specific team. Retrieve a specific team using its unique identifier.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is fully covered without the description. The description adds no behavioral context of its own — nothing about what a team object contains, whether relation expansions are supported, or any permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is short, but both sentences are redundant restatements of the tool name, so the second sentence earns nothing. Front-loading is fine, but the space is spent on repetition rather than information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only getter with no output schema, the description should at least convey what is returned or that relation data can be included via 'with'. It conveys neither, leaving the agent to infer everything from the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Top-level schema coverage is 0% (path and query carry no descriptions), and the description adds no parameter meaning at all — it never names teamId or the 'with' relation-expansion option. The nested 'with' description in the schema does the heavy lifting, but the description fails to compensate or hint at that capability.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The two sentences say the same thing twice ('Get a specific team' / 'Retrieve a specific team using its unique identifier') — a tautology that largely restates the tool name. It does not distinguish itself from siblings such as get_team_collection, get_team_members, or put_team/delete_team.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance: no statement that this is for fetching one team by ID versus listing teams via get_team_collection, and no mention of prerequisites or when a related tool (e.g. get_team_members) would be preferable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_team_collectionBRead-onlyIdempotent
Get all teams. Retrieve all teams.
Apply custom filters, sorting, and pagination to find the teams you need. Include related data using the relations parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the safety profile is covered. The description adds that filtering, sorting, pagination, and relation inclusion are supported, but it does not describe return format, pagination envelope, auth requirements, or rate limits. This is useful context but not rich behavioral disclosure beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose is front-loaded, but the first two sentences ('Get all teams. Retrieve all teams.') are redundant. The remaining two sentences are useful but the definition would be tighter without the duplicate opening.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a collection GET tool with read-only annotations and no output schema, the description covers basic capabilities but leaves important operational details unstated. It does not explain how the nested query object maps to filtering, sorting, or pagination, nor does it clarify the return shape for a collection. The definition is minimally viable but incomplete for reliable invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description mentions a 'relations parameter', but the actual schema parameter is named 'with', which creates a naming mismatch that could mislead invocation. It vaguely refers to custom filters, sorting, and pagination without naming the corresponding schema fields (query, order, page, limit). With top-level schema description coverage reported as 0%, the description does not compensate adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource: get/retrieve all teams. It distinguishes the collection from the singular get_team by saying 'all teams'. However, the first two sentences repeat the same idea without adding scope or differentiating from other collection siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives implied usage for filtering, sorting, pagination, and including relations, but never states when to use this tool versus alternatives like get_team, get_team_members, or get_my_project_collection. An agent can infer it is for listing teams but receives no explicit when-not or alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_team_membersBRead-onlyIdempotent
Get all members of a team. Retrieve all members of a specific team using its unique identifier.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, non-destructive behavior, so the description does not need to restate safety. It adds that all members are returned for a specific team identified by a unique identifier, but says nothing about pagination, ordering, or response shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences are front-loaded with the core action, but the second sentence largely restates the first rather than adding useful detail. The redundancy costs some efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read operation with rich annotations, the description states the resource and required identifier. However, with no output schema and no pagination or return-shape notes, it is only minimally complete for an operation that could return a large member list.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for a nested required path object. The description mentions using a 'unique identifier' but does not clarify the path/teamId nesting, the integer nature of teamId, or any format constraint, adding little beyond the schema's field name.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: get all members of a team. The scope 'all members of a specific team' clearly distinguishes it from sibling tools like get_team (team details), get_team_collection (list teams), and post_team_members/delete_team_member (member mutations).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use, when-not-to-use, or named alternatives are provided. Usage is implied by the simple read operation and the fact that it targets team members rather than a team itself, but the definition leaves the agent to infer that context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_test_caseARead-onlyIdempotent
Get a specific test case. Retrieve a specific test case using its unique identifier.
This endpoint returns all details of the test case, including its steps, expected results, priority, and custom fields.
Use the relations parameter to include associated data in a single request.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is covered. The description adds genuinely new behavioral context by enumerating what comes back (steps, expected results, priority, custom fields) and that relations can be expanded in one request, which is useful when there is no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first two sentences restate the same fact ('Get a specific test case' / 'Retrieve a specific test case using its unique identifier'), which is wasted space. The remaining sentences are informative and front-loaded, so the redundancy is the main flaw rather than bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-by-id tool with no output schema, the description covers identity of the resource and the shape of the return payload, which is the key missing piece. It could still note the required identifier path or error behavior, but nothing essential for invoking it correctly is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is reported as 0%, so the description is expected to compensate, but it only touches the relations parameter ('include associated data in a single request') and says nothing about the required path/testCaseId parameter. The added meaning for 'with' is real but thin, and the identifier parameter is left entirely to the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get a specific test case') and anchors it to a unique identifier, which clearly separates it from the collection-style sibling get_test_case_collection. It does not name that sibling explicitly, so the list-vs-single distinction is only implied by the word 'specific'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only usage guidance is 'Use the relations parameter to include associated data in a single request,' which tells the agent when to use a parameter but not when to choose this tool over get_test_case_collection or other test-case readers. No prerequisites or exclusions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_test_case_applicationsBRead-onlyIdempotent
Get all applications for a test case. Retrieve all applications assigned to a specific test case using its unique identifier.
Applications represent different versions or variants of your software that need to be tested.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so the safety profile is fully covered. The description adds a semantic gloss on what an 'application' is (versions/variants of software under test), which is genuine added context, but says nothing about return shape, pagination, or empty-set behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first two sentences are largely redundant restatements of the same idea (get all applications for a test case), with only the third sentence adding new information. Front-loaded correctly, but a quarter of the text is wasted repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter read tool whose annotations already cover the safety profile and which has no output schema, the description says enough to invoke it correctly: it names the parent entity and clarifies the domain concept. The main shortfall is the undocumented nested parameter wrapper.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is reported at 0% for the nested path object, so the description carries the burden. It says retrieval is 'using its unique identifier', which loosely maps to testCaseId but adds no format, type, or validity detail, leaving the nested 'path' wrapper undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Get all applications for a test case', naming the parent entity (test case) that scopes the retrieval. It's clear what the tool returns, though it never distinguishes itself from close siblings like get_application_collection or get_application, leaving the agent to infer the difference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use or when-not-to-use guidance, and no mention of alternatives (e.g., get_application_collection for unfiltered listing, or get_test_case_test_runs for a related notion). Usage is only implied by the phrasing 'for a test case'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_test_case_attachmentsCRead-onlyIdempotent
Get all attachments for a test case. Retrieve all attachments associated with a specific test case using its unique identifier.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered structurally. The description adds nothing beyond that—no mention of pagination, whether attachments include metadata or links, or empty-result behavior—so it contributes little behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences where one would suffice; the second sentence is a pure restatement of the first with no new information. The core purpose is front-loaded, which is the saving grace.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter read tool with safety annotations and no output schema, the description is minimally adequate—it names the resource and the identifier. It omits return-shape expectations and the meaning of the nested path object, leaving a modest gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for the single nested 'path.testCaseId' parameter, though the schema does supply a brief description for testCaseId itself. 'Using its unique identifier' loosely maps to testCaseId but does not clarify the unusual nested wrapper object or the identifier type.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get all attachments for a test case'), which distinguishes it from the write siblings post_test_case_attachment and delete_test_case_attachment. The second sentence merely restates the same thing in longer form, adding no differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as get_test_case_attachments' siblings get_issue_attachments or get_test_result_attachments, nor any prerequisite or context cues. 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.
get_test_case_collectionARead-onlyIdempotent
Get all test cases. Retrieve all test cases from a project.
Use the folder identifier to filter test cases by specific folders, or apply custom filters, sorting, and pagination to find the test cases you need. Include related data using the relations parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is fully covered. The description adds that results can be filtered/sorted/paginated and that relations can be expanded, which is useful but shallow; it does not disclose default page limits, default relation behavior, or result shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core action and then enumerates capabilities in three short sentences with no filler. The first two sentences ('Get all test cases.' / 'Retrieve all test cases from a project.') are near-duplicates, a minor redundancy that costs the top score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex filtered-list endpoint with a ~25-option nested filter object, the description covers project scoping, folder filtering, generic filtering/sorting/pagination, and relation expansion. Combined with the richly documented nested schema and read-only annotations, and given no output schema exists, nothing essential for correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Top-level schema coverage is 0% (the single 'query' object has no description), but its nested properties are densely documented with per-field descriptions and an enum for 'with' and 'order'. The description touches the key concepts (folder identifier, filters, sorting, pagination, relations) but adds no syntax, defaults, or formats beyond what the nested schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Get all test cases. Retrieve all test cases from a project.' An agent knows this is the project-scoped collection endpoint. It does not, however, distinguish itself from the sibling get_test_case (singular) or explain why one would list rather than fetch one directly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by naming three mechanisms (folder identifier, custom filters/sorting/pagination, relations), which tells the agent what can be done. It offers no explicit when-to-use vs alternatives, no prerequisites, and no exclusions, so routing guidance remains implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_test_case_commentsCRead-onlyIdempotent
Get all comments for a test case. Retrieve all comments for a test case using its unique identifier.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false, so the safety profile is fully covered elsewhere. The description adds nothing beyond that – no note on result ordering, pagination, or what a 'comment' object contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences where the second merely rephrases the first ('Get all comments for a test case' vs 'Retrieve all comments for a test case using its unique identifier'). It is short and front-loaded, but the duplication is pure waste rather than earned content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter read tool with annotations covering safety and no output schema, the description is minimally sufficient. It is missing any hint about return shape or ordering, which keeps it at the minimum-viable level.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the single parameter is a nested object containing testCaseId. The description only says 'using its unique identifier', adding no format, type, or sourcing detail to compensate for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Get) and resource (comments for a test case), which cleanly separates it from siblings like get_issue_comments and get_test_result_comments by resource type. However, it never explicitly names or contrasts those siblings, leaving the agent to infer the distinction from the resource noun alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no conditions, prerequisites, or alternatives for when to use this tool. With many comment-fetching siblings in the list, 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.
get_test_case_issuesCRead-onlyIdempotent
Get all issues for a test case. Retrieve all issues associated with a specific test case using its unique identifier.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is fully covered. The description adds nothing beyond that profile: no pagination behavior, no output/return format, and no note on what 'all issues' includes. With no annotation contradiction, this is a bare restatement rather than added context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the core action, but the second sentence is essentially a restatement of the first and adds no new information. It is not bloated, but one of the two sentences does not earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, idempotent list tool whose annotations already cover the safety profile, the definition is serviceable but omits return shape, pagination, and empty-result behavior. The nested parameter structure is also left unexplained, so an agent has small residual gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is reported at 0% for the top-level parameter, so the description must carry meaning. It does say 'using its unique identifier', which maps to the nested testCaseId field (itself documented in the schema), but it does not explain the nested 'path' wrapper or the identifier's origin/format. Marginal compensation for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Get) and resource (issues) scoped to a test case, which distinguishes it from the broader get_issue_collection and the sibling get_test_result_issues. However, it never names those alternatives explicitly, so the differentiation is left to inference from the scope phrase.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use or when-not-to-use guidance and no mention of alternatives such as get_issue_collection or get_test_result_issues. Usage is only implied by the 'for a test case' scoping phrase.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_test_case_requirementsCRead-onlyIdempotent
Get all requirements for a test case. Retrieve all requirements assigned to a specific test case using its unique identifier.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is fully covered. The description adds nothing beyond that: no note on pagination, result ordering, what happens when the test case has no requirements, or authorization needs. It essentially restates the purpose a second time.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences where one would do; the second sentence is a near-paraphrase of the first ('Get all requirements for a test case' vs 'Retrieve all requirements assigned to a specific test case'), so roughly half the text is redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with no output schema, the description covers what is fetched and by what key, which is minimally sufficient. It omits return-shape hints (identifiers vs full requirement objects) and pagination behavior, which an agent would want for a collection-style endpoint.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one nested parameter exists and the schema itself documents testCaseId as 'The test case identifier.' The description's phrase 'using its unique identifier' adds no format, type, or constraint detail beyond the schema. With a single parameter, this is an adequate baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (Get/Retrieve) and resource (all requirements for a test case) with the scoping key clearly identified ('its unique identifier'). It is distinguishable from most siblings, though it never names the closely related inverse tool get_requirement_test_cases, so sibling differentiation is only partially addressed.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use or when-not-to-use guidance and no mention of alternatives such as get_requirement_test_cases or get_test_case_issues. Usage is only inferable from the verb and the phrase 'assigned to a specific test case'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_test_case_risksBRead-onlyIdempotent
Get all risks for a test case. Retrieve all risks assigned to a specific test case using its unique identifier.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is clear. The description adds no further behavioral context such as pagination, ordering, or empty-result handling. With annotations covering safety, this is adequate but minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences that are front-loaded with the core action and resource, with zero redundant text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read operation with one required path parameter and rich annotations, the description is functionally complete for basic invocation. However, it omits return value structure (no output schema) and parameter details, leaving some gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% (the nested testCaseId has no description in the schema), and the description only mentions that it uses a 'unique identifier' without specifying format or constraints. It fails to compensate for the lack of schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get/Retrieve') and resource ('risks for a test case') and identifies the identifier used for lookup. It is clearly distinguishable from its inverse sibling get_risk_test_cases.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this tool versus alternatives (e.g., get_risk_test_cases), nor are there prerequisites or exclusions mentioned. The description merely restates what the tool does.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_test_case_tagsCRead-onlyIdempotent
Get all tags for a test case. Retrieve all tags assigned to a specific test case using its unique identifier.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false, so the safety profile is fully covered. The description adds nothing beyond that — no pagination behavior, no return shape, no auth or scope caveats — so it contributes no behavioral value on top of the structured data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences where the second is a near-verbatim restatement of the first ('Get all tags for a test case' / 'Retrieve all tags assigned to a specific test case'). The purpose is front-loaded, but half the text is redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter read tool with annotations covering safety and no output schema required, the description is nearly sufficient. The remaining gap is the lack of differentiation from get_test_case_tags_collection and other tag-fetching siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is reported at 0%, so the description must carry the param burden. It says the test case is identified by 'its unique identifier', which mirrors the single required testCaseId property, but adds no format, type, or constraint details beyond what the schema already implies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: retrieving all tags assigned to a specific test case. However, it does not distinguish this tool from nearby siblings such as get_test_case_tags_collection, get_issue_tags, or get_requirement_tags, which an agent must disambiguate on its own.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus the collection variant or the equivalent tag tools for issues, requirements, and risks. The description only restates the operation without any context, prerequisites, or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_test_case_tags_collectionBRead-onlyIdempotent
Get all test case tags. Retrieve all tags that are currently used on test cases within a project.
Tags are labels that help categorize and organize test cases, making it easier to filter and group related test cases.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description does add one useful behavioral constraint beyond the annotations: only tags 'currently used' on test cases are returned, implying unused/defined tags are excluded. It says nothing about return shape or pagination.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core statement is front-loaded, but the second sentence largely restates the first ('all tags... currently used on test cases'), and the third is generic background about what tags are that does not help invoke the tool. Roughly half the text is filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, read-only collection endpoint with annotations covering the safety profile, the description delivers the essential scope (project-level, in-use tags). The absence of any note about the returned tag shape or ordering is a minor gap given there is no output schema, but the tool is simple enough that nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is a single required parameter wrapped in a nested 'query' object, and the description's phrase 'within a project' confirms the project scoping that project_id expresses. With only one self-documented parameter, the description neither adds meaning nor creates confusion, matching the baseline for a lightly documented single-parameter tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get all test case tags') plus the scope ('all tags currently used on test cases within a project'), which is enough to distinguish it from a single-case lookup. It does not, however, name the sibling get_test_case_tags, so the agent must infer the collection-vs-single distinction from the name alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance and no mention of alternatives. The only contextual sentence ('Tags are labels that help categorize and organize test cases, making it easier to filter and group related test cases') explains what tags are, not when an agent should call this tool instead of get_test_case_tags or get_issue_tags_collection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_test_case_test_resultsCRead-onlyIdempotent
Get all test results for a test case. Retrieve the complete execution history for a specific test case using its unique identifier.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover safety (read-only, idempotent, open-world, non-destructive). The description adds that it returns 'all test results' and 'the complete execution history', which is useful behavioral context, but it lacks details on pagination, rate limits, or authentication requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence is front-loaded and clear, but the second sentence largely repeats the same information, adding little value. The description could be more concise without losing meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the rich annotations and absence of an output schema, the description covers the basic purpose but fails to differentiate from similar sibling tools (e.g., get_test_run_test_results) and provides minimal parameter detail, leaving gaps for an agent to confidently select and invoke it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate but does not. It merely states 'using its unique identifier', which is a vague restatement of the parameter's purpose and adds no syntax or format details beyond what the schema already implies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb (get), resource (test results), and scope (for a test case), distinguishing it from similar tools like get_test_run_test_results by specifying 'for a test case'. However, it does not explicitly name or differentiate from siblings within the description, falling short of the highest clarity level.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, nor does it mention any prerequisites or exclusions. Usage is only implied by the resource and scope, which is insufficient for explicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_test_case_test_runsBRead-onlyIdempotent
Get all test runs for a test case. Retrieve all test runs that include a specific test case using its unique identifier.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is fully covered without the description. The description adds only the traversal semantics (runs containing the case); it says nothing about pagination, result volume, or ordering, which are the traits an agent would still want for a collection endpoint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the purpose. The second sentence largely restates the first ('get all test runs for a test case' vs 'retrieve all test runs that include a specific test case') with only the relation direction as new information, so there is mild redundancy but no bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter, read-only lookup with no output schema, the definition covers the essentials. Missing are the things that matter for a collection endpoint — return shape, pagination, and how it differs from the sibling test-result endpoints — leaving it adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% at the top level (a single nested 'path' object), though the inner testCaseId carries its own description. The description adds only 'using its unique identifier', which restates the schema rather than explaining the nested path wrapper or the identifier's provenance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get all test runs for a test case') and clarifies the relation direction — test runs that *include* a given test case. This implicitly distinguishes it from its near-namesake sibling get_test_case_test_results (results, not runs) and from the reverse lookup get_test_run_test_cases, though it never names them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the phrase 'test runs that include a specific test case' tells the agent the relation being traversed, which is enough to know roughly when it applies. But there is no explicit when-to-use guidance, no mention of the adjacent get_test_case_test_results / get_test_run_test_cases alternatives, and no stated prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_test_environmentCRead-onlyIdempotent
Get a specific environment. Retrieve a specific test environment using its unique identifier.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so the safety and idempotency profile is fully covered structurally. The description adds nothing beyond that – no error behavior for an unknown ID, no permission notes, no return-format context – so it earns little credit over the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences where the second largely restates the first ('Get a specific environment' vs 'Retrieve a specific test environment using its unique identifier'). It is short and front-loaded, but the redundancy means not every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a simple single-resource getter with a trivial nested schema and no output schema, so the description need not explain return values. Still, for a tool embedded in a very large sibling set it should say more about where the identifier comes from and how this differs from the collection endpoint.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and there is one nested required parameter, but the description's phrase 'using its unique identifier' at least tells the agent the parameter is an ID. It adds only marginal meaning beyond the schema's field naming and does not explain the nested 'path' object structure.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get'/'Retrieve') and resource ('test environment') and signals it returns a single item by unique identifier, which implicitly distinguishes it from the sibling get_test_environment_collection. However, it never names that collection sibling or other related tools (put/delete_test_environment), so differentiation is left to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus get_test_environment_collection or the other get_* siblings, and no prerequisites (e.g., needing an ID obtained from the collection) are stated. Usage is only implied by the word 'specific'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_test_environment_collectionCRead-onlyIdempotent
Get all environments. Retrieve all test environments.
Apply sorting and pagination to organize the results.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds only that sorting and pagination can be applied, without disclosing result shape, pagination defaults, auth requirements, or rate limits; it adds minor value beyond structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first two sentences ('Get all environments. Retrieve all test environments.') are redundant restatements of the tool name, so at least one sentence does not earn its place. The second sentence about sorting and pagination is more useful, but the overall structure is inefficient despite being short.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, yet the description does not explain what an environment record contains or what the collection response looks like. It also omits pagination behavior and any relation to get_test_environment, leaving the agent with insufficient context for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The signal reports 0% schema description coverage at the top level, so the description should compensate by explaining the query object and its page, limit, and order parameters. Instead it merely says 'Apply sorting and pagination,' adding no syntax, defaults, maximum values, or meaning beyond the parameter names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a verb ('Get') and resource ('environments'), but 'Get all environments. Retrieve all test environments.' is mostly a restatement of the tool name. It does not distinguish this collection tool from the sibling get_test_environment, so the agent must rely on naming conventions to tell them apart.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as get_test_environment, nor any mention of filtering, scoping, or prerequisites. The only usage hint is that sorting and pagination can be applied, which is not a selection guideline.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_test_resultBRead-onlyIdempotent
Get a specific test result. Retrieve a specific test result using its unique identifier. Use the relations parameter to include associated data in a single request.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so safety/idempotency are covered. The description adds that relations can be fetched 'in a single request', implying call consolidation, but says nothing about return shape, error behavior for missing IDs, or whether 404s differ from empty results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the core action. The middle sentence is a near-verbatim restatement of the first, which is wasted space but not damaging.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description could usefully say what a test result contains or note the relation-expansion behavior in more detail. It covers the lookup and one optional parameter adequately for a simple single-record GET, but leaves return-content and error semantics unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description calls out the relations parameter and its purpose (including associated data in one request), which is useful framing. However the nested required `path.testResultId` object and the enum of includable relations are left to the schema, and with reported schema description coverage at 0% the description does not fully compensate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Get a specific test result') and adds the identifier-based retrieval mechanism, which distinguishes it from collection siblings like get_test_result_collection and get_test_run_test_results. The second sentence largely restates the first, so it doesn't add differentiation beyond the opening line.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus the many sibling retrieval tools (get_test_result_collection, get_test_run_test_results, get_issue_test_results). The only usage hint concerns the relations parameter, not tool selection, so an agent gets no routing help.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_test_result_attachmentsCRead-onlyIdempotent
Get all attachments for a test result. Retrieve all attachments for a test result using its unique identifier.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint, so the safety profile is fully covered by structured data. The description adds nothing behavioral beyond that—no pagination, no return shape, no auth requirements—and the second sentence merely restates the first.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, but the second ('Retrieve all attachments for a test result using its unique identifier') is a near-verbatim restatement of the first, adding only the trivial fact that an identifier is required. The purpose is front-loaded, but half the text does not earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only getter with annotations covering safety and no output schema, the definition is minimally adequate: an agent knows what it returns and what it needs. It is short of complete because it says nothing about result volume, pagination, or error behavior when the test result has no attachments.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% at the top level and the parameter is a nested object with additionalProperties=false, yet the description only says 'using its unique identifier,' which essentially echoes the parameter name. It does not explain the nested {path: {testResultId}} structure or confirm which identifier form is expected beyond what the schema already shows.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get') and resource ('attachments for a test result'), and the scope is scoped to test results rather than issues or test cases, which helps distinguish it from siblings like get_issue_attachments and get_test_case_attachments. However, it never names those alternatives explicitly, so the differentiation is inferred from the resource noun rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no mention of the sibling attachment tools (get_issue_attachments, get_test_case_attachments) or when to prefer this one. The agent must infer usage solely 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.
get_test_result_collectionBRead-onlyIdempotent
Get all test results. Retrieve all test results from a project.
Apply custom filters, sorting, and pagination to find the test results you need. Include related data using the relations parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false, so the safety profile is covered. The description adds that relations can be included, but does not disclose pagination defaults, rate limits, or behavior for large result sets. With annotations present, the bar is lower, but additional behavioral context is minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded, starting with the core action. It avoids unnecessary repetition, though the first sentence is somewhat redundant with the second ('Get all test results' vs 'Retrieve all test results'). Still, it's efficient overall.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (nested query object, many filter fields) and the lack of an output schema, the description should explain return format or pagination behavior, but it does not. It covers the main capabilities (filter, sort, paginate, relations) but leaves gaps regarding the structure of returned data and default limits. It's adequate but incomplete for a collection tool with rich filtering.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is reported as 0%, yet the nested schema actually contains descriptions for most parameters (page, limit, order, filter fields, etc.). The top-level parameter count is 1 (query), but it's a deeply nested object. The description only mentions 'custom filters, sorting, and pagination' and 'relations parameter' without adding syntax or format details beyond what's in the schema. Given the low coverage metric, the description should compensate more, so a 2 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: retrieving all test results from a project. It's distinguishable from sibling get_test_result (singular), but does not explicitly differentiate from other collection tools like get_test_case_test_results or get_test_run_test_results, which also return test results scoped differently.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions filtering, sorting, pagination, and relations, which implies when to use this broad collection tool, but gives no explicit guidance on when to prefer it over the scoped alternatives (e.g., get_test_run_test_results). It lacks exclusions or alternative selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_test_result_commentsCRead-onlyIdempotent
Get all comments for a test result. Retrieve all comments for a test result using its unique identifier.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds nothing beyond the basic read operation – no note on pagination, volume, or ordering – so the bar is barely met given annotations carry most of the burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences that say essentially the same thing ('Get all comments...' and 'Retrieve all comments... using its unique identifier'), which is redundant rather than front-loaded. It is appropriately short but wastes a sentence repeating the same content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read endpoint with no output schema and 0% schema coverage, the description should compensate by explaining the return shape or pagination. It does not, leaving the agent with only the annotations to understand behavior. The redundancy also means no additional context is provided.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With schema description coverage at 0% and only one parameter (nested testResultId), the description mentions 'unique identifier' which loosely maps to testResultId but provides no format or validation guidance. The schema itself documents testResultId as 'The test result identifier,' so the description adds little beyond that baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Get) and resource (comments for a test result) with the identifying key. It clearly distinguishes from the sibling get_issue_comments and get_test_case_comments by naming the test result scope, though it does not explicitly name those siblings as alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus post_test_result_comment or other comment-fetching siblings like get_test_case_comments. The description just restates the operation without usage context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_test_result_issuesBRead-onlyIdempotent
Get all issues for a test result. Retrieve all issues linked to a test result using its unique identifier.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is clear. The description adds nothing about return format or pagination, which is a gap, but the annotations carry the behavioral burden adequately for a read tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences that are front-loaded with the core action. The second sentence is largely redundant with the first, slightly reducing conciseness, but there is no extraneous detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple GET tool with annotations and a single nested parameter, the description is minimally complete. It does not mention pagination or output structure, but the absence of an output schema means the agent has no guidance on the return shape, which is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and there is only one nested parameter. The description mentions using the test result's 'unique identifier', which maps directly to testResultId but adds no semantic detail beyond what the schema implies. Baseline for a single undocumented parameter lands at 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Get) and resource (issues for a test result), which is clear. It doesn't explicitly differentiate from the sibling get_test_case_issues or get_issue_test_results, leaving some ambiguity about scope, but the resource is identifiable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No indication of when to use this tool versus the many similar siblings like get_issue_test_results or get_test_case_issues. No prerequisites or exclusions are provided, leaving 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.
get_test_result_states_collectionBRead-onlyIdempotent
Get all test result statuses. Retrieve all test result statuses configured for a project. Test result statuses define the possible outcomes when executing a test case.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the safety profile is covered. The description adds domain context by defining what a test result status is (a possible outcome of executing a test case), but says nothing about ordering, completeness, or whether the result is project-scoped beyond the parameter.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first two sentences restate the same fact ('Get all test result statuses' / 'Retrieve all test result statuses configured for a project'), which is redundant filler. The third sentence is the only one that earns its place by defining the domain concept.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only collection lookup with no output schema, the description covers what is returned conceptually but not its shape or size. With many near-identical '*_collection' siblings, a one-line disambiguation of what makes test result statuses different from run states would have made this complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is reported at 0% for a single required nested parameter (query.project_id). The description compensates only indirectly by saying the statuses are 'configured for a project', implying project scoping, but never explicitly names the project_id requirement or its format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (retrieve all test result statuses) and scopes it to a project, so the agent knows exactly what is fetched. It does not distinguish itself from close siblings such as get_test_run_states_collection or get_issue_statuses_collection, leaving the 'which statuses tool do I want' question to the agent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: this is a project-scoped read of configured statuses, useful when you need the set of valid outcomes before creating/updating test results. There is no explicit when-to-use statement, no exclusion, and no mention of the adjacent run-state or issue-status lookup tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_test_runBRead-onlyIdempotent
Get a specific test run. Retrieve a specific test run using its unique identifier.
This endpoint returns all details of the test run, including its name, environment, state, and custom fields.
Use the relations parameter to include associated data in a single request.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the operation as read-only, idempotent, non-destructive, and open-world, so the safety profile is covered. The description adds that it returns full details and supports a relations parameter for including associated data, which is useful but not deep behavioral context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loads the core purpose before elaborating on returned details and the relations parameter. There is minor redundancy between the first and second sentences but no wasted prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple get-by-ID endpoint with annotations covering safety, the description provides the essential purpose and mentions the relations parameter. However, with no output schema and 0% schema coverage, it could better explain what 'relations' includes and what the response structure looks like, leaving some ambiguity for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for the single nested parameter, so the description partially compensates by mentioning the unique identifier and the relations parameter. However, it doesn't clarify the identifier format beyond 'unique identifier' and doesn't enumerate what relations values are valid, leaving gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource ('Get a specific test run... using its unique identifier') and enumerates the returned fields (name, environment, state, custom fields). It is clear and specific but does not differentiate itself from siblings like get_test_run_collection or get_my_test_run_collection, which would require stating that this fetches a single run by ID.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the mention of the unique identifier and the relations parameter, but there is no explicit guidance about when to use this versus get_test_run_collection or other retrieval endpoints, nor any stated prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_test_run_collectionBRead-onlyIdempotent
Get all test runs. Retrieve all test runs from a project.
Apply custom filters, sorting, and pagination to find the test runs you need. Include related data using the relations parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds that filters, sorting, pagination, and relation inclusion are supported, which is useful capability context, but omits pagination response behavior, result limits, and auth requirements. It also refers to a 'relations parameter' that does not exist under that name in the schema (the field is `with`).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The opening sentence 'Get all test runs' is a tautological restatement of the name before the second sentence repeats the same idea with 'from a project'. The remaining two sentences are tight and front-loaded, so the overall size is fine but the first line earns nothing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a heavily self-documented nested schema, safety annotations, and no output schema, the description is only minimally complete: it covers the existence of filtering/sorting/pagination/relations but omits sibling disambiguation and uses imprecise parameter naming. Adequate, but with visible gaps for a query-heavy collection tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Top-level schema coverage is 0% - the single required `query` object carries no description - so the description should compensate, and it largely does not. It gestures at filters/sorting/pagination but gives no syntax, and its 'relations parameter' reference mismatches the schema's `with` field, which risks sending the agent looking for a parameter that isn't there.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get all test runs. Retrieve all test runs from a project'), which clearly identifies a collection-listing operation. It implicitly contrasts with the singular get_test_run, though it never names a sibling explicitly, so an agent must infer the distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Apply custom filters, sorting, and pagination to find the test runs you need' implies the listing/query use case but gives no when-to-use vs the obvious alternatives get_test_run (single run) or get_my_test_run_collection (scoped to the caller). No exclusions, prerequisites, or routing guidance are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_test_run_states_collectionARead-onlyIdempotent
Get all test run states. Retrieve all available test run states. Test run states represent the lifecycle stages a test run can be in, such as open, in progress or closed.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so the safety/idempotency profile is fully covered. The description adds the semantic meaning of the returned values (lifecycle stages with examples), but says nothing about ordering, pagination, or whether the list is static.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the action, but the first two sentences are redundant ('Get all test run states. Retrieve all available test run states.') and one of them should have been cut. The third sentence earns its place by defining the resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters, no output schema, and full annotation coverage, the description supplies the one thing structured fields cannot: what a 'test run state' actually is, with concrete examples. Adequate for a simple enum-collection endpoint.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline of 4 applies. There is nothing for the description to clarify on the input side.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Get) and resource (test run states) and defines what the resource means ('lifecycle stages a test run can be in, such as open, in progress or closed'). This implicitly separates it from the sibling get_test_result_states_collection, though it never names that sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance, but the tool is a trivial enumeration-returning GET, so the intended usage (fetch the valid state vocabulary for test runs) is strongly implied by the description's definition of the resource.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_test_run_tagsCRead-onlyIdempotent
Get all tags for a test run. Retrieve all tags assigned to a specific test run using its unique identifier.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is fully covered structurally. The description adds nothing beyond that — no pagination behavior, no empty-result behavior, no authorization notes — it merely restates 'retrieve'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences that say essentially the same thing; the second ('Retrieve all tags assigned to a specific test run using its unique identifier') is largely redundant with the first. No structural defects, but half the text is filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only lookup with no output schema, the description is minimally sufficient — an agent can call it. But it omits the return shape of tags and how it differs from the collection sibling, leaving real gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
One required parameter at 0% schema description coverage, so the description must compensate, and it does only weakly: 'using its unique identifier' implies the testRunId path field but gives no format or nesting detail for the nested path object.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb+resource: 'Get all tags for a test run', with the scope narrowed to a single run identified by its unique identifier. However, it does not differentiate itself from the sibling get_test_run_tags_collection, which an agent could easily confuse it with.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool, when not to, or which sibling (get_test_run_tags_collection) to prefer. The sole clue is 'specific test run', which is a scope statement rather than usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_test_run_tags_collectionARead-onlyIdempotent
Get all test run tags. Retrieve all tags that are currently used on test runs within a project.
Tags are labels that help categorize and organize test runs, making it easier to filter and group related test runs.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already signal read-only, idempotent, safe behavior, so the description needn't repeat that. It adds context that tags are used for categorization and filtering, which helps the agent understand the data. However, it doesn't disclose pagination, return format, or other behavioral details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the main action. The second sentence adds context about tags without significant redundancy, though it could be trimmed slightly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given annotations cover safety and the input schema defines the required project_id, the description is adequate but lacks details on return values or pagination. No output schema exists, so the description could do more to explain what 'all tags' returns, but it's sufficient for basic invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description mentions 'within a project' which hints that the project_id parameter is required, but it doesn't explain the nested 'query' object or the parameter's role. With low coverage, the description should compensate more, but it provides minimal parameter guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: 'Get all test run tags' and clarifies the scope ('all tags that are currently used on test runs within a project'). This distinguishes it from sibling get_test_run_tags, which likely retrieves tags for a specific test run, while this tool gets the collection for a project.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for filtering and grouping test runs, but it does not explicitly state when to use this tool versus alternatives like get_test_run_tags or get_issue_tags_collection. No exclusions or alternatives named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_test_run_test_casesBRead-onlyIdempotent
Get all test cases for a test run. Retrieve all test cases assigned to a specific test run using its unique identifier.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare it as read-only, idempotent, non-destructive, and open-world, which covers the safety profile. The description adds some context by specifying 'assigned to a specific test run', but doesn't disclose pagination, ordering, or potential latency. With annotations providing the core behavioral hints, a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core purpose. The second sentence repeats the first with slightly more detail but doesn't introduce errors, making it efficient though slightly redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has one required parameter, no output schema, and annotations covering safety, the description is adequate but not thorough. It doesn't mention the return structure or whether test cases include metadata, which could help an agent interpret results, but the basic invocation is clear.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, but the description implies the parameter is a unique test run identifier, which aligns with the schema's 'testRunId'. However, it doesn't add format details or clarify that the parameter is nested under 'path', so it only partially compensates for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb (Get) and resource (test cases for a test run), leaving no ambiguity about what the tool returns. However, it doesn't distinguish itself from related tools like get_test_case_test_runs or get_test_run_test_results beyond the resource name, which is a minor gap given the large sibling set.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. The description merely restates the operation without context on prerequisites, such as whether the test run must be open or exist, or when to prefer other test case retrieval tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_test_run_test_resultsBRead-onlyIdempotent
Get all test results for a test run. Retrieve all test results for a specific test run using its unique identifier.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive and open-world, so the safety profile is fully covered without the description. The description adds only the scoping constraint (one test run), no pagination, result volume, or return-shape context; with the lower bar set by annotations, this is adequate but not additive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, but the second ('Retrieve all test results for a specific test run using its unique identifier') largely restates the first ('Get all test results for a test run'). The lead is front-loaded and short, but half the text is redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only retrieval with no output schema, the description covers the core action and scope but omits anything about result volume, pagination, or ordering, and gives no help distinguishing it from the many sibling test-result endpoints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
One required nested parameter (path.testRunId) with 0% reported schema description coverage, so the description should compensate. It only says 'using its unique identifier', which restates the identifier's role without adding type, format, or nesting guidance beyond the schema's own testRunId description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Get') and resource ('test results for a test run'), and the second sentence narrows the scope to a single test run by its identifier. It doesn't differentiate itself from close siblings like get_test_result_collection or get_test_case_test_results, but the resource is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use or when-not-to-use guidance, and no mention of alternatives in a crowded sibling set (get_test_result_collection, get_test_case_test_results, get_test_run_test_cases). The use case is only weakly implied by the phrase 'for a specific test run'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_test_run_usersCRead-onlyIdempotent
Get all users for a test run. Retrieve all users assigned to a specific test run using its unique identifier.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint=true, so the safety profile is covered by structured data. The description adds no behavioral context beyond restating that it reads users; it does not mention pagination, ordering, or what happens when the test run has no users.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, but the second is largely a restatement of the first ('get all users for a test run' vs 'retrieve all users assigned to a specific test run'). It is short but not maximally front-loaded or information-dense.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter read tool with full annotation coverage and no output schema, the description is minimally adequate: it identifies the resource and the required identifier. It lacks ordering/pagination context but nothing critical is missing to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is reported at 0%, so the description should compensate, but it only repeats that the identifier is 'unique' without adding format, type, or constraint detail. The nested path.testRunId schema does carry a minimal inline description, so the description contributes essentially nothing new.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: retrieve all users assigned to a test run. It is clearly distinguishable from nearby siblings like get_test_run_test_cases or get_team_members, though it does not explicitly call out that distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives (e.g., get_user_collection or get_team_members), nor any prerequisites or context about when a test-run user listing is appropriate. Usage must be inferred entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_test_suiteCRead-onlyIdempotent
Get a specific test suite. Retrieve a test suite (folder) using its identifier. DEPRECATED.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the safety profile is covered structurally. The deprecation flag is genuine added behavioral context, but it is unactionable without naming a replacement, so it only partially earns credit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Short, but the first two sentences say the same thing twice ('Get a specific test suite' / 'Retrieve a test suite...'), so it is redundant rather than dense. The deprecation notice is correctly front-loaded only in the sense of being last-but-prominent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool explicitly marked deprecated, the definition leaves the most important question unanswered: what should the agent use instead. With no output schema and an undocumented nested parameter object, the description is not complete enough to call this tool confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is reported as 0% for the nested 'path' object, and the description only says retrieval happens 'using its identifier,' which restates the parameter name rather than clarifying the nested structure. It adds minimal meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get a specific test suite'), and adds a useful synonym clarification that a suite is a folder. It does not explicitly distinguish itself from the sibling get_test_suites_collection, but the singular/plural pair is unambiguous enough.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only usage signal is the bare tag 'DEPRECATED.' with no indication of what supersedes it or when it is still safe to call. An agent learns it should avoid the tool but has no path to an alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_test_suites_collectionCRead-onlyIdempotent
Get all test suites.. Get all test suites (root folders). This endpoint is deprecated. We recommend updating your code. DEPRECATED.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, non-destructive, and open-world behavior. The description adds deprecation and root-folder scope, but says nothing about pagination, return shape, or how the nested filters affect behavior. With annotations carrying the safety profile, this is adequate but thin.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description repeats 'Get all test suites' and states deprecation twice. The redundant sentences do not earn their place, and deprecation is not cleanly front-loaded. It is short but structurally poor.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a deprecated collection endpoint with a nested filter object, pagination options, and no output schema, the description is incomplete. It mentions deprecation but omits the recommended replacement and any operational detail an agent would need to call or avoid the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description provides no parameter guidance at all. Although the schema contains nested descriptions for pagination and filter fields, the top-level parameter is undocumented per the context signal, and the description does not compensate with required project_id usage or filter syntax.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: retrieving all test suites, clarified as 'root folders.' It distinguishes the scope somewhat, but does not differentiate from siblings such as get_test_suite or get_folders_collection. The duplicated first sentence slightly muddles an otherwise clear purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only guidance is a deprecation warning advising code updates. It gives no when-to-use context, no explicit alternative tool, and no conditions under which an agent should still call it. Siblings like get_folders_collection are not mentioned as replacements.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_userCRead-onlyIdempotent
Get a specific user. Retrieve a specific user using its unique identifier.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint, so the safety profile is covered. The description adds nothing beyond that — no note on what happens if the user is not found, what authentication is required, or what fields are returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences that convey identical information; the second is pure redundancy. Nothing is front-loaded beyond the tautological first clause.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-entity lookup with annotations covering the safety profile and no output schema, the description still omits return content, not-found behavior, and permission requirements. It is functional but leaves real gaps for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is reported as 0% for the top-level 'path' wrapper, though the nested userId does carry 'The user identifier.' The description's phrase 'using its unique identifier' mirrors what the schema already documents and adds no format, range, or lookup semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a verb and resource ('Get a specific user'), and the word 'specific' hints at a single-resource lookup versus the sibling collection tools. However, the second sentence simply restates the first with slightly different wording and adds no distinguishing scope, so this is adequate but vague against siblings like get_user_collection or my_account.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool versus get_user_collection, my_account, or the other user-related siblings. The agent must infer that a known userId is a precondition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_user_collectionARead-onlyIdempotent
Get all users. Retrieve all users.
Apply custom filters, sorting, and pagination to find the users you need. Include related data using the relations parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the safety profile is covered. The description adds that filtering, sorting, pagination and relation inclusion are supported, but says nothing about pagination defaults, result caps, or auth scope that the annotations don't already imply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
'Get all users. Retrieve all users.' is a pure restatement that consumes the front-loaded position without adding information, though the remaining two sentences are tight and informative. The opening redundancy is the main structural flaw.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only collection endpoint with no output schema, the description covers the four meaningful behaviors an agent needs (filter, sort, paginate, expand relations), and the annotations carry the safety profile. Return-value detail is not required since the schema and annotations cover the rest.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage on the top-level parameter is 0% (the nested 'query' object carries the documentation), so the description does usefully name filters, sorting, pagination and relations as capabilities. However, it calls the relation field 'the relations parameter' while the schema names it 'with', a naming mismatch that could send an agent looking for the wrong key.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get all users', 'Retrieve all users') and makes clear this returns a collection rather than a single record. It does not, however, distinguish itself from siblings like get_user or my_account, so an agent learns the resource but not why it should pick this over the single-user tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Apply custom filters, sorting, and pagination to find the users you need' implies the intended use case of a filtered list query, but there is no explicit when-to-use versus get_user or a named alternative. Usage is inferable rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_versions_collectionCRead-onlyIdempotent
Get all versions. Retrieve all versions across all applications.
Apply sorting and pagination to organize the results. Include related data using the relations parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld, and non-destructive. The description adds that sorting, pagination, and relations inclusion are possible, which hints at response customization, but it doesn't disclose return format, pagination limits, or rate limits. With annotations covering safety, this is a moderate addition.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, with the first two being somewhat redundant. Front-loads the purpose but could be tightened by merging the first two sentences. No wasted fluff beyond that.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only collection endpoint with annotations and a detailed schema, the description covers the essential scope and key features (sorting, pagination, relations). It misses the search query parameter and does not explain pagination defaults or limits. Adequate but incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is reported as 0% for the top-level parameter, though nested properties have descriptions. The description mentions the relations parameter and sorting/pagination, mapping to 'with', 'order', 'page', 'limit', but omits the 'query' search parameter entirely. It does not fully compensate for the low coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Get'/'Retrieve') and resource ('versions'), and scopes it to 'across all applications', which implicitly distinguishes it from the sibling tool get_application_versions (scoped to a single application). However, the first sentence 'Get all versions' is somewhat tautological and the scope clarification comes in the second sentence. Still clear overall.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus get_application_versions or other version-related tools. The advice to apply sorting/pagination and include relations is operational, not usage selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_webhookCRead-onlyIdempotent
Get a specific webhook. Retrieve a specific webhook using its unique identifier.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, covering the safety profile. The description adds nothing beyond that — no note on error behavior for unknown IDs, permissions, or response shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The second sentence restates the first with no new information, so half the text is redundant. It is short and front-loaded, but does not earn its length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a trivial single-GET tool with annotations covering safety and no output schema required, the description is minimally adequate. It omits the only genuinely useful content: how this differs from get_webhook_collection and what happens on a missing ID.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The phrase 'using its unique identifier' loosely maps to the nested webhookId parameter, adding marginal meaning. With 0% schema description coverage and a nested object param, the description does not compensate by explaining the path/webhookId shape or format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (get) and resource (webhook) and marks it as a single-item lookup via 'a specific webhook,' which distinguishes it from get_webhook_collection. It does not, however, name or contrast with any sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, prerequisites, or alternatives are given. An agent must infer that get_webhook_collection is the right tool for listing and this one only for a known ID.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_webhook_collectionCRead-onlyIdempotent
Get all webhooks. Retrieve all webhooks. Apply pagination to find the webhooks you need.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety profile is covered. The description's only addition is the pagination hint; it says nothing about result ordering, project scoping, or response shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences that restate the same idea ('Get all webhooks. Retrieve all webhooks.'), which is redundancy rather than front-loaded information. The pagination note is the only non-duplicated content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a list tool with a required nested query object, 0% schema coverage and no output schema, the description omits the required project scoping and pagination mechanics. An agent could not reliably invoke it from this text alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is reported at 0% and the parameters are nested (page, limit, project_id). The description only gestures at pagination and never mentions that project_id is required, so it 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.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear verb+resource (get all webhooks), and 'all' hints at the collection scope, but it never distinguishes itself from the sibling get_webhook. The purpose is understandable yet vague on scope relative to the rest of the API.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Only a weak hint that pagination should be used to 'find the webhooks you need.' There is no statement of when to use this instead of get_webhook, no prerequisites, 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_webhook_event_collectionARead-onlyIdempotent
Get all webhook events. Retrieve all available webhook events.
Webhook events define the triggers that cause a webhook to send a notification, such as when a test case is created or a requirement is updated.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, open-world, and non-destructive behavior. The description adds domain context (triggers and examples) but omits return format, pagination, and any auth or rate-limit notes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first two sentences are redundant ('Get all webhook events' and 'Retrieve all available webhook events'). The explanatory sentence is useful, but the duplication wastes space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple zero-parameter read-only collection, the definition is mostly complete. It explains the resource and gives examples, but lacks output shape or pagination info; annotations cover safety.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters, so the baseline is 4 per the rubric. There are no parameter semantics to document beyond what the empty schema already communicates.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb 'Get' and resource 'webhook events', with a clear explanation of what webhook events represent. It does not explicitly contrast with sibling tools like get_webhook_collection or get_webhook, but the resource distinction is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use guidance or alternatives; the description only implies it is for listing all webhook events. It does not say when to use this versus get_webhook or get_webhook_collection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
make_admin_userBDestructive
Grant user admin privileges. Grant a user admin privileges using its unique identifier.
Admin users have full access to all settings and resources across the account.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=false and openWorldHint=true, so the safety profile is covered. The description adds genuine context about the blast radius ('full access to all settings and resources across the account'), but says nothing about reversibility, permission requirements, or side effects on existing sessions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first two sentences say the same thing twice ('Grant user admin privileges' / 'Grant a user admin privileges using its unique identifier'), which is pure repetition. The third sentence about admin scope is the only genuinely additive one.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive, non-idempotent privilege-escalation mutation with no output schema, the description conveys the effect but omits failure modes, reversibility, and whether repeated calls are meaningful. Annotations carry part of that burden, but gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is reported as 0% for a single nested userId parameter, so the description's phrase 'using its unique identifier' does add some meaning. However, it adds no format, type, or lookup guidance beyond that, so it only partially compensates.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (grant admin privileges to a user) with a clear scope of impact. The grant/revoke pairing with the sibling remove_admin_user is inferable from the verb, though the sibling is never named explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites (e.g. the user must already exist), and no mention of the counterpart tool remove_admin_user for reversing the change. Usage must be inferred entirely from the verb.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mark_test_result_not_viewedCDestructive
Mark a test result as not viewed. Mark a test result as not viewed using its unique identifier.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this as a destructive, non-idempotent, open-world write operation. The description adds no behavioral context beyond restating the operation, such as what exactly is destroyed, whether authentication or special permissions are required, or side effects on related entities.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences that say essentially the same thing: the second sentence repeats the first with no additional information. It is short but includes redundant wording that does not earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive mutation tool with nested parameters, no output schema, and an existing sibling counterpart, the description is too thin. It omits usage guidance, parameter details, side effects, and return behavior, leaving the agent with insufficient context for safe invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has low description coverage, yet the description only says 'using its unique identifier' without naming the testResultId parameter or explaining the query.with relations option. It does not compensate for the missing parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: marking a test result as not viewed using its identifier. It is understandable without the schema, but it does not distinguish this tool from its obvious sibling mark_test_result_viewed beyond the opposite state.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives no guidance on when to use this tool versus mark_test_result_viewed, nor any prerequisites or context about when unsetting viewed status is appropriate. 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.
mark_test_result_viewedCDestructive
Mark a test result as viewed. Mark a test result as viewed using its unique identifier.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a non-read-only, non-idempotent, destructive write with open-world effects, so the description does not contradict them. But the description adds nothing beyond them: it never says what state changes, whether the view is attributed to the calling user, whether the call is reversible, or what permissions are required for what is flagged as a destructive operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences where the second is a near-verbatim restatement of the first; the only added token is 'using its unique identifier.' Half the text is redundant rather than front-loading useful detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Annotations carry the safety profile and there is no output schema to explain, which lowers the burden. Still, for a nested-object, zero-coverage, destructive mutation tool, the description leaves the identifier requirement and the relation-expansion option undocumented, so it is only minimally viable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is reported at 0% and the description only alludes to an 'unique identifier' without naming the `path.testResultId` parameter or its nesting. The optional `query.with` relations parameter — which materially changes the response payload — is completely unaddressed, so the description 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence states a specific verb and resource ('mark a test result as viewed'), so an agent knows the operation. However, it does nothing to distinguish this from the sibling `mark_test_result_not_viewed`, and the second sentence merely restates the first with 'using its unique identifier' appended, adding no new distinguishing information.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites, and no mention of the obvious alternative `mark_test_result_not_viewed` or of how this relates to reading test results. The agent must infer the context 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.
move_test_caseCDestructive
Move a test case to a folder. Move a test case to a different folder within the project using its unique identifier.
This allows you to reorganize your test cases into a logical folder structure for better organization and navigation.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this as destructive (destructiveHint=true), open-world, and not idempotent. The description does not disclose any additional behavioral traits such as permission requirements, side effects on test case history, what happens if the target folder is invalid, or whether the test case ID must already exist. For a mutation tool, this leaves significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short but somewhat repetitive: the first sentence and second sentence essentially restate the same action. The third sentence adds context about reorganization but is verbose and not front-loaded with critical details like the folder parameter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool moves a test case (a mutation), has no output schema, and the input schema has nested objects with 0% description coverage, the description is incomplete. It does not explain the required destination folder parameter, behavioral implications of moving, or what the operation returns or affects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for the two parameters. The description mentions 'unique identifier' for the test case but does not clarify the folder parameter, nor how to specify the destination folder. It fails to compensate for the undocumented nested parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb+resource: 'Move a test case to a folder.' It specifies relocating a test case within a project by its unique identifier. However, it does not distinguish this from sibling tools like move_test_run or other test-case operations, so it lacks explicit sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the purpose (reorganizing test cases) but offers no when-to-use or when-not-to-use guidance, no prerequisites, and no alternatives. There is no indication of when moving is appropriate versus, for example, updating via put_test_case or managing folders directly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
move_test_runBDestructive
Move a test run. Move a test run to a different milestone within the project using its unique identifier.
Moving a test run preserves all its test cases, test results, and configuration.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | ||
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=false, and openWorldHint=true, so the safety profile is mostly carried structurally. The description usefully adds that test cases, results, and configuration are preserved, but it omits the obvious destructive consequence — that the run leaves its previous milestone — and any auth requirements, so it only partially fills the remaining gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded, but the first two sentences are redundant restatements of the same action, and the third sentence about preservation, while useful, is the only content not already implied by the verb.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with nested path/body objects, no output schema, and full annotation coverage, the description covers what moves and what is retained, which is the minimum an agent needs. It stops short of the operational detail (permissions, previous-milestone removal, failure modes) that would make it complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With schema description coverage reported at 0%, the description has to carry the load, and it does map both parameters at a high level: 'using its unique identifier' implies the testRunId path param and 'to a different milestone' implies the milestone_id body param. It adds no format, type, or lookup guidance beyond that mapping, so it is only adequate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Move a test run') plus the target scope ('to a different milestone within the project'), so the agent knows exactly what changes. It is inherently distinguished from the similarly named move_test_case sibling by resource, though it never names or contrasts that sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites (e.g., required project/milestone permissions), and no mention of how this differs from put_test_run or clone_test_run, which could also change a run's placement. Usage is only inferable from the verb.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
my_accountARead-onlyIdempotent
Get authenticated user. Retrieve the user account details for the currently authenticated user.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is fully covered. The description adds only the self-scoping detail ('currently authenticated user') and says nothing about return fields, permissions, or error behavior, so it adds modest value beyond the structured data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Brief and front-loaded, but the two sentences are largely redundant — 'Get authenticated user' is restated as 'Retrieve the user account details for the currently authenticated user.' One of the two sentences could be cut without losing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, no-output-schema read tool, the description conveys enough to invoke it correctly: who the subject is (the caller) and that it is a retrieval. It could note what the account payload contains, but nothing essential for correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, which is the baseline-4 case: there is no parameter semantics for the description to carry and the empty schema is self-explanatory.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (get/retrieve) and resource (authenticated user's account details), and the phrase 'currently authenticated user' implicitly scopes it apart from the broader get_user and get_user_collection siblings. It never names those siblings explicitly, so the differentiation is inferred rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent can infer this is for fetching the caller's own profile in contrast to get_user, which takes an identifier. There is no explicit statement of when to prefer this over get_user or get_user_collection, and no stated prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
open_test_runBDestructive
Open a test run. Open a previously closed test run using its unique identifier. Reopening a test run allows you to continue creating and updating test results.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, readOnlyHint=false, openWorldHint=true, and idempotentHint=false. The description adds that reopening enables continued creation and updating of test results, but does not explain what side effects occur, what permissions are needed, or what happens to existing data. With annotations covering the safety profile, this is a modest addition.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences are front-loaded with the core action, but the first sentence 'Open a test run.' is redundant with the tool name and the second sentence repeats the same verb. Some words could be trimmed without losing meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with annotations but no output schema and one nested parameter, the description covers the basic purpose and a key effect. However, it omits prerequisites, permission requirements, and what specifically happens when a run is reopened (e.g., whether it alters existing results), leaving gaps that annotations alone do not fill.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% at the top level, though the nested testRunId field has its own description. The description says 'using its unique identifier', which maps to that parameter but adds little beyond what the schema already states. With only one parameter and partial schema coverage, the description does not fully compensate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (open) and resource (test run), and adds the state qualifier 'previously closed', which distinguishes it from creating a new test run. It does not explicitly differentiate from close_test_run or restore_test_run, but the purpose is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly says when to use it: to continue creating and updating test results on a closed run. However, it never names alternatives (e.g., close_test_run, restore_test_run) or when not to use it, leaving the agent to infer context from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
post_applicationCDestructive
Create an application. Create a new application.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, readOnlyHint=false, openWorldHint=true, and idempotentHint=false, so the safety profile is covered. The description adds nothing beyond these — it does not disclose side effects, required permissions, what gets created, or the non-idempotent nature (which annotations already cover). With annotations doing the heavy lifting, the description's contribution is essentially zero.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is only two sentences, but the second is a pointless restatement of the first ('Create an application. Create a new application.'). This is under-specification disguised as brevity — the repetition wastes space that should be used for missing usage or structural detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool that creates a nested structure (body.name required, body.description optional) with no output schema and no annotation relief on the description side, the definition is far too thin. It does not explain the request envelope, expected response, or permission requirements, leaving an agent with almost no guidance beyond the tool name and schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate but does not. The one required 'body' parameter with nested 'name' and 'description' properties is not explained in the description at all; the schema itself provides property descriptions but no overall envelope guidance. The description leaves a nested-object parameter entirely unaddressed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Create an application'), which is clear enough on its own. However, it offers zero distinction from siblings like put_application or post_application's own family, and the sentence is simply repeated verbatim ('Create a new application'). It is neither wrong nor misleading, but the repetition adds no clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance is provided. The description does not mention the alternative update tool (put_application), prerequisites (e.g., needing a project or workspace context), or any condition under which an agent should pick this over other creation endpoints. Usage is implied only.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
post_batch_delete_applicationsBDestructive
Delete multiple applications. Delete multiple applications in a single request. Deleted applications are moved to the trash and can be restored later if needed.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=false and readOnlyHint=false, so the safety profile is covered. The description adds non-obvious behavior beyond the annotations: deletions are soft, moved to trash, and can be restored later. It does not state what happens on partial failure or whether the request is atomic.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description opens with the same statement twice ('Delete multiple applications.' / 'Delete multiple applications in a single request.'), wasting the most valuable front-loaded position. The third sentence is genuinely informative, so the text is not bloated overall, just redundantly led.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The trash/restore note and the annotations give an agent enough to understand the operation's nature. Missing pieces for a batch mutation tool with no output schema are partial-failure semantics, response shape, and routing versus the singular delete_application.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is reported as 0%, and the single body parameter is an array of objects containing an 'id' field. The description says nothing about the expected payload shape, how many IDs are accepted, or whether unknown/nonexistent IDs cause the whole batch to fail, so it does not compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource ('Delete multiple applications') and the batch scope distinguishes it from the singular sibling delete_application. However, it never explicitly names that alternative or any other sibling, so the differentiation is only implied by the word 'multiple'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this batch tool versus delete_application, restore_application, or the many other post_batch_delete_* siblings. The reader must infer batch usage purely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
post_batch_delete_issuesCDestructive
Delete multiple issues. Delete multiple issues in a single request. Deleted issues are moved to the trash and can be restored later if needed.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=false, so the safety profile is covered. The description adds genuinely useful context beyond annotations: deletions are soft (moved to trash) and reversible via restore. It still omits batch limits, partial-failure behavior, and whether the whole request is atomic.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first two sentences are near-duplicates ("Delete multiple issues. Delete multiple issues in a single request."), wasting one of only three sentences. The trash/restore clause is front-loaded well once reached, but the redundancy costs efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive batch mutation with no output schema, the description covers the key durability behavior (trash + restore) but is silent on batch size limits, failure/partial-success semantics, and id format. Annotations cover the safety hints, so the remaining gaps are moderate rather than severe.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Parameter count is 1 with 0% schema coverage; the body array (a list of issues with ids) is never described in prose. The description does not compensate for the coverage gap by explaining the expected payload shape, id type, or any size constraint, leaving the agent to infer the body format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb+resource ("Delete multiple issues") and the word "multiple" implicitly distinguishes it from the single-item sibling delete_issue. However, it never names delete_issue explicitly, so differentiation relies on inference from the batch phrasing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this batch tool versus repeated delete_issue calls, no stated batch-size limit, and no prerequisites (e.g., permissions or locked issues). The only usage-relevant content is the undeclared semantics of a batch request.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
post_batch_delete_milestonesBDestructive
Delete multiple milestones. Delete multiple milestones in a single request. Deleted milestones are moved to the trash and can be restored later if needed.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and non-idempotent, so the safety profile is covered. The description still adds real value by disclosing that deleted milestones go to the trash and are restorable, which is not derivable from the annotations or schema and directly informs risk assessment.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first two sentences are near-verbatim repetition ('Delete multiple milestones' / 'Delete multiple milestones in a single request'), which is wasted space. The third sentence is the only one that earns its place, so the structure is loose but not bloated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive batch mutation with no output schema, the restore-trash behavior is covered, but nothing is said about response shape, partial-failure behavior when some ids are invalid, or batch size limits. Minimum viable but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% at the top level and the description says nothing about the body payload, its shape, or valid id values. With one undocumented required parameter, the description 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.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Delete multiple milestones') and implies batch scope via 'in a single request', which separates it from the singular delete_milestone sibling. It stops short of naming the sibling explicitly, so a 4 rather than a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to choose batch deletion over delete_milestone, no mention of limits on how many milestones can be deleted, and no prerequisites. 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.
post_batch_delete_requirementsBDestructive
Delete multiple requirements. Delete multiple requirements at once in a single request. Specify the requirement identifiers you want to delete, and all selected requirements will be moved to the trash. Deleted requirements can be restored later if needed.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, readOnlyHint=false and idempotentHint=false, but the description adds substantive behavior beyond them: the deletions are a soft delete ('moved to the trash') and are reversible ('can be restored later'). That materially changes how an agent should treat an otherwise 'destructive' call. It still omits permission requirements and behavior for non-existent/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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first two sentences are near-duplicates ('Delete multiple requirements.' / 'Delete multiple requirements at once in a single request.'), wasting the highest-value opening position. The subsequent trash/restore sentence does earn its place, so the waste is bounded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema, the description covers the essential outcome (items go to trash, restorable) but leaves open what the response contains, whether the delete is partial-success tolerant, and any batch size limit. Adequate but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the burden, and it does clarify that the request body should carry 'the requirement identifiers you want to delete' — tying the otherwise bare `body` array to requirement IDs. However it gives no array format, cardinality limit, or handling of unknown/missing IDs, so the compensation is partial.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Delete multiple requirements') plus the batch scope ('at once in a single request'), which implicitly separates it from the singular delete_requirement sibling. It never names an alternative explicitly, so an agent must infer the single-vs-batch routing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description only says the tool deletes many requirements in one request; there is no statement of when to prefer this over delete_requirement, nor any preconditions (permissions, max batch size, whether some other batch_* sibling is needed first for filtering). Usage is implied at best.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
post_batch_delete_risksADestructive
Delete multiple risks. Delete multiple risks at once in a single request. Specify the risk identifiers you want to delete, and all selected risks will be moved to the trash. Deleted risks can be restored later if needed.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=false, so safety is covered structurally. The description adds valuable context beyond that: risks are 'moved to the trash' and 'can be restored later,' which materially softens the destructive framing and tells the agent the operation is recoverable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Short and front-loaded, but the opening two sentences are redundant – 'Delete multiple risks.' is immediately restated as 'Delete multiple risks at once in a single request.' The rest of the content is efficient and earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive batch mutation with no output schema, the description covers the essential unknowns: single-request batching and restorability via trash. Annotations carry the safety profile, so the remaining gap (no return/pagination detail) is minor.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With one parameter and near-zero schema description coverage, the description does explain the payload semantics ('Specify the risk identifiers you want to delete'), mapping the body array to risk IDs. But it adds no detail on format, ID limits, or batch size constraints, so it only partially compensates.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Delete multiple risks') and emphasizes the batch semantics ('at once in a single request'), which distinguishes it from the single-item sibling delete_risk. It does not explicitly name that sibling, but the batch scope is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by 'multiple risks at once in a single request' – an agent can infer this is the batch path versus delete_risk for singles. However, no explicit when-to-use/when-not guidance or alternative routing is given, leaving the choice to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
post_batch_delete_teamsADestructive
Delete multiple teams. Delete multiple teams at once in a single request. Specify the team identifiers you want to delete, and all selected teams will be moved to the trash. Deleted teams can be restored later if needed.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, readOnlyHint=false, and openWorldHint=true. The description adds valuable behavioral context beyond annotations: deleted teams are moved to the trash and can be restored later, clarifying that this is a soft delete and not permanent. This is important for an agent to understand the consequences.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is four sentences, but the first two are redundant: 'Delete multiple teams. Delete multiple teams at once in a single request.' The first sentence adds no information beyond the tool name. The remaining sentences are informative and front-load the key behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (batch destructive operation) and the lack of an output schema, the description covers the essential behavioral aspects: batch deletion, soft-delete via trash, and restorability. Missing details like error handling or atomicity are minor for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description compensates partially by indicating that the body should contain 'team identifiers you want to delete'. However, it does not describe the array-of-objects structure or that each identifier is an integer, leaving the agent to infer those details from the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Delete') and resource ('multiple teams'), and distinguishes from the singular delete_team sibling by specifying 'multiple' and 'at once in a single request'. However, the opening sentence restates the tool name almost verbatim, slightly weakening its distinctiveness.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit when-to-use guidance or alternatives to this tool. It implies usage for batch deletion but does not mention when to prefer it over deleting teams individually or using other batch tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
post_batch_delete_test_casesADestructive
Delete multiple test cases. Delete multiple test cases at once in a single request. Specify the test case identifiers you want to delete, and all selected test cases will be moved to the trash. Deleted test cases can be restored later if needed.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare destructiveHint=true, so the safety profile is covered. The description adds valuable non-obvious behavior: selected test cases are moved to the trash and can be restored later, meaning the deletion is reversible. It does not mention partial failures or auth requirements, but the key soft-delete trait is disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first two sentences are redundant ('Delete multiple test cases' vs 'Delete multiple test cases at once in a single request'), wasting space. The remaining sentences are informative, but the definition could be tightened without losing meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple batch-delete tool with annotations covering destructiveness and no output schema, the description is largely complete: it covers batch semantics, the trash behavior, and restore capability. Missing details like partial-failure handling or exact body format are minor given the schema's structural hints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With only one parameter and 0% schema description coverage, the description must carry the burden. 'Specify the test case identifiers you want to delete' tells the agent what to pass, but does not clarify the expected array-of-objects structure, leaving potential ambiguity between passing raw IDs versus id-wrapped objects.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (Delete) and resource (multiple test cases), and the word 'multiple' distinguishes it from the singular delete_test_case sibling. It stops short of explicitly naming an alternative, but an agent can still identify what it does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It implies usage context with 'at once in a single request,' suggesting it is for bulk deletion, but offers no explicit when-to-use or when-not guidance, nor any reference to the singular delete_test_case alternative. Adequate but with clear gaps.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
post_batch_delete_test_runsADestructive
Delete multiple test runs. Delete multiple test runs at once in a single request. Specify the test run identifiers you want to delete, and all selected test runs will be moved to the trash. Deleted test runs can be restored later if needed.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, openWorldHint=true and non-idempotency, so the safety profile is covered. The description adds genuinely new behavior beyond that: deletions are a soft move to 'the trash' and can be restored later. It does not disclose atomicity/partial-failure behavior, which is the main remaining gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first two sentences say the same thing nearly verbatim ('Delete multiple test runs. Delete multiple test runs at once in a single request.'), which is pure redundancy at the front of the description. The remaining sentences are useful but the padding costs it.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive batch mutation with no output schema, the description covers the trash/restore lifecycle but omits what happens on invalid or duplicate IDs, whether the operation is all-or-nothing, and what the response contains. Given annotations cover the safety hints, this is adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
One parameter with 0% reported schema description coverage (though the nested 'id' carries a short description). The description compensates by telling the agent to 'specify the test run identifiers you want to delete', clarifying that the body is a list of identifiers, though it adds no details on format or limits.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Delete') plus resource ('test runs') and explicitly scopes it to 'multiple... at once in a single request', which cleanly separates it from the sibling delete_test_run (single) and restore_test_run. An agent can route to it without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The batch framing implies when the tool is appropriate, but there is no explicit when-to-use/when-not guidance and no pointer to the alternatives (delete_test_run for single deletion, restore_test_run to undo). It also doesn't state any preconditions such as needing valid, existing IDs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
post_batch_update_issuesBDestructive
Update multiple issues. Update multiple issues in a single request. This endpoint supports partial updates, so you only need to include the fields you want to change.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already disclose destructiveHint=true, idempotentHint=false and openWorldHint=true, so the mutation/safety profile is covered. The description adds one genuinely useful behavioral fact: updates are partial, so omitted fields are left unchanged. It does not state atomicity (all-or-nothing vs per-item failure) or any batch limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first two sentences say the same thing twice ('Update multiple issues' / 'Update multiple issues in a single request'), wasting space. The third sentence about partial updates is the only one that earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter batch mutation with no output schema, the description covers the core mechanic but omits atomicity, per-item failure behavior, and batch-size constraints. Annotations handle safety, so the gaps are moderate rather than fatal.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema carries per-field descriptions for the nested issue objects (id, status, assignee, versions, etc.), though the reported top-level coverage is 0%. The description's partial-update sentence adds real meaning by clarifying that every field except id is optional, which is the key semantic an agent needs before composing the body array.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Update multiple issues') and clarifies the batch nature ('in a single request'), which distinguishes it from the sibling put_issue. However it never names the single-issue sibling explicitly, so an agent must still infer the batch vs. single routing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use batch update versus put_issue, no batch-size limits, no mention of what happens if one entry in the array is invalid. The partial-update note is a helpful mechanic but not routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
post_batch_update_requirementsADestructive
Update multiple requirements. Update multiple requirements at once in a single request. Specify the requirement identifiers and the fields you want to update, and all selected requirements will receive the same field values. This endpoint supports partial updates.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=false, and openWorldHint=true, so the safety profile is covered. The description adds genuinely useful non-obvious behavior: all selected requirements receive the same field values, and partial updates are supported (unspecified fields are left untouched). This is meaningful context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core action, but the first two sentences are near-duplicate restatements ('Update multiple requirements' / 'Update multiple requirements at once in a single request'). The unique value only arrives in the back half, so it isn't optimally tight.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive batch mutation with no output schema, the annotations cover the safety profile and the description covers batch semantics. It still omits error/partial-failure handling and confirmation requirements, which matter for a destructive bulk operation, so it is adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With schema description coverage at 0%, the description carries more burden, and it does communicate that the body takes requirement identifiers plus the fields to update. However, it doesn't clarify the array structure, the required id, or the available fields (tags, requirement_type_id), leaving gaps the schema could otherwise fill.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (update), resource (requirements), and scope (multiple, in a single batch request). The batch framing distinguishes it from the single-resource put_requirement sibling without needing to name it. An agent can identify the operation immediately.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description establishes that this handles multiple requirements at once, implying its use case relative to single-update tools, but it never explicitly says when to choose batch over per-record updates or states exclusions. Usage is inferable rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
post_batch_update_risksBDestructive
Update multiple risks. Update multiple risks at once in a single request. Specify the risk identifiers and the fields you want to update, and all selected risks will receive the same field values. This endpoint supports partial updates.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=false, and openWorldHint=true, so the safety profile is partly covered. The description adds the meaningful constraint that every selected risk receives the same field values and that partial updates are allowed, but omits batch-size limits, permission requirements, or any destructive-impact warning.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The opening two sentences are redundant — 'Update multiple risks' and 'Update multiple risks at once in a single request' say the same thing. The remaining sentences carry real information, so it recovers, but it is not front-loaded efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive batch mutation with no output schema, the description covers the core contract (identifiers + shared field values, partial updates) but leaves ambiguity: the schema allows per-item fields while the description says all risks get identical values. No mention of failure behavior if an id is missing or invalid.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Top-level schema coverage is reported as 0% (the body array itself is undocumented), with only nested item properties carrying descriptions. The description compensates partially by naming risk identifiers and 'fields you want to update', but it does not clarify the array-of-objects body shape or which fields are updatable beyond what the schema already lists.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence states a specific verb+resource ('Update multiple risks') and the batch scope is made explicit, which separates it from put_risk (single) and post_batch_delete_risks. However, it never names or contrasts those siblings, so an agent must infer the distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It conveys real usage semantics: one request, uniform field values across all selected risks, and partial-update support. It stops short of saying when to use this versus put_risk or post_batch_update_issues-style alternatives, and gives no exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
post_batch_update_test_casesBDestructive
Update multiple test cases. Update multiple test cases at once in a single request. Specify the test case identifiers and the fields you want to update, and all selected test cases will receive the same field values. This endpoint supports partial updates.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=false and openWorldHint=true, so safety profile is covered. The description adds genuinely useful behavior: uniform field values applied across all selected cases and support for partial updates. It still omits failure semantics (e.g., what happens to valid ids when one is invalid) and any permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded and reasonably short, but the first two sentences are near-duplicates ('Update multiple test cases' / 'Update multiple test cases at once in a single request'), wasting space that could have carried usage guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a batch mutation with no output schema and annotations covering the safety profile, the description conveys the essential mechanics (batch, uniform values, partial update). It stops short of covering error/partial-failure behavior and auth, leaving moderate gaps for an agent invoking a destructive batch endpoint.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is reported at 0% for the top-level body parameter, which is itself undocumented. The description partially compensates by explaining the body is a set of test case identifiers plus the fields to update, but it does not enumerate or clarify the updatable fields (tags, draft, risks, duration, applications, requirements).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (update) and resource (test cases) plus the batch scope ('multiple test cases at once in a single request'). This clearly separates it from the single-record put_test_case sibling, though it never names that alternative explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the batch semantics and the note that 'all selected test cases will receive the same field values,' which hints at when this is the right choice over a per-record update. However, it never states when-not to use it or names any sibling alternative (e.g., put_test_case or post_batch_delete_test_cases).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
post_batch_update_test_runsBDestructive
Update multiple test runs. Update multiple test runs at once in a single request. Specify the test run identifiers and the fields you want to update, and all selected test runs will receive the same field values. This endpoint supports partial updates.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, openWorldHint=true, and idempotentHint=false, cautioning the agent that this operation mutates data non-idempotently with potential side effects. The description adds limited behavioral context by noting partial updates and uniform application of fields, but does not elaborate on permission requirements, error handling, or the exact nature of destructiveness beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the main purpose but repeats itself ('Update multiple test runs. Update multiple test runs at once...'), adding redundancy without new information. It is appropriately short overall but not maximally efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the annotations cover safety traits and there is no output schema, the description is partially complete but lacks critical details about the body array structure and specific updateable fields. For a batch update tool requiring structured input, this leaves gaps in how to correctly invoke it, especially since schema descriptions are absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With schema description coverage at 0%, the description must compensate entirely, yet it only vaguely mentions 'test run identifiers' and 'fields you want to update.' It fails to detail any specific parameters like 'tags', 'priority', 'starts_at', 'ends_at', or 'test_environment_id' that the schema lists without descriptions, leaving significant ambiguity for the agent.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific verb+resource combination ('Update multiple test runs... in a single request'), and it distinguishes from the single-item sibling 'put_test_run' by explicitly describing batch behavior. An agent can identify that this tool updates multiple test runs at once rather than one at a time.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context by stating 'in a single request' and 'all selected test runs will receive the same field values,' which suggests when a batch update is appropriate. It does not explicitly state when to use this tool versus 'put_test_run' or 'post_batch_delete_test_runs,' leaving some inference required.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
post_folderCDestructive
Create a folder. Create a new folder within a project to organize test cases.
Folders provide a hierarchical structure for managing large numbers of test cases, making them easier to navigate and maintain.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare destructiveHint=true, openWorldHint=true, and non-idempotent, which sets a low bar, yet the description adds nothing about behavioral traits. It doesn't state that project_id must reference an existing project, that parent_id is optional and affects nesting, that duplicate names may be allowed or rejected, or what errors look like. A creation tool with destructive annotations and no behavioral context is a serious omission.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the action in a short opening sentence, but the following two sentences largely restate the same idea (folders organize test cases) with no added specificity. Not verbose, but the redundancy means not every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a creation tool with a nested body, destructive/non-idempotent annotations, no output schema, and no sibling differentiation, the description is inadequate. It omits prerequisites (existing project), hierarchy mechanics (parent_id), and any return or error information – an agent cannot confidently call this without guessing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the schema is a nested body with required project_id and name plus optional parent_id and description. The description adds no parameter meaning at all – it doesn't mention project_id, name, parent_id, or description. An agent must infer everything from the raw schema field names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Create a folder') and clarifies it lives within a project to organize test cases. This distinguishes it from sibling put_folder/delete_folder and from post_project. However, it doesn't differentiate the nested parent hierarchy from sibling folder operations explicitly, leaving minor ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the benefit of folders (organizing test cases hierarchically) but gives no when-to-use vs. when-not, no prerequisites, and no mention of alternatives like put_folder for updates or move_test_case for reorganization. An agent learns why folders exist, not when to call this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
post_issueCDestructive
Create an issue. Create a new issue within a project.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=true, idempotentHint=false and openWorldHint=true, so the write/non-idempotent profile is covered structurally. The description adds nothing beyond that: no side effects (notifications, attachment copying), no required-field behavior, no error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is short and front-loaded, but the second sentence is a near-verbatim restatement of the first with only 'within a project' added. That duplication is waste rather than signal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a create tool with a nested object of five required fields and no output schema, the description should at minimum note required inputs and any prerequisite lookups (get_issue_categories_collection, get_issue_statuses_collection, get_project). None of that is present, so the definition is not complete enough to call this tool correctly without reading the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% per the context signals, and the single 'body' wrapper has no description at all. The nested required fields (project_id, name, description, issue_category_id, issue_status_id) are only identifiable by reading the schema, and the description gives no hint that these are mandatory or what identifiers must be resolved first.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence states a clear verb+resource ('Create an issue'), so an agent knows what the tool does. However, the second sentence merely restates the first with a mild scoping qualifier and does nothing to distinguish it from siblings like put_issue, post_issue_task, or post_batch_update_issues.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no mention of alternatives (e.g., put_issue for updates, post_batch_update_issues for bulk), and no prerequisites such as needing valid issue_category_id/issue_status_id values. 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.
post_issue_attachmentCDestructive
Upload an attachment for an issue. Upload an attachment for an issue using its unique identifier.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | ||
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly=false, destructive=true, idempotent=false, and openWorld=true, so the safety profile is covered. The description adds no behavioral context beyond those annotations, such as the 14MB payload cap, base64-only input, or what happens on duplicate uploads.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences are used to say the same thing twice; the second is pure redundancy rather than added information. Front-loading is fine, but the repeated clause wastes the whole budget.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with nested base64 file content, no output schema, and low schema description coverage, the description is too thin. It omits payload size constraints, accepted content encoding, and what the caller gets back after upload.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The phrase 'using its unique identifier' loosely points at the issueId path parameter, but the description adds no real semantic detail. With schema description coverage reported at 0% for the tool, the description should compensate for undocumented parameters and largely fails to do so.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence gives a clear verb+resource ('Upload an attachment for an issue'), and calling out 'issue' implicitly separates it from sibling attachment tools like post_test_case_attachment and post_test_result_attachment. However, the second sentence merely restates the same action ('Upload an attachment for an issue using its unique identifier'), adding no differentiating information.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus the many sibling attachment tools, no mention of prerequisites (issue must exist, file size limits), and no exclusions. The description only asserts what the tool does, never when an agent should reach for it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
post_issue_commentCDestructive
Post a comment on an issue. Post a comment on an issue using its unique identifier.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | ||
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare destructiveHint=true, openWorldHint=true, and non-idempotent, which is significant for a tool that appends a comment. The description doesn't mention that this creates a permanent comment on an issue, cannot be undone via this tool, or any rate limits. It also doesn't note that the comment appears publicly or is tied to the authenticated user.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, but the second is redundant with the first, wasting space. It is front-loaded with the main action, but the repetition reduces efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema, nested parameters, and annotations indicating destruction and open-world behavior, the description is too sparse. It doesn't explain the structure of the comment body, required authentication, or what happens on success. It leaves significant gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It only vaguely references 'its unique identifier,' which maps to issueId, but doesn't explain the nested body.message structure or the 10000-character limit. It fails to add meaning beyond the schema's field names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear verb+resource: 'Post a comment on an issue.' The second sentence just restates this with 'using its unique identifier,' adding no real clarity. The purpose is clear and distinguishable from siblings like post_test_case_comment or post_test_result_comment, but it doesn't call out that distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like post_issue (creating an issue) or post_issue_attachment. There's no mention of prerequisites such as needing the issue to exist, nor any context about when commenting is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
post_issue_taskCDestructive
Create a task for an issue. Create a task for an issue using its unique identifier.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | ||
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, openWorldHint=true, idempotentHint=false, and readOnlyHint=false, so the safety profile is covered. However the description adds nothing beyond that: it does not say the body fields are required, what auth or permissions are needed, or that creation is non-idempotent and will produce duplicates if retried.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, but the second is a near-verbatim duplicate of the first with one extra clause, so it wastes the little space available. It is front-loaded and short, but the repetition is not earning its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a nested required body, 0% schema description coverage, no output schema, and a destructive/non-idempotent mutation, the description should at minimum enumerate the required fields and warn about duplication on retry. It omits both, so an agent cannot invoke this correctly from the description alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the input is a nested object with three required body fields (assigned_user_id, description, expires_at). The description only alludes to the issueId path parameter via 'unique identifier' and says nothing about the required body payload, leaving the burden entirely unmet.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource (create a task for an issue), but the second sentence only restates the first with the phrase 'using its unique identifier' added. It never distinguishes this from put_issue_task, delete_issue_task, or get_issue_task, so an agent gets the what but no disambiguation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool versus the sibling CRUD tools (put_issue_task, delete_issue_task) or get_issue_tasks. No prerequisites, no context about when task creation is appropriate. The only guidance is the implied 'create' semantics.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
post_issue_test_resultsCDestructive
Link test results to an issue. Link test results to an issue using its unique identifier.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | ||
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=false, and openWorldHint=true, yet the description adds nothing about what linking does to an issue's existing test-result associations, whether the operation is reversible, or what permissions are required. For a destructive, non-idempotent mutation this is a substantial omission.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short but half of it is redundant: the second sentence repeats the first verbatim rather than adding scope, constraints, or routing information. The space is spent on duplication instead of useful detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a nested, two-parameter destructive mutation with no output schema, the description omits side effects, return behavior, and error conditions. An agent would be guessing about what 'link' actually changes on the issue.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Reported schema description coverage is 0% at the top level, so the description would need to compensate, but it only gestures at 'its unique identifier' — which the schema already spells out as issueId. The body.test_results constraint (which identifier type, acceptable counts) is left entirely to the untyped array items.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence names a specific verb and resource (link test results to an issue), so the basic action is identifiable. However, the second sentence merely restates the first with the vague qualifier 'using its unique identifier,' and nothing distinguishes this from the sibling post_test_result_issues, which performs the mirror-image link operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus post_test_result_issues, get_issue_test_results, or delete_issue_test_result. No preconditions (e.g., the issue and test results must already exist, or the caller's permission level) are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
post_milestoneCDestructive
Create a milestone. Create a new milestone within a project.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=true, idempotentHint=false, and openWorldHint=true, so the safety profile is covered. The description adds the project-scoping context but does not disclose return values, permissions, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences are front-loaded, but the second sentence ('Create a new milestone within a project') largely repeats the first with minor scoping detail. It could be a single, more informative sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutating tool with a nested object and no output schema, the description is sparse. Annotations cover safety, but the description does not mention prerequisites, return behavior, or what a successful creation yields.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only top-level parameter (body) has no schema description, and the tool description does not name or explain any of its nested fields. The nested schema does describe fields, but the description fails to compensate for the 0% top-level coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb 'Create' and resource 'milestone', and scopes it 'within a project'. However, it does not differentiate from sibling tools like put_milestone or delete_milestone beyond the verb, and the second sentence is redundant.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no alternatives, no prerequisites. The description merely states what it does, leaving the agent to infer usage from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
post_projectDDestructive
Create a project. Create a new project.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=true, idempotentHint=false and openWorldHint=true, so the safety profile is known. The description adds nothing beyond that – no mention of required permissions, side effects, or non-idempotency. No contradiction, but no added value either.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is short, but the second sentence is a verbatim rephrase of the first and earns nothing. There is no front-loaded detail, no structure – just a duplicated fragment.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a non-idempotent, destructive create operation with a nested 11-field request body, no output schema, and 0% parameter coverage, the description is completely inadequate. An agent cannot call this correctly without opening the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the nested body object carries 11 properties (name, symbol_id, dates, uses_* flags) documented only with generic strings like 'A resource string.' The description supplies no parameter meaning at all, leaving required fields like symbol_id unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description says 'Create a project. Create a new project.' – a verb+resource that simply restates the tool name twice. It adds no scope, no distinguishing detail versus siblings like put_project, archive_project, or get_project.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this versus put_project (update) or archive_project. No prerequisites, no context about which symbol/workspace the project belongs to. 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.
post_requirementCDestructive
Create a requirement. Create a new requirement within a project.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already disclose the safety profile (readOnlyHint=false, destructiveHint=true, idempotentHint=false, openWorldHint=true), so the description does not need to restate those. But it adds no behavioral context beyond them: no mention of required permissions, side effects of creation, or what happens on failure. Nothing new is contributed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences are provided where the second is redundant with the first, so half the text does not earn its place. The definition is short but wasteful rather than dense with useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a creation/mutation tool with a nested required body object and no output schema, the description omits the required inputs and any creation semantics. Annotations cover safety, but an agent still lacks the information needed to call this correctly without reading the full schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Reported top-level schema description coverage is 0%, so the description should carry parameter meaning, yet it names none of the three required fields (project_id, name, requirement_type_id) or the optional ones (tags, description, custom_fields). It adds no syntax or format guidance over the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource ("Create a requirement"), so the basic purpose is identifiable. However, the second sentence ("Create a new requirement within a project") merely restates the first with a small scope modifier and provides no differentiation from siblings like post_issue, post_test_case, or post_milestone beyond the resource noun. This lands at minimally viable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as put_requirement (update) or the batch variants (post_batch_update_requirements). No prerequisites or preconditions are stated. 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.
post_riskCDestructive
Create a risk. Create a new risk within a project.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, openWorldHint=true, readOnlyHint=false, and idempotentHint=false, so the safety profile is covered. The description adds only the project-scoping context and says nothing about permissions, duplicate-risk behavior, or what the write affects, which is all the agent gets beyond structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very short and front-loaded, but the second sentence ('Create a new risk within a project') largely restates the first, so one of the two sentences does not earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a nested-object mutation with three required fields and no output schema, the description omits required-field guidance, classification lookup context, and any indication of what is returned. It is far too thin for the complexity of the payload.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% at the top level, so the description must compensate, yet it only implies a project via 'within a project' and never mentions the required name or risk_classification_id fields. Nested property descriptions are generic boilerplate, so the description adds no real semantic value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Create a risk') and adds the scope ('within a project'). It does not differentiate from siblings such as put_risk, delete_risk, or post_batch_update_risks, but the create action is unambiguous for a single-resource tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus put_risk (update) or post_batch_update_risks (bulk), and no prerequisites such as needing a valid risk_classification_id. The agent must infer usage entirely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
post_teamDDestructive
Create a team. Create a new team.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=true, idempotentHint=false and openWorldHint=true, so the mutation profile is covered structurally. The description adds zero behavioral context: no note on required permissions, whether the name must be unique, or side effects like default membership. No contradiction with annotations, but no added value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is short, but the second sentence repeats the first word-for-word, so it is redundant rather than concise. Nothing is front-loaded beyond the bare verb.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a create/mutation tool with a nested request body, no output schema, and no annotation-supplied detail about success behavior, the description omits everything an agent needs beyond the obvious: required fields, uniqueness constraints, and what the response contains. Inadequate despite the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With schema description coverage at 0% for the nested body object, the description should compensate, but it does not mention the required 'name' field or the optional 'description' field. The schema does at least carry per-field descriptions, so this is not the worst case, but the prose contributes nothing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Create a team. Create a new team.' restates the tool name verbatim without adding scope, preconditions, or differentiation from siblings such as post_team_members or put_team. An agent can infer the verb+resource (create a team), but that is already fully conveyed by the tool name itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no mention of alternatives (put_team for updates, get_team for reads), and no prerequisites. The duplicated sentence conveys nothing about context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
post_team_membersCDestructive
Add members to a team. Add one or more users as members to a team.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | ||
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=true, idempotentHint=false, and openWorldHint=true. The description adds no behavioral context beyond these hints—it does not mention the destructive nature, idempotency, required permissions, side effects, or what happens if a user is already a member. It does not contradict the annotations, but it fails to add any value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description consists of two sentences that convey identical information. The second sentence ('Add one or more users as members to a team') is pure repetition of the first, violating the principle that every sentence should earn its place. While it is front-loaded, the redundancy makes it inefficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive mutation tool with nested required parameters and no output schema, the description is far too thin. It omits any warning about destruction, permission requirements, return behavior, or usage context, leaving the agent to rely entirely on the schema and annotations. The description does not provide the contextual completeness expected for this complexity level.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% at the top level, so the description should compensate for parameter meaning. It vaguely mentions users and a team, but does not clarify the path/body structure, the teamId parameter, or the format of user identifiers. It only partially hints at the 'users' array without adding useful syntax or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Add members to a team. Add one or more users as members to a team.' is essentially a restatement of the tool name post_team_members. It adds only the minor detail that multiple users are allowed, which is already implied by the plural name and schema. No sibling differentiation (e.g., from get_team_members or delete_team_member) is provided.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as get_team_members or delete_team_member. No prerequisites, permissions, or context for adding members is mentioned. The description simply states the action without any usage framing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
post_test_caseCDestructive
Create a test case. Create a new test case within a project.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, openWorldHint=true, and non-idempotent behavior, so the safety profile is partly covered. The description adds nothing beyond that — no note on permissions, what gets created, side effects, or validation, leaving the annotation-covered behavior undisclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is short, but the second sentence is pure redundancy that repeats the first verbatim in slightly different words, so not every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutating, open-world creation tool with a rich nested body and no output schema, the description omits required-field expectations, side effects, and the relationship to project/folder scoping. It is too thin for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes a single nested body object with many documented properties in the schema, yet the description says nothing about the required project_id/name fields or any parameter semantics. It contributes zero meaning beyond the structured schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a clear verb and resource ('Create a test case') and adds scope ('within a project'), so the basic action is unambiguous. However, the second sentence merely restates the first, and nothing distinguishes this from sibling creation tools such as put_test_case or post_batch_update_test_cases.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives like put_test_case (update) or the batch variants, and no mention of prerequisites. The 'within a project' clause implies scope but not usage conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
post_test_case_attachmentCDestructive
Upload an attachment for a test case. Upload a new attachment to a test case.
Attachments help document your test cases with supporting files such as screenshots, test data files, configuration examples, or reference documents.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | ||
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already state readOnlyHint=false, destructiveHint=true, idempotentHint=false and openWorldHint=true, but the description adds nothing beyond them: no size limit (schema allows 14MB base64), no behavior on duplicate filenames given non-idempotency, no permission requirements, and no note that the upload only adds and never overwrites.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first two sentences say the same thing ('Upload an attachment for a test case' / 'Upload a new attachment to a test case'), consuming a third of the text without adding information, and the remaining sentence is generic filler about what attachments are.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive, non-idempotent write with a nested body object, no output schema, and no parameter documentation, the description is too thin. It omits the 14MB base64 ceiling, the naming/MIME expectations, and any auth or permission context an agent would need before calling it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description supplies no parameter information at all — no mention of testCaseId, filename, mimeType, or the base64 encoding of file content (only the nested schema comment mentions base64). With two required parameters and a nested body object, the description should compensate and does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Upload an attachment for a test case') and the 'test case' qualifier distinguishes it from post_issue_attachment and post_test_result_attachment. The second sentence merely restates the first rather than sharpening the purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites, and no mention of alternatives such as get_test_case_attachments or delete_test_case_attachment. The list of example file types describes what attachments are for in general, not when this tool should be chosen.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
post_test_case_commentCDestructive
Post a comment on a test case. Post a comment on a test case using its unique identifier.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | ||
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare destructiveHint=true, openWorldHint=true, and non-idempotent, meaning this creates a persistent, non-reversible side effect. The description does not mention permissions, rate limits, validation constraints, or that this mutates server state, adding nothing beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, but the second repeats the first almost verbatim instead of adding information. No front-loaded detail about behavior or constraints. Not harmful, but half the content is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A mutating, destructive, open-world tool with nested parameters, zero schema coverage and no output schema. The minimal description leaves the agent without guidance on required permissions, comment format constraints, or response handling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, but it only says 'using its unique identifier' which loosely maps to testCaseId. The 'message' field (max 10000 chars) receives no elaboration, and the nested body/path structure is not explained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb+resource ('Post a comment on a test case') that names the specific target entity. Its siblings include post_issue_comment and post_test_result_comment, so the target resource distinguishes it. The second sentence restates essentially the same purpose rather than differentiating further.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance about when to use this vs. siblings like post_issue_comment or post_test_result_comment, no prerequisites (auth, permissions), no exclusions. The agent must infer usage entirely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
post_test_environmentCDestructive
Create a environment. Create a new test environment.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=true, idempotentHint=false, and openWorldHint=true, so the safety profile is covered by structured data. The description adds nothing beyond this – no mention of auth requirements, what is created, side effects, or whether duplicate names are allowed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences are present but the second merely paraphrases the first ("Create a environment. Create a new test environment."), so the content is redundant rather than efficiently front-loaded. The grammar error also detracts.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a create/mutation tool with no output schema, nested object parameters, and no annotations explaining the response, the description omits return information, permission requirements, and field usage. An agent cannot confidently invoke it from this description alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and only one nested body parameter exists. The description does not mention the required "name" field, the optional "description" field, or the maxLength constraints, so it 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb+resource ("Create a new test environment"), which is distinguishable from the read sibling get_test_environment. However, the two sentences are pure restatement of each other and the tool name, and it provides no differentiation from put_test_environment or other creation tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as put_test_environment (update) or post_test_case. No prerequisites, no context about what a test environment is or when an agent should create one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
post_test_resultCDestructive
Create a test result. Create a new test result.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=true, idempotentHint=false, openWorldHint=true, so the safety profile is covered. The description adds nothing beyond that — no note about required parent entities, no mention of non-idempotency causing duplicates on retry, and no side-effect disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences that convey identical information — the repetition is pure waste rather than concision. Nothing is front-loaded because there is no content to front-load.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool taking a nested object body with three required fields and no output schema, the description should explain required parent identifiers and draft semantics. It says nothing, leaving the agent dependent entirely on the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is reported as 0% at the top level; the single 'body' parameter has no description, and its nested required fields (test_case_id, test_run_id, draft) are only annotated inside the schema. The description supplies zero parameter meaning, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description only restates the tool name twice ('Create a test result. Create a new test result.'). It is a tautology that names no distinguishing scope, target resource type, or difference from siblings such as put_test_result or post_test_run.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus post_issue_test_results, post_test_run_test_results, or put_test_result, nor any stated prerequisite such as needing an existing test run and test case. 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.
post_test_result_attachmentCDestructive
Upload an attachment for a test result. Upload an attachment for a test result using its unique identifier.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | ||
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=true, idempotentHint=false, and openWorldHint=true, so the agent knows this is a non-idempotent write. The description adds nothing on top of that: no auth requirements, no size/encoding constraints (the 14 MB base64 limit lives only in the schema), and no note that re-uploading creates a distinct attachment. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences that say the same thing; the second is pure redundancy with no added information. The text is short, but the redundancy means no sentence earns its place beyond the first.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive, non-idempotent upload with a nested two-level payload and no output schema, the description is far too thin. It omits payload shape, encoding/limit constraints, and any indication of what is returned or how failures behave. Annotations cover the safety profile, but the payload semantics are left entirely to the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description is expected to compensate but does not. It never mentions the two required structures (body.file with filename/base64/mimeType, and path.testResultId), the base64 encoding requirement, or the size ceiling. 'Using its unique identifier' loosely gestures at testResultId but adds no actionable meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a clear verb+resource ('Upload an attachment for a test result'), so an agent knows the general operation. However, it offers no differentiation from near-identical siblings such as post_test_case_attachment, post_issue_attachment, or post_application — all of which are also upload operations. The second sentence merely restates the first with 'using its unique identifier' appended.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool versus the sibling attachment-upload tools, no prerequisites, and no mention of the required testResultId being the selector for the target result. The phrase 'using its unique identifier' is the only contextual hint and is not framed as usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
post_test_result_commentCDestructive
Post a comment on a test result. Post a comment on a test result using its unique identifier.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | ||
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=false, openWorldHint=true, so the safety profile is covered structurally. The description adds nothing beyond that – no note that posting a comment is a permanent, non-idempotent write, and no indication of required permissions 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The two sentences say the same thing twice; the second adds only a fragment. This is duplication rather than front-loaded structure, and it wastes the description budget on redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A destructive, non-idempotent write tool with nested parameters and no output schema needs more than a restated title. Nothing about permissions, payload shape, or the resulting comment/ID is provided.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Both parameters are nested objects and the reported schema description coverage is 0% at that level. The description only vaguely gestures at the identifier ('using its unique identifier') without explaining the path/body nesting, the message length cap, or additionalProperties:false constraints. It adds essentially nothing over the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The two sentences are near-verbatim restatements of the tool name ('Post a comment on a test result'), with only a thin addition ('using its unique identifier'). It does not distinguish this tool from siblings like post_test_case_comment or post_issue_comment, so an agent gets no signal about which comment target this applies to 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.
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 alternatives in the sibling list (post_issue_comment, post_test_case_comment). Usage must be inferred 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.
post_test_result_issuesCDestructive
Link issues to a test result. Link issues to a test result using its unique identifier.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | ||
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare destructiveHint=true and readOnlyHint=false, indicating a mutating operation. The description adds no behavioral context: it does not state whether linking replaces existing links, whether it requires specific permissions, or what happens on failure. With annotations covering the safety profile, a 2 reflects that the description contributes no extra behavioral insight.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences that are essentially duplicative ('Link issues to a test result' repeated). It is concise but the second sentence adds no new information beyond the phrase 'using its unique identifier,' which is somewhat helpful but poorly integrated. Front-loading is adequate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's mutation nature (destructiveHint=true), nested object parameters, and no output schema, the description is insufficient. It omits critical details such as the expected format for issue identifiers, whether linking is idempotent, and any side effects. For a destructive tool with complex parameters, this is a significant gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for undocumented parameters. It mentions 'using its unique identifier' but does not explain the nested body.issues array or clarify what identifiers are expected (e.g., issue IDs vs. keys). This leaves required parameters undocumented in both schema and description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Link issues to a test result.' It clearly identifies the action and target object, distinguishing it from sibling tools like get_test_result_issues (read). However, it does not differentiate from other linking tools such as post_issue_test_results, which achieves the inverse relationship.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like post_issue_test_results or delete_issue_test_result. The description gives the purpose but no context, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
post_test_runCDestructive
Create a test run. Create a new test run within a project.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already disclose the safety profile (readOnlyHint=false, destructiveHint=true, idempotentHint=false, openWorldHint=true), so the bar is lower, but the description adds no behavioral context beyond that: no mention of side effects, required identifiers, permission needs, or that a new run is non-idempotent and cannot be repeated safely.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is short and front-loaded, which is good, but the second sentence is pure redundancy rather than earning its place. The available brevity is spent on repetition instead of on the missing usage or behavioral details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a creation mutation with a deeply nested body and no output schema, the description should at minimum indicate what is required (name, milestone_id) and what the call yields. Nothing about the payload, the resulting resource, or failure conditions is provided, so an agent must rely entirely on the schema and annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is reported at 0% and the description adds nothing about the body payload. Although the nested properties (name, milestone_id, users, test_cases, etc.) are individually documented inside the schema, the description itself contributes no parameter meaning, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource ('Create a test run'), so the basic action is clear, but the second sentence simply restates the first with the added locator 'within a project'. It offers no differentiation from the many other creation siblings such as post_test_case, post_test_environment, or post_test_result.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives (e.g., clone_test_run, post_batch_update_test_runs) or what preconditions exist. The only contextual hint is 'within a project', which is implied usage at best and does not tell an agent when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
post_userCDestructive
Create a user. Create a new user account.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safety profile (readOnlyHint=false, destructiveHint=true, idempotentHint=false, openWorldHint=true), so the description would need to add non-obvious context. It adds none: no mention that passwords must match a confirmation field, that admin/teams are optional, or that creation is non-idempotent (duplicate emails may fail).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is short, but not efficient: the second sentence duplicates the first verbatim in meaning, and the space is spent on redundancy rather than the field semantics an agent actually needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a non-idempotent creation endpoint with a nested required body, no output schema, and annotations that only cover safety, the description is far too thin. It leaves the required payload contract, the password-confirmation rule, and failure modes entirely undocumented.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% at the exposed level and the single 'body' parameter wraps a nested object with five required fields (including password_confirmation and an optional admin flag). The description mentions no field, format, or matching rule, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description does name a specific verb and resource ('Create a user'), so the core purpose is legible. However, the second sentence ('Create a new user account') is a pure restatement, and nothing distinguishes this from sibling write tools like put_user, make_admin_user, or post_team.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance at all. With siblings such as put_user, make_admin_user, remove_admin_user, and archive_user in the same namespace, an agent gets no signal about which user-mutation tool to pick or what preconditions apply.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
post_webhookDDestructive
Create a webhook. Create a new webhook.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=true, openWorldHint=true, and idempotentHint=false, so the safety profile is covered externally. The description adds nothing of its own: it does not mention required auth, the required secret/events fields, side effects, or what the created webhook returns. With annotations present the bar is lower, but zero added context still merits a low score.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The two sentences are redundant — the second merely repeats the first with 'new' inserted. Nothing is front-loaded because nothing of substance is present; the length is wasted rather than efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with a nested required body of five fields, no output schema, and no annotation-detail beyond hints, the description is completely inadequate. An agent cannot determine required inputs, side effects, or the resulting resource from this text.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% at the top level, and the tool takes a single nested 'body' object requiring project_id, name, events, url, and secret. The description says nothing about any of these fields or their formats/constraints, leaving the agent with no added meaning whatsoever.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description says 'Create a webhook. Create a new webhook.' — a plain restatement of the tool name with no scope, no resource qualifiers, and no distinction from siblings like put_webhook or delete_webhook. It is a tautology rather than an explanation of what the tool actually does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this versus put_webhook (update), post_webhook event collection, or any other sibling. No prerequisites, no conditions, no alternatives are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
put_applicationCDestructive
Update an application. Update an application using its unique identifier.
This endpoint supports partial updates, so you only need to include the fields you want to change.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | ||
| path | Yes | ||
| query | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safety profile (readOnly=false, destructive=true, idempotent=false). The description adds that partial updates are supported, which is useful behavioral context, but it does not disclose side effects, required permissions, or what happens to omitted fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short but front-loads a redundant repeat of the purpose ('Update an application. Update an application using its unique identifier.'). The second sentence about partial updates is the only value-add; the rest could be tightened.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given three parameters including a required path ID, a required body with nested objects, and a query parameter with enums, the description is far too thin. It omits required parameter details, body structure, and the query parameter, leaving the agent to rely entirely on the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% per context. The description only vaguely refers to 'unique identifier' and 'fields you want to change' without naming or explaining any of the three parameters, including the path ID, body fields, or the 'with' query parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (update) and resource (application) and mentions using its unique identifier. However, it redundantly repeats the same action and does not differentiate from sibling tools like post_application or put_issue.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as post_application or get_application. It also lacks prerequisites or conditions for use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
put_folderBDestructive
Update a folder. Update a test case folder using its unique identifier. You can modify the folder name, description, or parent folder relationship.
This endpoint supports partial updates, so you only need to include the fields you want to change.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | ||
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=false, and openWorldHint=true, so the safety profile is covered. The description adds genuinely useful partial-update semantics, but says nothing about permissions, reversibility, or what happens to unspecified fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action, then the identifier and the partial-update note. The first two sentences are somewhat redundant ('Update a folder.' vs 'Update a test case folder using its unique identifier'), but there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with annotations and no output schema, the description covers the action and partial-update behavior adequately. But the parent-folder claim not backed by the schema and the absence of any auth/reversibility context leave meaningful gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% (generic 'A resource string' text), so the description must compensate. It names the modifiable fields (name, description) which helps, but also claims a 'parent folder relationship' that does not appear anywhere in the schema — an overpromise that can mislead the agent about available parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb+resource ('Update a test case folder') and scopes it to a unique identifier, which separates it from post_folder, get_folder, and delete_folder. It does not name any sibling explicitly, but the resource specificity makes the target unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It notes that partial updates are supported so only changed fields need to be sent, which implies usage context. However, it gives no when-to-use/when-not guidance and never points to alternatives like post_folder (create) or a move operation for restructuring.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
put_issueBDestructive
Update an issue. Update an issue using its unique identifier. You can modify the name, description, status, priority, category, resolution, and custom fields.
This endpoint supports partial updates, so you only need to include the fields you want to change.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | ||
| path | Yes | ||
| query | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare destructiveHint=true and idempotentHint=false, but the description doesn't acknowledge the mutation's destructive nature, permission requirements, or what happens to omitted fields (though partial update implies others remain). No mention of side effects beyond the standard update semantics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core purpose, and the second sentence adds useful partial-update guidance. No fluff, though the first sentence is slightly repetitive.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no output schema, no annotation-derived safety context in the description, and 0% schema description coverage, the description is only minimally adequate. It omits key fields, doesn't explain the 'with' parameter, and doesn't address the destructive nature hinted by annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description only lists some of the modifiable fields (name, description, status, priority, category, resolution, custom fields) while the schema has many more (tags, test_results, assigned_user_id, fixed_version_id, etc.). It doesn't explain the 'with' query parameter or the path parameter's role, leaving significant gaps for an agent to resolve.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Update an issue. Update an issue using its unique identifier'), and lists the modifiable fields. It distinguishes itself from siblings like post_issue and delete_issue by being an update operation, though it doesn't explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implied usage: you use this to modify fields you want to change, and partial updates are supported. No explicit when-not-to-use or mention of sibling tools like post_batch_update_issues for bulk edits.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
put_issue_taskCDestructive
Update a task. Update a task using its unique identifier.
This endpoint supports partial updates, so you only need to include the fields you want to change.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | ||
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly=false, destructive=true, idempotent=false, and openWorld=true. The description adds useful partial-update semantics: only include fields you want to change. It stops short of explaining what 'destructive' affects or any auth/rate-limit behavior, so moderate credit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Brief and mostly front-loaded, but the first sentence 'Update a task.' redundantly repeats the second. One sentence could be removed without losing meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive mutation with no output schema and low top-level schema coverage, the description omits usage guidance, parameter names, and destruction/auth behavior. Annotations help cover safety, but the definition remains incomplete for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Top-level schema coverage is 0%; neither path nor body has a description in the schema. The description says 'unique identifier' and 'fields you want to change' but never names issueId, taskId, or any body fields, so it does not compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: update a task by unique identifier, and notes partial-update support. It separates from get/post/delete siblings by verb, but does not name alternatives, so it falls short of top-tier sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides no explicit when-to-use, when-not-to-use, or alternative selection guidance. 'Supports partial updates' is behavioral context, not guidance on choosing this tool over post_issue_task or get_issue_task.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
put_milestoneBDestructive
Update a milestone. Update a milestone using its unique identifier.
This endpoint supports partial updates, so you only need to include the fields you want to change.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | ||
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=true, idempotentHint=false, and openWorldHint=true, covering the safety profile. The description adds valuable behavioral detail about partial updates, but it does not explain what makes this destructive, whether omitted fields are preserved or cleared, or what permissions are required — leaving gaps despite the lower bar set by annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with the purpose, but the first two sentences are redundant ('Update a milestone. Update a milestone using its unique identifier.'). It could be more concise and better structured, though no sentence is entirely wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive mutation tool with a nested body, no output schema, and 0% top-level schema description coverage, the description is insufficient. It fails to name the identifier parameter, list updatable fields, clarify destructive behavior, or explain how partial updates interact with omitted fields. An agent would need to inspect the schema to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is reported as 0% for the top-level parameters (path and body), so the description must compensate, but it says nothing about the milestoneId or any of the updatable fields (name, ends_at, description, milestone_type_id). The nested schema does contain field-level descriptions, which prevents the score from being lower, but the description adds no parameter meaning beyond the structured data.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Update') and resource ('a milestone'), plus the mechanism ('using its unique identifier'). This distinguishes it from collection-level operations like get_milestone_collection, but it does not explicitly contrast with post_milestone (create) or delete_milestone, leaving sibling differentiation implicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains that partial updates are supported and that only changed fields need to be included, which is useful usage context. However, it gives no guidance on when to choose this tool over alternatives like post_milestone or put_application, and no exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
put_projectBDestructive
Update a project. Update a project using its unique identifier. You can modify the name, description, and other project settings.
This endpoint supports partial updates, so you only need to include the fields you want to change.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | ||
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=false, so the agent knows this is a mutating, non-idempotent operation. The description adds genuine behavioral context with the partial-update semantics, but never explains what is destroyed or cleared, nor why a PUT is non-idempotent — a notable gap given destructiveHint=true.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the purpose, which is good, but the first two sentences are redundant ("Update a project. Update a project using its unique identifier") and one of them earns nothing. The partial-update note is the only high-value sentence in an otherwise padded block.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive, non-idempotent mutation with nested body objects, 0% schema description coverage, and no output schema, the description should cover required identifiers and mutation side effects. It covers only the update-by-id concept and partial-update behavior, leaving the agent to infer the destructive scope from annotations alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is reported at 0% for the top-level parameters, so the description must carry weight. It names two of the updatable body fields (name, description) and gestures at the rest with "other project settings," but says nothing about the required path.projectId, and never enumerates the boolean uses_* toggles or date fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Update a project") and identifies the key ("using its unique identifier"), which distinguishes it from get_project, post_project, and archive_project. However, it never names or contrasts with those siblings, and the first two sentences simply restate the same idea.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"This endpoint supports partial updates, so you only need to include the fields you want to change" gives real usage context for how to call it. It offers no guidance on when to use put_project versus post_project, archive_project, or unarchive_project, so the when/when-not dimension is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
put_requirementBDestructive
Update a requirement. Update a requirement using its unique identifier. You can modify any field including the name, description, type, and custom fields.
This endpoint supports partial updates, so you only need to include the fields you want to change.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | ||
| path | Yes | ||
| query | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=false, and openWorldHint=true, so the agent knows the safety profile without the description. The description adds the partial-update behavior, which is genuinely useful context. It does not address the tension with destructiveHint=true (e.g., whether omitted fields are cleared vs preserved), which is the key behavioral question here.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first two sentences are redundant ('Update a requirement. Update a requirement using its unique identifier'), wasting the most prominent position. The remaining content is accurate and front-loaded, but the opening duplication costs a point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema and a nested body plus a query relation parameter, the description covers the mutation semantics (partial update) but omits the return behavior and the 'with' query parameter. Adequate but with clear gaps given the schema complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it names the meaningful body fields (name, description, type, custom fields). It says nothing about the required path.requirementId other than 'unique identifier', nor about the query 'with' relation parameter, leaving real gaps in parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Update a requirement using its unique identifier') and lists the modifiable fields, so the operation is unambiguous. It does not, however, differentiate itself from siblings like put_issue, put_test_case, or post_batch_update_requirements, so sibling selection relies on the resource noun alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description usefully explains that it is a partial update ('you only need to include the fields you want to change'), which tells the agent how to build the request. It does not say when to prefer this over post_batch_update_requirements for bulk edits, nor mention any prerequisites, so guidance is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
put_riskBDestructive
Update a risk. Update a risk using its unique identifier. You can modify any field including the name, description, classification, and custom fields.
This endpoint supports partial updates, so you only need to include the fields you want to change.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | ||
| path | Yes | ||
| query | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=false, and openWorldHint=true, so the safety profile is covered. The description usefully adds that partial updates are supported so only changed fields need to be sent, but it never explains the destructive/overwrite consequences or the auth requirements implied by a mutation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short paragraphs, front-loaded with the core action and followed by the partial-update rule. The duplicated first sentence ('Update a risk. Update a risk using its unique identifier.') is the only waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive, non-idempotent mutation with no output schema, the description covers the update and partial-update semantics but omits return behavior, permission requirements, and the relations expansion parameter. Adequate but with clear gaps given the mutation's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Reported schema coverage is 0%, but the description names the key body fields (name, description, classification, custom fields), partially compensating. It says nothing about the required path riskId or the 'with' query relations parameter, so a meaningful portion of the parameters remain undocumented by the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Update a risk') and pins the identity mechanism ('using its unique identifier'), which cleanly distinguishes it from post_risk, get_risk, and delete_risk. The opening two sentences say the same thing twice, but the target operation is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to choose this over alternatives such as post_batch_update_risks for bulk edits, nor any prerequisites (permissions, whether the risk must exist, restore_risk for deleted ones). The partial-update note hints at how to call it but not when.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
put_teamBDestructive
Update a team. Update a team using its unique identifier.
This endpoint supports partial updates, so you only need to include the fields you want to change.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | ||
| path | Yes | ||
| query | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=false and openWorldHint=true, so the safety profile is partly covered. The description adds the partial-update contract, which is real behavioral context not present in the annotations. It does not disclose what 'destructive' means here (field overwrite/removal), nor any permission requirements, leaving a meaningful gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Short and front-loaded, but the first two sentences restate the same fact ('Update a team. Update a team using its unique identifier'), which is redundant. Efficient overall, with no unnecessary padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a destructive mutation with nested body objects, zero schema description coverage, and no output schema, so the description should be doing more. It omits updatable fields, required parameters, relation-expansion options, and any note about irreversible/overwriting behavior flagged by destructiveHint.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is reported at 0%, so the description carries the full burden of param documentation. It only says 'include the fields you want to change' and never mentions the updatable fields (name, description), the required teamId path parameter, or the query.with relation expansion. It adds essentially no semantic detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb and resource (update a team) and states the identifier used to target it. It does not differentiate itself from the sibling family (post_team, put_team_members, delete_team, etc.) beyond the obvious verb, but the purpose itself is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It tells the caller that partial updates are supported, so only changed fields must be supplied — useful invocation guidance. It offers no when-to-use/when-not guidance relative to siblings like post_team or post_team_members, so usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
put_test_caseBDestructive
Update a test case. Update a test case using its unique identifier. You can modify any field including the name, description, steps, expected results, priority, and custom fields.
This endpoint supports partial updates, so you only need to include the fields you want to change.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | ||
| path | Yes | ||
| query | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=true, and idempotentHint=false, so the safety profile is covered. The description adds genuinely useful behavior beyond that: partial-update semantics implying unspecified fields are preserved (rather than cleared). It still omits permission requirements and the effect of the destructive hint, so it is good but not complete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded, but the opening two sentences are redundant restatements of the same instruction, wasting space. The third sentence is the only one that adds new information, so the description is readable but not tightly written.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with annotations, a nested body, and no output schema, the description covers purpose and partial-update behavior adequately. It remains incomplete on the query relations parameter and gives an inaccurate field enumeration, leaving an agent without full knowledge of what it can actually set.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Top-level schema coverage is 0%, so the description carries the burden, but it only names a few fields and two of those ("steps", "priority") do not exist in the schema, risking misdirection. It also says nothing about the path.testCaseId identifier or the query `with` relations parameter, adding no valid meaning beyond the (already-descriptive) nested body schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource ("Update a test case using its unique identifier") and lists modifiable field categories, so the intent is unmistakable and distinguishable from post_test_case/delete_test_case. However, the first two sentences restate the same fact, and the field list ("description, steps, ... priority") does not match the actual schema fields (expected_result, instructions, etc.), slightly muddying what can be changed.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states the partial-update mechanic ("only need to include the fields you want to change"), which is useful invocation guidance, but gives no guidance on when to use this versus alternatives such as post_batch_update_test_cases, nor any prerequisites or exclusions. Usage context is implied rather than directed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
put_test_environmentBDestructive
Update an environment. Update a test environment using its unique identifier.
This endpoint supports partial updates, so you only need to include the fields you want to change.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | ||
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare destructiveHint=true, readOnlyHint=false, idempotentHint=false, and openWorldHint=true, but the description does not address any of these behaviors. It does not explain that updates may overwrite existing fields, whether they require specific permissions, or what the side effects are. With annotations present, the bar is lower, but the description still adds little beyond generic update language.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences, front-loading the action and then adding a key behavioral note about partial updates. No redundant or filler content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that annotations highlight destructive and non-idempotent behavior, and there is no output schema, the description should provide more context about what happens on update, what is replaced, and any prerequisites. It is too minimal for a mutation tool with these annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% (no descriptions in schema), and the description provides no parameter details. However, the parameters are straightforward (a path ID and a body with name/description fields), and the nested structure is implied by 'fields you want to change'. Baseline would be lower, but the description's mention of 'partial updates' slightly compensates for the absent schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (update) and resource (test environment) and clarifies that identification is by unique identifier. It is clear but does not explicitly distinguish itself from siblings like delete_test_environment or get_test_environment 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions partial updates (only fields to change), which implies a usage pattern, but gives no guidance on when to prefer this over a full replacement or other environment tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
put_test_resultCDestructive
Update a test result. Update a test result using its unique identifier. You can modify the status, notes, and other fields.
This endpoint supports partial updates, so you only need to include the fields you want to change.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | ||
| path | Yes | ||
| query | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare destructive hint true, open world, non-idempotent, and not readOnly. The description adds only that partial updates are supported. It does not disclose what gets destroyed, that the operation is risky (destructive hint true), permission requirements, or side effects such as relation inclusion. The safety profile is left entirely to annotations while the description offers minimal behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is short and front-loaded with the core action, but it wastes a sentence restating the same idea ('Update a test result. Update a test result using its unique identifier.') and then adds a brief note on partial updates. It is not excessively long but includes redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with destructive/risky annotations, nested objects, 0% schema coverage, and no output schema, the description is inadequate. It omits the required path parameter, query relation options, and behavioral risks, leaving the agent with little more than the tool name and a vague field list.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the schema provides essentially no semantic explanation for the parameters. The description only lists 'status, notes, and other fields' which does not match the schema fields (test_result_status_id, description, test_run_id, test_case_id, draft) and omits the required path parameter testResultId and query 'with' relations. It fails to compensate for the low coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Update a test result') and repeats the name rather than clarifying scope. It does not distinguish this tool from siblings like put_test_run or mark_test_result_viewed, offering only a generic update statement that restates the tool name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no mention of alternatives, and no condition of application. The phrase 'you only need to include the fields you want to change' hints at partial update semantics but does not tell the agent when this tool should be selected over siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
put_test_runBDestructive
Update a test run. Update a test run using its unique identifier. You can modify any field including the name, environment, assigned test cases or users, and custom fields.
This endpoint supports partial updates, so you only need to include the fields you want to change.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | ||
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=false and openWorldHint=true, so the safety profile is covered. The description adds one genuinely useful behavioral fact beyond annotations: partial-update semantics. However, it stays silent on a real ambiguity for a destructive mutation, namely whether array fields like test_cases or users replace or append to existing values, and whether untouched fields are preserved.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The opening two sentences are near-verbatim duplicates ("Update a test run. Update a test run using its unique identifier."), which wastes the highest-value slot. The partial-update note is correctly positioned but the field enumeration is a partial restatement of the schema rather than new information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive, non-idempotent mutation with a nested body and no output schema, the definition covers the essential mechanics of a partial update and the annotations carry the safety profile. It is still missing what an agent would want before invoking: array-replacement behavior and whether omitted fields are cleared, left alone, or reverted.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Top-level schema coverage is reported at 0% (neither "path" nor "body" carries a description), but every nested body property is individually documented in the schema. The description names only a subset of those fields (name, environment, test cases, users, custom fields) and omits tags, draft, priority, dates, milestone_id, and subscribers, so it neither fully compensates for the coverage gap nor adds syntax beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ("Update a test run using its unique identifier") and enumerates the mutable surface (name, environment, test cases, users, custom fields), so an agent can distinguish it from get_test_run or delete_test_run. It stops short of naming a competing sibling such as post_batch_update_test_runs or move_test_run, which is what a 5 would require.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"This endpoint supports partial updates, so you only need to include the fields you want to change" gives a usable condition for how to call it, but there is no guidance on when to prefer this single-record update over the bulk variants, nor any prerequisite or permission context. Usage is implied rather than scoped against alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
put_userBDestructive
Update a user. Update a user using its unique identifier.
This endpoint supports partial updates, so you only need to include the fields you want to change.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | ||
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, openWorldHint=true, and idempotentHint=false, so safety is covered by structured data. The description adds real behavioral value by disclosing partial-update semantics (unspecified fields are left alone), but it says nothing about failure modes, permissions, or how conflicts are handled.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is short and front-loads the core action. The second sentence ("Update a user using its unique identifier") repeats the first almost verbatim and is close to wasted space, keeping it below a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple mutation tool with annotations present and no output schema, the description covers the essentials and the partial-update semantics. It omits permissions/auth requirements, error behavior for an unknown userId, and any note on how remaining fields are preserved, all of which a destructive update warrants.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With only two parameters and 0% top-level schema description coverage, the description compensates minimally: "using its unique identifier" maps to the path.userId param and "partial updates" frames the body object. It names no updatable fields and adds essentially nothing beyond what the nested body property descriptions already provide.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a concrete verb+resource ("Update a user"), which cleanly separates it from the sibling post_user, get_user, delete_user, and archive_user. The second sentence restates the same fact with extra words rather than differentiating it from alternatives, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives one genuinely useful invocation guideline (partial updates — only send the fields you want to change), which tells the agent how to call it. However, it gives no when-to-use/when-not guidance and never mentions related siblings such as archive_user or make_admin_user that an agent might confound with an update.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
put_webhookBDestructive
Update a webhook. Update a webhook using its unique identifier. You can modify the name, URL, and the events that trigger the webhook.
This endpoint supports partial updates, so you only need to include the fields you want to change.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | ||
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate this is not read-only, is destructive, and is not idempotent. The description notes that partial updates are supported, which is useful, but it doesn't elaborate on the destructive nature, such as whether updating can overwrite existing settings (e.g., removing events) or the consequences of changing the secret. It also doesn't mention authentication requirements or rate limits. Given the annotations, the description adds some value but could do more.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief and front-loaded, stating the purpose and key capability in two sentences. However, the first sentence is repetitive ('Update a webhook. Update a webhook using its unique identifier.') which reduces efficiency. The second sentence about partial updates is valuable and concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a webhook update tool with nested body parameters and no output schema, the description is incomplete. It doesn't explain the required path parameter (webhookId), the full set of modifiable fields, or any behavioral nuances beyond partial updates. With no annotations fully covering the destructive and non-idempotent nature, the description should provide more context to safely invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for the top-level parameters, but the body parameters have descriptions within the schema. The description lists some updatable fields (name, URL, events) but omits others (secret, enabled, project_id) and doesn't clarify the format or constraints (e.g., max lengths, event identifiers). It adds minimal meaning beyond the schema itself.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (update) and the resource (webhook), and identifies the fields that can be modified (name, URL, events). However, it doesn't distinguish itself from sibling tools like post_webhook or delete_webhook beyond the obvious verb difference, and it omits mention of other modifiable fields present in the schema (secret, enabled, project_id), which could cause confusion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as post_webhook (for creation) or delete_webhook. It mentions partial updates but doesn't explain when a full update might be required or any prerequisites or side effects. There is no explicit when-to-use or when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_admin_userBDestructive
Revoke user admin privileges. Revoke a user's admin privileges using its unique identifier.
The user will retain access to their assigned projects but will no longer have account-wide admin access.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=false and readOnlyHint=false, so the safety profile is covered. The description adds genuinely new behavioral context beyond that: the user keeps access to assigned projects but loses account-wide admin access, which is the key side effect an agent needs to predict.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first two sentences restate the same operation ('Revoke user admin privileges' / 'Revoke a user's admin privileges using its unique identifier'), which is wasted space. The third sentence, however, is substantive and front-loaded well enough.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive, non-idempotent mutation with no output schema, the description covers the effect on the target user adequately. It omits prerequisites, failure modes (e.g., user not an admin), and any note on reversibility beyond the residual-access statement.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter, and the schema already documents userId as 'The user identifier.' The description's phrase 'using its unique identifier' merely restates that without adding format, source, or lookup guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb+resource: 'Revoke user admin privileges' names the exact mutation and the entity. It does not explicitly contrast with the sibling make_admin_user, so an agent must infer the inverse relationship from the names alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites (e.g., the target must currently be an admin), and no routing to or away from alternatives such as make_admin_user or delete_user. The agent must infer the context of use entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
restore_applicationBDestructive
Restore an application. Restore a previously deleted application from the trash using its unique identifier.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the full safety profile (readOnlyHint=false, destructiveHint=true, openWorldHint=true, idempotentHint=false), so the description does not need to restate that this is a write. It does add the useful context that the target lives in the trash, but it never explains why this operation is flagged destructive (e.g., overwriting an existing application) or whether associations survive the restore.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, but the first ('Restore an application.') is a pure restatement of the tool name and earns nothing. The second sentence carries all the actual content, so half the description is redundant padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description should say more about the result of a successful restore (returned object, whether the application reappears in the collection) and about permission requirements. For a destructive, non-idempotent mutation on a nested-ID schema, the current coverage is adequate but thin.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Reported schema description coverage is 0% at the top level (the nested 'path' wrapper is undocumented), and the only parameter is a nested applicationId object. The description's 'using its unique identifier' partially compensates by confirming a single integer ID is required, but it adds no format, range, or sourcing guidance beyond the schema's own field description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb (Restore) plus resource (application) and adds the source of the restore: 'a previously deleted application from the trash.' That is enough to distinguish it from delete_application, get_application, and put_application. It doesn't explicitly route against the sibling restore_* family, though those act on different entities, so confusion risk is minimal.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the phrase 'previously deleted application' tells the agent this applies to soft-deleted records. There is no explicit when-to-use statement, no mention of how to find a deleted application's ID, and no note about prerequisites or failure states (e.g., what happens if the record was never deleted).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
restore_folderBDestructive
Restore a folder. Restore a previously deleted test case folder from the trash using its unique identifier.
The folder will be fully recovered with all its properties, test cases, and subfolders intact.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=false, and openWorldHint=true, covering the safety profile. The description usefully adds that recovery is full ('all its properties, test cases, and subfolders intact'), but omits failure behavior or what happens if the folder is already restored.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Only three sentences and front-loaded with the action. The opening 'Restore a folder.' is slightly redundant with the following sentence, but overall it is tight and readable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With annotations covering safety and no output schema, the description is adequate but thin. It doesn't address permissions, whether restore can fail, or what an agent should expect in edge cases for a state-changing recovery operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is reported as 0%, so the description should compensate, yet it only says 'using its unique identifier'. This loosely maps to the required testCaseFolderId nested parameter but adds no format or sourcing detail beyond a plain identifier.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb+resource ('Restore a folder') and clarifies the target is a 'previously deleted test case folder from the trash', which distinguishes it from siblings like delete_folder, put_folder, and get_folder. It just doesn't explicitly name those siblings for routing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Restore a previously deleted test case folder from the trash' implies the trigger condition (the folder was deleted), but there is no explicit when-to-use guidance, prerequisites, or named alternative. Usage is only inferable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
restore_issueBDestructive
Restore an issue. Restore a previously deleted issue from the trash using its unique identifier.
The issue will be fully recovered with all its properties and associations intact.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the write/destructive/idempotent profile (readOnlyHint false, destructiveHint true, idempotentHint false). The description adds outcome behavior — the issue returns with all properties and associations intact — which is useful, but it says nothing about required permissions or how it handles already-restored issues.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the action, and the recovery-semantics sentence is genuinely informative. The opening two sentences are somewhat redundant ('Restore an issue' / 'Restore a previously deleted issue...'), which is minor waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter mutation with annotations covering the safety profile and no output schema, the description is adequate but thin. With schema coverage at 0%, more on the identifier and on failure modes would round it out.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is one nested parameter (path.issueId) with 0% schema description coverage at the top level. The description's phrase 'using its unique identifier' minimally indicates the input is an identifier but adds no format, scope, or validation detail beyond the schema's integer type.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (restore) and resource (issue) and clarifies the source state ('previously deleted issue from the trash'), which is more than a tautology. It does not, however, explicitly distinguish itself from the many sibling restore_* tools beyond the differing resource noun.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by 'previously deleted issue from the trash', which signals the precondition that the issue must already be deleted. There is no explicit when-to-use/when-not guidance and no mention of alternatives such as delete_issue or put_issue.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
restore_milestoneBDestructive
Restore a milestone. Restore a previously deleted milestone from the trash using its unique identifier.
The milestone will be fully recovered with all its properties and associations intact.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safety profile (readOnlyHint=false, destructiveHint=true, idempotentHint=false, openWorldHint=true), so the description only needs to add effect detail, and it does: the milestone returns 'with all its properties and associations intact'. It omits permissions/auth needs, what happens on a non-trashed or already-restored id, and is in mild tension with destructiveHint=true given that restoring is a recovery rather than a destruction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded and short, with the operative verb and precondition in the first two sentences. The first two sentences are somewhat redundant ('Restore a milestone. Restore a previously deleted milestone...'), which costs a point but the rest is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter mutation whose annotations already carry the safety profile, the description supplies the precondition (must be in the trash) and the outcome (full recovery of properties and associations). Only edge-case behavior (errors on already-restored ids, permission requirements) is left uncovered, which is minor here.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is reported at 0%, and there is a single nested parameter (path.milestoneId). The description only says 'using its unique identifier', which restates the schema's own 'The milestone identifier.' label without adding format, type, or source detail (e.g. where the id comes from, whether it is the integer project-scoped id).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb (restore) and resource (milestone), and the second sentence narrows the scope to a soft-deleted item taken 'from the trash', which cleanly separates it from delete_milestone, put_milestone and post_milestone. It stops short of explicitly naming any sibling as the alternative, which is the only thing keeping it from a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'previously deleted milestone from the trash' implies the precondition for use, so an agent can infer this applies only to trashed milestones. However, there is no explicit when-to-use guidance, no statement of what to do if the milestone was never deleted, and no pointer to delete_milestone as the inverse operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
restore_requirementADestructive
Restore a requirement. Restore a previously deleted requirement from the trash using its unique identifier.
The requirement will be fully recovered with all its properties and associations intact.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint false, destructiveHint true, idempotentHint false, and openWorldHint true. The description adds that the requirement is fully recovered with properties and associations intact, which is useful context, but it does not clarify the destructive or idempotent aspects, so partial credit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the action and condition. No wasted words; the outcome sentence adds useful detail without bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers purpose, prerequisite (previously deleted), and outcome (fully recovered). Missing details like return format or error behavior are minor given the rich annotations, but it could say more about permissions or side effects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is reported as 0%, so the description should compensate. It only says 'using its unique identifier', which restates the schema's 'The requirement identifier' and does not explain the nested path object or add format/usage details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Restore a requirement') and scopes it to previously deleted items from the trash. This clearly distinguishes it from get/put/delete/post requirement siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clearly states the condition for use: the requirement must be previously deleted and in the trash, and it needs the unique identifier. It does not explicitly name alternatives or when not to use it, so not a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
restore_riskADestructive
Restore a risk. Restore a previously deleted risk from the trash using its unique identifier.
The risk will be fully recovered with all its properties and associations intact.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=false... rather readOnlyHint=false, destructiveHint=true, idempotentHint=false, openWorldHint=true. The description adds genuinely useful behavioral context beyond those hints: the risk is 'fully recovered with all its properties and associations intact,' which tells the agent about the restore's completeness. It does not describe error behavior or permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core action and following with the effect. The opening 'Restore a risk. Restore a previously deleted risk...' repeats the verb, a minor redundancy, but overall it is tight.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter mutation with annotations declaring its safety profile and no output schema, the description covers what the tool does and what results from a successful call. Only edge cases (already-active risk, failure modes) are unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is reported as 0% at the top level, and the description only adds 'using its unique identifier,' which loosely restates the riskId parameter. It does not explain the nested 'path' wrapper object (path.riskId), which is the non-obvious part of the input structure, so it does not fully compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (restore) plus resource (risk) and clarifies it acts on a previously deleted risk from trash, using its unique identifier. This clearly separates it from delete_risk/put_risk, though it does not explicitly name or contrast a sibling restore tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'previously deleted risk from the trash' implies the precondition for use (the risk must have been deleted first), giving implied rather than explicit guidance. There is no statement about when not to use it or what to do if the risk was never deleted.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
restore_teamADestructive
Restore a team. Restore a previously deleted team from the trash using its unique identifier.
The team will be fully recovered with all its properties and members intact.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=true, openWorldHint=true, and idempotentHint=false. The description adds meaningful behavioral detail: the team is fully recovered with all properties and members intact. It does not mention potential destructive side effects or conflicts, but annotations cover the safety profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences and front-loaded, but the first sentence 'Restore a team.' restates the tool name. The second sentence adds useful detail without excess.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple restore tool with rich annotations and a single required parameter, the description provides sufficient context about what happens upon success. It does not describe edge cases or return values, but no output schema exists and annotations cover safety, so this is mostly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% at the top level, and the single teamId parameter has only a minimal schema description. The description adds 'using its unique identifier', which is somewhat redundant but slightly clarifies intent. Baseline 3 is appropriate for a single parameter with low schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Restore') and resource ('a team'), and clarifies it operates on previously deleted teams from the trash. This distinguishes it from sibling tools like delete_team, post_team, and put_team without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'previously deleted team from the trash' clearly indicates when to use this tool, but no explicit alternatives or when-not-to-use guidance is provided. Context is clear enough for an agent to understand it's the inverse of delete_team.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
restore_test_caseADestructive
Restore a test case. Restore a previously deleted test case from the trash using its unique identifier.
The test case will be fully recovered with all its properties, associations, and historical test results intact.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the mutation and destructive profile, and the description adds meaningful postcondition detail: properties, associations, and historical results are restored intact. It does not explain permissions or failure behavior, but with annotation coverage the added context is useful.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first two sentences are partly redundant, with 'Restore a test case' immediately restated by 'Restore a previously deleted test case...'. The recovery postcondition sentence earns its place, but the opening could be merged to improve conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter restore operation with rich annotations and no output schema, the description covers the main outcome and source of the item. It is adequate, though it omits error cases and any required authorization context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is low, and the description only says the test case is identified by 'its unique identifier.' That maps to testCaseId but adds no format, nesting, or validation detail beyond the schema's own identifier field.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Restore a test case'), and further scopes it to a previously deleted test case from the trash. This distinguishes it from delete_test_case, get_test_case, and put_test_case without needing another schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear condition: use when recovering a test case that was previously deleted and is in the trash. It does not name alternatives or state when not to use it, such as when the case already exists, so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
restore_test_runADestructive
Restore a test run. Restore a previously deleted test run from the trash using its unique identifier.
The test run will be fully recovered with all its test cases, test results, and configuration intact.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, readOnlyHint=false, idempotentHint=false, openWorldHint=true, so the mutation profile is known. The description adds that all test cases, results, and config are recovered, which is useful, but omits critical behavior like authorization needs, whether a restore can be repeated, or if the ID must be valid or if it creates a new entry.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the primary action and the restoration context. The second sentence adds value by specifying what is recovered, though it could be tighter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has a nested schema and no output schema. The description explains the effect of recovery but leaves gaps around permissions, trash constraints, and whether the operation is reversible. It is adequate but not thorough for a mutation that affects linked test data.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for the single parameter, but the description compensates by explaining that the testRunId is a unique identifier for the deleted test run and that it is required to locate it in trash. It does not add syntax details like integer type or format, but the usage context is clear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb (restore) plus resource (test run), and elaborates that restoration is from trash using a unique identifier. Distinguishes from sibling delete_test_run and get_test_run without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
States the action is for previously deleted runs, which implies the when-to-use. However, no explicit alternatives are named (e.g., restore_test_case) and no prerequisites such as required permissions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unarchive_projectBDestructive
Unarchive a project. Unarchive a project using its unique identifier. The project will be restored to an active state and become visible in the project overview again.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, readOnlyHint=false, and openWorldHint=true, so the safety profile is covered. The description adds useful outcome context: the project is restored to active and becomes visible in the project overview again. It does not describe permissions or failure modes, but the annotation coverage lowers the burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is short and front-loaded, but the first two sentences are largely redundant: 'Unarchive a project' is immediately repeated as 'Unarchive a project using its unique identifier.' The third sentence adds new outcome information, so the structure is usable but not maximally efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with annotations present and no output schema, the description covers the state change but omits prerequisites, permissions, and path/projectId specifics. It is minimally complete but leaves clear gaps around invocation details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the input is a nested path object containing projectId. The description only says 'using its unique identifier,' which restates the obvious identifier role without adding format, path structure, or type details. It does not compensate for the low schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Unarchive a project') and adds the effect ('restored to an active state and become visible in the project overview again'). This clearly distinguishes it from siblings such as archive_project, get_project, and put_project.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives no explicit when-to-use conditions, prerequisites, or alternatives to compare against. The intended usage is implied by 'Unarchive a project,' but the description does not say when an agent should choose this over archive_project or other project tools.
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.
173 tool updates
v1.0.0- First observed
archive_project - First observed
archive_user - First observed
clone_test_run - First observed
close_test_run - First observed
delete_application - First observed
delete_folder - First observed
delete_issue - First observed
delete_issue_attachment - First observed
delete_issue_task - First observed
delete_issue_test_result - First observed
delete_milestone - First observed
delete_requirement - First observed
delete_risk - First observed
delete_team - First observed
delete_team_member - First observed
delete_test_case - First observed
delete_test_case_attachment - First observed
delete_test_environment - First observed
delete_test_result_attachment - First observed
delete_test_run - First observed
delete_user - First observed
delete_webhook - First observed
get_application - First observed
get_application_collection - First observed
get_application_versions - First observed
get_custom_field_collection - First observed
get_folder - First observed
get_folders_collection - First observed
get_issue - First observed
get_issue_attachments - First observed
get_issue_categories_collection - First observed
get_issue_collection - First observed
get_issue_comments - First observed
get_issue_priorities_collection - First observed
get_issue_resolutions_collection - First observed
get_issue_statuses_collection - First observed
get_issue_tags - First observed
get_issue_tags_collection - First observed
get_issue_task - First observed
get_issue_tasks - First observed
get_issue_test_results - First observed
get_milestone - First observed
get_milestone_collection - First observed
get_milestone_types_collection - First observed
get_my_issue_collection - First observed
get_my_issue_tasks_collection - First observed
get_my_project_collection - First observed
get_my_test_run_collection - First observed
get_project - First observed
get_project_collection - First observed
get_project_members_collection - First observed
get_requirement - First observed
get_requirement_collection - First observed
get_requirement_tags - First observed
get_requirement_tags_collection - First observed
get_requirement_test_cases - First observed
get_requirement_types_collection - First observed
get_risk - First observed
get_risk_classifications_collection - First observed
get_risk_collection - First observed
get_risk_tags - First observed
get_risk_tags_collection - First observed
get_risk_test_cases - First observed
get_symbols_collection - First observed
get_team - First observed
get_team_collection - First observed
get_team_members - First observed
get_test_case - First observed
get_test_case_applications - First observed
get_test_case_attachments - First observed
get_test_case_collection - First observed
get_test_case_comments - First observed
get_test_case_issues - First observed
get_test_case_requirements - First observed
get_test_case_risks - First observed
get_test_case_tags - First observed
get_test_case_tags_collection - First observed
get_test_case_test_results - First observed
get_test_case_test_runs - First observed
get_test_environment - First observed
get_test_environment_collection - First observed
get_test_result - First observed
get_test_result_attachments - First observed
get_test_result_collection - First observed
get_test_result_comments - First observed
get_test_result_issues - First observed
get_test_result_states_collection - First observed
get_test_run - First observed
get_test_run_collection - First observed
get_test_run_states_collection - First observed
get_test_run_tags - First observed
get_test_run_tags_collection - First observed
get_test_run_test_cases - First observed
get_test_run_test_results - First observed
get_test_run_users - First observed
get_test_suite - First observed
get_test_suites_collection - First observed
get_user - First observed
get_user_collection - First observed
get_versions_collection - First observed
get_webhook - First observed
get_webhook_collection - First observed
get_webhook_event_collection - First observed
make_admin_user - First observed
mark_test_result_not_viewed - First observed
mark_test_result_viewed - First observed
move_test_case - First observed
move_test_run - First observed
my_account - First observed
open_test_run - First observed
post_application - First observed
post_batch_delete_applications - First observed
post_batch_delete_issues - First observed
post_batch_delete_milestones - First observed
post_batch_delete_requirements - First observed
post_batch_delete_risks - First observed
post_batch_delete_teams - First observed
post_batch_delete_test_cases - First observed
post_batch_delete_test_runs - First observed
post_batch_update_issues - First observed
post_batch_update_requirements - First observed
post_batch_update_risks - First observed
post_batch_update_test_cases - First observed
post_batch_update_test_runs - First observed
post_folder - First observed
post_issue - First observed
post_issue_attachment - First observed
post_issue_comment - First observed
post_issue_task - First observed
post_issue_test_results - First observed
post_milestone - First observed
post_project - First observed
post_requirement - First observed
post_risk - First observed
post_team - First observed
post_team_members - First observed
post_test_case - First observed
post_test_case_attachment - First observed
post_test_case_comment - First observed
post_test_environment - First observed
post_test_result - First observed
post_test_result_attachment - First observed
post_test_result_comment - First observed
post_test_result_issues - First observed
post_test_run - First observed
post_user - First observed
post_webhook - First observed
put_application - First observed
put_folder - First observed
put_issue - First observed
put_issue_task - First observed
put_milestone - First observed
put_project - First observed
put_requirement - First observed
put_risk - First observed
put_team - First observed
put_test_case - First observed
put_test_environment - First observed
put_test_result - First observed
put_test_run - First observed
put_user - First observed
put_webhook - First observed
remove_admin_user - First observed
restore_application - First observed
restore_folder - First observed
restore_issue - First observed
restore_milestone - First observed
restore_requirement - First observed
restore_risk - First observed
restore_team - First observed
restore_test_case - First observed
restore_test_run - First observed
unarchive_project
TDQS
Scored across 173 tools
With 173 tools, many operations are near-identical across resource types (e.g., get_X_collection vs get_X, get_X_tags vs get_X_tags_collection), which can cause misselection without careful reading. Descriptions do distinguish them, but the sheer volume increases cognitive load and overlap risk.
The dominant pattern is action_resource (get_application, post_issue, put_test_case, delete_webhook, restore_milestone) with batch and association variants, which is highly predictable. Minor deviations like 'my_account' (noun only) and mixed action verbs (open/close, archive/unarchive, mark_viewed) slightly break uniformity.
173 tools is an extreme mismatch for a single MCP server, far exceeding practical bounds (typically 3-15) and likely to overwhelm an agent's selection process. The surface is excessively granular, with many near-duplicate operations across resources.
The server covers extensive CRUD lifecycles for core entities (applications, issues, projects, requirements, risks, teams, test cases, test runs, test results, users, webhooks, folders) including batch, restore, comments, attachments, and associations. Minor gaps exist for configuration entities like custom fields and test result states, which are read-only.
Maintenance
Related MCP Connectors
An MCP server that provides access to Testiny projects, test cases and test runs
MCP server exposing the Backtest360 engine API as tools for AI agents.
Run, debug, and triage tests from your IDE using natural language, no dashboard switching, no manual data transfers. The TestMu AI (formerly LambdaTest) MCP Server is a single remote server exposing four tool suites: HyperExecute — analyze your project, generate YAML configs and test runner commands, then monitor jobs and sessions. Automation — pull a TestID's details plus command, network, and console logs into one chat for instant root-cause analysis. Includes mobile app upload. SmartUI — explain pixel, layout, DOM, and perceptual changes in a visual regression run, with context-aware React/HTML/CSS fixes. Accessibility — audit any public URL or a local React app against WCAG and get ready-to-apply remediation steps. Connects over https://mcp.lambdatest.com/mcp using OAuth 2.1 — no API keys in your config. One-click install in Cursor; works with Claude, GitHub Copilot, Cline, and any MCP client. Tests execute on the TestMu AI cloud: 3,000+ browsers and 10,000+ real devices.
MCP server for Pentest-Tools.com: run scans, manage findings and reports via your preffered LLM.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceMCP server for TestRail that enables AI assistants to interact with TestRail's test management platform. It can query and manage projects, test cases, runs, results, plans, milestones, and more.MIT
- AlicenseBqualityAmaintenanceAI-native Model Context Protocol (MCP) server for TestRail. Lets Claude, Cursor, Windsurf, and other AI assistants browse projects, create and update test cases, kick off test runs, and record results through natural-language conversation — with strongly-typed tool schemas and per-project custom field validation that helps LLMs generate valid TestRail requests on the first try.261,108 npm39Apache 2.0
- AlicenseAqualityCmaintenanceAn MCP server that enables AI agents to drive Zephyr for Jira (Server/Data Center) test management via ZAPI. It exposes operations for test cycles, folders, executions, test steps, step results, and ZQL search over stdio for use with any MCP client.4011 PyPIMIT
- AlicenseNot gradedqualityDmaintenanceA universal AI-powered testing server built on the Model Context Protocol (MCP). Allows AI agents to inspect, execute, test, monitor, debug, and report on software projects.3GNU Lesser General Public v2.1 only