Prowlarr MCP server
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., "@Prowlarr MCP serversearch for 4K remuxes of recent movies"
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.
Prowlarr MCP server
Run Prowlarr from Claude.ai and Claude Code. All 128 operations of the v1 API are tools, generated from Prowlarr's own OpenAPI document. Not a curated subset: every endpoint Prowlarr's web interface can reach, this can reach.
Why not the other options
Measured against Prowlarr.Api.V1/openapi.json, which has 93 paths and 128 non-HEAD operations:
Server | Prowlarr tools | Coverage |
| 4 | 3 % |
| a handful | partial |
| unified verbs across 10 services | partial |
This one | 128 | 100 % |
Prowlarr is the worst served of the Servarr apps: every existing server treats it as an afterthought behind Sonarr and Radarr. Nothing else exposes indexerproxy, appprofile, indexerstats, indexerstatus, applications or the Newznab routes at all.
Related MCP server: prowlarr-mcp
How it stays complete
src/prowlarr_mcp/tools.py is generated, not written:
curl -o openapi.json https://raw.githubusercontent.com/Prowlarr/Prowlarr/develop/src/Prowlarr.Api.V1/openapi.json
python scripts/generate_tools.py openapi.json src/prowlarr_mcp/tools.pyA test compares every generated call against every operation in the spec, in both directions. An endpoint Prowlarr adds and this misses fails the build; so does a tool pointing at an endpoint the spec does not define.
Tool names
Verb first, derived from the method and path, so the name says what it does:
Pattern | Meaning | Example |
| Read a collection |
|
| Read one record |
|
| POST |
|
| PUT |
|
| DELETE |
|
128 tools is a lot to put in front of a model at once. If your client supports tool filtering, narrow it to the groups you use.
What is covered
Every resource group: indexer, indexerproxy, indexerstats, indexerstatus, applications, appprofile, downloadclient, search, history, notification, command, customfilter, tag, health, log, filesystem, localization, update, system and the config endpoints, plus the Newznab compatibility routes.
Setup
git clone https://github.com/rollecode/prowlarr-mcp.git
cd prowlarr-mcp
uv venv && uv pip install -e .export PROWLARR_URL=http://127.0.0.1:9696
export PROWLARR_API_KEY=... # Settings, General, SecurityClaude Code
claude mcp add prowlarr -- /path/to/prowlarr-mcp/.venv/bin/prowlarr-mcpWriting records
Prowlarr replaces a record on PUT rather than merging, so read it first, change the fields you want and send the whole object back as body. For a new indexer, list_indexer_schema returns every definition Prowlarr knows and the fields each one needs.
Hosting it
Running it over HTTP puts it in reach of Claude.ai as a custom connector, and of Claude Code on other machines. Three tiers, the same shape the other servers in this family use:
Tier | Port | What it does |
| 8540 | The server. No login of its own, never exposed |
nginx | 8541 | Front door, behind a Cloudflare Tunnel |
| 8542 | OAuth 2.1 sign-in, or a fixed bearer token |
npm install
node set-password.js 'a password for the sign-in page'
printf 'PROWLARR_URL=...\n' > ~/.config/prowlarr-mcp/env
chmod 600 ~/.config/prowlarr-mcp/envCopy systemd/*.service into /etc/systemd/system/, replacing YOUR_USER and the ISSUER hostname, then:
sudo systemctl enable --now prowlarr-mcp prowlarr-mcp-authPoint nginx/prowlarr-mcp.conf at your own hostname and send the tunnel at 127.0.0.1:8541.
Environment the server itself reads: PROWLARR_URL, PROWLARR_API_KEY. The sign-in page carries the Prowlarr mark and accent colour, set through APP_NAME, APP_ACCENT and APP_BLURB in the auth unit.
Claude.ai
Settings, Connectors, Add custom connector, URL https://prowlarr-mcp.your-domain/mcp, client ID and secret blank. The sign-in page asks for the password set above. Connectors belong to the account, so adding it once covers mobile too.
Development
uv pip install -e . pytest ruff
.venv/bin/python -m pytest tests
.venv/bin/ruff check .Available Tools
128 toolscreate_applicationsCIdempotent
Create Application.
POST /api/v1/applications
Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects. force_save: Query parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | ||
| force_save | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a non-read-only, idempotent, non-destructive operation, so the description does not need to restate those basics. However, it adds little behavioral context beyond the endpoint; it does not describe side effects, validation behavior, or what happens on save, which would have added value 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 compact and front-loads the core purpose and endpoint. The Args list is minimal, though 'force_save: Query parameter' adds little value beyond the schema and the 'Create Application' line is slightly redundant with the endpoint.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an open body object and no parameter descriptions in the schema, the description does not fully equip an agent to call the tool correctly. It wisely directs the agent to GET/schema endpoints for body fields, but it leaves force_save semantics unexplained and offers no alternative-selection guidance.
Complex tools with many parameters or behaviors need more documentation. 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 for explaining the parameters. It does describe 'body' as the request payload and points to GET/schema for field details, but 'force_save' is only labeled 'Query parameter' with no explanation of its effect, leaving a significant semantic 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 clearly states 'Create Application' and gives the exact HTTP endpoint, so an agent can tell it is the create operation for the applications resource. It does not explicitly differentiate itself from sibling tools like create_applications_action_by_name or create_applications_test, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives useful procedural guidance ('Read the matching GET or the /schema endpoint first'), but it does not state when to prefer this tool over alternatives or when not to use it. Usage context is implied by the name and endpoint rather than explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_applications_action_by_nameCIdempotent
Create Application.
POST /api/v1/applications/action/{name}
Args: name: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | ||
| name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide idempotentHint=true, readOnlyHint=false, and destructiveHint=false. The description adds some useful context by exposing the HTTP endpoint and instructing agents to consult GET or /schema for expected fields, which helps with dynamic payload discovery. However, it does not clarify what the 'action' actually does or what side effects result.
Agents need to know what a tool does to the 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 compact and well-structured: a one-line purpose, the endpoint, and an args breakdown. There is no redundant filler or repetition of the schema. It is too sparse, but the conciseness itself is appropriate for the limited information provided.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having only two parameters and an output schema, the description is not complete enough for correct invocation. It fails to explain the action-by-name concept, the role of the name parameter, or how this operation relates to the broader applications API. The external reference to GET/schema is helpful but does not compensate for the missing semantic 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 coverage is 0%, so the description carries the burden of explaining parameters. It states that name is a path parameter and body is a request payload, but it does not explain what name refers to or what the action does. Pointing to GET or /schema helps for body discovery, but the meaning of the key name parameter remains 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 Application,' which states a verb and resource, but it omits the critical 'action/{name}' semantics from the tool and path. This makes it ambiguous whether it creates an application or executes/creates an action on an application, and it does not distinguish it from sibling create_applications.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 given for when to use this tool versus alternatives like create_applications or other create_*_action_by_name tools. The only advice is to read the matching GET or /schema endpoint first, which is a prerequisite for building the payload, not a tool-selection guideline.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_applications_testCIdempotent
Create Application.
POST /api/v1/applications/test
Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects. force_test: Query parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | ||
| force_test | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=true, and destructiveHint=false, and the description does not contradict them. However, the description adds essentially no behavioral context beyond the annotations: it does not disclose whether this endpoint persists a real application or merely validates the payload, which is the key behavioral ambiguity of a '/test' endpoint. It also doesn't explain the meaning of 'force_test' behaviorally.
Agents need to know what a tool does to the 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 compact with the core action front-loaded; the endpoint and args follow in a scannable format. No filler or repetition. However, the brevity leaves room for a sentence clarifying the test semantics that would have made better use of the available 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?
With 0% schema coverage, nested objects, and a meaningful sibling distinction, the description is under-specified. The missing clarification of what 'test' does, whether the operation persists, and when force_test should be set, leaves an agent uncertain about the outcome of invoking this endpoint. The pointer to GET/schema endpoints helps but does not fill the main 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 carries the burden. It provides genuinely useful guidance for 'body' (read the matching GET or /schema endpoint to learn expected fields), which compensates for the opaque additionalProperties:true schema. However, 'force_test' is only labeled 'Query parameter,' adding no meaning beyond the schema's boolean/null type. Compensation is partial at best.
Input schemas describe structure but not intent. Descriptions should explain 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 Application') and provides the HTTP endpoint, so an agent can tell this performs creation of an application resource. It is not a tautology of the tool name. However, it does not differentiate this 'test' variant from the sibling create_applications, leaving ambiguity about what makes the /test endpoint distinct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 create_applications, create_applications_testall, or create_applications_action_by_name. The name suggests a test variant, but the description never states when the test endpoint is appropriate or when the regular create should be used instead. An agent gets no decision support for choosing among the create-application siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_applications_testallDIdempotent
Create Application.
POST /api/v1/applications/testall
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide idempotency and non-destructive hints, so the description's burden is lower. However, the description adds no meaningful behavioral detail beyond the endpoint: it fails to say that this tests all configured applications and does not create a persistent application. The phrase "Create Application" is behaviorally inaccurate for a testall 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?
The description is very short and contains the endpoint, so structure is simple and front-loaded. However, brevity is not valuable when the main content "Create Application" is misleading and the endpoint alone does not explain the operation. Every sentence should add correct value, and this one fails to do so.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 zero parameters and an output schema, the required context is small, but the essential fact—that this is a test-all operation—is missing. An agent cannot correctly decide to call this tool versus the sibling create_applications_test or create_applications based on this description.
Complex tools with many parameters or behaviors need more documentation. 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 has zero parameters and 100% schema coverage, so there are no parameter semantics for the description to clarify. The description adds nothing about parameters, but none are needed.
Input schemas describe structure but not intent. Descriptions should explain 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 Application," but the endpoint and the sibling tool names (create_applications_test, create_applications_testall) indicate this is actually a test-all operation, not an application creation. The verb is misleading and does not distinguish this tool from create_applications or create_applications_test.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool versus alternatives. It does not mention that this is the "test all applications" variant or contrast it with create_applications_test or create_applications. The misleading "Create Application" description actively sends an agent toward the wrong use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_appprofileAIdempotent
Create AppProfile.
POST /api/v1/appprofile
Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=true, and destructiveHint=false, covering the core behavioral profile. The description adds no details beyond 'Create' and the endpoint; it does not mention duplicate handling, error responses, or side effects. This is minimal but not contradictory.
Agents need to know what a tool does to the 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 extremely concise: a two-line purpose and endpoint, plus a short Args note. It front-loads the core action and provides the key preparation instruction without any superfluous content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the purpose and directs the agent to external schema for body fields, which is a reasonable strategy. However, it omits details on required vs optional fields, validation rules, and common failure modes. An output schema exists, so return format is presumably covered, but the description remains somewhat thin for a create operation with an open body.
Complex tools with many parameters or behaviors need more documentation. 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 defines only an open 'body' object with additionalProperties, providing no field information. The description compensates by instructing the agent to consult the GET or /schema endpoint for expected fields, which is essential for constructing a valid payload. This adds significant meaning beyond 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 clearly states the action (Create) and the target resource (AppProfile), and even provides the exact HTTP endpoint (POST /api/v1/appprofile). This unambiguously identifies what the tool does and differentiates it from other create_* tools by the resource name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives like update_appprofile_by_id or list_appprofile. It does instruct the agent to read the matching GET or /schema endpoint first, which is preparation guidance, but it does not address selection criteria among sibling create tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_commandBIdempotent
Create Command.
POST /api/v1/command
Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (readOnlyHint=false, idempotentHint=true, destructiveHint=false) already reveal this is a non-destructive write that is safe to retry. The description adds almost no behavioral context beyond the word 'Create' and the pointer to the schema endpoint — it never mentions idempotency, what happens on success, or side effects. No contradiction, but the description carries little weight 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 compact — verb, endpoint, one parameter, and a lookup instruction — with the purpose front-loaded. Every sentence earns its place and there is no filler. Slightly more could be said about the resource, but the structure 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?
Given the output schema exists (so return values need no explanation) and annotations carry the safety/idempotency profile, the description covers the essentials: the endpoint, the single argument, and where to find field definitions. The main gap is not explaining the nature of the Command resource, but for an open-bodied create tool the scaffolding fills most needs.
Complex tools with many parameters or behaviors need more documentation. 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 body param is an arbitrary object with additionalProperties:true — useless on its own. The description compensates by naming the parameter ('body: Request payload') and directing the agent to the GET/schema endpoints to discover the expected fields. This is effective guidance for an open-ended payload, though it delegates rather than enumerates the fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb-resource pair ('Create Command') paired with the explicit endpoint 'POST /api/v1/command'. Among the many sibling create_* tools (create_applications, create_indexer, etc.), naming the 'Command' resource differentiates it, though it never explains what a Command is or what creating one accomplishes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 a prerequisite hint — 'Read the matching GET or the /schema endpoint first to see the fields this resource expects.' There is no explicit when-to-use guidance, no exclusions, and no reference to alternatives such as list_command or get_command_by_id. An agent gets a hint about preparation but nothing about selection or sequencing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_customfilterAIdempotent
Create CustomFilter.
POST /api/v1/customfilter
Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (not read-only, idempotent, not destructive), so the description does not need to restate it. It adds the HTTP method and payload expectation, but does not disclose response behavior, authentication needs, or duplicate-creation semantics; those are not required given 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 compact and front-loaded: purpose, endpoint, required parameter, and a discovery instruction. Every sentence adds value, and there is no redundant or irrelevant 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 an open-schema create operation, the description is sufficient: it provides the endpoint, identifies the required body parameter, and gives a concrete mechanism for discovering valid fields. Return-value details are unnecessary because an output schema exists; it could be slightly stronger by naming the exact matching GET 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?
The input schema only defines body as an open object with no field-level documentation, so schema coverage is 0%. The description compensates by identifying body as the request payload and, more importantly, directing the agent to read the matching GET or /schema endpoint to learn the expected 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 the action 'Create' and target resource 'CustomFilter' and reinforces it with the explicit endpoint POST /api/v1/customfilter. This clearly distinguishes the tool from update_customfilter_by_id, delete_customfilter_by_id, and list_customfilter.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 makes the use case clear by saying 'Create', and it gives a concrete prerequisite: read the matching GET or /schema endpoint before composing the body. It does not explicitly say to use update_customfilter_by_id for existing filters, so it stops short of full alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_downloadclientCIdempotent
Create DownloadClient.
POST /api/v1/downloadclient
Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects. force_save: Query parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | ||
| force_save | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnly=false, destructive=false, and idempotent=true, so the safety profile is covered. However, the description adds no behavioral context beyond the endpoint: it does not mention side effects, auth requirements, error behavior, or response semantics. Even with annotations, it contributes almost nothing to behavioral transparency.
Agents need to know what a tool does to the 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, front-loaded with the purpose, and contains no filler. The endpoint and parameter labels are laid out in a simple, scannable format. It is appropriately concise, though it sacrifices content for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Although output schema exists, the tool accepts a largely unconstrained nested body with 0% schema coverage, so the description needs to guide the agent more thoroughly. It points to the GET/schema endpoint, which is useful, but fails to explain force_save semantics, typical usage, or how this create operation relates to sibling create-test/action tools. The definition is incomplete for a complex resource creation 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%, so the description must compensate for the unstructured schema. It only labels body as 'Request payload' and force_save as 'Query parameter', which does not explain their actual meaning, format, or required fields. The pointer to GET/schema is helpful, but it is a workaround rather than real 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?
The description states a clear verb and resource ('Create DownloadClient') and includes the REST endpoint, which is unambiguous. It does not explicitly distinguish this tool from siblings like create_downloadclient_action_by_name or create_downloadclient_test, but the core purpose is clear enough for an agent to know 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?
The description gives no guidance on when to use this tool versus alternatives. It only hints that the matching GET or /schema endpoint should be read first, which is a prerequisite rather than usage selection guidance. No mention of when to use create vs. update vs. action_by_name is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_downloadclient_action_by_nameCIdempotent
Create DownloadClient.
POST /api/v1/downloadclient/action/{name}
Args: name: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | ||
| name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already disclose idempotentHint=true, readOnlyHint=false, and destructiveHint=false, so the safety profile is covered. The description adds only the POST endpoint and a hint to look up the schema; it does not disclose side effects, whether this triggers an action rather than a plain create, or any behavioral context beyond the raw 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?
The description is short and front-loaded. It gives the endpoint, then the two arguments, then a useful lookup hint. There is no filler, though the minimalism contributes to the lack of semantic 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 POST/create tool with 0% schema coverage and many sibling create variants, the description is incomplete. It never explains what 'action' means, whether this creates a download client or triggers an action, or why an agent should choose this over create_downloadclient. The output schema does not compensate for these selection and behavior 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 needs to compensate, but it only restates name as a path parameter and body as a payload. It does not say what 'name' refers to or what fields the body should contain, although pointing to the GET/schema endpoint is a small helpful gesture.
Input schemas describe structure but not intent. Descriptions should explain 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 DownloadClient') and gives the HTTP endpoint. However, the endpoint path includes '/action/{name}', which is not explained, and the tool name is not differentiated from the closely related sibling create_downloadclient. An agent cannot tell what 'action' means or how this creation differs from the plain create.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 about when to use this tool versus create_downloadclient, create_downloadclient_test, or other create_* siblings. The advice to read the matching GET or /schema endpoint first is useful for constructing the body, but it does not help with 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.
create_downloadclient_testCIdempotent
Create DownloadClient.
POST /api/v1/downloadclient/test
Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects. force_test: Query parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | ||
| force_test | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds little beyond the annotations. It discloses the endpoint and argument labels but not what the test does, whether it persists anything, what a successful or failed test means, or what force_test affects.
Agents need to know what a tool does to the 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 reasonably front-loaded, but the first sentence is low-value and the argument list is skeletal. It is concise, yet the brevity comes at the cost of substance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value documentation is not required. However, for a test action with a nested body and minimal annotations, the description still lacks behavioral detail, force_test semantics, and differentiation from sibling test/testall tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description needed to explain both parameters. It usefully tells the agent to consult the matching GET or /schema endpoint for body fields, but force_test is only described as 'Query parameter' with no added 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 opening line 'Create DownloadClient.' restates the create_* test name without conveying the test semantics shown by the endpoint '/test'. It does not distinguish this tool from create_downloadclient or create_downloadclient_testall, so an agent cannot tell whether it creates a client, tests one, or tests all.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 only actionable instruction, to read the GET or /schema endpoint first, helps with body discovery but not with tool selection or usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_downloadclient_testallCIdempotent
Create DownloadClient.
POST /api/v1/downloadclient/testall
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly=false, destructive=false, and idempotent=true, so the safety profile is known. However, the description adds no behavioral detail: it does not say that this tests all download clients, whether it requires existing clients, or what side effects (if any) occur besides the read=false designation.
Agents need to know what a tool does to the 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 and includes the endpoint, which is useful. However, 'Create DownloadClient.' is redundant with the tool name and misleading for a testall operation, 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?
The tool has no parameters and an output schema, but the description still fails to clarify the core operation. An agent cannot confidently decide whether to call this tool because 'Create DownloadClient' conflicts with the 'testall' endpoint and no context about testing behavior or alternatives is supplied.
Complex tools with many parameters or behaviors need more documentation. 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 are zero parameters and schema coverage is 100%, so there is nothing for the description to add about parameter meaning. Per the rubric, 0 params earns a baseline of 4.
Input schemas describe structure but not intent. Descriptions should explain 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 DownloadClient' and includes a POST endpoint, but the actual tool is `create_downloadclient_testall`. It never mentions the 'testall' semantics, so an agent cannot tell this apart from the sibling `create_downloadclient` or understand that this likely triggers testing rather than creation. The wording is tautological and potentially misleading.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 `create_downloadclient_test` or `create_downloadclient`. The endpoint is stated, but no conditions, prerequisites, or exclusions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_indexerBIdempotent
Create Indexer.
POST /api/v1/indexer
Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects. force_save: Query parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | ||
| force_save | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already carry the behavioral profile (readOnlyHint=false, destructiveHint=false, idempotentHint=true), so the bar is lower. The description adds virtually nothing beyond the raw endpoint and one metadata pointer; it does not explain what force_save does, what side effects creation has, or any auth/requirements. For a mutation tool with an open body, this is 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 is short and front-loaded with the purpose and endpoint. Minor waste exists: 'Args: force_save: Query parameter' adds no value over the schema, and the body line could be tighter. Overall it is efficient and scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values are covered elsewhere. The body is adequately handled via the schema-endpoint pointer. The main gap is force_save, which has no meaningful explanation despite being a nullable boolean query parameter with likely behavioral impact. For a 2-param tool 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?
Schema description coverage is 0%, so the description must compensate. For 'body' it does add practical value by directing the agent to the schema endpoint for field discovery, which is essential given additionalProperties:true. But 'force_save' is described only as 'Query parameter'—a bare restatement of the schema with zero semantic meaning, and it does not flag that the schema already shows it is nullable/boolean.
Input schemas describe structure but not intent. Descriptions should explain 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 Indexer') plus the full endpoint. It is unambiguous about what is being created. However, it does not differentiate from siblings like create_indexerproxy, create_indexer_test, or create_indexer_action_by_name, which an agent might confuse it with aiming for the same create path.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 instructs the agent to read the matching GET or /schema endpoint first to discover expected body fields, which is practical for an open-ended body object (additionalProperties: true). But it gives no guidance on when to use this tool versus the many sibling create_* tools, and no exclusions or alternatives are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_indexer_action_by_nameAIdempotent
Create Indexer.
POST /api/v1/indexer/action/{name}
Args: name: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | ||
| name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate idempotentHint=true and readOnlyHint=false, and the description does not contradict them. It adds context about the endpoint and instructs the agent to inspect the schema before sending a body, but it does not disclose effects beyond creating an indexer, auth requirements, or response 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 compact and front-loaded: it states the operation, gives the endpoint, and then lists the two arguments with a clear instruction for handling the payload. Every line 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 2-parameter creation endpoint with an output schema and existing annotations, the description covers the essentials: endpoint, parameter roles, and how to discover the body shape. It is slightly incomplete in not clarifying the difference from sibling indexer creation tools, but the core invocation context is present.
Complex tools with many parameters or behaviors need more documentation. 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 for parameter meaning. It identifies name as a path parameter and body as the request payload, and it tells the agent to fetch the matching GET or schema endpoint to learn the body's expected fields. This is meaningful guidance for an open/opaque body 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?
The description clearly identifies the action as 'Create Indexer' and gives the exact REST endpoint, so an agent knows the verb and resource. However, it does not explain what distinguishes this from the sibling create_indexer tool or what 'action_by_name' means.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 showing the POST endpoint and stating that a payload is required. It gives the useful prerequisite to read the matching GET or /schema endpoint first, but it does not explicitly state when to use this tool versus alternatives such as create_indexer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_indexerproxyAIdempotent
Create IndexerProxy.
POST /api/v1/indexerproxy
Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects. force_save: Query parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | ||
| force_save | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare idempotentHint=true and destructiveHint=false, so the safety profile is covered. The description adds no extra behavioral detail such as side effects, auth requirements, or retry behavior. It is neutral and does not contradict 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 extremely concise and front-loaded. It states the action, the endpoint, and the two parameters in a compact list. Every sentence earns its place, with no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a create operation with a complex nested body and an output schema, the description provides a complete strategy: consult the schema endpoint for the body fields. The force_save parameter is left unexplained, but it is optional and defaults to null, so the gap is minor. Overall, an agent has enough guidance to invoke this correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains that body is the request payload and directs the agent to the GET or /schema endpoint for its fields. However, force_save is only labeled as a query parameter with no explanation of its meaning or effect, leaving part of the parameter semantics unresolved.
Input schemas describe structure but not intent. Descriptions should explain 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 IndexerProxy.' It also includes the HTTP endpoint POST /api/v1/indexerproxy, which makes the action unambiguous. It doesn't explicitly distinguish from sibling tools like create_indexerproxy_test or create_indexerproxy_action_by_name, but the name and basic action are clear 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 description gives a concrete prerequisite: read the matching GET or the /schema endpoint to learn the expected body fields. This tells the agent how to prepare the call. It doesn't mention when to prefer this tool over its test/testall siblings, but the core usage context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_indexerproxy_action_by_nameCIdempotent
Create IndexerProxy.
POST /api/v1/indexerproxy/action/{name}
Args: name: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | ||
| name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false, destructiveHint=false, and idempotentHint=true. The description adds that it is a POST action and that the body expects fields matching a GET or the /schema endpoint, but it does not disclose side effects, required configuration state, or response behavior. The description does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and structured: one title line, the endpoint, and an Args block. It front-loads the essential action and endpoint. It could be tighter by removing the redundant 'Args:' line, but overall it 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?
Given that the body is a free-form object with no schema details, the guidance to read the matching GET or /schema endpoint is important, but the description lacks information about what the action actually performs, what a successful response contains, or any special behavior. 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?
Schema description coverage is 0%, so the schema itself defines name as a string and body as a free-form object with additionalProperties true. The description adds minimal semantics: name is a path parameter and body is the request payload that should be read from a matching GET or /schema. This is helpful but does not fully compensate for the lack of 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 'Create IndexerProxy' states a verb and a resource, so it is clear enough at a high level, but it does not distinguish this action-by-name variant from the sibling create_indexerproxy, which also creates IndexerProxy. The endpoint path is shown, but the agent must infer that this is the action variant that takes a name path parameter.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description says 'POST /api/v1/indexerproxy/action/{name}' and 'Args:', which implies usage, but it gives no guidance on when to use this tool versus create_indexerproxy, create_indexerproxy_test, or create_indexerproxy_testall. No exclusions or alternatives are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_indexerproxy_testCIdempotent
Create IndexerProxy.
POST /api/v1/indexerproxy/test
Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects. force_test: Query parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | ||
| force_test | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate idempotent, non-destructive, and non-readOnly. The description adds nothing about the test semantics, whether a resource is actually created, or what 'force_test' does behaviorally. It only echoes the endpoint and refers to schema, leaving the agent to infer critical 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 concise and structured (endpoint, args) with no fluff. However, the brevity comes at the cost of substance; it is efficient but fails to deliver meaningful 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?
Despite having an output schema and annotations, the description is critically incomplete. It omits the test-vs-create distinction, the purpose of 'force_test', and any differentiation from the large set of sibling create tools, leaving an agent likely to misuse it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It mentions 'body' and says to read the GET or /schema endpoint to know fields – a useful pointer but not an explanation. 'force_test' is merely labeled as a query parameter with zero semantics. This barely meets the minimum for parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain 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 'Create IndexerProxy.' but the tool name 'create_indexerproxy_test' and endpoint '/test' imply a test operation, not a straightforward create. It does not differentiate from the sibling 'create_indexerproxy' or clarify what 'test' means (e.g., validate without persisting). The verb+resource is vague and ambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 given on when to use this tool versus alternatives like create_indexerproxy, create_indexerproxy_testall, or the action-by-name variants. There is no mention of prerequisites, typical use cases, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_indexerproxy_testallCIdempotent
Create IndexerProxy.
POST /api/v1/indexerproxy/testall
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide idempotency and destructive/safety hints, but the description adds no behavioral context beyond a POST route. It does not say whether this runs tests against all configured proxies, creates a proxy, or what side effects/results occur. It therefore does not go beyond the structured hints.
Agents need to know what a tool does to the 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 brevity replaces content: 'Create IndexerProxy.' merely repeats the tool name, and only the endpoint line provides any non-redundant information. Every sentence 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?
Even though the tool is parameterless and has an output schema plus annotations, the description leaves the core behavior ambiguous. An agent cannot determine what 'testall' does, whether it creates a proxy or tests existing ones, or how to distinguish it from closely named siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero properties and 100% description coverage, so there are no parameter semantics to document. The baseline for a parameterless tool is 4, and the description does not need to compensate for missing schema fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is just 'Create IndexerProxy.' followed by the endpoint, which restates part of the tool name without explaining the 'testall' suffix. The endpoint POST /api/v1/indexerproxy/testall suggests a test-all action rather than a resource creation, making the stated purpose misleading and indistinguishable from create_indexerproxy.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 vs create_indexerproxy, create_indexerproxy_test, or any sibling. No context, prerequisites, or exclusions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_indexer_testCIdempotent
Create Indexer.
POST /api/v1/indexer/test
Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects. force_test: Query parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | ||
| force_test | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey that this is non-read-only, non-destructive, and idempotent, and the description does not contradict them. The description adds only that this is a POST endpoint and that body fields are discoverable via GET/schema, which is modest context. It does not disclose side effects, retry semantics, or what the 'test' behavior entails.
Agents need to know what a tool does to the 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 compact and front-loaded with the action, and the GET/schema pointer is useful. However, it is under-specified rather than efficiently concise, omitting key clarification about the test endpoint and the force_test 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?
For a create endpoint with 0% schema description coverage and an unexplained query parameter, this description is not complete enough to invoke correctly. The pointer to GET/schema helps for body construction, but the missing distinction from sibling tools and the unexplained force_test parameter leave 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, but it largely does not. 'body' is only described as a payload with a pointer to GET/schema, which is helpful but generic, and 'force_test' is merely labeled a query parameter without any explanation of its meaning or effect.
Input schemas describe structure but not intent. Descriptions should explain 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 Indexer,' but drops the '_test' distinction that is central to the tool name. The endpoint path '/api/v1/indexer/test' hints at a test variant, yet the description does not explain what the test operation actually does or how it differs from create_indexer.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 siblings like create_indexer or create_indexer_testall. The note to read the matching GET or /schema endpoint is useful for preparing the body, but it does not help an agent choose among related tools or understand prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_indexer_testallDIdempotent
Create Indexer.
POST /api/v1/indexer/testall
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare idempotent and non-destructive behavior, so the description does not need to restate those. However, the description adds no context about what 'testall' actually does, what side effects occur, or what an agent should expect after invocation.
Agents need to know what a tool does to the 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 opening phrase 'Create Indexer' is under-specification rather than meaningful conciseness and likely restates a misleading intent. The endpoint line is useful, but the overall content 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 tool with no parameters and an output schema, the basic mechanics are simple, but the semantic context is missing. An agent cannot determine that this is the test-all-indexers operation or how it relates to create_indexer_test.
Complex tools with many parameters or behaviors need more documentation. 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 has zero parameters and the schema coverage is effectively complete. There is no parameter meaning for the description to add, so it cannot be penalized for missing 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?
The description says only 'Create Indexer,' which omits the 'testall' action and does not distinguish this tool from siblings like create_indexer or create_indexer_test. Given the endpoint POST /api/v1/indexer/testall, the stated purpose is misleading rather than clarifying.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 or why it is preferable to create_indexer, create_indexer_test, or create_indexer_action_by_name. The description implies a creation workflow that the endpoint does not support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_loginCIdempotent
Create Authentication.
POST /login
Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects. return_url: Query parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | ||
| return_url | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already convey that this is a non-read-only, idempotent, non-destructive operation, and the description adds no behavioral details beyond that. It does not disclose whether an existing session is replaced, whether credentials are required in the body, or what side effects (e.g., issuing an authentication token) occur.
Agents need to know what a tool does to the 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 compact and logically structured: a one-line summary, the endpoint, then argument descriptions. It contains no filler, though the brevity is achieved by leaving important behavioral and usage context out.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 login/authentication tool, the description omits the most important context: what the agent should do with the result, whether authentication is required for subsequent calls, and how this relates to the logout/login sibling tools. Output schema existence covers return values, but the missing operational context makes the tool hard to use correctly in a broader workflow.
Complex tools with many parameters or behaviors need more documentation. 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 partially compensates by explaining that body is a request payload whose expected fields must be discovered from the matching GET or /schema endpoint. return_url, however, is only called a 'Query parameter', which adds location but not its meaning or purpose.
Input schemas describe structure but not intent. Descriptions should explain 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 opens with 'Create Authentication.' and gives the endpoint 'POST /login', which identifies the operation as creating an authentication/login resource. However, it never explains what 'authentication' means in practice (e.g., logging in, receiving a session/token), so the purpose remains somewhat vague and weakly differentiated from the abstract create_* pattern 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 explicit statement of when to call this tool versus alternatives like list_login or list_logout. The only guidance is to read the matching GET or /schema endpoint before supplying the body, which is parameter preparation rather than usage context for choosing the tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_notificationBIdempotent
Create Notification.
POST /api/v1/notification
Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects. force_save: Query parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | ||
| force_save | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already disclose the safety profile (readOnlyHint=false, idempotentHint=true, destructiveHint=false), and the description is consistent with those. The description adds the HTTP endpoint and the instruction to inspect the schema first, which is useful context, but it does not explain what force_save does or reveal any side effects beyond what annotations already convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: a one-line purpose statement, the endpoint, then a short args list. The body guidance is written directly under the parameter it documents. Minor redundancy exists ('Create Notification' followed by the POST line), but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value documentation is not required. The description adequately directs the agent to the schema endpoint for the open-world body, but force_save's behavior is unexplained and no error/validation context is given. For an open-world nested body tool, it is adequate but not rich.
Complex tools with many parameters or behaviors need more documentation. 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 of explaining parameters. It gives genuinely useful guidance for body ('Read the matching GET or the /schema endpoint first to see the fields this resource expects') since the body is an open additionalProperties object. However, force_save is only described as 'Query parameter', which merely restates the schema and adds no 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?
The description states the verb (Create), resource (Notification), and the HTTP endpoint (POST /api/v1/notification), making the core purpose clear. It is distinguishable from update_notification_by_id, delete_notification_by_id, and list_notification by name and method, but it does not explicitly differentiate itself from the create_notification_test and create_notification_testall siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as create_notification_test or update_notification_by_id. The only context clue is 'Read the matching GET or the /schema endpoint first', which is a prerequisite for constructing the body rather than a when-to-use directive, so the selection context is effectively absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_notification_action_by_nameCIdempotent
Create Notification.
POST /api/v1/notification/action/{name}
Args: name: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | ||
| name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare idempotentHint true and destructiveHint false, and the description does not contradict them. However, the description adds no behavioral context beyond the generic 'Create' – it doesn't mention idempotency implications, auth requirements, side effects, or that creating an action might require an existing notification. With annotations present, the description carries a lower burden but still adds minimal 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 is compact and front-loaded with the HTTP verb and endpoint. It includes the parameter list in a clear format. Every line earns its place, though it could be more informative without bloating.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Although an output schema exists (so return values need no explanation), the tool is a creation action with nested objects and a low schema coverage. The description fails to explain what an 'action' is, whether any prerequisites exist (e.g., an existing notification), or what happens if the name already exists. Relying solely on 'read the schema' is a thin safety net, especially for a mutating 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 0% and the description only labels 'name' as a path parameter and 'body' as the request payload. It tells the agent to read the GET or /schema endpoint for field details, which is a pointer but not actual semantics. This does not compensate for the lack of schema descriptions, leaving the agent uncertain about the body structure or the meaning of 'name' beyond it being a path 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 'Create Notification' and the endpoint '/api/v1/notification/action/{name}', which indicates the tool creates a notification action, not just a notification. However, it is ambiguous whether this is the general create or a specialized action create. The name 'create_notification_action_by_name' clarifies it, but the description itself is vague and doesn't explicitly distinguish from the sibling 'create_notification'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 advises reading the matching GET or /schema endpoint before using, which is a useful precondition hint. However, it gives no guidance on when to choose this tool over siblings like create_notification or update_notification_by_id, nor when to avoid it. The absence of any exclusion criteria or alternative selection criteria leaves the agent without clear usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_notification_testCIdempotent
Create Notification.
POST /api/v1/notification/test
Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects. force_test: Query parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | ||
| force_test | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already indicate idempotent, non-destructive, non-read-only behavior, but the description adds no behavioral context such as 'sends a test notification' or what force_test actually affects. It only restates the POST endpoint and gives a schema-discovery hint, so there is little transparency beyond the structured 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 endpoint, but the opening line 'Create Notification.' largely restates the tool name and does not earn its place. The Args section is structured but minimal, making the description under-specified rather than efficiently complete.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Even with annotations and an output schema, an agent cannot tell what a 'test' call does, when to choose it over create_notification_testall, or how force_test should be set. The description outsources body shape to another endpoint and leaves the core test semantics 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?
With 0% schema description coverage, the description must carry parameter meaning. It identifies body as the request payload and force_test as a query parameter, but it does not explain what force_test does or what body structure is expected. This provides only marginal help 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 gives a clear verb ('Create') and resource ('Notification') and exposes the endpoint POST /api/v1/notification/test. However, it does not state that this is specifically the 'test' variant, so an agent cannot distinguish it from create_notification or create_notification_testall based on the prose 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 about when to use this tool instead of create_notification, create_notification_testall, or other sibling test endpoints. The only advice, to read the matching GET or /schema endpoint before filling the body, is about parameter discovery rather than tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_notification_testallCIdempotent
Create Notification.
POST /api/v1/notification/testall
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate idempotentHint=true, readOnlyHint=false, destructiveHint=false, so the safety profile is already declared. The description adds the HTTP method and endpoint, which is minor context. It does not describe side effects, return behavior, or what 'testall' does, but annotations carry the main 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 extremely short, which is efficient, but it repeats the tool name ('Create Notification') and only adds the endpoint. It is not misleading, but it does not earn its place by adding meaningful information beyond the name and schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-parameter tool with an output schema, the description could be minimal, but the tool name and siblings suggest this is a test-all action. The description does not clarify what the tool does, what it returns, or when it should be used. Given the ambiguity, it is 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?
The tool has zero parameters, so there is no parameter semantics burden on the description. The schema is empty and coverage is 100%, so nothing is missing. Baseline 4 is appropriate for a no-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?
The description says 'Create Notification' and gives the endpoint, but the tool name is create_notification_testall, which suggests a test-all action rather than a general create. It does not state what 'testall' means or how it differs from create_notification or create_notification_test. The verb+resource is present but the scope is ambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 create_notification, create_notification_test, or create_notification_action_by_name. The endpoint path hints at a test-all operation, but the description does not explain the intended use case or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_searchAIdempotent
Create Search.
POST /api/v1/search
Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey idempotency, non-read-only, and non-destructive behavior. The description adds the precondition to consult GET/schema first, which is contextual value, but it does not describe side effects, required permissions, or what happens on success. No contradiction with annotations exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: a purpose statement, the concrete endpoint, and an argument note. Every line contributes actionable information without filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter create call with an output schema and helpful annotations, the description supplies the endpoint and a clear path to discovering the body structure. The main gaps are not explaining how this differs from create_search_bulk and not describing expected response behavior, though the output schema helps fill part of that.
Complex tools with many parameters or behaviors need more documentation. 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 body parameter has no schema documentation and is additionalProperties, yet the description identifies it as the request payload and directs the agent to the authoritative GET/schema endpoint for field details. This meaningfully compensates for the opaque 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 create operation on a search resource and provides the endpoint POST /api/v1/search. However, it does not distinguish this from sibling create_search_bulk, so purpose is clear but lacks sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a useful precondition: read the matching GET or /schema endpoint before supplying a body. It does not, however, state when to prefer this tool over alternatives like create_search_bulk, nor does it mention exclusions or 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.
create_search_bulkCIdempotent
Create Search.
POST /api/v1/search/bulk
Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false, idempotentHint=true, and destructiveHint=false, so the description does not add behavioral context. It does not describe what happens on creation, the response format, or any side effects. The only extra note is about reading the schema first, which is more of a usage hint than a 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?
The description is very short and front-loaded with the purpose ('Create Search'), followed by the endpoint URL and a concise parameter note. Every sentence earns its place. It could be slightly longer to clarify the bulk nature, but as written it is efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (one opaque parameter and a 'bulk' name that is unexplained), the description is incomplete. It does not mention that this is a bulk operation, does not clarify how it differs from create_search, and relies entirely on the schema endpoint for payload details. The output schema is present, so return values are covered, but the operational context is lacking.
Complex tools with many parameters or behaviors need more documentation. 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 a single 'body' parameter with additionalProperties:true and no description (0% coverage). The description compensates by telling the agent to read the matching GET or /schema endpoint to discover the expected fields. This is a practical workaround for the opaque parameter, though it does not provide any direct semantic detail about the parameter 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 states 'Create Search.' which clearly identifies the verb and resource—creating a search object. However, it does not mention the 'bulk' aspect implied by the tool name, nor does it differentiate from the sibling tool create_search. The purpose is clear but lacks specificity about what makes this tool distinct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 instructs the agent to 'Read the matching GET or the /schema endpoint first to see the fields this resource expects.' This is a useful prerequisite but does not address when to use this tool versus alternatives like create_search, nor does it specify any conditions or exclusions. There is no guidance on when a bulk create is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_system_backup_restore_by_idCIdempotent
Create Backup.
POST /api/v1/system/backup/restore/{id}
Args: id: Path parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already signal a non-read-only, idempotent operation, so the description adds little behavioral context. It does not disclose side effects, prerequisites, or what happens to the system when a restore is triggered. The mention of POST and the path is routing information, not behavioral transparency.
Agents need to know what a tool does to the 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 compact and well-structured, presenting the endpoint and parameter in separate sections with no excessive wording. The 'Create Backup' line is wasteful and inaccurate, but overall the format is clean and readable. It earns a high score for structure despite its lack of substance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 system restore operation, the description is incomplete: it never explains that the tool restores a backup by ID, nor what effects the restore has on the system. Since an output schema exists, return values are covered, but the core semantics and prerequisites are missing. An agent could easily misuse the tool or misunderstand its impact.
Complex tools with many parameters or behaviors need more documentation. 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 has 0% description coverage, so the description carries the burden for explaining parameters. It only states that id is a path parameter, without clarifying that the id refers to a backup ID or how it is used. This is minimal added meaning beyond the schema's basic 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 says 'Create Backup' but the endpoint path is /restore/{id}, indicating this tool actually restores a backup, not creates one. The plain-language statement is misleading, and the tool name 'create_system_backup_restore_by_id' does not resolve the ambiguity. It fails to clearly state the resource and action, relying on the HTTP path for the real meaning.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 create_system_backup_restore_upload or list_system_backup. The description does not explain whether to prefer this tool for restoring an existing backup by ID or when an upload is required. It effectively provides no usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_system_backup_restore_uploadCIdempotent
Create Backup.
POST /api/v1/system/backup/restore/upload
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly/idempotent/destructive hints. The description adds only the HTTP method and path, not the actual upload/restore behavior, expected request body, or side effects on existing data. There is no contradiction with the annotations, but the added behavioral transparency 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 short, but 'Create Backup' is redundant with the tool name and the endpoint line carries almost all the information. This is under-specification rather than effective 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 an upload/restore operation, the description fails to explain the key behavior: that it uploads a backup file and triggers a restore. It also gives no indication of what input the caller must provide beyond the empty schema, nor when to choose this over the restore-by-id sibling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema is empty and parameter count is zero, so baseline 4 applies. The description does not add parameter detail, but none exists in the schema. However, the 'upload' endpoint likely implies a file body that is not mentioned, which is more of a completeness gap than a parameter-semantics issue.
Input schemas describe structure but not intent. Descriptions should explain 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's only prose is 'Create Backup', which is essentially a tautology of the tool name and hides the critical 'restore/upload' semantics. The endpoint line adds specificity, but an agent would still not know this operation uploads a backup file for restoration rather than creating a backup.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 given on when to use this tool versus closely related siblings like create_system_backup_restore_by_id, delete_system_backup_by_id, or list_system_backup. The agent is left to infer selection purely from the endpoint path.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_system_restartCIdempotent
Create System.
POST /api/v1/system/restart
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The endpoint implies a restart, but the description never states what happens: it does not mention that the system will reboot, that active operations may be interrupted, or what the response/result means. Annotations give idempotentHint=true and readOnlyHint=false, but the description itself adds almost no behavioral detail.
Agents need to know what a tool does to the 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 extremely short, but the opening line 'Create System.' is wasteful and actively confusing; it does not convey the restart behavior. The endpoint is the only informative part, so the structure is concise but not effective.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Even though this is a zero-parameter call with an output schema, the description omits the essential context of what calling the endpoint does and when it should be used. For a system-restart operation, it should at minimum say that it restarts the system and warn about impact.
Complex tools with many parameters or behaviors need more documentation. 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 has zero parameters and 100% schema coverage, so there is no parameter meaning for the description to add. The baseline of 4 applies because no parameter documentation is needed.
Input schemas describe structure but not intent. Descriptions should explain 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 System,' which is misleading—it does not say the tool restarts anything. The only useful clue is the endpoint 'POST /api/v1/system/restart', from which the action can be inferred, but the description itself fails to state the operation clearly or distinguish it from create_system_shutdown.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 vs. alternatives such as create_system_shutdown or create_system_backup_restore_by_id. No context, trigger conditions, or exclusions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_system_shutdownCIdempotent
Create System.
POST /api/v1/system/shutdown
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate this is a write, idempotent, non-destructive operation, but the description adds no behavioral context beyond that. It does not mention that the system will shut down, whether confirmation is required, or what side effects occur.
Agents need to know what a tool does to the 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 'Create System.' sentence is uninformative and potentially misleading. The endpoint line is useful, but the overall structure does not effectively convey the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 action with an output schema, the main missing context is the actual behavior: triggering a system shutdown. The name and endpoint hint at this, but the description does not confirm it or explain the implications, leaving an agent to guess.
Complex tools with many parameters or behaviors need more documentation. 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 has zero parameters and schema description coverage is 100%, so there is nothing meaningful to add about parameters. A baseline of 4 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 says 'Create System' and lists the endpoint, but it never states that this tool shuts down the system. 'Create System' is a generic and misleading label rather than a clear statement of the tool's actual behavior.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 alternatives such as create_system_restart. The description only provides an endpoint with no context, exclusions, or selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_tagAIdempotent
Create Tag.
POST /api/v1/tag
Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false, idempotentHint=true, and destructiveHint=false, so the description is not burdened with covering safety. It adds the API endpoint and the need to discover the resource schema via GET or /schema, which is useful operational 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?
The description is compact and well-structured: a clear action, the endpoint, and an Args section with a direct payload instruction. There is no filler or redundant explanatory material; every line serves a purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 the body is an opaque object with additionalProperties allowed, the directive to read the matching GET or /schema endpoint is a good way to fill the gap. With annotations covering safety/idempotency and an output schema present, the description is reasonably complete for invoking the tool, though it omits what a 'tag' is in this system.
Complex tools with many parameters or behaviors need more documentation. 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 identifies 'body' as the request payload and directs the agent to consult GET or /schema for expected fields, which is helpful. However, it does not actually describe any fields or the structure of the body object, leaving the agent reliant on another endpoint.
Input schemas describe structure but not intent. Descriptions should explain 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 'Create Tag' and gives the POST /api/v1/tag endpoint, which is a specific verb and resource. It is clear enough to distinguish this from sibling tools like update_tag_by_id and delete_tag_by_id, though it adds little beyond 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?
The instruction to 'Read the matching GET or the /schema endpoint first' gives useful procedural guidance for preparing the request. However, it does not explicitly state when to use create_tag versus alternative tools or any exclusions, so usage context is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_applications_bulkCDestructiveIdempotent
Delete Application.
DELETE /api/v1/applications/bulk
Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| body | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=true. The description says 'Delete Application,' which is consistent with destructive. It adds the instruction to read the schema first, but no further behavioral disclosure beyond annotations. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short (three lines), front-loads the purpose, and contains no filler. It is appropriately concise for the tool's simplicity, though minimal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 bulk delete operation, the description does not clarify that it deletes multiple applications (only states 'Delete Application' singular), and it relies entirely on the schema pointer for body fields. An output schema exists so return values are covered, but the description is thin on behavioral scope and prerequisites.
Complex tools with many parameters or behaviors need more documentation. 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% for the 'body' parameter, so the description must compensate. It says 'Request payload,' which merely restates the obvious, and directs to read the schema endpoint for fields, but does not provide actual parameter meaning or structure. This is insufficient given the lack of schema detail.
Input schemas describe structure but not intent. Descriptions should explain 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 'Delete Application' and gives the endpoint /api/v1/applications/bulk, clearly identifying the resource and bulk operation. The name distinguishes it from delete_applications_by_id, though the description itself does not explicitly contrast the two scopes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 hint is 'Read the matching GET or the /schema endpoint first to see the fields this resource expects,' which guides parameter preparation but does not explain when to choose this tool over delete_applications_by_id or other bulk operations. No explicit when/when-not guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_applications_by_idCDestructiveIdempotent
Delete Application.
DELETE /api/v1/applications/{id}
Args: id: Path parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=true, and readOnlyHint=false. The description adds no behavioral context beyond stating 'Delete Application' and showing the HTTP method. It does not disclose permanence, cascading effects, or error behavior, which would be valuable for a destructive operation. Since the description contributes nothing beyond the annotations, it earns 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 description is exceptionally terse—three short lines that state the action, the HTTP method, and the argument. There is no redundancy or unnecessary verbosity. It is front-loaded with the purpose. While it is arguably too sparse for a helpful description, it achieves conciseness perfectly, which aligns with this dimension's focus on efficiency rather than completeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite being a simple tool with only one parameter and an output schema, the description omits essential context for a destructive operation. It does not specify that this deletes a single application by ID (vs. bulk), nor does it address reversibility, confirmation, or potential side effects. The existence of an output schema reduces the need to explain return values, but the description still leaves an agent uninformed about key calling considerations.
Complex tools with many parameters or behaviors need more documentation. 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 explaining the 'id' parameter. It only states 'id: Path parameter', which reiterates that it is a path parameter but does not clarify that it is the unique identifier of the application to be deleted. This is minimal and does not fully resolve the parameter's meaning, especially given the context of the application domain.
Input schemas describe structure but not intent. Descriptions should explain 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 'Delete Application' and includes the DELETE HTTP method with the resource path '/api/v1/applications/{id}'. This clearly identifies the specific verb (delete) and resource (application by ID), and it naturally distinguishes from sibling tools like delete_applications_bulk (which handles multiple) and update/get by verb and resource shape. The purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. It does not mention that this deletes a single application by ID, nor does it reference delete_applications_bulk for bulk deletion or explain any prerequisites (e.g., existing application ID). The only implied context is that an ID is required, which is already evident from the schema. An agent has no help in deciding between this and the bulk variant.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_appprofile_by_idBDestructiveIdempotent
Delete AppProfile.
DELETE /api/v1/appprofile/{id}
Args: id: Path parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already supply destructiveHint=true and idempotentHint=true. The description adds only the HTTP method and path, which restates the delete action but does not disclose irreversibility, authorization needs, side effects, or error behavior 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 compact and front-loaded with the purpose. Every line earns its place: the action, the endpoint, and the parameter location. There is no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive operation, the description is too sparse. It omits what deletion entails, whether it is permanent, what happens on invalid IDs, and any prerequisite conditions. Output schema covers return values, but behavioral context 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?
With schema description coverage at 0%, the description's 'id: Path parameter' adds the location detail that the schema lacks. However, it does not explain what the id refers to or any constraints beyond the schema's integer type, 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 the verb and resource directly: 'Delete AppProfile.' The HTTP path `/api/v1/appprofile/{id}` clarifies it operates on a specific AppProfile by ID, which distinguishes it from get/update and other delete_*_by_id siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidance is provided. The description does not explain when to use this tool versus get_appprofile_by_id or update_appprofile_by_id, nor does it mention prerequisites, alternatives, or consequences of deletion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_command_by_idCDestructiveIdempotent
Delete Command.
DELETE /api/v1/command/{id}
Args: id: Path parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already state destructiveHint=true and readOnlyHint=false, and the description merely repeats 'Delete' without adding behavioral context such as irreversibility, permission requirements, side effects, or what happens to dependent resources. With annotations covering the destructive profile, the description contributes no additional transparency.
Agents need to know what a tool does to the 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 'Delete Command' first, followed by the HTTP method, path, and argument. There is no filler, though it is so minimal that it borders on under-specification rather than efficient clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 operation, the description identifies the resource and parameter location, but it lacks any explanation of the id semantics, expected behavior, or relationship to sibling command tools. The annotations and output schema cover safety and return structure, but the description alone leaves the agent without enough context to confidently confirm this is the correct deletion target.
Complex tools with many parameters or behaviors need more documentation. 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 by explaining what 'id' refers to. It only says 'id: Path parameter,' which adds no semantic meaning beyond the path template and the required integer schema. The description does not clarify that id is the command ID to be removed.
Input schemas describe structure but not intent. Descriptions should explain 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 action ('Delete Command') and the HTTP DELETE endpoint with an {id} path parameter, making it clear that this tool deletes one command by its identifier. It does not explicitly contrast with sibling tools, but the resource and verb are unambiguous and distinct from get_command_by_id or create_command.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 guidance on when to use this tool versus alternatives or any prerequisites, such as checking that the command exists before deletion. The DELETE method and single id parameter imply a delete operation, but there is no explicit context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_customfilter_by_idBDestructiveIdempotent
Delete CustomFilter.
DELETE /api/v1/customfilter/{id}
Args: id: Path parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=true, and readOnlyHint=false, and the description's 'Delete' wording is consistent with those. The description adds only the exact HTTP endpoint and path-parameter detail, but does not disclose consequences like irreversibility, what happens to dependent data, or error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core purpose, followed by the endpoint and a single argument line. There is no fluff, and every line carries information, though the structure is mechanically auto-generated from API documentation rather than crafted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 tool with an output schema and safety annotations, the description is adequate but leaves gaps: it does not state that deletion is permanent, whether the id must reference an existing filter, or success/failure semantics (e.g., 404 behavior). The basic operation, endpoint, and parameter are covered.
Complex tools with many parameters or behaviors need more documentation. 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 states 'id: Path parameter', which adds minimal value beyond the schema by indicating URL placement. It does not explain what the id refers to, that it must identify an existing custom filter, or the effect of an invalid/absent 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 states a specific verb and resource ('Delete CustomFilter') and the HTTP endpoint (DELETE /api/v1/customfilter/{id}), which clearly identifies the operation and distinguishes it from sibling delete tools targeting other resources. However, it adds little beyond restating the tool name and offers no scope clarification (e.g., permanence or cascading effects).
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 given on when to use this tool versus alternatives like update_customfilter_by_id or create_customfilter. There are no preconditions, exclusions, or references to sibling tools, so an agent must infer 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.
delete_downloadclient_bulkBDestructiveIdempotent
Delete DownloadClient.
DELETE /api/v1/downloadclient/bulk
Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| body | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare destructiveHint=true and idempotentHint=true, and the description's 'Delete' is consistent with those. The description adds no further behavioral detail about side effects, irreversibility, or bulk semantics, but the annotation profile covers the key safety signal.
Agents need to know what a tool does to the 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 action, endpoint, and a helpful pointer for the body payload. The opening line is somewhat redundant with the tool name, but the overall structure is clean and scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 one-argument bulk-delete tool with an output schema and safety annotations, the description is adequate but not rich. It lacks explicit bulk-deletion semantics and does not mention what the body should look like, though the schema pointer mitigates that 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. It identifies body as a request payload and points the agent to read the matching GET or /schema endpoint first. It stops short of explaining what the body must contain, leaving the agent to fetch the actual field definitions.
Input schemas describe structure but not intent. Descriptions should explain 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 and resource ('Delete DownloadClient') and includes the exact bulk endpoint. It does not explicitly differentiate from delete_downloadclient_by_id, but the name and URI make the bulk intent fairly evident.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 bulk variant versus a single-item delete, nor any mention of alternatives or exclusions. The usage context is only implied by the tool name and endpoint, not stated in the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_downloadclient_by_idBDestructiveIdempotent
Delete DownloadClient.
DELETE /api/v1/downloadclient/{id}
Args: id: Path parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=true, and the description's 'Delete' is consistent; there is no contradiction. However, the description adds little beyond what the annotations and endpoint already communicate, so the added 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 very short and to the point, with no obvious filler. The REST endpoint and Args lines are somewhat redundant with the schema and URL, but the overall structure is scannable and 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?
This is a simple single-parameter DELETE operation, with annotations covering destructiveness/idempotence and an output schema present. The description gives an agent enough to call it, though it omits explicit side-effect or alternative-tool 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?
With 0% schema description coverage, the description needs to clarify the id parameter. It only says 'id: Path parameter,' which is already evident from the URL and doesn't explain that the id identifies the download client to delete, though the resource name makes this mostly inferable.
Input schemas describe structure but not intent. Descriptions should explain 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 DownloadClient') and shows the REST path. It does not explicitly distinguish itself from delete_downloadclient_bulk, but the name and endpoint make the single-resource target 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?
No guidance is given on when to use this tool vs alternatives such as delete_downloadclient_bulk, nor any prerequisites like the client not being in use. The agent is left to infer usage context from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_indexer_bulkCDestructiveIdempotent
Delete Indexer.
DELETE /api/v1/indexer/bulk
Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| body | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide destructiveHint=true and idempotentHint=true, and the description does not contradict them. It adds a useful preflight instruction ('Read the matching GET or the /schema endpoint first'), though it does not describe the actual destructive effects or response 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 tight and front-loaded with the action, endpoint, and argument guidance. There is no filler, though the bulk semantics could have been made explicit in 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 destructive bulk operation, the description omits what the body should contain to select targets and does not say 'multiple' or 'bulk' in prose. It relies heavily on annotations and external schema references, leaving the agent to infer critical 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 description only labels 'body' as 'Request payload' before pointing to external endpoints. It does not describe expected fields or shapes, though the pointer to the schema endpoint provides an actionable discovery path.
Input schemas describe structure but not intent. Descriptions should explain 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 clear verb and resource ('Delete Indexer') and includes the endpoint '/api/v1/indexer/bulk', which signals the bulk variant and distinguishes it from delete_indexer_by_id. It is brief though not explicitly phrased as 'delete multiple indexers,' relying on tool name and endpoint.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 given on when to use this bulk delete versus the single delete alternative, and no exclusions or alternative tool names are mentioned. The only instruction is to consult the GET/schema endpoint, which addresses payload preparation rather than tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_indexer_by_idBDestructiveIdempotent
Delete Indexer.
DELETE /api/v1/indexer/{id}
Args: id: Path parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=true, and readOnlyHint=false, so the safe-to-delete behavior is covered elsewhere. The description adds no additional behavioral context such as permanence, side effects, authorization requirements, or behavior for nonexistent 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 description is highly concise: a one-line purpose, the raw endpoint, and a short parameter note. Every component earns its place and the core action is front-loaded with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter destructive delete with an output schema and annotations covering idempotency and destructiveness, the description is nearly complete. It lacks only explicit usage guidance around alternatives, but the endpoint and schema are sufficient 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 schema documents only 'id' as a required integer, and the description adds that it is a path parameter, which is meaningful. However, the description does not clarify what the id identifies beyond the endpoint path, leaving the parameter semantics mostly self-evident.
Input schemas describe structure but not intent. Descriptions should explain 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 the action directly as 'Delete Indexer' and includes the HTTP endpoint DELETE /api/v1/indexer/{id}, which identifies the resource and the path parameter. It is clear enough to distinguish from sibling tools like delete_indexer_bulk, though it relies somewhat on the name and endpoint rather than describing the precise scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives such as delete_indexer_bulk or update_indexer_by_id. It implies singular deletion via the {id} path parameter, but provides no explicit 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.
delete_indexerproxy_by_idADestructiveIdempotent
Delete IndexerProxy.
DELETE /api/v1/indexerproxy/{id}
Args: id: Path parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare destructiveHint=true, idempotentHint=true, and readOnlyHint=false. The description adds no behavioral detail beyond restating the DELETE operation, such as what happens if the ID is not found, whether related data is affected, or any authorization 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 description is compact and front-loaded: 'Delete IndexerProxy.' followed by the endpoint and argument. It contains no filler, though the title sentence and HTTP method are somewhat 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 one-parameter delete operation, the description is mostly complete. The output schema is present, annotations cover the destructive and idempotent behavior, and the endpoint template clarifies how to invoke the tool. It lacks a bit of context about effects and error cases, but the low complexity makes this acceptable.
Complex tools with many parameters or behaviors need more documentation. 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 identifies the single parameter as a path parameter and shows its placement in the endpoint URL, which adds useful context beyond the schema. However, it does not explain what the ID refers to beyond the resource name already given.
Input schemas describe structure but not intent. Descriptions should explain 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 'Delete IndexerProxy' with the HTTP DELETE endpoint, making the verb and resource explicit. It distinguishes itself from sibling tools like get_indexerproxy_by_id and update_indexerproxy_by_id by specifying the delete 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?
Usage is implied by the name and the 'Delete IndexerProxy' statement: use this when you want to remove a specific IndexerProxy by its ID. However, there is no explicit guidance about when not to use it or how it relates to alternatives such as bulk deletion or update operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_notification_by_idBDestructiveIdempotent
Delete Notification.
DELETE /api/v1/notification/{id}
Args: id: Path parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description merely restates 'Delete Notification' and the endpoint, adding no behavioral context beyond what annotations already declare (destructiveHint, idempotentHint). It does not mention permanence, cascading effects, permissions, or failure behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the action. It includes only the endpoint, a short arg note, and no filler. The HTTP line is somewhat redundant with the tool name but still useful for 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?
Given the simple single-parameter delete operation, output schema, and annotations, the description is largely sufficient to invoke the tool. However, it lacks usage context and offers no warning beyond the existing destructiveHint annotation.
Complex tools with many parameters or behaviors need more documentation. 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, so the description must compensate. It adds that 'id' is a path parameter, which the schema does not specify, but it does not explain what the id identifies beyond the schema's title.
Input schemas describe structure but not intent. Descriptions should explain 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 Notification' and the DELETE endpoint. It clearly distinguishes itself from notification create/get/update/list tools and other delete_*_by_id sibling tools by naming the resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 update_notification_by_id or get_notification_by_id. The endpoint is shown, but no conditions, prerequisites, or exclusions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_system_backup_by_idCDestructiveIdempotent
Delete Backup.
DELETE /api/v1/system/backup/{id}
Args: id: Path parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=true. The description only repeats the action and provides the HTTP method/path, without adding context such as irreversibility, file removal, permission requirements, 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?
The description is concise and front-loaded: a one-line summary, a raw HTTP endpoint, and an Args note. Every line carries functional information, though the first sentence largely duplicates the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 operation with annotations and an output schema, the description provides the essential request shape. It lacks usage guidance and explicit warnings about deletion consequences, leaving it moderately complete but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. 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 by noting that id is a path parameter and showing its URL placeholder. It does not explain what the ID represents or add constraints, but the tool name and simple integer type make this minimally 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?
The description states 'Delete Backup' and gives the exact HTTP endpoint, clearly identifying a destructive action on the system backup resource. It is distinguishable from sibling delete_*_by_id tools because it specifically targets system backups.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 alternatives like create_system_backup_restore_by_id or list_system_backup. No prerequisites, conditions, or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_tag_by_idCDestructiveIdempotent
Delete Tag.
DELETE /api/v1/tag/{id}
Args: id: Path parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey destructiveHint=true, idempotentHint=true, and readOnlyHint=false, so the safety profile is covered by structured data. The description adds only the HTTP route (redundant with the tool name) and does not disclose side effects, such as whether deleting a tag removes it from associated items or requires special permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with the core action, and nothing is verbose. However, the HTTP method and route line largely repeat information already present in the tool name, and the structure is minimal without earning extra credit.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 one-parameter delete tool with annotations covering destructiveness/idempotency and an output schema present, the minimal description is mostly adequate. The missing piece is side-effect disclosure (what happens to resources that reference the tag), but the annotation and output-schema coverage lower the burden.
Complex tools with many parameters or behaviors need more documentation. 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 for parameter meaning. The 'Args: id: Path parameter' line adds the useful clarification that id is a path parameter rather than a body field, but it does not elaborate on what the id references (left to the tool name) or any additional 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 states a specific verb and resource ('Delete Tag'), which clearly distinguishes it from sibling tools like create_tag, list_tag, get_tag_by_id, and update_tag_by_id. It doesn't explicitly name alternatives or scope, but the delete-by-id 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 is given for when to use this tool, when not to use it, or how it relates to alternatives such as update_tag_by_id or bulk delete operations. Usage is only implied by the tool name and one-line description, with no preconditions, exclusions, or consequences stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_applications_by_idARead-onlyIdempotent
Read Application.
GET /api/v1/applications/{id}
Args: id: Path parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 covered. The description adds the HTTP GET method and path shape, which is useful, but does not disclose additional behavioral traits such as error behavior or required permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise and front-loaded: a one-line purpose, the HTTP endpoint, and the parameter note. It contains no filler and each line adds necessary invocation 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 read-by-id tool, the description, combined with the schema, annotations, and output schema, provides enough information to make a correct call. It could be more complete by explaining what an Application is or what absence of an id might cause, but those are not critical given the low 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 schema only documents id as an integer, but the description adds that id is a path parameter. This is meaningful because it tells the agent where the value belongs in the request URL. The meaning of id is also inferable from the endpoint and tool name, though not explicitly 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?
The description states a specific verb and resource: "Read Application" and the HTTP endpoint "GET /api/v1/applications/{id}". This clearly identifies what the tool does and differentiates it from list-oriented siblings like list_applications.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 list_applications or get_*_by_id tools. It only states what the tool does, not the context or conditions that should select it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_appprofile_by_idARead-onlyIdempotent
Read AppProfile.
GET /api/v1/appprofile/{id}
Args: id: Path parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | 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, and the description's 'Read' wording is consistent with those. The description adds the HTTP method and path parameter context, but no further behavioral details such as error cases, response semantics, or authorization requirements are disclosed. This is acceptable given the strong annotation coverage but does not exceed a baseline 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 description is very short and front-loaded with the core action, and the endpoint is stated clearly. Every line earns its place, though the 'Args' block essentially restates schema information rather than adding substantial new 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 one-parameter read operation with rich annotations and an output schema present, the description provides sufficient context: the HTTP method, the path template, and the role of the id. It does not explain error behavior or response format, but the output schema covers the return shape and the tool is simple enough that this 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%, so the description must carry the parameter meaning. It does add that 'id' is a path parameter and shows its placement in the URL, which goes beyond the schema's bare 'integer' type. However, it still does not explicitly state that this is the AppProfile's unique identifier, leaving the semantic meaning mostly to inference from the tool 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?
The description states the exact operation in one short verb phrase: 'Read AppProfile.' Combined with the tool name and the explicit GET endpoint, there is no ambiguity about what resource and action are involved. It clearly stands apart from sibling tools because it targets a single AppProfile by ID, while related tools like list_appprofile handle listing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The usage context is implied by the path and the 'id' argument: call this when you have a specific AppProfile ID and want to read it. However, the description gives no explicit guidance on when to prefer this over alternatives such as list_appprofile or update_appprofile_by_id, and no exclusions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_by_id_apiCRead-onlyIdempotent
Read Newznab.
GET /{id}/api
Args: id: Path parameter. t: Query parameter. q: Query parameter. cat: Query parameter. imdbid: Query parameter. tmdbid: Query parameter. extended: Query parameter. limit: Query parameter. offset: Query parameter. minage: Query parameter. maxage: Query parameter. minsize: Query parameter. maxsize: Query parameter. rid: Query parameter. tvmazeid: Query parameter. traktid: Query parameter. tvdbid: Query parameter. doubanid: Query parameter. season: Query parameter. ep: Query parameter. album: Query parameter. artist: Query parameter. label: Query parameter. track: Query parameter. year: Query parameter. genre: Query parameter. author: Query parameter. title: Query parameter. publisher: Query parameter. configured: Query parameter. source: Query parameter. host: Query parameter. server: Query parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | ||
| t | No | ||
| ep | No | ||
| id | Yes | ||
| cat | No | ||
| rid | No | ||
| host | No | ||
| year | No | ||
| album | No | ||
| genre | No | ||
| label | No | ||
| limit | No | ||
| title | No | ||
| track | No | ||
| artist | No | ||
| author | No | ||
| imdbid | No | ||
| maxage | No | ||
| minage | No | ||
| offset | No | ||
| season | No | ||
| server | No | ||
| source | No | ||
| tmdbid | No | ||
| tvdbid | No | ||
| maxsize | No | ||
| minsize | No | ||
| traktid | No | ||
| doubanid | No | ||
| extended | No | ||
| tvmazeid | No | ||
| publisher | No | ||
| configured | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description aligns with the readOnlyHint and idempotentHint annotations by using the verb 'Read'. It adds no extra behavioral context such as external API calls, rate limits, or return format, but the annotations already cover the safety profile, so the lower bar is met.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: 'Read Newznab.' is front-loaded, followed by the HTTP path and a clear 'Args:' block with one parameter per line. While the parameter list is long, the path/query distinction justifies the repetition and the format is easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 33 parameters and a schema with zero descriptions, the description is insufficient for an agent to call the tool correctly. It omits parameter semantics, response details, and any indication of when to use this tool, leaving significant gaps despite the presence of an output 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?
The input schema has 0% description coverage, so the description must compensate. It adds path/query location labels for each parameter, which is helpful, but it does not explain the semantic meaning of any parameter (e.g., what 't', 'q', or 'cat' represent), leaving the agent without crucial information for correct usage.
Input schemas describe structure but not intent. Descriptions should explain 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 opens with 'Read Newznab,' providing a clear verb and a resource name, and includes the HTTP endpoint 'GET /{id}/api'. However, it does not explain what 'Newznab' refers to or how this tool differs from closely named siblings like get_indexer_by_id_newznab, leaving some ambiguity for an 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?
There is no guidance about when to use this tool versus alternatives. The description only lists parameters and does not mention that it targets a specific indexer's Newznab API or provide any exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_by_id_downloadDRead-onlyIdempotent
Read Newznab.
GET /{id}/download
Args: id: Path parameter. link: Query parameter. file: Query parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| file | No | ||
| link | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | 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, covering the safety profile. The description adds no behavioral context beyond that, such as what the download does, what response to expect, or any limitations. It merely states 'Read Newznab' and the endpoint, which does not enrich the annotation-provided information.
Agents need to know what a tool does to the 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 extremely short, but brevity is not the issue – it is under-specified. It does not front-load useful information; 'Read Newznab' is vague and unhelpful. The structure is a bare endpoint and parameter list, which is not structured to aid an agent in understanding the tool's behavior or usage.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 three parameters, one required, no schema descriptions, and only an output schema existence flag (not its contents), the description is grossly inadequate. An agent cannot determine what the tool does, how to use it correctly, or what it returns. This is a low-complexity tool but the description leaves all critical context 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 the description does not explain the meaning of any parameters. It simply lists 'id: Path parameter', 'link: Query parameter', 'file: Query parameter' – redundant with the schema structure. There is no clarification of what 'id' identifies, what 'link' or 'file' control, or any constraints beyond type and required status. The description fails to compensate for the lack of 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 says 'Read Newznab' which is cryptic and does not clearly state what resource or action this tool performs. It fails to specify that it downloads a file or content associated with an id, and it does not differentiate it from siblings like get_indexer_by_id_download or get_by_id_api. The verb 'Read' is present but the resource is undefined, making the purpose ambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 provides no context about scenarios, exclusions, or prerequisites. It only lists parameters without explaining their purpose or how they relate to the action.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_by_pathCRead-onlyIdempotent
Read StaticResource.
GET /{path}
Args: path: Path parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | 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, covering the safety profile. The description only adds 'GET /{path}', which is redundant and adds no new behavioral context such as response format, error handling, 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?
The description is short and the 'Read StaticResource.' line is front-loaded, but the rest is redundant (HTTP method and parameter repetition). It is under-specified rather than effectively concise, as sentences do not add value beyond what the schema already provides.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with one parameter and a simple read operation, the description still lacks essential context: what constitutes a StaticResource, what the output schema contains, or any error conditions. Even with an output schema present, the description does not help an agent understand the tool's domain or usage.
Complex tools with many parameters or behaviors need more documentation. 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 merely repeats 'path: Path parameter.', which is tautological given the schema property name 'path'. With 0% schema description coverage, the description was expected to compensate but offers no additional meaning, format constraints, or examples.
Input schemas describe structure but not intent. Descriptions should explain 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 'Read StaticResource.' which includes a specific verb and a resource type. It is clear that the tool reads a static resource, but 'StaticResource' is not defined further and the name 'get_by_path' is generic. It does not differentiate from the sibling 'get_content_by_path' which likely serves a similar 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 description provides no guidance on when to use this tool versus alternatives. There is no mention of contexts, exclusions, or comparisons to similar tools. The agent has no information to decide between this and 'get_content_by_path'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_command_by_idCRead-onlyIdempotent
Read Command.
GET /api/v1/command/{id}
Args: id: Path parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, which already convey that this is a safe, non-mutating, idempotent read operation. The description adds the detail that it uses a GET request and a path parameter, which is consistent but not surprising. It doesn't disclose any additional behavioral traits like error handling or response format beyond what the output schema might provide. With annotations covering safety, 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 very brief, just a few lines, which is efficient and front-loaded with the core purpose 'Read Command'. However, it includes redundant technical details like the full HTTP path and 'Args: id: Path parameter.' that are already visible in the schema and may not add value for an agent. It's concise but not maximally informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with one parameter and an output schema that likely describes the return value. The description provides the essential operation and endpoint, but lacks information about error scenarios or any special conditions for retrieval. Given the tool's simplicity and the output schema, it's minimally complete but not rich in 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 0%, meaning the description provides no parameter information. The schema itself only gives the type (integer) and title (Id), but lacks any description of what the ID represents or its format. The description says 'Args: id: Path parameter.' which restates that it's a path parameter but adds no semantic meaning. With zero coverage, the description should compensate, and it 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 description begins with 'Read Command', which states the verb and resource clearly. However, it doesn't specify what a 'Command' is or what the response contains, and there are many sibling get_*_by_id tools, so it doesn't distinguish itself from, say, get_notification_by_id or get_tag_by_id beyond the resource name. It is clear enough for basic intent but lacks specificity about the domain object.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. It doesn't mention that it's for retrieving a single command by ID, nor does it explain the context in which you'd choose this over list_command or other get_*_by_id tools. The description only states the HTTP endpoint and arguments, leaving usage entirely implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_config_development_by_idARead-onlyIdempotent
Read DevelopmentConfig.
GET /api/v1/config/development/{id}
Args: id: Path parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is clear. The description adds the HTTP GET method and path, which are not in annotations, but does not disclose potential behaviors like not-found errors, permission requirements, or response shape. Given the rich annotations, this level of added context is adequate but not outstanding.
Agents need to know what a tool does to the 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 extremely compact: one primary sentence, the endpoint, and a one-line parameter note. Every component is necessary, and the core purpose is front-loaded. No filler or redundancy earns a top score for 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?
Given the tool's low complexity (one required integer parameter), the presence of annotations covering safety, and an output schema that defines the return value, the description is almost complete. It lacks only a brief usage-oriented context (e.g., 'Use list_config_development to find IDs'), but the existing combination of name, description, and schema is sufficient for an agent to invoke it correctly in most scenarios.
Complex tools with many parameters or behaviors need more documentation. 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 states 'id: Path parameter', which adds the fact that the id is a path parameter (not just a named field) but provides no semantic meaning about what the id represents or what values are valid. The tool name implies it's the DevelopmentConfig's ID, but the description does not explicitly clarify that. This is insufficient compensation for the missing schema 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 opens with 'Read DevelopmentConfig', a specific verb and resource that clearly distinguishes this tool from update_config_development_by_id and the other get_config_*_by_id siblings. The HTTP GET path reinforces the 'read by ID' purpose. An agent can unambiguously tell what this tool 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?
No guidance is given on when to use this tool versus alternatives like list_config_development or other get_*_by_id tools. The description only implies usage through the name and endpoint, but does not state 'use this to fetch a single config by id' or direct the agent to list tools for enumeration. This is a minimal implication, not explicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_config_downloadclient_by_idBRead-onlyIdempotent
Read DownloadClientConfig.
GET /api/v1/config/downloadclient/{id}
Args: id: Path parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations carry the safety profile (readOnlyHint=true, idempotentHint=true, destructiveHint=false), and the description's 'Read' aligns with them without contradiction. The description adds no behavioral context beyond the annotations, but for a single-record GET by ID there is little extra to disclose; it neither harmfully omits nor actively contributes.
Agents need to know what a tool does to the 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 compact and front-loaded with the purpose statement, followed by the endpoint and a minimal Args note. There is no wasted prose, though the inclusion of the raw HTTP path and docstring-style Args is slightly redundant with the tool name and schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-integer-parameter read with a rich annotation set and an output schema, the description covers the essential mechanics. The main gap is contextual: nothing distinguishes this from the near-identical sibling get_downloadclient_by_id, and no mention is made of what the returned config contains or when the lookup would fail.
Complex tools with many parameters or behaviors need more documentation. 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. 'id: Path parameter' adds the transport location (path, not query or body), which is genuinely beyond the schema's bare integer/required declaration. However, it does not say what the id refers to or its semantics, leaving the agent to infer from the tool name that it is a DownloadClient config 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 lead line 'Read DownloadClientConfig' states a clear verb and resource, which an agent can act on. However, the sibling get_downloadclient_by_id reads a closely related resource, and the description gives no cue about how the config entity differs from the client entity, so sibling differentiation is absent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 call this tool versus alternatives such as get_downloadclient_by_id, list_config_downloadclient, or update_config_downloadclient_by_id. There are no context cues, prerequisites, or exclusions stated, so the agent must infer usage purely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_config_host_by_idCRead-onlyIdempotent
Read HostConfig.
GET /api/v1/config/host/{id}
Args: id: Path parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | 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 the HTTP endpoint and path parameter context, but does not describe return behavior, error cases, or performance characteristics. With annotations covering the core behavioral traits, 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 short and front-loaded with 'Read HostConfig.' The HTTP endpoint and Args line follow. There is no wasted content, though the endpoint duplication with the schema could be seen as 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 simple read-by-id tool with a single required parameter, the description is mostly adequate. However, it does not clarify what a HostConfig is, what the returned output looks like (though an output schema exists), or how the id is used beyond being a path parameter. The sibling list shows many similar tools, so some context about the resource would help.
Complex tools with many parameters or behaviors need more documentation. 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 has only one parameter 'id' with type integer, and the description says 'Args: id: Path parameter.' This adds a small amount of meaning—it clarifies that id is a path parameter—but the schema already documents the parameter name and type. Schema description coverage is 0%, so the description's mention of id is somewhat helpful, but it doesn't explain what the id represents or how to obtain it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Read HostConfig' clearly identifies the operation (read) and the resource (HostConfig), but it does not distinguish this tool from siblings like get_config_development_by_id or get_config_downloadclient_by_id. The sibling list has many similar 'get_config_*_by_id' tools, so the description is minimally clear but lacks 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 provides no context about when to use this tool versus alternatives. It simply states 'Read HostConfig' and the HTTP endpoint. There is no mention of when to prefer this over other get_config_*_by_id tools, 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_config_ui_by_idBRead-onlyIdempotent
Read UiConfig.
GET /api/v1/config/ui/{id}
Args: id: Path parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already cover the safety profile with readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description reinforces this by saying 'Read' and 'GET', but it adds no further behavioral context such as error handling, authentication requirements, or absence/presence of 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?
The description is tightly structured with a purpose statement first, then the endpoint, then the argument list. There is no filler or redundant prose; every line contributes 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 simple read-by-id tool with one integer path parameter, an output schema, and thorough safety annotations, the description is mostly complete: it gives the HTTP method, endpoint, and parameter location. The main gap is the implicit domain meaning of 'id', which is recoverable from the tool name but not explicitly stated.
Complex tools with many parameters or behaviors need more documentation. 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 needed to compensate by explaining the id parameter. It only says 'id: Path parameter', which is already visible from the URL template, and does not explain what the id represents, what values are valid, or what the id refers to in the UiConfig resource.
Input schemas describe structure but not intent. Descriptions should explain 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-object pair ('Read UiConfig') and includes the exact GET endpoint, so an agent can tell this is a read operation for UI configuration by id. It does not explicitly differentiate itself from sibling getters like get_config_host_by_id or list_config_ui, so it stops short of full 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?
The description gives no guidance on when to use this tool versus alternatives such as list_config_ui, get_config_development_by_id, or get_config_host_by_id. It only declares the operation and endpoint, leaving all selection criteria to be inferred 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_content_by_pathCRead-onlyIdempotent
Read StaticResource.
GET /content/{path}
Args: path: Path parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | 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, covering the safety profile. The description adds the HTTP method (GET) and endpoint path, which are not in the annotations. However, it does not describe response format, error handling, or any additional behavioral nuances. Given the annotations, this is acceptable but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise and front-loaded with the purpose and endpoint. It contains no filler and is structured logically: purpose, HTTP method, and argument. It earns a 4 for being succinct without being wasteful, though it could benefit from a bit more detail without losing 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?
The description is very brief and lacks context about what constitutes a 'StaticResource', how the path should be formatted, or how this differs from the similar sibling get_by_path. An output schema exists, so return values need not be described, but the tool's purpose and parameter semantics are insufficiently elaborated for an agent to use it correctly in ambiguous situations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is a single parameter 'path' with 0% schema description coverage. The description says 'path: Path parameter.' which is essentially redundant with the parameter name and does not explain expected format, examples, or how the path should be constructed. It adds minimal meaning beyond the schema, and with no schema description, this is a significant 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 'Read StaticResource.' which indicates a specific action (read) on a resource type (StaticResource), and the tool name get_content_by_path clarifies the resource is content accessed by path. It is not a tautology, but it does not explicitly differentiate from the sibling get_by_path, which might serve a similar purpose. The verb and resource are clear enough for a basic understanding.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 does not mention any prerequisites, exclusions, or when to choose this over similar tools like get_by_path. It simply provides the endpoint and argument, leaving the agent without context on appropriate usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_customfilter_by_idBRead-onlyIdempotent
Read CustomFilter.
GET /api/v1/customfilter/{id}
Args: id: Path parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | 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, covering the safety profile. The description adds the HTTP GET method and path, which is useful but not a behavioral trait beyond what annotations imply. No additional side effects or limitations are 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 extremely concise, containing only three short lines: the action, the endpoint, and the parameter declaration. Every word earns its place, and it is front-loaded with the purpose. There is no fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that the tool has an output schema (true) and annotations covering safety, the description is minimal but covers the basic essentials: it's a read operation, the endpoint, and the single parameter. However, it lacks any explanation of what a CustomFilter is, what the response looks like (though output schema may cover this), or any error conditions. For a simple single-parameter read tool, this is acceptable but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has a single required integer parameter 'id' with 0% description coverage. The description only states 'id: Path parameter,' which adds minimal value by indicating it's in the path, but does not explain what the id refers to, any constraints, or relationship to the resource. The tool name suggests it's the custom filter ID, but the description does not compensate for the schema's lack of 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 clearly states a specific action and resource: 'Read CustomFilter.' This matches the tool name and distinguishes it from other get_*_by_id tools because it explicitly targets CustomFilter. It is unambiguous and concise.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 the many sibling tools (e.g., list_customfilter for listing, update_customfilter_by_id for updates). It does not mention when not to use it or any prerequisites. Usage is only implied by the name 'by_id'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_downloadclient_by_idARead-onlyIdempotent
Read DownloadClient.
GET /api/v1/downloadclient/{id}
Args: id: Path parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior. The description adds no behavioral context beyond restating the GET endpoint and path parameter; it does not mention return format, errors, auth, 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?
The description is compact and front-loaded: the operation is stated first, followed by the concrete endpoint and argument note. There is no filler or redundant verbiage, though the Args section is fairly minimal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 one path parameter, a detailed output schema, and safety annotations, the description provides enough to invoke the tool correctly. It lacks richer context such as when to prefer this over related tools, but that gap is minor given the 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 0% schema description coverage, the description does compensate minimally by identifying 'id' as a path parameter. However, it does not explain the meaning of the ID beyond what the tool name and schema already imply, nor does it add format or constraint 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?
The description clearly states 'Read DownloadClient' and gives the exact GET path with an {id} placeholder, so the agent knows it retrieves a single DownloadClient resource by ID. This distinguishes it from sibling list and update tools for the same entity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The GET-by-id pattern implies usage for fetching one DownloadClient, but the description does not explicitly state when to use this tool versus alternatives such as list_downloadclient or get_config_downloadclient_by_id. There are no clear exclusions or alternative routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_indexer_by_idBRead-onlyIdempotent
Read Indexer.
GET /api/v1/indexer/{id}
Args: id: Path parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds only the GET endpoint and path parameter, not additional behavioral context such as auth, errors, or output behavior, but it is consistent with 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 very short and front-loaded with the core purpose, followed by the endpoint and argument. It is not bloated, though it is terse enough that some semantic detail is sacrificed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 GET with a rich output schema and fully declared read-only/idempotent annotations, the description covers the invocation details: method, path, and required path parameter. It omits alternative-selection guidance, but that is already penalized under usage guidelines.
Complex tools with many parameters or behaviors need more documentation. 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 needed to compensate for the undocumented 'id' parameter. It only labels id as a path parameter and does not explain what identifier it represents or any constraints 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 opens with 'Read Indexer.' which states a specific verb and resource, making the tool's basic purpose immediately clear. However, it does not differentiate this from sibling tools like get_indexer_by_id_download or get_indexer_by_id_newznab, so it stops short of full 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 the many sibling get/read operations. The description gives only the endpoint and path argument, leaving the agent to infer selection criteria 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_indexer_by_id_downloadCRead-onlyIdempotent
Read Newznab.
GET /api/v1/indexer/{id}/download
Args: id: Path parameter. link: Query parameter. file: Query parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| file | No | ||
| link | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | 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 the endpoint and parameter names but does not disclose what the response contains, whether it triggers a remote download, or any side effects. It doesn't contradict the annotations, but it adds little behavioral context beyond 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?
The description is short and front-loaded with the endpoint, but the 'Read Newznab' line is unhelpful and the parameter list duplicates schema information. It is concise but not informative; the space is not used effectively.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 download operation with three parameters and no parameter documentation, the description is incomplete. It does not explain the return value (though an output schema exists), the relationship between id/link/file, or how this differs from the sibling download endpoints. An agent would struggle to invoke this correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, but it only restates the parameter names ('id: Path parameter', 'link: Query parameter', 'file: Query parameter') without explaining their meaning or how they affect the download. The agent cannot tell what 'link' vs 'file' represent or when to provide them.
Input schemas describe structure but not intent. Descriptions should explain 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 'Read Newznab' and shows the HTTP endpoint, but it never states what the tool actually does (downloads a release/NZB from an indexer by id, with optional link/file parameters). The verb 'Read' is vague and doesn't distinguish this from get_indexer_by_id or get_indexer_by_id_newznab. The endpoint path is the only concrete signal.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 siblings like get_indexer_by_id_newznab or get_by_id_download. The description merely lists parameters and the endpoint, leaving the agent to infer that this is for downloading content. No exclusions or alternatives are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_indexer_by_id_newznabCRead-onlyIdempotent
Read Newznab.
GET /api/v1/indexer/{id}/newznab
Args: id: Path parameter. t: Query parameter. q: Query parameter. cat: Query parameter. imdbid: Query parameter. tmdbid: Query parameter. extended: Query parameter. limit: Query parameter. offset: Query parameter. minage: Query parameter. maxage: Query parameter. minsize: Query parameter. maxsize: Query parameter. rid: Query parameter. tvmazeid: Query parameter. traktid: Query parameter. tvdbid: Query parameter. doubanid: Query parameter. season: Query parameter. ep: Query parameter. album: Query parameter. artist: Query parameter. label: Query parameter. track: Query parameter. year: Query parameter. genre: Query parameter. author: Query parameter. title: Query parameter. publisher: Query parameter. configured: Query parameter. source: Query parameter. host: Query parameter. server: Query parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | ||
| t | No | ||
| ep | No | ||
| id | Yes | ||
| cat | No | ||
| rid | No | ||
| host | No | ||
| year | No | ||
| album | No | ||
| genre | No | ||
| label | No | ||
| limit | No | ||
| title | No | ||
| track | No | ||
| artist | No | ||
| author | No | ||
| imdbid | No | ||
| maxage | No | ||
| minage | No | ||
| offset | No | ||
| season | No | ||
| server | No | ||
| source | No | ||
| tmdbid | No | ||
| tvdbid | No | ||
| maxsize | No | ||
| minsize | No | ||
| traktid | No | ||
| doubanid | No | ||
| extended | No | ||
| tvmazeid | No | ||
| publisher | No | ||
| configured | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | 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 no behavioral context beyond restating 'Read' and the HTTP method; it does not disclose result format, pagination behavior, required indexer configuration, or 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?
The description is terse and front-loaded with 'Read Newznab' followed by the endpoint. The repetitive 'Query parameter' list is long but not padded; it is functionally a parameter inventory, yet it does little to explain the tool and could have been grouped or summarized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 with 33 parameters, a single vague sentence and a bare parameter list are not enough for an agent to know how to call it correctly. An output schema exists, but the description still fails to convey what action the tool performs, which parameters are meaningful in which contexts, or what a successful call represents.
Complex tools with many parameters or behaviors need more documentation. 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 and 33 parameters, the description had to compensate by explaining parameter meaning, but it only lists names and labels each as 'Path parameter' or 'Query parameter.' This adds minimal structural information not in the schema, but gives no semantic meaning for fields like t, cat, extended, or configured, leaving an agent guessing at valid values and combinations.
Input schemas describe structure but not intent. Descriptions should explain 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 and a target ('Read Newznab') and includes the endpoint path, so an agent can see it targets an indexer's Newznab endpoint. However, it never says what 'read Newznab' actually returns or does (e.g., search results from a configured Newznab indexer), leaving the purpose vague. It does not differentiate itself from siblings like get_indexer_by_id_download 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 guidance on when to use this tool versus alternatives such as get_indexer_by_id or get_indexer_by_id_download. The description gives no context, prerequisites, or exclusions, so an agent must infer from the tool name and endpoint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_indexerproxy_by_idCRead-onlyIdempotent
Read IndexerProxy.
GET /api/v1/indexerproxy/{id}
Args: id: Path parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | 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 agent knows this is a safe read operation. The description adds the endpoint path, which is a detail not in annotations, but does not discuss any side effects, required permissions, or error conditions. Given the safety profile is well covered by annotations, a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with just two short sentences and the endpoint. It is appropriately front-loaded with the action and resource, then the specification. No filler or redundant information is present. It could be slightly more structured with a clear separation of the args, but overall it 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?
Given that an output schema exists, the description does not need to explain return values. For a simple read operation with one parameter and strong annotations, the description is mostly complete. However, it lacks any detail about the specific indexer proxy object being retrieved (e.g., what fields it has), which might be important for the agent to anticipate the result. The endpoint path provides the request format, but not the response structure beyond 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 schema has only one parameter 'id' (integer), and the description explicitly notes it as a 'Path parameter', which adds slight context beyond the schema (which just shows the type). The schema coverage is 0%, but the description does not elaborate on what the ID represents (e.g., the unique identifier of the indexer proxy), leaving the agent to infer. Since there is only one parameter and the description mentions it, a 3 is fair.
Input schemas describe structure but not intent. Descriptions should explain 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 ('Read IndexerProxy') and includes the endpoint path, which gives the agent a direct understanding of the operation. However, it does not differentiate from many sibling 'get_*' tools (e.g., get_indexer_by_id), and the name itself is already indicative of fetching by ID. The purpose is clear but not enhanced with any distinguishing context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It simply states the verb and endpoint. There is no mention of prerequisites, typical usage scenarios, or why one might choose this over other get_* tools. The agent is left to infer 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_log_file_by_filenameBRead-onlyIdempotent
Read LogFile.
GET /api/v1/log/file/{filename}
Args: filename: Path parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| filename | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, and non-destructive behavior. The description adds the HTTP method and path structure, which is helpful, but it does not disclose error handling, file content format, or that the file must already exist. Given the annotations, this is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very brief and front-loaded with the purpose. It includes the endpoint and argument in a clear, organized manner with no redundant text. It could be slightly more explanatory, but it is efficient and scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the tool is simple and has an output schema (not shown) and annotations covering safety, the description lacks essential context for an agent. It does not mention that filenames come from list_log_file or that invalid filenames will cause errors. This missing guidance makes it incomplete for reliable autonomous use.
Complex tools with many parameters or behaviors need more documentation. 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 clarifies that 'filename' is a path parameter, which is critical for correct invocation. However, it does not specify any constraints (e.g., valid extensions, required format) or how to discover valid filenames. Minimal but sufficient for a simple string 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 'Read LogFile' with an explicit GET endpoint, making the core action clear. It is distinguishable from siblings like list_log_file (which lists files) and get_log_file_update_by_filename (which targets the update log) by the filename parameter, though it does not explicitly name these 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 is provided on when to use this tool versus alternatives such as list_log_file or get_log_file_update_by_filename. The description implies you need a filename but does not explain how to obtain one or when this tool is preferred over listing logs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_log_file_update_by_filenameBRead-onlyIdempotent
Read UpdateLogFile.
GET /api/v1/log/file/update/{filename}
Args: filename: Path parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| filename | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, and the description's 'Read' wording is consistent with them. The description adds the target resource and path parameter but no deeper behavioral context such as auth requirements, not-found behavior, or response shape. Since the annotations carry the safety profile, the minimal description is acceptable but adds little beyond that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short and front-loaded: the core 'Read UpdateLogFile' appears first, followed by the endpoint and argument listing. It contains no filler, though the endpoint line partially duplicates information already available in the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 one-parameter read operation with an output schema and safety annotations, the basics are present. What is missing is guidance on when to use this tool versus the related file-log siblings and what valid filename values look like. The agent can likely call it correctly, but must rely on the name and schema for disambiguation.
Complex tools with many parameters or behaviors need more documentation. 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 identifies filename as a path parameter and the endpoint template confirms its placement, which is useful. However, it adds no format, examples, or relationship to the filenames returned by list_log_file_update, leaving the agent with only the parameter name and title.
Input schemas describe structure but not intent. Descriptions should explain 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 and resource: 'Read UpdateLogFile.' The endpoint template confirms it operates on an update log file keyed by filename. It is distinguishable from siblings like get_log_file_by_filename by the 'update' qualifier, though it never explains what an UpdateLogFile is.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool over alternatives such as get_log_file_by_filename or list_log_file_update. The description states only the operation and endpoint, with no exclusions, prerequisites, or sibling routing. This leaves the agent 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.
get_notification_by_idBRead-onlyIdempotent
Read Notification.
GET /api/v1/notification/{id}
Args: id: Path parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly, idempotent, and non-destructive behavior. The description adds the HTTP GET method and path parameter, which is consistent with those hints but does not disclose error behavior such as 404s or authentication requirements. Given the annotations cover the safety 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 short lines with no filler. The action and endpoint are front-loaded, and every sentence contributes necessary 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 single-ID read with full annotations and an output schema, the description provides the endpoint and parameter location. It lacks guidance on when to choose this over sibling list/get tools and does not mention error cases, but the low complexity and strong annotations keep it at an adequate 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?
The schema has 0% description coverage, so the description must compensate. It identifies id as a path parameter, which is useful transport information, but it adds little semantic meaning beyond the parameter name and the tool name. For a single self-explanatory id, this is minimally sufficient.
Input schemas describe structure but not intent. Descriptions should explain 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 operation ('Read') and resource ('Notification') and includes the exact GET path with {id}, making the tool's purpose unmistakable. It does not explicitly contrast with list_notification or other get_*_by_id 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?
No guidance is provided on when to use this tool versus list_notification or the many other get-by-id tools. The intended use is implied by the name and path but never stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_system_task_by_idCRead-onlyIdempotent
Read Task.
GET /api/v1/system/task/{id}
Args: id: Path parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint false, and the description's 'Read Task' merely restates that safety profile rather than adding context such as 404 handling, response contents, or auth requirements. No contradiction with annotations exists, but no additional behavioral disclosure is provided.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
At only a few words plus an endpoint and an args line, the description is efficiently front-loaded and contains no filler. It is concise to the point of under-specification, but as a structure it earns a solid 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?
Given one simple parameter, read-only/idempotent annotations, and the presence of an output schema, the description is close to sufficient. The missing pieces are explicit usage guidance and a statement that it returns the task matching the given id, 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?
The schema has one required integer id with no description (0% coverage). The description labels it as a path parameter, which adds transport-level meaning beyond the raw schema, and the endpoint shows it is the task ID. It doesn't explain constraints or format further, but for a single simple id this is minimal yet sufficient compensation.
Input schemas describe structure but not intent. Descriptions should explain 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 begins with 'Read Task,' which gives a clear verb and resource, and the endpoint /api/v1/system/task/{id} identifies a single-task read. It doesn't explicitly contrast with sibling list_system_task or define what a system task is, so it's clear but not strongly differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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; it neither mentions list_system_task for listing tasks nor states any exclusions. The intended use is only implied by the name and endpoint, so an agent gets no routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_tag_by_idBRead-onlyIdempotent
Read Tag.
GET /api/v1/tag/{id}
Args: id: Path parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is well covered. The description adds the HTTP method and path, but no additional behavioral details such as not-found behavior, 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 description is extremely compact: 'Read Tag.' followed by the endpoint and arguments uses no filler. It is front-loaded and every element contributes to understanding how to invoke the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter GET with an output schema and read-only annotations, the description is functionally callable. However, it leaves ambiguity relative to get_tag_detail_by_id and list_tag, and does not mention error behavior or when the endpoint is not appropriate.
Complex tools with many parameters or behaviors need more documentation. 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%, but the description does clarify that 'id' is a path parameter, which the input schema does not explicitly state. It does not explain what the id refers to or add constraints beyond the schema's integer type, so it only partially compensates 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 clear action ('Read Tag') and the exact endpoint ('GET /api/v1/tag/{id}'), so an agent knows what resource is being operated on. However, it does not distinguish itself from closely named siblings like get_tag_detail_by_id or list_tag, and 'Read Tag' largely 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 guidance about when to call this tool versus get_tag_detail_by_id, list_tag, or get_by_id variants. The endpoint implies a direct fetch by id, but the description never states prerequisites, exclusions, or why an agent should choose this specific sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_tag_detail_by_idCRead-onlyIdempotent
Read TagDetails.
GET /api/v1/tag/detail/{id}
Args: id: Path parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, align with the 'Read' verb. The description adds no non-obvious behavioral information such as response format, permissions, or 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?
The description is extremely short with no filler. The endpoint string and argument line are concise and relevant, though the format is minimalistic.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 single required parameter, output schema, and readOnly annotations, this description is mostly adequate. However, it does not explain what a 'TagDetail' is or contrast with the similar get_tag_by_id, leaving some context gaps for an agent to infer.
Complex tools with many parameters or behaviors need more documentation. 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 notes 'id: Path parameter', which is useful since the input schema only type says integer and does not distinguish path vs query. It adds minimal but meaningful semantic info 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?
The description clearly reads 'Read TagDetails', specifying a verb and resource. The endpoint GET /api/v1/tag/detail/{id} makes the purpose obvious. It does not explicitly differentiate from sibling get_tag_by_id, but the resource name is distinct 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?
No guidance is given about when to call this tool versus alternatives like get_tag_by_id or list_tag_detail. It simply provides the endpoint and parameter without situational context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_apiBRead-onlyIdempotent
Read ApiInfo.
GET /api
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | 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, which cover the safety profile. The description adds the HTTP endpoint and the resource name, but no additional behavioral context like response structure or pagination. Since the tool is simple and read-only, the description doesn't contradict annotations and provides marginal extra 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 is two lines: a concise statement and the HTTP method. It is efficient and front-loaded, with no wasted words. It could be slightly more descriptive but remains appropriately brief.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 parameters, a clear read-only intent, and an output schema exists, the description is sufficiently complete. The agent can infer the action and resource. There is no missing information that would prevent 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 tool has zero parameters, so the schema already fully documents the input. The description doesn't need to add parameter details. The baseline for 0 params is 4, and the description doesn't detract from 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 states a clear verb ('Read') and resource ('ApiInfo'), and includes the HTTP endpoint 'GET /api'. It distinguishes this tool as a read operation for API information, though it doesn't explicitly differentiate from other list_* siblings beyond the resource name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. It does not mention any conditions, alternatives, or exclusions. The description is purely functional without routing the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_applicationsBRead-onlyIdempotent
Read Application.
GET /api/v1/applications
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, and the description's 'Read Application' merely restates the read-only nature without adding new behavioral context. It does not mention return shape, pagination, authentication, or any side effects beyond what annotations cover. 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?
The description is extremely short, with no filler words. The endpoint is front-loaded after the brief purpose, making it easy to scan. However, the phrase 'Read Application' is terse and could be more informative without length cost.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 zero parameters, an output schema present, and annotations covering safety, the description plus structured data is sufficient for invocation. The only missing piece is an explicit statement that this returns all applications, but the endpoint path and tool name supply that context. Overall complete for a simple list 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?
The tool has zero parameters, so the schema fully covers inputs. The description adds no parameter details, but none are needed. Baseline of 4 for no-parameter tools applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States 'Read Application' and provides the exact endpoint GET /api/v1/applications, making verb and resource clear. The plural path and tool name distinguish it from get_applications_by_id and list_applications_schema, though it never explicitly says 'list all applications'. Thus it is clear but leaves a small 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 offers no guidance on when to use this tool versus alternatives such as get_applications_by_id or list_applications_schema. There is no mention of use cases, exclusions, or relation to sibling tools. This is a significant gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_applications_schemaCRead-onlyIdempotent
Read Application.
GET /api/v1/applications/schema
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description merely restates 'Read' and adds no behavioral details beyond the annotations, such as response characteristics or any special behaviors.
Agents need to know what a tool does to the 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 extremely short but not elegantly so. 'Read Application.' is brief but vague, and the URL line comes second. It is appropriately small, but the first sentence could be more informative and structured around the schema aspect.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 does not explain the purpose of returning the schema, how it relates to invoking other application APIs, or when this is preferable to list_applications. Given the tool has a simple parameter list and annotations, the description still lacks enough context for correct usage.
Complex tools with many parameters or behaviors need more documentation. 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 has zero parameters, so the schema empty and coverage is 100% in a vacuous sense. The rubric gives baseline 4 for 0 params; description doesn't need parameter 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?
The description states a read verb and the resource ('Application') with an explicit endpoint path containing '/schema', which indicates schema retrieval. However, it never explicitly says it returns the schema, and the phrasing 'Read Application' is too terse to clearly distinguish from other read tools like get_applications_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?
There is no guidance about when to use this tool versus list_applications, list_applications_schema, or the other list_*_schema siblings. No conditions or alternatives are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_appprofileCRead-onlyIdempotent
Read AppProfile.
GET /api/v1/appprofile
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the description adds no real behavioral transparency beyond the GET method and path. It does not mention pagination, response shape, auth expectations, or scope semantics, and the readOnly annotation carries the burden instead.
Agents need to know what a tool does to the 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 definition is very short and front-loaded: 'Read AppProfile' followed by the GET endpoint. There is no filler or repetition, though the main sentence is terse enough to hurt clarity; structure itself is clean.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 read with strong annotations and an output schema, the definition is nearly sufficient. The material gap is that it never states 'list all AppProfiles' or explains the distinction from get_appprofile_by_id, so an agent may not know which read tool fits the request.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
This tool takes zero parameters and has 100% schema description coverage, so the schema leaves nothing undocumented. The description's mention of the endpoint appropriately confirms a parameterless collection read, meriting the baseline for a no-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?
The description states a read operation against AppProfile via GET, so the resource and verb are present. However, 'Read AppProfile' is ambiguous next to get_appprofile_by_id; it doesn't explicitly say this lists all profiles, and the endpoint path is the only real disambiguator.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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_appprofile_by_id, list_appprofile_schema, or the create/update/delete siblings. The description neither names alternatives nor provides selection criteria, so the agent must infer usage from the tool name and endpoint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_appprofile_schemaBRead-onlyIdempotent
Read AppProfile.
GET /api/v1/appprofile/schema
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | 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 safe read-only nature is covered. The description adds little beyond restating 'Read' and giving the endpoint; it does not explain additional behavior such as whether it returns field definitions, requires auth, or has any caching or schema-specific quirks.
Agents need to know what a tool does to the 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 and front-loaded: 'Read AppProfile.' followed by the exact endpoint. There is no filler or redundant explanation, and for a zero-parameter read-only endpoint this brevity is appropriate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple, has no parameters, is read-only, and has an output schema, so invocation details are largely covered by structured data. However, the description leaves ambiguity about whether this returns the schema definition versus actual AppProfile records, and it gives no context for choosing it among sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the description is not required to explain parameter semantics. The 100% schema coverage and empty parameter list mean there is no parameter-related ambiguity for the 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?
The description identifies an action ('Read AppProfile') and the endpoint 'GET /api/v1/appprofile/schema' makes the target resource clear. However, the prose does not explicitly say it returns the schema or differentiate it from list_appprofile / get_appprofile_by_id, 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 guidance about when to use this tool instead of siblings like list_appprofile, get_appprofile_by_id, or other list_*_schema endpoints. No mention of using it before create/update operations or anything that would help an agent choose it over alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_commandBRead-onlyIdempotent
Read Command.
GET /api/v1/command
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds little beyond the raw endpoint and the already-annotated read nature of the call, with no additional context about result scope, pagination, ordering, or permissions.
Agents need to know what a tool does to the 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 brief and front-loaded with the useful GET endpoint, containing no filler. The opening 'Read Command' is somewhat redundant with the tool name, so it is concise but not perfectly polished.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 parameterless read with rich annotations and an output schema, little explanation is required. However, the description is ambiguous about whether it lists all commands or reads a single command, and it fails to reference the get_command_by_id sibling, leaving a small but real completeness 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 input schema has zero parameters and schema description coverage is 100% by default. There are no parameters for the description to clarify, which meets the baseline for a parameterless 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?
The description clearly states a read operation on a command resource via the GET endpoint. It does not explicitly say whether it returns all commands or a single command, nor does it differentiate itself from the sibling get_command_by_id, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention enumerating commands, does not point to get_command_by_id for single-command retrieval, and offers no conditions for choosing among the related list_* and get_* siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_config_developmentBRead-onlyIdempotent
Read DevelopmentConfig.
GET /api/v1/config/development
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true, so the safety profile is known. The description adds the endpoint but no additional behavioral context (e.g., auth, rate limits). It is consistent with annotations, so no contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: one sentence plus the endpoint. Both elements are informative and front-loaded, with no superfluous 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 no parameters, read-only annotations, and an output schema, the description is sufficient for invocation. The endpoint is provided and purpose is clear. No critical information is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so schema description coverage is trivially 100%. There is nothing for the description to add about parameters, and it appropriately omits any, which is correct for a parameterless 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?
The description clearly states the verb ('Read') and resource ('DevelopmentConfig'), and includes the HTTP endpoint. The tool name also reinforces the purpose, and the resource name distinguishes it from sibling list_config_* tools, though not explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus other configuration listing tools like list_config_host or list_config_ui. The description only states the action and endpoint, leaving the agent to infer usage from the resource name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_config_downloadclientBRead-onlyIdempotent
Read DownloadClientConfig.
GET /api/v1/config/downloadclient
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | 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 behavioral context beyond the word 'Read,' which aligns with the annotations. It does not describe what the response contains or any side effects (which are none). Since annotations cover the main traits, the description adds minimal value, consistent with a baseline 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 description is two short lines: the purpose statement and the endpoint. It is front-loaded with the action and resource, and there is no fluff. It could be slightly more descriptive but is appropriately sized for a simple read-only tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters, is read-only, and has an output schema, the description is mostly complete. It could benefit from stating that it returns the global download client configuration (as opposed to per-client settings), but the output schema likely clarifies that. The description is sufficient for an agent to understand what the tool does and 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 tool has zero parameters, so the schema coverage is 100% by definition. The description does not need to explain any parameters, and the baseline for no parameters is 4. The description also includes the endpoint path, which is redundant but harmless. No additional parameter semantics 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 ('Read') and resource ('DownloadClientConfig'), making the tool's purpose obvious. It is not a tautology and is distinct from sibling list tools like list_downloadclient (which lists clients) and get_config_downloadclient_by_id (which retrieves a specific config by ID). However, it does not explicitly differentiate itself from those siblings, relying on the name and endpoint to imply uniqueness.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 guidance on when to use this tool versus alternatives. It does not mention that this returns the global download client configuration, nor when one would choose get_config_downloadclient_by_id instead. The only clue is the endpoint, which is not explained. There is no mention of exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_config_hostARead-onlyIdempotent
Read HostConfig.
GET /api/v1/config/host
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is known. The description adds only the HTTP method and endpoint, with no extra context about output shape, auth, or side effects; that is acceptable for a trivial read but adds little 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 two short lines: a one-sentence action and the endpoint. No filler, and the verb/resource are 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 zero-parameter, annotated, read-only tool with an output schema, this is complete enough for correct invocation. Nothing important for calling it is missing, though usage guidance is absent and captured separately.
Complex tools with many parameters or behaviors need more documentation. 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 has zero parameters and schema coverage is 100%, so there are no semantics to clarify. The description does not need to describe parameters, and no ambiguity exists.
Input schemas describe structure but not intent. Descriptions should explain 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 operation ('Read') on a specific resource ('HostConfig') and includes the exact GET endpoint, so an agent can tell it is the read path for host configuration. It does not explicitly contrast with get_config_host_by_id or other list_config_* siblings, but the endpoint and resource make the purpose 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 guidance is given about when to choose this tool over list_config_development, list_config_downloadclient, get_config_host_by_id, or update_config_host_by_id. The read-only nature is implied by 'Read' and GET, but no exclusion or alternative is stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_config_uiARead-onlyIdempotent
Read UiConfig.
GET /api/v1/config/ui
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | 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 the GET endpoint but no further behavioral context such as authentication needs, response shape, or side effects; it is consistent with 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 extremely concise, with the core operation stated first and the endpoint provided in a separate line. Every element is useful, and there is no filler or repetition of structured data.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 parameterless, read-only tool with annotations and an output schema, the endpoint and resource name provide enough context for a safe call. The only notable omission is guidance on how this differs from the similarly named get_config_ui_by_id 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?
The tool has zero parameters, and schema description coverage is 100%, so the schema leaves nothing undocumented. The description correctly adds no parameter details because there is nothing to explain.
Input schemas describe structure but not intent. Descriptions should explain 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 ('Read') and resource ('UiConfig'), and includes the exact endpoint, making the operation clear. It is distinguishable from the config sibling tools by the endpoint, though it doesn't explicitly differentiate from get_config_ui_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?
No guidance is given about when to use this tool versus its siblings, such as get_config_ui_by_id or the other list_config_* tools. The endpoint implies a full-resource read, but the description never states that intent or names an alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_customfilterBRead-onlyIdempotent
Read CustomFilter.
GET /api/v1/customfilter
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | 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. The description adds no behavioral context beyond repeating the read nature and giving the HTTP method; it does not disclose list scope, pagination, or response 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 compact and front-loaded with the core verb and endpoint. It contains no filler, though 'Read CustomFilter' is somewhat redundant with the tool name and could have been replaced with more informative phrasing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 no-parameter read operation with strong annotations and an output schema, the endpoint and read semantics are nearly adequate. It is only missing a brief statement that this lists all custom filters, which would fully disambiguate it from the by-id read sibling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and 100% schema coverage with an empty properties object, so there are no parameter semantics for the description to clarify. Baseline 4 applies because no parameter documentation burden exists.
Input schemas describe structure but not intent. Descriptions should explain 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: 'Read CustomFilter' with the exact HTTP endpoint 'GET /api/v1/customfilter'. This is specific enough to identify the operation, though it does not explicitly distinguish listing all filters from get_customfilter_by_id beyond the collection endpoint.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 usage guidance is provided. The description does not explain when to use list_customfilter versus get_customfilter_by_id, nor does it mention any preconditions or alternatives, so an agent must infer selection from the tool name and endpoint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_downloadclientBRead-onlyIdempotent
Read DownloadClient.
GET /api/v1/downloadclient
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly=true, idempotent=true, destructive=false, and the description adds no behavioral context beyond restating read-only intent and the endpoint. Pagination, response shape, or scope of the list are not mentioned, so it provides little beyond structured metadata.
Agents need to know what a tool does to the 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 lines, no filler, with the operation statement front-loaded before the endpoint. Every phrase 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 zero-parameter list tool with an output schema and full safety annotations, the description is almost sufficient. It would be more complete if it explicitly said it returns all download clients rather than using the ambiguous singular phrase, but the endpoint and name make the intended call 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 tool has zero parameters and the schema already documents that completely (100% coverage). The description is not required to explain parameters, and it adds no misleading parameter 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 description names a clear verb+resource ('Read DownloadClient') and gives the HTTP endpoint, so an agent can tell it is a read operation on download clients. However, it doesn't explicitly say 'list all' or distinguish itself from get_downloadclient_by_id, 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?
No guidance is provided about when to call this tool versus list_downloadclient_schema, get_downloadclient_by_id, or the create/update/delete siblings. The list_ naming and GET path imply read usage, but the description never states it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_downloadclient_schemaBRead-onlyIdempotent
Read DownloadClient.
GET /api/v1/downloadclient/schema
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | 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`. The description adds little beyond restating that it is a read operation via GET. It does not disclose what the returned schema looks like, whether it represents a JSON Schema, or any other behavioral trait beyond what the annotations already provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, with no filler. The prose line 'Read DownloadClient' is short and the endpoint is given in a clear, structured way. For a zero-parameter tool, this is appropriately sized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 zero parameters, strong read-only annotations, and an output schema present, the tool is easy to call safely. However, the description lacks context about what the schema is used for and how it differs from listing or fetching actual DownloadClient resources. It is minimally complete but not genuinely helpful for tool selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parametersbjab, and the schema coverage is 100%. Since there are zero parameters, the description has no additional semantics to supply; the baseline of 4 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses 'Read DownloadClient' to indicate a read operation on a DownloadClient-related resource, and the included GET endpoint `/api/v1/downloadclient/schema` clarifies that this is specifically about the schema. It is not fully explicit in prose that this returns the schema rather than an actual DownloadClient, but the endpoint path provides enough 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 related tools such as `list_downloadclient` or `get_downloadclient_by_id`. The description does not mention the purpose of retrieving a schema before creating/updating a DownloadClient, nor does it exclude alternatives. Usage is only implied by the endpoint and sibling context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_filesystemCRead-onlyIdempotent
Read FileSystem.
GET /api/v1/filesystem
Args: path: Query parameter. include_files: Query parameter. allow_folders_without_trailing_slashes: Query parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | ||
| include_files | No | ||
| allow_folders_without_trailing_slashes | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | 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 no behavioral context beyond that, such as how missing/null parameters are handled, what include_files changes, or how trailing-slash handling behaves.
Agents need to know what a tool does to the 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 and front-loaded, containing no filler. The endpoint line and argument listing are efficient, though the terseness borders on under-specification rather than deliberate conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With three undocumented optional parameters and no parameter semantics in the description, an agent cannot determine what values are meaningful or how to use the tool effectively. Although annotations cover safety and an output schema exists, the missing parameter behavior makes the description 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 description coverage is 0%, so the description must compensate, but it merely lists parameter names as 'Query parameter' without explaining their meaning or effect. This adds no value beyond the input schema's property names and types.
Input schemas describe structure but not intent. Descriptions should explain 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 action ('Read FileSystem') and an exact endpoint ('GET /api/v1/filesystem'), making the resource targeted. It does not explicitly differentiate this from siblings like list_filesystem_type or get_by_path, but the endpoint plus verb makes the core purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool versus alternatives such as list_root, get_by_path, or list_filesystem_type. The intended use is only implied by the name and endpoint, with no exclusions, prerequisites, or routing signals.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_filesystem_typeCRead-onlyIdempotent
Read FileSystem.
GET /api/v1/filesystem/type
Args: path: Query parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | 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, fully covering the safety profile. The description adds only the HTTP GET method and 'Read FileSystem', which is consistent but provides no additional behavioral context such as error behavior, pagination, or output 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 description is extremely short and front-loaded with the action and endpoint. No words are wasted, and the structure cleanly separates the summary, endpoint, and arguments. Its brevity is efficient, though it sacrifices necessary 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?
Despite the tool's simplicity, the description omits critical context: the semantic meaning of the path parameter, what the 'filesystem type' result is used for, and when to choose this tool over sibling list_filesystem endpoints. An agent would likely need external knowledge 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?
With a single parameter and 0% schema description coverage, the description must compensate. It only says 'path: Query parameter', which indicates the parameter's location but not its meaning, valid values, or relationship to the filesystem. This is insufficient for an agent to know what path should be supplied.
Input schemas describe structure but not intent. Descriptions should explain 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 'Read FileSystem' and includes the endpoint 'GET /api/v1/filesystem/type', which together convey that this tool retrieves the filesystem type. The endpoint clarifies the vague opening phrase, but the prose itself does not explicitly name the resource as 'filesystem type', and no sibling differentiation 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?
The description offers no guidance on when to use this tool versus closely related siblings such as list_filesystem or get_content_by_path. There is no mention of prerequisites, intended use cases, or exclusions, leaving the agent to infer the appropriate context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_healthARead-onlyIdempotent
Read Health.
GET /api/v1/health
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | 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 known. Description adds the HTTP method and path, confirming the read nature but not disclosing further behavior such as response shape or 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?
Two short lines, front-loaded with the action and endpoint. No filler; every element adds specificity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 parameterless, read-only, idempotent health check with an output schema and clear endpoint; nothing material is missing for an agent 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?
There are zero parameters, so there is nothing the description needs to explain beyond the empty schema. This falls at the baseline 4 for parameterless tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states a specific verb and resource: 'Read Health' and the explicit HTTP endpoint 'GET /api/v1/health' makes the target unambiguous. It doesn't distinguish from similar health/status endpoints like list_ping or list_system_status, so not a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as list_ping or list_system_status. The description doesn't mention use cases, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_historyCRead-onlyIdempotent
Read History.
GET /api/v1/history
Args: page: Query parameter. page_size: Query parameter. sort_key: Query parameter. sort_direction: Query parameter. event_type: Query parameter. successful: Query parameter. download_id: Query parameter. indexer_ids: Query parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| sort_key | No | ||
| page_size | No | ||
| event_type | No | ||
| successful | No | ||
| download_id | No | ||
| indexer_ids | No | ||
| sort_direction | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | 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 that this is a GET request and a read operation, but gives no further behavioral context such as pagination behavior or filter semantics. It does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with the main purpose. However, the eight repeated 'Query parameter' lines are largely filler and do not earn their place, even though the overall structure is easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 8 optional parameters and several closely related sibling tools, the description does not provide enough context about what history entries this returns or how to select this tool over list_history_since or list_history_indexer. The output schema exists, but the tool's domain meaning and filter behavior remain 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 0%, so the description had the burden of explaining parameters. It only repeats each parameter name followed by 'Query parameter,' which adds little beyond the schema's property names, types, and defaults. No guidance is given on valid values, especially for ambiguous parameters like sort_direction and event_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 'Read History' and provides the GET endpoint, so the verb and resource are clear. However, it does not differentiate this from sibling tools like list_history_since or list_history_indexer, which also relate to history.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 instead of alternatives. The sibling list includes several history-related tools, but the description does not mention any distinguishing use case or exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_history_indexerCRead-onlyIdempotent
Read History.
GET /api/v1/history/indexer
Args: indexer_id: Query parameter. event_type: Query parameter. limit: Query parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| event_type | No | ||
| indexer_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | 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 the endpoint path and parameter names but does not disclose behavior such as pagination, default limit, ordering, or what event types are available. With annotations covering the core safety traits, 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 short and front-loaded with 'Read History', but the parameter list is redundant with the schema and adds no semantic value. It is not bloated, but it does not earn its place beyond the endpoint line.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 three optional parameters and no required fields, the description is thin. It does not explain the meaning of event_type, the format of the response, or how this differs from list_history and list_history_since. An agent would struggle to know what values to pass and what the results represent.
Complex tools with many parameters or behaviors need more documentation. 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 of explaining parameters. It merely lists 'indexer_id: Query parameter', 'event_type: Query parameter', and 'limit: Query parameter' without adding meaning. The schema already shows these are optional query parameters, so the description adds no value 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?
The description says 'Read History' and gives the endpoint GET /api/v1/history/indexer, which identifies the resource and verb. However, it does not explain what 'history' means in this context or what an indexer history entry represents, and it does not differentiate this from sibling tools like list_history or list_history_since.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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. Sibling tools list_history and list_history_since exist, but the description does not mention them or explain the distinction, leaving the agent to infer the appropriate context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_history_sinceDRead-onlyIdempotent
Read History.
GET /api/v1/history/since
Args: date: Query parameter. event_type: Query parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | ||
| event_type | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint=true, idempotentHint=true, destructiveHint=false), and the description adds only the GET endpoint, which merely repeats what the annotations imply. It discloses no behavioral traits such as how far back history is retained, result ordering, or how event_type shapes the outcome.
Agents need to know what a tool does to the 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, front-loaded with the purpose line, and contains no filler. However, the brevity reflects under-specification rather than deliberate conciseness — it is mostly generated boilerplate with no informational 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?
The output schema and annotations remove the need to document return values and safety, but the core semantics are still missing: what 'since' filters, whether the two optional parameters combine or override, and what a history event looks like. The description is far from complete for a filtering 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?
With schema description coverage at 0%, the description should compensate, but it only labels both parameters as 'Query parameter.' This adds the minor fact that they live in the query string, yet it omits the date format for 'date' and the expected structure of the 'event_type' object — the semantics an agent actually needs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Read History" is essentially a restatement of the tool name with the distinguishing 'since' qualifier dropped. It does not explain what history is being listed or that this tool filters events after a given date, so it fails to differentiate from siblings like list_history and list_history_indexer.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 whatsoever on when to choose this tool over list_history, list_history_indexer, or other list_* siblings. No use cases, exclusions, or alternative routing are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_indexerARead-onlyIdempotent
Read Indexer.
GET /api/v1/indexer
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true and idempotentHint=true, and the description aligns with these. The description adds the explicit HTTP method (GET) and the raw endpoint path, providing a clear behavioral contract. No contradiction found; the description gives minimal but consistent 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 description is extremely concise—two short lines. It states the purpose and the endpoint with no filler. Every word earns its place, making it highly efficient for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 parameters or nested objects, and an output schema exists (as indicated by 'Has output schema: true'), the description is sufficient for an agent to call it correctly. The main missing piece is a more explicit statement of what 'Read Indexer' returns, but that's covered by the output schema and the GET 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 has zero parameters, so the schema is trivially complete (100% coverage). The description doesn't need to elaborate on parameters. However, it does not indicate what the response contains, but since it's a list operation, the output schema likely covers that, making this score 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 'Read Indexer' clearly indicates a read operation for the 'indexer' resource, and the GET endpoint confirms it. It distinguishes from sibling list tools by being specific to 'indexer', though it doesn't explicitly differentiate from get_indexer_by_id (which is a single item fetch).
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 is minimal but the verb 'Read' and the endpoint suggest it's used to retrieve the indexer configuration. There is no explicit guidance on when to use this versus siblings like list_indexer_schema or list_indexerstats, but the resource name is clear enough for an agent to infer the main use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_indexer_categoriesARead-onlyIdempotent
Read IndexerDefaultCategories.
GET /api/v1/indexer/categories
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | 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 the HTTP method and endpoint, which is useful operational context, but it does not describe the return shape or any pagination/limits. Since annotations carry the main behavioral burden, 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 two short lines: one stating the purpose and one giving the endpoint. It is front-loaded with the core verb and resource, contains zero filler, and every word earns its place. This is a model of 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?
Given the tool's simplicity (no parameters, read-only, output schema present), the description is nearly complete. It names the resource, provides the endpoint, and relies on the output schema for return details. It does not explicitly state what the response contains, but the output schema covers that, so 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?
The tool has zero parameters, so the baseline is 4. The description does not need to elaborate on parameters, and the empty schema is fully consistent. No additional semantic explanation is 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 the verb 'Read' and the resource 'IndexerDefaultCategories', clearly indicating the tool lists default indexer categories. It also includes the exact HTTP endpoint (GET /api/v1/indexer/categories), which unambiguously distinguishes it from siblings like list_indexer or list_indexerstats. No ambiguity remains.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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. While the name and purpose are self-evident, the description does not mention any conditions, prerequisites, or exclusions. For an agent facing many list_* siblings, there is no explicit routing signal beyond the resource name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_indexerproxyARead-onlyIdempotent
Read IndexerProxy.
GET /api/v1/indexerproxy
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the read-only safety profile is covered. The description adds the exact GET endpoint, but gives no further behavioral context such as pagination, response shape, or authorization requirements; this is acceptable for a simple zero-parameter list 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?
The description is two short lines: a one-sentence summary and the endpoint. Every element earns its place, and the key information 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 zero-parameter, read-only list operation with an output schema available, the description plus endpoint is essentially sufficient. It could explicitly say 'list all IndexerProxies' to remove ambiguity, but nothing critical is missing 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 input schema has zero parameters, so there are no parameter semantics to document. The high schema coverage baseline of 4 applies, and the description correctly mentions no arguments.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states a clear verb ('Read') plus the resource ('IndexerProxy') and the exact collection endpoint GET /api/v1/indexerproxy, so it is distinguishable from get_indexerproxy_by_id even though it doesn't explicitly say 'list all'. It could be more explicit about returning the set of all proxy configurations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 given about when to use this tool versus siblings such as get_indexerproxy_by_id for a single proxy or list_indexerproxy_schema for schema details. The agent must infer from the endpoint that this lists all proxies.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_indexerproxy_schemaCRead-onlyIdempotent
Read IndexerProxy.
GET /api/v1/indexerproxy/schema
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds no extra behavioral context—it doesn't explain that the tool returns a schema (not live data), nor does it describe response format, potential errors, or any other behavior beyond the bare 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 extremely concise, consisting of 'Read IndexerProxy.' and the GET endpoint. It's front-loaded with the verb and resource, and the endpoint adds specificity. It is not verbose, but it might be too terse to convey the schema-specific nature of the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool with an output schema, the description is minimal. It does not clarify that the tool returns the schema for IndexerProxy, which could lead to confusion with list_indexerproxy. Given the sibling tools, it should explicitly state 'schema' and differentiate from resource retrieval. The output schema exists, but the description leaves the purpose 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 tool has zero parameters, so the description is not required to explain parameter semantics. The schema has 100% coverage (trivially, with no params), and the baseline for 0 params is 4. The description correctly implies no arguments are needed.
Input schemas describe structure but not intent. Descriptions should explain 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 'Read IndexerProxy.' which identifies a read operation on the IndexerProxy resource, but it doesn't explicitly mention 'schema'. The HTTP endpoint includes '/schema', which hints at schema retrieval, but the natural-language description is vague and could be confused with list_indexerproxy (which likely returns the actual proxies). The tool name clarifies, but the description itself lacks 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?
There is no guidance on when to use this tool versus sibling tools like list_indexerproxy or other list_*_schema tools. It doesn't state that this retrieves the schema definition rather than the resource data, nor does it mention any alternatives 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.
list_indexer_schemaARead-onlyIdempotent
Read Indexer.
GET /api/v1/indexer/schema
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds the HTTP method GET and endpoint, but no further behavioral context such as authentication needs, response characteristics, or side effects. 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?
The description is extremely concise: two short lines that state the resource and the exact endpoint. There is no filler or redundant 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 the low complexity (zero parameters), the rich annotations, and the presence of an output schema, the description is nearly complete for invocation. The only small gap is that 'Read Indexer' is slightly ambiguous about what the schema represents, though the endpoint path clarifies 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?
This tool has zero parameters, so there is no parameter burden for the description to carry. The input schema is empty and 100% covered, so no parameter information is missing.
Input schemas describe structure but not intent. Descriptions should explain 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 and resource: 'Read Indexer' plus the endpoint 'GET /api/v1/indexer/schema'. It states what the tool does, but it does not explicitly differentiate it from siblings like list_indexer or get_indexer_by_id, 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?
The description provides no guidance on when to use this tool versus alternatives such as list_indexer or get_indexer_by_id. There is no when-to-use, when-not-to-use, or reference to any sibling tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_indexerstatsBRead-onlyIdempotent
Read IndexerStats.
GET /api/v1/indexerstats
Args: start_date: Query parameter. end_date: Query parameter. indexers: Query parameter. protocols: Query parameter. tags: Query parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | ||
| end_date | No | ||
| indexers | No | ||
| protocols | No | ||
| start_date | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | 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 the GET method and clarifies that all arguments are query parameters, which is modest extra behavioral context. It does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with the purpose. The parameter list is structured and each line adds the query-parameter location, though it somewhat duplicates schema property names. Overall it is appropriately sized with no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The output schema exists, so return values need not be described. However, the description omits useful operational details such as date formats, filter behavior, and response characteristics beyond the schema. It is adequate for a simple read-only tool but has clear gaps in guidance.
Complex tools with many parameters or behaviors need more documentation. 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 missing parameter documentation. It only repeats the parameter names and labels each as a 'Query parameter,' without explaining formats, allowed values, or how filters are combined. This adds minimal semantic value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: 'Read IndexerStats.' It identifies the resource and operation, and the endpoint reinforces the intent. However, it does not differentiate this from siblings like list_indexerstatus or list_indexer, 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?
The description gives no guidance on when to use this tool versus alternatives. It simply shows the endpoint and parameter list, with no context about filtering, use cases, or exclusions, leaving the agent without routing information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_indexerstatusBRead-onlyIdempotent
Read IndexerStatus.
GET /api/v1/indexerstatus
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | 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 the GET method and endpoint path, which is helpful context, but it does not disclose additional behavioral traits such as response format or pagination. No contradiction exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very brief, free of fluff, and front-loads the 'Read' verb. It could include more context, but it is appropriately sized for a simple zero-parameter tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read-only tool with an output schema, the description covers the core action and endpoint. However, it lacks usage context, such as when to choose this over the similar list_indexerstats or get_indexer_by_id endpoints, which would improve completeness.
Complex tools with many parameters or behaviors need more documentation. 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 has zero parameters and the input schema is empty with 100% schema coverage, so there are no parameter semantics for the description to add. Baseline of 4 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Read IndexerStatus') and provides the exact HTTP endpoint. It is clear about the tool's function, though it does not explicitly differentiate it from sibling list_* tools like list_indexerstats.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 simply states the action and endpoint, leaving the agent to infer context from the tool name and sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_localizationARead-onlyIdempotent
Read Localization.
GET /api/v1/localization
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | 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, which cover the safety profile. The description adds no behavioral context beyond the HTTP method, but it does not contradict the annotations 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?
The description is two short lines: a clear summary and the full endpoint. It is front-loaded, contains no filler, and every element adds useful information for a tool with no parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, zero-parameter tool with an output schema, the description is complete enough for an agent to invoke it correctly. The endpoint is explicit, and return values are presumably covered by the output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so parameter semantics are not applicable. Per the rubric, 0 params warrants a baseline of 4; the schema coverage is 100% and the description does not need to compensate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Read') and resource ('Localization'), and provides the exact HTTP endpoint. It is not a tautology and is understandable, though it does not elaborate on what the localization resource contains or explicitly differentiate it from list_localization_options.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 given about when to use this tool vs alternatives. With sibling list_localization_options present, the description does not explain the distinction, leaving the agent to infer which tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_localization_optionsBRead-onlyIdempotent
Read Localization.
GET /api/v1/localization/options
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | 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. The description adds no behavioral context beyond restating 'Read' and the GET method, so it does not provide value beyond the structured 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 highly concise, with no filler and the endpoint placed immediately after the one-line summary. It is appropriately short for a no-parameter tool, though it could include a bit more semantic detail without becoming 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?
Given the low parameter count and existing annotations, the description is technically sufficient for invocation, but it fails to clarify what 'options' means and does not distinguish this tool from the closely named sibling 'list_localization'. This is a meaningful gap for correct tool selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so the baseline of 4 applies. The description does not need to compensate for schema coverage, and the endpoint confirms the tool takes no arguments.
Input schemas describe structure but not intent. Descriptions should explain 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 ('Read') and resource ('Localization') and includes the endpoint path '/api/v1/localization/options', which adds specificity. However, it does not differentiate from the sibling tool 'list_localization', so the purpose is clear but not uniquely scoped.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 alternatives such as 'list_localization' or other list_* siblings. No conditions, exclusions, or context are provided, leaving the agent to infer usage from the name and endpoint alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_logCRead-onlyIdempotent
Read Log.
GET /api/v1/log
Args: page: Query parameter. page_size: Query parameter. sort_key: Query parameter. sort_direction: Query parameter. level: Query parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| level | No | ||
| sort_key | No | ||
| page_size | No | ||
| sort_direction | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds only 'Read Log' and the GET endpoint, without disclosing pagination behavior, sorting semantics, level filtering, or response characteristics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the endpoint, but the repeated 'Query parameter' lines add little value and the overall structure is more of a schema echo than meaningful guidance. It is not bloated, but it also does not make every sentence informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 5-parameter tool with zero schema descriptions, the definition is incomplete: it lacks parameter meaning, accepted level values, sort key options, and pagination details. The output schema and annotations cover some context, but an agent still cannot confidently construct a correct request.
Complex tools with many parameters or behaviors need more documentation. 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 needed to explain the parameters, but it merely repeats their names and labels each as a 'Query parameter'. It does not define valid values, defaults, relationships, or expected formats, especially for sort_direction and level.
Input schemas describe structure but not intent. Descriptions should explain 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 ('Read Log') and provides the exact endpoint, so an agent knows this tool reads log data. However, it does not explicitly distinguish this from sibling tools like list_log_file or list_log_file_update, leaving some ambiguity about what 'Log' contains.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 guidance on when to use this tool versus alternatives such as list_log_file, list_log_file_update, or list_history. There is no mention of use cases, exclusions, or preferred conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_log_fileCRead-onlyIdempotent
Read LogFile.
GET /api/v1/log/file
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | 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, covering the safety profile. The description adds the HTTP method and path, but no further behavioral detail such as what is returned or whether it is a list vs. a file read. No contradiction with annotations is present.
Agents need to know what a tool does to the 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 extremely short, but it is under-specified rather than appropriately concise. 'Read LogFile' adds little value over the tool name, and only the endpoint line provides concrete information. This is closer to under-specification than effective brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite a rich set of annotations and an output schema, the description fails to resolve the core ambiguity of whether this tool lists log files or reads one file's contents. Given siblings like get_log_file_by_filename, this missing clarification is essential for correct tool selection, making the description 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?
The tool has zero parameters and schema description coverage is 100%, so there are no parameter semantics to clarify. The baseline for zero parameters is 4, and the description does not need to compensate for any 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 says "Read LogFile," which states a verb and resource but remains vague about what 'read' means here. It does not clarify whether this tool lists available log files or returns file contents, which is needed to distinguish it from siblings like get_log_file_by_filename and list_log.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 about when to use this tool instead of the many related siblings. There are no explicit usage conditions, exclusions, or alternative hints, so an agent must infer the intended use from the endpoint and tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_log_file_updateCRead-onlyIdempotent
Read UpdateLogFile.
GET /api/v1/log/file/update
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | 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 only the HTTP method and path, which restates the read nature rather than disclosing additional behavioral context such as response size, pagination, or what data is included.
Agents need to know what a tool does to the 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 extremely short, front-loaded with the action, and contains no filler. Both the action statement and the endpoint line are useful and immediate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the output schema exists and annotations cover safety, the description leaves out context about what an 'UpdateLogFile' is and how this operation differs from other log and update tools. Given the large sibling set, the agent may struggle to decide when to invoke this 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?
The tool has zero parameters, so the schema already fully covers parameter semantics. Baseline 4 applies because there is nothing for the description to add.
Input schemas describe structure but not intent. Descriptions should explain 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 'Read UpdateLogFile' with the endpoint GET /api/v1/log/file/update, identifying a read operation and a resource. However, 'UpdateLogFile' is not defined, and the description does not explain what this tool returns relative to similar log tools such as list_log_file or get_log_file_update_by_filename, leaving the purpose somewhat vague.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 about when to use this tool versus alternatives. It only states the read action and endpoint, with no mention of alternatives, exclusions, or the scenario that selects this tool among the many log-related siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_loginCRead-onlyIdempotent
Read StaticResource.
GET /login
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, idempotentHint, and destructiveHint, and the description's 'Read' is consistent. However, the description adds no behavioral details beyond what annotations already communicate – no auth requirements, no side effects, no rate limits, and no context about output. It earns credit only for not contradicting 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 two short lines with no filler or redundant phrasing. 'Read StaticResource' and 'GET /login' are both compact, and the content is front-loaded. It is concise, though the ambiguity of 'StaticResource' means it is not as useful as it could be at the same 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?
Given that an output schema exists and there are no parameters, the description does not need to explain return values, but it still leaves the core purpose vague. An agent cannot tell whether this is a health check, a login page fetch, or a resource listing. The phrase 'StaticResource' is undefined and does not resolve the ambiguity, making the description incomplete for reliable selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero properties and schema description coverage is 100%, so there are no parameter semantics to add. The baseline for a zero-parameter tool is 4, and the description correctly avoids inventing parameter 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?
Description states 'Read StaticResource' and 'GET /login' but does not define what StaticResource refers to or what the response represents. The tool name 'list_login' suggests login-related data, but the description doesn't clarify whether this returns a login page, a session check, or a static asset list. It does not distinguish itself from sibling tools like list_logout or list_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?
No guidance is provided about when to call this tool versus any alternative, no mention of login flow prerequisites, and no exclusions. The description merely combines a vague verb with an HTTP route, leaving the decision entirely to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_logoutBRead-onlyIdempotent
Read Authentication.
GET /logout
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and non-destructive behavior, and the description adds the HTTP route. However, it does not explain what happens when the endpoint is called, whether a session is invalidated, or what authentication state is expected. The annotation coverage lowers the burden, but the description adds little behavioral context beyond the path.
Agents need to know what a tool does to the 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 extremely short and front-loaded with the endpoint, containing no wasted content. However, 'Read Authentication' reads like boilerplate rather than a genuinely informative summary of the logout 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 zero parameters, an output schema, and safety-related annotations, the description does not need to explain return values or side-effect safety. Still, it is incomplete operationally: it does not clarify the difference between a logout endpoint and a login/read-authentication endpoint, which is the main thing an agent needs to know.
Complex tools with many parameters or behaviors need more documentation. 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 has zero parameters and zero required parameters, so the input schema is complete and the description has no parameter burden to carry. The baseline of 4 applies because there is nothing for the description to clarify.
Input schemas describe structure but not intent. Descriptions should explain 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 provides a concrete endpoint ('GET /logout') and labels the resource ('Authentication'), but it never explicitly states that this logs the user out. The phrase 'Read Authentication' is vague and could also describe list_login or a status endpoint, so the agent must infer intent from 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 guidance about when to use this tool versus alternatives such as list_login or create_login. No context, preconditions, or exclusions are given, so an agent has no help choosing between authentication-related endpoints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_notificationBRead-onlyIdempotent
Read Notification.
GET /api/v1/notification
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral context beyond what the annotations already state: readOnlyHint=true, idempotentHint=true, and destructiveHint=false. It does not mention pagination, filtering, authentication requirements, or what subset of notifications is returned, so it contributes nothing beyond the structured 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 very short and front-loads the core action ('Read Notification') followed by the exact endpoint. It is appropriately sized for a zero-parameter read tool, though 'Read Notification' is slightly less explicit than 'List notifications'.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 read endpoint with an output schema and strong annotations, the description is minimally adequate. However, it does not clarify whether this returns all notifications or a single notification, and it gives no hint about when to choose this over get_notification_by_id or list_notification_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 tool has zero parameters, so the schema already fully covers the input space. The description does not need to explain parameter meaning, and the baseline of 4 for zero-parameter tools applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Read') and resource ('Notification') and includes the exact HTTP endpoint, which makes clear this is a read operation on the notification collection. It does not explicitly contrast itself with siblings like get_notification_by_id or list_notification_schema, but the endpoint semantics are enough to distinguish 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?
There is no guidance on when to use this tool versus alternatives such as get_notification_by_id or list_notification_schema. The description only provides the endpoint, leaving the agent to infer selection criteria from sibling names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_notification_schemaBRead-onlyIdempotent
Read Notification.
GET /api/v1/notification/schema
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | 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. The description adds the HTTP method and path (GET /api/v1/notification/schema), confirming a non-mutating read, but it does not describe any behavioral characteristics beyond that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact: one short phrase plus the endpoint, with no filler. 'Read Notification' is terse, but the structure is front-loaded and the endpoint provides concrete, 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 zero-parameter read with an output schema, the description covers the core operation and safety profile via annotations. However, it does not explicitly state that the response describes the notification schema, which is important given the near-identical sibling list_notification.
Complex tools with many parameters or behaviors need more documentation. 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 has zero parameters and schema coverage is 100%, so there are no parameter semantics for the description to add. Per the baseline for an empty parameter set, this is fully 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?
The description says 'Read Notification' and provides the GET path '/api/v1/notification/schema', so an agent can infer it is a read operation on the schema endpoint. However, the prose names 'Notification' rather than 'Notification Schema', and the sibling tool list_notification exists, so the exact resource is ambiguous without parsing the path.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 given about when to use this tool versus list_notification or get_notification_by_id. There are no exclusions, alternatives, or conditions; the GET method only implies a read operation but does not clarify selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_pingBRead-onlyIdempotent
Read Ping.
GET /ping
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | 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 'Read Ping' adds no extra behavioral context, such as what a successful response looks like or whether it returns status details. It essentially repeats the read-only intent without enhancing the agent's understanding.
Agents need to know what a tool does to the 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 extremely concise: 'Read Ping.' and 'GET /ping'. It is front-loaded with the core action and the endpoint, with no redundant words or filler. Every character serves a purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 with no parameters and a straightforward read-only purpose, the description is mostly sufficient. However, it does not mention what the response contains or how to interpret a successful ping, which could be useful for an agent verifying API health. A single sentence about the response would improve completeness, but the current description is acceptable for such a simple 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?
There are zero parameters, so the schema coverage is trivially complete. The description does not need to explain parameters, and it does not attempt to. Per the baseline rule for zero parameters, a score of 4 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 clearly states the action 'Read' and the resource 'Ping', and includes the HTTP endpoint GET /ping. This is specific and unique among the sibling tools, which all follow a similar naming pattern but none other is about ping. It could be slightly more explicit in contrasting with alternatives, but the purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus others. It does not mention typical use cases, prerequisites, or conditions for choosing this endpoint. While it's a simple health check, an agent would benefit from knowing it is intended for connectivity or liveness verification.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_rootDRead-onlyIdempotent
Read StaticResource.
GET /
Args: path: Path parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | 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. However, the description adds no extra behavioral context, such as response characteristics or side effects, going 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 very short, but this is under-specification rather than effective conciseness. It includes a confusing 'GET /' alongside a required path parameter, and it lacks a clear front-loaded statement of purpose. Each sentence does not earn its place because the essential information is missing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite being a simple tool with one parameter and an output schema, the description is incomplete. It fails to explain what resource is being read, preventing an agent from knowing when to call it or what value to supply for 'path'. The description does not provide enough 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 only parameter, 'path', is a required string in the schema. The description merely says 'path: Path parameter,' which adds no meaning beyond the parameter name and type. With 0% schema description coverage, the description fails to compensate by explaining what the path should refer to or its expected 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 says "Read StaticResource," which is vague and does not clearly explain what the tool does or what a StaticResource is. The tool name is list_root, but the verb 'read' conflicts with the implication of listing, and there is no differentiation from siblings like get_by_path or get_content_by_path.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 given on when to use this tool versus alternatives. The description does not mention when to call it, when not to, or provide any comparison to sibling tools. An agent cannot determine the appropriate context for invoking list_root.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_searchCRead-onlyIdempotent
Read Search.
GET /api/v1/search
Args: query: Query parameter. type: Query parameter. indexer_ids: Query parameter. categories: Query parameter. limit: Query parameter. offset: Query parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | ||
| limit | No | ||
| query | No | ||
| offset | No | ||
| categories | No | ||
| indexer_ids | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | 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. The description adds 'Read' which aligns with these but provides no further behavioral insight such as pagination, authentication requirements, or what the response contains. It essentially repeats the endpoint and parameter names without enriching the safety or behavior picture 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 extremely short and front-loaded with 'Read Search.' but then degenerates into a bare list of parameter names. While it is concise, the brevity stems from under-specification rather than efficient communication. The structure is a simple list, but it lacks narrative or explanatory 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?
With 6 parameters and a search operation, the description is incomplete. It does not explain what the search does, what results are returned, or how the parameters interact. Although an output schema exists, the overall purpose and usage context are missing, making it inadequate for an agent to correctly invoke the tool without external knowledge.
Complex tools with many parameters or behaviors need more documentation. 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 lists each parameter with a redundant 'Query parameter.' suffix, which restates the name without explaining semantics (e.g., what query filters on, how limit/offset affect results, what categories and indexer_ids represent). The description provides no meaningful meaning beyond the schema's property 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 says 'Read Search.' and provides an endpoint, but 'Search' is generic and doesn't clarify what kind of search or what resource it operates on. It does not distinguish from siblings like list_history or list_indexer, which also list data. The purpose is ambiguous beyond being a read operation for 'search'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. The description simply lists parameters without any context about the intended use case, prerequisites, or conditions under which to select this tool over others.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_system_backupCRead-onlyIdempotent
Read Backup.
GET /api/v1/system/backup
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | 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 description adds no behavioral context beyond repeating that this is a read. It does not mention what the response contains, pagination, authorization needs, or any other runtime behavior. No contradiction exists, but the description carries almost no additional transparency 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 very short and front-loads the action, with the endpoint adding a concrete reference. For a zero-parameter read operation, this level of brevity is not wasteful, though it leans toward under-specification rather than effective 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?
Given zero parameters, a read-only annotation set, and an output schema, an agent can likely invoke the tool correctly. However, the description still leaves the tool's exact purpose ambiguous—'Read Backup' could mean reading a single backup versus listing all backups—and offers no usage context, so it is only minimally adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the schema description coverage is effectively 100%, so there is no parameter semantics burden on the description. The baseline of 4 applies because nothing needs to be explained 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?
The description says 'Read Backup' and provides the GET endpoint, so it does state a verb and resource. However, 'Read Backup' is a vague paraphrase of the tool name and does not clarify that this lists system backups or distinguish it from related backup operations. It is not a pure tautology, but it lacks the specificity needed for strong 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 instead of alternatives such as create_system_backup_restore_by_id, delete_system_backup_by_id, or list_system_status. The description gives no context about use cases, exclusions, or related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_system_routesCRead-onlyIdempotent
Read System.
GET /api/v1/system/routes
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true. The description merely echoes this with 'Read' and the GET verb, adding no additional behavioral context such as response format, pagination, authorization, or potential caveats.
Agents need to know what a tool does to the 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 opening 'Read System.' is largely redundant with the tool name and adds little value. The endpoint line is useful, but the overall structure does not efficiently communicate the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 zero parameters, an output schema, and strong annotations, the tool is relatively simple to invoke correctly. However, the description does not explain what system routes are or how this tool differs from the similar sibling, leaving a noticeable gap for an agent deciding which tool to select.
Complex tools with many parameters or behaviors need more documentation. 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 are zero parameters and 100% schema description coverage, so there are no parameter semantics to clarify. The description appropriately omits parameter 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 description says 'Read System.' and provides the endpoint GET /api/v1/system/routes, which implies retrieving system routes. However, it never explicitly names the resource as routes or explains what 'routes' means, and it does not distinguish this tool from the sibling list_system_routes_duplicate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 alternatives like list_system_routes_duplicate, list_root, or list_system_status. The agent must infer usage solely from the name and endpoint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_system_routes_duplicateCRead-onlyIdempotent
Read System.
GET /api/v1/system/routes/duplicate
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | 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. The description adds no behavioral context beyond 'Read System' and 'GET', which are already implied by the annotations. It does not disclose what happens or what special behavior the 'duplicate' endpoint has.
Agents need to know what a tool does to the 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 and front-loaded, but it is under-specified rather than efficiently informative. 'Read System.' adds little value on its own, and the HTTP path only identifies the endpoint without explaining its semantics.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Although there are no parameters and an output schema exists, the description fails to explain the endpoint's purpose, what 'duplicate' refers to, or how it relates to list_system_routes. The annotations cover safety but not the semantic context needed for correct selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so there is no parameter semantics burden on the description. The baseline of 4 applies as no parameter documentation is needed.
Input schemas describe structure but not intent. Descriptions should explain 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 ('Read') and the HTTP path '/api/v1/system/routes/duplicate', but it does not explain what the tool returns or what 'duplicate' means in this context. It is too vague to distinguish this from the sibling list_system_routes, so the agent cannot infer the tool's actual 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 usage guidance is provided. The description gives no indication of when to choose this tool over list_system_routes or other list_* siblings, nor any conditions or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_system_statusBRead-onlyIdempotent
Read System.
GET /api/v1/system/status
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, covering the side-effect profile. The description adds the GET method and endpoint path, which is useful, but discloses no additional behavior such as auth requirements or response handling; with strong annotations 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 minimal and every element is functional: the human-readable intent and the endpoint. It is appropriately terse for a parameterless read operation, though 'Read System' is slightly vague.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-parameter GET endpoint, the description combined with the output schema and annotations covers the essential invocation context. It could be more explicit about what 'system status' includes, but nothing critical is missing for calling 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 tool has zero parameters, so there is no parameter burden for the description to carry. The empty schema and GET endpoint sufficiently convey that no arguments are needed.
Input schemas describe structure but not intent. Descriptions should explain 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 read operation and identifies the resource as the system, reinforced by the HTTP GET endpoint. It is understandable but does not differentiate from sibling list_health or describe exactly what status fields are returned.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 prefer this tool over alternatives such as list_health, or any mention of conditions or exclusions. The description only states what the tool reads, not when to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_system_taskDRead-onlyIdempotent
Read Task.
GET /api/v1/system/task
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | 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 safe-read behavior is covered. However, the description adds no additional behavioral context—it does not mention pagination, return format, authentication needs, or any side effects. It simply provides an HTTP path, which is 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?
The description is short and not verbose, but it is also under-specified. It consists of two lines 'Read Task' and the HTTP endpoint, which is not structured to front-load meaningful information. While concise, it fails to provide a useful summary, making the conciseness a negative trait rather than a positive 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?
Even for a no-parameter read tool, this description is incomplete. It does not explain what a 'system task' is, what the output schema contains, or any operational details. The presence of an output schema and annotations does not compensate for the total absence of domain context. An agent has no idea what this tool actually returns or when to invoke it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, and the schema coverage is 100% (empty schema). With no parameters to explain, the description does not need to add parameter-level detail. The baseline of 4 for zero-parameter tools is appropriate; the description does not detract from this.
Input schemas describe structure but not intent. Descriptions should explain 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 'Read Task' is extremely vague and essentially restates the tool name without specifying what 'system task' means or what the tool returns. The HTTP path 'GET /api/v1/system/task' hints at a collection operation, but the description does not explicitly state 'list all system tasks' or differentiate from other list_* tools. It lacks a clear verb-resource semantic.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 vs alternatives. It does not mention conditions for using it instead of list_system_status, get_system_task_by_id, or any other sibling. No context about prerequisites, use cases, or exclusions is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_tagARead-onlyIdempotent
Read Tag.
GET /api/v1/tag
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is well covered. The description adds the HTTP method and endpoint path but no further behavioral context such as pagination, filtering, or output shape. It does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is minimal and front-loaded, containing exactly the essential information: the operation, resource, and endpoint. No unnecessary words or redundant details are present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, parameterless, read-only list operation with a rich annotation set and an output schema, the description is mostly sufficient. The main gap is that 'Read Tag' is slightly vague and could more clearly say it lists all tags rather than reading a specific tag.
Complex tools with many parameters or behaviors need more documentation. 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 has zero parameters and schema coverage is 100%, so there is nothing for the description to clarify. This is the appropriate baseline for a parameterless 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?
The description states the verb 'Read' and the resource 'Tag', and the endpoint 'GET /api/v1/tag' makes clear this operates on the tag collection. However, it does not explicitly differentiate from sibling get_tag_by_id or explain that it lists all tags rather than retrieving a single one.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 alternatives such as get_tag_by_id, list_tag_detail, or create_tag. The description simply states the operation and endpoint without any conditions, exclusions, or mention of related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_tag_detailARead-onlyIdempotent
Read TagDetails.
GET /api/v1/tag/detail
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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, and the description's 'Read' is consistent with that safety profile. The description adds no significant behavioral context beyond the HTTP method and path, but it also does not hide or contradict any mutation 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 extremely compact: one sentence states the operation and resource, and the second line gives the endpoint. There is no filler, repetition of schema details, or unnecessary prose, so both lines earn their 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 zero-parameter, read-only endpoint with plenty of annotation coverage and an output schema, the description plus structured data are largely sufficient to invoke the tool correctly. It falls slightly short of a 5 because it never clarifies what 'TagDetails' contains or how this list relates to get_tag_detail_by_id and list_tag.
Complex tools with many parameters or behaviors need more documentation. 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 has zero parameters, and schema description coverage is vacuously 100% with an empty input schema. There is nothing for the description to explain beyond what the schema already provides, so the zero-parameter baseline applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Read') and resource ('TagDetails'), and includes the exact endpoint GET /api/v1/tag/detail. It is not tautological, but it does not distinguish this tool from siblings such as list_tag or get_tag_detail_by_id, leaving the exact scope of the operation ambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 instead of list_tag, get_tag_detail_by_id, or other read-only siblings. No alternatives, exclusions, or preferred contexts are mentioned, so the agent must infer usage from the name and endpoint alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_updateCRead-onlyIdempotent
Read Update.
GET /api/v1/update
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. However, the description adds no behavioral context beyond the HTTP verb—no mention of output shape, pagination, auth, or error behavior, and the output schema isn't referenced.
Agents need to know what a tool does to the 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 brevity here is under-specification, not efficiency. 'Read Update.' is vague and adds little; only the endpoint line provides actionable information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an empty parameter schema and an output schema present, the mechanical invocation is simple, but the description fails to define what 'update' means as a resource. An agent cannot reliably decide when to call this tool without more 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?
The tool has zero parameters, so there is no parameter documentation burden. The 100% schema coverage and empty schema mean the description does not need to explain inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a verb ('Read'), a resource ('Update'), and the HTTP endpoint, but 'Update' is ambiguous as a noun and could be confused with the many update_* sibling tools. It does not clarify what kind of update is being listed or what distinguishes this from get_log_file_update_by_filename / list_log_file_update.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 or alternatives are provided. The description only restates the endpoint and gives no indication of when an agent should choose this over sibling list/update tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_applications_bulkCIdempotent
Update Application.
PUT /api/v1/applications/bulk
Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds only the suggestion to read the schema first, which is a discovery step rather than a behavioral disclosure. It doesn't mention partial failure semantics, idempotency beyond what the annotation already states, or any side effects. Since annotations already cover idempotency and non-destructiveness, the description adds minimal value beyond the pointer, but doesn't 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?
The description is very short—two lines—and front-loads the purpose and HTTP method. Every sentence serves a function (purpose and a pointer to schema). However, it's so concise that it omits necessary detail, but that's a completeness issue, not a conciseness flaw. It earns points for not wasting words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 bulk update tool with an open-ended body, the description is insufficient. It doesn't explain the bulk request structure (array vs. object), whether the response returns updated items or errors, or how to handle partial failures. Even with the schema pointer, the agent lacks essential details about the bulk operation's semantics and response format, making it 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?
With schema description coverage at 0%, the body parameter is completely undocumented in the schema. The description compensates somewhat by telling the agent to read the matching GET or /schema endpoint to discover fields, which is a useful pointer. However, it doesn't specify whether the body should be an array of applications or a map, given the bulk context, leaving a critical gap in how to construct the payload.
Input schemas describe structure but not intent. Descriptions should explain 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 the core purpose ('Update Application') and the bulk nature through the resource path ('/bulk'), which distinguishes it from the singular update_applications_by_id sibling. However, it doesn't explicitly explain that this handles multiple applications at once, leaving some ambiguity for an agent unfamiliar with the API structure.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 given on when to choose this bulk tool over the singular update_applications_by_id or how to structure the bulk request beyond pointing to GET or /schema endpoints. There's no mention of use cases, exclusions, or alternatives, so an agent would have to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_applications_by_idAIdempotent
Update Application.
PUT /api/v1/applications/{id}
Args: id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects. force_save: Query parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| body | Yes | ||
| force_save | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already carry the behavioral load (readOnlyHint=false, idempotentHint=true, destructiveHint=false), and the description is consistent with them. It adds the HTTP PUT method and hints that the server validates body fields against a schema/GET shape, which is modest extra value. No contradiction, but no disclosure of replace-vs-merge behavior, response characteristics, or error 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?
The docstring is compact and front-loaded: purpose first, then HTTP endpoint, then a tightly scoped Args block. Every line earns its place, with no filler or repetition of schema type info.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values are covered, and annotations cover the safety profile. But for a write tool with a dynamically-shaped body, the description leaves two important gaps: what force_save actually does, and whether PUT performs a full replacement (clearing omitted fields) or a partial merge. The GET/schema pointer mitigates the body-composition problem but does not resolve update semantics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it does: id is labeled 'Path parameter,' body is explained as the request payload with a concrete pointer to GET/schema for discovering actual fields (critical since body is additionalProperties:true), and force_save is labeled 'Query parameter.' The main gap is that force_save's semantic meaning is never 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?
The description states a specific verb and resource ('Update Application') and shows the exact endpoint (PUT /api/v1/applications/{id}), so the agent knows this targets a single application by ID, distinct from update_applications_bulk. However, it does not explicitly contrast itself with the create/delete/bulk siblings, leaving sibling differentiation mostly to the name and {id} path parameter.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 one actionable precondition: 'Read the matching GET or the /schema endpoint first to see the fields this resource expects,' which is genuinely useful for composing the body. But it provides no guidance on when to choose this tool over update_applications_bulk, create_applications, or delete_applications_by_id, and names no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_appprofile_by_idAIdempotent
Update AppProfile.
PUT /api/v1/appprofile/{id}
Args: id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey that this is not read-only, is idempotent, and is not classified as destructive. The description adds useful behavioral context: the HTTP method is PUT, the id is a path parameter, and the body fields must be discovered via GET or /schema before calling. This goes beyond the annotations without contradicting 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?
The description is compact and front-loaded with the core action, followed by the HTTP endpoint and argument notes. There is no fluff and every line contributes 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?
Given the tool's simple two-parameter signature, the presence of annotations, and an output schema, the description covers the essential call pattern well. The instruction to consult GET/schema addresses the open-ended body shape. It could be slightly richer about update behavior, but overall it is sufficiently complete for the 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?
Schema description coverage is 0%, so the description must compensate. It identifies id as a path parameter and body as the request payload, and correctly points to the matching GET/schema endpoint for field details. However, it does not describe the actual body semantics or any field-level expectations, leaving much of the meaning to be inferred.
Input schemas describe structure but not intent. Descriptions should explain 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 tool updates an AppProfile, using a specific verb and resource. It is unambiguous, though it does not explicitly differentiate itself from other update_*_by_id siblings beyond the resource name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus creating, deleting, or reading an AppProfile. It does instruct the agent to read the matching GET or /schema endpoint first, which is helpful, but it does not explain when this update is the right choice over alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_config_development_by_idAIdempotent
Update DevelopmentConfig.
PUT /api/v1/config/development/{id}
Args: id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide idempotentHint, non-destructive, non-read-only behavior, so the description only needs to add context beyond that. It adds the HTTP method and points to GET/schema for field expectations, but it does not disclose whether the update semantics (full replacement vs. merge) or failure behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loaded with the core verb-resource statement, followed by the endpoint and a minimal Args section. Every line earns its place and there is no fluff or tautology.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists and annotations cover idempotency/safety, the description does not need to explain return values. The pointer to GET/schema plus the endpoint and parameter roles is sufficient for an agent to begin invoking the tool correctly, though a brief note on update semantics would make it fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description compensates by labeling id as a path parameter and body as a request payload, and it directs the agent to GET/schema for expected fields. It adds practical meaning where the schema is otherwise empty, though it could be even more explicit about how body fields should be structured.
Input schemas describe structure but not intent. Descriptions should explain 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 opens with a concrete verb-resource pair, 'Update DevelopmentConfig', and includes the full PUT endpoint, making the operation unmistakable. This also differentiates it from sibling update_config_* tools without requiring an agent to inspect their schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives actionable guidance by telling the agent to read the matching GET or /schema endpoint first to understand the request payload. It does not explicitly contrast this tool with alternatives or state when not to use it, but the intended usage context is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_config_downloadclient_by_idAIdempotent
Update DownloadClientConfig.
PUT /api/v1/config/downloadclient/{id}
Args: id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, and idempotentHint=true. The description adds that the operation is a PUT (consistent with idempotency) and instructs to fetch the schema first, implying the body is complex and requires prior knowledge. This adds context beyond annotations but does not reveal any unexpected behavior 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?
The description is brief and efficiently structured. The primary purpose is stated in the first line, followed by the HTTP method and path, then a minimal parameter list with the essential guidance. There is no redundant content or 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 an update tool with only two parameters and a body that is an open object, the description covers the necessary steps: it identifies the operation, the resource, and tells the agent exactly how to learn the body fields. The output schema exists, so return values are already specified. Annotations cover safety and idempotency. Nothing essential is missing for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It clarifies that 'id' is a path parameter (not obvious from the schema) and for 'body' it directs the agent to the matching GET or /schema endpoint to discover the expected fields. This is a helpful pointer, though it does not enumerate specific fields itself. Given the open schema (additionalProperties: true), this guidance is essential and adds significant 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?
The description clearly states 'Update DownloadClientConfig' – a specific verb and resource. It also provides the HTTP method and path, making the operation unambiguous. However, it does not explicitly differentiate from the similar sibling update_downloadclient_by_id, which could cause confusion about scope (config vs. entity).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes a clear prerequisite: 'Read the matching GET or the /schema endpoint first to see the fields this resource expects.' This is useful context for correct invocation. However, it offers no guidance on when to choose this tool over alternatives like update_downloadclient_by_id, nor any exclusions. The usage 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.
update_config_host_by_idBIdempotent
Update HostConfig.
PUT /api/v1/config/host/{id}
Args: id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds the instruction to read the GET or /schema endpoint first, which is useful behavioral context, but it doesn't disclose what happens on partial updates, validation failures, or whether the body replaces the entire config.
Agents need to know what a tool does to the 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 verb and resource. The Args section is minimal but earns its place by clarifying the two parameters. It could be slightly more structured, but there is no wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 2-parameter update tool with an output schema and annotations covering idempotency and safety, the description is mostly adequate. The main gap is the open-ended body schema: the agent is told to discover fields elsewhere, which is acceptable but leaves the tool incomplete on its own.
Complex tools with many parameters or behaviors need more documentation. 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 names 'id' as a path parameter and 'body' as the request payload, but the body is an open object with additionalProperties: true and no field details. The instruction to read the GET or /schema endpoint is a workaround, not actual 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?
The description states a clear verb and resource: 'Update HostConfig' with the HTTP path PUT /api/v1/config/host/{id}. It is distinguishable from siblings like get_config_host_by_id and list_config_host, though it doesn't explicitly name them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by showing the HTTP method and path, and instructs the agent to read the matching GET or /schema endpoint first. It does not explicitly state when to use this tool versus alternatives, but the update-vs-read distinction is clear from the verb and path.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_config_ui_by_idBIdempotent
Update UiConfig.
PUT /api/v1/config/ui/{id}
Args: id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, and idempotentHint=true, so the description's 'Update' is consistent. It adds a useful behavioral hint to fetch fields from GET/schema first, but does not disclose other traits like partial vs. full update semantics or error behaviors. 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?
The description is extremely concise, front-loads the purpose, and uses a clear format with argument labels. Every sentence serves a purpose, and there is no fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema and annotations, the description need not explain return values or safety. It provides a discovery path for the body fields, which is essential given the open-ended body object. However, it doesn't specify whether the update is partial or full, or any validation rules, leaving some ambiguity for a complex config resource.
Complex tools with many parameters or behaviors need more documentation. 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 must compensate. It only labels 'id' as a path parameter and 'body' as a request payload, then directs the agent to external sources for field details. This is minimal and does not explain the body structure or any constraints, leaving the agent to discover them elsewhere.
Input schemas describe structure but not intent. Descriptions should explain 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 ('Update') and the resource ('UiConfig'), and provides the HTTP method and path, making the purpose specific. It distinguishes from sibling config update tools (e.g., update_config_development_by_id) by the resource name, though it doesn't elaborate on what 'UiConfig' represents.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 a preparatory tip to read the matching GET or /schema endpoint before updating, but provides no guidance on when to use this tool versus alternatives (e.g., other config update tools) or any exclusions. It lacks explicit context about the appropriate scenarios for this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_customfilter_by_idAIdempotent
Update CustomFilter.
PUT /api/v1/customfilter/{id}
Args: id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations indicate readOnlyHint=false (write operation), idempotentHint=true (PUT is idempotent), and destructiveHint=false (non-destructive). The description aligns with these, adding the HTTP method and a note to consult the schema, which is useful context. However, it does not disclose whether the update is a full replacement or partial patch, which is a significant behavioral trait not covered 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 concise and well-structured: it states the purpose, HTTP method, and path, then lists the arguments with brief explanations. Every sentence earns its place, and the instruction to read the schema is front-loaded before the argument list. There is no redundant or tangential 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 the tool has an open body schema (additionalProperties true), an output schema, and nested objects, the description provides the essential call format and points to the schema for field details. However, it omits details about the update semantics (full vs partial) and whether the id must exist, leaving some ambiguity. The pointer to GET/schema partially compensates, but the description could be more explicit about the expected 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 has zero description coverage, so the description must compensate. It identifies 'id' as a path parameter and 'body' as the request payload, and directs users to read the GET or /schema endpoint for field details. This provides minimal semantic guidance and relies on an external reference, which is acceptable but not exhaustive. It does not explain the meaning of the id beyond being a path 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 clearly states 'Update CustomFilter' and includes the HTTP method and path, making the action unambiguous. It distinguishes from siblings like create_customfilter and delete_customfilter_by_id, though it doesn't elaborate on what fields are updatable. This is a specific verb+resource statement, but it could be slightly more descriptive about the scope of the update.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 instructs to read the matching GET or /schema endpoint first, which is a useful usage guideline for preparing the request. However, it does not explicitly contrast with alternatives such as create or delete, nor does it state when this tool should be preferred over other update tools. The guidance is present but not comprehensive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_downloadclient_bulkCIdempotent
Update DownloadClient.
PUT /api/v1/downloadclient/bulk
Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare idempotentHint=true and destructiveHint=false, so the agent knows it's a non-destructive, idempotent operation. The description doesn't contradict annotations, but it adds little beyond them. It mentions the PUT HTTP method and the /schema endpoint, which is useful context, but doesn't describe how the bulk operation works (e.g., whether it's transactional, partial failures).
Agents need to know what a tool does to the 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 to the point, starting with the specification of what the tool does. The one-line instruction about the body is a single sentence that adds context without bloat, but the overall structure could be improved by adding a purpose 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 bulk update tool with a loosely-typed body parameter, the description is insufficient. It doesn't specify what fields are expected, how the bulk operation behaves, or how it differs from the single update. The output schema exists but doesn't help the agent form the request. The tool's complexity and the opaque body schema require more detailed guidance.
Complex tools with many parameters or behaviors need more documentation. 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 only parameter 'body' is an opaque object with additionalProperties true, giving no clue about required fields. The description says to read the GET or /schema endpoint, which is a poor substitute for describing the parameter itself. An agent cannot know what to put in the body without extra calls, making this a significant functional 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 the resource (DownloadClient) and the action (Update), and is clearer than the ambiguous name. However, it doesn't specify the scope ('bulk' meaning multiple items) or contrast with update_downloadclient_by_id. The sibling list shows both update_downloadclient_by_id and update_downloadclient_bulk, and the description doesn't clarify that this one handles multiple clients in one call.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 bulk update versus the single update. It gives a hint to read the GET or /schema endpoint first, but doesn't explain the difference between the many update_*_bulk and update_*_by_id tools. An agent would struggle to pick between update_downloadclient_bulk and update_downloadclient_by_id without deeper context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_downloadclient_by_idCIdempotent
Update DownloadClient.
PUT /api/v1/downloadclient/{id}
Args: id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects. force_save: Query parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| body | Yes | ||
| force_save | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already specify idempotentHint=true, destructiveHint=false, and readOnlyHint=false, covering the mutation semantics. The description adds the HTTP method PUT, which aligns but provides no extra behavioral context such as error handling, response format, or side effects beyond the annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, starting with the purpose and endpoint, then listing arguments with brief annotations. It is efficient and front-loaded, though it could offer more detail without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 objects and an output schema, the description is sparse. It directs to GET/schema for body structure, which is helpful, but it omits explanation of force_save and potential invocation nuances. It suffices for straightforward updates but leaves some 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 0%, so the description is the only source. It identifies id as path, body as payload with an instruction to consult GET/schema, and force_save as a query parameter but without explaining its behavior. For a tool with a complex body object, this is minimal and leaves force_save undefined.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Update DownloadClient' with the explicit PUT endpoint and path parameter, making it clear this updates a single download client by ID. It is distinguishable from the bulk update sibling by the {id} path, though it doesn't explicitly say 'single'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 create_downloadclient (for new resources) or update_downloadclient_bulk (for multiple). The only advisory 'Read the matching GET or the /schema endpoint first' pertains to parameter semantics, not usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_indexer_bulkAIdempotent
Update Indexer.
PUT /api/v1/indexer/bulk
Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds the actionable directive to read the matching GET or /schema endpoint before assembling the payload, which gives meaningful behavioral context beyond the annotations. Annotations already provide idempotentHint=true and destructiveHint=false, and the description notes the request method and endpoint so the agent has a consistent picture of a reversible and safe write 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 short, front-loaded with the verb/resource and the endpoint, and then details the sole argument. The line 'Update Indexer.' is slightly redundant with the name, but the structure is otherwise tightly scoped.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 with one argument and an output schema, the description gives everything needed to begin invoking it (endpoint, argument, and a path to discover the payload schema). It does not mention the bulk semantics or relationship to update_indexer_by_id, but the endpoint path and sibling context will verify.
Complex tools with many parameters or behaviors need more documentation. 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 provides no field descriptions for the 'body' parameter (coverage 0%). The description compensates by labeling it a request payload and explicitly instructing the agent to discover expected fields via the matching GET or /schema endpoint, which is an actionable way to derive 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?
The description states the verb ('Update') and resource ('Indexer') and gives the endpoint 'PUT /api/v1/indexer/bulk', so the core action is clear. However, it does not explicitly differentiate the bulk operation from the sibling update_indexer_by_id, so a caller must infer the bulk nature from the URL path.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 as to when this bulk update should be used instead of update_indexer_by_id or update_applications_bulk. There is no explanation of prerequisites, when the world require reading the existing resource, or what distinguishes it from related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_indexer_by_idBIdempotent
Update Indexer.
PUT /api/v1/indexer/{id}
Args: id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects. force_save: Query parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| body | Yes | ||
| force_save | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide idempotentHint=true, readOnlyHint=false, destructiveHint=false, so the safety profile is covered. The description adds the guidance to read the GET or /schema endpoint first, which is useful context about expected body structure. It doesn't describe side effects or error behavior, but annotations carry the main 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 compact and front-loaded with the core action and endpoint. The Args list is terse and each line earns its place, though the body explanation could be slightly more specific.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 an update operation with an output schema and annotations covering idempotency and safety, the description is mostly adequate. The main gap is the body parameter: with additionalProperties:true and 0% schema coverage, an agent would need to make a separate GET call to understand the payload, which the description does point to. This is a reasonable but not complete solution.
Complex tools with many parameters or behaviors need more documentation. 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 names all three parameters (id, body, force_save) and gives one-line explanations, but the body parameter is a generic object with additionalProperties:true, and the description only says to read the GET or /schema endpoint. This is minimal compensation for a completely undocumented 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 'Update Indexer' with the HTTP method and path, clearly identifying the resource and action. It distinguishes from siblings like create_indexer and delete_indexer_by_id, though it doesn't explicitly name them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by showing the PUT endpoint and mentioning to read the matching GET or /schema endpoint first. It doesn't explicitly state when to use this tool versus alternatives like update_indexer_bulk, but the singular 'by_id' and path parameter make the context reasonably clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_indexerproxy_by_idAIdempotent
Update IndexerProxy.
PUT /api/v1/indexerproxy/{id}
Args: id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects. force_save: Query parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| body | Yes | ||
| force_save | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations already providing readOnlyHint=false, idempotentHint=true, and destructiveHint=false, the description's 'Update IndexerProxy' is not in conflict and the route line adds a small amount of extra context via the schema lookup advice. It does not detail side effects or force_save behavior, so it stops at adequate rather than strong.
Agents need to know what a tool does to the 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 compact and well-ordered: one-line purpose, explicit route, then a tight argument list with no filler. Every line 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 3-parameter mutation with an output schema and annotations, the description covers all arguments at a role level and directs the agent to the schema/GET endpoint for the complex body. It is slightly incomplete on force_save semantics and on what a successful update returns, but the output schema reduces that burden.
Complex tools with many parameters or behaviors need more documentation. 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 property descriptions are 0%, so the description partially compensates by labeling id as a path parameter, body as the request payload, and force_save as a query parameter, while advising how to discover body fields. The only notable gap is no elaboration of force_save's 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 explicitly states the operation and resource: 'Update IndexerProxy' backed by the PUT /api/v1/indexerproxy/{id} route, which ties it to a specific by-id mutation. This is specific enough to distinguish it from the related create/delete/list siblings for IndexerProxy and for other resource types.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 concrete guidance to read the matching GET or /schema endpoint first so the agent can discover the expected body fields before calling. It does not enumerate exclusions or when-not-to-use alternatives, but the context is clear and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_notification_by_idBIdempotent
Update Notification.
PUT /api/v1/notification/{id}
Args: id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects. force_save: Query parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| body | Yes | ||
| force_save | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover idempotency and non-destructiveness, so the description does not need to repeat those. The description adds useful context about body discovery via GET/schema, but it does not explain what force_save does or whether the update is partial or full replacement.
Agents need to know what a tool does to the 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 core purpose benannt, followed by a structured argument list. Each line adds some value, though the force_save line is mostly a restatement of the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The presence of an output schema reduces the need to describe return values, and the description smartly directs the agent to discover body structure via GET/schema. However, it leaves force_save semantics unexplained and does not clarify edge cases like partial updates or required fields beyond 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 must carry the parameter explanation burden. It gives useful roles for id (path) and body (request payload with discovery advice), but force_save is merely labeled as a query parameter with no semantic 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?
The description clearly states the action 'Update Notification' and includes the HTTP method and path identifier. It is understandable that this tool updates a notification resource by id, but it does not explicitly differentiate itself from sibling create/delete/list notification tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage through the title and endpoint, and it provides a concrete prerequisite: read the matching GET or /schema endpoint to understand the body fields. However, it does not explicitly state when to prefer this tool over alternatives or mention exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_tag_by_idAIdempotent
Update Tag.
PUT /api/v1/tag/{id}
Args: id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare idempotentHint true, destructiveHint false, and readOnlyHint false, so the safety profile is covered. The description adds a valuable behavioral cue: it tells the agent to fetch the schema/GET before constructing the body, which prevents malformed requests. 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?
The description is three concise lines: action+HTTP method, then an Args section with two bullets. It front-loads the core purpose and uses no filler. Each 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?
Given an output schema exists, return values need no description. The description covers how to get the body structure and notes the HTTP method, which is sufficient for a simple update. It doesn't mention partial vs full replacement or error handling, but these are not critical given annotations and schema availability.
Complex tools with many parameters or behaviors need more documentation. 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. It clarifies that id is a path parameter and body is the request payload, and crucially directs the agent to the GET/schema endpoint for field definitions. This adds meaning beyond the raw type-only schema, even though it doesn't enumerate fields 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 Tag' and the HTTP method (PUT), specifying the resource and verb. It is distinguishable from sibling tools by the resource name (tag vs applications, indexer, etc.), though it doesn't elaborate on the scope of 'tag' beyond that.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 instruction to 'Read the matching GET or the /schema endpoint first' implies the agent should fetch resource details before calling, which is a practical usage hint. However, it does not explicitly state when to prefer this tool over alternatives like create_tag or delete_tag_by_id, nor does it provide exclusions or conditions.
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.
128 tool updates
v1.0.0- First observed
create_applications - First observed
create_applications_action_by_name - First observed
create_applications_test - First observed
create_applications_testall - First observed
create_appprofile - First observed
create_command - First observed
create_customfilter - First observed
create_downloadclient - First observed
create_downloadclient_action_by_name - First observed
create_downloadclient_test - First observed
create_downloadclient_testall - First observed
create_indexer - First observed
create_indexer_action_by_name - First observed
create_indexer_test - First observed
create_indexer_testall - First observed
create_indexerproxy - First observed
create_indexerproxy_action_by_name - First observed
create_indexerproxy_test - First observed
create_indexerproxy_testall - First observed
create_login - First observed
create_notification - First observed
create_notification_action_by_name - First observed
create_notification_test - First observed
create_notification_testall - First observed
create_search - First observed
create_search_bulk - First observed
create_system_backup_restore_by_id - First observed
create_system_backup_restore_upload - First observed
create_system_restart - First observed
create_system_shutdown - First observed
create_tag - First observed
delete_applications_bulk - First observed
delete_applications_by_id - First observed
delete_appprofile_by_id - First observed
delete_command_by_id - First observed
delete_customfilter_by_id - First observed
delete_downloadclient_bulk - First observed
delete_downloadclient_by_id - First observed
delete_indexer_bulk - First observed
delete_indexer_by_id - First observed
delete_indexerproxy_by_id - First observed
delete_notification_by_id - First observed
delete_system_backup_by_id - First observed
delete_tag_by_id - First observed
get_applications_by_id - First observed
get_appprofile_by_id - First observed
get_by_id_api - First observed
get_by_id_download - First observed
get_by_path - First observed
get_command_by_id - First observed
get_config_development_by_id - First observed
get_config_downloadclient_by_id - First observed
get_config_host_by_id - First observed
get_config_ui_by_id - First observed
get_content_by_path - First observed
get_customfilter_by_id - First observed
get_downloadclient_by_id - First observed
get_indexer_by_id - First observed
get_indexer_by_id_download - First observed
get_indexer_by_id_newznab - First observed
get_indexerproxy_by_id - First observed
get_log_file_by_filename - First observed
get_log_file_update_by_filename - First observed
get_notification_by_id - First observed
get_system_task_by_id - First observed
get_tag_by_id - First observed
get_tag_detail_by_id - First observed
list_api - First observed
list_applications - First observed
list_applications_schema - First observed
list_appprofile - First observed
list_appprofile_schema - First observed
list_command - First observed
list_config_development - First observed
list_config_downloadclient - First observed
list_config_host - First observed
list_config_ui - First observed
list_customfilter - First observed
list_downloadclient - First observed
list_downloadclient_schema - First observed
list_filesystem - First observed
list_filesystem_type - First observed
list_health - First observed
list_history - First observed
list_history_indexer - First observed
list_history_since - First observed
list_indexer - First observed
list_indexer_categories - First observed
list_indexer_schema - First observed
list_indexerproxy - First observed
list_indexerproxy_schema - First observed
list_indexerstats - First observed
list_indexerstatus - First observed
list_localization - First observed
list_localization_options - First observed
list_log - First observed
list_log_file - First observed
list_log_file_update - First observed
list_login - First observed
list_logout - First observed
list_notification - First observed
list_notification_schema - First observed
list_ping - First observed
list_root - First observed
list_search - First observed
list_system_backup - First observed
list_system_routes - First observed
list_system_routes_duplicate - First observed
list_system_status - First observed
list_system_task - First observed
list_tag - First observed
list_tag_detail - First observed
list_update - First observed
update_applications_bulk - First observed
update_applications_by_id - First observed
update_appprofile_by_id - First observed
update_config_development_by_id - First observed
update_config_downloadclient_by_id - First observed
update_config_host_by_id - First observed
update_config_ui_by_id - First observed
update_customfilter_by_id - First observed
update_downloadclient_bulk - First observed
update_downloadclient_by_id - First observed
update_indexer_bulk - First observed
update_indexer_by_id - First observed
update_indexerproxy_by_id - First observed
update_notification_by_id - First observed
update_tag_by_id
TDQS
Scored across 128 tools
Multiple tools share identical or near-identical descriptions, such as the two "Read Newznab" tools (get_by_id_api and get_indexer_by_id_newznab) and the many generic "Create X" variants (create_indexer, create_indexer_test, create_indexer_testall). Static resource tools (get_by_path, get_content_by_path, list_root, list_login) also blur together. An agent would struggle to reliably pick the correct tool without deeper inspection.
The dominant pattern is verb_noun (create_indexer, list_indexer, update_indexer, delete_indexer), but there are notable exceptions like get_by_id_api, get_by_path, and get_indexer_by_id_newznab that break the convention. Plural/singular mixing (applications vs appprofile) and inconsistent action naming (test vs testall vs action_by_name) further reduce consistency, though the general style remains readable.
With 128 tools, this server exposes the entire Prowlarr API surface with little curation. This is far beyond the typical well-scoped MCP server range and creates a heavy, intimidating surface for agents. The count represents an extreme mismatch for a focused tool set.
The tool set provides extensive CRUD coverage across major resources: applications, indexers, download clients, notifications, tags, config, and more. Operations like search, history, health, logs, and system tasks round out the surface. Minor gaps exist (e.g., no explicit create backup or update command), but overall the domain is very thoroughly covered.
Maintenance
Related MCP Connectors
Universal AI API Orchestrator — 1,554 tools, 96 services. One install.
AI-callable tools for API mocking, testing, monitoring, security, and automation.
Discover, compare, and monitor 1,400+ APIs directly from your AI coding agent.
Build, validate, deploy — HTTP APIs, cron jobs, webhooks and MCP tools — from your AI client.
Related MCP Servers
- AlicenseBqualityAmaintenanceExposes the Sonarr v3 REST API as MCP tools, enabling LLMs to read and manage a Sonarr instance including series, episodes, downloads, history, and more. Supports both read and write operations, with destructive tools flagged.15MIT
- AlicenseAqualityAmaintenanceMCP server exposing Prowlarr's API v1 as tools for managing indexers, applications, download clients, and more, including cross-indexer searches and system commands.10MIT
- FlicenseAqualityBmaintenanceEnables searching and retrieving release metadata from Prowlarr indexers, with configurable query types, indexer and category filters, result limits, and offsets for use in automated workflows.1-
- AlicenseCqualityAmaintenanceEnables full control of Sonarr from Claude.ai and Claude Code by exposing all 234 v3 API operations as tools for managing media libraries.2348 npmMIT