mcp-remnawave
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., "@mcp-remnawavewhich nodes are offline?"
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.
mcp-remnawave
MCP-сервер (Model Context Protocol) для управления VPN-панелью Remnawave из Claude Desktop, Cursor, Windsurf и любого MCP-клиента.
v2.1.0 · Remnawave API 3.4.3 · 190 инструментов (87 в readonly) · 3 ресурса · 5 промптов
Рассчитан на панель 3.4.x. Для панели 3.0–3.2 — v2.0.0, для 2.8.0 — v1.4.0. Панель 3.3.0+ требует ноды 3.3.0+ — обновляйте ноды вместе с панелью.
Установка
git clone https://github.com/Nurullaev/mcp-remnawave.git
cd mcp-remnawave && npm install && npm run buildНужен Node.js >= 22 и API-токен из панели (Настройки → API Tokens).
Related MCP server: remnawave-mcp-server
Настройка
Переменная | Обязательна | Описание |
| да | URL панели, например |
| да | API-токен из настроек панели |
| нет | Доп. ключ для панели за Caddy с кастомным путём — уходит в |
| нет |
|
За Caddy с кастомным путём путь указывается прямо в base URL: REMNAWAVE_BASE_URL=https://example.com/secret-path/api.
Конфиг для Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json на macOS). Cursor и Windsurf используют такой же JSON в .cursor/mcp.json / .windsurf/mcp.json:
{
"mcpServers": {
"remnawave": {
"command": "node",
"args": ["/absolute/path/to/mcp-remnawave/dist/index.js"],
"env": {
"REMNAWAVE_BASE_URL": "https://vpn.example.com",
"REMNAWAVE_API_TOKEN": "your-api-token-here"
}
}
}
}Docker: npm run build && docker compose up -d (переменные через .env или docker-compose.yml).
Инструменты
Пользователи адресуются числовым id (в API 3.x пользовательские UUID убраны). Полный список с описанием параметров отдаёт сам клиент — ниже только распределение по категориям.
Категория | Кол-во | Категория | Кол-во | |
Пользователи | 30 | Страницы подписок | 7 | |
Плагины нод и shared lists | 18 | HWID-устройства | 7 | |
Ноды | 15 | Соединения | 7 | |
Система и статистика | 14 | Шаблоны подписок | 6 | |
Биллинг инфраструктуры | 12 | Сниппеты | 5 | |
Хосты | 11 | Интеграции нод | 5 | |
Внутренние группы | 11 | API-токены | 4 | |
Подписки | 10 | Метаданные | 4 | |
Конфиг-профили и inbounds | 9 | Настройки / Настройки подписок | 2 + 2 | |
Внешние группы | 8 | Теги · Keygen | 2 · 1 |
Ресурсы: remnawave://stats, remnawave://nodes, remnawave://health, remnawave://users/{userId}
Промпты: create_user_wizard, node_diagnostics, traffic_report, user_audit, bulk_user_cleanup
Примеры запросов: «покажи пользователей с истёкшей подпиской», «создай пользователя vasya на 50 ГБ на месяц», «перезапусти ноду amsterdam-01», «какие ноды офлайн?»
Разработка
src/client/index.ts — HTTP-клиент (по методу на эндпоинт), src/tools/*.ts — регистрация инструментов, по файлу на домен. @remnawave/backend-contract держим запиненным ровно на версию панели.
Лицензия
MIT. Проект вырос из TrackLine/mcp-remnawave.
Available Tools
190 toolsapi_tokens_createB
Create a new API token (API 3.x: tokens are scoped)
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Token name | |
| scopes | No | Token scopes (see api_tokens_scopes_list); omit for full access | |
| expiresInDays | Yes | Token lifetime in days |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the burden. It discloses only that API 3.x tokens are scoped, but omits critical behaviors: whether the token secret is returned only once, whether existing tokens are affected, and any permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single 9-word sentence that puts the verb and object first. No redundant or filler content; it is appropriately short.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema or annotations, the description is too sparse for a create operation. It fails to mention what the response contains (e.g., the token value), how to discover valid scopes, or any post-creation consequences, which are important for an API token 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?
The input schema fully describes all three parameters (name, scopes, expiresInDays) with its own descriptions, so the description adds no additional parameter semantics. The 'omit for full access' behavior is documented in the schema, not the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Create a new API token'. Among the api_tokens_* siblings, only this one creates tokens, so no ambiguity; the parenthetical about API 3.x scoping adds useful 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?
No explicit guidance on when to use this vs alternatives like api_tokens_list or api_tokens_delete. The name implies creation, but there is no statement about prerequisites (e.g., needing to list scopes first) or exclusion cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
api_tokens_deleteB
Delete an API token
| Name | Required | Description | Default |
|---|---|---|---|
| uuid | Yes | Token UUID to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. 'Delete' indicates a destructive mutation, but there is no mention of whether deletion is irreversible, what happens if the token does not exist, whether authorization is required, or what response is returned. This is a meaningful gap for a tool that permanently removes a resource.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, directly front-loaded sentence with no filler. Every word contributes to communicating the primary action and object. It is as concise as possible without losing 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?
This is a simple one-parameter tool with a fully documented schema, so the description does not need to explain parameter details. However, because there is no output schema and no annotations, the description leaves an agent without guidance on expected outcomes, error conditions, or whether deletion is permanent. It is minimally adequate but incomplete for a destructive 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 coverage is 100% and the only parameter, uuid, is already described as 'Token UUID to delete.' The description adds no semantic value beyond the schema, so it stays at the baseline for high schema coverage. The required nature and additionalProperties: false are already captured structurally.
Input schemas describe structure but not intent. Descriptions should explain 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 'Delete an API token' clearly identifies the action (delete) and the resource (API token), making it straightforward even among siblings like api_tokens_list and api_tokens_create. It is specific enough to distinguish the tool's core intent, though it does not elaborate on scope or side 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?
The description gives no guidance about when to use this tool versus alternatives, such as api_tokens_create or api_tokens_list. There are no exclusions, prerequisites, or context about how deletion fits into a workflow. The only signal is the verb 'delete,' which weakly implies the use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
api_tokens_listA
List all API tokens
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are not provided, so the description carries the full burden of behavioral disclosure. It only states the action and resource without mentioning potential side effects, authentication requirements, return format, pagination, or any rate limits. For a listing operation, the behavior is mostly self-evident, but the description offers no additional context beyond the bare action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that is immediately clear and front-loaded. It contains no unnecessary words or fluff, making it an efficient and well-structured definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 list tool, the description is minimally adequate, but it leaves out useful context such as the expected return shape (e.g., an array of token objects) and whether authentication is required. Since there is no output schema, the description could have provided a hint about the response format. It is complete enough for a straightforward call, but could be richer.
Complex tools with many parameters or behaviors need more documentation. 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 is an empty object with 100% coverage. With no parameters to explain, the description does not need to add parameter details. Baseline 4 is appropriate because there is nothing to clarify, and the description correctly omits any parameter-related content.
Input schemas describe structure but not intent. Descriptions should explain 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 'List all API tokens' clearly states a specific verb ('list') and resource ('API tokens'), distinguishing it from sibling tools like api_tokens_create, api_tokens_delete, and api_tokens_scopes_list. The purpose is unambiguous even without examining the schema or siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. It does not mention related tools such as api_tokens_scopes_list or explain under what circumstances one might prefer listing scopes over tokens. For a simple list tool, this guidance is not strictly necessary, but the dimension asks for explicit usage context, which is absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
api_tokens_scopes_listA
List all valid API token scopes
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. 'List' clearly indicates a read-only operation, which is a behavioral trait. But it doesn't disclose any additional details like whether the list is exhaustive, sorted, or includes deprecated scopes. For a simple listing tool, minimal behavioral disclosure may be acceptable, but it provides no extra context beyond what 'List' implies.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, complete sentence that is front-loaded with the action and resource. There is no redundancy or unnecessary detail. It is appropriately concise for a zero-parameter list operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only list tool, the description is essentially complete. The agent knows what the tool does and can call it without any additional input. The lack of output schema is not a major gap since the description implies a list of scopes. It could mention the return format, but for this simple case it is not critical.
Complex tools with many parameters or behaviors need more documentation. 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 covered (100%). The description doesn't need to add parameter details since there are none. Baseline 4 is appropriate as no parameter complexity exists, and the description is 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 states a clear verb ('List') and a specific resource ('all valid API token scopes'), which distinguishes it from other api_tokens_* siblings (list all tokens vs. list scopes). However, it doesn't explicitly contrast itself with api_tokens_list, so some ambiguity remains for an agent choosing between them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide when-to-use guidance or explicit alternatives. However, the context of listing scopes implies it should be used when an agent needs the set of valid scopes for creating or validating tokens, not when listing tokens themselves. This is implied but not stated, so it's not as strong as an explicit directive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
auth_statusB
Check current authentication status with Remnawave panel
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool checks authentication status but doesn't describe what the check entails (e.g., returns user info, session validity, permissions), whether it requires authentication itself, or any side effects. For a tool with zero annotation coverage, this leaves significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It is front-loaded with the core action ('Check current authentication status'), making it easy to parse. Every part of the sentence contributes meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (0 parameters, no output schema, no annotations), the description is minimally adequate. It explains what the tool does but lacks details on behavior, output format, or usage context. For a simple status-check tool, this is borderline viable but leaves room for improvement in guiding the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, and schema description coverage is 100% (empty schema). The description doesn't need to add parameter semantics, so it meets the baseline of 4 for tools with no parameters. No additional parameter information is required or provided.
Input schemas describe structure but not intent. Descriptions should explain 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's purpose with a specific verb ('Check') and resource ('authentication status'), specifying it relates to the 'Remnawave panel'. It distinguishes itself from siblings by focusing on authentication status rather than user/host/node management. However, it doesn't explicitly differentiate from potential authentication-related siblings (none exist in the 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?
No guidance is provided on when to use this tool versus alternatives. The description implies it checks authentication status, but doesn't specify scenarios (e.g., before performing operations, troubleshooting login issues) or prerequisites. Without explicit usage context, the agent must infer when this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bandwidth_stats_users_by_nodesB
Get top per-user bandwidth usage across the given nodes for a date range
| Name | Required | Description | Default |
|---|---|---|---|
| end | Yes | End date (YYYY-MM-DD) | |
| start | Yes | Start date (YYYY-MM-DD) | |
| nodesUuids | Yes | Array of node UUIDs (at least one) | |
| topUsersLimit | No | Max number of top users to return (default 100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the data aggregation (top per-user) but does not specify potential side effects (likely read-only), rate limits, or how results are ordered/truncated. The absence of annotations and output schema leaves behavior opaque.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, concise sentence that front-loads the core action and resource. No redundancy or filler; it's appropriately sized for the complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 moderately complex with 4 parameters and no output schema. The description covers the basic purpose but lacks behavior details like response format, ordering, and whether topUsersLimit is inclusive. With no annotations, an agent might need to infer pagination behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameters are already documented. The description adds context for 'nodesUuids' and 'date range' but does not explain the meaning of 'topUsersLimit' beyond the schema. Baseline 3 is appropriate given full schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get'), the resource ('top per-user bandwidth usage'), and the scope ('across the given nodes for a date range'). It differentiates from general bandwidth tools like system_bandwidth_stats by focusing on per-user node-specific data, but doesn't explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies a reporting/analytics context, but provides no explicit guidance on when to use this tool versus alternatives like system_bandwidth_stats or hwid_top_users. The sibling list includes many bandwidth-related tools, but no exclusions or alternative suggestions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
billing_history_createC
Create a billing history entry
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | Amount | |
| description | No | Description | |
| providerUuid | Yes | Provider UUID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility for behavioral disclosure. It only states the operation 'create', implying a mutation, but does not mention any side effects, required authorizations, data persistence, or potential errors. This is a significant gap for a 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 a single, concise sentence with no unnecessary words. It is appropriately brief for a simple creation tool, though it could benefit from a bit more contextual 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?
Given the simple nature of the operation, the schema coverage is complete, and there is no output schema to explain, the description is minimally sufficient. However, it lacks context on what a billing history entry is, how it relates to billing providers, or any validation rules, leaving some ambiguity for the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each parameter (amount, description, providerUuid) has a minimal description in the schema. The tool description adds no additional meaning beyond what the schema provides, and does not clarify units, formats, or relationships between parameters. Baseline 3 is appropriate since the schema handles 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 'Create a billing history entry' clearly states the action (create) and the resource (billing history entry), which distinguishes it from sibling tools like billing_history_list and billing_history_delete. It is specific enough for an agent to understand the primary operation, though it lacks detail on what constitutes a billing history entry.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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, no prerequisites, and no mention of conditions under which creation is appropriate. The description provides no context about the relationship to billing providers or nodes, leaving the agent to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
billing_history_deleteB
Delete a billing history entry
| Name | Required | Description | Default |
|---|---|---|---|
| uuid | Yes | History entry UUID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full behavioral burden. It states only 'Delete' without disclosing permanence, side effects, permission requirements, or any consequences. Since deletion is inherently destructive, the lack of such context is a notable gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that conveys the entire purpose with zero extraneous words. It is front-loaded 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?
Given this is a destructive mutation with no annotations and no output schema, the description lacks essential context such as whether deletion is permanent, what the response indicates, or any prerequisites. A more complete description would warn about irreversibility and clarify expected outcomes.
Complex tools with many parameters or behaviors need more documentation. 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 100% description coverage for the single parameter (uuid as 'History entry UUID'). The description adds no semantic value beyond the schema, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Delete a billing history entry' is a specific verb+resource combination. It clearly differentiates from sibling tools like billing_history_create and billing_history_list, leaving no ambiguity about its function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
While the description implies when to use this tool (for deletion), it does not provide explicit guidance on alternatives or exclusions. There is no mention of when-not-to-use or any comparison to related billing history tools, so usage is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
billing_history_listC
List billing history
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states the action 'list' and offers no information about side effects, permissions, return format, pagination, or whether the operation is read-only. For a list operation, this is a significant omission; the agent has no expectations about what to expect.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that is front-loaded with the action and resource. There is no wasted verbiage, and it is appropriately brief for a simple tool. However, it may be too terse to convey sufficient information, but conciseness itself is well-executed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 this is a list operation with no parameters, no output schema, and no annotations, the description is severely underspecified. It does not mention what the billing history contains, how results are ordered, whether pagination exists, or what the response structure looks like. An agent calling this tool would have no expectations about the data returned, which is a major 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 tool has zero parameters and an empty schema. Per the rubric, a baseline of 4 applies to tools with no parameters, as there is nothing for the description to explain. The description adds no parameter-specific meaning, but given the lack of parameters, this is acceptable.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb 'list' and a resource 'billing history', clearly indicating its function. It is distinct from siblings like billing_history_create and billing_history_delete, and no other list tool exists for this resource. However, it is minimal and does not elaborate on the contents or scope of the history, which keeps it from being a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. While no direct alternatives for listing billing history exist, the description does not mention that it is the sole retrieval method, nor does it provide any context about prerequisites, typical use cases, or relationship to other billing tools. This leaves the agent without explicit usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
billing_node_createC
Create a billing node
| Name | Required | Description | Default |
|---|---|---|---|
| nodeUuid | Yes | Node UUID | |
| providerUuid | Yes | Provider UUID | |
| pricePerMonth | No | Monthly price |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the full burden of behavioral disclosure, but it only says 'create', which is barely more than the tool name. It does not explain what happens upon creation, such as whether a provider must already exist, whether an existing node is overwritten, or if billing starts immediately. This is a significant transparency gap for a mutation 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 a single, focused sentence with no unnecessary words. It is as concise as possible for a simple create operation, even though it lacks depth.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 no annotations and no output schema, the description is overly sparse. It does not explain what a billing node is, any prerequisites (e.g., provider existence), or the meaning of the optional pricePerMonth in context. An agent would have to infer too much from the tool name and sibling list.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides descriptions for all three parameters (nodeUuid, providerUuid, pricePerMonth) with 100% coverage, so the schema already carries the parameter meaning. The description adds no further semantic detail, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: creating a billing node. It clearly distinguishes this tool from siblings like billing_node_update and billing_node_delete through the 'create' verb. However, it does not explicitly differentiate itself from nodes_create, which could be confusing in the context of a large sibling list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as billing_node_update or billing_nodes_list. The description only states the action, providing no context about prerequisites or decisions on which tool to select. This leaves the agent without any routing information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
billing_node_deleteC
Delete a billing node
| Name | Required | Description | Default |
|---|---|---|---|
| uuid | Yes | Billing node UUID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the full behavioral burden. It conveys that the operation is destructive, but it does not disclose whether deletion is permanent, whether it cascades to related billing records, or whether any confirmation is needed. This is a significant transparency gap for a delete 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 with no filler words, and the core action is front-loaded. However, the brevity comes at the cost of omitting important behavioral context, so it is efficient but not fully 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?
Although the tool has only one required parameter and no output schema, it is a destructive operation with no annotations. The description lacks any mention of permanence, related side effects, or conditions for safe usage, leaving the agent under-informed for a potentially impactful call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%; the single uuid parameter is already described as 'Billing node UUID'. The description adds no additional meaning beyond the schema, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Delete') and a specific resource ('a billing node'), which clearly identifies the operation. It is distinct from related siblings like billing_node_create and billing_node_update, though it does not explicitly distinguish itself from nodes_delete beyond the 'billing' qualifier.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 billing_node_update or nodes_delete, and no mention of prerequisites or side effects. The agent must infer usage solely from the tool name and resource type.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
billing_nodes_listB
List all billing nodes
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It only states the action and resource, with no mention of pagination, sorting, auth requirements, or return format. For a list operation, this is minimal and lacks disclosure of any side effects or constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence, front-loaded with the verb and resource. There is no wasted text, making it appropriately sized 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?
The description is adequate for a simple list operation, but it leaves ambiguity about what constitutes a 'billing node' versus a regular node, and it doesn't mention the response structure (e.g., whether it returns an array of objects or includes metadata). Given the lack of an output schema, more context would help the agent understand the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With zero parameters, the schema is trivially covered at 100%. The description adds no parameter information, which is unnecessary given the absence of parameters. The baseline of 4 applies because there is nothing to document.
Input schemas describe structure but not intent. Descriptions should explain 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 'List all billing nodes' uses a clear verb and resource, distinguishing it from generic 'nodes_list'. However, it doesn't clarify how billing nodes differ from regular nodes or from 'billing_providers_list', so it's clear but not fully 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 siblings like 'nodes_list' or 'billing_providers_list'. The description provides no context for selection, leaving the agent to infer usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
billing_node_updateC
Update a billing node
| Name | Required | Description | Default |
|---|---|---|---|
| uuid | Yes | Billing node UUID | |
| pricePerMonth | No | New monthly price |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the behavioral disclosure burden. It only says 'update', which implies mutation but does not disclose side effects, whether changes are reversible, any required permissions, or what the response will be. For a mutation tool, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence with no fluff, which is efficient. However, it is so minimal that it borders on under-specification. It is appropriately concise for a simple tool, but it could have added more context 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?
Given the lack of annotations and output schema, the description is insufficiently complete. It does not explain the effect of the update, whether only pricePerMonth is updated or if other fields are supported, or any constraints. An agent might call this tool without understanding the full impact, especially since it is a mutation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides descriptions for both parameters (uuid and pricePerMonth), achieving 100% schema description coverage. The tool description adds no additional information about parameter usage, formats, or relationships. Therefore, the description adds no value beyond the schema, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the verb 'update' and the resource 'billing node', which is clear about the action. However, it does not distinguish from other update tools such as nodes_update or billing_provider_update, and it doesn't specify what aspects of the billing node are updated beyond what the schema hints at. The description is nearly a restatement of the tool name, so it provides minimal differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. No mention of prerequisites, whether this is a partial or full update, or any conditions for using it. The agent must infer usage from the name and schema, which is minimal and lacks explicit context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
billing_provider_createA
Create a new billing provider
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Provider name | |
| description | No | Provider description |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states the operation ('Create') but does not reveal what happens on success (e.g., whether it returns the created object), any side effects, idempotency, or required permissions. For a mutation tool, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with zero extraneous content. It efficiently conveys the core purpose without waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (2 parameters, no output schema, no nested objects), and the schema fully documents parameters. However, the description lacks any detail about return values, validation rules, or operational context (e.g., whether the provider must be linked to a billing node). While minimal, it is borderline adequate for a simple create operation, but a bit more context 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 100% coverage, with both parameters (name and description) having basic descriptions. The tool description adds no extra meaning beyond the schema, so it meets the baseline for high coverage without enriching 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 a specific verb ('Create') and a clear resource ('billing provider'), which distinguishes it from sibling CRUD tools like billing_provider_update, billing_provider_delete, and list/get variants. The intent is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The verb 'Create' implies its use case: when a new billing provider is needed. However, there is no explicit guidance on when not to use it (e.g., if a provider already exists) or any mention of alternatives like update. The usage context is only implied, not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
billing_provider_deleteC
Delete a billing provider
| Name | Required | Description | Default |
|---|---|---|---|
| uuid | Yes | Provider UUID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only states the action without revealing whether deletion is permanent, irreversible, whether it cascades to related entities (e.g., billing nodes, history), or if special permissions are required. For a destructive mutation tool, this is a significant gap in 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 a single short sentence with no wasted words, which is concise. However, it is so sparse that it lacks useful structure or front-loading of key behavioral caveats. It is appropriately terse for a simple operation, but it does not enrich the agent's understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 (one parameter, no output schema, no annotations), the description is incomplete. It does not cover side effects, irreversibility, idempotency, or any constraints that might influence call decisions. An agent needs more context to safely invoke a delete operation on a billing provider.
Complex tools with many parameters or behaviors need more documentation. 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 documents the single 'uuid' parameter with 'Provider UUID' at 100% coverage. Since schema_description_coverage is high, the baseline is 3. The description adds no additional meaning beyond what the schema already provides, but it 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 clearly states a specific verb and resource: 'Delete a billing provider'. It properly identifies the operation for the billing_provider_delete tool and distinguishes it from sibling tools like billing_provider_create or billing_provider_update by its action. However, it does not elaborate on what a 'billing provider' is, which is minimal but not 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 when not to delete a billing provider or what conditions must hold. No mention of prerequisites, consequences, or the relationship to other billing operations. The name implies the purpose, but the description does not provide explicit usage context or differentiate among the many delete tools in the sibling set.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
billing_provider_getA
Get a billing provider by UUID
| Name | Required | Description | Default |
|---|---|---|---|
| uuid | Yes | Provider UUID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states a read operation ('Get'), which implies no side effects, but does not disclose details like whether the provider is returned in full or partial, any error behavior (e.g., 404 if not found), or authentication requirements. It doesn't contradict annotations (none exist), but it adds minimal context beyond the verb.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, grammatically correct sentence with no unnecessary words. It is front-loaded with the action and resource. Perfectly concise for the tool's simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter read tool, the description is sufficient. The schema covers the parameter fullyaine, and there is no output schema to explain. The description notes the main action and identifier. It might be slightly more helpful to mention that the provider is returned entirely or that an error is thrown if not found, but these are minor gaps given the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema documents the 'uuid' parameter as 'Provider UUID'. The description adds no further meaning beyond what the schema provides, so baseline 3 is appropriate. It doesn't enrich the parameter with format, examples, or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('Get') and resource ('billing provider') with a specific identifier (UUID). It is distinct from siblings like billing_providers_list because it retrieves a single provider by UUID. However, it does not explicitly name the sibling for listing all providers, so it's clear but lacks explicit 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 implies usage: use when you need a specific provider by UUID. It does not provide explicit when-to-use vs. alternatives, such as 'use billing_providers_list to retrieve all providers'. While the context of sibling tools suggests the distinction, the description itself offers no guidance on alternatives 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.
billing_providers_listA
List all infrastructure billing providers
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description must carry the behavioral burden. It communicates a read-only enumeration operation and the 'all' scope, but it does not describe response format, pagination, access requirements, or potential costs. This is a modest gap for a parameterless list.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single six-word sentence with no filler, tautology, or redundant phrasing. The verb and resource are front-loaded, making the purpose immediately clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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, the description is enough to invoke it, but there is no output schema and no description of what the returned provider objects look like. An agent knows it will get 'all providers' but not the shape or structure of the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema is empty and schema description coverage is 100%, so there are no parameters requiring additional documentation. The zero-parameter 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 a specific verb ('List'), names a clear resource ('infrastructure billing providers'), and states the scope ('all'). It is distinct from the singular sibling `billing_provider_get`, which retrieves one provider.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 wording implies this tool is for enumerating all billing providers, but it does not explicitly mention alternatives or when not to use it. An agent must infer the contrast with `billing_provider_get` and related billing tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
billing_provider_updateC
Update a billing provider
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | New name | |
| uuid | Yes | Provider UUID | |
| description | No | New description |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description bears full responsibility for disclosing behavior. It only says 'Update', implying mutation, but provides no details on side effects, permission requirements, reversibility, or what happens to unmentioned fields. This is a significant gap for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words, but it is extremely minimal. It conveys the verb and resource but lacks any structural elaboration. It is not 'under-specified' to the point of a tautology, but it is barely 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 simple update tool with three parameters and no output schema, the description provides almost no context beyond the action word. It omits details about how the provider is identified (uuid is in schema), what fields can be updated (already in schema), and any behavioral notes. Given the lack of annotations, this is incomplete for safe 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?
Schema description coverage is 100%, so the input schema already documents all three parameters (name, description, uuid). The description adds no extra meaning beyond what the schema provides, but the schema does the heavy lifting, so a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the verb 'Update' and the resource 'billing provider', making the core action clear. It distinguishes from sibling read/delete/create tools by the verb, though it does not explicitly differentiate from other update tools like billing_node_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 guidance is given on when to use this tool versus alternatives such as billing_provider_create or billing_provider_delete. There is no mention of context, prerequisites, or conditions that would select this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
config_profiles_createC
Create a new config profile
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Profile name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only says 'Create a new config profile', which implies mutation but does not describe side effects, required permissions, return values, or any constraints. This is a minimal disclosure that leaves out critical behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise and front-loaded. However, it is extremely terse, bordering on under-specification. Every word earns its place, but the description could provide more useful information without sacrificing 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?
For a create operation with one required parameter and no output schema, the description lacks essential context such as what a config profile represents, whether the name must be unique, or what the response will look like. This is incomplete for an agent to understand the full 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 fully documents the single parameter 'name' with the description 'Profile name', providing 100% coverage. The tool description adds no additional meaning beyond the schema, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Create') and resource ('config profile'), which clearly identifies the action. It distinguishes from sibling actions like update and delete, but does not explicitly name alternatives or provide differentiation beyond the verb.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 such as config_profiles_update or config_profiles_delete. The context of creating a new profile is implicit, but there is no explicit mention of use cases, exclusions, or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
config_profiles_deleteC
Delete a config profile
| Name | Required | Description | Default |
|---|---|---|---|
| uuid | Yes | Profile UUID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must disclose behavioral traits. It merely states 'Delete', implying destructive action, but fails to mention irreversibility, side effects (e.g., impact on nodes or users using the profile), permission requirements, or cascading behavior. This is a significant gap for a destructive operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no waste. It is appropriately sized for a simple operation. However, it lacks any additional structure or emphasis on key points, though that's not a major issue given the 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?
For a destructive tool with a single parameter and no output schema, the description is incomplete. It omits behavioral context such as irreversibility, prerequisites, or consequences. An agent cannot fully gauge the risk or proper usage from the description alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers 100% of parameters with a description ('Profile UUID'), so the baseline is 3. The description adds nothing beyond the schema—it doesn't clarify the format, constraints, or how to obtain the UUID. With full schema coverage, a 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb and resource: 'Delete a config profile'. It distinguishes itself from siblings like config_profiles_list, config_profiles_get, config_profiles_create, etc., by naming the delete action, though it doesn't explicitly contrast itself. The purpose is unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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, nor any prerequisites or conditions. An agent receives no context about when deletion is appropriate or what to check before calling it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
config_profiles_getB
Get a config profile by UUID
| Name | Required | Description | Default |
|---|---|---|---|
| uuid | Yes | Config profile UUID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. 'Get' implies a read operation, but there is no mention of error behavior (e.g., UUID not found), return format, or any side effects. For a simple retrieval this is a minimal but incomplete disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, efficient sentence with zero wasted words. The key identifier (UUID) is front-loaded and the structure is clean for a simple retrieval 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 one-parameter get tool with no output schema and full schema coverage, the description is largely sufficient. The only gap is lack of return-format details, which is a minor omission for such a simple operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single uuid parameter is already documented in the schema. The description's 'by UUID' phrasing aligns with the parameter but adds no additional meaning beyond what the schema provides, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get a config profile by UUID'), which clearly indicates a retrieval operation. However, it doesn't explicitly distinguish itself from sibling get-variants like config_profiles_get_inbounds or config_profiles_get_computed_config, though the 'by UUID' qualifier helps narrow the 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?
No guidance on when to use this tool versus alternatives. There is no mention of config_profiles_list for enumeration, or the other get variants, and no context about when a single profile lookup is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
config_profiles_get_computed_configC
Get computed configuration for a config profile
| Name | Required | Description | Default |
|---|---|---|---|
| uuid | Yes | Config profile UUID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It does not state whether the configuration is computed on-the-fly, whether it reflects current node/inbound state, whether it can be expensive, or what the response shape is. 'Get' implies read-only, but the distinctive 'computed' behavior is left entirely unexplained.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single seven-word sentence with no waste; the verb and object are front-loaded. It is efficient, though its brevity borders on under-specification given that the key concept 'computed' goes undefined.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 tool with a fully documented schema, the baseline completeness requirement is low. However, there is no output schema and no annotations, and this description does not explain what the returned computed configuration contains, how it differs from the plain profile, or when it is meaningful. It is minimally adequate but leaves the central concept opaque.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% — the single required 'uuid' parameter is documented as 'Config profile UUID' in the schema. The description adds no parameter information, but the baseline of 3 applies because the schema already fully handles parameter semantics for this one-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 clear verb ('Get'), resource ('computed configuration'), and target ('config profile'), so an agent knows what the tool does at a glance. It is distinguishable from siblings config_profiles_get and config_profiles_get_inbounds by the 'computed' qualifier, but the description never explains what 'computed' means, leaving some of the differentiation to the tool name itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus the closely related config_profiles_get, config_profiles_get_inbounds, or config_profiles_list. There are no exclusions, prerequisites, or hints about the scenario where a 'computed' configuration is needed, so an agent must infer the selection logic entirely from naming.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
config_profiles_get_inboundsC
Get inbounds for a specific config profile
| Name | Required | Description | Default |
|---|---|---|---|
| uuid | Yes | Config profile UUID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only says 'Get inbounds' with no mention of read-only nature, permissions, side effects, or what constitutes 'inbounds'. This is a significant gap for a tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single succinct sentence with no fluff. The action is front-loaded and the tool is simple, so the 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 description does not clarify what 'inbounds' refers to in this context, what the output looks like, or any dependencies. With no output schema, it should at least hint at the return value. The lack of context makes it incomplete for an agent trying to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with the uuid parameter described as 'Config profile UUID'. The description adds no additional semantics beyond what the schema provides, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Get) and resource (inbounds for a specific config profile). It is clear and distinct from config_profiles_get (which likely returns the profile itself) and inbounds_list (which returns all inbounds). However, it does not explicitly name or differentiate these 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 on when to use this tool versus alternatives like config_profiles_get or inbounds_list. The description doesn't mention any conditions, prerequisites, or exclusion criteria, leaving an agent to guess which getter to call.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
config_profiles_listB
List all config profiles
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states it's a list operation, implying read-only behavior, but doesn't specify whether it returns all profiles, supports pagination, requires authentication, or has rate limits. For a tool with zero annotation coverage, this leaves significant gaps in understanding its 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 a single, efficient sentence ('List all config profiles') that is front-loaded and wastes no words. It directly communicates the core purpose without unnecessary elaboration, making it easy 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 lack of annotations and output schema, the description is incomplete. It doesn't explain what 'config profiles' are, what the return format looks like, or any behavioral traits like authentication needs. For a tool in this context with no structured support, the description should provide more context to be fully helpful.
Complex tools with many parameters or behaviors need more documentation. 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 parameters with 100% coverage, meaning no parameters are documented in the schema. The description doesn't add parameter details, which is appropriate since there are none. It accurately reflects the lack of parameters by not mentioning any, earning a high baseline score for tools with zero parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('List') and resource ('config profiles'), making the purpose immediately understandable. It distinguishes itself from siblings like 'hosts_list' or 'users_list' by specifying 'config profiles' as the target resource. However, it lacks specificity about what 'config profiles' are in this context, which prevents a perfect 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. It doesn't mention prerequisites, context (e.g., after authentication), or comparisons to similar list operations like 'hosts_list' or 'users_list'. Without any usage context, the agent must infer when this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
config_profiles_reorderB
Reorder config profiles by providing each profile UUID with its new position
| Name | Required | Description | Default |
|---|---|---|---|
| items | Yes | Array of config profiles with their new positions |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It fails to mention that this is a mutating operation that overwrites ordering, whether partial arrays are allowed or all profiles must be included, or any side effects. The agent is left to infer these traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no filler, and the core action is front-loaded. It is appropriately sized for the tool's simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema and no behavioral context. The description does not explain the effect on existing positions, whether the operation is atomic, what the response looks like, or if there are constraints like requiring all profiles. This is insufficient for a mutation tool with nested parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% because both uuid and viewPosition have descriptions. The description merely restates the parameter intent ('new position') without adding any extra semantic detail such as uniqueness constraints, array length requirements, or ordering guarantees, so it adds no 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 clearly states the specific action (reorder) and resource (config profiles), plus the method (by supplying UUIDs with new positions). This distinguishes it from other config_profiles_* tools and from reorder tools for other entities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or alternative guidance is provided. The tool name strongly implies it is for reordering config profiles, but the description does not state when to prefer this over related operations like config_profiles_update, nor does it mention any exclusions or preconditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
config_profiles_updateC
Update a config profile
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | New name | |
| uuid | Yes | Profile UUID | |
| config | No | Full Xray config object |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility for behavioral disclosure, but it only says 'Update a config profile.' It does not state whether the update is partial or full replacement, how the optional 'config' field is handled, what side effects may occur, or whether changes are reversible.
Agents need to know what a tool does to the 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, but it is under-specified rather than appropriately concise; it essentially restates the tool name. A short phrase carrying no additional operational detail is closer to under-specification than to good 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?
There is no output schema and no annotations, so the description should clarify update semantics, prerequisites, return behavior, and side effects. None of that context is present. The schema covers parameters but not the behavioral context needed to invoke the tool confidently and safely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter already documented ('New name', 'Profile UUID', 'Full Xray config object'). The description adds no parameter-level meaning beyond what the schema already provides, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: 'Update a config profile.' This distinguishes it from sibling operations such as config_profiles_create, config_profiles_delete, config_profiles_list, and config_profiles_get. However, it is still generic and does not mention the updatable aspects (name, config object) beyond what the schema already provides.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 config_profiles_create, config_profiles_delete, or config_profiles_reorder, and no mention of prerequisites such as the profile needing to exist. Usage is only implied by the word 'Update'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
connections_dropA
Drop active connections by user IDs or IP addresses on all or specific nodes (async, 202)
| Name | Required | Description | Default |
|---|---|---|---|
| userIds | No | Drop connections of these user numeric IDs | |
| nodeUuids | No | Limit to these node UUIDs (omit = all connected nodes) | |
| ipAddresses | No | Drop connections from these IP addresses |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that the operation is asynchronous and returns HTTP 202, which adds useful context. However, it does not mention the destructive nature (dropping active connections can disrupt users), any required permissions, whether the action is reversible, or what happens to subsequently reconnecting users. For a potentially disruptive mutation, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence that includes the action, targets, scope, and async behavior with '202'. Every piece adds information, and 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?
With no output schema and no annotations, the description covers the basic operation, but ambiguity remains about whether userIds and ipAddresses are combined or exclusive, and whether at least one is required. The async/202 note is present, but for a destructive tool it could mention that this is a forceful action with potential user impact. Overall, it is adequate but missing a few edge-case specifics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all three parameters (userIds, nodeUuids, ipAddresses) already have descriptions. The tool description does not add additional semantics beyond the schema, such as the relationship between userIds and ipAddresses (AND/OR), or that at least one must be provided. The baseline of 3 is appropriate since the schema handles the parameter meanings and the description adds marginal 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 a clear verb ('Drop'), a specific resource ('active connections'), and the two criteria (user IDs or IP addresses) plus scope (all or specific nodes). It distinguishes itself from sibling fetch and geocheck tools, so an agent can immediately tell this is a termination action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies its use case (when you need to force-disconnect users) but does not explicitly mention alternatives or conditions for when not to use it. The sibling list contains fetch and result-retrieval tools, which are clearly different from 'drop', but the description itself does not guide the agent in choosing between them or warn about destructive consequences.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
connections_fetch_by_nodeA
Fetch connections for all users on a node (async job, returns jobId)
| Name | Required | Description | Default |
|---|---|---|---|
| nodeUuid | Yes | Node UUID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses two important behavioral traits: this is an asynchronous job and it returns a jobId. This goes beyond the tool name and schema, giving agents the essential operational context, even though it does not mention polling or result retrieval.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, compact sentence that front-loads the action and scope, while appending the critical async/jobId detail. No wasted 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?
Given the async complexity, the description adequately communicates the start of an async job and its jobId return. It does not explicitly instruct on polling or where to retrieve results, but sibling tool names like connections_get_node_result make the follow-up discoverable. This is reasonably complete for a fetch tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single parameter nodeUuid, so the schema already fully documents the parameter. The description merely restates the concept of 'node' without adding format, constraints, or additional meaning beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly specifies the verb 'Fetch' and the resource 'connections for all users on a node', which distinguishes it from the sibling 'connections_fetch_by_user'. The async behavior and return of jobId are also stated, leaving no ambiguity about 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?
The description implies when to use it ('for all users on a node') and hints at async behavior, but it does not explicitly name alternatives or contrast with tools like connections_fetch_by_user or connections_get_node_result. Usage context is clear but no exclusions or when-not-to-use guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
connections_fetch_by_userA
Fetch active connections for a user (async job, returns jobId)
| Name | Required | Description | Default |
|---|---|---|---|
| userId | Yes | User numeric ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral disclosure burden. It does disclose the key asynchronous behavior and the jobId return, which goes beyond the schema. It omits details about how to retrieve the result, the lifetime of the job, or failure behavior, leaving an noticeable gap for an async job tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that front-loads the core action and resource, then tucks the essential async/jobId caveat into a parenthetical. Every word earns its place and there is no redundancy 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 a one-parameter, no-output-schema tool, the description tells the agent the essential behavior: start an async job and receive a jobId. The sibling connections_get_user_result and the visible naming convention make the polling step reasonably discoverable, though explicitly referencing it would make the description 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 single parameter userId is fully documented in the schema as 'User numeric ID', giving 100% schema coverage. The description adds no additional parameter-level meaning, but none is needed at this level of coverage; the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the action (fetch) and resource (active connections for a user), and the parenthetical adds an important qualifier that it is an async job returning a jobId. It is distinguishable from sibling tools by the by_user naming and the explicit async behavior, though it does not explicitly contrast with connections_fetch_by_node or connections_get_user_result.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'async job, returns jobId' implicitly tells the agent that this tool initiates a polling workflow rather than immediately returning connection data. However, it does not explicitly state that connections_get_user_result should be called afterward, nor does it mention any exclusions or alternative selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
connections_geocheckB
Run a geolocation check from a node (async job; requires node 3.3.0+)
| Name | Required | Description | Default |
|---|---|---|---|
| ip | No | IP address to check (defaults to the node outbound IP) | |
| nodeUuid | Yes | Node UUID to run the check from | |
| interface | No | Network interface to use |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears the full burden. It discloses the async nature ('async job') and a version constraint ('requires node 3.3.0+'), which is useful. However, it does not explain what happens on failure, how results are obtained, or the response structure. Lacks critical behavioral details for an async 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 a single, compact sentence that front-loads the core action. It avoids redundancy and is efficient, though it omits useful context like result retrieval.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 output schema and async behavior, the description should mention how to obtain results (e.g., via connections_get_geocheck_result) and any prerequisites. The version note is helpful, but the missing relationship to result retrieval leaves a gap for agent execution.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all parameters already have descriptions. The tool description adds no extra parameter semantics, which aligns with the baseline of 3 when the schema handles 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 clearly states the action ('Run a geolocation check') and the resource ('from a node'), which is specific and distinguishes it from fetching results. However, it does not explicitly differentiate from sibling tools like connections_get_geocheck_result, though 'async job' hints at the separation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 notes the async nature and the version requirement, which gives context on when to use it. It does not explicitly mention alternatives or when not to use it, such as referencing connections_get_geocheck_result for retrieving results. The guidance is implied but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
connections_get_geocheck_resultB
Get result of a geocheck job
| Name | Required | Description | Default |
|---|---|---|---|
| jobId | Yes | Job ID from connections_geocheck |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It does not state that this is a read-only operation, what the result looks like, or whether it is idempotent. The description is too terse to convey any behavioral traits beyond the literal 'get'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no wasted words. It is front-loaded with the action and resource, making it easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 simplicity (one parameter, no output schema), the description is minimal but leaves gaps. It does not explain the workflow (e.g., that this retrieves results after starting a geocheck), nor does it describe the return format, which the agent needs to know since there is no 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 schema description coverage is 100%, and the parameter jobId is adequately described as 'Job ID from connections_geocheck'. The tool description adds no additional semantic information beyond the schema, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get result') and the resource ('a geocheck job'), which distinguishes it from the sibling connections_geocheck (which starts a job). However, it does not explain what 'geocheck' means, leaving some ambiguity for agents unfamiliar with the domain.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 it should be called after connections_geocheck, nor does it clarify differences from connections_get_user_result or connections_get_node_result.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
connections_get_node_resultC
Get result of a node connections fetch job
| Name | Required | Description | Default |
|---|---|---|---|
| jobId | Yes | Job ID from connections_fetch_by_node |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure, but it only states that a result is fetched. It does not mention whether the job may still be running, whether the result is polled or one-shot, what happens if the job is missing/expired, or what the returned payload looks like.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler or repetition. It conveys the core action and resource efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a job-result retrieval tool with no annotations and no output schema, the description is too sparse. It does not explain how to obtain a job ID, how to interpret the result, whether retries are needed, or how this fits with the connections_fetch_by_node 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?
Schema description coverage is 100%: the single parameter jobId is already documented as 'Job ID from connections_fetch_by_node'. The tool description adds no additional parameter meaning, so it is correctly at the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Get') and resource ('result of a node connections fetch job'), and the word 'node' distinguishes it from the analogous user-result tool. It could be slightly stronger by explicitly naming the companion fetch tool, but the intent is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no explicit guidance on when to call this tool versus alternatives like connections_get_user_result, nor does it state that it should be used after connections_fetch_by_node. The only contextual hint is indirect, via the jobId parameter description in the schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
connections_get_user_resultC
Get result of a user connections fetch job
| Name | Required | Description | Default |
|---|---|---|---|
| jobId | Yes | Job ID from connections_fetch_by_user |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only says 'Get result' which implies a read operation, but it does not mention whether the job may still be running, whether the tool blocks or errors on incomplete jobs, or any side effects. This is insufficient for an agent to understand the tool's runtime 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 a single concise sentence with no redundant words, which is efficient. It does not waste space, though it is minimal to the point of lacking necessary context. It is appropriately short for a simple tool, but could be more informative 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?
Given the tool is a 'get result' operation likely tied to an asynchronous fetch job, the description omits crucial context such as how to check if the job is complete, what happens if the jobId is invalid, and the expected format of the result. With no output schema and no annotations, the description is too sparse to fully guide an agent in 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 already documents the parameter 'jobId' with a description, and coverage is 100%. The tool description does not add any extra meaning beyond the schema, so it aligns with the baseline score of 3 for cases where schema coverage is high and the description adds no additional insight.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get result') and a specific resource ('user connections fetch job'), making it clear what operation is performed. However, it does not explicitly differentiate from the sibling tool connections_get_node_result, which is analogous for node jobs, so it is not fully distinguishable without relying on the name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit guidance on when to use this tool or how it relates to connections_fetch_by_user. While the parameter schema hints that a jobId comes from connections_fetch_by_user, there is no statement about polling, waiting for completion, or alternatives like connections_get_node_result. This leaves the usage context largely implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
external_squads_add_all_usersB
Add ALL users to an external squad (async 202)
| Name | Required | Description | Default |
|---|---|---|---|
| squadUuid | Yes | Squad UUID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It does reveal that the operation is asynchronous via '(async 202)', which is useful, but it does not explain what this means for the caller (e.g., no immediate result, need for polling), nor does it mention side effects, reversibility, or permission requirements. For a mutation tool, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. The key scope ('ALL users') and the notable async behavior are both included, making it appropriately concise for a one-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?
The tool is a mutating operation with no annotations, no output schema, and an async result, yet the description only states the action and the HTTP status code. It does not explain what the caller should expect after the 202 response, whether users are added immediately or eventually, or how failures surface. This is incomplete for safe invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the single parameter squadUuid is already documented as 'Squad UUID'. The description adds no parameter-level meaning beyond this, but it also does not need to because the schema fully covers the only parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Add'), a precise scope ('ALL users'), and a distinct resource ('external squad'), immediately distinguishing this from squads_add_all_users and targeted add operations. It is more informative than the tool name alone and clearly specifies what the operation 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?
There is no guidance about when to choose this tool over alternatives or when not to use it. It does not mention that non-all user additions require a different tool, nor distinguish this from squads_add_all_users. The behavior is implied but not explicitly framed relative to sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
external_squads_createB
Create a new external squad
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Squad name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden of behavioral disclosure. 'Create' implies a state change, but the description does not disclose uniqueness constraints, idempotency, permissions, or side effects, and there is no output schema to indicate what is returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler or redundancy. Every word earns its place given the simple one-parameter 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-field create operation, the description is nearly sufficient, but the lack of annotations and output schema leaves the agent without behavioral or return-value context. It does not say whether creation requires special permissions or what happens if the name already exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: the only parameter, name, is documented as 'Squad name'. The description adds no additional meaning beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Create') and a specific resource ('external squad'), matching the tool name and distinguishing it from sibling tools like external_squads_list, external_squads_update, and squads_create. There is no ambiguity about what operation is performed.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 choose this tool over external_squads_update or squads_create; the description only repeats the creation intent. The sibling list is the only signal, and it is left to the agent to infer the differences.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
external_squads_deleteB
Delete an external squad
| Name | Required | Description | Default |
|---|---|---|---|
| uuid | Yes | Squad UUID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description alone must disclose the destructive nature of this operationichel including irreversibility, cascading effects on users, or permission requirements. The description only says 'Delete an external squad' with no elaboration, which is inadequate for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single minimal sentence with no wasted words, and it is appropriately sized for a simple delete operation. While it adds little beyond the tool name, it is well-structured and 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 delete tool with no annotations and no output schema, the description lacks essential context such as return behavior, error conditions, or destructive consequences. It is too sparse to fully inform an agent about the operation's implications.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the only parameter 'uuid' is described as 'Squad UUID'. The description adds no extra meaning beyond the schema, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action ('Delete') and a specific resource ('external squad'), which distinguishes it from similar sibling tools like 'squads_delete' by the 'external' qualifier. It fully answers what the tool does in a straightforward way.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 'squads_delete' or 'external_squads_get'. The description does not offer context, prerequisites, or typical use cases, so the agent has to infer when deletion is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
external_squads_getC
Get an external squad by UUID
| Name | Required | Description | Default |
|---|---|---|---|
| uuid | Yes | Squad UUID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It reveals nothing about response format, error behavior, authentication requirements, or what distinguishes an external squad. The minimal text offers no behavioral context beyond the operation name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single concise sentence with the action front-loaded and no filler. Efficient, though it errs slightly toward under-specification rather than genuine conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter get operation with a fully documented parameter, this is roughly adequate. However, with no output schema and no behavioral notes, an agent is left without information about what the return value looks like or edge-case behavior. Minor but real gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single uuid parameter, whose schema description ('Squad UUID') already conveys its meaning. The description restates the same concept without adding format, scope, or context beyond what the schema provides. Baseline 3 applies since the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get'), a specific resource ('external squad'), and the lookup key ('by UUID'). It is distinguishable from siblings like external_squads_list, external_squads_create, and the non-external squads_get, though it does not explicitly differentiate from 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?
No guidance on when to use this tool versus alternatives. Sibling external_squads_list and the regular squads_get both exist, and nothing in the description tells the agent why to prefer this one or what distinguishes an 'external' squad. No exclusions or when-not-to-use are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
external_squads_listB
List all external squads
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full behavioral burden. It does indicate this is a read-only listing operation, but it does not disclose anything about pagination, ordering, response shape, or whether all fields are returned. This is minimally 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 a single, front-loaded sentence with zero filler. Every word earns its place for a simple list operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter list tool, the description is mostly sufficient, but with no output schema and no annotations, it leaves unstated what the returned list contains and whether results are limited or complete. This is a minor but real gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the schema is trivially complete. The description does not need to explain parameter semantics, and 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 a specific verb and resource: 'List all external squads'. It clearly distinguishes this from the sibling `squads_list` by using the 'external' qualifier, though it does not explicitly name or contrast any sibling tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus alternatives such as `squads_list` or `external_squads_get`. The usage context is only implied by the verb 'list', with no exclusions, prerequisites, or alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
external_squads_remove_all_usersA
Remove ALL users from an external squad (async 202)
| Name | Required | Description | Default |
|---|---|---|---|
| squadUuid | Yes | Squad UUID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It usefully discloses the async behavior ('async 202') and the full destructive scope ('ALL users'), but it does not state reversibility, permission requirements, or downstream impact of emptying the squad.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One compact sentence with the key scope qualifier and async behavior front-loaded. No redundant words 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 a one-required-parameter, no-output-schema tool, the description is nearly sufficient: it identifies the resource, the destructive scope, and the async nature. It would be more complete with a short caution or alternative pointer, but nothing essential to invoking it 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 single parameter squadUuid is fully covered by the schema ('Squad UUID'), so the description does not need to explain it. The description's 'external squad' wording adds slight context by clarifying which type of squad UUID is expected.
Input schemas describe structure but not intent. Descriptions should explain 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 an unambiguous action ('Remove ALL users') on a specific resource ('external squad') and flags async 202 behavior. The scope word 'ALL' separates it from partial-removal variants, and 'external squad' differentiates it from squads_remove_all_users.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description gives the operation but no explicit when/when-not guidance or named alternatives. An agent must infer from the name/siblings (e.g., external_squads_add_all_users, squads_remove_all_users) when this is the right tool, so guidance is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
external_squads_reorderC
Reorder external squads
| Name | Required | Description | Default |
|---|---|---|---|
| uuids | Yes | Ordered array of squad UUIDs |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It simply states 'Reorder external squads' without explaining whether the provided UUID array replaces the entire order, what happens to omitted squads, or whether any validation occurs. This is a mutation operation, yet the description gives no clues about side effects or constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While the description is extremely concise with no fluff, it is under-specified. A one-phrase description like this is not just concise but lacking in necessary detail, similar to a placeholder. It does not front-load critical information beyond the basic action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 tool, the description is still incomplete. It does not explain the concept of 'external squads', the semantics of the ordering, or any expected outcomes. Without an output schema or annotations, the minimal description leaves an agent with too many unknowns to confidently 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?
The input schema already provides a clear description for the single parameter: 'Ordered array of squad UUIDs' with 100% coverage. The tool description adds no additional meaning beyond that, so it aligns with the baseline of 3 for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Reorder') and a specific resource ('external squads'), which distinguishes it from sibling reorder tools like squads_reorder, nodes_reorder, and hosts_reorder. However, it does not clarify what 'external squads' are or what the reordering affects (e.g., display order, priority), so some 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?
There is no guidance on when to use this tool versus alternatives such as squads_reorder or other reorder tools. The description provides no context about scenarios that would call for reordering external squads specifically, 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.
external_squads_updateC
Update an external squad
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | New squad name | |
| uuid | Yes | Squad UUID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, but it only repeats the update action. It does not disclose whether the update is partial or full, what happens if the UUID does not exist, what permissions are needed, or what the response will be. This is minimal for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, short sentence with no wasted words. However, it is so underspecified that it reads more like a restatement of the tool name than a substantive explanation, so the conciseness does not contribute much 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?
The tool has no annotations, no output schema, and a two-parameter schema. The description does not explain external squad semantics, update behavior, error conditions, or why an agent should choose this over squads_update. The agent has enough to invoke the call only if it already knows the domain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with 'name' described as 'New squad name' and 'uuid' as 'Squad UUID'. The description itself adds no parameter meaning, but the schema is sufficient, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a clear verb and resource: 'Update an external squad'. The 'external' qualifier distinguishes it from squads_update, and the verb separates it from external_squads_create/delete/list/get. However, it gives no specific detail about what an update entails beyond the general action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as squads_update or external_squads_create/delete. No context, prerequisites, or exclusions are provided, so the agent must infer usage entirely from the name and schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hosts_bulk_deleteA
Bulk delete selected hosts
| Name | Required | Description | Default |
|---|---|---|---|
| uuids | Yes | Array of host UUIDs |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It conveys that the operation is destructive, but it does not disclose irreversibility, cascade effects, or what happens to associated resources or data beyond the literal 'delete'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a clean five-word phrase with no filler: verb first, then resource, then scope. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter operation with full schema coverage, the description is minimally adequate. However, with no annotations and no output schema, the destructive side effects and result behavior remain implicit rather than 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 100%, with the single parameter documented as 'Array of host UUIDs'. The description itself adds no parameter-level meaning beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('delete') and resource ('hosts'), and the word 'bulk' clearly distinguishes it from the sibling hosts_delete. An agent can tell what this tool does without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit 'use when' or 'instead of' guidance. The word 'bulk' implies this tool is for deleting multiple hosts versus hosts_delete, but no conditions, 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.
hosts_bulk_disableC
Bulk disable selected hosts
| Name | Required | Description | Default |
|---|---|---|---|
| uuids | Yes | Array of host UUIDs |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It says hosts are disabled but does not disclose reversibility, whether the change takes effect immediately, partial-failure behavior, or permission requirements. 'Bulk disable' describes the action but not its 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 one short sentence with no filler or repetition, and the key action is front-loaded. It is appropriately compact for a simple one-parameter tool, though the brevity borders on under-specification in other dimensions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter mutation with complete schema coverage, the description is minimally adequate to invoke: pass uuids of hosts to disable. However, with no annotations and no output schema, it lacks information about return values, reversibility, and operational effects, leaving clear gaps that prevent a higher score.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%; the only parameter, 'uuids', is already described as 'Array of host UUIDs'. The description's phrase 'selected hosts' is a light paraphrase of uuids and adds no new semantics like format, constraints, or edge cases. With the schema doing the heavy lifting, baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('disable') and resource ('hosts'), and 'bulk' signals it operates on multiple selected records rather than a single host. It is distinguishable from sibling hosts_bulk_enable and hosts_bulk_delete by the operation word, though it does not explicitly call them out. Some detail about what 'disable' actually changes is omitted, so 4 rather than 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to choose this over hosts_bulk_enable, hosts_bulk_delete, hosts_bulk_update, or hosts_update. The only signal is the verb and 'bulk', which implies use for multi-host disable but gives no exclusions, alternatives, or prerequisites. This is effectively no guidance beyond the operation name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hosts_bulk_enableC
Bulk enable selected hosts
| Name | Required | Description | Default |
|---|---|---|---|
| uuids | Yes | Array of host UUIDs |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description says 'Bulk enable selected hosts' but does not disclose any behavioral traits such as side effects, reversibility, idempotency, or whether it requires hosts to be disabled first. With no annotations, the description carries the full burden, and it fails to provide meaningful behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused phrase with zero wasted words. It is front-loaded with the action and resource, and no filler or redundant content exists.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description is too sparse. It does not explain return values, error conditions, side effects, or how bulk enable relates to other host operations. The agent is left to infer critical context needed 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 already documents the only parameter ('uuids' as an array of host UUIDs) with 100% coverage. The description does not add any additional meaning about the parameter beyond what the schema provides, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear action ('enable') on a specific resource ('hosts') and indicates bulk operation via 'Bulk', which distinguishes it from sibling tools like hosts_bulk_disable and hosts_delete. It lacks detail about what 'enable' means in this context, but the core purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as hosts_bulk_disable or hosts_update. The description only states what it does, with no mention of prerequisites, exclusivity, or conditions under which another tool would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hosts_bulk_updateB
Bulk update fields on selected hosts (replaces the removed set-inbound / set-port endpoints)
| Name | Required | Description | Default |
|---|---|---|---|
| sni | No | New SNI | |
| alpn | No | New ALPN | |
| host | No | New host header | |
| path | No | New URL path | |
| port | No | New port for all selected hosts | |
| tags | No | Array of tags (uppercase letters, numbers, underscores and colons only; max 36 chars each, up to 10 tags) | |
| uuids | Yes | Array of host UUIDs to update | |
| mapper | No | Outbound field operations per client format. Each op is {op:"copy",from,to} | {op:"set",value,to} | {op:"unset",to} | |
| isDisabled | No | Enable/disable selected hosts | |
| fingerprint | No | New TLS fingerprint (free-form) | |
| securityLayer | No | New security layer | |
| internalSquads | No | Which internal squads may see this host (replaces excludedInternalSquads) | |
| mihomoIpVersion | No | IP version used by Mihomo clients | |
| configProfileUuid | No | Config profile UUID (set together with configProfileInboundUuid to change inbound) | |
| configProfileInboundUuid | No | Inbound UUID (set together with configProfileUuid to change inbound) | |
| excludeFromSubscriptionTypes | No | Subscription types to exclude these hosts from |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden for behavioral disclosure. It states the tool updates fields but does not explain side effects, partial-failure behavior, whether unset fields remain unchanged, idempotency, required permissions, or the response format. The replacement-endpoint note adds some historical context but not operational 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?
One efficient sentence with zero filler. The core operation and the relevant removal context are front-loaded, and there is no redundant repetition of schema 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?
Despite a 16-parameter bulk mutation with nested objects and no output schema, the description provides only a single line. An agent lacks guidance on partial updates, constraints, result reporting, or failure modes. The rich schema partially compensates, but the overall tool context remains under-specified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents every parameter. The description adds no additional meaning about parameter usage, field interactions, or update semantics, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Bulk update'), resource ('hosts'), and scope ('selected hosts'), and adds useful context by noting it replaces the removed set-inbound / set-port endpoints. This clearly identifies what the tool does and differentiates it from single-host or enable/disable bulk variants.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 hosts_update, hosts_bulk_enable, hosts_bulk_disable, or hosts_bulk_delete. The only context is the replaced endpoint mention, which does not help an agent choose among current siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hosts_createB
Create a new host in Remnawave
| Name | Required | Description | Default |
|---|---|---|---|
| sni | No | SNI (Server Name Indication) | |
| alpn | No | ALPN protocol | |
| host | No | Host header | |
| path | No | URL path | |
| port | Yes | Host port | |
| tags | No | Array of tags (uppercase letters, numbers, underscores and colons only; max 36 chars each, up to 10 tags) | |
| nodes | No | Array of node UUIDs to assign | |
| mapper | No | Outbound field operations per client format. Each op is {op:"copy",from,to} | {op:"set",value,to} | {op:"unset",to} | |
| remark | Yes | Host remark/name | |
| address | Yes | Host address | |
| isDisabled | No | Create in disabled state | |
| fingerprint | No | TLS fingerprint (free-form, e.g. chrome, firefox, safari) | |
| securityLayer | No | Security layer | |
| internalSquads | No | Which internal squads may see this host (replaces excludedInternalSquads) | |
| mihomoIpVersion | No | IP version used by Mihomo clients | |
| configProfileUuid | Yes | Config profile UUID | |
| serverDescription | No | Server description | |
| pinnedPeerCertSha256 | No | Pin peer certificate by SHA-256 fingerprint | |
| verifyPeerCertByName | No | Verify peer certificate by name | |
| configProfileInboundUuid | Yes | Config profile inbound UUID | |
| excludeFromSubscriptionTypes | No | Subscription types to exclude this host from |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure, but it only says 'Create a new host' – which is self-evident. It does not mention persistence, side effects, required permissions, idempotency, or any consequences of the mutation. This is a significant gap for a creation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, compact sentence that directly states the tool's purpose. It is front-loaded with the action and resource, with no filler or repetition. It earns its place and is appropriately sized for a simple action statement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 rich schema, the description lacks high-level context about what a host is, what is required to create one, or what the agent should know about the implications of the action. With no output schema and no annotations, the description alone is insufficient to fully guide an agent toward a correct invocation, especially given the complex nested parameters and enums.
Complex tools with many parameters or behaviors need more documentation. 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 100% description coverage for all 21 parameters, so the baseline is 3. The description adds no parameter-level meaning beyond what the schema already provides, but it does not need to because the schema is thorough. It neither compensates nor detracts.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Create') and resource ('a new host in Remnawave'), clearly distinguishing this from sibling tools like hosts_update, hosts_delete, and hosts_list. The action is unmistakable and there is no ambiguity about what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. There is no mention of prerequisites, when hosts_create should be preferred over hosts_bulk_create or hosts_update, or what scenarios call for it. The description simply states the action without contextual direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hosts_deleteC
Delete a host from Remnawave
| Name | Required | Description | Default |
|---|---|---|---|
| uuid | Yes | Host UUID to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states 'Delete' which implies a destructive, irreversible mutation, but doesn't specify consequences (e.g., data loss, impact on associated resources), permissions required, error conditions, or response format. For a destructive operation with zero annotation coverage, this is inadequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, direct sentence with zero wasted words. It front-loads the key action ('Delete') and resource ('host'), making it immediately understandable. Every word earns its place, and there's no redundancy or 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?
Given the tool's complexity (a destructive deletion operation), lack of annotations, and no output schema, the description is insufficient. It doesn't cover behavioral aspects like irreversibility, side effects, or what happens on success/failure. For a tool that permanently removes resources, more context is needed to ensure safe and 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 input schema has 100% description coverage, with the single parameter 'uuid' documented as 'Host UUID to delete'. The description adds no additional parameter semantics beyond this. According to the rules, when schema coverage is high (>80%), the baseline score is 3 even with no param info in the description, which applies here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Delete') and resource ('a host from Remnawave'), making the purpose unambiguous. It distinguishes from siblings like hosts_get, hosts_list, and hosts_update by specifying deletion rather than retrieval or modification. However, it doesn't explicitly differentiate from other deletion tools like nodes_delete or users_delete, which slightly limits sibling 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?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing the host's UUID), exclusions (e.g., not for deleting nodes or users), or contextual cues (e.g., use after hosts_list to identify targets). With multiple deletion tools in the sibling list, this lack of differentiation 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.
hosts_getC
Get a specific host by UUID
| Name | Required | Description | Default |
|---|---|---|---|
| uuid | Yes | Host UUID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but offers minimal behavioral insight. It states it's a read operation ('Get'), but doesn't disclose error conditions (e.g., invalid UUID), authentication requirements, rate limits, or what data is returned. For a tool with zero annotation coverage, this leaves significant gaps in understanding its 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 a single, efficient sentence with zero wasted words. It front-loads the core purpose ('Get a specific host') and specifies the key identifier ('by UUID'), making it immediately actionable without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 lack of annotations and output schema, the description is insufficiently complete. It doesn't explain what a 'host' entails in this context, what data is returned, or potential side effects. For a tool that likely returns structured host data, more context is needed to guide effective 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?
The description mentions 'by UUID', aligning with the single parameter 'uuid' in the schema. Since schema description coverage is 100% (the parameter is fully documented as 'Host UUID'), the description adds no additional semantic value beyond what the schema provides, meeting the baseline for high 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 clearly states the action ('Get') and resource ('a specific host by UUID'), making the purpose immediately understandable. It distinguishes this from hosts_list (which retrieves multiple hosts) but doesn't explicitly differentiate from other 'get' operations like nodes_get or users_get, which follow the same pattern.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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. While the description implies it's for retrieving a single host by UUID, it doesn't mention prerequisites (e.g., needing a valid UUID), when not to use it (e.g., for listing hosts), or how it relates to siblings like hosts_list or hosts_update.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hosts_listB
List all Remnawave hosts
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. It states it's a list operation, implying read-only behavior, but doesn't specify whether it returns all hosts at once, uses pagination, requires authentication, has rate limits, or provides any metadata about the hosts. This leaves significant gaps for an agent to understand how to interact with it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, direct sentence that efficiently conveys the core purpose without any fluff. It's front-loaded and wastes no words, making it easy 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 lack of annotations and output schema, the description is incomplete. It doesn't explain what 'hosts' are in this context, what data is returned (e.g., host names, IDs, statuses), or any behavioral aspects like pagination or errors. For a list operation with no structured output documentation, more context is needed.
Complex tools with many parameters or behaviors need more documentation. 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 0 parameters, and the input schema has 100% description coverage (though empty). The description doesn't need to explain parameters, and it correctly implies no inputs are required. A baseline of 4 is appropriate since there are no parameters to document.
Input schemas describe structure but not intent. Descriptions should explain 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 ('List all') and the resource ('Remnawave hosts'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'hosts_get' (which presumably retrieves a single host) or 'nodes_list' (which lists a different resource type), so it falls short of a perfect 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. With siblings like 'hosts_get' (for single host details), 'nodes_list' (for different resources), and 'users_list' (for user listings), there's no indication of context, prerequisites, or comparative use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hosts_reorderB
Reorder hosts by providing each host UUID with its new position
| Name | Required | Description | Default |
|---|---|---|---|
| hosts | Yes | Array of hosts with their new positions |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. 'Reorder' implies mutation, but the description does not state whether the change is persistent, whether validation occurs, whether the operation is reversible, what the response looks like, or if partial orders are allowed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, direct sentence with no filler or redundancy. It front-loads the core action and the required input format, making it easy 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?
For a simple, one-parameter tool with a detailed schema, the description is minimally adequate. However, with no annotations and no output schema, it leaves out practical context such as return values, error behavior, or whether the operation is global or scoped, so it is 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?
Schema description coverage is 100%, and the schema already documents 'Host UUID' and 'New position (0-based)' clearly. The description restates this idea without adding extra meaning, so it meets the baseline but does not enrich 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 clearly states the action ('Reorder hosts') and the resource (hosts), with the specific mechanism of supplying UUIDs and new positions. It is unambiguous about what the tool does, though it does not explicitly contrast itself with nearby siblings like hosts_bulk_update or nodes_reorder.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 hosts_bulk_update or hosts_bulk_delete. There is no mention of prerequisites, whether all hosts must be supplied, or what scenarios call for reordering vs other bulk host operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hosts_tags_listA
List all host tags
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only states that it lists host tags, but provides no information about sorting, pagination, response format, or whether any side effects occur. Since this is a read operation, no destructive behavior is implied, but the description adds no depth beyond the action itself.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, succinct sentence with no redundant words. It effectively conveys the tool's purpose without fluff, achieving ideal 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 that the tool takes no parameters and has no annotations, the description is almost sufficient. The absence of an output schema is mitigated by the common convention that a 'list' operation returns an array. For a tool this simple, the description covers the essential information an agent needs to invoke it, though slightly more context about the nature of host tags could be helpful.
Complex tools with many parameters or behaviors need more documentation. 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 necessarily covers them (100% coverage). The description does not need to describe parameters, and the baseline for 0 parameters is 4. There is nothing to clarify, and the description correctly omits 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 'List all host tags' states a specific verb (list) and a specific resource (host tags), and the 'all' indicates full scope. It is distinct from sibling tools like nodes_tags_list and users_tags_list, and from the more generic tags_list. Despite not explicitly naming alternatives, the resource specificity 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 offers no guidance on when to use this tool versus alternatives like tags_list, nodes_tags_list, or users_tags_list. There is no mention of context, exclusions, or selection criteria. The agent must infer which tag-scoped list is appropriate based on the resource name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hosts_updateC
Update an existing host
| Name | Required | Description | Default |
|---|---|---|---|
| sni | No | New SNI | |
| alpn | No | New ALPN | |
| host | No | New host header | |
| path | No | New URL path | |
| port | No | New port | |
| tags | No | Array of tags (uppercase letters, numbers, underscores and colons only; max 36 chars each, up to 10 tags) | |
| uuid | Yes | Host UUID to update | |
| mapper | No | Outbound field operations per client format. Each op is {op:"copy",from,to} | {op:"set",value,to} | {op:"unset",to} | |
| remark | No | New remark/name | |
| address | No | New address | |
| isDisabled | No | Enable/disable host | |
| fingerprint | No | New TLS fingerprint (free-form) | |
| securityLayer | No | New security layer | |
| internalSquads | No | Which internal squads may see this host (replaces excludedInternalSquads) | |
| mihomoIpVersion | No | IP version used by Mihomo clients | |
| serverDescription | No | New server description | |
| pinnedPeerCertSha256 | No | Pin peer certificate by SHA-256 fingerprint | |
| verifyPeerCertByName | No | Verify peer certificate by name | |
| excludeFromSubscriptionTypes | No | Subscription types to exclude this host from |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. 'Update an existing host' only implies a mutation; it does not clarify partial-update semantics (whether unspecified fields are preserved), idempotency, permission requirements, or the result of updating a non-existent host. For a 19-parameter mutation tool, this is a significant transparency gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise, a single 5-word sentence with no fluff. However, it is arguably too terse for a tool of this complexity — conciseness is good, but the description essentially repeats the tool name 'hosts_update' rather than adding meaningful structured 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 19 parameters, nested objects, no output schema, and no annotations, this is a high-complexity tool that a one-sentence description is completely inadequate for. The agent cannot determine update semantics, error behavior, or how nested fields like mapper and internalSquads interact with existing values, though the presence of hosts_get sibling could help partially compensate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema richly documents all 19 parameters including enums, nullability, and nested structures for mapper and internalSquads. The description adds no parameter-level meaning, but per the rubric the baseline 3 applies when the schema carries the weight; the description's lack of param hints is not penalized further.
Input schemas describe structure but not intent. Descriptions should explain 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 an existing host') and is well-differentiated from siblings like hosts_create, hosts_delete, and hosts_get by the focus on updating an existing entity. However, it does not explicitly distinguish itself from hosts_bulk_update, leaving the agent to infer that this is the single-host variant.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as hosts_bulk_update or hosts_create, and it does not mention any prerequisites (e.g., the host must already exist, UUID must be valid). There is no exclusions or alternative routing, so the agent receives zero usage context beyond the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hwid_device_createB
Create a HWID device entry for a user
| Name | Required | Description | Default |
|---|---|---|---|
| hwid | Yes | Hardware ID | |
| userId | Yes | User numeric ID | |
| platform | No | Device platform | |
| osVersion | No | OS version | |
| userAgent | No | User agent | |
| deviceModel | No | Device model |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must carry the full burden of behavioral disclosure. It only states that the tool creates an entry, with no mention of side effects, permissions, idempotency, uniqueness behavior, or whether the user must already exist.
Agents need to know what a tool does to the 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 one short, front-loaded sentence with no filler or redundant 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?
The tool is a mutation with no annotations and no output schema, yet the description does not mention expected return value, failure modes, or any behavioral caveats. The schema covers parameters, but contextual information needed for safe invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline applies. The description adds no parameter-level meaning beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific action (Create), a specific resource (HWID device entry), and the target (a user). This clearly distinguishes it from sibling tools like hwid_device_delete and hwid_devices_list_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?
The description gives no guidance on when to use this tool versus alternatives, nor does it state prerequisites or exclusions. It implies the obvious 'use to create a HWID entry' but provides no decision-making context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hwid_device_deleteB
Delete a specific HWID device (identified by user ID + hardware ID)
| Name | Required | Description | Default |
|---|---|---|---|
| hwid | Yes | Hardware ID to delete | |
| userId | Yes | User numeric ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must disclose behavior on its own. It clearly marks the destructive action 'Delete' and the composite identifier, but does not mention permanence, required permissions, error handling for nonexistent devices, or side effects. This leaves meaningful behavioral gaps for an agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, focused sentence that front-loads the action and the identifying key. No filler or redundant repetition, achieving an ideal size for this simple operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive operation with no annotations and no output schema, the description omits critical context: what the response looks like, whether the delete is irrevocable, and behavior when the device does not exist. While the two required parameters are clear, the operational consequences are left unknown for a tool that performs deletion.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already fully describes both parameters (100% coverage) with 'Hardware ID to delete' and 'User numeric ID'. The description adds the composite-key framing but no extra semantic detail beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Delete'), a clear resource ('HWID device'), and precisely defines the identifier as 'user ID + hardware ID'. It is immediately distinguishable from siblings like hwid_device_create and hwid_devices_delete_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?
The description offers no direct guidance on when to use this tool versus alternatives such as hwid_devices_delete_all. 'Specific' only implies single-device deletion; there is no explicit when-to-use, exclusions, or naming of related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hwid_devices_delete_allC
Delete all HWID devices for a user
| Name | Required | Description | Default |
|---|---|---|---|
| userId | Yes | User numeric ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full responsibility for behavioral disclosure. This is a destructive bulk operation, yet the description offers no warning about irreversibility, side effects, permission requirements, or what happens to related data. This is a serious omission.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no fluff, front-loading the core action. However, it is so terse that it omits crucial behavioral context, making it slightly under-specified for its 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 destructive bulk delete operation with no output schema and no annotations, this description is dangerously incomplete. It fails to mention irreversibility, potential errors, prerequisites, or any post-condition, leaving an agent without the information needed to safely invoke it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with only one parameter (userId) documented as 'User numeric ID'. The description adds no extra meaning beyond the schema, so it earns the baseline of 3 without further credit.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb+resource: 'Delete all HWID devices for a user.' It clearly distinguishes from the sibling 'hwid_device_delete' (singular) by using 'all', so an agent can tell them apart without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives like hwid_device_delete for individual devices. It does not mention any conditions, exclusions, or context that would help an agent decide between bulk and singular deletion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hwid_devices_listA
List HWID devices for a specific user
| Name | Required | Description | Default |
|---|---|---|---|
| userId | Yes | User numeric ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full behavioral burden. 'List' implies a read-only operation, but the description discloses nothing about pagination, output shape, ordering, or behavior for missing users. It adds no behavioral context beyond the operation name itself.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler, redundancy, or restating of the tool name. It is appropriately sized for a simple one-parameter list operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity single-parameter tool, the description states the essential scope, but it leaves gaps around return contents, pagination, and explicit differentiation from hwid_devices_list_all. With no output schema and no annotations, the description is minimally adequate rather than fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with userId documented as 'User numeric ID,' so the schema fully explains the only parameter. The description adds no parameter-level detail, but the baseline 3 is appropriate because the schema already covers the semantic weight.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb-resource pair ('List HWID devices') and the qualifier 'for a specific user,' which directly distinguishes it from the sibling hwid_devices_list_all. It clearly identifies both the resource and the scope of the 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?
The qualifier 'specific user' gives clear context for when to call this tool: when you need HWID devices scoped to one user. It does not explicitly name alternatives or state when not to use it, but the sibling hwid_devices_list_all strongly implies the complementary all-devices case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hwid_devices_list_allA
List all HWID devices across all users
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. 'List' makes the read-only nature clear and 'across all users' adds scope, but there is no mention of pagination, return shape, or any other noteworthy behavior. It is adequate but not richly transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. Every word adds meaning: 'List', 'all', 'HWID devices', and 'across all users' are all necessary and sufficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 operation, the description is nearly complete: it conveys the action, resource, and scope. The lack of an output schema is mitigated by the fact that a list operation's response type is generally inferable, though an explicit note on return format or pagination 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?
The tool has zero parameters and an empty input schema, so the description does not need to explain any parameter semantics. The baseline of 4 applies because nothing is left undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('List'), resource ('HWID devices'), and scope ('across all users'). The 'all' and 'across all users' language clearly distinguishes it from the sibling `hwid_devices_list`, so an agent can tell which list tool matches the need.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 scope 'across all users' implies when to use this tool, but it does not explicitly state when not to use it or point to alternatives such as `hwid_devices_list` for user-scoped listing. Usage is understandable but left mostly to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hwid_statsB
Get HWID device statistics
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations available, the description must carry the behavioral transparency burden, but it only says 'Get' which implies read-only. It doesn't disclose return format, data scope, performance implications, or any limitations, so it remains too thin for safety/cost assessment.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. It conveys the action and object in the minimum number of words, which is ideal 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?
The description is too sparse for the tool's context. With no output schema, no annotations, and a vague term like 'statistics', an agent cannot tell exactly what it returns or how it differs from similar HWID endpoints. Key missing context is not compensated anywhere else.
Complex tools with many parameters or behaviors need more documentation. 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 with zero parameters, so there is no parameter semantics to document. Per the calibration rule, a score of 4 is the baseline for a tool with no parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('Get') and a resource ('HWID device statistics'), which establishes the basic purpose. However, 'statistics' is ambiguous and doesn't differentiate this from closely related siblings like hwid_top_users or system_stats, so it stays 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 usage guidance is provided. The description doesn't mention when to choose this tool over hwid_devices_list_all, hwid_top_users, or other HWID/stats endpoints, and gives no context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hwid_top_usersA
Get users with most HWID devices
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only states the basic purpose but does not disclose whether results are sorted, limited, or include zero-device users, nor does it describe the return format. This is a minimal description that leaves important behavioral aspects unspecified.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no filler. It is front-loaded with the action and resource, and every word adds 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 zero-parameter tool with no output schema, the description provides the core purpose but omits details about ordering, limits, and the exact representation of 'users' in the response. It is minimally acceptable but could benefit from specifying that results are ranked by device count and whether a cap exists.
Complex tools with many parameters or behaviors need more documentation. 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% (vacuous). Per the baseline for 0 parameters, a score of 4 is appropriate; the description does not need to explain parameters that don't exist.
Input schemas describe structure but not intent. Descriptions should explain 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 (Get) and the resource (users), with a specific qualifier (with most HWID devices). It distinguishes itself from siblings like hwid_devices_list (which lists devices) and users_list (which lists all users) by focusing on ranking users by HWID device count.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 doesn't mention when to prefer this over hwid_stats or users_list, nor does it indicate any context or prerequisites. An agent has to infer the use case from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
inbounds_listB
List all inbounds from all config profiles
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. While 'List all inbounds' implies a read-only operation, it doesn't specify whether this requires authentication, has rate limits, returns paginated results, or what format the output takes. For a tool with zero annotation coverage, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste. It's front-loaded with the core action and resource, making it immediately understandable without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 annotations, no output schema, and a simple listing tool, the description is incomplete. It doesn't explain what 'inbounds' are in this context, what data is returned, or any behavioral aspects like authentication requirements or response format. More context is needed for effective 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?
With 0 parameters and 100% schema description coverage, the baseline is 4. The description doesn't need to explain parameters since there are none, and it correctly implies no inputs are required for this listing operation.
Input schemas describe structure but not intent. Descriptions should explain 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 ('List all inbounds') and the resource ('from all config profiles'), providing a specific verb+resource combination. However, it doesn't explicitly differentiate from sibling tools like 'config_profiles_list' or 'nodes_list' that might list related resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 doesn't mention prerequisites, exclusions, or compare it to sibling tools like 'config_profiles_list' or 'nodes_list' that might serve similar listing purposes in different contexts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
keygen_getB
Generate a new SECRET_KEY for node configuration
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the burden of behavioral disclosure. It describes a generation action but does not explain whether this overwrites an existing key, whether it has side effects on node configuration, or whether it is reversible. Without any info on state change or return behavior, the agent cannot anticipate consequences.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, succinct sentence that communicates the essential function without any extraneous words. It is appropriately sized for a zero-parameter tool and gets straight to what it does.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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, the description is mostly complete: the agent knows the action and the domain. However, because there is no output schema and no annotations, key operational details are missing, such as what the generated key looks like, whether it is persisted or returned, and whether existing keys are invalidated. This gap is modest but leaves some uncertainty.
Complex tools with many parameters or behaviors need more documentation. 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)Skip the schema is trivially 100% coveredadian. The description correctly implies that no input is needed to generate the key. Since there are no parameters, no further semantic clarification is required, and 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 uses a specific verb ('Generate') and names the resource ('SECRET_KEY for node configuration'). It clearly identifies the tool's purpose and distinguishes it from the sibling system_generate_x25519, which generates a different key type. It could be slightly clearer about what makes SECRET_KEY unique, but it is not a tautology.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 like system_generate_x25519 or other node configuration tools. It does not state prerequisites, conditions, or scenarios where this tool should be preferred. The use case is implied but not explicitly framed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
metadata_node_getB
Get metadata for a specific node
| Name | Required | Description | Default |
|---|---|---|---|
| uuid | Yes | Node UUID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden of behavioral disclosure. 'Get metadata' implies a read operation but does not state whether it is side-effect free, what the response shape is, or whether authentication or permissions are required. The description adds no insight beyond the literal action.
Agents need to know what a tool does to the 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 entire description is a single, focused sentence with no redundant words. It front-loads the action and resource, which is ideal for a one-parameter getter. No wasted space 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 a simple one-parameter getter, the description plus full schema coverage is minimally adequate. However, the absence of an output schema and any guidance on return format or distinguishing from sibling metadata tools means the agent is left with incomplete context. It works for a trivial call but could be more informative.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the uuid parameter described as 'Node UUID' in the schema itself. The description's 'specific node' phrasing aligns with this but adds no new semantic detail about the parameter. Baseline 3 is appropriate given the complete schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('Get') and resource ('metadata for a specific node'), making it distinct from sibling metadata_user_get and metadata_node_upsert. While it doesn't explicitly differentiate from nodes_get, the 'metadata' qualifier provides enough specificity for basic disambiguation. A higher score would require naming an alternative or clarifying scope boundaries.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 like nodes_get, metadata_user_get, or metadata_node_upsert. With a large sibling list containing many similar getters, the absence of any usage context leaves the agent to infer the appropriate selection. This is a clear gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
metadata_node_upsertB
Create or update metadata for a node
| Name | Required | Description | Default |
|---|---|---|---|
| uuid | Yes | Node UUID | |
| metadata | Yes | Metadata key-value pairs |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only says 'Create or update' and does not clarify whether metadata is merged or fully replaced, what happens to existing metadata, or how errors like an unknown UUID are handled.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with zero wasted words; the verb and target are front-loaded. It is appropriately sized for a straightforward upsert operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema and no annotations, so the description is the only context an agent gets. It omits merge/replace semantics, error behavior, and any note that this is a mutating operation on node metadata, leaving meaningful gaps for a tool this simple.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both uuid ('Node UUID') and metadata ('Metadata key-value pairs') already documented in the schema. The description adds no parameter meaning beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the precise verb ('Create or update') and resource ('metadata for a node'), which clearly differentiates it from siblings like metadata_user_upsert and metadata_node_get. The scope is unambiguous and immediately understandable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 such as metadata_user_upsert or metadata_node_get. It does not state any conditions, prerequisites, or exclusions (e.g., that the node must already exist).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
metadata_user_getC
Get metadata for a specific user
| Name | Required | Description | Default |
|---|---|---|---|
| userId | Yes | User numeric ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It merely states 'Get metadata' without confirming read-only behavior, potential side effects, authentication requirements, or return format. For a metadata-retrieval tool, this lack of detail is a notable gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that is front-loaded with the key action and resource. There is no wasted wording, making it appropriately concise for a trivial one-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 tool with no output schema and no annotations, the description is insufficiently complete. It does not clarify what 'metadata' encompasses, how it differs from full user retrieval (users_get), or what the response will contain. Given the large sibling set, an agent may not be able to confidently invoke this 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 input schema covers the sole parameter (userId) with a description ('User numeric ID'), so schema coverage is 100%. The tool description adds nothing beyond the schema, so it meets the baseline but does not enhance 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 a clear verb ('Get') and resource ('metadata for a specific user'), which conveys the core purpose. However, it does not differentiate from closely related siblings like users_get or metadata_node_get, leaving some ambiguity about what 'metadata' means in contrast to user profiles.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 such as users_get or metadata_user_upsert. There is no mention of use cases, exclusions, or conditions that would select this tool over its siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
metadata_user_upsertB
Create or update metadata for a user
| Name | Required | Description | Default |
|---|---|---|---|
| userId | Yes | User numeric ID | |
| metadata | Yes | Metadata key-value pairs |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the behavioral disclosure burden. It states the mutation intent but does not explain whether the metadata object is merged or fully replaced, whether existing keys are preserved, or what happens on conflicts. This is a significant gap for an upsert 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 a single concise sentence with no wasted words. It is front-loaded with the action, though it lacks some behavioral detail that would make it more useful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 two-parameter upsert, the description is minimally adequate. However, the absence of annotations, output schema, and merge/replace semantics leaves the agent uncertain about important execution behavior. More context is needed for fully confident 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 100%, so userId and metadata are already documented with descriptions. The description adds no additional parameter meaning beyond what the schema provides, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Create or update') and resource ('metadata for a user'). It clearly distinguishes from siblings like metadata_user_get (read vs write) and metadata_node_upsert (user vs node).
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 context is implied: an upsert for user metadata. However, it does not explicitly state when to choose this over alternatives, nor does it mention when not to use it. No read/update/delete routing guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
node_integrations_createC
Create a node integration
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Integration name | |
| config | Yes | Integration configuration object | |
| description | No | Integration description |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. The description only says 'Create a node integration' and does not disclose any behavioral traits such as side effects, idempotency, permissions, or what happens to existing configurations. There is no information about validation, conflicts, or post-creation behavior, leaving the agent without essential behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence: 'Create a node integration.' It contains no wasted words and immediately states the action and target. The structure is clean and appropriately brief for the information it conveys, even though the brevity contributes to completeness issues addressed elsewhere.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 annotations, no output schema, and a required nested config object that is undefined (additionalProperties: {}), the description is inadequate for successful invocation. It does not explain what a node integration is, what the config should contain, what the return value is, or any prerequisites. An agent cannot confidently call this tool correctly with the information provided, especially compared to sibling tools that have 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 schema description coverage is 100%, so the baseline is 3. The description itself adds no parameter information beyond the schema. The schema labels parameters as 'Integration name,' 'Integration configuration object,' and 'Integration description' – these are minimal, and the opaque config object (additionalProperties: {}) is not clarified in either the description or the schema, but since the coverage is high, the 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 clear action and resource: 'Create a node integration.' It uses a specific verb ('create') and a specific resource type, distinguishing it from sibling tools like node_integrations_list, node_integrations_get, node_integrations_update, and node_integrations_delete. The purpose is unambiguous, though it does not explain what a node integration 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?
The description gives no guidance on when to use this tool versus alternatives. It does not mention prerequisites, edge cases, or situations where another tool (e.g., node_integrations_update) would be more appropriate. The only implicit signal is the verb 'create,' but no explicit exclusions or contextual instructions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
node_integrations_deleteB
Delete a node integration
| Name | Required | Description | Default |
|---|---|---|---|
| uuid | Yes | Integration UUID to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the full burden of behavioral disclosure. It only says 'Delete a node integration' without indicating that the deletion is permanent, whether it cascades, what permissions are required, or what the response looks like. For a destructive operation, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It is appropriately concise for a simple delete tool, though it may be slightly too terse in omitting helpful context. Still, the structure is efficient and direct.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 delete tool with one parameter and no output schema, the description is minimal. It does not explain what happens on success or failure, any side effects, or whether the operation is reversible. Given the simplicity, more context about the destructive nature and consequences would be expected, but it 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 input schema fully documents the required 'uuid' parameter with a clear description ('Integration UUID to delete'), so schema coverage is 100%. The description does not add any parameter-specific meaning, but the baseline is 3 when the schema already handles it, and there is no gap to compensate for.
Input schemas describe structure but not intent. Descriptions should explain 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 (delete) and the resource (node integration), using a specific verb and object. It naturally distinguishes from sibling tools like node_integrations_create or node_integrations_get by the verb, so an agent can identify the purpose without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. The description only states the action without explaining context such as prerequisites, permanence, or when deletion is appropriate. It does not mention exclusions or alternatives, leaving the agent to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
node_integrations_getC
Get a node integration by UUID
| Name | Required | Description | Default |
|---|---|---|---|
| uuid | Yes | Integration UUID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It is a simple read operation, but the description does not disclose any potential behaviors such as error handling (e.g., 404 if not found), authentication requirements, or whether the integration data is cached. It 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 a single, concise sentence with no fluff. It gets to the point quickly, which is good, though it could be slightly expanded to include usage guidance without losing 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 that the tool is a simple get-by-id operation with one parameter, the description is minimally sufficient. However, it could benefit from noting that the UUID is a unique identifier and that errors may occur if not found, which would make it more complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% as the schema already describes the single parameter as 'Integration UUID'. The description does not add much beyond that—it restates the UUID as a selector. Baseline 3 is appropriate because the schema is 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 clearly states a specific verb ('Get') and resource ('node integration') identified by UUID. It is distinct from the sibling tools (node_integrations_list, node_integrations_create, etc.), though it does not explicitly differentiate 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?
No guidance on when to use this tool versus other node_integrations tools. It does not mention that it is for fetching a single integration by UUID, which is implied by the name and parameter but not explicitly stated as an alternative to listing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
node_integrations_listB
List all node integrations
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only states 'List all node integrations', implying a read-only operation but providing no detail on return format, pagination, ordering, or any side effects. This 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 a single, concise sentence that directly states the purpose without any redundant words or filler. It is appropriately sized 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 simple list operation with no parameters, the description is adequate but lacks context about what a 'node integration' is, what the response contains, or any special constraints. It is minimally complete but leaves some ambiguity.
Complex tools with many parameters or behaviors need more documentation. 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 nothing to explain beyond the schema. Per the baseline for 0 params, a score of 4 is appropriate since the description needs to add no parameter 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 clearly states the action ('List') and the resource ('node integrations'), and the word 'all' distinguishes it from a single-item get (sibling node_integrations_get). It is specific enough to separate it from create/update/delete siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this list operation versus node_integrations_get (which likely retrieves a single integration) or other list tools. The agent must infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
node_integrations_updateC
Update a node integration
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | New name | |
| uuid | Yes | Integration UUID | |
| config | No | New configuration object | |
| description | No | New description | |
| restartNodes | No | Restart affected nodes after the update |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure, but it reveals no behavior beyond the fact that an update occurs. It does not mention side effects, whether the operation can be reversed, whether restartNodes affects nodes, or any permission requirements. This is a significant transparency gap for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short—only four words—and while it contains no fluff, it is under-specified rather than appropriately concise. A mutation with five parameters and no annotations merits more structural detail, such as clarifying the scope of the update or highlighting the optional fields.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an update tool with no annotations, no output schema, and a five-parameter input, the description is too minimal to be complete. It provides no context about expected behavior, return values, side effects, or when to use it. The schema covers parameter definitions, but the tool's overall operation is under-documented.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema itself documents all five parameters and their meanings. The description adds no parameter-level detail, but with full schema coverage, the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: 'Update a node integration'. It is distinguishable from sibling tools like node_integrations_create and node_integrations_delete by the operation type, though it does not specify what aspects of the integration are updatable beyond what the schema already shows.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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, no mention of prerequisites, and no indication of conditions that should be checked before updating. The context is implied by the tool name and sibling list, but the description itself provides no actionable usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
node_plugins_cloneC
Clone a node plugin
| Name | Required | Description | Default |
|---|---|---|---|
| uuid | Yes | Plugin UUID to clone |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, but it only repeats the action. It doesn't disclose side effects such as whether a new plugin record is created, whether settings/associations are copied, or whether an existing plugin must be active, nor does it mention idempotency 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 a single short sentence with no filler or redundancy. It is efficient, though the lack of any additional context makes it feel under-built rather than appropriately detailed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 simple one-parameter schema, there is no output schema and no annotation support, so the description must explain what the clone operation returns and what happens to the original plugin. None of that is present, making the tool under-specified for an agent deciding whether and how to call it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the only parameter 'uuid' is already described as 'Plugin UUID to clone.' The description adds no extra meaning beyond the schema, so it meets the baseline but doesn't enhance 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 names a concrete verb ('Clone') and resource ('a node plugin'), so an agent knows what object and action are involved. It doesn't explicitly distinguish this from node_plugins_create/update/delete, but 'clone' is a distinct operation and no other node-plugin cloning sibling exists.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 cloning is appropriate versus creating or updating a plugin, nor any prerequisites or alternatives. The description leaves the usage decision entirely to inference from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
node_plugins_createC
Create a new node plugin
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Plugin name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only repeats that this is a creation operation, which is already implied by the tool name. It does not mention side effects, permissions, reversibility, or any other behavioral traits, leaving the agent with no additional 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 it is under-specified rather than concise. The single sentence 'Create a new node plugin' is a near-tautology of the tool name and adds no new information. It is not front-loaded with any useful context, so 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 tool with one parameter and no output schema, the description fails to explain what a node plugin is, any constraints on the name, or what creation entails. The schema covers the parameter type, but there is no context about the resource or the operation's effect, making the description incomplete for an agent to understand the full scope.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: the 'name' parameter is documented as 'Plugin name' in the schema. The tool description adds no parameter-level information, but since the schema fully covers the only parameter, a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Create a new node plugin' states the verb and resource clearly, but it essentially repeats the tool name without adding any distinguishing detail. It does not differentiate from sibling creation tools for other resources, though the meaning is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. No context is provided about prerequisites, typical use cases, or conditions that would favor node_plugins_create over node_plugins_update or other creation tools. The description offers no usage direction whatsoever.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
node_plugins_deleteC
Delete a node plugin
| Name | Required | Description | Default |
|---|---|---|---|
| uuid | Yes | Plugin UUID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states the action without revealing consequences such as irreversibility, potential cascading effects on associated data, permission requirements, or failure scenarios. As a destructive operation, this is a significant gap because an agent cannot assess the impact of calling it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence that is front-loaded with the action and resource, containing no filler. It is appropriately concise for a simple DELETE operation with one parameter. However, it is slightly under-specified regarding side effects, but that is more a behavioral transparency concern, not conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive operation with no output schema and no annotations, the description is insufficiently complete. An agent needs to know if deletion is permanent, if it affects related entities (e.g., removes assignments), or if any confirmation is required. The one-line description leaves too much uncertainty for an irreversible action, making it inadequate for safe autonomous 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 fully describes the sole parameter (uuid) as 'Plugin UUID', achieving 100% schema description coverage. The description adds no additional meaning or context beyond what the schema already provides. Since the schema handles the parameter documentation, the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Delete a node plugin' clearly identifies the action (delete) and the resource (node plugin), which is distinct from sibling actions like create, update, list, and get. It is specific enough for an agent to understand the core operation without ambiguity. It does not elaborate on the scope or side effects, so it is 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?
The description provides no guidance on when to use this tool versus alternatives. There is no mention of prerequisites, conditions for deletion, or any caution about using this over other node_plugin operations. The only hint is the verb 'delete', which implies removal, but no explicit when-to-use or when-not-to-use context is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
node_plugins_executeC
Execute a node plugin
| Name | Required | Description | Default |
|---|---|---|---|
| uuid | Yes | Plugin UUID to execute |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only says 'execute' and provides no information about side effects, mutating behavior, return values, error conditions, or whether execution is asynchronous.
Agents need to know what a tool does to the 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 one short sentence with no wasted words, but it mostly restates the tool name and offers little substantive information. It is concise rather than well-structured or 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?
Given no annotations, no output schema, and only a one-sentence description, an agent lacks critical context about what happens when a plugin is executed, what a successful response looks like, and what side effects may occur. This is incomplete for an action-oriented 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 covers 100% of the single parameter with a clear description ('Plugin UUID to execute'), so the tool description does not need to add much. However, it also adds no extra meaning beyond what the schema already states, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the action ('Execute a node plugin') and the resource, but 'execute' is generic and does not clarify what executing a plugin entails or how it differs from related plugin operations like node_plugins_sync or node_plugins_torrent_truncate. It essentially restates the tool name without adding operational 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, nor any mention of prerequisites such as whether the plugin must exist, be enabled, or require special permissions. The agent must infer usage solely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
node_plugins_getA
Get a node plugin by UUID
| Name | Required | Description | Default |
|---|---|---|---|
| uuid | Yes | Plugin UUID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It states 'Get', which implies a read-only operation, but it does not disclose behavior for invalid or missing UUIDs, whether authentication is required, or what the response structure will look like. For a tool with zero annotation coverage, this is a notable gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler or repetition. Every word contributes to conveying the tool's purpose 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 simple get-by-UUID tool with one required parameter and no output schema, the description covers the essential invocation details. It could be improved by noting not-found behavior or response expectations, but nothing critical for calling the tool correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents the only parameter (uuid) with the description 'Plugin UUID', providing 100% schema description coverage. The tool description adds no additional semantic meaning beyond what the schema already states, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get'), a concrete resource ('node plugin'), and a unique identifier ('UUID') to state exactly what the tool does. This clearly differentiates it from node_plugins_list, which lists plugins rather than retrieving one, and from nodes_get, which targets a different 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?
The description implies the tool is for retrieving a single node plugin when the UUID is known, but it does not explicitly state when to prefer it over alternatives like node_plugins_list or when not to use it. Usage context is clear but only implied, with no exclusions or alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
node_plugins_listA
List all node plugins
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. 'List all node plugins' clearly indicates a read-only enumeration with no side effects, which is transparent for a zero-parameter tool. It does not mention response format, pagination, or ordering, but for a simple list operation this is a minor omission.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence: 'List all node plugins'. It contains no filler or redundant information, and every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter list operation, 'List all node plugins' is nearly sufficient for an agent to invoke it correctly. It could benefit from a note about the return payload shape, but given the trivial complexity, the description is adequately 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 tool has zero parameters and the input schema already documents this completely. The description has no parameter details to add, so the baseline 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 uses the specific verb 'List' with the resource 'all node plugins', which clearly expresses the operation and scope. It distinguishes itself from siblings like node_plugins_get (single plugin) and node_plugins_create/update/delete without needing to open their schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The use case is implied by 'List all node plugins' — an agent can infer that enumeration is the purpose. However, there is no explicit guidance about when to use this over node_plugins_get or other node_plugin tools, and no alternatives 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.
node_plugins_reorderC
Reorder node plugins
| Name | Required | Description | Default |
|---|---|---|---|
| uuids | Yes | Ordered array of plugin UUIDs |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosing behavior. It only states the action without explaining effects (e.g., whether the entire order is replaced, whether it's reversible, or if any validation occurs). For a mutation tool, this is severely lacking.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single clause with no structure or additional context. While it is concise, it is under-specified and provides no front-loaded value beyond the 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?
Despite having only one parameter and no output schema, the description omits essential context: what 'reorder' entails (e.g., does it set the full order or append?), any side effects, and how it relates to the many sibling reorder tools. This is inadequate 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 schema fully describes the single parameter 'uuids' as an ordered array of plugin UUIDs (100% coverage). The description adds no extra semantic detail, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Reorder node plugins' simply restates the tool name. It provides no additional specificity beyond the verb and resource, making it a tautology. It does not differentiate from sibling reorder tools like nodes_reorder or config_profiles_reorder.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 or how it differs from other reorder operations. There is no mention of alternatives or context such as prerequisites or ordering constraints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
node_plugins_syncC
Sync a node plugin to its nodes (async, 202)
| Name | Required | Description | Default |
|---|---|---|---|
| uuid | Yes | Plugin UUID to sync |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that the operation is async and returns 202, which is useful, but it doesn't explain what 'sync' does behaviorally (e.g., whether it overwrites node configs, propagates plugin settings, requires nodes to be online, or has side effects). The async nature is mentioned but not elaborated (e.g., how to check completion).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the action and includes the async/202 detail. It's efficient with no wasted words, though it could add a bit more context 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?
Given the tool's complexity (async operation, potential side effects) and lack of annotations or output schema, the description is incomplete. It doesn't explain what happens after the 202 response, how to track the sync, or what 'sync' means in terms of node plugin behavior. An agent would need more context to invoke this correctly and understand consequences.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (the only parameter 'uuid' is described as 'Plugin UUID to sync'), so the schema already documents the parameter. The description adds no extra meaning beyond the schema, but the baseline for high coverage is 3, and the description's 'sync' context aligns with the parameter's 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 states a specific verb ('Sync') and resource ('a node plugin to its nodes'), which clearly distinguishes it from sibling tools like node_plugins_list, node_plugins_get, node_plugins_create, etc. However, it doesn't explicitly name a sibling alternative or elaborate on what 'sync' entails, so it's clear but not fully differentiated from other node_plugins operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 doesn't mention prerequisites, context, or exclusions. The parenthetical '(async, 202)' hints at asynchronous behavior and a 202 response, but there's no explicit when-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
node_plugins_torrent_reportsB
Get torrent blocker reports
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. 'Get' implies a read-only operation, but the description does not reveal what a 'torrent blocker report' contains, whether it is per-node or global, or any side effects. This is a minimal but not misleading description; it simply lacks 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?
A single clear sentence with the verb front-loaded. There is zero redundancy or filler. For a tool with no parameters and a simple read operation, 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?
Although the tool is simple (0 params), there is no output schema and no annotations. The description does not explain what the returned 'torrent blocker reports' look like, what data they cover, or whether they are scoped to a node. An agent would need additional context to interpret the result confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema is empty, so the schema fully documents that this tool takes no parameters. The description adds the resource context ('torrent blocker reports') and confirms there is no filtering or options. With zero parameters, the baseline is 4, and the description does not 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 'Get torrent blocker reports' uses a specific verb ('Get') and a specific resource ('torrent blocker reports'), which is clear on its own. It distinguishes from siblings by naming a distinct resource type ('reports' vs 'stats' or 'truncate'), though it does not explicitly call out the alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as node_plugins_torrent_stats or node_plugins_torrent_truncate. The description does not state any context, prerequisites, or exclusions, so an agent must infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
node_plugins_torrent_statsC
Get torrent blocker statistics
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It does not mention whether this is a read-only operation, whether it returns aggregate or detailed data, whether it requires specific permissions, or whether it has side effects. The description is too sparse to inform an agent about behavior beyond the basic action.
Agents need to know what a tool does to the 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 main purpose, which is initially good for conciseness. However, it is under-specified to the point of being almost unhelpful; a single sentence that does not add context or detail is minimal but not necessarily well-rounded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 no parameters, no output schema, and no annotations, the description is the only source of information for the agent. It is incomplete because it does not explain what 'torrent blocker statistics' are, how they relate to node plugins, or what kind of data to expect. The tool likely returns a non-trivial result (e.g., counts, blocks), but this is left unspecified.
Complex tools with many parameters or behaviors need more documentation. 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 does not need to clarify parameter meaning. The input schema is empty and coverage is 100%, meaning there is nothing to explain. A baseline of 4 is appropriate 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 'Get torrent blocker statistics' identifies the resource (torrent blocker) and the action (get statistics), but it is vague about what 'torrent blocker' refers to and what specific statistics are returned. It does not differentiate from the sibling tool node_plugins_torrent_reports, which likely provides reports, and the term 'statistics' is generic.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 over node_plugins_torrent_reports or node_plugins_torrent_truncate. The description does not indicate typical use cases, prerequisites (e.g., requiring a node plugin to be configured), or conditions that would disqualify its use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
node_plugins_torrent_truncateB
Truncate all torrent blocker reports
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden. 'Truncate' implies a destructive clear-all operation, but the description does not state that the action is irreversible, whether it affects all nodes/plugins globally, or what side effects may 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 a single, front-loaded sentence with no wasted words: it names the action ('Truncate'), the target ('all torrent blocker reports'), and the scope ('all'). It is compact and immediately 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 zero-parameter destructive tool, the description is minimally sufficient to identify and invoke the operation. However, with no output schema and no annotations, it omits important contextual details such as whether truncation is reversible, what a successful call returns, and whether any confirmation or special authorization is needed.
Complex tools with many parameters or behaviors need more documentation. 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, so there is no parameter documentation burden on the description. 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 uses a specific verb, 'Truncate', and names the exact resource, 'all torrent blocker reports'. It is distinguishable from sibling tools like node_plugins_torrent_reports, which likely lists reports, even though it does not name alternatives explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool versus node_plugins_torrent_reports or node_plugins_torrent_stats. The description implies a cleanup/clear operation but provides no context about expected prerequisites, such as reviewing reports before truncating them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
node_plugins_updateC
Update a node plugin
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | New name | |
| uuid | Yes | Plugin UUID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full burden of behavioral disclosure. It merely says 'Update', which is already in the tool name, and gives no indication of mutation scope, reversibility, error behavior, required permissions, or consequences.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence with no fluff, but it is under-specified rather than usefully concise. It adds no information beyond the tool name, so its only structural merit is 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?
For a mutation tool with no annotations and no output schema, the description is insufficient. The uuid requirement and optional name are inferable from the schema, but nothing states what happens on update, what the response looks like, or what successful invocation implies.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: 'name' and 'uuid' already have descriptions. The description adds no parameter-level meaning beyond what the schema provides, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is essentially a restatement of the tool name: 'Update a node plugin' adds no new information beyond 'node_plugins_update'. It names the verb and resource but does not explain what fields or effects are involved, so it fails to distinguish the tool from sibling node_plugins_* operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 node_plugins_create, node_plugins_delete, node_plugins_reorder, or other siblings. There are no conditions, prerequisites, or exclusions stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nodes_bulk_actionsC
Bulk actions on selected nodes (enable/disable/restart)
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action to perform | |
| nodeUuids | Yes | Array of node UUIDs |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It does not state whether the actions are destructive, whether partial failures are reported, whether the operation is atomic, any permission requirements, or what the response contains. The only behavior implied is that multiple nodes can be affected at once, which 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 a single, short sentence with no filler. It front-loads the core action ('Bulk actions') and specifies the resource. It could arguably be more informative, but as pure conciseness it earns full marks aside from being slightly under-specified overall.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter bulk action tool, the description plus schema is enough to understand what inputs to provide. However, the absence of any output schema, combined with no behavioral or usage context, leaves gaps around expected return values and error semantics. Given the simplicity of the operation, 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 100%, so both parameters are already documented in the schema. The description adds a slight clarification that the node list is 'selected' nodes and restates the enum values, but it provides no extra meaning beyond the schema, such as batch size limits, format for UUIDs, or behavior when some UUIDs are invalid.
Input schemas describe structure but not intent. Descriptions should explain 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 action type ('bulk actions') and the resource ('nodes'), and explicitly lists the three possible operations (enable/disable/restart). It is distinguishable from single-node counterparts in the sibling list, though it does not explicitly frame itself as the batch version of nodes_enable/nodes_disable/nodes_restart, which would make it fully crisp.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 bulk tool over the single-node siblings (nodes_enable, nodes_disable, nodes_restart) or over nodes_restart_all. The agent must infer from the tool name and sibling names that 'bulk' is for multi-node operations, but no explicit when-to-use scenario or exclusion is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nodes_bulk_profile_modificationB
Bulk modify config profile for selected nodes
| Name | Required | Description | Default |
|---|---|---|---|
| nodeUuids | Yes | Array of node UUIDs | |
| configProfileUuid | Yes | New config profile UUID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of disclosing side effects. It states the operation modifies config profiles but does not mention whether the previous profile is overwritten, whether changes are reversible, or what happens if a node UUID is invalid.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single clear sentence with no filler. It front-loads the action and resource, making it immediately 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?
The tool is relatively simple with two clearly documented parameters and no output schema. However, for a mutating bulk operation with no annotations, the description lacks behavioral context and usage differentiation, leaving an agent with some uncertainty about side effects and alternatives.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both parameters already documented as 'Array of node UUIDs' and 'New config profile UUID'. The description restates these concepts at a higher level ('selected nodes', 'config profile') but adds little beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a clear verb and resource: 'Bulk modify config profile for selected nodes'. It distinguishes the operation from generic bulk node updates by specifying config profiles, though it does not explicitly contrast with sibling tools like nodes_bulk_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 guidance is given about when to use this tool versus alternatives such as nodes_bulk_update or nodes_update. The word 'bulk' implies batch usage, but there are no exclusions, prerequisites, or explicit alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nodes_bulk_updateC
Bulk update properties for selected nodes
| Name | Required | Description | Default |
|---|---|---|---|
| note | No | Free-form note (max 255 chars, null to clear) | |
| tags | No | Tags (uppercase letters, numbers, underscores, colons; max 36 chars each, up to 10) | |
| uuids | Yes | Array of node UUIDs to update | |
| countryCode | No | New country code | |
| consumptionMultiplier | No | New consumption multiplier (0.0–100.0) | |
| nodeConsumptionMultiplier | No | New per-node consumption multiplier (0.0–100.0) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It signals mutation via 'update' but does not disclose partial-update semantics, whether the same properties apply to all selected nodes, validation or failure behavior, or permissions. This is a significant gap for a bulk mutating tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler, making it easy to parse. It is slightly under-sized for a 6-parameter bulk mutation tool, but the conciseness itself is strong.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 schema covers parameter formats, but the description omits essential operational semantics: how bulk selection works, whether omitted properties are left unchanged, what happens on invalid UUIDs, and what the call returns. With no annotations and no output schema, this is not complete enough for confident invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all six parameters are already documented with types and constraints. The description adds no parameter-specific meaning beyond the generic word 'properties', which is acceptable at the baseline given the complete schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('bulk update') and resource ('nodes') and implies multi-node selection via 'selected nodes', which clearly conveys the core operation. However, 'properties' is generic, and the description does not differentiate this tool from similar bulk siblings like nodes_bulk_profile_modification or nodes_bulk_actions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool instead of alternatives such as nodes_update, nodes_bulk_profile_modification, or nodes_bulk_actions. It does not state prerequisites, exclusions, or conditions for preferring one sibling over another.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nodes_createB
Create a new node in Remnawave
| Name | Required | Description | Default |
|---|---|---|---|
| ips | No | Declared node IP addresses with their roles | |
| name | Yes | Node name | |
| note | No | Free-form note (max 255 chars) | |
| port | No | Node port | |
| address | Yes | Node address (IP or hostname) | |
| proxyUrl | No | SOCKS5 proxy URL: socks5://[user:pass@]host:port | |
| countryCode | No | Country code (e.g. US, DE, NL) | |
| notifyPercent | No | Traffic notification threshold percentage | |
| activeInbounds | Yes | Array of inbound UUIDs to enable | |
| trafficResetDay | No | Day of month to reset traffic (1-31) | |
| integrationUuids | No | Node integration UUIDs to attach (see node_integrations_list) | |
| trafficLimitBytes | No | Traffic limit in bytes | |
| consumptionMultiplier | No | Traffic consumption multiplier | |
| activeConfigProfileUuid | Yes | Config profile UUID to assign | |
| isTrafficTrackingActive | No | Enable traffic tracking | |
| nodeConsumptionMultiplier | No | Per-node traffic consumption multiplier (0.0–100.0) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full behavioral burden. It only states 'create a new node' – implying a mutation, but does not disclose side effects, permissions required, rate limits, or what the response contains. Minimal behavioral disclosure for a 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?
A single sentence that is efficient and front-loaded with the action. No wasted words, though it is sparse. Conciseness is ideal, but it comes at the cost of missing context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite a complex tool with 16 parameters and no output schema, the description provides almost no context about the operation, typical use cases, relationship between required fields, or what happens after creation. The sparse description is inadequate for guiding 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 100% with descriptions for all 16 parameters, so the schema already documents them. The description adds no parameter-specific meaning beyond what the schema provides. Baseline 3 applies because the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action (create), the resource (node), and the system (Remnawave). It is specific and distinguishes from siblings like nodes_update or nodes_delete by the 'create' verb.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. Does not mention prerequisites, typical contexts, or when not to use it. The purpose implies creation, but there is no explicit routing or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nodes_deleteB
Delete a node from Remnawave
| Name | Required | Description | Default |
|---|---|---|---|
| uuid | Yes | Node UUID to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states the action without behavioral details. It doesn't disclose whether deletion is permanent, requires specific permissions, affects related resources (e.g., users or subscriptions), or has rate limits. This is inadequate for a destructive operation with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, direct sentence with zero wasted words. It's front-loaded with the key action and resource, making it highly efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive tool with no annotations and no output schema, the description is incomplete. It lacks critical context such as what happens post-deletion (e.g., confirmation, error handling), impact on system state, or typical usage patterns, leaving significant gaps for an AI 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?
The description doesn't add parameter details beyond the schema, but schema description coverage is 100% (the 'uuid' parameter is fully documented). With only one parameter, the baseline is 4 since the schema sufficiently explains the single required input.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Delete') and resource ('a node from Remnawave'), making the purpose immediately understandable. However, it doesn't differentiate from sibling deletion tools like 'hosts_delete' or 'hwid_device_delete', which would require specifying what type of node is being deleted (e.g., network node, server node).
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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. The description doesn't mention prerequisites (e.g., needing the node's UUID from 'nodes_list'), consequences of deletion, or when to choose this over similar tools like 'nodes_disable' for temporary removal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nodes_disableC
Disable a node
| Name | Required | Description | Default |
|---|---|---|---|
| uuid | Yes | Node UUID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action ('disable') but fails to explain what disabling entails (e.g., whether it's reversible, affects traffic, requires permissions, or has side effects). This leaves critical behavioral traits unspecified for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise ('Disable a node'), consisting of three words that directly convey the core purpose without any fluff. It is front-loaded and wastes no space, making it efficient for quick understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description is insufficient. It lacks details on behavior, effects, error conditions, or return values, leaving the agent with incomplete context to use the tool effectively despite the simple parameter schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the single parameter 'uuid' documented as 'Node UUID'. The description adds no additional meaning beyond this, such as format examples or sourcing guidance. Baseline score of 3 applies since the schema adequately covers 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 'Disable a node' clearly states the action (disable) and target resource (node), which is adequate. However, it lacks specificity about what 'disable' means operationally (e.g., deactivating vs. deleting) and does not distinguish it from sibling tools like 'nodes_delete' or 'users_disable', leaving room for 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?
No guidance is provided on when to use this tool versus alternatives such as 'nodes_delete', 'nodes_enable', or 'users_disable'. The description does not mention prerequisites, consequences, or contextual triggers, offering minimal assistance for decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nodes_enableC
Enable a disabled node
| Name | Required | Description | Default |
|---|---|---|---|
| uuid | Yes | Node UUID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states the action but lacks behavioral details: no mention of permissions required, whether the change is immediate or requires restart, what happens on success/failure, or if it affects connected users. For a mutation tool with zero annotation coverage, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero wasted words. It is front-loaded with the core action and target, making it immediately understandable without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description is incomplete. It lacks details on behavioral traits (e.g., side effects, error conditions), usage context, and expected outcomes. Given the complexity of enabling a system node, more guidance is needed for safe and effective 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 100%, with the single parameter 'uuid' documented as 'Node UUID'. The description adds no additional parameter context beyond implying the UUID belongs to a disabled node. Baseline 3 is appropriate since the schema fully describes the 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 'Enable a disabled node' clearly states the action (enable) and target resource (node), with the qualifier 'disabled' indicating the precondition. It distinguishes from sibling 'nodes_disable' by specifying the opposite operation, though it doesn't explicitly differentiate from other node-related tools like 'nodes_restart' or 'nodes_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 guidance is provided on when to use this tool versus alternatives. While 'disabled' implies a precondition, there's no mention of prerequisites (e.g., node must exist and be disabled), exclusions (e.g., cannot enable an already enabled node), or related tools like 'nodes_disable' for the reverse operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nodes_getC
Get a specific node by UUID
| Name | Required | Description | Default |
|---|---|---|---|
| uuid | Yes | Node UUID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states the basic action without disclosing behavioral traits such as error handling (e.g., what happens if the UUID is invalid), authentication needs, rate limits, or response format. This leaves significant gaps for a tool that likely involves data retrieval.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose without any wasted words. It's appropriately sized for a simple tool with one parameter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is incomplete. It doesn't explain what a 'node' is in this context, what data is returned, or any prerequisites, making it inadequate for a tool that likely returns structured data about a 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?
The schema description coverage is 100%, with the single parameter 'uuid' fully documented in the schema. The description adds no additional meaning beyond implying it's used to identify a node, so it meets the baseline for high schema coverage without compensating 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 the action ('Get') and target resource ('a specific node by UUID'), making the purpose unambiguous. However, it doesn't differentiate from sibling tools like 'nodes_list' or 'hosts_get', which would require mentioning it retrieves a single node rather than listing multiple.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'nodes_list' for multiple nodes or other 'get' tools for different resources. The description implies usage when you have a node UUID, but lacks 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.
nodes_listB
List all Remnawave nodes
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states the basic action. It doesn't disclose whether this is a read-only operation, whether it requires authentication, how results are formatted (pagination, sorting), or any rate limits. For a list operation with zero annotation coverage, this is insufficient behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that gets straight to the point with zero wasted words. It's perfectly front-loaded and appropriately sized for a simple list operation 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?
Given no annotations and no output schema, the description should provide more context about what 'list all Remnawave nodes' entails—what information is returned, format, any filtering options, or authentication requirements. For a tool in a system with many sibling operations, this minimal description leaves significant gaps in understanding the tool's behavior and output.
Complex tools with many parameters or behaviors need more documentation. 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 with 100% schema description coverage, so no parameter documentation is needed. The description appropriately doesn't discuss parameters, which is correct for this case. A baseline of 4 is appropriate since the description doesn't need to compensate for any parameter documentation gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List') and resource ('all Remnawave nodes'), making the purpose immediately understandable. It distinguishes from siblings like nodes_get (specific node) and nodes_create/delete/update (mutations), but doesn't explicitly mention these distinctions in the description text 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?
The description provides no guidance on when to use this tool versus alternatives like hosts_list, inbounds_list, or system_nodes_statistics. It doesn't indicate whether this is for administrative monitoring, configuration purposes, or other contexts, leaving the agent to infer usage 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.
nodes_reorderC
Reorder nodes by providing each node UUID with its new position
| Name | Required | Description | Default |
|---|---|---|---|
| nodes | Yes | Array of nodes with their new positions |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It does not say whether the reorder persists, whether all nodes must be provided, how duplicate positions are handled, or what happens to omitted nodes. 'Reorder' implies mutation but discloses no 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?
A single front-loaded sentence with no wasted words. Every phrase contributes to understanding what the tool does.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 input schema is simple unusual and fully documented, the overall tool lacks annotations and an output schema, and the description omits behavioral specifics like persistence, validation, or whether the reorder is partial or full. This leaves an agent without enough context to invoke it safely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the description mostly restates the schema's meaning: nodes with UUIDs and new positions. It adds no extra semantic detail beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource ('Reorder nodes') plus a clear mechanism ('providing each node UUID with its new position'). It is definitely distinct from generic node mutation tools, though it does not specify what ordering context this applies to.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives like nodes_bulk_actions, nodes_update, or the many other *_reorder tools. The only usage signal comes from the verb itself, which is implicit rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nodes_reset_trafficC
Reset traffic counter for a node
| Name | Required | Description | Default |
|---|---|---|---|
| uuid | Yes | Node UUID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the action ('Reset traffic counter') but fails to explain critical aspects like whether this requires admin permissions, if it's destructive (e.g., resets data irreversibly), what happens to the node's traffic metrics, or any rate limits. This is a significant gap for a mutation tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, direct sentence with no wasted words, efficiently conveying the core action and target. It is appropriately sized and front-loaded, making it easy for an agent to parse quickly without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 as a mutation operation (resetting traffic counters), lack of annotations, and no output schema, the description is insufficient. It omits behavioral details like permissions, side effects, or return values, which are crucial for safe and effective use. The description does not compensate for the missing structured data, leaving gaps in understanding.
Complex tools with many parameters or behaviors need more documentation. 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 100% description coverage, with the 'uuid' parameter clearly documented as 'Node UUID'. The description does not add any additional meaning or context beyond what the schema provides, such as format examples or sourcing details. With high schema coverage, the baseline score of 3 is appropriate, as the schema handles the parameter documentation adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Reset') and resource ('traffic counter for a node'), making the purpose specific and understandable. It distinguishes itself from sibling tools like 'users_reset_traffic' by specifying 'node' instead of 'user', though it doesn't explicitly contrast with other node-related tools like 'nodes_restart' or 'nodes_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 provides no guidance on when to use this tool versus alternatives, such as other node management tools (e.g., 'nodes_restart', 'nodes_update') or user traffic reset ('users_reset_traffic'). It lacks context about prerequisites, timing, or exclusions, leaving the agent to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nodes_restartB
Restart a specific node
| Name | Required | Description | Default |
|---|---|---|---|
| uuid | Yes | Node UUID | |
| forceRestart | No | Force restart even if the node is unreachable |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It only states the action 'restart' without disclosing consequences such as dropped connections, downtime, or whether forceRestart changes behavior significantly. For a mutating operation, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is only four words and is entirely front-loaded, conveying the core operation immediately. There is no fluff or redundancy; every word contributes.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 only two parameters, but given no annotations and no output schema, the description still feels thin. It is minimally adequate for invoking the tool correctly, but fails to explain the operational impact or why an agent might choose this over nodes_restart_all.
Complex tools with many parameters or behaviors need more documentation. 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 covers both parameters with descriptions (100% coverage), so the description does not need to add much. The description itself does not elaborate on parameter semantics, but the baseline of 3 applies because the schema is complete.
Input schemas describe structure but not intent. Descriptions should explain 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 'Restart a specific node' gives a clear verb and resource, and the word 'specific' implicitly distinguishes it from the sibling tool nodes_restart_all. However, it doesn't go further to explicitly differentiate from other node-related 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 provides no explicit guidance on when to use this tool vs alternatives. The word 'specific' only hints that it is for a single node, but there is no mention of nodes_restart_all or conditions like 'use when restarting one node rather than all.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nodes_restart_allB
Restart all nodes
| Name | Required | Description | Default |
|---|---|---|---|
| forceRestart | No | Force restart even for unreachable nodes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the full burden of behavioral disclosure. It only states 'Restart all nodes' without revealing potential side effects such as service downtime, whether the operation is asynchronous, or how unreachable nodes are handled (even though the forceRestart parameter hints at this). This is a significant gap for a bulk mutation 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 a single, front-loaded sentence with no wasted words. It is appropriately concise for such a simple tool, though it could benefit from additional context 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?
The description is too sparse for a tool that operates on all nodes. It lacks information about return values (no output schema), error conditions, and how it differs from sibling tools. Given the existence of nodes_restart and nodes_bulk_actions, more context is needed to prevent misuse.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides 100% coverage for the single parameter forceRestart with a clear description. The tool description adds no additional meaning or context about the parameter, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'restart' and the resource 'all nodes', which is specific and distinct from the sibling nodes_restart (singular). The scope is explicit, so an agent can immediately understand this applies to every node, not 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 on when to use this tool versus nodes_restart or nodes_bulk_actions. The description does not mention any conditions, prerequisites, or context that would help an agent decide between restarting all nodes versus individual ones.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nodes_tags_listA
List all node tags
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden of behavioral disclosure. It only states 'List all node tags' and gives no details about read-only status, pagination, sorting, filtering, or return format. The word 'List' implies a read operation, but this is not explicitly stated, and no additional behavioral traits are revealed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence with no filler. It front-loads the action ('List') and the resource ('node tags'), and every word earns its place. This is appropriately concise for a simple 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 no output schema and no annotations, the description is largely sufficient. It conveys the core purpose and scope, and there is nothing needed to invoke the tool beyond what is stated. A minor gap is the lack of explicit mention of the return format or whether 'all' includes any special handling, but the low complexity makes this a minor omission.
Complex tools with many parameters or behaviors need more documentation. 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)Skip
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('List') and resource ('node tags'), making it immediately distinguishable from sibling tools like users_tags_list and hosts_tags_list. The 'node' qualifier clearly identifies the scope. This is a concise declaration of the tool's function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 mention when to use this tool versus alternatives such as tags_list or users_tags_list, or any exclusions or prerequisites. The only differentiator is the tool name itself, which is not enough for an agent deciding between similar listing tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nodes_updateC
Update an existing node
| Name | Required | Description | Default |
|---|---|---|---|
| ips | No | Declared node IP addresses with their roles | |
| name | No | New node name | |
| note | No | Free-form note (max 255 chars, null to clear) | |
| port | No | New port | |
| uuid | Yes | Node UUID to update | |
| address | No | New address | |
| proxyUrl | No | SOCKS5 proxy URL: socks5://[user:pass@]host:port (null to clear) | |
| countryCode | No | New country code | |
| notifyPercent | No | New notification threshold | |
| trafficResetDay | No | New traffic reset day | |
| integrationUuids | No | Node integration UUIDs to attach (see node_integrations_list) | |
| trafficLimitBytes | No | New traffic limit | |
| consumptionMultiplier | No | New consumption multiplier | |
| isTrafficTrackingActive | No | Enable/disable traffic tracking | |
| nodeConsumptionMultiplier | No | New per-node consumption multiplier (0.0–100.0) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. 'Update' implies mutation, but the description doesn't state whether updates are partial or full replacement, whether unspecified fields are left unchanged, whether the node must be enabled/disabled, or what happens on invalid UUID. It also doesn't mention that some fields are nullable to clear values, which is a behavioral nuance.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that is front-loaded with the core action. It earns its place with no waste. However, it is so brief that it misses opportunities to add behavioral or usage context, which slightly reduces the score from 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with 15 parameters, no annotations, and no output schema, the description is incomplete. It doesn't explain the update semantics (partial vs full), whether the node must exist, or what the response contains. The schema covers parameter names but not the operational context an agent needs to call this correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 15 parameters. The description adds no parameter-level meaning beyond the schema. The baseline of 3 applies because the schema does the heavy lifting; the description doesn't compensate with any additional context about how parameters interact (e.g., whether all fields are optional updates or if some are required together).
Input schemas describe structure but not intent. Descriptions should explain 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 'Update an existing node' clearly states the verb (update) and resource (node), and the schema confirms it targets a node by UUID. It distinguishes from siblings like nodes_create and nodes_delete, though it doesn't explicitly name them. The purpose is clear and specific enough for an agent to understand what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 like nodes_bulk_update or nodes_bulk_actions. It doesn't mention prerequisites (e.g., node must exist, UUID required) or exclusions. The context signals show many node-related siblings, but the description leaves the agent to infer usage from the name and schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
settings_getA
Get Remnawave panel settings
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
'Get' communicates a read-only retrieval, which is the core behavioral trait. With no annotations present, the description carries the full burden, but it does not mention response contents, access requirements, or potential error cases. This is adequate but minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single five-word sentence with no filler. It is front-loaded and every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless getter, the essential action and resource are present and the call can be made correctly. The lack of an output schema or annotation leaves the returned settings object unspecified, but this is a minor gap 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 tool has zero parameters, so the empty schema already fully describes the call surface. Per the baseline for zero-parameter tools, the description does not need to add parameter 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 names a specific action ('Get') and a specific resource ('Remnawave panel settings'). The sibling settings_update reinforces that this is the read-side counterpart, making the tool's 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?
The wording implies this tool should be used when panel settings need to be retrieved, which is reasonably clear for a parameterless getter. However, it gives no explicit guidance about alternatives, exclusions, or when settings_update or subscription_settings_get would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
settings_updateC
Update Remnawave panel settings
| Name | Required | Description | Default |
|---|---|---|---|
| settings | Yes | Settings key-value pairs to update |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits, but it only says 'Update' without explaining side effects, whether settings are merged or replaced, permission requirements, or reversibility. The agent is left guessing about the update semantics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately short, but it is under-specified rather than concise. It lacks structure or any attempt to convey essential information beyond a single sentence, so while it is not verbose, it fails to earn its brevity with 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 settings update tool with one complex parameter and no output schema or annotations, the description is incomplete. It does not clarify what settings are available, how updates are applied, or how it differs from related settings tools, leaving critical information 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 schema describes the 'settings' parameter as 'Settings key-value pairs to update' with additionalProperties, so coverage is 100%. The description adds no extra meaning beyond that, so it meets the baseline but does not enhance understanding of valid keys or formats.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Update Remnawave panel settings'), which is clear at a basic level. However, it does not differentiate from sibling tools like settings_get (read) or subscription_settings_update (a distinct settings domain), leaving ambiguity about which settings are affected.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 settings_get or subscription_settings_update. There are no exclusions, prerequisites, or context clues to help an agent select this tool correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
snippets_createC
Create a new configuration snippet
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Snippet name (alphanumeric, spaces, underscores, hyphens; 2–255 chars) | |
| snippet | Yes | Snippet content — array of Outbound or Rule objects |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations are provided, the description carries the full burden of behavioral disclosure, but it only restates the operation. It does not disclose whether creation is idempotent, whether an existing snippet with the same name is rejected or overwritten, or what response is returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. It is appropriately terse for a simple create operation, though the word 'new' adds little information and the description could have included operational context in place of it.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has only two required parameters and both are fully described in the schema, so an agent can assemble a valid request. However, with no annotations and no output schema, the description omits behavioral context such as uniqueness constraints, overwrite behavior, and expected result, which leaves some ambiguity for an agent deciding how to handle the response.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema already describes both required parameters, including the name pattern and the snippet content type (array of Outbound or Rule objects). The description adds no parameter-level meaning, so it earns the baseline score for fully documented schemas.
Input schemas describe structure but not intent. Descriptions should explain 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 ('Create') and resource ('configuration snippet'), and the verb separates it from sibling operations like snippets_update, snippets_delete, and snippets_sync. It is not a pure tautology, but it does not elaborate on what a snippet is or how it relates to config profiles.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 create versus update, sync, or delete a snippet, and no prerequisites such as name uniqueness or required existing resources are mentioned. The only usage signal is the verb in the tool name, which is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
snippets_deleteC
Delete a snippet by name
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Snippet name to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states the action (delete) but doesn't disclose whether deletion is permanent, whether it requires special permissions, what happens if the snippet doesn't exist, or whether related resources are affected. For a destructive operation, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that is front-loaded with the action and resource. It earns its place, though it could add a bit more context 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 destructive tool with no annotations and no output schema, the description is thin. It doesn't mention return behavior, error cases, or whether the operation is reversible. An agent would need to infer these from the schema and sibling patterns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single parameter 'name' is described as 'Snippet name to delete'. The description adds minimal value beyond the schema, but with full coverage the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Delete a snippet by name' clearly states the verb (delete), resource (snippet), and identifier (name). It distinguishes from siblings like snippets_create, snippets_update, snippets_sync, and snippets_list, 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?
No guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., snippet must exist), consequences, or when not to use it. The context is implied by the name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
snippets_listA
List all configuration snippets
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden of behavioral disclosure. 'List all' implies a non-mutating, full-scope read, but it does not mention pagination, ordering, authentication requirements, or return shape. This is acceptable for a simple zero-param list but not fully transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no filler. Every word contributes to identifying the operation and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter list tool, the description is largely complete for selection and invocation. It is slightly held back by not clarifying what a 'configuration snippet' contains or any result format, though no output schema exists.
Complex tools with many parameters or behaviors need more documentation. 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 an empty schema, so the description has no parameter details to compensate for. The baseline of 4 applies; the description adds resource clarity beyond the schema, which is 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 uses a specific verb ('List') and a clear resource ('configuration snippets'). Among the snippet-related siblings (snippets_create, snippets_update, snippets_delete, snippets_sync), it unambiguously identifies the read-only list 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?
The usage context is clear: call this tool when you need to see all configuration snippets. It doesn't explicitly name alternatives or exclusions, but there is no competing snippet-listing sibling, so the read-only intent is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
snippets_syncA
Sync a snippet to the config profiles using it (async, 202)
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Snippet name to sync |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does disclose that the operation is asynchronous and returns HTTP 202. The word 'sync' implies mutating config profiles, but the description doesn't explain what synchronization does (overwrite, generate, partial failure) or whether it is reversible.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with a useful parenthetical; every word earns its place. No repetition of schema or 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 an async mutating operation with no annotations and no output schema, the description doesn't fully explain effects on config profiles or what a caller should expect after the 202. It is adequate for a simple one-parameter tool but leaves the main side-effect semantics implicit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (name is documented as 'Snippet name to sync'), so the description adds no additional parameter semantics. This meets the baseline but provides no extra context such as name format or behavior when the snippet does not exist.
Input schemas describe structure but not intent. Descriptions should explain 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 action ('Sync'), the object ('a snippet'), and the target ('config profiles using it'), which clearly separates it from CRUD siblings like snippets_update or snippets_delete. The parenthetical about async/202 also adds 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 intended use is implied: it should be invoked when a snippet's changes need to be propagated to config profiles that reference it. However, it never explicitly says when to use sync instead of snippets_update or config_profiles_update, and there is no mention of 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.
snippets_updateB
Update an existing snippet (identified by name)
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Current snippet name (used to identify the snippet) | |
| newName | No | New name to rename the snippet to | |
| snippet | No | New content — array of Outbound or Rule objects |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states the operation is an update, which implies mutation, but does not disclose whether it is idempotent, whether partial updates are allowed, what happens to unspecified fields, or if there are any side effects. The absence of such details is a significant gap for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that directly conveys the core purpose. No redundant words or filler. It front-loads the action and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description lacks critical context: it doesn't mention return value, error conditions, whether rename and content update can be combined, or constraints on snippet content. Given the complexity of the snippet parameter (array of objects) and the presence of sibling tools like snippets_sync, more guidance is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema documents all parameters. The description adds minimal meaning beyond the schema: it clarifies that 'name' is used to identify the snippet, but does not explain the relationship between newName and snippet (e.g., can you rename and update content in one call?). For a 3-parameter tool with full schema coverage, baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Update an existing snippet (identified by name)' which clearly indicates the verb (update), resource (snippet), and identification method (by name). It distinguishes from create/delete/list snippets, but does not explicitly differentiate from snippets_sync which might also modify snippets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for updating an existing snippet but does not state when to use this versus snippets_create or snippets_sync. It mentions identification by name but no prerequisites (e.g., snippet must exist) or when to avoid using it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
squads_accessible_nodesB
Get nodes accessible to a specific squad
| Name | Required | Description | Default |
|---|---|---|---|
| uuid | Yes | Squad UUID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must carry the full behavioral burden. It only says 'Get', giving no detail about read-only guarantees, required permissions, failure behavior, or how 'accessible' is computed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence with no filler; the key scoping information ('specific squad') is front and center. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter lookup the definition is minimally sufficient, but there is no output schema and no explanation of what 'accessible' returns. The close sibling users_accessible_nodes also makes some guidance necessary.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents the single uuid parameter at 100% coverage ('Squad UUID'), so the description does not need to add much. It adds no new parameter meaning, which matches the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states an explicit action ('Get') and resource ('nodes accessible to a specific squad'), making it unambiguous. The qualifier 'specific squad' also distinguishes it from the closely related users_accessible_nodes sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to choose this tool over users_accessible_nodes, nodes_list, or squads_list, all of which are siblings. The intended selection context is only implied by the verb and object.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
squads_add_all_usersA
Add ALL users to an internal squad (async 202)
| Name | Required | Description | Default |
|---|---|---|---|
| squadUuid | Yes | Squad UUID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions 'async 202' which alerts the agent that the operation is asynchronous and returns an HTTP 202 Accepted status, implying the action may not complete immediately. This is useful, but it does not disclose other behaviors such as whether the operation is idempotent, what happens if some users already belong to the squad, or whether the operation can be reversed. For a bulk action, more detail would be helpful, but the async hint provides essential 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 a single, tight sentence that immediately states the primary action and a key behavioral trait (async 202). There is no verbosity or filler. Every word earns its place, making it an exemplar of concise documentation for a simple 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 tool with one parameter and no output schema, the description covers the essential context: what it does (add all users to an internal squad) and a critical behavioral detail (async 202). It does not describe return values or error handling, but these are less critical given the simplicity. The description is sufficient for an agent to invoke the tool correctly, though additional details about side effects or idempotency 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 a single parameter, squadUuid, whose schema description is 'Squad UUID' and covers 100% of the parameter. The tool description does not add any additional meaning about the parameter (e.g., format, constraints, or how to obtain the UUID). Given the high schema coverage, the baseline is 3, and the description does not compensate further.
Input schemas describe structure but not intent. Descriptions should explain 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: 'Add ALL users to an internal squad'. It uses a specific verb (Add) and resource (users to squad), and the 'ALL' qualifier distinguishes it from squads_add_users (which adds specific users). The word 'internal' distinguishes it from external_squads_add_all_users. This unambiguously identifies the operation and sets it apart from related 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 implicitly signals that this tool is for adding every user to a squad, as opposed to adding selected users (which would use squads_add_users). However, it does not explicitly state when to prefer this tool over alternatives, nor does it mention any prerequisites or exclusions. The intended usage is clear from the name and description, but there is no explicit guidance for agent decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
squads_add_usersA
Add specific users to an internal squad (1-1000 per call, async 202)
| Name | Required | Description | Default |
|---|---|---|---|
| userIds | Yes | Array of user numeric IDs to add | |
| squadUuid | Yes | Squad UUID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It reveals the async nature ('async 202') and the per-call batch limit (1–1000), which is useful. However, it does not mention idempotency, permission requirements, or behavior on partial failure, leaving meaningful gaps for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with the core action front-loaded ('Add specific users to an internal squad') and constraints efficiently parenthesized. No redundant words; every element contributes to understanding the tool's behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter tool with no nested objects and no output schema, the description covers the action, scope, batch size, and async response. It does not explain how to verify async completion or handle errors, but for its simplicity the definition is nearly 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?
Both parameters are fully documented in the schema (squadUuid, userIds), giving 100% schema coverage. The description's '1–1000 per call' duplicates the schema's minItems/maxItems constraints without adding new meaning. Baseline 3 applies because the schema already carries the 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 specific verb and resource: 'Add specific users to an internal squad.' The qualifier 'specific' differentiates it from sibling 'squads_add_all_users', and 'internal' contrasts with external squad tools. Clear, unambiguous, and distinguishable from 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?
The description implies use for a defined subset of users (1–1000 per call) as opposed to all users, but it never explicitly names alternatives like squads_add_all_users or squads_remove_users, nor does it state when not to use this tool. Usage context is implicit rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
squads_createC
Create a new internal squad
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Squad name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states 'Create' implies a write operation, but it doesn't cover critical aspects like required permissions, whether the operation is idempotent, what happens on failure, or what the response looks like (e.g., success confirmation or squad ID). This is inadequate for a mutation tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste—it directly states the tool's action and target. It's appropriately sized and front-loaded, making it easy to parse without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 as a creation operation with no annotations and no output schema, the description is incomplete. It lacks details on behavioral traits (e.g., permissions, error handling), output expectations, and how it fits within the broader context of sibling tools, making it insufficient for effective agent 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?
The description adds no parameter information beyond what's in the schema, which has 100% coverage for the single parameter 'name'. Since schema coverage is high, the baseline score is 3, as the schema already fully documents the parameter, and the description doesn't compensate with additional semantics (e.g., naming 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 clearly states the verb ('Create') and resource ('a new internal squad'), making the purpose unambiguous. However, it doesn't differentiate from sibling tools like 'squads_add_users' or 'squads_update', which would require more specificity about what distinguishes creation from other squad operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 doesn't mention prerequisites (e.g., authentication, permissions), when not to use it, or how it relates to sibling tools like 'squads_list' or 'squads_update', leaving the agent without contextual usage cues.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
squads_deleteB
Delete an internal squad
| Name | Required | Description | Default |
|---|---|---|---|
| uuid | Yes | Squad UUID to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. While 'delete' implies a destructive operation, the description doesn't specify whether deletion is permanent, requires specific permissions, affects associated resources (e.g., users, nodes), or provides confirmation feedback. This leaves significant behavioral gaps for a destructive operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. It's appropriately sized for a simple deletion tool and immediately communicates the core purpose without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 deletion tool with no annotations and no output schema, the description is inadequate. It doesn't explain what 'delete' entails operationally, what happens to squad members or resources, whether the action is reversible, or what confirmation (if any) is returned. Given the tool's potential impact, more contextual information is needed.
Complex tools with many parameters or behaviors need more documentation. 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 parameter 'uuid' has 100% schema description coverage ('Squad UUID to delete'), so the schema already provides complete documentation. The description doesn't add parameter details beyond what's in the schema, but with zero parameters needing additional explanation, this meets the baseline for tools with comprehensive schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Delete an internal squad' clearly states the action (delete) and resource (internal squad), making the purpose immediately understandable. It distinguishes from other squad operations like 'squads_create' or 'squads_update', though it doesn't explicitly differentiate from general deletion tools like 'hosts_delete' or 'users_delete'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 doesn't mention prerequisites (e.g., squad must exist), consequences of deletion, or when to choose other squad tools like 'squads_remove_users' for partial removal instead of full deletion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
squads_getA
Get a specific internal squad by UUID
| Name | Required | Description | Default |
|---|---|---|---|
| uuid | Yes | Squad UUID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. 'Get' implies a read operation, but the description does not state what happens on not-found, whether authentication is required, or what the response shape looks like. For a no-annotation tool, more behavioral context is expected.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no unnecessary words. It front-loads the action, resource, and identifier type, making it immediately scannable and 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?
This is a simple single-parameter getter with no nested objects or enums, so the description covers what is needed to invoke the tool correctly. The lack of an output schema is a minor gap, but the return value is reasonably inferable as a squad object. Overall, the definition is adequate for the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the uuid parameter is described as 'Squad UUID'. The description reinforces that the UUID identifies an internal squad but does not add format details, examples, or clarify whether this is a canonical UUID versus a short UUID. The schema already does the essential work here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and identifies the resource ('specific internal squad') and the identifier mode ('by UUID'). This clearly distinguishes it from squads_list, which is for listing squads, and external_squads_get, which targets external squads.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 context is clear: use this when you have a UUID and need one specific internal squad. However, the description does not explicitly mention alternatives or exclusions, such as 'use squads_list to browse all squads' or 'use external_squads_get for external squads', leaving some routing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
squads_listB
List all internal squads
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. 'List all internal squads' implies a read-only operation but doesn't specify pagination behavior, sorting, filtering capabilities, authentication requirements, rate limits, or what 'internal' means operationally. This leaves significant behavioral questions unanswered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that communicates the core purpose without any wasted words. It's appropriately sized for a simple list operation 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 operation with no parameters and no output schema, the description is insufficiently complete. It doesn't explain what 'internal' means, what data is returned, whether results are paginated, or any authentication requirements. With no annotations and no output schema, more context is needed for effective tool 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?
With 0 parameters and 100% schema description coverage, the baseline would be 4. The description appropriately doesn't discuss parameters since none exist, and the schema already fully documents this. No additional parameter semantics are needed or provided.
Input schemas describe structure but not intent. Descriptions should explain 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 ('List') and resource ('all internal squads'), making the purpose immediately understandable. It doesn't explicitly distinguish from sibling tools like 'squads_get' (which might retrieve a specific squad), but the scope 'all' provides some differentiation from single-resource retrieval operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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. With sibling tools like 'squads_get' (likely for retrieving specific squads) and 'squads_create'/'squads_update'/'squads_delete' (for mutations), there's no indication of when this list operation is appropriate versus those alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
squads_remove_all_usersA
Remove ALL users from an internal squad (async 202)
| Name | Required | Description | Default |
|---|---|---|---|
| squadUuid | Yes | Squad UUID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that the operation is async and returns 202, which is useful. However, since there are no annotations, the description carries the full burden of behavioral disclosure. It does not mention that removing all users is irreversible or any permission requirements, which for a destructive operation is a notable gap. The core behavior is stated but not its consequences.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the action and includes the key async detail. There is no fluff, and it earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool with no output schema and no annotations, the description is mostly complete. It identifies the target and the async response, but it could be more explicit about the irreversible nature of the operation and any prerequisites. However, given the simplicity, it covers the essentials.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides a description for squadUuid (100% coverage), so the description adds no additional parameter meaning. Per rubric, with high schema coverage, a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Remove ALL users'), the target ('an internal squad'), and differentiates from similar tools by specifying 'ALL' and 'internal' (vs external). It also notes the async 202 response, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for bulk removal of all users from a squad, which distinguishes it from squads_remove_users (which likely removes specific users). However, it does not explicitly state when to use this over alternatives, nor provide exclusion conditions. The context is clear but not fully explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
squads_remove_usersA
Remove specific users from an internal squad (1-1000 per call, async 202)
| Name | Required | Description | Default |
|---|---|---|---|
| userIds | Yes | Array of user numeric IDs to remove | |
| squadUuid | Yes | Squad UUID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and does add an important trait: the operation is asynchronous and returns 202. However, it does not disclose what happens after acceptance, whether the removal is idempotent, or any side effects/requirements, leaving notable gaps for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence packs the action, scope, batch limit, and async behavior with no filler. The key constraint is front-loaded and every element earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter tool with a complete schema and no output schema, the description covers the essentials: target squad, specific users, batch limit, and the async 202 behavior. It is slightly thin on post-acceptance semantics and alternative-tool routing, but enough 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 100%, so the schema already documents squadUuid and userIds. The description adds the batch size constraint of 1-1000, which reinforces the schema's minItems/maxItems, but provides no additional parameter-level meaning beyond that.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action and resource: removing specific users from an internal squad, which immediately distinguishes it from squad-wide operations like squads_remove_all_users and from external squads. The verb 'Remove' plus the targeted resource make the tool's 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?
The phrase 'specific users' and the 1-1000 per-call cap clearly identify when this tool is appropriate for targeted removals, while the sibling names provide the contrast for add or remove-all cases. It does not explicitly name alternatives or exclusions, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
squads_reorderA
Reorder internal squads by providing each squad UUID with its new position
| Name | Required | Description | Default |
|---|---|---|---|
| items | Yes | Array of squads with their new positions |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only says 'reorder' without detailing side effects, authentication requirements, how unlisted squads are affected, or the idempotence of the operation. The behavioral burden falls entirely on the description, which fails to explain the consequences beyond the basic action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence containing no filler. Every word contributes to explaining the operation and input format.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is a simple one-parameter mutation, and the schema covers the input shape. However, it does not clarify whether the items array must contain the complete ordering or only changed positions, nor what the response looks like. With no annotations or output schema, these gaps make the description minimally adequate rather than complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline applies. The description adds no meaning beyond the schema's existing 'Squad UUID' and 'New position (0-based)' fields, but it does not need to since the schema already fully documents the parameter structure.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Reorder') and resource ('internal squads'), and the phrase 'internal squads' distinguishes this from the external_squads_reorder sibling. It clearly states the operation and 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 does not explicitly mention alternatives or when-not-to-use. The word 'internal' implies a contrast with external_squads_reorder, but no explicit routing or exclusion is provided, so usage guidance is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
squads_updateC
Update an internal squad
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | New squad name | |
| uuid | Yes | Squad UUID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states this is an update operation, implying mutation, but lacks details on permissions required, whether changes are reversible, error handling, or side effects. This is inadequate for a mutation tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. It's front-loaded with the core action and resource, making it easy to parse quickly. Every part of the sentence serves a clear purpose in conveying the tool's function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description is incomplete. It doesn't address behavioral aspects like permissions or side effects, nor does it explain the update scope or result format. Given the complexity of updating resources, this leaves significant gaps for an AI 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 100%, so the schema fully documents both parameters (uuid and name). The description doesn't add any meaning beyond this, such as explaining what a 'squad' represents or constraints on name changes. The baseline score of 3 reflects adequate but minimal value addition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Update') and resource ('an internal squad'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'squads_create' or 'squads_delete' beyond the basic verb, nor does it specify what aspects of a squad can be updated beyond what's implied by the parameters.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description doesn't mention prerequisites (e.g., needing a squad UUID), exclusions, or comparisons to sibling tools like 'squads_add_users' or 'squads_remove_users' for user management, leaving usage context entirely implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sub_page_configs_cloneC
Clone a subscription page configuration
| Name | Required | Description | Default |
|---|---|---|---|
| uuid | Yes | Config UUID to clone |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. 'Clone' implies a mutation (creating a new config), but the description doesn't state whether this is a deep or shallow copy, whether the clone is immediately active, whether it requires specific permissions, or what the response contains. The description adds minimal behavioral context beyond the verb itself.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the action and resource. It earns its place with no wasted words, though it could arguably include a bit more context 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 no annotations and no output schema, the description is thin. It doesn't explain the effect of cloning (e.g., whether it creates a new config with a new UUID), any side effects, or what the agent should expect in the response. Given the tool's complexity is low (one parameter), a bit more context would make it complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (the single 'uuid' parameter is described as 'Config UUID to clone'), so the schema already documents the parameter. The description doesn't add extra meaning about the parameter, such as whether the UUID must be a valid existing config or whether cloning preserves the same UUID. Baseline 3 is appropriate given full schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Clone a subscription page configuration' clearly states the verb (clone) and resource (subscription page configuration), which is specific enough to distinguish it from the sibling tools like sub_page_configs_create, sub_page_configs_update, and sub_page_configs_delete. However, it doesn't explicitly differentiate itself from the broader set of clone tools (e.g., node_plugins_clone), though the resource name provides that distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., whether the source config must exist), what happens to the cloned config (e.g., whether it's a new UUID), or when one might prefer this over sub_page_configs_create. An agent would have to infer usage from the name and schema alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sub_page_configs_createB
Create a subscription page configuration
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Config name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden of behavioral disclosure. It clearly indicates a mutating operation but does not mention whether duplicate names are rejected, what the response contains, or any permission or validation 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 a single, front-loaded sentence with no filler, repetition, or unnecessary detail. It is efficiently sized for the simple operation it describes.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 creation tool, the schema plus description allow an agent to make a basic call with a name. However, the description does not explain what a subscription page configuration is, what valid names look like, or what the call returns, leaving gaps that annotations or an output schema would normally fill.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema fully documents the single `name` parameter with 100% coverage, so the description adds no parameter-level meaning. Per the high schema coverage baseline, the schema carries this dimension adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('Create') and a specific resource ('subscription page configuration'), which distinguishes it from sibling actions like sub_page_configs_list, get, update, and delete. It does not elaborate on what the configuration contains or how it differs from subscription_templates_create, but the core purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as sub_page_configs_update, sub_page_configs_clone, or subscription_templates_create. The only implied signal is the verb 'create', so an agent must infer the use case without explicit context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sub_page_configs_deleteB
Delete a subscription page configuration
| Name | Required | Description | Default |
|---|---|---|---|
| uuid | Yes | Config UUID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. 'Delete' conveys that the operation is mutating, but it does not disclose permanence, cascading effects on subscriptions that reference the configuration, permissions required, or idempotency 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 a single, front-loaded sentence with no filler. It is appropriately concise for a one-parameter delete operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter delete, this is near the minimum viable level: the action and target are clear, and the parameter is fully documented. However, with no annotations and no output schema, the description omits destructive side effects and any return behavior, leaving the agent with only surface-level 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 schema already documents the only parameter, uuid, with the description 'Config UUID,' and schema coverage is 100%. The tool description adds no parameter-level meaning beyond that, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the action ('Delete') and the resource ('a subscription page configuration'), so an agent can understand the tool's core function at a glance. It does not add much beyond expanding the tool name, and it does not explicitly distinguish among the sibling sub_page_configs_* operations, though the verb itself is distinctive.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 alternatives, such as sub_page_configs_update, sub_page_configs_clone, or sub_page_configs_reorder. There are no prerequisites, exclusions, or notes about whether the configuration must be unused before deletion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sub_page_configs_getB
Get a subscription page config by UUID
| Name | Required | Description | Default |
|---|---|---|---|
| uuid | Yes | Config UUID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only states 'Get' which implies a read operation, but does not disclose return format, error behavior (e.g., 404 when not found), or any side effects. This is minimal transparency for a retrieval tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence that is front-loaded with the key action and resource. Every word contributes meaning, and there is 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?
For a simple get-by-UUID tool with one parameter and no output schema, the description is mostly sufficient, but it lacks context about how this config differs from the similar subscriptions_get_subpage_config tool. An agent might select the wrong tool without additional disambiguation, reducing completeness slightly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with the uuid parameter already described as 'Config UUID'. The description adds no additional meaning or format details beyond this. The baseline of 3 is appropriate because the schema already handles the parameter semantics adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'subscription page config' with the specific identifier 'by UUID', making the tool's purpose unambiguous. It distinguishes from sibling actions like list, create, update, delete, but does not differentiate from the similar-sounding subscriptions_get_subpage_config tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as subscriptions_get_subpage_config or when not to use it. The description offers no context about selection criteria, leaving the agent to infer that it is simply the config getter by UUID.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sub_page_configs_listA
List all subscription page configurations
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It accurately states the operation as a read-only list and that it returns all configurations, but adds no further context such as pagination, ordering, response format, or side-effect guarantee. For a zero-parameter list tool this is a minor gap rather than a critical omission.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no redundant words. It conveys the action, the resource, and the scope efficiently, appropriate for a simple list operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, side-effect-free list tool, the description is largely complete: it tells the agent what the tool does and what scope it covers. However, with no output schema and no mention of return fields or ordering, a bit more detail could help, but the gap is not significant given the trivial nature of the 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 and the input schema is empty, so the baseline is 4. The description adds no parameter-level detail, but none is needed since there is nothing to document.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('List') and resource ('subscription page configurations'), with 'all' clarifying scope. Clearly distinguishes itself from sibling CRUD operations on the same resource such as sub_page_configs_get, create, update, and delete, as well as from subscriptions_list which lists a different 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?
No guidance on when to use this tool versus alternatives. There is no mention of prerequisites, when not to use it, or why it should be selected over similar listing tools like subscriptions_list or subscriptions_get_subpage_config. The only usage hint is implicit in the name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sub_page_configs_reorderC
Reorder subscription page configurations
| Name | Required | Description | Default |
|---|---|---|---|
| uuids | Yes | Ordered array of config UUIDs |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full burden of behavioral disclosure. 'Reorder' implies changing order and likely persistence, but nothing is said about whether all config UUIDs must be provided, whether the operation replaces the entire ordering, or if there are side effects. This is a minimal mutation description with 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 a single sentence with no redundant words and the verb is front-loaded. It is very concise and structured well, though it sacrifices informational richness 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?
For a mutation tool with no output schema and no annotations, the description is not complete enough. It leaves critical operational details unspecified, such as whether the input must be the full ordered set or can be a partial reorder, and what the response/return behavior is. An agent invoking this tool would lack essential context about the semantics of 'reorder'.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already fully describes the single parameter 'uuids' as an 'Ordered array of config UUIDs', with 100% schema description coverage. The description adds no parameter-specific meaning beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('Reorder') and a specific resource ('subscription page configurations'), which distinguishes it from sibling tools like sub_page_configs_list, get, create, update, delete, and clone. It does not provide additional scope detail, but the action and target are 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 on when to use this tool versus alternatives. It does not mention related operations like sub_page_configs_list/update/delete, nor does it clarify when a reorder is appropriate or what prerequisites exist. The description is purely the action, with no contextual cues.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sub_page_configs_updateC
Update a subscription page configuration
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | New name | |
| uuid | Yes | Config UUID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden of behavioral disclosure. It only says 'Update', implying mutation, but it does not disclose whether updates are partial or full replacements, whether the function returns the updated configuration or just a success indicator, or any idempotency or permission considerations. The description adds no meaningful behavioral context beyond the verb.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, short sentence that is efficient and front-loaded with the action. However, it is so terse that it duplicates the tool name without adding substantial value. While it is not verbose, it may be considered under-specified rather than optimally concise, but the structure itself is clean and does not waste 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?
Given the tool is an update operation with no output schema and only two parameters, the description does not explain expected behavior. It does not mention idempotency, error handling (e.g., non-existent uuid), or the return value. Since there is no output schema to fall back on, the description is insufficient for an agent to call the tool correctly and interpret results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Both parameters (name and uuid) have descriptions in the schema, giving 100% coverage. The schema already clarifies that 'name' is the new name and 'uuid' is the config UUID. The description contributes no additional parameter semantics, so a baseline of 3 is appropriate given the schema's thorough documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the verb 'Update' and the resource 'subscription page configuration', clearly identifying the operation. It is unambiguous in its core purpose, though it does not explicitly differentiate from close siblings like sub_page_configs_clone, which also modifies a configuration but creates a copy. The basic action is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus related tools such as sub_page_configs_create, sub_page_configs_delete, or sub_page_configs_clone. It lacks any context about prerequisites (e.g., requiring an existing uuid) or scenarios where update is preferred. An agent must infer usage solely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
subscription_infoC
Get subscription info by short UUID (public endpoint)
| Name | Required | Description | Default |
|---|---|---|---|
| shortUuid | Yes | Short UUID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions 'public endpoint' which hints at accessibility, but doesn't disclose critical behavioral traits like authentication requirements, rate limits, error handling, or what specific subscription information is returned. For a tool with no annotation coverage, this leaves significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste. It's appropriately sized for a simple lookup tool and front-loads the essential information (action, resource, input method).
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 annotations and no output schema, the description is incomplete. It doesn't explain what subscription information is returned, error conditions, or how this tool differs from similar siblings. For a tool in a context with many alternatives, this leaves the agent guessing about appropriate 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?
The description adds minimal value beyond the input schema, which has 100% coverage. It mentions 'short UUID' but doesn't clarify format, length, or examples. With high schema coverage, the baseline is 3, but the description doesn't compensate with additional semantic context.
Input schemas describe structure but not intent. Descriptions should explain 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 ('Get') and resource ('subscription info'), and specifies the input method ('by short UUID') and access type ('public endpoint'). However, it doesn't explicitly differentiate from sibling tools like 'subscriptions_get_by_short_uuid' which appears to serve a similar purpose, preventing a perfect 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. With multiple sibling tools for subscription retrieval (e.g., 'subscriptions_get_by_short_uuid', 'subscriptions_get_by_username', 'subscriptions_list'), there's no indication of which tool to choose for different scenarios or any prerequisites for use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
subscription_request_history_listB
List subscription request history
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full burden of behavioral disclosure. It only restates the operation implied by the name and provides no details about pagination, scope, sorting, response shape, or any side effects/safety implications.
Agents need to know what a tool does to the 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 concise and front-loaded, using a single short sentence with no filler. It is appropriately sized for a zero-parameter list operation, though it adds no information beyond 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?
With no parameters, no annotations, and no output schema, the description is minimally adequate but leaves ambiguity around what the history includes, whether it is global or user-scoped, and how it relates to the similar sibling tools. An agent could invoke it correctly, but not with full confidence about what it will return.
Complex tools with many parameters or behaviors need more documentation. 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 shows no properties, so there are no parameter semantics to document. The baseline of 4 applies because the description does not need to clarify any parameter 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 states a specific verb ('List') and a specific resource ('subscription request history'), making the core purpose clear. However, it does not differentiate itself from similar siblings like 'subscription_request_history_stats' or 'users_subscription_request_history', so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With multiple sibling tools related to subscription request history, an agent receives no context about why this particular list tool should be selected.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
subscription_request_history_statsB
Get subscription request history statistics
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations to indicate read-only or safety behavior, the description carries the full burden. It only says 'Get ... statistics' and gives no information about aggregation, time ranges, scope, response shape, or side effects. This is a minimal disclosure that does not meaningfully explain 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 a single, front-loaded phrase with no wasted words. It is appropriately short for a parameterless tool, though slightly more detail about the nature of the statistics would improve completeness without harming conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 0-parameter tool with no output schema, the description must explain what the statistics are and what the caller can expect. 'Statistics' alone is vague and leaves critical context missing, such as whether this returns counts, trends, or a breakdown by status/period.
Complex tools with many parameters or behaviors need more documentation. 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. The description correctly implies this is a parameterless call, matching the baseline for no-parameter 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?
The description uses the specific verb 'Get' and identifies a distinct resource: subscription request history statistics. It distinguishes itself from sibling list/history tools through the word 'statistics', though it does not specify what those statistics are.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus related siblings like subscription_request_history_list or users_subscription_request_history. The implied use case is obtaining aggregated stats, but no explicit conditions, alternatives, or exclusions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
subscription_settings_getB
Get Remnawave subscription settings
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description carries the full burden. It only restates the operation (Get) and the resource; it does not disclose side effects, return format, authorization requirements, or whether this is a global settings read. For a read operation this is a notable gap, though the lack of parameters reduces risk.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. It efficiently names the resource and avoids redundancy, which is entirely appropriate for a zero-parameter getter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple zero-parameter getter, the description is minimally viable: it states what is retrieved. However, with no output schema and no annotations, it leaves uncertainty about what 'subscription settings' encompasses and what the response will contain, so it could be richer.
Complex tools with many parameters or behaviors need more documentation. 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 is an empty object, so there is nothing for the description to explain. Baseline of 4 is appropriate because parameter semantics are trivially satisfied.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and a specific resource ('Remnawave subscription settings'), making the core operation clear. It does not explicitly distinguish from siblings like subscription_info or subscription_templates_get, but the resource is distinct enough that an agent can infer this is a general settings getter.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 subscription_settings_update or subscription_templates_get. The description does not give context, preconditions, or exclusions, leaving the agent to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
subscription_settings_updateB
Update Remnawave subscription settings (API 3.x: profile title/support link/update interval/HAPP fields moved to custom response headers)
| Name | Required | Description | Default |
|---|---|---|---|
| uuid | Yes | Settings UUID (required by API) | |
| hwidSettings | No | HWID settings configuration | |
| customRemarks | No | Custom remarks object | |
| responseRules | No | Response rules configuration (supports encryption and disableHwidCheck) | |
| randomizeHosts | No | Randomize host order in subscriptions | |
| isShowCustomRemarks | No | Show custom remarks | |
| customResponseHeaders | No | Custom response headers (supports {{STATUS}} and {{RESET_STRATEGY}} template variables) | |
| serveJsonAtBaseSubscription | No | Serve JSON at base subscription URL |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the API 3.x field move but does not describe side effects, reversibility, partial vs full update behavior, validation, or response format. For a mutation tool, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, compact sentence with the core purpose front-loaded and the API version note appended in parentheses. It avoids fluff and delivers the key information efficiently, though it could be slightly more 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?
The tool has 8 parameters including several nested objects (hwidSettings, customRemarks, responseRules, customResponseHeaders), yet the description offers no guidance on how to structure these objects or what constraints apply. With no output schema and no annotations, this is inadequate for correct invocation of a complex update tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% so the baseline is 3. The description adds value by clarifying that certain legacy fields are now under customResponseHeaders, which helps interpret that parameter. However, it does not provide additional semantic context for most other parameters beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (update) and resource (Remnawave subscription settings), and adds a version-specific note about field relocations, distinguishing it from generic settings_update and template tools. The verb+resource combination is precise and 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 does not explicitly state when to use this tool versus alternatives like settings_update or subscription_templates_update. It provides no exclusions, no mention of conditions, and only implies usage through the resource name. The API version note is informational, not usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
subscriptions_get_by_idC
Get subscription details by user numeric ID
| Name | Required | Description | Default |
|---|---|---|---|
| userId | Yes | User numeric ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only says 'Get subscription details' without describing what 'details' includes, whether the response is raw or processed, or any side effects or permission requirements. The read-only nature is implied but not explicitly stated, and no error or edge-case behavior is mentioned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is concise and front-loaded with the action and key. It avoids redundancy and doesn't waste words. However, it might be too brief to cover important context, but that is a completeness issue, not a conciseness problem.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 (one required parameter, no output schema) and the presence of multiple sibling getters, the description is still incomplete. It does not specify the return format or what 'details' contains, nor does it clarify whether the look-up is by the user's subscription or the user's ID itself. An agent would need to infer how to interpret the result and how this differs from other subscription retrieval endpoints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents userId as 'User numeric ID' with 100% coverage, so the description adds no new parameter semantics. The baseline of 3 is appropriate because the schema adequately defines the single parameter, and the description does not need to compensate for any gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear action ('Get subscription details') and identifies the key lookup mechanism ('by user numeric ID'). This distinguishes it from sibling getters that use username or short_uuid, though it doesn't name those alternatives explicitly. The resource and purpose are 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 choose this tool over subscriptions_get_by_username, subscriptions_get_by_short_uuid, or other subscription retrieval tools. The only hint is the parameter name, leaving the agent to infer that it should be used when a numeric user ID is available. No exclusions or alternative recommendations are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
subscriptions_get_by_short_uuidC
Get subscription details by short UUID
| Name | Required | Description | Default |
|---|---|---|---|
| shortUuid | Yes | Short UUID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states a read operation ('Get'), implying it's non-destructive, but doesn't disclose behavioral traits such as authentication requirements, error handling, rate limits, or what 'subscription details' includes. This is inadequate for a tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste. It front-loads the core purpose without unnecessary elaboration, making it easy 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 no annotations and no output schema, the description is incomplete. It doesn't explain what 'subscription details' returns, error conditions, or security context. For a read operation in a system with authentication-heavy siblings, this leaves significant 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 100%, with the parameter 'shortUuid' documented in the schema. The description adds no additional meaning beyond implying it's used for lookup, matching the baseline score when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and resource ('subscription details') with a specific lookup method ('by short UUID'). It distinguishes from siblings like 'subscriptions_get_by_username' and 'subscriptions_get_by_uuid' by specifying the identifier type. However, it doesn't explicitly contrast with 'subscription_info' which might serve a similar purpose, preventing a perfect 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 like 'subscriptions_get_by_username', 'subscriptions_get_by_uuid', or 'subscription_info'. It lacks context about prerequisites (e.g., authentication needs) or typical scenarios, leaving the agent to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
subscriptions_get_by_usernameC
Get subscription details by username
| Name | Required | Description | Default |
|---|---|---|---|
| username | Yes | Username |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states it's a read operation ('Get'), but doesn't disclose behavioral traits such as authentication requirements, rate limits, error handling (e.g., if username not found), or what 'subscription details' includes. This leaves significant gaps for an agent to use it effectively.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core action ('Get subscription details') and specifies the method ('by username'). There is no wasted verbiage, making it easy 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 no annotations and no output schema, the description is incomplete. It doesn't explain what 'subscription details' includes, potential errors, or how it differs from similar tools. For a read tool with one parameter, it's minimally adequate but lacks context needed for robust 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 100%, with the parameter 'username' fully documented in the schema. The description adds no additional meaning beyond implying the parameter is used for lookup, so it meets the baseline of 3 where the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Get') and resource ('subscription details') with a specific lookup method ('by username'). It distinguishes from siblings like 'subscriptions_get_by_uuid' and 'subscriptions_get_by_short_uuid' by specifying the identifier type, though it doesn't explicitly contrast with 'subscription_info' which might be similar.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'subscriptions_get_by_uuid' or 'subscriptions_get_by_short_uuid'. The description implies usage when you have a username, but it doesn't specify prerequisites, error conditions, or comparisons to sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
subscriptions_get_connection_keysB
Get connection keys for a user subscription
| Name | Required | Description | Default |
|---|---|---|---|
| userId | Yes | User numeric ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, and 'Get' only signals a read operation. It does not disclose whether the result is per-subscription or per-node, whether keys are sensitive or derived, or what the response looks like, leaving meaningful behavioral uncertainty.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler or repeated information. It is appropriately compact for a one-parameter read operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (one required parameter, no output schema), so this is near-viable. However, 'connection keys' is domain-specific and undefined, and with no output schema or annotations the agent cannot anticipate the return shape or edge cases such as a user with no subscription.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and userId is already documented as 'User numeric ID' with a required integer type. The description adds no additional meaning beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Get') and resource ('connection keys for a user subscription'), so the core purpose is identifiable. It does not explain what connection keys are or explicitly differentiate from related subscription/connection sibling tools, but the verb+object is enough to avoid being a tautology.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 related siblings such as subscriptions_get_by_id, subscriptions_get_by_username, or connections_fetch_by_user. The description implies a simple lookup but offers no exclusions, prerequisites, or alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
subscriptions_get_raw_by_short_uuidC
Get raw subscription config by short UUID
| Name | Required | Description | Default |
|---|---|---|---|
| shortUuid | Yes | Short UUID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It establishes that this is a read operation ('get') but does not say what makes the config 'raw', whether it returns unparsed/undecorated data, or how the response differs from the non-raw lookup. Too little behavioral context for a tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single six-word sentence that states the operation and lookup key with zero filler. The key information is front-loaded and nothing in the description wastes the agent's attention.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 low parameter complexity, the surrounding context includes subscriptions_get_by_short_uuid, subscriptions_get_by_id, and subscriptions_get_by_username, with no explanation of what 'raw' means or when it is preferred. Given the schema, annotations, and output schema provide almost no mitigating information, the description alone is insufficient 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?
Schema description coverage is 100% and the only parameter, shortUuid, is documented in the schema as 'Short UUID'. The description adds nothing beyond echoing that lookup key, so the baseline of 3 applies since the schema is doing the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get raw subscription config') plus the lookup key ('by short UUID'). It is clear, but it does not distinguish this tool from the very similar sibling 'subscriptions_get_by_short_uuid' — the word 'raw' is left undefined, so an agent cannot tell what makes this variant different.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 instead of the nearly identical sibling 'subscriptions_get_by_short_uuid', nor any mention of alternatives like subscriptions_get_by_id or subscriptions_get_by_username. The agent must infer the intended use case from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
subscriptions_get_subpage_configD
Get subscription page configuration
| Name | Required | Description | Default |
|---|---|---|---|
| shortUuid | Yes | Short UUID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. The description only says 'Get subscription page configuration', which implies a read operation but does not state side effects, permissions, or what happens on success or failure. There is no information about return format, pagination, or whether the operation is safe.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence, which is concise in length but under-specified. It does not front-load any scoping or usage constraints, and the brevity is not an asset because it leaves the tool's purpose ambiguous. The description is essentially a restatement of the tool name and adds little 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 tool with no output schema and an ambiguous purpose, the description is severely incomplete. It does not explain what 'subscription page configuration' means, what the return value is, or how it relates to the many sibling tools that appear to overlap. The agent lacks sufficient context to call this 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 schema has 100% description coverage, but the parameter description is only 'Short UUID', which is extremely minimal. The tool description adds no meaning beyond the schema – it does not clarify what the UUID refers to (subscription, subpage, config) or how it should be formatted. Baseline 3 applies when schema covers the parameter, but here the schema's own description is so thin that it provides almost no value, so a 2 is warranted.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a verb ('Get') and a resource ('subscription page configuration'), but the resource is vague and not clearly defined. There are closely related sibling tools such as sub_page_configs_get and subscriptions_get_by_short_uuid, yet the description gives no indication of how this tool differs. The purpose is not immediately clear or actionable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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. There is no mention of conditions, prerequisites, or exclusions. The agent is left without any direction on selecting this tool over the many similar subscription and sub-page configuration tools in the sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
subscriptions_listC
List all subscriptions with pagination
| Name | Required | Description | Default |
|---|---|---|---|
| size | No | Number of subscriptions | |
| start | No | Offset for pagination |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It mentions pagination but doesn't specify default values, rate limits, authentication requirements, or what happens when no subscriptions exist. For a list operation with zero annotation coverage, this leaves significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that communicates the core functionality without any wasted words. It's appropriately sized for a straightforward list operation and gets directly to the point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a list operation with no annotations and no output schema, the description is insufficient. It doesn't explain what information is returned about subscriptions, how results are ordered, error conditions, or authentication requirements. The agent would need to guess about important operational 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 100%, with both parameters ('start' and 'size') clearly documented in the schema. The description adds the concept of pagination but doesn't provide additional semantic context beyond what the schema already specifies, meeting the baseline expectation.
Input schemas describe structure but not intent. Descriptions should explain 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 ('List') and resource ('all subscriptions'), making the purpose unambiguous. However, it doesn't differentiate from sibling subscription tools like 'subscription_info' or 'subscriptions_get_by_*', which are more specific retrieval operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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. The description doesn't mention sibling tools like 'subscription_info' (for single subscription details) or 'subscriptions_get_by_*' (for filtered lookups), leaving the agent to guess about appropriate use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
subscription_templates_createB
Create a new subscription template
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Template name | |
| templateType | Yes | Template type (client format) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description bears full responsibility for behavioral disclosure. It only says 'create' which implies a state change, but does not mention side effects, permissions, duplication behavior, or what happens after creation. This is a clear gap for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with zero wasted words. It is front-loaded with the primary action and resource, making it easy to read. Terse, but appropriately-sized for such a simple create operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given only two well-described parameters and no output schema, the description plus input schema is sufficient for basic invocation. However, without annotations, it lacks any note about creation behavior, defaults, or what happens after creation, leaving it at a minimum viable level but not truly 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 provides 100% description coverage for the two parameters (name, templateType), including an enum for templateType. The description adds no extra parameter meaning beyond the schema, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the exact verb 'create' and the specific resource 'subscription template', with 'new' indicating an insert operation. This clearly distinguishes it from the other subscription_templates siblings (list, get, update, delete, reorder) without needing to open their schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 updating an existing template or listing templates. No prerequisites, conditions, or exclusions are mentioned, leaving the agent to 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.
subscription_templates_deleteB
Delete a subscription template
| Name | Required | Description | Default |
|---|---|---|---|
| uuid | Yes | Template UUID to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full burden of behavioral disclosure. 'Delete' implies destructive intent, but the description does not state that deletion is permanent, whether dependent resources are affected, or whether confirmation or special permissions are required. This is a notable gap for a destructive operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with zero redundancy. Every word earns its place, and the action-resource structure is immediately clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 very simple tool with one documented parameter, and the schema covers invocation. However, with no annotations and no output schema, the description omits behavioral consequences such as irreversibility, success/error behavior, and any side effects. It is minimally 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 input schema fully describes the only parameter, uuid, as 'Template UUID to delete' with 100% coverage. The description adds no additional parameter meaning beyond what the schema already provides, so the baseline score 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 the specific action and resource: 'Delete a subscription template'. Among the sibling tools in the subscription_templates_* family, this is the only delete operation, so there is no ambiguity. It lacks detail about scope or effects, but the core purpose is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, nor does it mention deletion being irreversible, any prerequisites, or related operations like create/update/list. An agent must infer usage entirely from the name and one-line description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
subscription_templates_getB
Get a subscription template by UUID
| Name | Required | Description | Default |
|---|---|---|---|
| uuid | Yes | Template UUID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description itself must signal behavioral traits. 'Get' clearly indicates a read/lookup operation with no side effects, but the description does not disclose return format, error behavior, or any special handling. This is adequate but minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single focused sentence with the verb, resource, and lookup key front-loaded. There is no filler, redundancy, or unnecessary context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read operation, the description combined with the full schema is largely sufficient for an agent to invoke the tool. The absence of an output schema and annotations is partially mitigated by the simplicity of the operation, though some context about what a subscription template is or what to expect back 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?
Schema description coverage is 100%, and the single uuid parameter is already documented as 'Template UUID'. The description's 'by UUID' adds no semantic meaning beyond what the schema provides, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get'), names the resource ('subscription template'), and identifies the lookup key ('by UUID'), making the tool's core purpose unambiguous. It is distinguishable from subscription_templates_list, create, update, and delete, though it does not explicitly differentiate itself from other sibling getter 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 gives no guidance on when to use this tool versus alternatives such as subscription_templates_list or subscriptions_get_by_id. The only implied use case is having a UUID and needing a subscription template; no prerequisites, exclusions, or alternative routing are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
subscription_templates_listB
List all subscription templates
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full behavioral burden. It only says 'List all subscription templates' without disclosing whether the operation is read-only, requires authentication, supports pagination, or what the response format is. This is insufficient for a tool with zero annotation support.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no extraneous words. It is appropriately sized for a simple list operation and is front-loaded with the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, no annotations, and no parameter details, the description is the sole source of information. It lacks details on return structure, authentication requirements, or any limiting behaviors like pagination. For a tool that lists all templates, an agent may need to know what fields are returned or any special considerations, making this a notable 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 tool has zero parameters, and the schema confirms this with 100% coverage. Per the rubric, a zero-parameter tool receives a baseline of 4, as there is nothing to explain. The description adds no parameter information, but none 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 clearly states the verb 'List' and the resource 'subscription templates', making the purpose unambiguous. However, it does not explicitly differentiate from sibling list tools like subscriptions_list or subscription_templates_get, though the resource name itself provides some distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as subscription_templates_get for retrieving a specific template. The description is purely declarative with no context, exclusions, or alternative suggestions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
subscription_templates_reorderA
Reorder subscription templates by providing each template UUID with its new position
| Name | Required | Description | Default |
|---|---|---|---|
| items | Yes | Array of templates with their new positions |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden of behavioral disclosure. It only states the action and input format, but does not disclose side effects, whether the reorder is permanent, permission requirements, or constraints (e.g., full list vs. partial). For a mutation tool, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that front-loads the action and resource, with no superfluous words. It is concise and efficiently communicates the core operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a relatively simple reorder operation, the schema is clear, but the description lacks important behavioral context such as whether all templates must be provided, what happens with duplicate positions, or error handling. Since there are no annotations and no output schema, the description should cover these aspects but does not.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides 100% coverage with descriptions for both 'uuid' and 'viewPosition'. The description essentially restates the schema's purpose without adding extra semantics, such as validation rules, default behavior, or interaction between items. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Reorder' and the resource 'subscription templates', and specifies the input mechanism ('by providing each template UUID with its new position'). It is distinct from other reorder tools by explicitly 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?
The description implies when to use the tool based on the verb and resource, but does not provide explicit guidance on when to choose it over alternatives or when not to use it. No exclusions or comparisons are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
subscription_templates_updateB
Update an existing subscription template
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | New template name | |
| uuid | Yes | Template UUID | |
| templateJson | No | Template JSON configuration object | |
| encodedTemplateYaml | No | Base64-encoded YAML template |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. 'Update' implies mutation but the description doesn't state whether it performs partial updates, replaces the entire template, requires the record to exist, or returns the updated template. This is a significant gap for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, tightly worded sentence with zero filler. It front-loads the action and resource, making the tool's purpose instantly scannable. No word is wasted, though more behavioral detail could be added without hurting 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 it's a mutation tool with no annotations anywhere and no output schema, the description is too thin. It lacks usage guidance, behavioral transparency, and clarity about the update semantics (partial vs. full replacement). Even though the schema covers parameters well, an agent isn't equipped to call this correctly with confidence.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with useful descriptions for each parameter (e.g., 'New template name', 'Base64-encoded YAML template'). Since the schema already explains every parameter, the description doesn't need to add much. It provides no extra semantic detail beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Update') and a clear resource ('an existing subscription template'), making its intent immediately obvious. It is easily distinguished from sibling tools like subscription_templates_list, subscription_templates_create, and subscription_templates_delete without needing to inspect 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?
No context is provided about when to use this tool versus alternatives. It doesn't mention that a template must already exist, whether the update is partial or full, or what happens to fields omitted from the request. An agent has no guidance on preconditions or side effects.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
system_bandwidth_statsC
Get bandwidth statistics
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states 'Get bandwidth statistics' but doesn't specify if this is a read-only operation, requires authentication, has rate limits, or what the output format might be. This leaves significant gaps for an agent to understand how to invoke it safely and effectively.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient phrase ('Get bandwidth statistics') that is front-loaded and wastes no words. It directly conveys the core action without unnecessary elaboration, making it highly concise 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 complexity of a statistics tool with no annotations and no output schema, the description is incomplete. It doesn't explain what bandwidth statistics are returned (e.g., metrics, time frames, units) or behavioral aspects like permissions or data freshness. This leaves the agent with insufficient context to use the tool effectively.
Complex tools with many parameters or behaviors need more documentation. 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 parameters with 100% coverage, so no parameter documentation is needed. The description doesn't add parameter details, but since there are no parameters, this is acceptable. A baseline of 4 is appropriate as the schema fully covers the lack of parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get bandwidth statistics' clearly states the verb ('Get') and resource ('bandwidth statistics'), making the purpose understandable. However, it lacks specificity about what bandwidth statistics are retrieved (e.g., system-wide, per-node, time range) and doesn't differentiate from sibling tools like 'system_stats' or 'system_nodes_statistics', which might overlap in 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 provides no guidance on when to use this tool versus alternatives. With siblings like 'system_stats' and 'system_nodes_statistics' that might offer related metrics, there's no indication of context, prerequisites, or exclusions for selecting 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.
system_configurationB
Get Remnawave panel configuration
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. The verb 'Get' does convey a read-only, non-mutating operation, which is the key behavioral trait. However, it does not disclose what the returned configuration contains, whether it is sensitive, or whether any operational caveats apply.
Agents need to know what a tool does to the 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 one short, front-loaded sentence with no filler. Every word earns its place, and nothing relevant is over-explained.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 operation, the description is minimally sufficient to invoke the tool. But with no output schema and no annotations, it does not clarify what 'panel configuration' includes or how it differs from related getters, leaving some ambiguity for an agent selecting among siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the schema is an empty object, so there is no parameter meaning for the description to add. Baseline 4 applies because there is nothing to document.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get') and a clear resource ('Remnawave panel configuration'), so it is not a tautology and communicates the core operation. It does not explicitly differentiate from adjacent getters like settings_get or system_metadata, 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 offers no guidance on when to prefer this tool over related configuration/settings/metadata tools, and it names no alternatives or exclusions. The agent is left to infer which of the many sibling 'get' tools is the right one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
system_generate_x25519B
Generate X25519 key pair for VLESS Reality
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden but only states what the tool does, not how it behaves (e.g., whether it returns public/private keys, format, security implications, or side effects). This leaves critical behavioral traits undisclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It is front-loaded and earns its place by clearly conveying the essential 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 has no parameters and no output schema, the description adequately covers the purpose but lacks details on behavior, output format, or integration context. It's minimally viable but leaves gaps in understanding how to use the generated keys.
Complex tools with many parameters or behaviors need more documentation. 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 parameters and 100% schema description coverage, the schema fully documents the lack of inputs. The description adds value by specifying the key type (X25519) and use case (VLESS Reality), which provides context beyond the empty schema, justifying a score above baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Generate X25519 key pair') and the purpose ('for VLESS Reality'), which is specific and informative. However, it doesn't explicitly differentiate from sibling tools like 'system_metadata' or 'system_stats', which lowers it from a perfect 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 whether it's for initial setup, key rotation, or specific configurations. Without annotations or context, the agent must infer usage from the purpose alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
system_healthB
Check Remnawave panel health status
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states 'Check' which implies a read-only operation, but doesn't specify whether this requires authentication, has rate limits, returns real-time vs cached data, or what format the health status takes. For a tool with zero annotation coverage, this leaves significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence with zero wasted words. It's front-loaded with the essential purpose and doesn't include any unnecessary elaboration. Every word earns its place in conveying the core functionality.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 annotations, no output schema, and the description provides minimal behavioral context, this is incomplete for a system health checking tool. The agent won't know what the health status includes, whether it's comprehensive or partial, what format it returns, or any prerequisites for use. The description should provide more context about what 'health status' encompasses.
Complex tools with many parameters or behaviors need more documentation. 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 0 parameters with 100% schema description coverage, so the schema already fully documents the parameter situation. The description appropriately doesn't mention parameters since none exist, which is correct. A baseline of 4 is appropriate for zero-parameter tools when the schema coverage is complete.
Input schemas describe structure but not intent. Descriptions should explain 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 'Check Remnawave panel health status' clearly states the verb ('Check') and resource ('Remnawave panel health status'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'system_stats' or 'system_metadata' that might provide related system information, preventing a perfect 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 like 'system_stats' or 'system_metadata' from the sibling list. It lacks context about what specific health aspects it checks or when it's appropriate compared to other system-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
system_metadataB
Get Remnawave panel metadata and version information
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It implies a read-only operation ('Get'), but doesn't disclose behavioral traits like authentication requirements, rate limits, error conditions, or what specific metadata and version information is returned. This leaves gaps for an agent to understand how to invoke it effectively.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without any wasted words. It's appropriately sized and front-loaded, making it easy 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 complexity of a system metadata tool with no annotations and no output schema, the description is incomplete. It doesn't explain what 'metadata and version information' includes, the return format, or any behavioral context, which could hinder an agent's ability to use it correctly without additional trial or documentation.
Complex tools with many parameters or behaviors need more documentation. 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 0 parameters, and the input schema has 100% description coverage (though empty). The description doesn't need to add parameter semantics, so a baseline score of 4 is appropriate, as there's no missing information to compensate for.
Input schemas describe structure but not intent. Descriptions should explain 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's purpose with a specific verb ('Get') and resource ('Remnawave panel metadata and version information'). It distinguishes from many siblings that manage hosts, nodes, users, etc., but doesn't explicitly differentiate from other system_* tools like system_health or system_stats, which might also provide system-level information.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description doesn't mention prerequisites, context, or exclusions, such as whether it requires authentication or if other tools like system_health might be more appropriate for specific needs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
system_nodes_metricsC
Get detailed node metrics
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states a read operation ('Get') but doesn't cover aspects like authentication needs, rate limits, data format, or potential side effects. This is inadequate for a tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. It's front-loaded with the core action and resource, making it highly concise and well-structured for quick comprehension.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 annotations and no output schema, the description is incomplete. It lacks details on what 'detailed node metrics' includes, how data is returned, or any behavioral context. For a tool in a system context with siblings, this leaves significant gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description doesn't add param info, which is appropriate here. Baseline is 4 for zero parameters, as it avoids redundancy.
Input schemas describe structure but not intent. Descriptions should explain 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 'Get detailed node metrics' states a clear verb ('Get') and resource ('node metrics'), but it's vague about what 'detailed' entails and doesn't distinguish from sibling tools like 'system_nodes_statistics' or 'system_health'. It avoids tautology but lacks specificity for 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 on when to use this tool versus alternatives such as 'system_nodes_statistics' or 'system_health'. The description implies a context of retrieving metrics but offers no explicit when/when-not instructions or prerequisites, leaving usage unclear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
system_nodes_statisticsC
Get node statistics
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only states the action without disclosing behavioral traits like read-only status, potential side effects, rate limits, or authentication needs. It's minimal and doesn't add meaningful context beyond the basic action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words, making it appropriately concise. However, it could be more structured by front-loading key details, but its brevity is a strength in this context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity implied by 'statistics' and the lack of annotations and output schema, the description is incomplete. It doesn't explain what statistics are returned, their format, or any limitations, leaving significant gaps for the agent to understand the tool's 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 tool has 0 parameters with 100% schema description coverage, so no parameter information is needed. The description doesn't add semantics beyond the schema, but this is acceptable given the lack of parameters, aligning with the baseline for zero parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get node statistics' clearly states the action (get) and resource (node statistics), but it's vague about what 'node statistics' entails and doesn't differentiate from sibling tools like 'system_nodes_metrics' or 'system_stats'. It provides basic purpose but lacks specificity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 'system_nodes_metrics' or 'system_stats'. The description offers no context, prerequisites, or exclusions, leaving the agent to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
system_srr_matcherC
Test subscription request routing rules
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | Input string to test against SRR rules |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full responsibility for disclosing side effects and behavior. 'Test' implies a non-mutating operation, but the description doesn't state whether it is a read-only check, what information it returns, or whether it affects any stored routing rules. This is a significant gap for an unannotated tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single clear sentence with no wasted words and is appropriately front-loaded. It could be more informative without becoming verbose, but as a concise resource statement it earns a high 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?
With a single string parameter and no output schema, the description should at least hint at the expected outcome or side effects. It does not explain what result means, how to interpret failures, or whether this is a safe dry-run. The tool is simple enough that a few more sentences 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?
Schema coverage is 100%, and the description in the schema says the input is 'an input string to test against SRR rules'. The tool description reiterates that concept without adding format, examples, or constraints beyond the schema. Per the baseline rule, a score of 3 is appropriate when the schema handles the burden, but the description adds no extra 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 states a specific verb and resource: test subscription request routing rules. It expands the acronym and indicates the tool validates SRR behavior, which sets it apart from sibling tools like subscription_request_history_list. However, it doesn't clarify what a 'test' entails, stopping slightly short of a fully distinct 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?
There is no guidance about when to use this tool versus alternatives, no context such as diagnostics or rule debugging, and no exclusions. The intended use is only implied by the word 'Test'. An agent must infer whether this is a dry-run validation, a simulation tool, or a rule lookup.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
system_statsB
Get overall Remnawave panel statistics (users, nodes, traffic, memory, CPU)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states it's a 'Get' operation, implying read-only behavior, but doesn't disclose any behavioral traits such as rate limits, authentication requirements, or whether it returns real-time or aggregated data. The description adds minimal context beyond the basic action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the key action and resource, listing specific statistics without redundancy. Every word contributes to understanding the tool's scope, making it appropriately sized 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 is low (0 parameters, no output schema), the description is complete enough for a basic read operation. However, without annotations or output schema, it lacks details on behavioral aspects like data format or potential errors, leaving some gaps for an AI agent to infer 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 0 parameters, and schema description coverage is 100%. The description doesn't need to add parameter semantics, as there are none to document. It appropriately focuses on the tool's purpose without unnecessary details, meeting 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 the verb 'Get' and the resource 'overall Remnawave panel statistics', specifying the types of statistics (users, nodes, traffic, memory, CPU). It distinguishes from siblings like 'system_bandwidth_stats' or 'system_health' by focusing on comprehensive panel-level metrics. However, it doesn't explicitly differentiate from all siblings, such as 'system_nodes_statistics', which might overlap.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention when to prefer this over other system-related tools like 'system_health' or 'system_nodes_statistics', nor does it specify any prerequisites or exclusions. Usage is implied only by the tool's name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
system_stats_digestB
Get system statistics digest for a date-time range
| Name | Required | Description | Default |
|---|---|---|---|
| end | Yes | End date-time (ISO 8601) | |
| start | Yes | Start date-time (ISO 8601, e.g. 2026-08-01T00:00:00Z) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states that a digest is returned for a date-time range; it does not disclose whether the operation is read-only, what the digest contains, how aggregation works, or what response shape to expect.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, tight sentence with no filler words. It front-loads the action and resource, and every word contributes to the core meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple and both required parameters are fully documented, so invocation is straightforward. However, with no output schema, no annotations, and multiple similar system_* siblings, the description leaves ambiguity about what a 'digest' contains and how it differs from other statistics tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: both start and end parameters are documented with ISO 8601 descriptions and an example. The description adds nothing beyond restating 'date-time range', so the schema carries the parameter semantic weight. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get'), a resource ('system statistics digest'), and a time range constraint. However, it does not explicitly distinguish the digest from closely named siblings like system_stats, system_stats_http, and system_stats_recap.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 the many other system_* statistics tools. The description only states what the tool does, with no exclusions, alternatives, or context to help an agent choose correctly among similar siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
system_stats_httpB
Get HTTP request statistics
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of disclosing behavior. 'Get HTTP request statistics' implies a read operation but says nothing about scope, time range, aggregation, caching, authentication, or whether the response is a snapshot or a computed summary.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. Every word earns its place, and the resource is named immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite being simple and parameterless, the description is incomplete because the surrounding context includes many closely related system stats tools. It does not define what 'HTTP request statistics' includes, what time period it covers, or how it differs from system_stats_digest, system_stats_recap, or system_bandwidth_stats. The absence of an output schema makes this ambiguity worse.
Complex tools with many parameters or behaviors need more documentation. 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 100%, so there is nothing for the description to clarify. Per the baseline for parameterless tools, 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 states a specific verb and resource: 'Get HTTP request statistics.' This is clear and immediately readable, but it does not differentiate itself from the many similar sibling tools such as system_stats, system_stats_digest, system_stats_recap, or system_bandwidth_stats.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 numerous other system_stats_* and bandwidth/statistics siblings. The description only says what it does, not when it is the right choice or when an alternative would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
system_stats_recapC
Get system statistics recap
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosureUTE, but it only states the action. It does not disclose whether this is a read-only operation, whether it requires specific permissions, what the response shape is, or whether there are performance implications (like aggregating across the whole system). Being a 'recap' suggests an aggregate/overview, but that is not spelled out as 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 brief and front-loaded, which earns it a passing score for conciseness. However, it is too under-specified to be considered 'appropriately sized': it saves all space by not communicating the tool's scope, output, or differentiation from siblings. A few more words would make it far more useful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 output schema, no annotations, and no parameter documentation to fill in gaps, but it sits in a large family of similar system_* tools. The description alone is not enough for an agent to know what 'recap' means, what data it returns, or how it compares to system_stats_digest and system_stats. Given the cluster of alternatives, this is a clear 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 tool has zero parameters)Skip, and schema coverage is 100% with an empty properties object. The baseline for 0 params is 4, and the description does not need to add parameter meaning since there are none. No additional semantic burden falls on the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get system statistics recap' states a specific verb and resource, so it's minimally clear. However, 'recap' is vague and does not distinguish it from the several sibling tools like system_stats, system_stats_digest, system_bandwidth_stats, system_nodes_metrics, system_nodes_statistics, and system_health. An agent would not know what this tool returns or how it differs from those siblings without opening 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 gives no guidance on when to use this tool versus alternatives. It does not mention any context, prerequisites, or exclusionshare, and it does not point to any sibling tool as an alternative. The name 'recap' implies a summary, but there is no explicit rule about when to choose it over system_stats_digest or system_stats.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tags_assignA
Replace the tags of one entity in a domain (config profiles, internal/external squads, node plugins, subscription page configs, subscription templates)
| Name | Required | Description | Default |
|---|---|---|---|
| tags | Yes | Full replacement tag list (uppercase letters, numbers, underscores, colons) | |
| uuid | Yes | UUID of the entity to tag | |
| domain | Yes | Domain the entity belongs to |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. 'Replace' correctly signals a destructive overwrite, and the schema parameter note says 'Full replacement tag list'. However, it does not disclose success/failure behavior, whether prior tags are removed atomically, 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?
One sentence with a clear subject-verb-object structure. The action 'Replace the tags' is front-loaded)Skip the rest. The parenthetical list of domains is compact and directly mirrors the schema enum.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
All parameters are required and fully documented in the schema, and the description identifies the domain scope. The main gap is the absence of an output schema and no statement about what the tool returns, which an agent may need to understand the result of calling this mutation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents domain, uuid, and tags. The description's parenthetical domain list duplicates the enum and adds no new meaning beyond the schema. It does not explain tag format rules, though the schema does.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Replace') and resource ('tags of one entity in a domain'), and enumerates the six supported domain types. It clearly conveys a mutation operation distinct from tag-listing siblings like tags_list, hosts_tags_list, and nodes_tags_list, though it does not explicitly name those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage: use it to replace tags on entities belonging to one of the listed domains. It does not state when not to use it, mention the tag-listing siblings, or clarify that this is a full overwrite rather than an incremental add/remove operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tags_listA
List all tags used in a domain (config profiles, internal/external squads, node plugins, subscription page configs, subscription templates)
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Domain to list tags for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. 'List' reasonably implies a read-only, non-mutating operation, and the phrase 'all tags' suggests a complete result set, but the description does not mention whether results are paginated, sorted, or scoped exactly to one domain per call. For a simple list tool this is adequate but not richly transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler. Listing the domain categories inline is useful even though they appear in the schema enum, and every part of the sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity tool with one required enum parameter fully documented in the schema, the description is nearly complete. It clearly states what is returned ('all tags') and over which domains, and the absence of an output schema is not a major gap because the return value is inherently a list of tags. It could be slightly stronger by noting which sibling tag-list tools cover other domains.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents the single 'domain' parameter with a full enum and a clear description, so schema coverage is 100%. The description merely repeats the same enum values in prose and adds no new meaning about parameter format, constraints, or behavior beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List' and the resource ('all tags used in a domain'), and enumerates the domain categories. It distinguishes itself from tags_assign (assign vs list) and the users/hosts/nodes tag list tools by explicitly covering config profiles, squads, node plugins, and subscription domains, though it does not explicitly name those siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when an agent needs to retrieve all tags for one of the listed domain types, and the domain enum gives clear context. However, it does not explicitly state when to prefer tags_list over users_tags_list, hosts_tags_list, nodes_tags_list, or any other alternative, and it provides no exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
users_accessible_nodesB
Get nodes accessible to a specific user
| Name | Required | Description | Default |
|---|---|---|---|
| userId | Yes | User numeric ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It doesn't state whether this is a read-only operation, whether it returns only node IDs or full node objects, whether it includes nodes accessible via squads, or what happens if the user doesn't exist. For a tool with no annotation coverage, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, concise sentence that front-loads the verb and resource. No wasted words. It is appropriately sized for a simple tool with one 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 tool with no output schema and no annotations, the description is too thin. It doesn't explain what 'accessible' means (e.g., does it include nodes via squads?), what the response shape is, or any error conditions. An agent would need to guess at the return format and semantics. The sibling squads_accessible_nodes suggests a related concept, but the description doesn't clarify the relationship.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: the only parameter, userId, is described as 'User numeric ID'. The description adds no additional meaning beyond the schema, so the baseline 3 applies. It doesn't clarify the format or constraints beyond 'numeric ID', but the schema already covers the essential 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 'Get nodes accessible to a specific user' clearly states the verb (get), resource (nodes), and scope (accessible to a specific user). It distinguishes itself from related tools like nodes_list (which lists all nodes) and squads_accessible_nodes (which lists nodes accessible to a squad), though it doesn't explicitly name those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context: use this when you need to know which nodes a specific user can access. However, it doesn't explicitly state when to use this versus alternatives like nodes_list or squads_accessible_nodes, nor does it mention any prerequisites (e.g., user must exist).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
users_bulk_all_extend_expirationB
Extend expiration date for ALL users
| Name | Required | Description | Default |
|---|---|---|---|
| days | Yes | Number of days to extend |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It clearly indicates a bulk mutation, but it does not disclose potential side effects, irreversibility, scope boundaries (e.g., whether disabled or deleted users are included), or any confirmation requirements. For an operation affecting all users, this is a significant transparency gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. It communicates the core action and scope efficiently, though more behavioral context would be warranted for a bulk-all mutation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 broad, potentially impactful operation with one parameter, no output schema, and no annotations. The description is too minimal: it fails to clarify what 'ALL users' means in practice, whether the extension is additive, and what safeguards or limitations apply. An agent needs more context to safely invoke this 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 schema already fully documents the single 'days' parameter with a description and a minimum value, so schema coverage is 100%. The tool description adds no additional meaning about how 'days' interacts with expiration, which is acceptable because the schema carries the 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 specific verb ('extend'), a clear resource ('expiration date'), and the exact scope ('ALL users'). This distinguishes it from sibling tools like users_bulk_extend_expiration and users_extend_expiration, which presumably target selected or single users.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'ALL users' implies the use case: this tool is for extending expiration dates across the entire user base, not for individual or selected users. However, it does not explicitly name any alternative tools or state when not to use it, leaving the routing mostly to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
users_bulk_all_reset_trafficB
Reset traffic counters for ALL users
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of disclosing behavior. It calls out a 'reset' operation but says nothing about the global reach, whether the action is reversible, what happens to existing traffic counters, or whether any confirmation is needed. For a tool affecting all users, this is a significant behavioral transparency gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. That is concise, but it is also close to a restatement of the tool name and lacks the surrounding context expected for a global destructive operation, so brevity comes at the cost of informativeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 global scope and the absence of annotations and output schema, the description should explain the impact, invariability, and what gets reset. It only says 'Reset traffic counters for ALL users', leaving an agent uninformed about whether to confirm before invoking such a broad action.
Complex tools with many parameters or behaviors need more documentation. 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 is an empty object, so there is nothing for the description to expand upon. Per the rubric, a zero-parameter tool gets a baseline of 4, and the description adds no unnecessary parameter noise.
Input schemas describe structure but not intent. Descriptions should explain 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 ('Reset traffic counters') and an explicit scope ('ALL users'), so an agent knows what the tool does and can distinguish it from per-user resets. It does not name sibling tools like users_bulk_reset_traffic or users_reset_traffic, so differentiation rests on the phrase 'ALL users'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for resetting every user's traffic at once, but it gives no explicit when-to-use guidance, no criteria for choosing it over siblings, and no mention of prerequisites or warnings. The 'ALL users' phrasing provides some context, but there is no comparison to alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
users_bulk_all_updateB
Update ALL users at once (async, returns 202)
| Name | Required | Description | Default |
|---|---|---|---|
| tag | No | New tag for all | |
| No | New email for all | ||
| status | No | New status for all | |
| expireAt | No | New expiration date for all | |
| telegramId | No | New Telegram ID for all | |
| description | No | New description for all | |
| hwidDeviceLimit | No | New HWID device limit for all | |
| trafficLimitBytes | No | New traffic limit for all | |
| trafficLimitStrategy | No | Traffic reset period for all |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses two important behavioral traits: the operation is asynchronous and returns HTTP 202. This is genuinely useful context beyond the schema. However, with no annotations provided, the description carries the full burden of behavioral disclosure, and it does not mention that all parameters are optional (so an empty call is valid), whether the operation is destructive/irreversible, or what the async response means for the agent (e.g., no immediate result, need to poll). The async disclosure is good but incomplete for a bulk mutation with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single compact sentence that front-loads the key facts: scope ('ALL users'), operation ('Update'), and behavior ('async, returns 202'). Every word earns its place. It could be slightly more structured (e.g., separating the async note), but it is appropriately sized and immediately 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 bulk mutation tool with 9 optional parameters, no annotations, and no output schema, the description is minimally adequate but leaves gaps. It tells the agent the call is async and returns 202, but does not explain what happens after the 202 (e.g., is there a job to poll?), whether an empty body is allowed, or how this differs from users_bulk_all_reset_traffic and users_bulk_all_extend_expiration. The schema covers parameters, but the operational context 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?
Schema description coverage is 100%, so the schema already documents all 9 parameters with per-field descriptions. The description adds no parameter-level meaning beyond the schema, which is the baseline 3 case. It does not clarify semantics like whether fields are applied only if provided, or how the enum values interact, but the schema already covers the basic meaning of each field.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Update') and resource ('ALL users'), and notes it is async and returns 202. This clearly distinguishes it from single-user update tools like users_update and from bulk operations that target a subset (users_bulk_update). It loses one point because it doesn't explicitly name the sibling it is not, though the 'ALL' emphasis and async note do most of the differentiation work.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this is for updating every user at once, which is a clear context signal. However, it does not explicitly state when to prefer this over users_bulk_update, users_bulk_all_reset_traffic, or users_bulk_all_extend_expiration, nor does it mention any prerequisites or caveats (e.g., no required parameters means it can be called with an empty body, which is a notable behavior). The async/202 note hints at usage but doesn't provide explicit when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
users_bulk_deleteB
Bulk delete selected users
| Name | Required | Description | Default |
|---|---|---|---|
| userIds | Yes | Array of user numeric IDs to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It conveys only the core destructive action and adds no information about permanence, cascading effects, permissions, or whether deletion is hard or soft. It is barely an expansion of the tool name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a compact four-word phrase with no filler, and the key scoping word 'selected' is present. It is appropriately sized for a simple one-parameter tool, though it is close to the tool name and adds little structural 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 tool with complete schema coverage, the description plus schema specify the action and input adequately. However, the destructive and high-impact nature of bulk deleting users is understated, and there is no safety hint from annotations or output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single userIds parameter is already clearly described as 'Array of user numeric IDs to delete'. The description adds no extra parameter meaning, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear action ('Bulk delete') and target ('selected users'), and the input schema scopes it to explicit user IDs. It is minimally distinguishable from siblings like users_delete and users_bulk_delete_by_status, though it never names them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'selected users' implies using this tool when you have a concrete set of user IDs to delete, which is reasonable. However, there is no explicit guidance about when to prefer this over users_delete, users_bulk_delete_by_status, or other bulk variants.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
users_bulk_delete_by_statusB
Bulk delete users by status
| Name | Required | Description | Default |
|---|---|---|---|
| status | Yes | User status to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It reveals that the tool deletes users (destructive) but does not state permanence, side effects, scope confirmation, or whether it is a hard or soft delete. For a bulk destructive operation, this lack of behavioral disclosure is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Five words convey the verb, resource, and filter with no filler. The key qualifier ('by status') is front-loaded. Perfectly concise for what it states.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema slash annotations and a destructive bulk operation, the description is too thin. An agent is missing information about irreversibility, affected scope, waiting behavior, and potential confirmation steps. The single well-documented parameter does not compensate for the missing operational 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 100% and the schema explicitly defines status as 'User status to delete'. The description adds no further parameter semantics but also doesn't need to given the schema fully documents the 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?
States a specific verb (delete), resource (users), and scope (bulk by status). The 'by status' qualifier distinguishes it from users_bulk_delete (presumably by IDs) and users_delete (single). Clear and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied through 'delete users by status' – if an agent needs to remove multiple users sharing a status, this is the tool. However, no explicit alternatives or exclusions are mentioned, and no guidance on when not to use it, though the operation type makes the use case reasonably inferable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
users_bulk_extend_expirationC
Bulk extend expiration date for selected users
| Name | Required | Description | Default |
|---|---|---|---|
| days | Yes | Number of days to extend | |
| userIds | Yes | Array of user numeric IDs |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only states the core action ('extend expiration date') but does not disclose side effects, permission requirements, reversibility, how the extension is applied (relative to current expiration), or any impact on subscriptions. For a mutation tool, this is insufficient 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 a single, direct sentence: 'Bulk extend expiration date for selected users'. It is front-loaded with the action and resource, wastes no words, and is appropriately short. It achieves maximum conciseness without sacrificing the core message.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 lacks essential context for a bulk mutation tool. It does not clarify that the operation applies only to the specified users, how the extension interacts with existing expiration dates, or any potential side effects on subscriptions or other settings. With no output schema and no annotations, a more complete description would be expected to guide the agent effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides descriptions for both required parameters (days and userIds), achieving 100% schema description coverage. The tool description adds no additional parameter details, so it earns the baseline score of 3. There is nothing wrong, but also no added value over the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Bulk extend expiration date for selected users'. It names the resource (expiration date) and the verb (extend), and 'selected users' implicitly distinguishes it from bulk-all operations like users_bulk_all_extend_expiration. However, it doesn't explicitly differentiate from the singular users_extend_expiration or mention any of its siblings, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus closely related siblings such as users_extend_expiration (single user) or users_bulk_all_extend_expiration (all users). There is no mention of conditions, prerequisites, or selection criteria for choosing the bulk-selected variant. This is a significant gap given the large number of sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
users_bulk_reset_trafficC
Bulk reset traffic for selected users
| Name | Required | Description | Default |
|---|---|---|---|
| userIds | Yes | Array of user numeric IDs |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden of behavioral disclosure. 'Reset traffic' implies a destructive/mutating operation, but the description does not explain side effects, reversibility, or any permission requirements. It lacks detail about what exactly happens to the users' traffic counters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence, which is concise but lacks any additional structure or emphasis. It is not front-loaded with critical details, and while it is not verbose, it is too brief to be considered well-structured for an agent needing to understand the tool's role among many siblings.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 lack of annotations and output schema, the description is insufficiently complete. It does not explain the operation's effect, any limitations, or how it differs from closely related tools like users_reset_traffic and users_bulk_all_reset_traffic. An agent could easily misuse this tool without additional 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 input schema fully documents the only parameter (userIds as an array of integers), so the description adds no extra meaning. Since schema coverage is 100%, a baseline of 3 is appropriate; the description could have added context like constraints on array size or expected ID format, but it does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the verb 'reset' and resource 'traffic' for 'selected users', which clearly indicates it resets traffic for a specified set of users. It distinguishes from users_bulk_all_reset_traffic by specifying 'selected' rather than all, but it doesn't explicitly contrast with the singular users_reset_traffic.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 its siblings. The description does not mention that users_bulk_all_reset_traffic exists for resetting all users, nor does it provide any context about use cases or prerequisites. This leaves the agent to infer the scope from the parameter schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
users_bulk_revoke_subscriptionB
Bulk revoke subscriptions for selected users
| Name | Required | Description | Default |
|---|---|---|---|
| userIds | Yes | Array of user numeric IDs |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description carries the full burden of disclosing behavior. 'Revoke' implies a mutation, but the description does not say what revocation entails, whether it is reversible, whether it requires special permissions, or what happens if some provided user IDs don't exist. For a mutation tool with no annotations, this level of disclosure is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one short, front-loaded sentence with no filler: 'Bulk revoke subscriptions for selected users'. Every word contributes to the purpose, making it easy to scan and process.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 mutation tool with no annotations and no output schema, this description leaves too much unspecified: what a revoked state means, whether the operation is atomic, how invalid userIds are handled, there is no clear success/partial-failure response. The single well-described parameter cannot fully compensate for this missing operational 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 100% and the single param userIds is fully documented as 'Array of user numeric IDs', which sets the baseline at 3. The description's 'for selected users' only loosely maps to that parameter and adds essentially no new meaning beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the action and resource — 'revoke subscriptions' — and adds 'for selected users', which clarifies that this tool targets a defined set of user IDs rather than all users. This helps distinguish it from sibling bulk_all tools, though it does not explicitly contrast it with the single-user users_revoke_subscription.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 context is implied: 'Bulk revoke ... for selected users' suggests this is the tool to call when revoking subscriptions for a specified list of users. However, it gives no explicit 'use this vs that' guidance, and the agent is left to infer that users_revoke_subscription is the single-user alternative and that bulk_all tools should be used for all users.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
users_bulk_updateB
Bulk update selected users (async, returns 202)
| Name | Required | Description | Default |
|---|---|---|---|
| tag | No | New tag | |
| No | New email | ||
| status | No | New status | |
| userIds | Yes | Array of user numeric IDs to update | |
| expireAt | No | New expiration date (ISO 8601) | |
| telegramId | No | New Telegram ID | |
| description | No | New description | |
| hwidDeviceLimit | No | New HWID device limit | |
| externalSquadUuid | No | New external squad UUID | |
| trafficLimitBytes | No | New traffic limit | |
| trafficLimitStrategy | No | Traffic reset period |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It does disclose that the operation is asynchronous and returns a 202, which is important operational context. However, it doesn't explain the implications of an async operation (e.g., whether the request is queued, if there's a task ID, how to track progress), nor does it mention any validation side effects, failure modes, or permissions required. Given the lack of annotationscars, this is a moderate gap but the async note adds some 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 a single, concise sentence that is front-loaded with the core action ('Bulk update selected users') and includes the key operational detail (async, returns 202). It avoids unnecessary fluff. However, it could be argued that it's slightly under-specifying, but that doesn't violate conciseness – it's a clear and efficient statement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 11 parameters anno schema but no output schema or annotations, the description is notably incomplete. An agent would need to understand what 'async' means for the response (it returns 202, but what's in the body?), whether partial updates are allowed, and how mistakes are surfaced. It also lacks guidance on batching limits or idempotency. The description is too thin relative to the tool's complexity and the context signals (no output schema) to be fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, meaning the schema already documents all 11 parameters with descriptions. The tool description does not add any extra meaning beyond what the schema provides, such as clarifying optionality (all are optional except userIds) or interaction between fields (e.g., that trafficLimitStrategy is only relevant if trafficLimitBytes is set). The baseline 3 is appropriate since the schema does a good job of defining each field's purpose, but the description adds no 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 a specific verb ('bulk update') and resource ('users'), and identifies the asynchronous nature with the 202 response code. While it doesn't explicitly distinguish it from the many sibling tools that also update users (such as users_update, users_bulk_update_squads, users_bulk_all_update), the name and mention of 'selected users' gives enough clarity for an agent to infer that this is a targeted bulk update for a subset of users.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus the numerous alternatives. It doesn't mention that this is for a specific set of users (as opposed to users_bulk_all_update which affects all users), nor does it clarify the relationship to the single-user 'users_update' or the other bulk update variants like 'users_bulk_update_squads'. An agent might struggle to choose the right tool without exploring the schema of each sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
users_bulk_update_squadsC
Bulk update internal squad assignments for selected users
| Name | Required | Description | Default |
|---|---|---|---|
| userIds | Yes | Array of user numeric IDs | |
| activeInternalSquads | Yes | Squad UUIDs to assign |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of explaining behavior. It only says 'update', which implies mutation, but does not disclose whether the assignment is additive, replacement-based, whether it affects existing assignments, permission requirements, or any side effects. The behavioral surface remains largely opaque.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler or redundancy. It wastes no words and efficiently conveys the core action, though it sacrifices important behavioral context in favor of 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?
For a bulk mutation tool affecting potentially many users, with no annotations and no output schema, the description is incomplete. It fails to explain the exact semantics of the assignment update, how invalid inputs are handled, whether this is a replace-all operation, or what response the caller should expect. The ambiguity is significant given the large sibling set of user and squad management 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 input schema already documents both parameters with 100% coverage. The description adds the context of 'internal squad assignments' and 'selected users', which maps to the activeInternalSquads and userIds fields, but it does not deepen the meaning beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Bulk update'), a resource ('internal squad assignments'), and a target ('selected users'), which is clear enough to identify the tool's main job. However, it does not explicitly distinguish itself from squads_add_users or squads_remove_users, nor does it say whether this replaces the existing squad set or just adds to 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 over siblings like squads_add_users, squads_remove_users, users_bulk_update, or external_squads_*. The description implies a bulk operation but gives no context for choosing it among the many related user/squad mutation tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
users_createB
Create a new VPN user in Remnawave
| Name | Required | Description | Default |
|---|---|---|---|
| tag | No | User tag for grouping | |
| No | User email | ||
| status | No | Initial user status | |
| expireAt | Yes | Expiration date in ISO 8601 format | |
| username | Yes | Unique username | |
| telegramId | No | Telegram user ID | |
| description | No | User description | |
| hwidDeviceLimit | No | Max number of HWID devices | |
| externalSquadUuid | No | External squad UUID | |
| trafficLimitBytes | No | Traffic limit in bytes (0 = unlimited) | |
| activeInternalSquads | No | Array of internal squad UUIDs | |
| trafficLimitStrategy | No | Traffic reset period |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description carries the full burden of behavioral disclosure. It only states the primary action (creation) without revealing side effects, required permissions, error conditions (e.g., duplicate username), or the response format. This is a significant gap for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that states the purpose without any fluff. It is front-loaded and appropriately sized for a simple creation 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 12 parameters, no output schema, and no annotations, the one-line description is insufficient. It doesn't explain expected return values, uniqueness requirements, or any operational caveats. An agent would need more context to call this tool correctly and interpret the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 12 parameters have descriptions in the schema (100% coverage), so the schema already explains each parameter. The tool description adds no extra meaning or clarification beyond what's in the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Create a new VPN user in Remnawave'. It specifies the verb (create), the resource (VPN user), and the system context (Remnawave). This is distinct from sibling tools like users_update or users_delete, so 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 alternatives, such as bulk creation or other user operations. It doesn't mention prerequisites, uniqueness constraints, or situations where a different tool would be preferred. There is no 'when to use' context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
users_deleteA
Permanently delete a Remnawave user
| Name | Required | Description | Default |
|---|---|---|---|
| userId | Yes | User numeric ID to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The word 'permanently' adds an important behavioral trait beyond the tool name: the deletion is irreversible. However, with no annotations provided, the description carries the full burden and does not mention other behavioral consequences such as cascading effects on subscriptions, tokens, or associated records.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. 'Permanently' earns its place by conveying irreversibility, and every word contributes to understanding the operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with one fully documented parameter and no nested objects or output schema, the description plus schema is largely sufficient for an agent to invoke it correctly. The main missing context is when to use this versus the other delete/disable variants, but the operation itself is simple and 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?
Schema description coverage is 100% and the single required parameter userId is already described as 'User numeric ID to delete'. The tool description adds no additional parameter meaning, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('delete') and resource ('Remnawave user'), and 'permanently' clarifies the exact scope of the operation. It clearly distinguishes this single-user delete from sibling operations like users_bulk_delete.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 users_bulk_delete, users_bulk_delete_by_status, or users_disable. There is no explicit condition, prerequisite, or exclusion to help an agent choose correctly among the many user-related siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
users_disableA
Disable a Remnawave user (block VPN access)
| Name | Required | Description | Default |
|---|---|---|---|
| userId | Yes | User numeric ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It discloses the core effect ('block VPN access') but doesn't clarify whether the user record remains intact, whether it's reversible via users_enable, or whether active sessions are terminated. The parenthetical adds some value but leaves behavioral details undisclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with a parenthetical clarification. Every word earns its place; the core action and effect 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 simple single-parameter mutation with no output schema, the description is adequate but not complete. It doesn't state whether the operation is reversible, what happens to active connections, or any permission requirements. Given the simplicity, a 3 is fair.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the only parameter (userId) is described as 'User numeric ID'. The description adds no additional meaning beyond the schema, but with full coverage and a single simple parameter, the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Disable') and resource ('a Remnawave user') with a clear effect ('block VPN access'). It distinguishes from siblings like users_enable and users_delete, 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 the tool is for blocking a user's VPN access, which is a clear context. However, it doesn't explicitly state when to use this over alternatives like users_delete or users_revoke_subscription, nor does it mention any prerequisites or side effects.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
users_enableA
Enable a disabled Remnawave user (restore VPN access)
| Name | Required | Description | Default |
|---|---|---|---|
| userId | Yes | User numeric ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the burden of behavioral transparency. It states the action (enable) and the effect (restore VPN access), which is a positive behavioral disclosure, but it does not mention any side effects, permissions required, or reversibility. The description is consistent with the action of enabling a user.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the key action and outcome. It contains no redundancy, making it highly 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?
For a simple tool with a single parameter and no output schema, the description is complete for basic invocation. It lacks detail on what happens if the user is already enabled or if the user does not exist, but these are edge cases. The presence of a clear outcome statement (restore VPN access) covers the essential need.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, so the 'userId' parameter is fully documented in the schema: 'User numeric ID'. The description does not add additional semantic value beyond the schema, but the schema is already clear. This is a baseline score as schema carries the load.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Enable' and the resource 'disabled Remnawave user', and specifies the outcome 'restore VPN access'. This distinguishes it from the sibling tools like users_disable, users_create, users_update, and others.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for enabling previously disabled users, but does not explicitly state when to use it over other user management tools (e.g., users_update) or what prerequisites might exist. It provides minimal guidance on the exact context of use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
users_extend_expirationA
Extend user subscription by N days (expired users become ACTIVE with +N days from now; active users get +N days added)
| Name | Required | Description | Default |
|---|---|---|---|
| days | Yes | Number of days to extend | |
| userId | Yes | User numeric ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description carries the full burden of behavior disclosure. It does this well by explicitly stating the state transition for expired users and the additive behavior for active users. This is meaningful context beyond the tool name, though it stops short of mentioning permissions, reversibility, 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 a single sentence that front-loads the verb and object, then packs the key behavioral nuance into a parenthetical. There is no filler, and every clause 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 two-parameter mutation with no output schema, the description is nearly complete: it states what happens in both relevant user states and the schema documents the parameters fully. The main omissions are return-value behavior and explicit alternative routing, but these are secondary for this simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both parameters (userId and days) are already fully documented in the input schema. The description adds no extra parameter-level detail, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('extend'), a clear resource ('user subscription'), and a precise scope (single user). It also adds behavioral specificity by distinguishing expired users (become ACTIVE with +N days from now) from active users (get +N days added), which makes it easy to tell apart from bulk sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The operation is clear, but the description provides no explicit guidance on when to choose this tool over alternatives such as users_bulk_extend_expiration or users_bulk_all_extend_expiration. Usage is implied through the singular 'user' and the operation name, but there are no exclusions or routing cues.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
users_getA
Get a specific Remnawave user by their numeric ID (API 3.x: uuid is gone, id is the primary key)
| Name | Required | Description | Default |
|---|---|---|---|
| userId | Yes | User numeric ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It clearly indicates a read-only 'get' operation and adds useful context that UUID is gone in API 3.x. However, it does not mention not-found behavior, error responses, authentication requirements, or return value 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 a single, front-loaded sentence that communicates the operation, resource, identifier type, and API-version nuance. Every word earns its place with no 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 read operation with no output schema, the description is sufficiently complete. It names the exact identifier to pass, explains the API-version context, and leaves no ambiguity about what the tool retrieves.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the parameter is described as 'User numeric ID'. The description adds meaning beyond the schema by explaining that the numeric ID is the primary key in API 3.x and that UUID is no longer used, which helps avoid misuse.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get'), a specific resource ('a specific Remnawave user'), and the exact key ('numeric ID'). It also clearly distinguishes this from sibling lookup tools by emphasizing that UUID is no longer valid in API 3.x.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 clear context for when this tool applies: numeric ID lookup, with an explicit note that UUID is gone and id is now the primary key. It does not explicitly name alternatives like users_get_by_username, but the API-version note effectively tells the agent which identifier to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
users_get_by_emailA
Find Remnawave users by their email (via the users stream filter)
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | User email |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states that the tool 'finds' users, which implies a read operation, but it does not clarify whether it returns a single user or a list, whether the email match is case‑sensitive, or any potential side effects. The mention of 'users stream filter' hints at an underlying mechanism but does not explain its consequences. This is a significant gap for a tool with no 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 a single, concise sentence that front-loads the primary action and resource. It contains no filler or redundant phrasing, making it appropriately sized for a straightforward lookup 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?
While the description is clear about the purpose, it omits critical context such as the return format (single user vs. list), error handling, or any special behaviors like case‑sensitivity. Since there is no output schema to compensate, the agent lacks information about what to expect after the call. For a simple tool this is borderline acceptable, but the absence of any guidance on return data makes it 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 input schema already provides 100% description coverage for the 'email' parameter ('User email'), and the tool description does not add any extra meaning or constraints beyond what the schema states. Since the schema fully documents the parameter, the description contributes no additional semantic value, warranting the baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Find' and the resource 'Remnawave users' with the specific attribute 'by their email', distinguishing it from sibling tools that look up by username, UUID, telegram ID, etc. The additional phrase 'via the users stream filter' adds a distinct implementation hint without confusing the core 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 implies that this tool is for email-based lookup, but it does not explicitly state when to use it versus alternatives like users_get_by_username or users_get_by_short_uuid. It also lacks any exclusion criteria or guidance on when not to use it. The usage is inferred from the name and the 'by email' phrasing rather than being explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
users_get_by_short_uuidB
Get a Remnawave user by their short UUID
| Name | Required | Description | Default |
|---|---|---|---|
| shortUuid | Yes | Short UUID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states it's a read operation ('Get'), but doesn't disclose behavioral traits such as authentication requirements, rate limits, error responses, or what happens if the short UUID is invalid. For a tool with no annotations, this leaves significant gaps in understanding how it 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 a single, efficient sentence with no wasted words. It front-loads the key information (action and resource) and is appropriately sized for a simple lookup tool, making it easy 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's low complexity (single parameter, no output schema, no annotations), the description is minimally adequate. It covers the basic purpose but lacks details on usage, behavior, and output, which are important for an agent to operate correctly without annotations. It's complete enough for a simple read operation but could be improved with 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 schema description coverage is 100%, with the parameter 'shortUuid' fully documented in the schema. The description adds no additional meaning beyond implying the parameter is used for lookup, so it meets the baseline of 3 where the schema does the heavy lifting without extra value from the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and resource ('a Remnawave user'), specifying the lookup method ('by their short UUID'). It distinguishes from siblings like 'users_get' (likely by regular UUID) and 'users_get_by_username', making the purpose specific but not fully differentiating from 'subscriptions_get_by_short_uuid' which uses the same lookup method for a different 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?
No guidance is provided on when to use this tool versus alternatives like 'users_get' or 'users_get_by_username'. The description implies usage when you have a short UUID, but it doesn't specify prerequisites, error conditions, or comparisons to sibling tools, leaving the agent to infer context from tool names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
users_get_by_tagB
Find Remnawave users by tag (via the users stream filter)
| Name | Required | Description | Default |
|---|---|---|---|
| tag | Yes | User tag |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the behavioral burden. It discloses only that the lookup happens 'via the users stream filter', which hints at the data source but does not explain pagination, result shape, authentication requirements, or whether exact/partial tag matching is used. This is thin behavioral disclosure for an unannotated tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is a single sentence with the key action and criterion front-loaded before the parenthetical. It is appropriately short for a one-parameter tool and has no filler. The parenthetical is compact but adds minor jargon.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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-style lookup the description is largely sufficient: an agent can infer it should pass tag and expect matching users. Yet without an output schema or any return description, and with the unclear 'users stream filter' mechanism, it is not fully self-contained. A brief note on return format or comparison to users_stream 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 input schema already documents the single tag parameter with 100% coverage, so the baseline is 3. The description does little more than echo 'by tag'; it does not clarify tag format, matching exactness, or relation to users_stream. No additional semantic value beyond the schema is added.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Find' with the resource 'Remnawave users' and a clear criterion ('by tag'), so an agent can tell this is a tag-based lookup. It does not explicitly name a sibling, but the 'by tag' qualifier separates it from users_list and users_get_by_username. The parenthetical 'via the users stream filter' adds a mechanism, though slightly jargon-y.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'by tag' implies the appropriate use case: when the caller has a user tag and wants matching users. However, it does not state when not to use it or point to alternatives such as users_get_by_username or users_list, so the guidance is only implicit. No exclusion or comparison to sibling tools is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
users_get_by_telegram_idA
Find Remnawave users by their Telegram ID (via the users stream filter)
| Name | Required | Description | Default |
|---|---|---|---|
| telegramId | Yes | Telegram user ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral disclosure burden. 'Find' implies a read-only operationasi, and 'via the users stream filter' hints at the underlying mechanism, but it does not disclose whether one or many results are returned, what happens on no match, or any other behavioral characteristics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, direct sentence with no unnecessary words. The primary action and resource are front-loaded, and the parenthetical adds a small but informative implementation 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 one-parameter lookup with no output schema, the description adequately states the operation. However, it leaves ambiguity about the return type (single user vs. list) and does not mention behavior for missing IDs, which would be useful for a fully complete definition.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already fully documents telegramId with a description ('Telegram user ID'). The tool description only restates the identifier concept without adding meaning about format, constraints, or usage 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 uses a specific verb ('Find'), a clear resource ('Remnawave users'), and a precise lookup criterion ('Telegram ID'). It is differentiated from sibling lookup tools such as users_get_by_username and users_get_by_email by naming the exact identifier used.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
When to use the tool is implied ('when you have a Telegram ID'), but there is no explicit guidance about when not to use it or which alternative lookup tool to choose. Given many users_get_by_* siblings, explicit routing would be more helpful.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
users_get_by_usernameC
Get a Remnawave user by their username
| Name | Required | Description | Default |
|---|---|---|---|
| username | Yes | Username |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool retrieves a user by username, implying a read-only operation, but doesn't specify if it requires authentication, rate limits, error handling (e.g., for non-existent usernames), or the format of the returned data. This leaves significant gaps in understanding the tool's 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 a single, direct sentence that efficiently conveys the core functionality without unnecessary words. It is front-loaded and wastes no space, making it highly concise and well-structured for quick comprehension.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 annotations and no output schema, the description is incomplete. It doesn't explain what data is returned, potential errors, or behavioral nuances like authentication needs. Given the complexity of user retrieval operations and the lack of structured data, more context is needed to fully guide 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?
The input schema has 100% description coverage, with the 'username' parameter documented as 'Username'. The description adds no additional semantic context beyond this, such as format examples or constraints. Given the high schema coverage, the baseline score of 3 is appropriate, as the schema adequately handles 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 clearly states the verb ('Get') and resource ('a Remnawave user'), making the purpose specific and understandable. However, it doesn't distinguish this tool from sibling tools like 'users_get' or 'users_get_by_short_uuid', which also retrieve user information but by different identifiers, leaving room for ambiguity in 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 provides no guidance on when to use this tool versus alternatives, such as 'users_get' (which might use a different identifier) or 'users_list' (for multiple users). There's no mention of prerequisites, exclusions, or specific contexts, leaving the agent without clear usage instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
users_listB
List all Remnawave VPN users with pagination
| Name | Required | Description | Default |
|---|---|---|---|
| size | No | Number of users to return | |
| start | No | Offset for pagination |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states it's a list operation with pagination, implying it's read-only and non-destructive, but doesn't disclose behavioral traits like rate limits, authentication requirements, error handling, or what the output format looks like (e.g., JSON structure). This leaves gaps for an AI agent to invoke it correctly.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose ('List all Remnawave VPN users') and includes key operational detail ('with pagination') without any wasted words. It's appropriately sized for a simple list 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's low complexity (2 parameters, no output schema, no annotations), the description is minimally adequate but incomplete. It covers the basic action and pagination, but lacks details on output format, error cases, or integration with sibling tools, which could hinder an AI agent's ability to use it effectively in broader workflows.
Complex tools with many parameters or behaviors need more documentation. 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 100% description coverage, with clear documentation for 'start' (offset) and 'size' (number of users). The description adds minimal value beyond the schema by mentioning 'pagination', which aligns with the parameters but doesn't provide additional semantics like default behavior or constraints. Baseline 3 is appropriate as the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List') and resource ('all Remnawave VPN users'), making the purpose specific and understandable. However, it doesn't explicitly differentiate from sibling tools like 'users_get', 'users_get_by_username', or 'subscriptions_list', which also retrieve user-related data but with different scopes or filters.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions 'with pagination', which implies usage for large datasets, but provides no explicit guidance on when to use this tool versus alternatives like 'users_get' (for single users) or 'subscriptions_list' (for subscription-focused data). There's no mention of prerequisites, exclusions, or comparative contexts with siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
users_reset_trafficB
Reset traffic counter for a Remnawave user
| Name | Required | Description | Default |
|---|---|---|---|
| userId | Yes | User numeric ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries full behavioral burden. It only repeats the operation name and omits that the reset is destructive, irreversible, may affect quota calculations, or requires specific privileges.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no filler. It front-loads the action and subject and earns its place without 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 1-parameter tool this is minimally adequate, but with no output schema and no annotation coverage, an agent would still benefit from knowing side effects and usage boundaries. The description leaves those gaps open.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the sole parameter userId is already documented in the schema. The description adds no extra parameter-level meaning, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Reset traffic counter') and the resource ('a Remnawave user'). It implicitly differentiates from node_reset_traffic by specifying 'user', but does not explicitly contrast with bulk reset siblings like users_bulk_reset_traffic.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 single-user reset versus bulk alternatives, nor any context about expected conditions or prerequisites. An agent gets no help choosing among the several traffic-reset tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
users_resolveA
Resolve a single user by numeric ID, short UUID, or username (provide exactly one)
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | User numeric ID | |
| username | No | Username | |
| shortUuid | No | Short UUID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, yet it only states the lookup scope and parameter exclusivity. It does not disclose the return shape, behavior for unknown identifiers, error handling, or that this is a read-only 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 a single sentence with the action and resource front-loaded, followed by a concise usage caveat. It contains no filler and does not repeat schema 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 three-parameter resolver, the description plus input schema provides enough information to invoke the tool correctly. The absence of an output schema and lack of return/error details is a minor gap, but it does not block 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 schema already documents all three parameters with 100% coverage, and the description adds the critical constraint that exactly one identifier must be provided, which the optional parameters in the schema do not convey. This addition is valuable even though format details are not expanded.
Input schemas describe structure but not intent. Descriptions should explain 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 action ('Resolve'), a specific resource ('a single user'), and the three accepted identifier types ('numeric ID, short UUID, or username'). This distinguishes it from broad list tools like users_list and from single-identifier siblings like users_get_by_username.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 conveys that this is for single-user lookup and adds the important constraint 'provide exactly one'. However, it does not explicitly say when to prefer users_resolve over users_get, users_get_by_username, or users_get_by_short_uuid, so the usage guidance remains 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.
users_revoke_subscriptionB
Revoke subscription for a Remnawave user (generates new subscription link)
| Name | Required | Description | Default |
|---|---|---|---|
| userId | Yes | User numeric ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full behavioral disclosure. It does mention the new subscription link being generated, which is useful, but it does not disclose whether the action is reversible, what happens to the old link, impact on active connections, or any permission requirements. For a mutating 'revoke' action, this is a significant transparency gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, focused sentence that states the action, resource, and key effect without filler. The information is front-loaded and every word contributes to the core message.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 tool shape (one parameter, no output schema) the minimal description covers the primary action, but it omits the usage boundary verses the bulk variant and lacks side-effect details such as reversibility. The absence of annotations makes these omissions more noticeable, so the description is adequate but not sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the sole parameter 'userId' is already described in the schema. The description adds no new meaning about the parameter beyond that, which fits the baseline of 3; there is no gap to compensate for.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Revoke subscription for a Remnawave user' immediately identifies the action and target. The parenthetical 'generates new subscription link' adds the key consequence, which clearly distinguishes this singular action from bulk alternatives in the sibling list like users_bulk_revoke_subscription.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 about when to choose this tool versus the sibling bulk revoke tool or other user-state mutations (enable, disable, reset_traffic). There is no explicit mention of single-user vs bulk tradeoffs, prerequisites, or typical workflow, so 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.
users_streamB
Stream users with cursor pagination and filters (status, traffic strategy, telegramId, email, tag, external squad)
| Name | Required | Description | Default |
|---|---|---|---|
| tag | No | Filter by tag | |
| size | No | Page size | |
| No | Filter by email | ||
| cursor | No | Pagination cursor from the previous page | |
| status | No | Filter by user status | |
| telegramId | No | Filter by Telegram ID | |
| externalSquadUuid | No | Filter by external squad UUID | |
| trafficLimitStrategy | No | Filter by traffic reset strategy |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries full burden. It discloses only that pagination is cursor-based, but does not mention response shape, limits, rate handling, or any side effects. The description is essentially a restatement of the tool's name and does not reveal behavior beyond what the name implies.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that packs the essential action, pagination method, and filter list with no wasted words. It is easy to scan and understand.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description does not clarify what the agent can expect in response (e.g., user objects, page metadata). It adequately describes input filters but omits output details. For a streaming endpoint, return format is a notable gap. Thus incomplete but not critically so given parameter clarity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameters are already documented. The description lists the filters but without adding new meaning. It repeats names rather than explaining semantics (e.g., how filters combine). Baseline 3 is appropriate as schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Stream users with cursor pagination and filters' clearly states the verb (stream), resource (users), and mechanism (cursor pagination) plus enumerates filter dimensions. It is specific but does not explicitly distinguish from sibling users_list, which might offer a simpler non-streaming 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?
No guidance is provided on when to use this tool vs alternatives like users_list. It does not mention prerequisites, performance trade-offs, or when a non-streaming approach would be preferable. The agent is left to infer the use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
users_subscription_request_historyB
Get subscription request history for a specific user
| Name | Required | Description | Default |
|---|---|---|---|
| userId | Yes | User numeric ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It only says 'Get' which implies a read operation, but it doesn't disclose what the response looks like, whether it returns raw or processed history, pagination behavior, ordering, or any access requirements. For a read tool with no annotations, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence that is front-loaded with the verb and resource. No wasted words. It could arguably be more informative, but for what it says, it is concise and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has a single required parameter, no output schema, and no annotations. The description is minimal: it tells what the tool does but not what the agent should expect in return, how the history is ordered, or how it differs from the sibling history tools. For a simple read tool, this is below the minimum viable threshold.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: the only parameter userId is described as 'User numeric ID'. The description adds the context that the history is 'for a specific user', which reinforces the parameter's role. Baseline 3 is appropriate since the schema already documents the parameter fully.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get'), a resource ('subscription request history'), and a scope ('for a specific user'). It clearly distinguishes from the sibling subscription_request_history_list (which likely lists all history) and subscription_request_history_stats (which provides statistics). It doesn't explicitly name the sibling, but the resource+scope is 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 implies usage: call when you need a single user's subscription request history. It doesn't explicitly state when to use this vs subscription_request_history_list or subscription_request_history_stats, nor does it mention any exclusions or prerequisites. The context is clear but no alternatives are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
users_tags_listB
List all user tags
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full weight of behavioral disclosure. It states 'List all' which implies a read operation with no filters, but it does not mention pagination, performance impact, or any output shape. For a zero-parameter tool it is minimal but not fully transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single four-word sentence 'List all user tags' with no filler, front-loaded with the verb and resource. It is as concise as possible while remaining grammatical and meaningful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 there is no output schema and no annotations, the description does not convey what a user tag actually is or whether the result includes metadata like IDs or just names. For a read-only list tool, it states the main point, but the absence of return type information leaves an agent partially completing the puzzle.
Complex tools with many parameters or behaviors need more documentation. 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 no properties, so there are no parameters to document. Baseline for no parameters is 4, and the description does not need to compensate for a schema coverage gap because the schema is empty.
Input schemas describe structure but not intent. Descriptions should explain 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 'List all user tags' uses a specific verb ('list') and resource ('all user tags'), immediately distinguishing this tool from sibling tags_list, hosts_tags_list, and nodes_tags_list. The resource is clearly scoped to users without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to choose this tool over alternatives like tags_list or tags_assign, nor any mention of prerequisites or non-usage. It merely restates the operation without informing the decision-making process.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
users_updateB
Update an existing Remnawave user (identified by numeric ID)
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | User numeric ID to update | |
| tag | No | User tag | |
| No | User email | ||
| status | No | User status | |
| expireAt | No | New expiration date (ISO 8601) | |
| username | No | New username | |
| telegramId | No | Telegram user ID | |
| description | No | User description | |
| hwidDeviceLimit | No | Max HWID devices | |
| externalSquadUuid | No | External squad UUID | |
| trafficLimitBytes | No | New traffic limit in bytes | |
| activeInternalSquads | No | Internal squad UUIDs | |
| trafficLimitStrategy | No | Traffic reset period |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden, but it only states the operation and identifier. It does not disclose whether unspecified fields are left unchanged or reset, what happens for a missing ID, or any permission implications.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One compact sentence with the key scoping information front-loaded and no filler or redundant 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 13-parameter mutation tool with no annotations and no output schema, this is too thin: it omits update semantics (merge vs replace), return value, and error behavior. The schema's field descriptions do not compensate for the missing operational contract.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 13 parameters in detail. The description adds little beyond reinforcing the numeric ID requirement, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (update), resource (existing Remnawave user), and identifier (numeric ID), clearly separating it from create/delete/enable/bulk variants among siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to choose this tool over users_bulk_update, users_enable, users_disable, or other related siblings. The only implied cue is 'existing' versus create/delete, leaving usage context to inference.
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.
190 tool updates
v2.1.0- First observed
api_tokens_create - First observed
api_tokens_delete - First observed
api_tokens_list - First observed
api_tokens_scopes_list - First observed
auth_status - First observed
bandwidth_stats_users_by_nodes - First observed
billing_history_create - First observed
billing_history_delete - First observed
billing_history_list - First observed
billing_node_create - First observed
billing_node_delete - First observed
billing_node_update - First observed
billing_nodes_list - First observed
billing_provider_create - First observed
billing_provider_delete - First observed
billing_provider_get - First observed
billing_provider_update - First observed
billing_providers_list - First observed
config_profiles_create - First observed
config_profiles_delete - First observed
config_profiles_get - First observed
config_profiles_get_computed_config - First observed
config_profiles_get_inbounds - First observed
config_profiles_list - First observed
config_profiles_reorder - First observed
config_profiles_update - First observed
connections_drop - First observed
connections_fetch_by_node - First observed
connections_fetch_by_user - First observed
connections_geocheck - First observed
connections_get_geocheck_result - First observed
connections_get_node_result - First observed
connections_get_user_result - First observed
external_squads_add_all_users - First observed
external_squads_create - First observed
external_squads_delete - First observed
external_squads_get - First observed
external_squads_list - First observed
external_squads_remove_all_users - First observed
external_squads_reorder - First observed
external_squads_update - First observed
hosts_bulk_delete - First observed
hosts_bulk_disable - First observed
hosts_bulk_enable - First observed
hosts_bulk_update - First observed
hosts_create - First observed
hosts_delete - First observed
hosts_get - First observed
hosts_list - First observed
hosts_reorder - First observed
hosts_tags_list - First observed
hosts_update - First observed
hwid_device_create - First observed
hwid_device_delete - First observed
hwid_devices_delete_all - First observed
hwid_devices_list - First observed
hwid_devices_list_all - First observed
hwid_stats - First observed
hwid_top_users - First observed
inbounds_list - First observed
keygen_get - First observed
metadata_node_get - First observed
metadata_node_upsert - First observed
metadata_user_get - First observed
metadata_user_upsert - First observed
node_integrations_create - First observed
node_integrations_delete - First observed
node_integrations_get - First observed
node_integrations_list - First observed
node_integrations_update - First observed
node_plugins_clone - First observed
node_plugins_create - First observed
node_plugins_delete - First observed
node_plugins_execute - First observed
node_plugins_get - First observed
node_plugins_list - First observed
node_plugins_reorder - First observed
node_plugins_sync - First observed
node_plugins_torrent_reports - First observed
node_plugins_torrent_stats - First observed
node_plugins_torrent_truncate - First observed
node_plugins_update - First observed
nodes_bulk_actions - First observed
nodes_bulk_profile_modification - First observed
nodes_bulk_update - First observed
nodes_create - First observed
nodes_delete - First observed
nodes_disable - First observed
nodes_enable - First observed
nodes_get - First observed
nodes_list - First observed
nodes_reorder - First observed
nodes_reset_traffic - First observed
nodes_restart - First observed
nodes_restart_all - First observed
nodes_tags_list - First observed
nodes_update - First observed
settings_get - First observed
settings_update - First observed
shared_lists_create - First observed
shared_lists_delete - First observed
shared_lists_get - First observed
shared_lists_list - First observed
shared_lists_sync - First observed
shared_lists_update - First observed
snippets_create - First observed
snippets_delete - First observed
snippets_list - First observed
snippets_sync - First observed
snippets_update - First observed
squads_accessible_nodes - First observed
squads_add_all_users - First observed
squads_add_users - First observed
squads_create - First observed
squads_delete - First observed
squads_get - First observed
squads_list - First observed
squads_remove_all_users - First observed
squads_remove_users - First observed
squads_reorder - First observed
squads_update - First observed
sub_page_configs_clone - First observed
sub_page_configs_create - First observed
sub_page_configs_delete - First observed
sub_page_configs_get - First observed
sub_page_configs_list - First observed
sub_page_configs_reorder - First observed
sub_page_configs_update - First observed
subscription_info - First observed
subscription_request_history_list - First observed
subscription_request_history_stats - First observed
subscription_settings_get - First observed
subscription_settings_update - First observed
subscription_templates_create - First observed
subscription_templates_delete - First observed
subscription_templates_get - First observed
subscription_templates_list - First observed
subscription_templates_reorder - First observed
subscription_templates_update - First observed
subscriptions_get_by_id - First observed
subscriptions_get_by_short_uuid - First observed
subscriptions_get_by_username - First observed
subscriptions_get_connection_keys - First observed
subscriptions_get_raw_by_short_uuid - First observed
subscriptions_get_subpage_config - First observed
subscriptions_list - First observed
system_bandwidth_stats - First observed
system_configuration - First observed
system_generate_x25519 - First observed
system_health - First observed
system_metadata - First observed
system_nodes_metrics - First observed
system_nodes_statistics - First observed
system_srr_matcher - First observed
system_stats - First observed
system_stats_digest - First observed
system_stats_http - First observed
system_stats_recap - First observed
tags_assign - First observed
tags_list - First observed
users_accessible_nodes - First observed
users_bulk_all_extend_expiration - First observed
users_bulk_all_reset_traffic - First observed
users_bulk_all_update - First observed
users_bulk_delete - First observed
users_bulk_delete_by_status - First observed
users_bulk_extend_expiration - First observed
users_bulk_reset_traffic - First observed
users_bulk_revoke_subscription - First observed
users_bulk_update - First observed
users_bulk_update_squads - First observed
users_create - First observed
users_delete - First observed
users_disable - First observed
users_enable - First observed
users_extend_expiration - First observed
users_get - First observed
users_get_by_email - First observed
users_get_by_short_uuid - First observed
users_get_by_tag - First observed
users_get_by_telegram_id - First observed
users_get_by_username - First observed
users_list - First observed
users_reset_traffic - First observed
users_resolve - First observed
users_revoke_subscription - First observed
users_stream - First observed
users_subscription_request_history - First observed
users_tags_list - First observed
users_update
TDQS
Scored across 190 tools
Numerous tools have overlapping purposes, such as multiple lookup methods for users (users_get, users_get_by_username, users_get_by_short_uuid, users_get_by_telegram_id, users_get_by_email, users_stream, users_resolve) and several bulk operation tools that vary only slightly. This makes it difficult for an agent to select the correct tool, leading to frequent misselection.
The naming pattern is largely consistent, using a resource_action convention (e.g., users_list, nodes_create, hosts_delete). Most tools follow this pattern, though there are minor deviations such as 'subscription_info' vs 'subscriptions_get_by_id' and 'keygen_get' which uses 'get' for generation. Overall, the pattern is predictable.
With 190 tools, this is far beyond any reasonable scope for a single MCP server. The calibration indicates that 50+ tools are extreme, and this server has nearly four times that amount. The tool surface is overwhelming and would likely cause confusion and inefficiency for agents.
The tool set covers all major resources (users, nodes, hosts, squads, subscriptions, billing, config profiles, plugins, etc.) with full CRUD operations and lifecycle management. There are no obvious missing operations for the domain; the massive number of tools suggests thorough coverage. Minor gaps may exist (e.g., password management), but overall the surface is complete.
Maintenance
Related MCP Connectors
Manage CloudPepper servers, Odoo instances, backups, and deployments over MCP.
Cloud-hosted MCP server for URnetwork VPN and Proxy
Remote MCP server for Web3TV creators — manage your account over MCP.
Remote MCP server to read and manage your Atako AI agents, messages, files, and integrations.
Related MCP Servers
- AlicenseBqualityAmaintenanceAn MCP server that enables LLM clients to manage Remnawave VPN panels through 51 specialized tools for user, node, and subscription administration. It provides real-time access to panel statistics, health checks, and guided workflows for system diagnostics.51797MIT
- AlicenseAqualityBmaintenanceMCP server for Remnawave panel API. Manage VPN users, nodes, hosts, and system stats from Claude Code or any MCP-compatible client.34MIT
- FlicenseNot gradedqualityDmaintenanceEnables comprehensive Mattermost administration and operations, including managing users, teams, channels, messages, plugins, and admin console settings through MCP tools.1-
- FlicenseBqualityBmaintenanceEnables remote command execution, scripting, file operations, and persistent tmux sessions on a VPS via MCP protocol.1733-