Dokploy MCP Server
Allows managing applications deployed from Bitbucket repositories, including triggering builds and deployments.
Provides tools for managing Docker containers, images, and deployments within the Dokploy environment.
Allows managing applications deployed from Gitea repositories, including triggering builds and deployments.
Allows managing applications deployed from GitHub repositories, including triggering builds and deployments.
Allows managing applications deployed from GitLab repositories, including triggering builds and deployments.
Click on "Install 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., "@Dokploy MCP Servershow me my recent deployments"
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.
Dokploy MCP Server
Dokploy MCP Server exposes all Dokploy API endpoints as tools consumable via the Model Context Protocol (MCP). It allows MCP-compatible clients (e.g., AI models, other applications) to interact with your Dokploy server programmatically.
With 508 tools across 49 categories, this server provides complete coverage of the Dokploy API — from project and application management to databases, notifications, SSO, Docker, backups, and more.
Getting Started
Requirements
Node.js >= v18.0.0 (or Docker)
Cursor, VS Code, Claude Desktop, or another MCP Client
A running Dokploy server instance
Install in Cursor
Go to: Settings -> Cursor Settings -> MCP -> Add new global MCP server
Add this to your Cursor ~/.cursor/mcp.json file. You may also install in a specific project by creating .cursor/mcp.json in your project folder. See Cursor MCP docs for more info.
{
"mcpServers": {
"dokploy-mcp": {
"command": "npx",
"args": ["-y", "@dokploy/mcp"],
"env": {
"DOKPLOY_URL": "https://your-dokploy-server.com",
"DOKPLOY_API_KEY": "your-dokploy-api-token"
}
}
}
}{
"mcpServers": {
"dokploy-mcp": {
"command": "bunx",
"args": ["-y", "@dokploy/mcp"],
"env": {
"DOKPLOY_URL": "https://your-dokploy-server.com",
"DOKPLOY_API_KEY": "your-dokploy-api-token"
}
}
}
}{
"mcpServers": {
"dokploy-mcp": {
"command": "deno",
"args": ["run", "--allow-env", "--allow-net", "npm:@dokploy/mcp"],
"env": {
"DOKPLOY_URL": "https://your-dokploy-server.com",
"DOKPLOY_API_KEY": "your-dokploy-api-token"
}
}
}
}Install in Windsurf
Add this to your Windsurf MCP config file. See Windsurf MCP docs for more info.
{
"mcpServers": {
"dokploy-mcp": {
"command": "npx",
"args": ["-y", "@dokploy/mcp"],
"env": {
"DOKPLOY_URL": "https://your-dokploy-server.com",
"DOKPLOY_API_KEY": "your-dokploy-api-token"
}
}
}
}Install in VS Code
Add this to your VS Code MCP config file. See VS Code MCP docs for more info.
{
"servers": {
"dokploy-mcp": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@dokploy/mcp"],
"env": {
"DOKPLOY_URL": "https://your-dokploy-server.com",
"DOKPLOY_API_KEY": "your-dokploy-api-token"
}
}
}
}Install in Claude Code
Add the MCP server to Claude Code using the CLI:
claude mcp add dokploy-mcp -- npx -y @dokploy/mcpThen set the environment variables in your .claude/settings.json or pass them inline:
DOKPLOY_URL=https://your-dokploy-server.com DOKPLOY_API_KEY=your-token claudeInstall in Zed
Add this to your Zed settings.json. See Zed Context Server docs for more info.
{
"context_servers": {
"dokploy-mcp": {
"command": "npx",
"args": ["-y", "@dokploy/mcp"],
"env": {
"DOKPLOY_URL": "https://your-dokploy-server.com",
"DOKPLOY_API_KEY": "your-dokploy-api-token"
}
}
}
}Install in Claude Desktop
Add this to your Claude Desktop claude_desktop_config.json file. See Claude Desktop MCP docs for more info.
{
"mcpServers": {
"dokploy-mcp": {
"command": "npx",
"args": ["-y", "@dokploy/mcp"],
"env": {
"DOKPLOY_URL": "https://your-dokploy-server.com",
"DOKPLOY_API_KEY": "your-dokploy-api-token"
}
}
}
}Install in BoltAI
Open the "Settings" page of the app, navigate to "Plugins," and enter the following JSON:
{
"mcpServers": {
"dokploy-mcp": {
"command": "npx",
"args": ["-y", "@dokploy/mcp"],
"env": {
"DOKPLOY_URL": "https://your-dokploy-server.com",
"DOKPLOY_API_KEY": "your-dokploy-api-token"
}
}
}
}Using Docker
The Docker container supports both stdio and HTTP transport modes, making it flexible for different deployment scenarios.
Build the Docker Image:
git clone https://github.com/Dokploy/mcp.git cd mcp docker build -t dokploy-mcp .Manual Docker Commands:
Stdio Mode (for MCP clients):
docker run -it --rm \ -e DOKPLOY_URL=https://your-dokploy-server.com \ -e DOKPLOY_API_KEY=your_token_here \ dokploy-mcpHTTP Mode (for web applications):
docker run -it --rm \ -p 8080:3000 \ -e MCP_TRANSPORT=http \ -e DOKPLOY_URL=https://your-dokploy-server.com \ -e DOKPLOY_API_KEY=your_token_here \ dokploy-mcpDocker Compose:
Use the provided
docker-compose.ymlfor production deployments:# Start HTTP service docker-compose up -d dokploy-mcp-http # View logs docker-compose logs -f dokploy-mcp-httpMCP Client Configuration:
For stdio mode (Claude Desktop, VS Code, etc.):
{ "mcpServers": { "dokploy-mcp": { "command": "docker", "args": [ "run", "-i", "--rm", "-e", "DOKPLOY_URL=https://your-dokploy-server.com", "-e", "DOKPLOY_API_KEY=your_token_here", "dokploy-mcp" ] } } }For HTTP mode (web applications):
Start the HTTP server first, then configure your client to connect to
http://localhost:3000/mcp.
Install in Windows
The configuration on Windows is slightly different compared to Linux or macOS. Use cmd as the command wrapper:
{
"mcpServers": {
"dokploy-mcp": {
"command": "cmd",
"args": ["/c", "npx", "-y", "@dokploy/mcp"],
"env": {
"DOKPLOY_URL": "https://your-dokploy-server.com",
"DOKPLOY_API_KEY": "your-dokploy-api-token"
}
}
}
}Environment Variables
Variable | Required | Description |
| Yes | Your Dokploy server URL (e.g., |
| Yes | Your Dokploy API authentication token |
| No | Comma-separated list of tags to filter which tools are loaded (e.g., |
| No | Request timeout in milliseconds (default: |
| No | Number of retry attempts (default: |
| No | Delay between retries in milliseconds (default: |
Related MCP server: Dokploy MCP Server
Transport Modes
This MCP server supports multiple transport modes to suit different use cases:
Stdio Mode (Default)
The default mode uses stdio for direct process communication, ideal for desktop applications and command-line usage.
# Run with stdio (default)
npx -y @dokploy/mcpHTTP Mode (Streamable HTTP + Legacy SSE)
Modern HTTP mode exposes the server via HTTP/HTTPS supporting both modern and legacy protocols for maximum compatibility:
Streamable HTTP (MCP 2025-03-26) - Modern protocol with session management
Legacy SSE (MCP 2024-11-05) - Backwards compatibility for older clients
# Run with HTTP mode
npx -y @dokploy/mcp --http
# or via environment variable
MCP_TRANSPORT=http npx -y @dokploy/mcpModern Streamable HTTP Endpoints:
Endpoint | Method | Description |
| POST | Client-to-server requests |
| GET | Server-to-client notifications (SSE) |
| DELETE | Session termination |
| GET | Health check |
Legacy SSE Endpoints (Backwards Compatibility):
Endpoint | Method | Description |
| GET | SSE stream initialization |
| POST | Client message posting |
Available Tools (508)
This MCP server provides 508 tools covering the entire Dokploy API, organized into 49 categories:
Core Resources
Category | Tools | Description |
Project | 8 | Create, list, update, duplicate, search, and delete projects |
Application | 30 | Full application lifecycle — create, deploy, redeploy, start, stop, build types, git providers (GitHub, GitLab, Bitbucket, Gitea), environment, Traefik config |
Compose | 29 | Docker Compose management — create, deploy, templates, services, environment, isolated deployments |
Domain | 9 | Domain CRUD, DNS validation, Traefik.me generation |
Environment | 7 | Multi-environment support per project |
Deployment | 8 | Deployment history, queue management, centralized view |
Databases
Category | Tools | Description |
PostgreSQL | 15 | Full lifecycle — create, deploy, start, stop, rebuild, passwords, external ports, environment |
MySQL | 15 | Full lifecycle — create, deploy, start, stop, rebuild, passwords, external ports, environment |
MariaDB | 15 | Full lifecycle — create, deploy, start, stop, rebuild, passwords, external ports, environment |
MongoDB | 15 | Full lifecycle — create, deploy, start, stop, rebuild, passwords, external ports, environment |
Redis | 15 | Full lifecycle — create, deploy, start, stop, rebuild, passwords, external ports, environment |
LibSQL | 13 | Full lifecycle — create, deploy, start, stop, rebuild, external ports, environment |
Infrastructure
Category | Tools | Description |
Server | 17 | Multi-server management, metrics, security, monitoring setup |
Docker | 9 | Container management — list, restart, remove, upload files, inspect config |
Cluster / Swarm | 8 | Swarm node management, container stats, cluster operations |
Settings | 51 | Server settings, Traefik config, Docker cleanup, GPU, monitoring, Redis, disk usage |
Registry | 7 | Docker registry management and testing |
Security & Auth
Category | Tools | Description |
SSO | 10 | Single sign-on providers, trusted origins |
SSH Keys | 7 | SSH key management — create, generate, list, update, remove |
Certificates | 5 | SSL/TLS certificate management |
Security | 4 | Basic auth and security rules per application |
Custom Roles | 6 | Role-based access control with custom permissions |
User | 23 | User management, permissions, API keys, invitations, metrics |
Organization | 11 | Multi-org support, invitations, member roles |
Operations
Category | Tools | Description |
Backup | 12 | Database backups — Postgres, MySQL, MariaDB, MongoDB, LibSQL, Compose, WebServer |
Volume Backups | 6 | Volume-level backup scheduling and management |
Destination | 6 | S3-compatible backup destinations (AWS, Cloudflare R2, etc.) |
Schedule | 6 | Scheduled tasks — cron-based automation |
Notification | 41 | Multi-channel alerts — Slack, Discord, Telegram, Email, Teams, Gotify, Ntfy, Pushover, Lark, Mattermost, Resend, Custom webhooks |
Rollback | 2 | Application rollback management |
Other
Category | Tools | Description |
AI | 9 | AI-powered suggestions, model management |
Git Providers | 27 | GitHub, GitLab, Gitea, Bitbucket — branches, repos, connection testing |
Tag | 8 | Project tagging and bulk assignment |
Patch | 12 | File patching system for applications |
Mounts | 6 | Volume and bind mount management |
Port | 4 | Port mapping configuration |
Redirects | 4 | URL redirect rules |
Preview Deployments | 4 | PR preview deployment management |
Stripe | 7 | Billing and subscription management |
License Key | 6 | Enterprise license management |
Whitelabeling | 4 | Custom branding for enterprise |
Audit Log | 1 | Activity audit trail |
Admin | 1 | Admin-level monitoring setup |
Tool Filtering
You can limit which tools are loaded by setting the DOKPLOY_ENABLED_TAGS environment variable. This is useful when you only need a subset of tools:
# Only load project, application, and postgres tools
DOKPLOY_ENABLED_TAGS=project,application,postgresAll tools include semantic annotations (readOnlyHint, destructiveHint, idempotentHint) to help MCP clients understand their behavior and safety characteristics.
Environment Tool Data Format
The MCP server includes four environment helper tools with a normalized shape for AI agents:
projectEnvironment-getprojectEnvironment-saveserviceEnvironment-getserviceEnvironment-save
*-get tools return both forms:
envMap: object map inKEY -> VALUEformat for reliable agent parsing.envText: reconstructed.envstring format (KEY=VALUEper line).
*-save tools accept env in either format:
String:
.envtext (KEY=VALUElines)Object: map (
{ "KEY": "VALUE" })
When a map is provided, the server automatically serializes it to .env text before calling Dokploy API endpoints.
Example request for serviceEnvironment-save (map input):
{
"serviceType": "application",
"serviceId": "app_123",
"env": {
"NODE_ENV": "production",
"PORT": "3000"
}
}Example response payload for serviceEnvironment-get:
{
"serviceType": "application",
"serviceId": "app_123",
"envMap": {
"NODE_ENV": "production",
"PORT": "3000"
},
"envText": "NODE_ENV=production\nPORT=3000"
}Architecture
Built with @modelcontextprotocol/sdk, TypeScript, and Zod for type-safe schema validation:
508 Tools covering the entire Dokploy API
Multiple Transports: Stdio (default) and HTTP (Streamable HTTP + legacy SSE)
Auto-generated Tools: Tools are generated from the Dokploy OpenAPI spec via
pnpm generate:allTool Filtering: Load only the categories you need via
DOKPLOY_ENABLED_TAGSRobust Error Handling: Centralized API client with interceptors and retry logic
Type Safety: Full TypeScript with Zod schema validation
Tool Annotations: Semantic hints for MCP client behavior understanding
Development
Clone the project and install dependencies:
git clone https://github.com/Dokploy/mcp.git
cd mcp
pnpm installBuild:
pnpm buildRegenerate tools from the Dokploy OpenAPI spec:
pnpm generate:allLocal Configuration Example
{
"mcpServers": {
"dokploy-mcp": {
"command": "npx",
"args": ["tsx", "/path/to/mcp/src/index.ts"],
"env": {
"DOKPLOY_URL": "https://your-dokploy-server.com",
"DOKPLOY_API_KEY": "your-dokploy-api-token"
}
}
}
}Testing with MCP Inspector
npx -y @modelcontextprotocol/inspector npx @dokploy/mcpTroubleshooting
MCP Client Errors
Try adding
@latestto the package name.Make sure you are using Node v18 or higher to have native fetch support with
npx.Verify your
DOKPLOY_URLandDOKPLOY_API_KEYenvironment variables are correctly set.If too many tools are loading, use
DOKPLOY_ENABLED_TAGSto filter by category.
Contributing
We welcome contributions! If you'd like to contribute to the Dokploy MCP Server, please check out our Contributing Guide.
Support
If you encounter any issues, have questions, or want to suggest a feature, please open an issue in our GitHub repository.
License
This project is licensed under the Apache License.
Available Tools
523 toolsadmin-setupMonitoringDIdempotent
POST /admin.setupMonitoring
| Name | Required | Description | Default |
|---|---|---|---|
| metricsConfig | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral context beyond the annotations (idempotentHint, openWorldHint). It does not disclose side effects, required permissions, or what the tool configures despite having a complex input schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short (3 words) but this is not conciseness—it is under-specification. A good concise description would pack meaning efficiently, but this lacks any informative content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of the input schema (nested objects, many required fields) and lack of output schema, the description is woefully incomplete. It provides no insight into the tool's purpose or configuration 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?
With 0% schema description coverage and no parameter explanations in the description, the agent gets no help understanding the nested metricsConfig object (server, containers, thresholds, etc.).
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 a tautology: it merely repeats the endpoint path 'POST /admin.setupMonitoring' without stating what the tool does. It fails to specify the action (setup monitoring) or the resource (admin monitoring configuration).
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 guidelines are provided about when to use this tool versus alternatives like 'server-setupMonitoring'. There is no mention of prerequisites, scenarios, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ai-analyzeLogsDIdempotent
POST /ai.analyzeLogs
| Name | Required | Description | Default |
|---|---|---|---|
| aiId | Yes | ||
| logs | Yes | ||
| context | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (idempotentHint=true, openWorldHint=true) imply safe-to-retry and open-world behavior, but the description adds no behavioral context. It does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely short but severely under-specified. A single sentence repeating the endpoint is not concise; it is incomplete.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 3 required parameters, no output schema, and zero description, the tool definition is insufficient for an agent to use 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 0%, and the description provides no parameter explanations. The meanings of aiId, logs, and context are entirely opaque beyond their names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description is a tautology: 'POST /ai.analyzeLogs' merely restates the endpoint. No verb or resource explanation. Does not distinguish from sibling tools like ai-get or ai-suggest.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 vs alternatives. Sibling tools include many ai-* endpoints, but the description provides no context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ai-createD
POST /ai.create
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| apiUrl | Yes | ||
| apiKey | Yes | ||
| model | Yes | ||
| isEnabled | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide openWorldHint: true, but description adds no behavioral context beyond that. No mention of side effects, permissions, or required state. With annotations present, description still fails to elaborate on what the tool does behaviorally.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise at 3 words, but this is under-specification rather than effective conciseness. The description lacks essential details that should be present to be 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?
Given the tool has 5 required parameters and no output schema, the description is completely inadequate. It fails to explain what the tool creates, the purpose of each parameter, or any return value expectations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 5 parameters with 0% description coverage. The description provides no information about what each parameter (name, apiUrl, apiKey, model, isEnabled) means or how to use them. Schema coverage is zero, and description offers zero compensation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description 'POST /ai.create' is essentially a tautology of the tool name and HTTP method. It doesn't specify what resource is being created (e.g., AI provider, model configuration), offering no verb+resource clarity. The title 'Ai Create' is slightly more descriptive but still vague.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like ai-update, ai-delete, or other creation tools. No context about prerequisites, when not to use, or how it differs from siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ai-deleteDDestructive
POST /ai.delete
| Name | Required | Description | Default |
|---|---|---|---|
| aiId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
While annotations indicate destructiveHint=true and openWorldHint=true, the description adds no behavioral context. It does not explain what gets destroyed, any side effects, auth requirements, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise but under-specified. It provides no useful information beyond the tool name, wasting the opportunity to guide the agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 schema and presence of annotations, the description is completely inadequate. It fails to explain what the tool does or when to use it, leaving the agent without essential 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 defines one required parameter 'aiId' as a string, but the description adds no meaning. With 0% schema description coverage, the description fails to compensate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is just 'POST /ai.delete', which is a tautology of the name. It does not state that it deletes an AI resource, nor does it distinguish from sibling tools like ai-create or ai-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 usage guidance is provided. There is no indication of when to use this tool versus alternatives like ai-update or ai-deploy.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ai-deployDIdempotent
POST /ai.deploy
| Name | Required | Description | Default |
|---|---|---|---|
| environmentId | Yes | ||
| id | Yes | ||
| dockerCompose | Yes | ||
| envVariables | Yes | ||
| serverId | No | ||
| name | Yes | ||
| description | Yes | ||
| domains | No | ||
| configFiles | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral context beyond the annotations (idempotentHint, openWorldHint). It does not mention side effects, permissions, or any traits not already in annotations. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short but severely under-specified rather than concise. It omits essential information that a tool of this complexity requires.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 9 parameters, no output schema, and no description, the tool is completely incomplete for an agent to use correctly. The description adds no value.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description provides zero explanation of the 9 parameters (6 required). The description fails to add any meaning beyond the schema 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 'POST /ai.deploy' is a tautology, merely restating the tool name and HTTP method without indicating what the tool does or what resource it acts upon. It provides no meaningful purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus sibling tools like ai-create, ai-update, or ai-analyzeLogs. The context lacks any usage context or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ai-getDRead-onlyIdempotent
GET /ai.get
| Name | Required | Description | Default |
|---|---|---|---|
| aiId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint. The description adds no behavioral information beyond what annotations provide, such as whether it fetches a single AI by ID or requires specific 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?
While extremely short, the description is under-specified rather than concise. It fails to convey necessary information, and its brevity comes at the cost of clarity. Every sentence should add value, but this one does not.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the large set of sibling tools, the absence of an output schema, and a single undocumented parameter, the description is completely inadequate. It provides none of the context needed for an agent to understand tool 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 input schema has one required parameter 'aiId' with 0% description coverage. The description does not explain what this parameter represents or how to use it, relying solely on the schema which lacks any descriptive text.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 merely 'GET /ai.get', which is a tautology that restates the HTTP method and endpoint. It does not specify what the tool retrieves or its purpose, failing to distinguish it from siblings like ai-getAll or ai-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?
No guidance is provided on when to use ai-get versus alternatives such as ai-getAll, ai-one, or ai-getModels. The description lacks any context about appropriate usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ai-getAllCRead-onlyIdempotent
GET /ai.getAll
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, idempotentHint=true, and openWorldHint=true. The description adds no additional behavioral context (e.g., what is returned, pagination, or side effects), providing no value beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise but lacks substantive content. It is underspecified, providing no useful information beyond the endpoint, which is insufficient for the tool's role.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters and no output schema, the description still fails to explain the tool's purpose, return type, or when to use it, making it incomplete for effective agent decision-making.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has zero parameters, so description coverage is 100%. With no parameters to explain, the baseline of 4 is appropriate; the description is adequate for 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 'GET /ai.getAll' is just the HTTP method and path, which does not clearly state the tool's purpose. While the name 'ai-getAll' suggests retrieving all AI resources, the description fails to articulate that, making it vague.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidance is provided. The description does not indicate when to use this tool versus sibling tools like 'ai-get' (singular) or 'ai-search', leaving agents without context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ai-getEnabledProvidersDRead-onlyIdempotent
GET /ai.getEnabledProviders
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, but the description adds no behavioral context (e.g., what data is returned, if any scope limitations). It misses the opportunity to clarify behavior beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise but at the cost of being uninformative. It is a tautology rather than a useful summary, failing to earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the sibling tools and lack of output schema, the description provides no explanation of what enabled providers means, what the return format is, or how this tool fits into the overall AI capabilities. Highly 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?
No parameters present, so schema coverage is 100%. Per baseline rule for 0 parameters, score is 4. Description adds no param info, 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?
Description is just 'GET /ai.getEnabledProviders', a tautology that restates the endpoint without explaining what enabled providers are or what the tool does. It fails to distinguish from siblings like ai-get, ai-getAll, ai-getModels.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 ai-getModels or ai-getAll. The description provides no usage context or criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ai-getModelsDRead-onlyIdempotent
GET /ai.getModels
| Name | Required | Description | Default |
|---|---|---|---|
| apiUrl | Yes | ||
| apiKey | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the tool is clearly non-destructive. The description adds no additional behavioral context (e.g., authentication details, rate limits, or what happens on failure). It does not contradict annotations but adds no value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (a single phrase), but it is under-specification rather than efficient. It does not provide enough information to be useful, so conciseness is a drawback here.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 (2 required params, no output schema, and many sibling tools), the description is wholly inadequate. It fails to describe return values, prerequisites, or how the response is structured, leaving the agent with no actionable context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain the purpose or format of 'apiUrl' or 'apiKey'. The agent receives no help beyond the property names and types, making correct invocation likely to fail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 /ai.getModels' merely restates the endpoint and does not explain what the tool does, what constitutes a 'model', or what the agent should expect. It is a tautology of the tool name and provides no semantic clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus sibling tools like ai-getAll, ai-get, or ai-getEnabledProviders. The description lacks context for selection, leaving the agent to guess.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ai-oneDRead-onlyIdempotent
GET /ai.one
| Name | Required | Description | Default |
|---|---|---|---|
| aiId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint, idempotentHint, and openWorldHint. The description adds only 'GET', which is redundant with the annotations. No additional behavioral details (e.g., auth requirements, rate limits, response structure) are provided.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short (four words) but lacks helpful structure or explanatory detail. It sacrifices clarity for brevity and is better described as under-specified rather than concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite the tool having only one parameter and annotations covering safety, the description fails to provide a complete understanding. It does not explain the purpose, expected output, or relationship to sibling tools, leaving significant ambiguity 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 0%, and the description does not mention the 'aiId' parameter. The agent has no insight into what the parameter represents (e.g., an identifier for an AI model, a deployment ID). This is a critical gap for a single-parameter tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description is 'GET /ai.one' which is essentially a tautology of the tool name. It vaguely indicates retrieval of an AI resource by some endpoint but fails to explain what 'ai.one' represents or how it differs from similar sibling tools like 'ai-get'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description does not specify context, prerequisites, or exclusions. With siblings such as 'ai-get', 'ai-getAll', and 'ai-getModels', the agent cannot determine the appropriate tool without additional knowledge.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ai-suggestDIdempotent
POST /ai.suggest
| Name | Required | Description | Default |
|---|---|---|---|
| aiId | Yes | ||
| input | Yes | ||
| serverId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds nothing beyond annotations. Annotations indicate idempotent and open-world hints, but no destructive hint is provided. The description does not disclose any behavioral traits like side effects or authorization needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise but at the expense of substance. The description is too minimal to be useful; it is under-specification rather than efficient communication.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, and the description does not hint at return values. For a tool with 3 parameters and no further structured information, the description is completely inadequate for an agent to understand its function.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description must compensate but fails entirely. It does not explain the meaning of 'aiId', 'input', or 'serverId' parameters, leaving the agent without any guidance on how to populate them.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description is merely 'POST /ai.suggest', which adds no semantic purpose beyond the tool name. It fails to specify what 'suggest' means or what it operates on, unlike sibling tools like 'ai-analyzeLogs' which clearly state their 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 guidance on when to use this tool versus alternatives (e.g., ai-analyzeLogs, ai-create). The description provides no context for appropriate invocation scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ai-testConnectionDIdempotent
POST /ai.testConnection
| Name | Required | Description | Default |
|---|---|---|---|
| apiUrl | Yes | ||
| apiKey | Yes | ||
| model | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate idempotent and open world, but description adds no behavioral details. For a connection test, the description should state it tests connectivity with provided credentials. Missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise but under-specified. The single phrase provides no structure or front-loaded 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?
No output schema, no param descriptions, and minimal behavioral info. Agent lacks key details to use the tool correctly, especially among many sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 3 required params (apiUrl, apiKey, model) with no descriptions. Tool description does not explain them. Agent must infer from name alone.
Input schemas describe structure but not intent. Descriptions should explain 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 is only 'POST /ai.testConnection', which doesn't specify the tool's function. The name suggests testing an AI connection, but the description fails to clarify the verb and 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 vs other testConnection tools (e.g., bitbucket-testConnection, gitea-testConnection). The description omits context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ai-updateCIdempotent
POST /ai.update
| Name | Required | Description | Default |
|---|---|---|---|
| aiId | Yes | ||
| name | No | ||
| apiUrl | No | ||
| apiKey | No | ||
| model | No | ||
| isEnabled | No | ||
| createdAt | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate idempotency and open-world behavior, but the description adds no behavioral context beyond that. It fails to disclose whether the update is partial or full, or what happens if the resource does not exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely brief, but conciseness should not sacrifice informativeness. It lacks useful content and is essentially a stub.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 7 parameters, no output schema, and no parameter descriptions, the description is severely incomplete. It does not cover return values, side effects, or authentication requirements.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description must compensate by explaining parameters, but it does not mention any of the 7 parameters or their meanings, leaving the agent without necessary 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 'POST /ai.update' only specifies the HTTP method and endpoint, which implies an update operation but lacks a clear statement of what the tool does. It does not differentiate from sibling tools like ai-create or ai-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?
No guidance is provided on when to use this tool versus alternatives. The description does not mention prerequisites, context, 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.
application-cancelDeploymentDIdempotent
POST /application.cancelDeployment
| Name | Required | Description | Default |
|---|---|---|---|
| applicationId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description contradicts annotations: idempotentHint=true is inconsistent with the POST HTTP method, which is typically non-idempotent. No additional behavioral context is provided beyond what is already in annotations. Annotation Contradiction flagged.
Agents need to know what a tool does to the world before calling 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 at the cost of omitting essential information. It is not truly concise because it fails to communicate the tool's purpose or usage.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of output schema, no parameter details, and the tool's likely critical nature (canceling a deployment), the description is wholly inadequate. An agent cannot safely or correctly invoke this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description fails to explain the applicationId parameter's purpose, format, or scope. It adds no meaning beyond the schema's existence.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'POST /application.cancelDeployment' is a tautology that merely restates the tool's name and HTTP method. It provides no semantic explanation of what canceling a deployment entails, leaving ambiguity about its function (e.g., cancels active deployment or pending queue).
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 vs. siblings like application-clearDeployments or application-dropDeployment. The description does not indicate prerequisites, side effects, or context for use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
application-cleanQueuesDIdempotent
POST /application.cleanQueues
| Name | Required | Description | Default |
|---|---|---|---|
| applicationId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite annotations indicating idempotentHint and openWorldHint, the description adds no behavioral context beyond what annotations already provide. It fails to disclose side effects, prerequisites, or any operational details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While the description is short, it is underspecified rather than concise. It provides no substantive information, so it fails to earn its space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's parameter count, lack of output schema, and many sibling tools, the description is completely inadequate. It offers no meaningful context for an AI agent to select or invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not mention the required 'applicationId' parameter. No semantic meaning is added beyond the schema's structural definition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 merely the HTTP path 'POST /application.cleanQueues', which restates the tool name without explaining its function. It does not specify what cleaning queues means or what resource is affected, making it 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?
No guidance is provided on when to use this tool versus siblings like 'application-clearDeployments' or 'compose-cleanQueues'. The description offers no context for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
application-clearDeploymentsDIdempotent
POST /application.clearDeployments
| Name | Required | Description | Default |
|---|---|---|---|
| applicationId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide idempotentHint and openWorldHint, which partially cover safety. However, the description adds no behavioral insight beyond what is already in annotations, nor does it describe side effects or prerequisites.
Agents need to know what a tool does to the world before calling 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 fails to convey essential information. It is under-specified rather than appropriately concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity and lack of output schema, the description is completely inadequate. It does not specify the action, effect, or return value, leaving the agent with no useful context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With schema description coverage at 0%, the description should clarify the parameter's role, but it does not. The single 'applicationId' parameter is left entirely unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is merely the HTTP endpoint 'POST /application.clearDeployments', which only restates the tool name without explaining what the tool does. It provides no verb or resource 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 guidance is provided on when to use this tool versus alternatives like application-cancelDeployment or application-dropDeployment. The description lacks any usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
application-createD
POST /application.create
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| appName | No | ||
| description | No | ||
| environmentId | Yes | ||
| serverId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral information beyond the annotation (openWorldHint: true). It does not disclose whether this is a mutation, auth requirements, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While extremely brief, the description is under-specified and fails to earn its place. It is not 'appropriately sized' because it lacks 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 complexity (5 parameters, no output schema) and lack of annotations, the description is completely inadequate. It does not explain the tool's purpose, expected behavior, or parameter meaning.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description provides no meaning or context for the five parameters. The description does not help an agent understand what 'name', 'appName', 'description', 'environmentId', or 'serverId' represent.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is just 'POST /application.create', which essentially repeats the tool name and HTTP method. It does not specify what the tool does (e.g., creates an application with given parameters) and fails to differentiate from siblings like application-deploy or application-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. With many sibling tools (e.g., application-deploy, application-update), explicit usage context is missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
application-deleteDDestructive
POST /application.delete
| Name | Required | Description | Default |
|---|---|---|---|
| applicationId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark destructiveHint=true, so the destructive nature is clear. However, the description adds no behavioral context beyond that—no mention of whether deletion is irreversible, what happens to associated deployments or domains, or any impact on other resources. Minimal value added.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely short, but this is under-specification rather than conciseness. Every word should add value; here, the three words repeat the name and lack actionable content. The structure does not front-load critical 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 having only one parameter and no output schema, the description does not explain the tool's effect, what happens to the application's data, or any prerequisites (e.g., stopping the application first). With annotations providing destructive hint, the description still feels incomplete for an agent to safely use the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not mention the sole parameter 'applicationId' at all. The agent gains no insight into what applicationId represents, its format, or how to obtain it. The description fails to compensate for the missing schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description 'POST /application.delete' is a tautology that restates the tool name in HTTP verb form. It provides no specific verb or resource explanation beyond the name itself, so an agent cannot distinguish it from other application-* tools like application-remove or application-cancelDeployment.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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. With many sibling tools including application-remove, application-cancelDeployment, and application-cleanQueues, the description fails to specify prerequisites, side effects, or exclusion criteria for using application-delete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
application-deployDIdempotent
POST /application.deploy
| Name | Required | Description | Default |
|---|---|---|---|
| applicationId | Yes | ||
| title | No | ||
| description | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare idempotentHint and openWorldHint but the description adds no behavioral context. For a deployment action that likely triggers builds and side effects, the description is silent on what changes occur, making it minimally 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?
While extremely short, the description is underspecified rather than concise. It provides no substantive information, making it unhelpful for an agent. Every dimension requires more content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of deployment (many sibling tools, no output schema, 0% param coverage), this description is completely inadequate. It does not explain what deploying entails, success/failure conditions, or how it relates to other application lifecycle 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 coverage is 0% and the description does not explain any parameter meaning. applicationId, title, and description are not clarified, leaving the agent without semantic understanding. The description adds no value beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description is 'POST /application.deploy', which is a tautology that simply restates the HTTP method and endpoint. It does not specify what the tool does, such as deploying an application after creating it. It fails to distinguish from sibling tools like application-redeploy or application-create.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like application-redeploy, application-cancelDeployment, or other deploy tools. There is no context about prerequisites or post-deployment behavior.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
application-disconnectGitProviderDIdempotent
POST /application.disconnectGitProvider
| Name | Required | Description | Default |
|---|---|---|---|
| applicationId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations include idempotentHint=true and openWorldHint=true, but the description adds no behavioral detail. Some basic traits are covered by annotations, but description should still clarify effects like state changes or prerequisites.
Agents need to know what a tool does to the world before calling 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. It lacks essential information and does not earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's specific action (disconnecting a Git provider) and the presence of many sibling tools, the description is completely inadequate. No explanation of effects, prerequisites, or return values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has one required parameter 'applicationId' with no description. Schema coverage is 0%, and the description does not explain this parameter's meaning or expected 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?
Description is only 'POST /application.disconnectGitProvider', which repeats the endpoint path without explaining what the tool does. It fails to specify the action (disconnecting a Git provider) beyond 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?
No guidance on when to use this tool versus siblings like application-saveGitProvider or application-deploy. The description provides no context for decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
application-dropDeploymentDIdempotent
POST /application.dropDeployment
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide idempotentHint and openWorldHint, but the description adds no behavioral details. It does not clarify what 'drop' entails (e.g., deletion, cancellation) or any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief but underspecified. It is a single line stating the HTTP method and endpoint, lacking any meaningful structure or explanation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 deployment operations and the presence of siblings, the description is completely inadequate. It does not explain the tool's purpose, return values, or how it differs from similar tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters, so the input schema fully covers the expected inputs. The description adds no parameter info, which is acceptable given 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 is merely 'POST /application.dropDeployment', which is a tautology of the name and provides no verb or resource explanation. It fails to distinguish from siblings like 'application-cancelDeployment' or 'application-deploy'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 alternative deployment-related tools. The description lacks any context for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
application-killBuildDIdempotent
POST /application.killBuild
| Name | Required | Description | Default |
|---|---|---|---|
| applicationId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral information beyond what the annotations provide. The annotations indicate idempotentHint=true, but the description does not explain any side effects or safety considerations.
Agents need to know what a tool does to the world before calling 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, but it is not informative. While conciseness is valued, it sacrifices essential information, making it inadequate for tool selection.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 and a minimal description. It does not explain what happens when invoked, the effects of killing a build, or how to interpret results. This is insufficient for an agent to use 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 0% description coverage, and the description does not explain the purpose or constraints of the 'applicationId' parameter. The agent receives no additional meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'POST /application.killBuild' merely states the HTTP method and endpoint. It does not explain what 'killBuild' means in terms of the action performed on the application. The purpose is implied by the name but not clarified.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 application-stop or application-cancelDeployment. There is no mention of context or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
application-markRunningDIdempotent
POST /application.markRunning
| Name | Required | Description | Default |
|---|---|---|---|
| applicationId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral information beyond annotations. Annotations indicate idempotent and open world, but description does not explain what marking as running entails, side effects, or required permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While extremely short, it is not effective. A one-line description that simply echoes the endpoint name wastes the opportunity to convey tool purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of sibling tools and lack of output schema, the description is completely inadequate. It fails to explain how 'markRunning' relates to other application lifecycle tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description provides no explanation of the 'applicationId' parameter beyond the schema. Users are left to infer what ID to provide.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'POST /application.markRunning' is a tautology of the endpoint name. It does not state what the tool does, e.g., marks an application as running. No verb or resource context provided.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like application-start, application-deploy, etc. No context on prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
application-moveDIdempotent
POST /application.move
| Name | Required | Description | Default |
|---|---|---|---|
| applicationId | Yes | ||
| targetEnvironmentId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral information beyond what annotations already provide. It does not explain side effects, authorization needs, or what moving entails. The idempotentHint and openWorldHint annotations are present but the description contributes nothing.
Agents need to know what a tool does to the world before calling 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 this is under-specification rather than efficient conciseness. It omits essential information that a single sentence could provide (e.g., 'Move an application to a different environment'). The structure lacks any front-loading of core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (2 required parameters, no output schema, many sibling move tools), the description is woefully incomplete. It fails to define what the tool does, when to use it, or what the parameters mean. An agent cannot reliably select or invoke this tool based on this description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema coverage, the description must compensate but fails entirely. It does not explain what 'applicationId' or 'targetEnvironmentId' represent, their roles, or any constraints. The parameters remain completely opaque.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'POST /application.move', which tautologically restates the HTTP method and endpoint path without specifying the tool's action. It does not state that the tool moves an application to a different environment, nor does it provide any verb+resource clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidance is provided. The description gives no indication of when to use this tool versus alternatives like compose-move or database-specific move tools. There are no prerequisites or context for invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
application-oneDRead-onlyIdempotent
GET /application.one
| Name | Required | Description | Default |
|---|---|---|---|
| applicationId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, which the description implicitly matches. However, the description adds no additional behavioral context beyond what annotations provide. No contradictions.
Agents need to know what a tool does to the 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 very short, the description is under-specified rather than concise. It does not efficiently convey needed information; every sentence should earn its place, but here there is only a fragment.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of output schema, the description is extremely incomplete. It does not mention return values, error conditions, or what the applicationId refers to, leaving the agent with insufficient information to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the description does not explain the single parameter 'applicationId' at all. The description fails to add meaning to the parameter, such as its expected format or purpose.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'GET /application.one' is a tautology that merely restates the tool name with an HTTP method. It provides no indication of what the tool actually does, such as retrieving a specific application by ID, and does not differentiate it from sibling tools like application-create or application-search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no guidance on when to use this tool versus alternatives. It does not specify the purpose of retrieving a single application or when it is appropriate to use this over other tools like application-search or application-all.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
application-readAppMonitoringDRead-onlyIdempotent
GET /application.readAppMonitoring
| Name | Required | Description | Default |
|---|---|---|---|
| appName | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, establishing it as a safe read operation. However, the description adds no behavioral context (e.g., what metrics are retrieved, rate limits, or data scope) beyond what the annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short, but it fails to convey any meaningful information. Conciseness is only valuable when the content is sufficient; here it is under-specified and wastes the opportunity to inform the user.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 of the tool (one parameter, no output schema, rich annotations), the description is still incomplete. It does not explain what monitoring information is read, how the appName is used, or what the response contains, leaving the agent without essential context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage and a single required parameter 'appName', the description does not explain the parameter's purpose, expected format, or how it affects the tool's behavior. The schema provides no description, so the tool is entirely opaque.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 merely the HTTP method and endpoint path 'GET /application.readAppMonitoring', which does not state what the tool does. It lacks a verb and resource description, and fails to distinguish from sibling tools like 'application-readLogs' or 'application-readTraefikConfig'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. The description provides no context for its usage, even though sibling tools exist for other monitoring or application reading operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
application-readLogsDRead-onlyIdempotent
GET /application.readLogs
| Name | Required | Description | Default |
|---|---|---|---|
| applicationId | Yes | ||
| tail | No | ||
| since | No | all | |
| search | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true and idempotentHint=true, indicating a safe read operation. However, the description adds no behavioral context beyond what annotations provide, such as log format or limitations.
Agents need to know what a tool does to the world before calling 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 not concise in a meaningful way. It under-specifies the tool's purpose and usage, reducing its utility.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 4 parameters and no output schema, the description fails to provide essential context about log retrieval, parameter effects, or response format. It is completely inadequate for an agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain any parameters (applicationId, tail, since, search). The schema provides no descriptions, leaving the agent with no semantic understanding of the 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 only states 'GET /application.readLogs' and does not explain what the tool does. It fails to convey that it reads logs for an application, making it missing/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?
No guidance on when to use this tool versus sibling tools like compose-readLogs or postgres-readLogs. The description provides no context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
application-readTraefikConfigCRead-onlyIdempotent
GET /application.readTraefikConfig
| Name | Required | Description | Default |
|---|---|---|---|
| applicationId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so the agent knows it's a safe read operation. The description does not add behavioral context but does not contradict the annotations either.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While extremely concise, the description lacks substance. It does not front-load useful information; it essentially repeats the tool name and endpoint.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description should clarify what the tool returns (e.g., Traefik config data). It fails to provide that context, leaving the agent to infer it from the name.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single required parameter 'applicationId' has no description in the schema or the tool description. The description does not explain what values are valid or how the parameter affects the result.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is just 'GET /application.readTraefikConfig', which adds no information beyond the tool name. It fails to specify what the tool does or how it differs from siblings like application-updateTraefikConfig.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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, context, or situations where other tools (e.g., settings-readTraefikConfig) 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.
application-redeployDIdempotent
POST /application.redeploy
| Name | Required | Description | Default |
|---|---|---|---|
| applicationId | Yes | ||
| title | No | ||
| description | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide idempotentHint: true, but the description adds no behavioral context. It does not describe side effects, required permissions, or what happens during redeployment. However, no contradiction with annotations exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short, but this brevity comes at the cost of missing essential information. It is under-specified rather than concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a redeploy tool with no output schema and minimal annotations, the description is utterly insufficient. It provides no context about the tool's purpose, behavior, or 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 description coverage is 0%, but the description provides no explanation of parameters. The three parameters (applicationId, title, description) are left entirely 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 is 'POST /application.redeploy', which is a tautology that merely repeats the tool name and HTTP method. It fails to state what the tool does (e.g., redeploys an application).
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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. There is no mention of when to use this tool versus sibling tools like application-deploy or application-delete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
application-refreshTokenDIdempotent
POST /application.refreshToken
| Name | Required | Description | Default |
|---|---|---|---|
| applicationId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide idempotentHint=true and openWorldHint=true, but the description fails to add any behavioral context beyond what annotations already convey. It does not explain side effects, required permissions, or what happens upon success/failure.
Agents need to know what a tool does to the world before calling 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 severely under-specified. Conciseness should not sacrifice necessary information; here it fails to provide even a basic purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, no parameter descriptions, and a one-line description that adds no context, the tool definition is critically incomplete for an AI agent to understand its 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 coverage is 0% (no parameter descriptions). The only parameter 'applicationId' has no explanation in either schema or description. The description does not add any meaning to 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 is merely the HTTP method and endpoint path, which does not state what the tool does. It is a tautology of the tool name 'application-refreshToken', lacking any verb or resource explanation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 vs alternatives like compose-refreshToken. The description provides no context on prerequisites, if any, or scenarios where this should be invoked.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
application-reloadCIdempotent
POST /application.reload
| Name | Required | Description | Default |
|---|---|---|---|
| appName | Yes | ||
| applicationId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide idempotentHint=true and openWorldHint=true, indicating safe retry and external system interaction. The description adds no additional behavioral details, which is acceptable given 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 extremely concise but fails to convey the tool's purpose. It is underspecified rather than efficiently informative. Every sentence should add value, but here it adds almost none.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 output schema, low schema coverage, and many sibling tools, the description provides insufficient information for an agent to understand what the tool does, when to use it, or what happens when invoked.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description does not explain the purpose or meaning of the two required parameters (appName, applicationId). The description only includes the endpoint path, leaving agents without parameter 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 'POST /application.reload' only provides the HTTP method and endpoint path. It does not explain what the tool does beyond its name. The title 'Application Reload' gives some hint, but the description lacks a verb and resource description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 application-redeploy, application-restart, or application-update. The description provides no context for selection among sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
application-saveBitbucketProviderDIdempotent
POST /application.saveBitbucketProvider
| Name | Required | Description | Default |
|---|---|---|---|
| bitbucketBranch | Yes | ||
| bitbucketBuildPath | Yes | ||
| bitbucketOwner | Yes | ||
| bitbucketRepository | Yes | ||
| bitbucketRepositorySlug | Yes | ||
| bitbucketId | Yes | ||
| applicationId | Yes | ||
| enableSubmodules | No | ||
| watchPaths | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide idempotentHint=true and openWorldHint=true, which indicate some behavioral traits. However, the description adds no additional behavioral context, such as whether this creates or updates a provider, authorization requirements, or side effects beyond what annotations hint.
Agents need to know what a tool does to the 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 short, the description is not concise in a useful sense—it is under-specified and does not earn its place. Every word should add value, but here the description merely restates 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?
Given the tool's complexity (9 parameters, 7 required, no output schema), the description is completely inadequate. It fails to connect the tool to the application ID, explain return values, or provide any context that complements the schema and annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning the schema provides no descriptions for the 9 parameters. The description also offers no explanations, leaving the agent to infer meaning solely from parameter names like 'bitbucketBranch' and 'bitbucketOwner'. This is insufficient for correct invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is merely 'POST /application.saveBitbucketProvider', which restates the tool name as an HTTP endpoint without explaining what the tool does. It does not specify the verb (save) in a meaningful way or identify the resource beyond the name. It is 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?
No guidance is provided on when to use this tool versus sibling tools like application-saveGithubProvider, application-saveGitlabProvider, etc. There is no mention of prerequisites, alternatives, or context for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
application-saveBuildTypeDIdempotent
POST /application.saveBuildType
| Name | Required | Description | Default |
|---|---|---|---|
| applicationId | Yes | ||
| buildType | Yes | ||
| dockerfile | Yes | ||
| dockerContextPath | Yes | ||
| dockerBuildStage | Yes | ||
| herokuVersion | Yes | ||
| railpackVersion | Yes | ||
| publishDirectory | No | ||
| isStaticSpa | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide idempotentHint=true and openWorldHint=true, but the description adds no behavioral context beyond what is already in the annotations. It does not describe side effects, safety, or other 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 extremely short, but this is under-specification rather than conciseness. It lacks essential detail and does not earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 9 parameters (7 required), no output schema, and an important build type enumeration, the description is completely inadequate. It provides no context for correct usage or 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?
With 0% schema description coverage and no parameter explanations in the description, the agent has no information about the meaning of fields like applicationId, buildType, dockerfile, etc. The description completely fails to add 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 is 'POST /application.saveBuildType', which is a tautology that restates the tool name and method. It does not specify what the tool does, such as saving the build type for an application, and fails to distinguish it from 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?
No guidance is provided on when to use this tool versus alternatives like application-create or application-update. The description offers no context, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
application-saveDockerProviderDIdempotent
POST /application.saveDockerProvider
| Name | Required | Description | Default |
|---|---|---|---|
| dockerImage | Yes | ||
| applicationId | Yes | ||
| username | Yes | ||
| password | Yes | ||
| registryUrl | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description provides no behavioral information beyond what annotations already provide (idempotentHint, openWorldHint). It does not disclose side effects, required permissions, or what is created/updated. For a tool with no schema descriptions and no output schema, 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 extremely short (one line), but it is not concise in a helpful way—it is underspecified. It fails to convey necessary information. Every sentence should earn its place; this one does not.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (5 required params, no schema descriptions, no output schema), the description is completely inadequate. It provides no context on what the tool does, what the parameters mean, or what the response is. The tool is a write operation, but no details are given.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero description coverage (0%) for all 5 parameters. The description adds no meaning; it is just the endpoint. The parameters (dockerImage, applicationId, username, password, registryUrl) are not explained. The description should have clarified their purpose but did 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 is merely the HTTP method and endpoint path ('POST /application.saveDockerProvider'). It does not explain what the tool does. The title 'Application SaveDockerProvider' hints at saving a Docker provider, but the description fails to state the verb and resource clearly. This is a tautology of 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?
No guidance on when to use this tool versus alternatives. There are many sibling tools like application-saveBitbucketProvider, application-saveGithubProvider, etc., but no context on when to choose this one. No when-not-to-use or alternative suggestions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
application-saveEnvironmentDIdempotent
POST /application.saveEnvironment
| Name | Required | Description | Default |
|---|---|---|---|
| applicationId | Yes | ||
| env | Yes | ||
| buildArgs | Yes | ||
| buildSecrets | Yes | ||
| createEnvFile | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide idempotentHint and openWorldHint, indicating safe retry and potential side effects. However, the description adds nothing beyond these annotations and does not explain behaviors like permissions or side effects in 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?
Extremely short but due to under-specification, not conciseness. Every sentence should add value; this description adds none.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutating tool with 5 required parameters and no output schema, the description is critically incomplete. It fails to explain what the tool does, what the parameters mean, or what side effects occur.
Complex tools with many parameters or behaviors need more documentation. 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 5 parameters are required with zero schema description coverage. The description provides no additional meaning for parameters like env, buildArgs, buildSecrets, or createEnvFile, leaving the agent uninformed.
Input schemas describe structure but not intent. Descriptions should explain 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 is just 'POST /application.saveEnvironment', a tautology that repeats the HTTP path without stating what the tool does. It fails to convey that it saves environment settings for an application.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 vs alternatives like application-create, application-update, or other saveEnvironment tools. Neither context nor exclusions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
application-saveGiteaProviderDIdempotent
POST /application.saveGiteaProvider
| Name | Required | Description | Default |
|---|---|---|---|
| applicationId | Yes | ||
| giteaBranch | Yes | ||
| giteaBuildPath | Yes | ||
| giteaOwner | Yes | ||
| giteaRepository | Yes | ||
| giteaId | Yes | ||
| enableSubmodules | No | ||
| watchPaths | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations include idempotentHint=true and openWorldHint=true, but the description adds no behavioral information beyond that. It does not disclose whether this tool creates or updates, what side effects occur, or any other behavioral traits. The description is insufficient for a mutation-like 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 (one line), but this is under-specification rather than effective conciseness. It lacks essential information and does not earn its place as a helpful description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 8 parameters (6 required), no output schema, and many sibling tools, the description is entirely inadequate. It fails to explain the purpose, behavior, parameters, or return value, leaving the agent with no useful context to select or invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% (no parameter descriptions), and the tool description provides no parameter semantics. Parameters like applicationId, giteaBranch, etc., are left completely unexplained. The description must compensate for low schema coverage but fails entirely.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is merely the HTTP endpoint 'POST /application.saveGiteaProvider', which is a tautology of the tool name. It does not state what the tool does, such as saving a Gitea provider for an application. Given sibling tools like application-saveGithubProvider, the description fails to differentiate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 application-saveGithubProvider or when not to use it. There is no mention of prerequisites, context, or use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
application-saveGithubProviderDIdempotent
POST /application.saveGithubProvider
| Name | Required | Description | Default |
|---|---|---|---|
| applicationId | Yes | ||
| repository | Yes | ||
| branch | Yes | ||
| owner | Yes | ||
| buildPath | Yes | ||
| githubId | Yes | ||
| triggerType | No | push | |
| enableSubmodules | No | ||
| watchPaths | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral details beyond what annotations already provide. Annotations indicate idempotentHint=true and openWorldHint=true, but the description does not explain what these mean for usage.
Agents need to know what a tool does to the 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 short, it is underspecified and fails to provide useful information. It does not earn its place with meaningful content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 9 parameters (6 required) and no output schema, the description is completely inadequate. It offers no context for an agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning the input schema has no parameter descriptions. The description does not add any meaning to the parameters (e.g., what repository, branch, owner refer to).
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 only 'POST /application.saveGithubProvider', which is a tautology of the tool name. It does not state what the tool does, such as saving or configuring a GitHub provider for an application.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 application-saveBitbucketProvider or other save*Provider tools. There are no contextual hints about prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
application-saveGitlabProviderDIdempotent
POST /application.saveGitlabProvider
| Name | Required | Description | Default |
|---|---|---|---|
| applicationId | Yes | ||
| gitlabBranch | Yes | ||
| gitlabBuildPath | Yes | ||
| gitlabOwner | Yes | ||
| gitlabRepository | Yes | ||
| gitlabId | Yes | ||
| gitlabProjectId | Yes | ||
| gitlabPathNamespace | Yes | ||
| enableSubmodules | No | ||
| watchPaths | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate idempotentHint=true and openWorldHint=true, but the description adds no behavioral context beyond the endpoint. It does not clarify whether this creates or updates a provider, what side effects occur, or any required permissions. With annotations already providing some safety cues, the description still fails to add meaningful 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?
At only one sentence, it is concise but not effectively so. The description is under-specified and fails to provide any useful information. It is not appropriately front-loaded with essential context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (10 params, 8 required, no output schema), the description is severely incomplete. It does not state what the tool returns, how it behaves, or how it fits into the workflow of saving a GitLab provider. The sibling tools and high parameter count demand a much richer description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 10 parameters (8 required) with 0% schema description coverage, yet the tool description contains no parameter explanations. The description must compensate for this gap but does not; it offers no help in understanding the purpose or constraints of parameters like gitlabOwner, gitlabProjectId, or watchPaths.
Input schemas describe structure but not intent. Descriptions should explain 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 is merely the REST endpoint 'POST /application.saveGitlabProvider', which is essentially a tautology that restates the tool name. It does not specify what the tool does beyond the name, nor does it differentiate from sibling tools like application-saveGithubProvider or application-saveBitbucketProvider.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 guidelines are provided. The description does not indicate when to use this tool versus alternatives, nor does it mention any prerequisites, context, or exclusions. Given the presence of many sibling Git provider tools, this omission is critical.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
application-saveGitProviderDIdempotent
POST /application.saveGitProvider
| Name | Required | Description | Default |
|---|---|---|---|
| customGitBranch | Yes | ||
| applicationId | Yes | ||
| customGitBuildPath | Yes | ||
| customGitUrl | Yes | ||
| watchPaths | Yes | ||
| enableSubmodules | No | ||
| customGitSSHKeyId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral information beyond what the annotations provide (idempotentHint, openWorldHint). It does not mention side effects, permissions, or other operational characteristics. For a mutation tool, 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 overly terse (6 words) and lacks essential structure. It is underspecified rather than concise, containing no actionable information for an AI agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 (7 parameters, no output schema, many sibling tools), the description is completely inadequate. It does not explain return values, error handling, or usage context, leaving an AI agent unable to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 7 parameters with 0% schema description coverage. The description does not explain any parameter meanings, defaults, or relationships. Parameter names like 'customGitUrl' are somewhat self-explanatory, but the description provides no additional 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 is only 'POST /application.saveGitProvider', which merely repeats the tool name and HTTP method without specifying what the tool does. It does not clarify that it saves git provider settings for an application, and it fails to distinguish from sibling tools like application-saveGithubProvider.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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. There are multiple sibling tools for saving specific git providers (e.g., application-saveGithubProvider), but the description does not explain the generic scope or selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
application-searchDRead-onlyIdempotent
GET /application.search
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | ||
| name | No | ||
| appName | No | ||
| description | No | ||
| repository | No | ||
| owner | No | ||
| dockerImage | No | ||
| projectId | No | ||
| environmentId | No | ||
| limit | No | ||
| offset | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint. The description adds no behavioral context beyond these, such as pagination behavior, result ordering, or that the search is case-insensitive. It does not contradict annotations, but fails to add value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short (one token), but this is under-specification rather than conciseness. It does not earn its place; a helpful description would be longer to cover important aspects.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 (11 parameters, no output schema, no annotations covering behavior like pagination or filtering), the description is completely inadequate. It fails to inform the agent about the tool's capabilities or how to use it 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?
There are 11 input parameters, all with schema description coverage at 0%. The description does not explain any parameter's meaning or usage (e.g., what 'q' searches across, how 'name' vs 'appName' differ). Without schema descriptions, the tool description must compensate fully, but it provides zero parameter information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is merely the HTTP method and endpoint path 'GET /application.search', which is a tautology of the tool name. It does not state what the tool does (e.g., search for applications). The sibling tools include many search tools (compose-search, environment-search, project-search), but this description provides no distinguishing purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when or why to use this tool over alternatives. With many sibling search tools, explicit usage context is missing entirely. The description offers no suggestions, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
application-startDIdempotent
POST /application.start
| Name | Required | Description | Default |
|---|---|---|---|
| applicationId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations note idempotent and openWorldHint, but description adds no behavioral details like starting a stopped application, prerequisite states, or side effects. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise but lacks essential information; it is under-specification, not efficient 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 many sibling tools and no output schema, description is completely inadequate—does not explain the effect, prerequisites, or consequences of starting an application.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, and description does not explain the 'applicationId' parameter's meaning or usage. Schema shows it's a required string, but description adds no value 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?
Description is a tautology: 'POST /application.start' repeats the tool name and HTTP method without specifying the action (e.g., start an application). No differentiation from sibling tools like application-stop.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 vs alternatives (e.g., when an application is stopped, when to use application-deploy). No context or exclusions provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
application-stopDIdempotent
POST /application.stop
| Name | Required | Description | Default |
|---|---|---|---|
| applicationId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate idempotentHint=true and openWorldHint=true, but the description adds no behavioral context (e.g., what happens to the application, whether it's a graceful stop). While no contradiction exists, the description fails to leverage the annotations to provide useful 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 extremely short, but this is underspecification rather than conciseness. It lacks the content needed to be useful, making it poorly structured despite its 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 simple stop action with one parameter and no output schema, minimal context is needed (e.g., 'Stops a running application'). The current description fails to provide even that, making it completely inadequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has a single required parameter (applicationId) with 0% description coverage, but the tool description does not mention or explain this parameter at all. No value is added 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 is merely 'POST /application.stop', which is a tautology of the tool name. It does not state what the tool does beyond the name, leaving its purpose unclear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 application-start or application-cancelDeployment. The description offers no context for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
application-updateDIdempotent
POST /application.update
| Name | Required | Description | Default |
|---|---|---|---|
| applicationId | Yes | ||
| name | No | ||
| appName | No | ||
| description | No | ||
| env | No | ||
| previewEnv | No | ||
| watchPaths | No | ||
| previewBuildArgs | No | ||
| previewBuildSecrets | No | ||
| previewLabels | No | ||
| previewWildcard | No | ||
| previewPort | No | ||
| previewHttps | No | ||
| previewPath | No | ||
| previewCertificateType | No | ||
| previewCustomCertResolver | No | ||
| previewLimit | No | ||
| isPreviewDeploymentsActive | No | ||
| previewRequireCollaboratorPermissions | No | ||
| rollbackActive | No | ||
| buildArgs | No | ||
| buildSecrets | No | ||
| memoryReservation | No | ||
| memoryLimit | No | ||
| cpuReservation | No | ||
| cpuLimit | No | ||
| title | No | ||
| enabled | No | ||
| subtitle | No | ||
| command | No | ||
| args | No | ||
| icon | No | ||
| refreshToken | No | ||
| sourceType | No | ||
| cleanCache | No | ||
| repository | No | ||
| owner | No | ||
| branch | No | ||
| buildPath | No | ||
| triggerType | No | ||
| autoDeploy | No | ||
| gitlabProjectId | No | ||
| gitlabRepository | No | ||
| gitlabOwner | No | ||
| gitlabBranch | No | ||
| gitlabBuildPath | No | ||
| gitlabPathNamespace | No | ||
| giteaRepository | No | ||
| giteaOwner | No | ||
| giteaBranch | No | ||
| giteaBuildPath | No | ||
| bitbucketRepository | No | ||
| bitbucketRepositorySlug | No | ||
| bitbucketOwner | No | ||
| bitbucketBranch | No | ||
| bitbucketBuildPath | No | ||
| username | No | ||
| password | No | ||
| dockerImage | No | ||
| registryUrl | No | ||
| customGitUrl | No | ||
| customGitBranch | No | ||
| customGitBuildPath | No | ||
| customGitSSHKeyId | No | ||
| enableSubmodules | No | ||
| dockerfile | No | ||
| dockerContextPath | No | ||
| dockerBuildStage | No | ||
| dropBuildPath | No | ||
| healthCheckSwarm | No | ||
| restartPolicySwarm | No | ||
| placementSwarm | No | ||
| updateConfigSwarm | No | ||
| rollbackConfigSwarm | No | ||
| modeSwarm | No | ||
| labelsSwarm | No | ||
| networkSwarm | No | ||
| stopGracePeriodSwarm | No | ||
| endpointSpecSwarm | No | ||
| ulimitsSwarm | No | ||
| replicas | No | ||
| applicationStatus | No | ||
| buildType | No | ||
| railpackVersion | No | ||
| herokuVersion | No | ||
| publishDirectory | No | ||
| isStaticSpa | No | ||
| createEnvFile | No | ||
| createdAt | No | ||
| registryId | No | ||
| rollbackRegistryId | No | ||
| environmentId | No | ||
| githubId | No | ||
| gitlabId | No | ||
| giteaId | No | ||
| bitbucketId | No | ||
| buildServerId | No | ||
| buildRegistryId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare idempotentHint: true and openWorldHint: true. The description adds no behavioral context beyond what is already structured. It does not mention idempotency, side effects, or required permissions, so it provides minimal added value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short (one phrase), which is under-specified rather than concise. It wastes the opportunity to convey 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 complexity (98 parameters, many sibling tools, no output schema), the description is severely incomplete. It fails to explain the tool's purpose, usage, or key parameters, making it nearly useless 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 0% across 98 parameters, and the description makes no mention of any parameter. This provides no semantic help for the agent to understand what each parameter means.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'POST /application.update', which is a tautology of the tool name. It does not state the action performed (e.g., 'Updates an application's settings'). The title from annotations provides some context, but the description itself fails to define purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus siblings like application-create or application-one. The description lacks any contextual cues for appropriate invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
application-updateTraefikConfigDIdempotent
POST /application.updateTraefikConfig
| Name | Required | Description | Default |
|---|---|---|---|
| applicationId | Yes | ||
| traefikConfig | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral information beyond the annotations (idempotentHint, openWorldHint). It does not disclose side effects, such as whether updating the config triggers a restart or impacts running applications, leaving the agent without 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 extremely short, but it is under-specified rather than concise. It does not contain any valuable information; each word could be replaced by something more informative. Conciseness without substance is not helpful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 two required parameters and no output schema, the description fails to provide necessary context about return values, side effects, or any behavioral details. It is completely inadequate for an agent to understand and use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description offers no explanation of the parameters. 'traefikConfig' likely requires a specific format, but no format, examples, or semantics are provided, making it difficult for an agent to correctly set 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 is 'POST /application.updateTraefikConfig', which merely restates the tool name and HTTP method. It does not specify the action (update) or resource (Traefik config), failing to convey the tool's purpose clearly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 settings-updateTraefikConfig or application-readTraefikConfig. There is no context on prerequisites or situations where 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.
auditLog-allDRead-onlyIdempotent
GET /auditLog.all
| Name | Required | Description | Default |
|---|---|---|---|
| userId | No | ||
| userEmail | No | ||
| resourceName | No | ||
| action | No | ||
| resourceType | No | ||
| from | No | ||
| to | No | ||
| limit | No | ||
| offset | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and openWorldHint=true. The description adds no behavioral traits beyond these. It does not disclose pagination behavior, filtering capabilities, or any side effects (though readOnly implies none). The description carries minimal additional value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short (one line), but this is under-specification rather than conciseness. It lacks essential information about the tool's purpose and behavior. Every sentence should add value; here, the single sentence provides only the endpoint, which is already evident from 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?
Given the complexity (9 parameters, no output schema, rich filter options), the description is completely inadequate. It does not explain the tool's functionality, return format, or pagination. The annotations partially cover safety, but the description fails to complete the picture, leaving the agent with insufficient information to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 9 parameters with 0% schema description coverage. The description 'GET /auditLog.all' provides no information about any parameter's meaning or purpose. It fails to explain how userId, userEmail, resourceName, action, resourceType, from, to, limit, offset function, leaving the agent to guess.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 /auditLog.all' is essentially the HTTP method and endpoint path. It does not state what the tool does; it merely repeats the tool name. It fails to indicate that this tool retrieves audit log entries, providing no verb or resource clarification.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives. The description does not mention any context for usage, prerequisites, or exclusions. Since there are many sibling tools, the lack of usage guidelines makes it unclear when an agent should select this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
backup-createD
POST /backup.create
| Name | Required | Description | Default |
|---|---|---|---|
| schedule | Yes | ||
| enabled | No | ||
| prefix | Yes | ||
| destinationId | Yes | ||
| keepLatestCount | No | ||
| database | Yes | ||
| mariadbId | No | ||
| mysqlId | No | ||
| postgresId | No | ||
| mongoId | No | ||
| libsqlId | No | ||
| databaseType | Yes | ||
| userId | No | ||
| backupType | No | ||
| composeId | No | ||
| serviceName | No | ||
| metadata | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No description of behavioral traits. The annotation 'openWorldHint: true' is vague and the description adds no detail about what side effects, permissions, or outcomes to expect. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short (one line), which could be concise, but it fails to convey any useful information. It is underspecified rather than effectively concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (17 params, no output schema, multiple sibling backup tools), the description is completely inadequate. It does not help the agent understand what this tool does, what it requires, or what it returns.
Complex tools with many parameters or behaviors need more documentation. 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 17 parameters with 0% description coverage. The description adds no meaning to any parameter. For example, 'schedule', 'databaseType', etc., are not explained. Schema does the work but without descriptions, the agent lacks guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is just 'POST /backup.create' which is a tautology of the name. It does not state what the tool does, e.g., creating a scheduled or manual backup, or any specific 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?
No guidance on when to use this tool versus alternatives like manual backups (backup-manualBackupPostgres etc.) or other backup operations. The description provides no context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
backup-listBackupFilesDRead-onlyIdempotent
GET /backup.listBackupFiles
| Name | Required | Description | Default |
|---|---|---|---|
| destinationId | Yes | ||
| search | Yes | ||
| serverId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so the agent knows it's safe and idempotent. However, the description adds no behavioral context (e.g., list scope, filtering behavior, pagination). It leaves all behavioral details 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 extremely short (4 words), but this is underspecification rather than conciseness. It fails to convey necessary information. A good description balances brevity with completeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no description, the agent has no idea what the tool returns (e.g., a list of file names, full objects, count?). The tool has 3 parameters (2 required) and no explanation of results, making 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?
Schema description coverage is 0%, meaning the description does not explain any of the three parameters (destinationId, search, serverId). The agent relies solely on parameter names, which are ambiguous (e.g., what does 'search' search against?). This is insufficient for correct invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is just 'GET /backup.listBackupFiles', which essentially restates the tool name. It does not specify what the tool does, such as listing backup files, retrieving details, or any other action. This is 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?
No guidance is provided on when to use this tool versus siblings like backup-one, backup-create, or backup-manualBackup*. The agent has no context to decide between tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
backup-manualBackupComposeDIdempotent
POST /backup.manualBackupCompose
| Name | Required | Description | Default |
|---|---|---|---|
| backupId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description fails to explain the idempotentHint and openWorldHint annotations. It does not disclose any behavioral traits such as side effects, what gets created or modified, or any requirements. The description adds no value beyond the annotations themselves.
Agents need to know what a tool does to the 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 a single sentence, it is extremely under-specified and provides no useful information. Conciseness should not come at the expense of clarity; here the lack of content makes the description nearly useless.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (one required parameter, no output schema, numerous sibling backup tools), the description is utterly incomplete. It omits all contextual details needed for correct invocation, such as how to identify the backup target or what the response indicates.
Complex tools with many parameters or behaviors need more documentation. 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 one required parameter (backupId) with no description (0% coverage). The description does not clarify what backupId represents or how to obtain it, leaving the agent with no semantic understanding of 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 merely restates the tool name as an HTTP endpoint ('POST /backup.manualBackupCompose'), functioning as a tautology. It provides no verb or resource to indicate what the tool accomplishes, making it impossible for an agent to understand its purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus the many sibling backup tools (e.g., backup-manualBackupPostgres, backup-create). There is no context about prerequisites, conditions, or differentiation from alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
backup-manualBackupLibsqlDIdempotent
POST /backup.manualBackupLibsql
| Name | Required | Description | Default |
|---|---|---|---|
| backupId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations idempotentHint=true and openWorldHint=true offer some hints, but the description adds no behavioral context beyond that. It does not mention whether the backup is immediate, async, or what side effects occur.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short but under-specified. It sacrifices informativeness for brevity, providing no value beyond the endpoint string.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 role as a manual backup for a specific database type, the description is woefully incomplete. It lacks information about triggers, results, or dependencies such as existing backup configurations.
Complex tools with many parameters or behaviors need more documentation. 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 describes a single required backupId parameter with minLength 1, but the description does not clarify its meaning (e.g., ID of an existing backup, database, or something else). Schema description coverage is 0%, and the description fails to compensate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is 'POST /backup.manualBackupLibsql', which merely restates the endpoint path and does not articulate the tool's purpose. It fails to explain what a manual backup for Libsql entails or how it differs from siblings like backup-manualBackupPostgres.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool vs alternatives such as backup-create or other manual backup tools. No context about prerequisites, timing, or scenarios is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
backup-manualBackupMariadbDIdempotent
POST /backup.manualBackupMariadb
| Name | Required | Description | Default |
|---|---|---|---|
| backupId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide 'idempotentHint: true' and 'openWorldHint: true', but the description does not add any behavioral context beyond that. It does not contradict annotations, but it also fails to explain what a manual backup entails (e.g., side effects, reversibility).
Agents need to know what a tool does to the world before calling 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 (one line) but not helpful. It sacrifices informativeness for brevity, violating the principle that every sentence should earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (manual backup, one required param, no output schema), the description is severely incomplete. It leaves the agent without enough information to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter, 'backupId', has no schema description (0% coverage) and the description does not clarify its meaning or format. The agent receives no help to construct a valid request.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is just 'POST /backup.manualBackupMariadb', which does not state what the tool does. It is essentially missing a purpose statement, relying solely on the tool name for 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?
No guidance is provided on when to use this tool versus alternatives. Sibling backup tools exist (e.g., backup-manualBackupPostgres), but the description gives no context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
backup-manualBackupMongoDIdempotent
POST /backup.manualBackupMongo
| Name | Required | Description | Default |
|---|---|---|---|
| backupId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations include idempotentHint: true and openWorldHint: true, which provide some behavioral context. However, the description adds no additional disclosure about what happens (e.g., creates a backup of MongoDB, potentially impacts performance), so it fails to build on the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short, but this is due to under-specification rather than efficient communication. It lacks structure and fails to convey essential information, making it more of an omission than conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the existence of multiple sibling backup tools (e.g., for different database types), the description is woefully incomplete. It offers no context about the tool's role in the backup workflow, return values, or error conditions. No output schema exists to 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?
With 0% schema description coverage and no parameter documentation in the description, agents have no clue about the 'backupId' parameter's meaning, format, or constraints beyond the schema's basic type and required status. The description must compensate but 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 'POST /backup.manualBackupMongo' is a tautology that merely repeats the tool name and HTTP method. It provides no explanation of what the tool does, such as initiating a manual backup of a MongoDB database. This is completely insufficient for an agent to understand the tool's purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like backup-manualBackupPostgres or backup-manualBackupMySql. There is no context about prerequisites, side effects, 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.
backup-manualBackupMySqlDIdempotent
POST /backup.manualBackupMySql
| Name | Required | Description | Default |
|---|---|---|---|
| backupId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description contradicts the idempotentHint annotation: it describes a POST request, which is typically non-idempotent, while the annotation claims idempotency. No behavioral details (e.g., what happens to existing backups, whether it triggers side effects) are disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Though brief, the description is not concise in a helpful way—it is under-specified and fails to provide any useful content. Every sentence should earn its place, but here it merely echoes 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?
Given the complexity of the domain (many backup sibling tools), no annotations beyond idempotentHint/openWorldHint, and no output schema, the description is wholly inadequate to allow an agent to understand when or how to use this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description adds no information about the single parameter 'backupId'. Its meaning, format, or constraints are completely unspecified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 a tautology: 'POST /backup.manualBackupMySql' simply restates the tool's name and HTTP method, providing no insight into what the tool does, what resource it acts on, or how it differs from siblings like backup-manualBackupCompose or backup-manualBackupPostgres.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 indicate when to use this tool, when not to use it, or what alternatives exist among the many sibling backup tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
backup-manualBackupPostgresDIdempotent
POST /backup.manualBackupPostgres
| Name | Required | Description | Default |
|---|---|---|---|
| backupId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide idempotentHint and openWorldHint, but the description adds no behavioral context (e.g., what backupId represents, whether this triggers a long-running operation, or side effects). The agent gains minimal insight beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is overly concise to the point of being unhelpful. It does not use the available space to convey essential information about the tool's 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 the tool's single parameter and lack of output schema, the description should at minimum explain what backupId refers to and what the tool accomplishes. It does neither, leaving the agent with essentially no useful 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 has one required parameter (backupId) with no description, and the tool description contains no discussion of its meaning or expected format. Since schema description coverage is 0%, the description fails to compensate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is simply "POST /backup.manualBackupPostgres", which is a tautology that restates the name and HTTP method. It provides no statement of what the tool actually does, such as initiating a manual backup of a PostgreSQL database.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 many siblings like backup-manualBackupMariadb or backup-manualBackupMongo. Context for selection is entirely absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
backup-manualBackupWebServerCIdempotent
POST /backup.manualBackupWebServer
| Name | Required | Description | Default |
|---|---|---|---|
| backupId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral context beyond what is already indicated by the annotations (idempotentHint, openWorldHint). It does not describe side effects, permissions, or other behavioral 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 sentence, which is concise, but it offers minimal information. It is not front-loaded with useful details, though it is brief.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple schema (one parameter, no output schema), the description should still clarify the tool's purpose and parameter meaning. It does not, leaving significant gaps for an agent to infer.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has one required parameter (backupId) with no description, and the tool description provides no explanation of what backupId represents. With 0% schema description coverage, the description should compensate but fails entirely.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description only states the HTTP endpoint 'POST /backup.manualBackupWebServer', which is essentially a tautology of the tool name. It does not explain what the tool does or how it performs a manual backup of a web server.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 sibling manual backup tools (e.g., backup-manualBackupCompose). The description fails to differentiate its purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
backup-oneDRead-onlyIdempotent
GET /backup.one
| Name | Required | Description | Default |
|---|---|---|---|
| backupId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=true and idempotentHint=true, but the description adds no behavioral context beyond that. It does not disclose what happens (e.g., retrieves a backup by ID) or any side effects. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short but fails to convey necessary information. It is underspecified, not concise; every sentence should earn its place, but this sentence adds no 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?
Given the lack of output schema, parameter documentation, and behavioral description, the description is completely inadequate. The tool likely retrieves a backup, but the agent has no information on response or usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the description does not explain the 'backupId' parameter. The schema provides only a string constraint; the agent lacks meaning or format for 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 is simply 'GET /backup.one', which is a tautology of the tool name. It does not state what the tool does, such as retrieving details of a specific backup. Among sibling tools like backup-create and backup-remove, purpose is unclear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 backup-listBackupFiles or backup-one. The description lacks any context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
backup-removeDDestructive
POST /backup.remove
| Name | Required | Description | Default |
|---|---|---|---|
| backupId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and openWorldHint=true. The description adds no extra behavioral details (e.g., whether removal is permanent, if it cascades to other entities). No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While short, the description is so minimal that it fails to be meaningfully concise. It occupies space without conveying useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive tool with a required parameter and no output schema, the description omits essential details like confirmation steps, permanence, side effects, or how to retrieve backup IDs. Highly 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 description provides zero explanation of the backupId parameter. With 0% schema coverage, the agent gets no guidance on what value to provide or where to obtain it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is "POST /backup.remove", which is essentially the HTTP endpoint and provides no statement of what the tool does beyond its name. It barely adds value beyond 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 on when to use this tool vs alternatives like backup-create or backup-listBackupFiles. No prerequisites or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
backup-updateDIdempotent
POST /backup.update
| Name | Required | Description | Default |
|---|---|---|---|
| schedule | Yes | ||
| enabled | Yes | ||
| prefix | Yes | ||
| backupId | Yes | ||
| destinationId | Yes | ||
| database | Yes | ||
| keepLatestCount | Yes | ||
| serviceName | Yes | ||
| metadata | No | ||
| databaseType | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate idempotentHint: true and openWorldHint: true, but the description adds no behavioral context. It does not mention that the update is idempotent, what side effects might occur, or any required permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short but lacks essential information. It is underspecified rather than concise; every tool description must include a clear purpose and parameter guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 10 parameters, no output schema, and zero parameter descriptions, the current description is severely incomplete. An agent would struggle to use this tool correctly 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?
Schema description coverage is 0%, and the description provides no explanation for any of the 10 parameters (e.g., schedule, enabled, backupId). Without any parameter descriptions, the agent cannot understand what values to provide.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is merely 'POST /backup.update', which is a tautology of the tool name. It does not state that the tool updates a backup configuration, nor does it distinguish from sibling tools like backup-create or backup-remove.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 guidelines are provided. The description gives no indication of when to use this tool versus alternatives such as backup-create (to create a new backup) or backup-remove (to delete a backup).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bitbucket-bitbucketProvidersDRead-onlyIdempotent
GET /bitbucket.bitbucketProviders
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, indicating safe, idempotent behavior. The description adds no behavioral context beyond this, such as what data is returned or any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short, but this brevity comes at the cost of informativeness. It is under-specified and does not earn its place by providing any useful detail beyond the endpoint path.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 no parameters, the description should explain what the tool returns or lists (e.g., Bitbucket providers). It fails to do so, leaving the agent with no understanding of the tool's output or 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 has zero parameters, so there is nothing for the description to explain. Baseline for 0 parameters is 4, and the description does not detract from this.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description only states the HTTP method and endpoint path, which does not explain the tool's purpose. It is essentially a tautology of the name, providing no verb or resource description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidance is provided. The description gives no indication of when to use this tool versus alternatives like sibling tools such as gitea-giteaProviders or bitbucket-create.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bitbucket-createD
POST /bitbucket.create
| Name | Required | Description | Default |
|---|---|---|---|
| bitbucketId | No | ||
| bitbucketUsername | No | ||
| bitbucketEmail | No | ||
| appPassword | No | ||
| apiToken | No | ||
| bitbucketWorkspaceName | No | ||
| gitProviderId | No | ||
| authId | Yes | ||
| name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description offers no behavioral details beyond the endpoint. Annotations only provide a title and openWorldHint=true, but the description does not disclose whether this tool is destructive, idempotent, or has side effects, leaving the agent unaware of key behavioral aspects.
Agents need to know what a tool does to the 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 short, it is under-specified rather than concise. It lacks essential details and does not prioritize key information, making it unhelpful despite its 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?
Given the tool's complexity (9 parameters, no output schema, sparse annotations) and the presence of numerous sibling tools, the description is far from complete. It fails to define the tool's purpose, input semantics, or relationship to other tools, leaving 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 contains 9 parameters with 0% description coverage. The description adds no meaning to the parameters, forcing the agent to rely solely on parameter names, which may be ambiguous (e.g., 'authId', 'gitProviderId').
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'POST /bitbucket.create', which only restates the tool name and HTTP method. It does not specify what exactly is created (e.g., a Bitbucket provider, repository, or connection), leaving the purpose vague.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidance is provided. The description does not indicate when to use this tool versus other Bitbucket-related tools like bitbucket-getBitbucketBranches or bitbucket-update, and no context or alternatives are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bitbucket-getBitbucketBranchesDRead-onlyIdempotent
GET /bitbucket.getBitbucketBranches
| Name | Required | Description | Default |
|---|---|---|---|
| owner | Yes | ||
| repo | Yes | ||
| bitbucketId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint, idempotentHint, and openWorldHint true, providing a safety profile. The description adds no behavioral insights beyond these hints, missing details like pagination or return format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short but under-specified; it does not provide enough information to be considered concise. It is essentially a tautology.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With three undocumented parameters, no output schema, and no parameter descriptions, the description is completely inadequate for the tool's complexity. The agent cannot correctly invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description fails to explain any parameter (e.g., what is 'bitbucketId'?). The agent has no semantic understanding of the inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is 'GET /bitbucket.getBitbucketBranches', which merely repeats the HTTP method and tool name without indicating what the tool does. It does not specify that it retrieves branches, unlike similar tools like bitbucket-getBitbucketRepositories.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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. Sibling tools include getRepositories and getBranches for other providers, but the description offers no context or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bitbucket-getBitbucketRepositoriesDRead-onlyIdempotent
GET /bitbucket.getBitbucketRepositories
| Name | Required | Description | Default |
|---|---|---|---|
| bitbucketId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, but the description adds no additional behavioral context such as rate limits, authentication needs, or response details. Without adding value beyond annotations, score is 2.
Agents need to know what a tool does to the world before calling 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-specification rather than concise. It fails to provide essential information, earning a score of 2.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 a single parameter lacking description, the tool's behavior is completely underspecified. The description does not explain what repositories are returned, any filtering, or pagination, leading to a score of 1.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain the meaning or usage of the 'bitbucketId' parameter. The parameter is undocumented both in schema and description, resulting in a score of 1.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 merely the HTTP method and endpoint path ('GET /bitbucket.getBitbucketRepositories'), which adds no meaning beyond the tool name. The purpose is implied by the name but not clarified. This is a tautology, scoring 2.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 bitbucket-getBitbucketBranches or other git provider repository tools. The description lacks context for decision-making, scoring 2.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bitbucket-oneDRead-onlyIdempotent
GET /bitbucket.one
| Name | Required | Description | Default |
|---|---|---|---|
| bitbucketId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, but the description adds no extra behavioral details beyond the path. It fails to describe what happens during execution (e.g., data returned, 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?
While brief, the description is under-specified to the point of being unhelpful. It lacks any substantive information beyond a literal path, making it poor rather than concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, no parameter descriptions, and a minimal description, the tool definition is completely inadequate. The agent cannot infer the tool's purpose, inputs, or outputs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has one required parameter 'bitbucketId' with 0% description coverage. The description does not explain what this parameter represents or its expected format, leaving the agent without sufficient guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description 'GET /bitbucket.one' is a tautology, restating the name and HTTP method without explaining what the tool does. It does not specify that it retrieves a Bitbucket provider or any other 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 like bitbucket-create, bitbucket-getBitbucketBranches, etc. The description provides no context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bitbucket-testConnectionDIdempotent
POST /bitbucket.testConnection
| Name | Required | Description | Default |
|---|---|---|---|
| bitbucketId | Yes | ||
| bitbucketUsername | No | ||
| bitbucketEmail | No | ||
| workspaceName | No | ||
| apiToken | No | ||
| appPassword | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate idempotentHint=true and openWorldHint=true, but the description adds no behavioral context. It does not explain what happens during the test (e.g., validating credentials, returning success/failure) or any side effects. The description carries the burden here but offers nothing.
Agents need to know what a tool does to the world before calling 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 (one phrase), but it is under-specified rather than concise. It fails to convey necessary information, making it ineffective rather than efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a test connection tool with 6 parameters and no output schema, the description provides no context about expected inputs, behavior, or outputs. It is completely inadequate for an AI agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, yet the description provides no explanation of the 6 parameters (bitbucketId, bitbucketUsername, etc.). Without any parameter semantics, the agent cannot understand which credentials are required or how they are used. This is a critical gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is merely the endpoint path 'POST /bitbucket.testConnection', which is a tautology of the tool name. It does not explicitly state that the tool tests a Bitbucket connection, leaving the purpose ambiguous. The name suggests it, but the description fails to clarify.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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. There is no mention of when to use this tool (e.g., after configuring Bitbucket credentials, before using other Bitbucket tools), nor any distinction from sibling test connection tools like gitea-testConnection or github-testConnection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bitbucket-updateDIdempotent
POST /bitbucket.update
| Name | Required | Description | Default |
|---|---|---|---|
| bitbucketId | Yes | ||
| bitbucketUsername | No | ||
| bitbucketEmail | No | ||
| appPassword | No | ||
| apiToken | No | ||
| bitbucketWorkspaceName | No | ||
| gitProviderId | Yes | ||
| name | Yes | ||
| organizationId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description offers no behavioral details beyond annotations. Annotations indicate idempotentHint=true and openWorldHint=true, but the description does not clarify side effects, potential external modifications, or safety considerations.
Agents need to know what a tool does to the world before calling 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. It consists of a single phrase that provides no actionable information, wasting the opportunity to inform.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 9 parameters (3 required), no output schema, and no parameter descriptions, the description is critically incomplete. It does not help an agent understand what operation is performed or how to use the 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?
The input schema has 0% description coverage across 9 parameters, and the description adds no parameter meaning. The agent cannot infer the role of fields like bitbucketId, appPassword, or gitProviderId from the description alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 a tautology ('POST /bitbucket.update'), restating the endpoint without indicating what updating a Bitbucket resource entails. It fails to specify the verb or resource beyond the tool name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus sibling tools like bitbucket-create or bitbucket-one. There is no context on prerequisites or conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
certificates-allCRead-onlyIdempotent
GET /certificates.all
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint. The description adds no behavioral context beyond the HTTP method, which is already implied by the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short, but at the cost of clarity. It is not front-loaded with useful information beyond the endpoint.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no output schema and annotations provide only safety hints, the description should at minimum clarify that this lists all certificates and perhaps provide response context. It fails to do so.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, and schema coverage is 100%, so the baseline is 4. The description doesn't need to explain parameters, but it doesn't add value either.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description merely restates the name as 'GET /certificates.all', which does little beyond implying a retrieval operation. It lacks a clear verb+resource statement like 'List all certificates'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 siblings like certificates-create or certificates-one. The agent is left 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.
certificates-createD
POST /certificates.create
| Name | Required | Description | Default |
|---|---|---|---|
| certificateId | No | ||
| name | Yes | ||
| certificateData | Yes | ||
| privateKey | Yes | ||
| certificatePath | No | ||
| autoRenew | No | ||
| organizationId | Yes | ||
| serverId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description offers no behavioral information beyond the HTTP method. Annotations include openWorldHint, but the description does not clarify side effects, permissions, or what happens upon creation. No value added beyond structured data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise but at the expense of informativeness. The single sentence does not earn its place as it provides no useful 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?
Given 8 parameters (4 required), no output schema, and no description, the tool definition is wholly incomplete. The agent cannot determine how to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain any parameters. The parameters include critical fields like certificateData and privateKey, but no hints about their format or 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 is just 'POST /certificates.create', which is a tautology of the tool name and HTTP method. It does not specify what the tool does, what a certificate is, or how it differs from siblings like certificates-update or certificates-remove.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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, context, 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.
certificates-oneDRead-onlyIdempotent
GET /certificates.one
| Name | Required | Description | Default |
|---|---|---|---|
| certificateId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, which cover the safety profile. The description adds no behavioral detail but does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short but sacrifices informativeness. It fails to provide any useful context beyond the HTTP method, making it under-specified rather than concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has one required parameter and no output schema, the description is woefully incomplete. It does not explain what the tool returns or how to use the certificateId, leaving the agent with insufficient information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description should explain the meaning of the required 'certificateId' parameter. It does not, leaving the agent to infer from the name alone.
Input schemas describe structure but not intent. Descriptions should explain 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 is just 'GET /certificates.one', which is a tautology of the tool name and HTTP method. It does not state what the tool does (retrieve a single certificate by ID).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus siblings like 'certificates-all' or 'certificates-create'. The description provides no context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
certificates-removeDDestructive
POST /certificates.remove
| Name | Required | Description | Default |
|---|---|---|---|
| certificateId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already set destructiveHint=true, but the description fails to add any behavioral detail such as whether the removal is permanent, requires confirmation, or affects other resources. It provides no additional value beyond the hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While the description is only one sentence, it is not informative and wastes the space by simply restating the HTTP method and path. A truly concise description would convey the tool's core function without sacrificing 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?
Given the simple input schema and lack of output schema, the description should still explain the tool's purpose and effects. It fails to provide even minimal context, making it unusable for an agent to correctly select and invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema defines a single parameter 'certificateId' with 0% description coverage. The description does not explain what this ID represents, how to obtain it, or any format constraints beyond the schema's minLength.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'POST /certificates.remove' is a tautology that adds no information beyond the tool name. It does not specify that the tool removes a certificate, nor does it clarify what entity or context is involved.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 its siblings (e.g., certificates-create, certificates-update, certificates-all). The description offers no context for appropriate invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
certificates-updateDIdempotent
POST /certificates.update
| Name | Required | Description | Default |
|---|---|---|---|
| certificateId | Yes | ||
| name | No | ||
| certificateData | No | ||
| privateKey | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide idempotentHint and openWorldHint, but the description adds no behavioral context (e.g., whether it replaces or patches, auth needs, or side effects). It fails to add value beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise but under-specified. It does not earn its place as it adds no meaningful content 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?
Given the tool has 4 parameters, no output schema, and no parameter descriptions, the one-line description is completely inadequate for an agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description must compensate, but it provides no information about parameters. The parameter names (certificateId, name, certificateData, privateKey) are left entirely undefined.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'POST /certificates.update' is a tautology that restates the tool name and HTTP method without specifying the action. It does not state what the tool does beyond 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?
No guidance on when to use this tool vs alternatives like certificates-create or certificates-remove is provided. The description lacks any usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cluster-addManagerDRead-onlyIdempotent
GET /cluster.addManager
| Name | Required | Description | Default |
|---|---|---|---|
| serverId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, idempotentHint=true, and openWorldHint=true. The description adds only the HTTP method GET, which is already implied by readOnlyHint. It does not explain the behavioral implications of 'addManager' in a cluster context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short but fails to convey essential information. It is not conciseness but under-specification. There is no front-loading of key details; the single line adds no useful guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's likely function in cluster management and the presence of sibling tools with clearer purposes, this description is severely incomplete. There is no output schema, no explanation of return values, and no behavioral detail beyond the HTTP method.
Complex tools with many parameters or behaviors need more documentation. 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 one parameter 'serverId' with zero description coverage. The description provides no explanation of what serverId represents or how it should be used, leaving the agent to guess.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'GET /cluster.addManager', which is essentially a tautology of the tool name and HTTP method. It does not specify what 'addManager' does, e.g., whether it adds a manager to a cluster or retrieves information about adding managers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 context is provided. There is no guidance on when to use this tool versus siblings like 'cluster-addWorker' or 'cluster-getNodes'. The agent receives no information about prerequisites or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cluster-addWorkerDRead-onlyIdempotent
GET /cluster.addWorker
| Name | Required | Description | Default |
|---|---|---|---|
| serverId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint and idempotentHint, but the description adds no behavioral context. It fails to explain what 'addWorker' means under a GET endpoint or any side effects, though annotations imply safety.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise but underspecified. It sacrifices clarity for brevity; a helpful description would include at least a sentence explaining 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 tool with no output schema and simple input, the description should state its purpose. It is completely inadequate, leaving the agent unable to determine what the tool does.
Complex tools with many parameters or behaviors need more documentation. 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 has 1 parameter (serverId) with 0% coverage; description adds no meaning. The parameter's purpose, format, or effect is entirely 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?
Description is 'GET /cluster.addWorker', which is a tautology restating the name. It does not specify what the tool does (e.g., add a worker to a cluster or retrieve worker info). With siblings like cluster-addManager and cluster-removeWorker, it provides no differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives like cluster-addManager or cluster-removeWorker. The description lacks any context about prerequisites or typical scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cluster-getNodesDRead-onlyIdempotent
GET /cluster.getNodes
| Name | Required | Description | Default |
|---|---|---|---|
| serverId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint. The description adds nothing beyond restating the HTTP method, providing no further behavioral traits (e.g., what is returned, whether authentication is needed, rate limits). It does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short, but it achieves conciseness at the cost of omitting essential information. It is not effectively structured; it is merely the endpoint.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has a single parameter and no output schema, the description should at least explain the purpose of the parameter and the returned data. It fails to provide even minimal context for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the description does not mention the single optional parameter 'serverId' at all. No meaning is added to help the agent understand what the parameter does or how to use it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'GET /cluster.getNodes' weakly suggests a read operation to retrieve cluster nodes, but does not specify what a node represents or differentiate from sibling tools like 'swarm-getNodes'. It provides no verb or resource explanation beyond the endpoint.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives (e.g., 'swarm-getNodes'). No context on prerequisites, typical use cases, or scenarios where 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.
cluster-removeWorkerDDestructive
POST /cluster.removeWorker
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | ||
| serverId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The destructiveHint annotation indicates destructiveness, but the description adds no behavioral context beyond that. It doesn't explain what happens during removal (e.g., impact on running services, required permissions, reversibility).
Agents need to know what a tool does to the 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 extremely short, the description is not concise—it lacks any informative structure or useful content. Every sentence should add value, but this one only repeats the endpoint.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of removing a cluster worker and the lack of output schema or parameter details, the description is completely inadequate. It fails to equip an AI agent with sufficient information to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Parameter descriptions are missing entirely (0% schema coverage). The description fails to explain what 'nodeId' and 'serverId' represent, their purpose, or how they relate to the removal 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 is just the HTTP endpoint 'POST /cluster.removeWorker', which merely restates the tool's name without providing a clear verb and resource. It fails to explain what the tool does, such as removing a worker node from a cluster.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 cluster-addWorker or cluster-removeManager. The description lacks any context about prerequisites or scenarios for removal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compose-cancelDeploymentDIdempotent
POST /compose.cancelDeployment
| Name | Required | Description | Default |
|---|---|---|---|
| composeId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations include idempotentHint=true and openWorldHint=true, but the description adds no behavioral context. It fails to explain what happens when a deployment is canceled (e.g., stops a build, removes pending deployment).
Agents need to know what a tool does to the world before calling 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 lacks substance. True conciseness would front-load key information; this under-specifies 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?
Given the absence of an output schema and minimal annotations, the description leaves critical questions unanswered: what constitutes a deployment, prerequisites, side effects, and return 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 single required parameter 'composeId' has no description in the schema or in the tool description. With 0% schema description coverage, the description should compensate but 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 'POST /compose.cancelDeployment' hints at the action (cancel) and resource (deployment) but does not clarify what canceling a deployment entails or distinguish it from siblings like compose-deploy, compose-redeploy, or application-cancelDeployment.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 guidelines provided. There is no indication of when to use this tool versus alternatives such as compose-cleanQueues or compose-clearDeployments, 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.
compose-cleanQueuesDIdempotent
POST /compose.cleanQueues
| Name | Required | Description | Default |
|---|---|---|---|
| composeId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide idempotentHint and openWorldHint, but the description does not explain what 'clean queues' entails. There is no contradiction, but the description fails to add behavioral context beyond the structured data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short but at the expense of being under-specified. It does not earn its place as it provides no useful information beyond the tool's 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?
Given the complexity of sibling tools and the lack of output schema, the description is entirely insufficient. It fails to explain what cleaning queues implies for the compose resource or any potential side effects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'composeId' is not described at all. With 0% schema description coverage, the description should compensate but does not, leaving the agent without any understanding of the parameter's meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'POST /compose.cleanQueues' merely restates the endpoint and does not specify what the tool does. It lacks any verb or resource explanation, making it essentially 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?
No guidance is provided on when to use this tool versus sibling tools like application-cleanQueues or other compose operations. The description offers no context for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compose-clearDeploymentsDIdempotent
POST /compose.clearDeployments
| Name | Required | Description | Default |
|---|---|---|---|
| composeId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description provides no behavioral details beyond annotations. Annotations indicate idempotentHint=true and openWorldHint=true, but the description does not clarify what side effects occur, what data is cleared, or if authorization is required. No contradiction but no added value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short (one line), but it achieves conciseness at the expense of clarity. It lacks structure and does not earn its place as a standalone explanation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has one required parameter and no output schema, the description fails to provide essential context about what clearing deployments entails, making it incomplete for an agent to use 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 one parameter 'composeId' with 0% description coverage. The description does not explain the parameter's purpose, expected format, or constraints beyond the schema (minLength: 1).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'POST /compose.clearDeployments' is merely a restatement of the tool name and HTTP method. It does not specify what 'clearDeployments' does, such as removing deployment history, canceling active deployments, etc. No verb or resource explanation is provided.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives like compose-cancelDeployment, compose-cleanQueues, or application-clearDeployments. No context about prerequisites or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compose-createD
POST /compose.create
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| description | No | ||
| environmentId | Yes | ||
| composeType | No | ||
| appName | No | ||
| serverId | No | ||
| composeFile | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No behavioral information is provided. Annotations include openWorldHint: true, but the description does not clarify implications. No contradiction, but the lack of any 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?
The single sentence is too terse and uninformative. Conciseness should not sacrifice meaning; this description fails to convey the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (7 parameters, no output schema, many siblings) and the absence of any context, the description is wholly inadequate for effective tool selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage and no parameter explanations in the description, the semantics of all 7 parameters remain unclear. The description adds no value beyond the schema keys.
Input schemas describe structure but not intent. Descriptions should explain 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 is 'POST /compose.create', which merely restates the endpoint without indicating what action is performed. It does not specify that this tool creates a compose resource or differentiate from siblings like compose-delete or compose-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 compose-deploy or compose-update. No context or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compose-deleteDDestructive
POST /compose.delete
| Name | Required | Description | Default |
|---|---|---|---|
| composeId | Yes | ||
| deleteVolumes | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
While the annotations already indicate destructiveHint: true, the description adds no additional behavioral context. It does not explain that deleteVolumes controls whether associated volumes are removed, or if the operation is irreversible, which is critical for a destructive 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 but insufficiently informative. Conciseness should not come at the expense of clarity; here, the single phrase fails to convey the tool's purpose or usage, making it ineffective.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 (delete operation with two parameters, one boolean control) and lack of output schema, the description is severely incomplete. It does not explain return behavior, side effects, or parameter implications, leaving the agent with insufficient information to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema defines composeId and deleteVolumes, but with 0% schema description coverage, the description should compensate. However, it offers no explanation of these parameters' purposes or effects, leaving the agent to infer from names alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'POST /compose.delete' is a tautology that merely restates the HTTP method and endpoint from the tool name. It does not specify what action the tool performs (e.g., deleting a compose application) nor distinguish it from sibling tools like compose-create or compose-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 context on when to use this tool versus alternatives. No prerequisites, conditions, or exclusions are mentioned, leaving the agent without guidance on appropriate usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compose-deployDIdempotent
POST /compose.deploy
| Name | Required | Description | Default |
|---|---|---|---|
| composeId | Yes | ||
| title | No | ||
| description | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide idempotentHint and openWorldHint, but the description adds no behavioral details (e.g., side effects, authorization needs). It fails to complement the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is overly minimal (4 words), lacking any substantive content. It is underspecified rather than concise, failing to convey necessary information 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?
Given no output schema, no parameter descriptions, and no behavioral guidance, the description is completely inadequate for an agent to correctly select and invoke this tool among many similar compose operations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, meaning no parameter descriptions exist. The description does not explain the meaning or expected values of composeId, title, or description, leaving the agent without clues.
Input schemas describe structure but not intent. Descriptions should explain 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 is 'POST /compose.deploy', which only states the HTTP method and endpoint path. It does not specify the tool's purpose, e.g., deploying a compose application. It is essentially a tautology of the tool name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus siblings like compose-cancelDeployment, compose-deployTemplate, or compose-redeploy. The description lacks context on prerequisites or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compose-deployTemplateDIdempotent
POST /compose.deployTemplate
| Name | Required | Description | Default |
|---|---|---|---|
| environmentId | Yes | ||
| serverId | No | ||
| id | Yes | ||
| baseUrl | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide idempotentHint and openWorldHint, but the description adds no behavioral context beyond the HTTP method. It does not contradict annotations, but fails to disclose any traits like side effects or required permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single line, but it is both too short and uninformative. It fails to front-load any useful information and wastes the opportunity to explain the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of 4 parameters and no output schema, the description is wholly inadequate. It does not cover what happens after deployment, return values, or any contextual details 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?
Schema description coverage is 0% and the description omits any explanation of parameters. The four parameters (environmentId, serverId, id, baseUrl) are left undefined, and the description does not clarify their roles.
Input schemas describe structure but not intent. Descriptions should explain 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 is only 'POST /compose.deployTemplate', which is a tautology of the tool name and does not state what the tool does. It fails to indicate that it deploys a template, lacking a specific verb or 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 siblings like compose-deploy, compose-create, or compose-processTemplate. The description gives no context for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compose-disconnectGitProviderDIdempotent
POST /compose.disconnectGitProvider
| Name | Required | Description | Default |
|---|---|---|---|
| composeId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral information beyond annotations. Annotations indicate idempotent and openWorldHint, but the description does not explain what disconnecting entails (e.g., whether it affects deployments or requires prior connection). No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short but fails to convey any useful information. It is not concise in the sense of being informative; it is under-specified and wasteful of the opportunity to provide guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having only one parameter and no output schema, the description is completely inadequate. It does not explain the tool's function, prerequisites, or effects. Sibling tools like compose-create or compose-disconnectGitProvider share similar patterns, but no contextual differentiation is provided.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage: the 'composeId' parameter has no description in the schema. The tool description does not explain what composeId refers to or how to obtain it. All semantic burden is unmet.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is just 'POST /compose.disconnectGitProvider', which is a tautology of the tool name and method. It does not state the purpose or what the tool does, nor does it distinguish it from sibling tools like compose-delete or compose-deploy.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 guidelines are provided about when to use this tool versus alternatives, such as when to disconnect a Git provider vs. other compose operations. The description contains no context for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compose-fetchSourceTypeDIdempotent
POST /compose.fetchSourceType
| Name | Required | Description | Default |
|---|---|---|---|
| composeId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide idempotentHint and openWorldHint, but the description adds no behavioral context. It does not contradict annotations but fails to disclose any additional 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 non-informative sentence that does not convey purpose. It is under-specified rather than concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and a minimal description, the tool leaves the agent completely in the dark about its function, input requirements, and return value.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the description does not mention the 'composeId' parameter or its meaning. The description adds no 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 is 'POST /compose.fetchSourceType', which provides no functional meaning. It merely restates the HTTP method and endpoint path without explaining what the tool does, making it missing/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?
No guidance on when to use this tool versus the many other compose-* sibling tools. There is no context about invocation scenarios or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compose-getConvertedComposeDRead-onlyIdempotent
GET /compose.getConvertedCompose
| Name | Required | Description | Default |
|---|---|---|---|
| composeId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (readOnlyHint, idempotentHint, openWorldHint) indicate safe, idempotent, open-world behavior, but the description adds no additional behavioral context (e.g., whether it returns a single result, any side effects, or dependencies). Minimal value beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short (8 words), but it sacrifices all meaningful content for brevity. It is not front-loaded with useful information; it only repeats the tool name and HTTP verb.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of output schema, the complexity of sibling tools (many compose-related operations), and no description, the tool is completely incomplete. The agent cannot infer the return value, scope, or relationship to other compose 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 coverage is 0%, and the description does not explain the single parameter 'composeId'. It is unclear whether this is the compose's database ID, a name, or something else. No semantics are 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 is 'GET /compose.getConvertedCompose', which merely restates the tool name and HTTP method. It does not specify what the tool does or what 'converted compose' means. This is a tautology, providing no clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus sibling tools like compose-one, compose-getDefaultCommand, or compose-getTags. The description offers no context 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.
compose-getDefaultCommandDRead-onlyIdempotent
GET /compose.getDefaultCommand
| Name | Required | Description | Default |
|---|---|---|---|
| composeId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true and idempotentHint=true, indicating a safe read operation. However, the description adds no behavioral details beyond what annotations already provide—it doesn't mention what 'default command' means, what the response contains, or any side effects. The description provides zero additional value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is too short to be considered concise; it is under-specified. A single line repeating the URL provides no structured information or useful content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and a minimal description, the tool is contextually incomplete. An agent cannot determine what the tool returns or how it fits into the broader workflow. The sibling list is vast but the description offers no hooks for differentiation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has one required parameter 'composeId' with 0% description coverage. The description does not explain what composeId represents or how it should be used. The agent has no semantic understanding 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 is simply 'GET /compose.getDefaultCommand', which restates the tool name and HTTP method. It does not explain what the tool does or what resource it acts upon, making it a tautology. It fails to differentiate from sibling compose tools like compose-create or compose-deploy.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 sibling tools include many compose-related operations, but the description offers no context for selection or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compose-getTagsDRead-onlyIdempotent
GET /compose.getTags
| Name | Required | Description | Default |
|---|---|---|---|
| baseUrl | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, idempotentHint=true, and openWorldHint=true, covering the safety profile. However, the description adds no further behavioral context (e.g., scope of tags returned, whether baseUrl affects results).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short but qualifies as under-specification rather than conciseness. It lacks any substantive content beyond the HTTP method and path.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 one undocumented parameter, no output schema, and many sibling tools, the description fails to provide enough information for an agent to use the tool correctly. Critical details about input and return value are absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The sole parameter baseUrl has a 0% schema description coverage and is not mentioned in the tool description. The agent gains no insight into its purpose or expected format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is a tautology, merely restating the tool name in a different format ('GET /compose.getTags'). It does not specify what the tool retrieves or differentiate it from siblings like tag-all or compose-getConvertedCompose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 (e.g., tag-all, tag-create). The agent receives no context for decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compose-importDIdempotent
POST /compose.import
| Name | Required | Description | Default |
|---|---|---|---|
| base64 | Yes | ||
| composeId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate idempotentHint=true and openWorldHint=true, but the description adds no behavioral context. It does not disclose whether the import overwrites existing data, requires specific permissions, or affects other resources. No contradiction with annotations, but minimal value added.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (one line) but at the cost of being uninformative. It is not well-structured and fails to earn its place. True conciseness should preserve meaning while being efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool requires two mandatory parameters, has no output schema, and exists among many compose-related siblings, the description is wholly incomplete. An agent cannot determine how to 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?
Schema description coverage is 0% for 2 parameters. The description adds no meaning beyond the schema. The parameters 'base64' and 'composeId' remain unexplained (e.g., what format, what ID refers to).
Input schemas describe structure but not intent. Descriptions should explain 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 is merely 'POST /compose.import', which is a tautology of the name. It does not state what the tool does (import what? from where? how?). Compared to sibling tools like compose-create or compose-deploy, the purpose is unclear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 compose-create, compose-deployTemplate, or compose-update. The description provides no context for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compose-isolatedDeploymentDIdempotent
POST /compose.isolatedDeployment
| Name | Required | Description | Default |
|---|---|---|---|
| composeId | Yes | ||
| suffix | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral information beyond what annotations already provide (idempotentHint, openWorldHint). It fails to disclose any traits such as side effects, permissions, or response behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While extremely short, the description is under-specified and does not earn its place. It provides no meaningful information, making it insufficient rather than concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (2 parameters, no output schema, limited annotations), the description is wholly inadequate. It fails to provide the necessary context for an AI agent to correctly select and invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, and the tool description does not explain any parameters. The 'composeId' and 'suffix' parameters remain completely unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is merely 'POST /compose.isolatedDeployment', which is a tautology with the tool name. It does not specify any verb or resource purpose, leaving the tool's function completely unclear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 compose-deploy, compose-create, etc. The description gives no context or usage hints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compose-killBuildDIdempotent
POST /compose.killBuild
| Name | Required | Description | Default |
|---|---|---|---|
| composeId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate idempotentHint=true and openWorldHint=true, but the description adds no behavioral details. The tool's effect ('kill build') is not explained, leaving the agent unaware of side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise (two words plus endpoint) but at the cost of clarity. The description is under-specified and offers no 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?
Given the complexity of the sibling tools and lack of output schema, the description is wholly inadequate. It provides no information about return values, prerequisites, or side effects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single required parameter 'composeId' has no description in the schema. The description does not explain what composeId refers to or how to supply it. With 0% schema coverage, the description should compensate but fails.
Input schemas describe structure but not intent. Descriptions should explain 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 is just 'POST /compose.killBuild', which is a tautology. It restates the HTTP method and endpoint without clarifying the tool's purpose or distinguishing it from siblings like compose-cancelDeployment.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 compose-cancelDeployment or compose-stop. The description provides no context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compose-loadMountsByServiceDRead-onlyIdempotent
GET /compose.loadMountsByService
| Name | Required | Description | Default |
|---|---|---|---|
| composeId | Yes | ||
| serviceName | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint, idempotentHint, and openWorldHint, which tell the agent it's a safe, read-only operation. The description adds no behavioral context beyond that. It does not contradict annotations, but it also does not enhance them (e.g., no mention of return format, pagination, or auth requirements). Minimal value added.
Agents need to know what a tool does to the world before calling 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 phrase, which is concise but not informative. It is under-specified and does not earn its place as a useful description. Front-loading is irrelevant when there is no content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (tool loads mounts by service) and the lack of output schema or detailed parameters, the description is completely inadequate. It does not explain what the tool returns, how mounts relate to services, or any other contextual information needed 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?
The schema has two parameters with zero description coverage. The description does not explain what composeId or serviceName refer to, nor their format or expected values. The tool name hints at 'service', but that is insufficient. For a tool with low schema coverage, the description must compensate; it fails to do so.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is just 'GET /compose.loadMountsByService', which essentially restates the tool name and HTTP method. It does not explain what the tool does, what mounts are, or how it differs from sibling tools like compose-loadServices or mounts-listByServiceId. The title annotation is similarly minimal. This provides almost no clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. No prerequisites, no context about its role in the workflow, and no mention of when not to use it. Sibling tools like compose-loadServices exist but no differentiation is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compose-loadServicesDRead-onlyIdempotent
GET /compose.loadServices
| Name | Required | Description | Default |
|---|---|---|---|
| composeId | Yes | ||
| type | No | cache |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so the description adds no behavioral context. The description only states the HTTP method, which is redundant with the name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely short but at the expense of useful content. A single line that adds no value beyond the tool name; not concise in a helpful manner.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 only two parameters, the description is grossly insufficient. It does not indicate what data is returned or how the 'type' parameter affects 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 0% with no descriptions for parameters. The description fails to explain the meaning of 'composeId' or 'type' enum, leaving the agent to guess.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'GET /compose.loadServices', which merely restates the tool name in HTTP format. It does not explain what the tool does, such as retrieving services for a compose configuration.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 compose-create or compose-loadMountsByService. The sibling list includes many compose tools, but the description offers no differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compose-moveDIdempotent
POST /compose.move
| Name | Required | Description | Default |
|---|---|---|---|
| composeId | Yes | ||
| targetEnvironmentId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate idempotentHint=true and openWorldHint=true, which provide some behavioral cues. However, the description adds no additional context about side effects, permissions, or operational details. It does not contradict annotations but fails to build on them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely short but at the expense of meaningful content. Under-specification rather than effective conciseness. A single line that adds no 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 two required parameters and no output schema, the description fails to provide a complete picture. It doesn't state the action (moving a compose to a target environment), prerequisites, or 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 0%. The description includes no information about the parameters composeId and targetEnvironmentId. Their meanings are left entirely to inference from their names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description is 'POST /compose.move', which is the HTTP method and endpoint, not a statement of purpose. It fails to explain what the tool does. The name implies moving a compose, but the description provides no clarification.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 application-move or other compose tools. The description is completely silent on usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compose-oneDRead-onlyIdempotent
GET /compose.one
| Name | Required | Description | Default |
|---|---|---|---|
| composeId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint, idempotentHint, and openWorldHint, which indicate safe, idempotent behavior. However, the description adds no further behavioral context, such as what happens if the compose ID does not exist or any error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely brief but lacks substance. It is under-specified rather than concise, with no meaningful information beyond the endpoint path.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 output schema and the presence of many sibling tools, the description is severely incomplete. It does not specify the return value, nor does it clarify the tool's role within the compose family.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has a required 'composeId' parameter with no description, and schema description coverage is 0%. The description does not explain the parameter's meaning, format, or expected values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 /compose.one' is a tautology of the tool's name and title, providing no actual purpose. It fails to specify that this tool retrieves a single compose resource by ID.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidance is given. There is no information on when to use this tool versus siblings like compose-getTags or compose-search, nor any conditions or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compose-processTemplateDIdempotent
POST /compose.processTemplate
| Name | Required | Description | Default |
|---|---|---|---|
| base64 | Yes | ||
| composeId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations supply hints (idempotentHint, openWorldHint), but the description adds no behavioral context. It does not disclose side effects, required permissions, or what the tool does with inputs.
Agents need to know what a tool does to the 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 extremely concise, the description is under-specified rather than efficiently informative. A single endpoint path does not constitute a functional description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 parameter descriptions, absence of output schema, and no behavioral notes, the description is completely inadequate for an agent to select or use 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?
Schema coverage is 0%, yet the description provides zero information about the parameters (base64, composeId). The agent receives no guidance on their meaning or expected values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'POST /compose.processTemplate' is merely an HTTP method and endpoint path, not a statement of the tool's purpose. It fails to convey what the tool does, leaving the agent with no understanding of 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?
No usage context is provided. The description does not indicate when to use this tool versus sibling tools like compose-deployTemplate or compose-templates, nor does it mention any conditions or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compose-randomizeComposeDIdempotent
POST /compose.randomizeCompose
| Name | Required | Description | Default |
|---|---|---|---|
| composeId | Yes | ||
| suffix | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide idempotentHint=true and openWorldHint=true, but the description adds no behavioral context beyond the endpoint. It fails to explain what 'randomize' means, 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 extremely short but at the cost of being uninformative. It is not concise in a helpful way; it is under-specified.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 output schema and minimal description, the tool definition is completely inadequate. It provides no context for the agent to understand the tool's function.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%. The description does not explain any parameter semantics. The parameters composeId and suffix are entirely 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 is only 'POST /compose.randomizeCompose', which is a tautology. It does not state what the tool does, only the HTTP method and endpoint. No purpose is communicated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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. There is no indication of when to use this tool vs. siblings like compose-create or compose-deploy.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compose-readLogsDRead-onlyIdempotent
GET /compose.readLogs
| Name | Required | Description | Default |
|---|---|---|---|
| composeId | Yes | ||
| containerId | Yes | ||
| tail | No | ||
| since | No | all | |
| search | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, providing a safety profile. The description adds no behavioral details such as log truncation, streaming support, or response format, offering zero value beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (4 words), but this is under-specification rather than efficient conciseness. It lacks any structure or front-loaded informative content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (5 parameters, no output schema, many sibling tools), the description is completely inadequate. It does not cover expected outputs, parameter constraints, or usage patterns, leaving the agent unable to invoke 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?
Schema has 5 parameters with 0% coverage; the description does not mention any parameter. It fails to explain what 'composeId', 'containerId', 'tail', 'since', or 'search' represent, leaving the agent without critical context to use the tool correctly.
Input schemas describe structure but not intent. Descriptions should explain 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 is a tautology: 'GET /compose.readLogs' merely repeats the tool name and HTTP method. It does not specify what the tool does (e.g., 'Retrieve logs for a container in a Docker Compose project').
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus sibling tools like 'application-readLogs' or 'mariadb-readLogs'. The name implies it is for compose resources, but no explicit context or alternatives are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compose-redeployDIdempotent
POST /compose.redeploy
| Name | Required | Description | Default |
|---|---|---|---|
| composeId | Yes | ||
| title | No | ||
| description | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description adds no behavioral context beyond what annotations (idempotentHint=true, openWorldHint=true) already provide. It does not explain what redeploying entails or the expected 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?
Extremely short but under-specified; the single phrase 'POST /compose.redeploy' is not informative and fails to earn its place. It is not concise; it is incomplete.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 output schema, 3 undocumented parameters, and many sibling tools, the description is completely inadequate. It provides no details about return values, side effects, or usage context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not mention any parameters or their roles. The three parameters (composeId, title, description) are left entirely unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is just 'POST /compose.redeploy', which is a tautology of the tool name. It does not specify what the tool does (e.g., redeploy a compose project) and fails to distinguish it from siblings like compose-deploy or compose-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?
Provides no guidance on when to use this tool vs alternatives. There is no mention of prerequisites, exclusions, or comparisons to other compose operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compose-refreshTokenDIdempotent
POST /compose.refreshToken
| Name | Required | Description | Default |
|---|---|---|---|
| composeId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral context beyond the annotations (idempotentHint, openWorldHint). It does not explain what refreshing a token entails, what state changes occur, or any side effects. With annotations present, the description should still provide operational meaning but fails to do so.
Agents need to know what a tool does to the 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 concise (two words), it is under-specified and lacks structure. Every sentence should add value; here, the single piece of information (HTTP method + endpoint) is redundant with the tool name and does not aid 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 absence of an output schema and detailed parameter descriptions, the description is completely inadequate. For a tool that likely involves authentication, more context is needed about the response, error cases, or token lifecycle.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain the composeId parameter (e.g., its format, role, or constraints). The schema only specifies it is a required string, which is insufficient for an agent to use the tool correctly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'POST /compose.refreshToken' is essentially a tautology, restating the tool name and HTTP method. It does not specify what the tool does, such as refreshing an authentication token for a compose deployment. This provides no clarity beyond the name itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives like application-refreshToken. There is no mention of prerequisites, context, or scenarios where this tool should or should not be used.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compose-saveEnvironmentDIdempotent
POST /compose.saveEnvironment
| Name | Required | Description | Default |
|---|---|---|---|
| composeId | Yes | ||
| env | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral context beyond what the annotations already declare (idempotentHint=true, openWorldHint=true). It does not disclose what happens when the environment is saved (e.g., overwriting, merging) or any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise but at the cost of useful information. It is under-specification rather than efficient communication, as it fails to earn its place with meaningful content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity, lack of output schema, and the presence of many sibling tools, the description is severely incomplete. It does not explain the tool's effect, return value, or when to use it over similar saveEnvironment 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?
With 0% schema description coverage, the description must compensate but adds nothing. It does not explain what 'composeId' or 'env' represent, the expected format for 'env', or how the parameters interact.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'POST /compose.saveEnvironment' is a tautology that restates the tool name without explaining what it does. It lacks a specific verb and resource, and does nothing to distinguish it from sibling tools like application-saveEnvironment or libsql-saveEnvironment.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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, context, or scenarios where 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.
compose-searchDRead-onlyIdempotent
GET /compose.search
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | ||
| name | No | ||
| appName | No | ||
| description | No | ||
| projectId | No | ||
| environmentId | No | ||
| limit | No | ||
| offset | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Although annotations already declare readOnlyHint, idempotentHint, and openWorldHint, the description adds no additional behavioral context. It fails to disclose any traits beyond what the annotations already provide, so it does not add value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While the description is extremely concise, it is under-specified and does not convey essential information. Conciseness without substance is detrimental.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 absence of parameter descriptions, no output schema, and a large set of sibling tools, the description is severely incomplete. It fails to equip the agent 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?
With schema description coverage at 0% and 8 parameters, the description provides no information about any parameter (q, name, appName, etc.). The agent is left entirely dependent on the schema, which lacks descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'GET /compose.search' only states the HTTP method and endpoint, leaving the tool's purpose implicit. It does not explicitly state that it searches for compose resources, and among siblings there is no other compose search, but the description itself is vague and uninformative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 compose-one or compose-getTags. The description lacks any context for usage decisions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compose-startDIdempotent
POST /compose.start
| Name | Required | Description | Default |
|---|---|---|---|
| composeId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description adds no behavioral information. Annotations indicate idempotent and open world hints, but the description doesn't complement or explain them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely short but fails to convey any useful information; under-specification 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?
No output schema, no description of return values, effects, or prerequisites. Completely inadequate for a critical action 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?
Parameter 'composeId' is entirely unexplained. Schema coverage 0%, and description adds no 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?
Description is just 'POST /compose.start', no verb or resource. Title is 'Compose Start' but no explanation of what starting a compose means.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus siblings like compose-create, compose-deploy, etc.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compose-stopDIdempotent
POST /compose.stop
| Name | Required | Description | Default |
|---|---|---|---|
| composeId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral context beyond what annotations already provide (idempotentHint, openWorldHint). It does not disclose what stopping a compose entails, such as whether containers are removed or just stopped.
Agents need to know what a tool does to the world before calling 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 under-specified. It fails to convey useful information, sacrificing completeness under the guise 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?
Given the tool has one parameter and no output schema, the description should compensate by explaining the tool's effect and context. It does neither, leaving the agent with no actionable information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description provides no additional meaning for the 'composeId' parameter beyond the schema definition. The agent gains no insight into expected values or usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'POST /compose.stop' is a tautology that merely repeats the tool name and HTTP method. It does not specify the verb or resource clearly, nor does it distinguish from siblings like 'compose-start' or 'compose-deploy'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 instead of alternatives. Sibling tools exist but are not referenced, leaving the agent without context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compose-templatesDRead-onlyIdempotent
GET /compose.templates
| Name | Required | Description | Default |
|---|---|---|---|
| baseUrl | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the agent knows the tool is safe and idempotent. However, the description adds no additional behavioral context (e.g., what 'templates' are, if pagination exists, or any constraints). No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short, but this is under-specification rather than concise value. It lacks useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, no parameter descriptions, and a vague description, the agent cannot determine what the tool returns or how to invoke it properly. The context is severely 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 has one parameter (baseUrl) with zero schema description coverage. The description does not explain the parameter's purpose or format. The agent cannot infer how to use baseUrl.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 /compose.templates' is a tautology of the tool name. It does not state what the tool does, e.g., listing, retrieving, or managing templates. It fails to distinguish from siblings like compose-deployTemplate or compose-getTags.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. The description provides no context for usage scenarios, prerequisites, or conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compose-updateDIdempotent
POST /compose.update
| Name | Required | Description | Default |
|---|---|---|---|
| composeId | Yes | ||
| name | No | ||
| appName | No | ||
| description | No | ||
| env | No | ||
| composeFile | No | ||
| refreshToken | No | ||
| sourceType | No | ||
| composeType | No | ||
| repository | No | ||
| owner | No | ||
| branch | No | ||
| autoDeploy | No | ||
| gitlabProjectId | No | ||
| gitlabRepository | No | ||
| gitlabOwner | No | ||
| gitlabBranch | No | ||
| gitlabPathNamespace | No | ||
| bitbucketRepository | No | ||
| bitbucketRepositorySlug | No | ||
| bitbucketOwner | No | ||
| bitbucketBranch | No | ||
| giteaRepository | No | ||
| giteaOwner | No | ||
| giteaBranch | No | ||
| customGitUrl | No | ||
| customGitBranch | No | ||
| customGitSSHKeyId | No | ||
| command | No | ||
| enableSubmodules | No | ||
| composePath | No | ||
| suffix | No | ||
| randomize | No | ||
| isolatedDeployment | No | ||
| isolatedDeploymentsVolume | No | ||
| triggerType | No | ||
| composeStatus | No | ||
| environmentId | No | ||
| createdAt | No | ||
| watchPaths | No | ||
| githubId | No | ||
| gitlabId | No | ||
| bitbucketId | No | ||
| giteaId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide idempotentHint=true and openWorldHint=true, but the description does not add any behavioral context beyond that. For a tool that likely modifies a compose resource, the description should disclose side effects, permissions, or state changes. Here it adds nothing, but annotations partially compensate.
Agents need to know what a tool does to the 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 extremely brief, the description is underspecified, not concise. It omits essential information and wastes the opportunity to add value. Every sentence should earn its place; here there is only a minimal restatement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 (44 params, no output schema, no parameter descriptions), the description is completely inadequate. An agent cannot reliably use this tool without guessing the semantics. Sibling tools like compose-create have similarly minimal descriptions, but this tool needs detailed contextual guidance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the description provides no parameter information. With 44 parameters, including many conditional ones (e.g., repository/owner based on sourceType), the agent has no guidance on required fields or parameter interactions beyond the schema 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 'POST /compose.update' is essentially a tautology of the name. It does not state what the tool does, such as updating a compose app's configuration. There is no differentiation from sibling tools like compose-create or compose-deploy.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 compose-create or compose-deploy. The description lacks any context on prerequisites, scope, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
customRole-allCRead-onlyIdempotent
GET /customRole.all
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is clear. However, the description adds no additional behavioral context, such as response format, pagination, or scope. It provides no value beyond the structured annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (one phrase), but it is under-specified. While conciseness is valued, the description lacks structure and fails to convey essential information, earning a middle score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (no parameters, no output schema), the description is minimally complete. However, it does not explain what the response contains or any potential nuances, which would help the agent understand the tool's 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 input schema has 0 parameters with 100% coverage, so the description does not need to explain parameters. This is a baseline 4; no further information is required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'GET /customRole.all' indicates an HTTP method and endpoint, implying a list operation. However, it does not explicitly state 'list all custom roles' or clarify the resource scope. The tool name 'customRole-all' suggests listing, but the description is vague and relies on inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus siblings like customRole-create or customRole-getStatements. No context is given for typical use cases 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.
customRole-createD
POST /customRole.create
| Name | Required | Description | Default |
|---|---|---|---|
| roleName | Yes | ||
| permissions | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses no behavioral traits. With no annotations (other than openWorldHint), the agent is left uninformed about side effects, idempotency, or error conditions. The description carries the full burden and fails.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is overly minimal ('POST /customRole.create'), which is under-specification rather than effective conciseness. It lacks any explanatory sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 (2 required params, nested object, no output schema), the description is completely inadequate. It fails to explain purpose, behavior, or return value.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, yet the description adds no information about the parameters 'roleName' or 'permissions'. The agent only knows their names and types from the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is 'POST /customRole.create', which merely restates the tool name as an HTTP endpoint. It does not state what the tool does in plain language, nor does it differentiate it from siblings like customRole-update or customRole-remove.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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, context, or exclusions, leaving the agent without decision support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
customRole-getStatementsDRead-onlyIdempotent
GET /customRole.getStatements
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so the safety profile is clear. However, the description adds no behavioral context such as what 'statements' are, whether pagination exists, 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?
Extremely short but under-specifies the tool's purpose. It is not concise in a helpful way; it sacrifices clarity 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?
With no output schema and an openWorldHint, the description should clarify what the tool returns. It fails to explain the nature of 'statements' or the response format, leaving the agent without needed 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?
No parameters exist, and schema coverage is 100%, so baseline is 3. The description does not add any parameter-related meaning beyond the empty 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?
Description is just 'GET /customRole.getStatements' which repeats the tool name without explaining what it does. It does not specify the purpose of retrieving statements or differentiate from sibling tools like customRole-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?
No guidance on when to use this tool versus alternatives. No mention of context, prerequisites, 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.
customRole-membersByRoleDRead-onlyIdempotent
GET /customRole.membersByRole
| Name | Required | Description | Default |
|---|---|---|---|
| roleName | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and idempotentHint=true, so the description carries a lower burden. However, it adds no behavioral context beyond that—for example, whether pagination occurs, what happens if the role does not exist, or the expected response format. The description is neutral and does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at one sentence, but it lacks substance and fails to convey the tool's purpose or behavior. Concision is valuable only when the description is still informative; here, the brevity sacrifices essential information, making it under-specified.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 single required parameter and absence of an output schema, the description should provide enough context for the agent to use it correctly. It does not explain the return value, error handling, or relationship to other custom role tools, leaving the agent without critical information.
Complex tools with many parameters or behaviors need more documentation. 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 one required parameter 'roleName' with type string and minLength 1, but schema description coverage is 0%. The description does not clarify what 'roleName' represents (e.g., role identifier format, available roles), so the agent must guess. Without additional context, the parameter semantics are insufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 merely the HTTP method and endpoint path 'GET /customRole.membersByRole', which is a tautology that restates the tool name. It fails to explain that this tool retrieves members of a custom role, leaving the purpose unclear. Sibling tools like 'customRole-all' and 'customRole-getStatements' have similarly opaque names, but this description offers no differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidance is provided. The description does not indicate when to use this tool versus alternatives like 'customRole-all' or 'customRole-getStatements', nor does it mention any prerequisites or context for invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
customRole-removeDDestructive
POST /customRole.remove
| Name | Required | Description | Default |
|---|---|---|---|
| roleName | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true, so the description does not need to reiterate that. However, it adds no additional behavioral context such as whether removal is irreversible, what happens to associated permissions, or any dependencies. The bare endpoint adds no value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short but fails to convey essential information. It is under-specified, not concise. A concise description would be a single sentence stating the action, e.g., 'Remove a custom role by 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?
Given the tool's simplicity (1 param, no output schema), the description should at least state that it removes a custom role. The endpoint-only description is completely inadequate for an agent to understand the tool's purpose and 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 0%, meaning the schema provides no help. The description adds zero information about the 'roleName' parameter. It doesn't explain its purpose, constraints (beyond minLength), or format. A simple tool with one parameter still requires 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 is just the HTTP method and endpoint path 'POST /customRole.remove'. It does not state what the tool does; it's essentially a tautology of the name. A helpful description would be 'Remove a custom role by name.'
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like customRole-update or customRole-all. The description provides no context about prerequisites or when removal is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
customRole-updateDIdempotent
POST /customRole.update
| Name | Required | Description | Default |
|---|---|---|---|
| roleName | Yes | ||
| newRoleName | No | ||
| permissions | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate idempotentHint and openWorldHint, but the description adds no behavioral context. It does not explain that the update is idempotent, that permissions can be extended, or any side effects. Since annotations are present, the description fails to provide additional value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short, but this is under-specification rather than concise effectiveness. It lacks essential information, so brevity is not beneficial here.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 the input schema (3 parameters, one nested object) and lack of output schema, the description is grossly incomplete. It fails to explain the tool's operation, response format, or any contextual details needed 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 description coverage is 0%, so the description must compensate but does not. It does not explain the meaning of roleName, newRoleName, or permissions. The field names provide some hints, but without description, an agent may not know that roleName is the current role to update, newRoleName is the new name (optional), and permissions defines the role's permissions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'POST /customRole.update', which merely restates the HTTP method and endpoint. It does not clarify that the tool updates an existing custom role, though the tool name implies it. This is a tautology, providing no additional purpose beyond 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?
No usage guidelines are provided. The description does not indicate when to use this tool versus siblings like customRole-create or customRole-remove. There is no context about prerequisites or scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deployment-allDRead-onlyIdempotent
GET /deployment.all
| Name | Required | Description | Default |
|---|---|---|---|
| applicationId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral information beyond what annotations already provide (readOnlyHint, idempotentHint). It does not disclose effects, pagination, or any 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 extremely short but conveys no useful information. It is under-specified rather than concise, wasting the opportunity to provide 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?
Given the complexity of sibling tools and lack of output schema, the description is completely inadequate. It fails to explain what the tool returns or how to 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?
The single parameter 'applicationId' is not described. With 0% schema description coverage, the description should explain its purpose, 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 'GET /deployment.all' is a tautology of the tool name. It does not specify what 'all' refers to (e.g., all deployments for an application) or differentiate from sibling tools like deployment-allByCompose or deployment-allByType.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 the many sibling deployment-all tools. There is no mention of context or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deployment-allByComposeCRead-onlyIdempotent
GET /deployment.allByCompose
| Name | Required | Description | Default |
|---|---|---|---|
| composeId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and idempotentHint=true, so the tool is safe and idempotent. The description adds no further behavioral context, and there is no contradiction. With annotations present, the description contributes minimally.
Agents need to know what a tool does to the world before calling 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 (one line), but it lacks essential information. It is under-specified rather than concise. Every sentence should add value; here it does not.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple tool (one parameter, no output schema, rich annotations), the description should at least state the purpose and what it returns. It is incomplete and fails to clarify the tool's function.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does not mention any parameter details or format. The single parameter 'composeId' is only defined by its schema (type string, minLength), but no additional meaning is 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 is just 'GET /deployment.allByCompose', which is the endpoint path. It does not explicitly state what the tool does, though the name suggests it retrieves all deployments for a compose. This is vague compared to a clear verb+resource description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 siblings like deployment-all, deployment-allByServer, etc. The description lacks context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deployment-allByServerDRead-onlyIdempotent
GET /deployment.allByServer
| Name | Required | Description | Default |
|---|---|---|---|
| serverId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=true, idempotentHint=true, openWorldHint=true, which already convey safety. The description adds no additional behavioral context such as rate limits, response size, or effect on system state. It is neutral but fails to add value beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short but lacks essential content. Conciseness is positive, but it sacrifices usefulness by not providing any functional explanation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 input schema but no output schema, the description should clarify what the tool returns. It does not. The tool's role within the sibling group (deployment-allByServer vs deployment-all) is unclear.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description does not explain the 'serverId' parameter or its format. The only parameter is required but undocumented in the description, leaving the agent without guidance on what serverId represents.
Input schemas describe structure but not intent. Descriptions should explain 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 is 'GET /deployment.allByServer', which merely repeats the tool name and endpoint path. It does not specify the action ('list all deployments for a server') nor distinguish it from siblings like deployment-allByCompose. It is 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?
No guidance is provided on when to use this tool versus alternatives. The context signals and sibling tools show many similar deployment-listing tools, but the description gives no criteria for choosing this one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deployment-allByTypeDRead-onlyIdempotent
GET /deployment.allByType
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| type | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, indicating a safe read operation. The description adds no additional behavioral details (e.g., pagination, response format, auth needs) beyond the HTTP method, providing minimal incremental value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short (4 words), but it is under-specified rather than concise. It wastes the opportunity to provide essential information, making it insufficient for an agent to understand the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of many sibling deployment tools and the lack of an output schema, the description is woefully incomplete. It provides no context about the tool's purpose, parameters, output, or relationship to other tools, making it nearly useless for correct tool selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description does nothing to clarify the meaning of the required parameters 'id' and 'type'. 'id' is ambiguous, and 'type's enum values lack context. The description adds no semantic value beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'GET /deployment.allByType' is a tautology; it merely restates the HTTP method and tool name without specifying what the tool does. It fails to indicate that it retrieves deployments filtered by type and id.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidance is provided. The description does not mention when to use this tool over sibling tools like deployment-all, deployment-allByCompose, deployment-allByServer, or deployment-allCentralized. No prerequisites or exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deployment-allCentralizedDRead-onlyIdempotent
GET /deployment.allCentralized
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=true, idempotentHint=true, openWorldHint=true, but the description adds no behavioral context beyond what annotations already provide. It does not explain what 'centralized' means or any other 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 very short but under-specified. It does not earn its place as it provides no useful 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?
Given zero parameters, annotations, and no output schema, the description fails to explain the purpose of the tool, what 'centralized' means, how it differs from siblings like deployment-all, or what the response contains.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has no parameters, so schema coverage is 100%. No parameter info is needed from the description. Baseline 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?
Description is 'GET /deployment.allCentralized' which is a tautology of the tool name. It does not state what the tool does beyond the HTTP method and endpoint path, offering no verb or resource explanation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus siblings like deployment-all or deployment-allByCompose. The name suggests a specific subset, but the description offers no clarification.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deployment-killProcessDIdempotent
POST /deployment.killProcess
| Name | Required | Description | Default |
|---|---|---|---|
| deploymentId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description 'POST ...' contradicts the annotation 'idempotentHint: true' because POST is typically non-idempotent. Additionally, no behavioral traits beyond annotations are disclosed, such as side effects or authorization needs. Annotation contradiction detected.
Agents need to know what a tool does to the world before calling 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 this is due to under-specification rather than efficient communication. It lacks essential information, making it inadequate rather than concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has a single required parameter and no output schema, the description should explain what happens when the tool is invoked. It fails to do so, leaving the tool's behavior and effects completely undefined.
Complex tools with many parameters or behaviors need more documentation. 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 one parameter 'deploymentId' with 0% description coverage. The tool description provides no additional meaning or context about this parameter, failing to clarify its format, purpose, or constraints 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 is merely the HTTP path and method 'POST /deployment.killProcess', which essentially restates the tool name. It does not define what 'killProcess' means or what action is performed, providing no clarity on the tool's purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage context or guidance is provided. The description does not indicate when to use this tool over siblings like 'deployment-killBuild' or 'deployment-removeDeployment', leaving the agent without decision criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deployment-queueListCRead-onlyIdempotent
GET /deployment.queueList
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, idempotentHint=true, and openWorldHint=true, so the description adds no behavioral context beyond the endpoint. It does not disclose any traits like return format, pagination, or order.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (one phrase), but it is under-specified rather than efficient. It lacks substantive information, making it barely adequate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and minimal description, the tool's return value and behavior are unclear. An AI agent would not have enough context to invoke the tool confidently without additional external knowledge.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so the schema coverage is effectively 100%. The description does not need to explain parameters, but it also fails to clarify what the tool lists or any other semantic meaning, which reduces its helpfulness.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 /deployment.queueList' merely restates the HTTP method and endpoint path, providing no additional context about what the tool actually does or what it returns. It does not distinguish itself from sibling tools like deployment-all or deployment-allByCompose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description does not mention prerequisites, exclusions, or recommended contexts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deployment-removeDeploymentDDestructive
POST /deployment.removeDeployment
| Name | Required | Description | Default |
|---|---|---|---|
| deploymentId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation destructiveHint: true indicates destructiveness, but the description adds no behavioral context. It does not explain side effects, reversibility, or impact on associated resources. openWorldHint: true suggests unknown behavior, yet no details are provided.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise but at the expense of utility. A single HTTP path does not constitute a helpful tool description; it lacks meaningful content and structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 minimal parameter guidance, the description is severely incomplete. It fails to provide essential context for safe and correct usage, especially given the many sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The parameter deploymentId has no description in the schema or tool description. With 0% schema coverage, the tool fails to explain what deploymentId refers to or how to obtain it, leaving the agent with no semantic guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description merely restates the HTTP method and endpoint path, providing no clarification beyond the name. 'Remove deployment' is vague and does not specify what removal entails (e.g., delete, stop, cancel). It does not distinguish from siblings like deployment-killProcess.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 deployment-killProcess or application-cancelDeployment. The description lacks context for appropriate usage conditions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
destination-allBRead-onlyIdempotent
GET /destination.all
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the behavioral safety profile is clear. However, the description adds no additional behavioral context (e.g., whether results are paginated, sorted, or limited). With annotations present, the description should still add value, but it does not.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (one line) and front-loads the essential HTTP method and path. However, it could be slightly more descriptive without adding length (e.g., 'List all destinations'). It is not verbose, but the minimalism may sacrifice 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?
Given the tool has no output schema and no parameter descriptions, the description should compensate by indicating what the response contains (e.g., array of destination objects, pagination). The openWorldHint suggests variable data, but without any return format hints, the description is incomplete for an AI agent to use 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 has zero parameters, so no parameter documentation is needed. Description does not need to explain parameters. The schema coverage is 100%, and the baseline for 0 parameters is 4. The description correctly implies no inputs are required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'GET /destination.all' clearly indicates the HTTP method and endpoint, implying it retrieves all destinations. It is specific enough to understand the action (list all) and resource, though it lacks explicit phrasing. The name 'destination-all' itself suggests listing, and sibling 'destination-one' contrasts as single item retrieval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 tool versus alternatives like 'destination-one' or 'destination-search'. The description does not state any conditions, prerequisites, or exclusions. An AI agent would have to infer usage solely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
destination-createD
POST /destination.create
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| provider | Yes | ||
| accessKey | Yes | ||
| bucket | Yes | ||
| region | Yes | ||
| endpoint | Yes | ||
| secretAccessKey | Yes | ||
| additionalFlags | No | ||
| serverId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only include openWorldHint: true, with no readOnlyHint or destructiveHint. The description adds no behavioral traits, such as side effects, authentication requirements, or what happens on success/failure.
Agents need to know what a tool does to the world before calling 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 fails to convey any useful information. While brevity is valued, this under-specification does not serve the agent; it is lazy rather than concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, no return value description, and no behavioral context. Given the tool has 7 required parameters and is a create operation, the description is severely incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain any parameters. Required fields like 'accessKey', 'bucket', 'region' imply cloud storage configuration, but no semantics are 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?
Description only restates the tool name as 'POST /destination.create'. It provides no verb or resource context, essentially a tautology. Sibling tools like 'destination-testConnection' or 'destination-update' suggest different operations, but this tool's purpose remains unclear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 'destination-update' or 'destination-testConnection'. No criteria for selection are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
destination-oneCRead-onlyIdempotent
GET /destination.one
| Name | Required | Description | Default |
|---|---|---|---|
| destinationId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as readOnly and idempotent. The description's 'GET' is consistent but adds no new behavioral context (e.g., what happens if destinationId is missing or invalid). Given annotations, the description meets a baseline but provides no extra value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short (one line) but severely underspecified. It lacks front-loaded purpose and actionable guidance; the brevity is a liability, not a strength.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 retrieval tool with one parameter and no output schema, the description must clarify expected behavior and return value. It provides none of this, making it completely inadequate for 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 does not explain the required destinationId parameter. With 0% schema description coverage, the description must compensate, but it fails entirely, leaving the agent without any semantic meaning for 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 'GET /destination.one' is vague; it implies an HTTP method but does not explicitly state that the tool retrieves a single destination by ID. It fails to distinguish from siblings like destination-all (list) or destination-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 such as destination-all or destination-create. The agent receives no context about appropriate usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
destination-removeDDestructive
POST /destination.remove
| Name | Required | Description | Default |
|---|---|---|---|
| destinationId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate destructiveHint=true, but description adds no behavioral context beyond that. No mention of irreversibility, side effects, or permissions required. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise but at the expense of clarity. The description is under-specified, lacking any substantive information about 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?
No output schema and no description of return value or behavior. For a destructive tool, critical context about irreversibility and prerequisites 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?
Input schema includes one required parameter (destinationId) with no description. Schema description coverage is 0%, and the tool description provides no explanation of the parameter's purpose, format, or allowed values.
Input schemas describe structure but not intent. Descriptions should explain 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 is 'POST /destination.remove', which restates the tool name and HTTP method without stating what the tool does. It fails to specify that it removes a destination 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 vs alternatives like destination-create, destination-update, or destination-one. No conditions, prerequisites, or exclusions provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
destination-testConnectionDIdempotent
POST /destination.testConnection
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| provider | Yes | ||
| accessKey | Yes | ||
| bucket | Yes | ||
| region | Yes | ||
| endpoint | Yes | ||
| secretAccessKey | Yes | ||
| additionalFlags | No | ||
| serverId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate idempotentHint=true and openWorldHint=true, but the description adds no behavioral context, such as whether it modifies state or requires authentication. With annotations present, the description should still explain the test's effect, which it does not.
Agents need to know what a tool does to the world before calling 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 (one line), but this violates the principle that every sentence should earn its place; here, the single line adds no value. It is under-specified rather than concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, no parameter descriptions, and a complex 9-parameter setup, the description is grossly incomplete. A tool for testing connections needs far more context to be used 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 0%, and the description provides no explanation for any of the 9 parameters (7 required). Each parameter's purpose (e.g., accessKey, bucket, region) is left entirely to inference from the name, which is insufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is just 'POST /destination.testConnection', which merely repeats the tool name in HTTP endpoint format. It fails to state what the tool does, such as testing whether a destination connection is valid.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 bitbucket-testConnection or notification-testSlackConnection. The description lacks any context for appropriate use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
destination-updateDIdempotent
POST /destination.update
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| accessKey | Yes | ||
| bucket | Yes | ||
| region | Yes | ||
| endpoint | Yes | ||
| secretAccessKey | Yes | ||
| destinationId | Yes | ||
| provider | Yes | ||
| additionalFlags | No | ||
| serverId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide idempotentHint and openWorldHint, but the description adds no behavioral context (e.g., what fields are updated, side effects). The description does not leverage the annotations to enhance 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?
Extremely short but that is under-specification, not conciseness. A single sentence repeating the HTTP method provides no useful information and wastes the opportunity to explain the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 10 parameters, 8 required, no output schema, and only minimal annotations, the description is wholly inadequate. It fails to provide any context about the tool's operation, return value, or data model.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description does not explain any of the 10 parameters. Required params like name, accessKey, bucket, etc. are left entirely undocumented, forcing the agent to guess their 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?
Description is 'POST /destination.update', a tautology that restates the tool name. It does not specify what a destination is or what update means, failing to distinguish from sibling tools like destination-create or destination-remove.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 destination tools. While the tool name implies updating an existing destination, there is no context on prerequisites or conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
docker-getConfigDRead-onlyIdempotent
GET /docker.getConfig
| Name | Required | Description | Default |
|---|---|---|---|
| containerId | Yes | ||
| serverId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (readOnlyHint: true, idempotentHint: true) already indicate a safe read operation, but the description adds no behavioral context such as what kind of configuration is returned, whether it requires authentication, or any side effects. The description does not enhance the agent's understanding beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (one line) but at the cost of being uninformative. It is not appropriately sized for the tool's complexity; it sacrifices all useful detail for brevity, making it a tautology rather than a valuable explanation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 two parameters and no output schema, the description should explain what configuration is being fetched (e.g., Docker container config, server config) and the relationship between parameters. It provides none of this, resulting in a completely inadequate specification for an AI agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has two parameters (containerId, serverId) with zero description coverage, and the tool description provides no information about their meaning, purpose, or expected values. This leaves the agent unable to correctly populate the 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 /docker.getConfig' is a tautology that merely restates the tool name and HTTP method. It fails to specify what configuration is being retrieved (e.g., container config, server config) or any other purpose, leaving the agent without a clear understanding 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 guidance is provided on when to use this tool versus alternatives like docker-getContainers or docker-removeContainer. The description lacks any context about prerequisites or scenarios where 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.
docker-getContainersDRead-onlyIdempotent
GET /docker.getContainers
| Name | Required | Description | Default |
|---|---|---|---|
| serverId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint and idempotentHint. The description adds no behavioral context beyond these annotations, such as side effects, pagination, or output format, providing minimal additional value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While very short, the description is not concise in a helpful way; it merely restates the tool name. It lacks meaningful content and fails to earn its place by providing useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of multiple sibling tools for listing containers, the description is completely inadequate. It provides no context about the tool's scope, return value, or relationship to others, making it nearly unusable 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?
There is one parameter, serverId, with no description in the schema or tool definition. The description does not explain what serverId means or how it affects the result, leaving the agent unable to use the parameter correctly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description simply repeats the tool name 'GET /docker.getContainers' without stating what the tool does. It fails to convey that it lists containers on a server and does not differentiate from sibling tools like docker-getContainersByAppLabel.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives. The description omits context about its purpose or when it is appropriate to use, leaving the agent without criteria to select it over sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
docker-getContainersByAppLabelDRead-onlyIdempotent
GET /docker.getContainersByAppLabel
| Name | Required | Description | Default |
|---|---|---|---|
| appName | Yes | ||
| serverId | No | ||
| type | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint, idempotentHint, and openWorldHint, but the description adds no behavioral context beyond what's already in structured fields. It does not explain any side effects, prerequisites, or return 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 extremely terse but at the cost of being completely uninformative; it is under-specified rather than concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and a minimal description, the tool definition fails to convey what the function returns or how to interpret results, making it insufficient for an agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description provides no explanation of what appName, serverId, or type parameters represent or how they constrain results.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 a tautology: 'GET /docker.getContainersByAppLabel' merely restates the tool name and HTTP method without describing what the tool does or what resources it queries.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 docker-getContainers or docker-getContainersByAppNameMatch, leaving the agent to guess the use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
docker-getContainersByAppNameMatchDRead-onlyIdempotent
GET /docker.getContainersByAppNameMatch
| Name | Required | Description | Default |
|---|---|---|---|
| appType | No | ||
| appName | Yes | ||
| serverId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and openWorldHint=true, so no contradiction. However, the description adds no behavioral context beyond these annotations, such as what resources are accessed or whether results are paginated. A minimal score of 2 is given because the description fails to add value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short (one line) but fails to convey any useful information. Conciseness should be paired with completeness; here it is under-specification, not efficient communication.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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, the description should at least hint at return values, but it does not. Additionally, with multiple related sibling tools, the description offers no differentiation, leaving the agent ill-equipped 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 0%, and the description does not explain any of the three parameters (appType, appName, serverId). Without additional context, the agent cannot understand their semantics beyond basic types and 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 'GET /docker.getContainersByAppNameMatch' merely repeats the tool name and HTTP method, failing to state what the tool actually does. There is no verb or resource specification beyond the name itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidance is provided. The description does not explain when to use this tool versus siblings like docker-getContainers or docker-getContainersByAppLabel, leaving the agent without context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
docker-getServiceContainersByAppNameDRead-onlyIdempotent
GET /docker.getServiceContainersByAppName
| Name | Required | Description | Default |
|---|---|---|---|
| appName | Yes | ||
| serverId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and idempotentHint=true, so the agent knows the tool is safe and idempotent. However, the description adds no further behavioral context (e.g., what containers are returned, scope, or limitations). It does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (one sentence) but at the expense of informativeness. It is too minimal to be useful, missing key details about behavior and 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 the tool has two parameters, no output schema, and multiple sibling tools with similar names, the description is severely incomplete. It does not explain the return format, filtering logic, or how it differs from related 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 coverage is 0%, meaning the description provides no information about the parameters. The schema defines appName and serverId but lacks descriptions. The description does not explain what serverId does or how the pattern on appName affects usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is 'GET /docker.getServiceContainersByAppName', which merely restates the tool name and HTTP method without specifying what the tool actually does. It fails to convey the purpose of retrieving service containers by application name, especially given the existence of similar sibling tools like docker-getContainersByAppNameMatch.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 docker-getContainersByAppNameMatch or docker-getStackContainersByAppName. The description does not distinguish its use case or provide context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
docker-getStackContainersByAppNameDRead-onlyIdempotent
GET /docker.getStackContainersByAppName
| Name | Required | Description | Default |
|---|---|---|---|
| appName | Yes | ||
| serverId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint, idempotentHint, and openWorldHint are true, but the description adds no behavioral context beyond the annotations. No mention of side effects, permissions, or result structure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely short but under-specified. Not conciseness; it is a placeholder that omits 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 2 parameters, no output schema, and existence of sibling tools, the description is severely incomplete. Does not clarify what 'stack containers' are, how results are organized, or the tool's 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 coverage is 0%, and description provides no meaning, format examples, or usage tips for the two parameters (appName, serverId). The description fails to compensate for the lack of schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description is 'GET /docker.getStackContainersByAppName', which is a tautology restating the name and HTTP method. It does not explain what the tool does in plain language or specify the resource being retrieved.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 sibling tools like docker-getContainersByAppLabel or docker-getServiceContainersByAppName. Missing context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
docker-removeContainerDDestructive
POST /docker.removeContainer
| Name | Required | Description | Default |
|---|---|---|---|
| containerId | Yes | ||
| serverId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations include destructiveHint: true, which provides basic safety info. However, the description adds no behavioral details (e.g., container gets permanently removed, effects on running services, permission requirements). It misses the opportunity to enrich the annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely short but not helpfully concise—it omits all meaningful information. There is no structure or front-loading of key facts.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 two parameters and no output schema, the description is completely inadequate. It fails to clarify behavior, parameter roles, or success/failure 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?
Schema description coverage is 0%, and the description contains no parameter explanations. The purpose and format of containerId and serverId remain undefined, forcing reliance on the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is just 'POST /docker.removeContainer', a tautology that restates the tool name without specifying the action or resource beyond what the name implies. No verb or resource detail is provided.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives like docker-restartContainer or docker-getContainers. The description lacks any context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
docker-restartContainerDIdempotent
POST /docker.restartContainer
| Name | Required | Description | Default |
|---|---|---|---|
| containerId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description provides no behavioral details beyond what annotations indicate (idempotent, openWorld). It fails to disclose the restart action, potential side effects, or prerequisites.
Agents need to know what a tool does to the world before calling 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 but not usefully concise. It is under-specified and does not earn its place; every sentence is missing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity and lack of output schema, the description still fails to provide essential context about the restart process, effects, or return details. It is completely inadequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter 'containerId' is fully defined in the schema with pattern and minLength, but the description adds no semantic meaning. With 0% schema description coverage, the description should compensate but 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 'POST /docker.restartContainer' simply restates the tool name and HTTP method, providing no indication of what the tool does. It is a tautology without any verb or resource explanation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 docker-removeContainer or docker-getContainers. The description lacks context for appropriate usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
docker-uploadFileToContainerDIdempotent
POST /docker.uploadFileToContainer
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral context beyond the annotations (idempotentHint, openWorldHint). It does not disclose how the upload works, what happens to the container, 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?
Extremely short but incomplete. Conciseness is not valuable when it omits 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?
Despite zero parameters and no output schema, the tool requires context for file upload (e.g., file source, destination container). The description provides none, making 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 has zero parameters, which is unusual for an upload tool. The description does not explain how to specify the file or container, leaving the agent confused.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is just 'POST /docker.uploadFileToContainer', which is a URL path and does not state what the tool does. An AI agent cannot determine the tool's purpose from this.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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. The description lacks context for usage decisions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
domain-byApplicationIdDRead-onlyIdempotent
GET /domain.byApplicationId
| Name | Required | Description | Default |
|---|---|---|---|
| applicationId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations convey readOnlyHint, idempotentHint, and openWorldHint. The description adds no behavioral insights beyond that. Since annotations already exist, the bar is higher, and the description fails to add value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely short but at the cost of clarity. It is under-specified, not concise. A good description would be brief yet 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?
With no output schema and a single parameter, the description should at least state that it retrieves domains for an application. The current text is entirely inadequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%. The description does not explain the 'applicationId' parameter's meaning or format, relying entirely on the name which may be ambiguous.
Input schemas describe structure but not intent. Descriptions should explain 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 is 'GET /domain.byApplicationId', a mere restatement of the tool name and HTTP method. It does not explain what the tool does, e.g., retrieving domain information for a given application ID.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool instead of siblings like 'domain-byComposeId' or 'domain-one'. The description provides no context for decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
domain-byComposeIdDRead-onlyIdempotent
GET /domain.byComposeId
| Name | Required | Description | Default |
|---|---|---|---|
| composeId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint. The description adds no additional behavioral context, merely repeating the HTTP method. It does not disclose any traits beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short, but it is under-specified. Conciseness should not come at the cost of clarity; the single line does not earn its place as a useful description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 input schema and no output schema, a brief description could suffice, but the current description is essentially absent. It fails to explain the tool's purpose, rendering it incomplete 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?
Schema description coverage is 0%, meaning the description does not explain the 'composeId' parameter. The name alone suggests it's an identifier, but the description offers no further semantic value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'GET /domain.byComposeId' only indicates the HTTP method and path, not a clear purpose. It fails to state that the tool retrieves a domain by its compose ID, which is implied by the name but not explicitly described.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 guidelines provided. The description does not specify when to use this tool, when not to, or suggest alternatives like domain-byApplicationId or domain-one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
domain-canGenerateTraefikMeDomainsDRead-onlyIdempotent
GET /domain.canGenerateTraefikMeDomains
| Name | Required | Description | Default |
|---|---|---|---|
| serverId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true, idempotentHint=true, and openWorldHint=true, indicating safe, idempotent behavior. The description adds no additional behavioral context, such as what the tool checks or any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that repeats the endpoint. While technically concise, it lacks any informative content, so brevity is detrimental rather than efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of output schema and minimal description, the agent has no way to understand what the tool returns or how to interpret the result. The annotations hint at read-only idempotence, but the description is too vague to be useful.
Complex tools with many parameters or behaviors need more documentation. 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 one required parameter ('serverId') with no description. The tool description also provides no parameter documentation. With 0% schema description coverage, the description fails to compensate, leaving the parameter's purpose unclear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 merely the HTTP method and endpoint path ('GET /domain.canGenerateTraefikMeDomains'), which is a tautology of the tool name. It does not explain what the tool does or what it checks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 guidelines are provided. There is no indication of when to use this tool compared to alternatives, nor any prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
domain-createD
POST /domain.create
| Name | Required | Description | Default |
|---|---|---|---|
| host | Yes | ||
| path | No | ||
| port | No | ||
| customEntrypoint | No | ||
| https | No | ||
| applicationId | No | ||
| certificateType | No | ||
| customCertResolver | No | ||
| composeId | No | ||
| serviceName | No | ||
| domainType | No | ||
| previewDeploymentId | No | ||
| internalPath | No | ||
| stripPath | No | ||
| middlewares | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description offers no behavioral details beyond the HTTP method. With annotations only providing 'openWorldHint: true', the agent is left uninformed about what side effects occur (e.g., resource creation, validation, persistence) or prerequisites.
Agents need to know what a tool does to the world before calling 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 lacks substance. Conciseness should retain usefulness; here it is under-specified, effectively wasting the opportunity to inform the agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 (15 parameters, no schema descriptions, no output schema, and many sibling tools), the description is grossly incomplete. It fails to clarify what the tool does, what constitutes valid input, or what the outcome is.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, and the tool description adds no parameter explanations. With 15 parameters, the agent cannot understand the purpose of each field like host, path, certificateType, etc. from the description alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'POST /domain.create' is a tautology, merely restating the tool name and HTTP method. It fails to communicate that the tool creates a new domain resource or what a domain represents.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus related sibling tools like domain-update, domain-delete, or domain-byApplicationId. The description lacks any context for decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
domain-deleteDDestructive
POST /domain.delete
| Name | Required | Description | Default |
|---|---|---|---|
| domainId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and openWorldHint=true, indicating a destructive, open-world action. However, the description adds no behavioral context (e.g., irreversible deletion, cascading effects, authentication needs). With annotations, the bar is lower, but the description should provide additional detail beyond annotations; it does not.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely short (5 words), but it's under-specification, not conciseness. Proper conciseness is about efficiency of conveying meaning; here no meaning is conveyed. The description could be expanded to include a brief purpose statement without losing 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?
Given the tool is a delete operation with one parameter and no output schema, the description is completely inadequate. It should explain what domain deletion entails, whether it's reversible, any dependencies, and how it differs from other domain operations. The context signals (1 param, 0% coverage) highlight the need for description to fill gaps, which it fails to do.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so description must compensate. It provides no parameter info. The schema defines domainId as a required string, but description does not explain what domainId represents or any constraints (e.g., format, source). The description adds zero value over the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is a tautology: 'POST /domain.delete' merely restates the endpoint, providing no semantic meaning about what the tool does. It doesn't specify verb (delete), resource (domain), or scope. Sibling tools like domain-create and domain-update suggest CRUD operations, but this description fails to clarify.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 vs alternatives (e.g., domain-remove? domain-delete vs domain-update?). Lacks context for prerequisites, required permissions, or typical workflow. Sibling tools include domain-validateDomain and domain-generateDomain, but no comparison given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
domain-generateDomainDIdempotent
POST /domain.generateDomain
| Name | Required | Description | Default |
|---|---|---|---|
| appName | Yes | ||
| serverId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide idempotentHint and openWorldHint, but the description adds no behavioral context. It does not disclose side effects, permissions, rate limits, or output format. For a tool with annotations, the description should add value beyond them; it does not.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is too brief to the point of uselessness. It provides only a single technical line without any explanatory content, sacrificing clarity 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?
Given the tool's likely purpose (generating a domain for an app) and the absence of an output schema, the description is completely inadequate. It fails to cover purpose, parameters, behavior, or return value, leaving the agent without essential information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description must explain parameters. It fails to describe appName or serverId. The description only shows the endpoint, offering no meaning beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is only 'POST /domain.generateDomain', which merely repeats the HTTP method and endpoint without stating what the tool does. The name implies generating a domain, but the description adds no clarity and does not distinguish from sibling tools like domain-create or domain-validateDomain.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 provided on when to use this tool vs alternatives. The description lacks any context about prerequisites, typical scenarios, 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.
domain-oneCRead-onlyIdempotent
GET /domain.one
| Name | Required | Description | Default |
|---|---|---|---|
| domainId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the description does not need to restate those. It adds no further behavioral context (e.g., permissions, return structure). Acceptable but not helpful beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely short (one line), but under-specification undermines conciseness. It is not 'appropriately sized' because it lacks necessary detail for a useful tool 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 read tool with one required parameter and no output schema, the description should explain what it returns and when to use it. It fails to do so, leaving agents to guess.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description must compensate for the undocumented 'domainId' parameter. It provides no explanation (e.g., 'the unique identifier of the domain'). Completely inadequate.
Input schemas describe structure but not intent. Descriptions should explain 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 'GET /domain.one' only gives HTTP method and endpoint, not what it does. It does not explicitly state that it retrieves a single domain by ID, though the name hints at it. Vague and insufficiently informative for selecting the tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus siblings like domain-byApplicationId or domain-byComposeId. Does not clarify context (e.g., 'use when you have a domain ID').
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
domain-updateDIdempotent
POST /domain.update
| Name | Required | Description | Default |
|---|---|---|---|
| host | Yes | ||
| path | No | ||
| port | No | ||
| customEntrypoint | No | ||
| https | No | ||
| certificateType | No | ||
| customCertResolver | No | ||
| serviceName | No | ||
| domainType | No | ||
| internalPath | No | ||
| stripPath | No | ||
| middlewares | No | ||
| domainId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide idempotentHint and openWorldHint, but the description adds no behavioral details beyond the endpoint. It does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single line but is under-specified and uninformative. It does not earn its place; it is not concise in a helpful sense.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 (13 parameters, no output schema, many siblings), the description is completely inadequate for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 13 parameters and 0% schema description coverage, the description provides no explanation of any parameter's meaning or usage, failing to add 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?
Description is merely the raw endpoint 'POST /domain.update', a tautology that restates the tool name without specifying what the tool does or how it differs from siblings like domain-create, domain-delete, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus sibling tools like domain-create or domain-update. The description offers zero context for decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
domain-validateDomainDIdempotent
POST /domain.validateDomain
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | ||
| serverIp | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare idempotentHint and openWorldHint, but the description adds no behavioral context beyond the URL. It does not contradict annotations, but fails to add value such as auth needs or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single uninformative sentence that does not earn its place. It is not front-loaded with actionable information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, no explanation of return values or behavior. The description is severely incomplete for a tool with two parameters and no schema descriptions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not mention the two parameters (domain, serverIp) at all. The agent gets no help understanding their 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 is merely 'POST /domain.validateDomain', which is a tautology of the tool name. It does not state what the tool does; the agent must infer from the name alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus siblings like domain-create or domain-generateDomain. No prerequisites or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
environment-byProjectIdCRead-onlyIdempotent
GET /environment.byProjectId
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey readOnlyHint=true and idempotentHint=true, so the agent knows it's a safe read. The description adds the HTTP method but no additional behavioral context like pagination or error handling. It does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise at 3 words, but it lacks structure or full sentences. While it is front-loaded with the HTTP method and resource, it sacrifices clarity 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?
Given no output schema and 0% parameter description coverage, the description is too minimal. It does not explain what the tool returns (list of environments, single object, etc.) or any side effects. Siblings like 'environment-search' and 'environment-one' have more descriptive names, but this tool's description remains ambiguous.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not describe the 'projectId' parameter beyond its name and type in the schema. The agent must infer its meaning from the tool name alone, which is insufficient for correct invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'GET /environment.byProjectId', which clearly indicates a GET request to retrieve environments by project ID. This distinguishes it from siblings like 'environment-one' (by environment ID) and 'environment-search' (search with filters). However, it could be more explicit by using a verb phrase like 'Get environments by project ID'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as 'environment-one' or 'environment-search'. It lacks any context about the scope of results or prerequisites (e.g., project must exist).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
environment-createD
POST /environment.create
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| description | No | ||
| projectId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations include openWorldHint=true, indicating potential side effects, but the description does not clarify behavior (e.g., idempotency, persistence, or impact). With annotations present, the low bar is not met.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (5 words) but at the cost of being under-specifying. It does not earn its space with useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 3 parameters, no output schema, and no parameter descriptions, the description is severely lacking in completeness. It does not enable an AI agent to correctly invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% with 3 parameters (name, description, projectId). The description provides no explanation of parameter roles or constraints, failing to compensate for the schema's lack of 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 'POST /environment.create' merely restates the tool name in HTTP format, adding no meaningful purpose beyond what the name implies. It fails to explain what an 'environment' is or what creating one entails.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 sibling tools like environment-update or environment-search. The description lacks any context for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
environment-duplicateDIdempotent
POST /environment.duplicate
| Name | Required | Description | Default |
|---|---|---|---|
| environmentId | Yes | ||
| name | Yes | ||
| description | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral context beyond what is already declared in annotations (idempotentHint and openWorldHint). It does not explain what duplicating entails, whether it creates a new environment, or any side effects, leaving the agent with insufficient 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?
While extremely short, the description is under-specified rather than concise. It fails to earn its place by providing any useful information, making it inadequate for a 3-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?
Given the complexity of a duplication operation and the lack of output schema, the description is severely incomplete. It omits any details about the result, error conditions, or side effects, rendering it nearly useless 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?
With 0% schema description coverage, the description must compensate by explaining the parameters. However, it contains no information about the purpose of environmentId, name, or description, leaving the agent to guess their roles.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 a mere tautology, simply restating the HTTP method and endpoint ("POST /environment.duplicate") without indicating the tool's function, such as duplicating an environment. It fails to specify the verb, resource, or action, making it indistinguishable from the name alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like environment-create or environment-update. The description offers no context about appropriate scenarios, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
environment-oneDRead-onlyIdempotent
GET /environment.one
| Name | Required | Description | Default |
|---|---|---|---|
| environmentId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint (safe, read-only). Description adds no behavioral context beyond that (e.g., error behavior, auth needs, or side effects). Does not leverage the opportunity to add value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely short (3 words) but under-specified. Lacks essential information such as output, behavior, or use context. Conciseness is positive only when completeness is not sacrificed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, no output description. Single-parameter tool, but description fails to mention what the tool returns, how to interpret results, or any constraints. Incomplete 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?
Schema description coverage is 0% and description provides zero parameter context. The lone parameter 'environmentId' is crucial but undeveloped. Description should compensate but fails entirely.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description 'GET /environment.one' is a terse endpoint reference. It implies retrieval but does not state that it fetches a single environment by ID. Lacks plain-language verb and resource description, and does not distinguish from siblings like environment-byProjectId or environment-search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus siblings. The description provides no context for choosing environment-one over environment-byProjectId or environment-search. Agents have no direction on selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
environment-removeDDestructive
POST /environment.remove
| Name | Required | Description | Default |
|---|---|---|---|
| environmentId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral context beyond the annotations (destructiveHint: true). For a destructive operation, the description should explicitly state that the environment will be permanently removed and warn about consequences. It does not.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short but under-specified. It is not concise in a helpful way; it omits critical information, making it ineffective.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 destructive nature, the description should provide safety warnings, prerequisites, or side effects. It lacks all such information, making it insufficient for an agent to use 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 0% for parameters, and the description provides no explanation of the 'environmentId' parameter beyond its name. The description should indicate that it is the ID of the environment to remove.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is just 'POST /environment.remove', which does not explicitly state the tool's action. The tool name 'environment-remove' hints at deletion, but the description fails to clarify the purpose, leaving 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 like 'environment-update' or 'environment-duplicate'. The description lacks any contextual advice on usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
environment-searchDRead-onlyIdempotent
GET /environment.search
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | ||
| name | No | ||
| description | No | ||
| projectId | No | ||
| limit | No | ||
| offset | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and openWorldHint=true, indicating a safe read operation. The description adds no behavioral context beyond the annotations, such as pagination behavior or response structure, leaving the agent with incomplete understanding.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely brief (one phrase), but this conciseness comes at the cost of information. It does not earn its place because it adds no value over the tool name. A truly concise yet informative description would include key details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 6 parameters, no output schema, and rich sibling context, the description is grossly incomplete. It lacks any details on how to perform a search, what the parameters mean, or what the result looks like, making it nearly useless 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?
With 0% schema description coverage, the burden is on the description to explain the 6 parameters. The description 'GET /environment.search' provides no semantic meaning for 'q', 'name', 'description', 'projectId', 'limit', or 'offset', leaving the agent unable to construct valid queries.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 /environment.search' merely restates the tool name as an HTTP endpoint. It does not provide a meaningful verb-resource statement, nor does it distinguish the tool from siblings like 'environment-byProjectId' or 'environment-one'. The agent cannot infer what the tool does beyond 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?
No guidance is given on when to use this tool versus alternatives. Among siblings, there are dedicated tools like 'environment-byProjectId' for listing by project, but the description offers no context for when a generic search is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
environment-updateDIdempotent
POST /environment.update
| Name | Required | Description | Default |
|---|---|---|---|
| environmentId | Yes | ||
| name | No | ||
| description | No | ||
| projectId | No | ||
| env | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate idempotentHint=true and openWorldHint=true, but description adds no behavioral context beyond what annotations already provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely short but underspecified; lacks necessary content beyond a redundant HTTP 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?
With 5 parameters, no output schema, and no parameter descriptions, the description is severely 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 has 0% description coverage for 5 parameters; description does not explain 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?
Description is 'POST /environment.update', which is a tautology of the tool name and provides no meaningful purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use vs sibling tools like environment-create, environment-remove, etc.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gitea-createD
POST /gitea.create
| Name | Required | Description | Default |
|---|---|---|---|
| giteaId | No | ||
| giteaUrl | Yes | ||
| giteaInternalUrl | No | ||
| redirectUri | No | ||
| clientId | No | ||
| clientSecret | No | ||
| gitProviderId | No | ||
| accessToken | No | ||
| refreshToken | No | ||
| expiresAt | No | ||
| scopes | No | ||
| lastAuthenticatedAt | No | ||
| name | Yes | ||
| giteaUsername | No | ||
| organizationName | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation 'openWorldHint: true' indicates external side effects, but the description adds no behavioral details such as whether it modifies state, requires authentication, or has side effects. It fails to clarify beyond the annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short but not concise; it is under-specified. It consists of a single trivial phrase that adds no value, failing to earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 15 parameters, no output schema, and moderate complexity (creating a Gitea provider likely involves multiple fields), the description is completely inadequate. It does not explain the tool's purpose, parameters, or expected behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description has zero parameter information, and the schema has 0% coverage (no descriptions in the schema). With 15 parameters, the description must compensate but provides nothing about what each parameter means or how they relate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is just 'POST /gitea.create', which provides no semantic meaning. It does not specify what resource is being created or any action beyond the HTTP method. This is a tautology as it merely restates the tool name in endpoint form.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 gitea-update or other create tools. The description lacks any context about use cases or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gitea-getGiteaBranchesDRead-onlyIdempotent
GET /gitea.getGiteaBranches
| Name | Required | Description | Default |
|---|---|---|---|
| owner | Yes | ||
| repositoryName | Yes | ||
| giteaId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already label it as read-only, idempotent, and open-world. The description adds no extra behavioral info (e.g., pagination, order, or limits). It does not contradict annotations, but adds no value beyond them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely short but lacking substance; it is under-specified rather than concise. Every sentence should earn its place, but this single phrase is merely the HTTP method and endpoint.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 3 parameters (2 required), no output schema, and no parameter descriptions, the description fails to provide enough information for an agent to use the tool correctly, even with good annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 0% description coverage, and the tool description offers no explanation of parameters 'owner', 'repositoryName', or 'giteaId'. The agent gets no semantic help for invoking the 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 is merely 'GET /gitea.getGiteaBranches', which is a tautology of the tool name and endpoint. It does not specify what the tool does, such as listing branches of a repository, and no verb+resource is provided.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus sibling tools like 'gitea-getGiteaRepositories' or 'github-getGithubBranches'. The description provides no context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gitea-getGiteaRepositoriesDRead-onlyIdempotent
GET /gitea.getGiteaRepositories
| Name | Required | Description | Default |
|---|---|---|---|
| giteaId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, idempotentHint=true, and openWorldHint=true, which indicate the tool is safe and idempotent. However, the description adds no further behavioral context (e.g., what the response contains, whether authentication is needed). Since annotations already cover the basic safety profile, the description does not contradict but adds minimal value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While the description is short, it is under-specified to the point of uselessness. Conciseness should not sacrifice informational value; here 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?
Given the lack of output schema, the single parameter is undocumented, and no behavioral details are provided, the description is completely inadequate for an agent to understand the tool's role and 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 has one required parameter 'giteaId' with no description and 0% schema description coverage. The description does not explain what this parameter represents (e.g., the Gitea provider ID), leaving the agent without necessary guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'GET /gitea.getGiteaRepositories' is a tautology that restates the tool name and HTTP method. It does not specify what kind of repositories are listed (e.g., all repositories for a Gitea provider, for a user, etc.), leaving the purpose ambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus siblings like gitea-getGiteaBranches or gitea-getGiteaUrl. There is no mention of prerequisites, context, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gitea-getGiteaUrlDRead-onlyIdempotent
GET /gitea.getGiteaUrl
| Name | Required | Description | Default |
|---|---|---|---|
| giteaId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=true and idempotentHint=true, so the agent knows it's safe and idempotent, but the description adds no behavioral context such as return type or prerequisites.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is minimal but lacks substance. It is under-specified rather than concise; a good description should be short yet 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?
With no output schema, no parameter descriptions, and a bare-bones description, the tool is not adequately described for an agent to use 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 sole parameter 'giteaId' has schema coverage of 0% and the description provides no explanation of what it represents (e.g., a Gitea provider ID or configuration ID).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is just 'GET /gitea.getGiteaUrl', which barely indicates it fetches a Gitea URL but doesn't specify what the URL represents (e.g., server URL or repository URL) or how it relates to sibling tools like 'gitea-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?
No guidance is provided on when to use this tool over alternatives. Among sibling tools like 'gitea-one' and 'gitea-getGiteaBranches', there is no differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gitea-giteaProvidersDRead-onlyIdempotent
GET /gitea.giteaProviders
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, so the safety profile is clear. However, the description adds no behavioral context beyond the endpoint string, failing to disclose what happens (e.g., returns a list of providers) or any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short (one phrase) but lacks substance. Conciseness is wasted if it doesn't convey information; it's under-specified rather than efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and a simple retrieval tool, the description should outline what is returned (e.g., list of Gitea providers). It offers zero completeness, making it insufficient for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has zero parameters with 100% description coverage, so baseline is 3. The description provides no additional parameter meaning, which is acceptable since none 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 'GET /gitea.giteaProviders' is tautological, restating the tool name without explaining what 'providers' means or what the tool retrieves. It barely distinguishes from siblings like 'gitea-getGiteaBranches' but provides no clear purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as 'bitbucket-bitbucketProviders' or 'github-githubProviders'. The description lacks any context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gitea-oneDRead-onlyIdempotent
GET /gitea.one
| Name | Required | Description | Default |
|---|---|---|---|
| giteaId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so the tool is known to be read-only. The description adds nothing beyond the annotations; it merely restates the HTTP method. No additional behavioral traits are disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise but at the cost of utility. The description is too minimal to guide the agent effectively. A more structured description with parameter explanation is needed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, and the description does not specify what the tool returns. The parameter is undocumented. Given the complexity (a single retrieval tool with a required ID), the description is severely 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 only parameter 'giteaId' has 0% schema description coverage, and the description does not explain what giteaId represents. The agent cannot infer its meaning from the description alone.
Input schemas describe structure but not intent. Descriptions should explain 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 is 'GET /gitea.one', which does not state what the tool does. It only suggests an HTTP method and path, lacking any indication that it retrieves a single Gitea entity by ID. The name 'gitea-one' hints at fetching one, but the description fails to clarify.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 sibling tools like gitea-getGiteaUrl, gitea-getGiteaBranches, or gitea-getGiteaRepositories. The description provides no context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gitea-testConnectionDIdempotent
POST /gitea.testConnection
| Name | Required | Description | Default |
|---|---|---|---|
| giteaId | No | ||
| organizationName | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate idempotent and open-world behavior, but the description adds no behavioral context. It does not disclose what happens during a test (e.g., what is checked, side effects, or response). Without description value, the agent relies solely on annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely short, but it is under-specification rather than conciseness. The description lacks substance and fails to earn its place as a helpful summary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 minimal parameter info, the description is wholly inadequate. It omits return values, error handling, and any explanation of the connection test process.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description provides no explanation for the two parameters (giteaId, organizationName). The agent has no clue about their meaning or allowed values, severely hindering correct invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is merely 'POST /gitea.testConnection', which tautologically restates the tool name in URL form. It fails to convey that this tool tests a Gitea connection, leaving its purpose unclear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 specify when to use this tool versus other testConnection tools (e.g., github-testConnection, gitlab-testConnection) or alternatives, leaving the agent without direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gitea-updateDIdempotent
POST /gitea.update
| Name | Required | Description | Default |
|---|---|---|---|
| giteaId | Yes | ||
| giteaUrl | Yes | ||
| giteaInternalUrl | No | ||
| redirectUri | No | ||
| clientId | No | ||
| clientSecret | No | ||
| gitProviderId | Yes | ||
| accessToken | No | ||
| refreshToken | No | ||
| expiresAt | No | ||
| scopes | No | ||
| lastAuthenticatedAt | No | ||
| name | Yes | ||
| giteaUsername | No | ||
| organizationName | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide idempotentHint and openWorldHint, but the description adds no behavioral context. It does not contradict annotations, but fails to explain side effects or 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?
Extremely concise but at the expense of meaningful information. The description is too short to be useful, not earning its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (15 parameters, no output schema, many siblings), the description is completely inadequate. It fails to specify what the tool updates or returns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description provides no explanation for any of the 15 parameters. This is critical for a tool with many 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?
Description is 'POST /gitea.update', which is a tautology of the tool name and provides no information about what the tool does. It lacks a verb and resource description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 gitea-create or gitea-one. The description is absent of any context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
github-getGithubBranchesDRead-onlyIdempotent
GET /github.getGithubBranches
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | ||
| owner | Yes | ||
| githubId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint. The description adds no additional behavioral context (e.g., that it returns a list, that it requires authentication). It does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely short (5 words) but under-specified; it lacks necessary content. Not an example of effective conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and simple functionality, the description should at least mention that it retrieves branches for a repo. It fails to cover return format or parameter roles. Completely insufficient for an agent to use 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 0% (no parameter descriptions in schema). The description does not explain what 'repo', 'owner', or 'githubId' mean or how they are used. No guidance on required vs optional 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?
Description is 'GET /github.getGithubBranches' which is a tautology; it repeats the name and HTTP method without stating what the tool does. No distinction from sibling tools like bitbucket-getBitbucketBranches.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 provided on when to use this tool versus alternatives (e.g., github-getGithubRepositories). No context on prerequisites or use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
github-getGithubRepositoriesCRead-onlyIdempotent
GET /github.getGithubRepositories
| Name | Required | Description | Default |
|---|---|---|---|
| githubId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, covering safety and idempotency. The description adds no behavioral context beyond that. A 3 is appropriate as it does not contradict annotations but offers no extra value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely brief (just the HTTP endpoint) but lacks substance. It is under-specified rather than concise, failing to front-load useful information that aids tool selection or invocation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the single parameter, no output schema, and many sibling tools, the description is incomplete. It does not describe the return value (likely a list of repositories), pagination, or error handling, leaving an agent with insufficient context to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain the 'githubId' parameter (e.g., whether it's a username or numeric ID). The name hints at a GitHub identifier, but no further semantics are 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 is just 'GET /github.getGithubRepositories', which adds no clarity beyond the tool name. It does not state what the tool does (list repositories) or differentiate it from siblings like 'github-getGithubBranches' or 'bitbucket-getBitbucketRepositories'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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. Siblings include other repository listing tools (e.g., gitea-getGiteaRepositories) and related GitHub tools (e.g., github-getGithubBranches), but the description provides no selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
github-githubProvidersCRead-onlyIdempotent
GET /github.githubProviders
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint. The description adds no behavioral context beyond the annotations, such as what data is returned or any side effects. It is not contradictory.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short (one phrase) but underspecified. It lacks informative content; although concise, it does not earn its place by providing useful guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and sparse annotations, the description is incomplete. It does not explain the tool's purpose, return values, or how it fits into the broader set of sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema is empty (no parameters), and schema description coverage is 100%. The description does not add parameter information. With high coverage, baseline is 3, and no additional value is 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?
Description states 'GET /github.githubProviders' which implies a read operation on GitHub providers, but does not explain what a GitHub provider is or what the tool returns. It is not a tautology because it specifies the HTTP method and resource, but it is vague and lacks clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus siblings like github-getGithubBranches or github-getGithubRepositories. The description provides no context about the tool's purpose or selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
github-oneDRead-onlyIdempotent
GET /github.one
| Name | Required | Description | Default |
|---|---|---|---|
| githubId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, indicating a safe read operation. The description adds no behavioral context beyond the REST path, failing to confirm or elaborate on these hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short (5 characters plus spaces), but it is under-specification rather than conciseness. It fails to earn its place by providing any useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Without an output schema or parameter descriptions, the description is completely inadequate for an agent to understand what the tool returns or how to invoke it correctly, especially given the complexity of sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter 'githubId' lacks any description in the schema (0% coverage). The description does not explain its purpose, format, or how it relates to the tool's function, leaving the agent with no semantic 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?
Description 'GET /github.one' is essentially a tautology of the tool name, providing no indication of what the tool actually retrieves (e.g., a GitHub provider, a token, etc.). It does not specify a verb+resource combination that distinguishes it 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?
No guidance on when to use this tool versus alternatives like github-githubProviders or github-getGithubBranches. The description does not mention context, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
github-testConnectionDIdempotent
POST /github.testConnection
| Name | Required | Description | Default |
|---|---|---|---|
| githubId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral information beyond annotations. Annotations indicate idempotentHint and openWorldHint, but the tool likely makes a network call to test connectivity, which is not disclosed. The description fails to clarify 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 short, but it is underspecified rather than concisely informative. Every sentence should add value; here, the single sentence provides no useful information beyond the endpoint.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of output schema and low schema coverage, the description should compensate with details about return values and usage, but it provides none. The tool is completely underspecified.
Complex tools with many parameters or behaviors need more documentation. 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 parameter 'githubId' has no description in the schema or description. Schema coverage is 0%, so the description should explain what the parameter represents (e.g., GitHub user ID, repository ID), 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 is merely an HTTP method and endpoint, not a statement of purpose. It does not use a specific verb and resource to clarify that it tests a GitHub connection. The title from annotations provides some context, but the description itself is opaque.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 bitbucket-testConnection or gitea-testConnection. The description provides no context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
github-updateDIdempotent
POST /github.update
| Name | Required | Description | Default |
|---|---|---|---|
| githubId | Yes | ||
| name | Yes | ||
| gitProviderId | Yes | ||
| githubAppName | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate idempotentHint=true and openWorldHint=true, but the description adds no behavioral context. It does not disclose what effects the update has, what permissions are needed, or any side effects. While annotations mitigate some burden, the description provides zero additional value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely brief (one short phrase), but it sacrifices informativeness for brevity. True conciseness requires delivering essential information efficiently; here, the lack of content makes it under-specified rather than concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (four required parameters, no output schema, no parameter descriptions), the description is entirely insufficient. It fails to provide any operational context that would enable correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not clarify any of the four required parameters (githubId, name, gitProviderId, githubAppName). The agent has no insight into what these fields represent or how to fill them, making the tool effectively unusable without external knowledge.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'POST /github.update' is a tautology, simply restating the endpoint without indicating what the tool does. The annotation title 'Github Update' is slightly better but still vague, lacking a specific verb-resource pairing or any detail about what is being updated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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. With many sibling update tools (e.g., application-update, gitlab-update), the description offers no differentiation or context for appropriate use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gitlab-createD
POST /gitlab.create
| Name | Required | Description | Default |
|---|---|---|---|
| applicationId | No | ||
| secret | No | ||
| groupName | No | ||
| gitProviderId | No | ||
| redirectUri | No | ||
| authId | Yes | ||
| name | Yes | ||
| gitlabUrl | Yes | ||
| gitlabInternalUrl | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description does not disclose any behavioral traits beyond what annotations provide. Annotations only have openWorldHint, so description should explain side effects or requirements but fails to do so.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise but at the cost of informativeness. Under-specification is not beneficial.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 (9 parameters, no output schema), the description is woefully incomplete, providing no context about what is created or what the tool returns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, yet the description does not add any meaning to the nine parameters. Parameters remain completely opaque.
Input schemas describe structure but not intent. Descriptions should explain 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 is 'POST /gitlab.create' which is vague and provides no specific verb or resource. It does not distinguish from sibling tools like gitlab-update or gitlab-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?
No guidance on when to use this tool versus alternatives. The description offers no context for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gitlab-getGitlabBranchesDRead-onlyIdempotent
GET /gitlab.getGitlabBranches
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | ||
| owner | Yes | ||
| repo | Yes | ||
| gitlabId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral information beyond what annotations already provide (readOnlyHint, idempotentHint). It does not mention authentication requirements, parameter dependencies, or response details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While extremely short, the description is under-specified rather than concise. It fails to convey essential information, making it unhelpful despite its 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?
Given the tool has 4 parameters (2 required), no output schema, and many siblings, the description is critically incomplete. It does not explain return values, parameter roles, or how to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, yet the description provides no explanation of the four parameters (id, owner, repo, gitlabId). The agent must infer their meaning solely from names and 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 is a tautology: 'GET /gitlab.getGitlabBranches' merely repeats the tool name and HTTP method. It does not state what the tool does, such as retrieving branches for a GitLab repository.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 sibling tools like 'github-getGithubBranches' or 'bitbucket-getBitbucketBranches'. The description lacks context for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gitlab-getGitlabRepositoriesDRead-onlyIdempotent
GET /gitlab.getGitlabRepositories
| Name | Required | Description | Default |
|---|---|---|---|
| gitlabId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (readOnlyHint, idempotentHint, openWorldHint) already indicate safe read-only behavior. The description adds no additional behavioral context, such as what the response contains or any side effects. It is redundant and does not enhance 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 extremely short but vacuous. It is under-specified and does not earn its place. A concise description should still convey 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?
With 1 parameter, no output schema, and good annotations, the description is still completely inadequate. It fails to explain what the tool returns or how to use it. The agent cannot infer the tool's purpose from this description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for the single parameter 'gitlabId'. The description does not explain its meaning or format. With zero coverage, the description must compensate but fails to do so.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is 'GET /gitlab.getGitlabRepositories', which is a tautology of the tool name and HTTP method. It does not state what the tool does (e.g., list GitLab repositories). A clear purpose would include a verb and 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 such as gitlab-getGitlabBranches, github-getGithubRepositories, or other provider tools. The description fails to differentiate its usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gitlab-gitlabProvidersCRead-onlyIdempotent
GET /gitlab.gitlabProviders
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint, idempotentHint, and openWorldHint, which cover the basic behavioral traits. However, the description adds no further context (e.g., what data is returned or if any side effects exist). With annotations present, the description fails to enhance 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 extremely short (one line), but it is not concise in a meaningful way—it only repeats the endpoint. Under-specification reduces usefulness; it should provide at least one sentence explaining 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?
No output schema is provided, and the description does not explain what the tool returns. For a tool named 'gitlab-gitlabProviders', expected return values (e.g., a list of providers) are not mentioned. The description is incomplete 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?
There are no parameters, and schema coverage is 100%. No additional parameter information is needed, so the description's lack of param details is acceptable. The baseline for 0 parameters is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is merely the API endpoint 'GET /gitlab.gitlabProviders', which does not explain the tool's purpose. The title 'Gitlab GitlabProviders' is vague, and it does not distinguish this tool from siblings like 'gitlab-create' or 'gitlab-one'. It likely lists GitLab providers but fails to state this clearly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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. Sibling tools include many GitLab-related operations, but the description gives no context for selection or exclusion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gitlab-oneDRead-onlyIdempotent
GET /gitlab.one
| Name | Required | Description | Default |
|---|---|---|---|
| gitlabId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, idempotentHint=true, and openWorldHint=true. The description adds no behavioral details beyond what annotations provide. It does not disclose error handling, return format, or authentication requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short but fails to convey necessary information. Conciseness should not come at the expense of clarity; missing essential details makes it under-specified.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 single-resource retrieval with no output schema and 0% parameter coverage, the description is severely incomplete. It does not specify what is returned or how it differs from sibling tools like gitlab-one vs gitlab-getGitlabRepositories.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has one required parameter 'gitlabId' with 0% description coverage. The description does not explain what gitlabId refers to (e.g., project ID, URL, etc.). No additional context is 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 is just the HTTP method and path 'GET /gitlab.one'. While it hints at retrieving a single Gitlab resource, it does not state the verb+resource explicitly. The name 'gitlab-one' suggests retrieval but the description lacks clarity on what entity is fetched.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 vs siblings like gitlab-create, gitlab-update, or gitlab-getGitlabRepositories. The description provides no context on prerequisites or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gitlab-testConnectionDIdempotent
POST /gitlab.testConnection
| Name | Required | Description | Default |
|---|---|---|---|
| gitlabId | Yes | ||
| groupName | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide idempotentHint and openWorldHint, but the description adds no behavioral context (e.g., what 'testing' involves, side effects, or return format). It neither complements nor contradicts annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is overly terse, providing no informative content. It is under-specified rather than concise, failing to earn its place with useful details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is completely inadequate for a tool with 2 parameters and no output schema. It omits essential details about what the tool does, what it returns, and how to interpret results, leaving the agent with no meaningful guidance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description must compensate but does not. It fails to explain the meaning of 'gitlabId' and 'groupName', leaving the agent to infer from parameter names alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'POST /gitlab.testConnection' is a tautology, merely restating the tool name and HTTP method. It does not clarify that the tool tests a GitLab connection or distinguish it from similar testConnection tools for other providers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 gitlab-create or other testConnection tools. The description lacks any context about prerequisites or appropriate scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gitlab-updateDIdempotent
POST /gitlab.update
| Name | Required | Description | Default |
|---|---|---|---|
| applicationId | No | ||
| secret | No | ||
| groupName | No | ||
| redirectUri | No | ||
| name | Yes | ||
| gitlabId | Yes | ||
| gitlabUrl | Yes | ||
| gitProviderId | Yes | ||
| gitlabInternalUrl | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide idempotentHint=true and openWorldHint=true, but the description adds no behavioral context beyond that. It does not disclose side effects, required permissions, or response characteristics. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short (one phrase), but it is under-specified and unhelpful. Conciseness should serve clarity, not replace it. This is not concise; it is incomplete.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 (9 parameters, no output schema, no parameter descriptions), the description is completely inadequate. It fails to explain the tool's purpose, parameters, or behavior, making it nearly impossible for an AI to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning no parameter descriptions in schema. The tool description does not mention any parameters or their meaning. With 9 parameters (4 required), this is a severe omission.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is just the HTTP endpoint path 'POST /gitlab.update', which is a tautology of the tool name. It does not convey what the tool does. The title 'Gitlab Update' is vague and does not specify the action (e.g., update a GitLab integration? update a resource?). Siblings like gitlab-create and gitlab-one exist but no differentiation is provided.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. No context about prerequisites, when to call update vs create or other gitlab tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gitProvider-allForPermissionsDRead-onlyIdempotent
GET /gitProvider.allForPermissions
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint, idempotentHint, and openWorldHint, which indicate safety and idempotency. However, the description adds no behavioral context beyond the path, such as what data is retrieved, any filtering criteria, or permission requirements. It contributes minimal value over the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short (one phrase), which could be considered concise, but it lacks meaningful content. It does not earn its place because it provides no useful information beyond the tool name. Under-specification outweighs 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?
Given no parameters and no output schema, the description should clarify the tool's purpose and what it returns. It fails to do so. The tool name suggests it relates to permissions, but the description offers no explanation, leaving the agent without sufficient context to decide when to invoke this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters, and schema description coverage is 100% (trivially). With no parameters, the baseline score is 3, as the description does not need to add param info. The description does not hinder 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 is just the HTTP method and endpoint path ('GET /gitProvider.allForPermissions'), which is a tautology of the tool name. It does not state what the tool does or what resource it returns, leaving the purpose unclear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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. There are sibling tools like 'gitProvider-getAll' that likely list all git providers, but this tool's specific use case (permissions-related) is not explained, nor are any exclusions or prerequisites mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gitProvider-getAllDRead-onlyIdempotent
GET /gitProvider.getAll
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, idempotentHint=true, and openWorldHint=true. The description adds no behavioral context beyond these. It does not disclose what data is returned or any side effects, failing to build on the annotation foundation.
Agents need to know what a tool does to the world before calling 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 (5 words), but it sacrifices clarity and usefulness. Every sentence should earn its place; this single phrase does not provide enough value for an AI agent to understand the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters and no output schema, the description still fails to explain the core function (e.g., 'List all git providers'). The annotations provide some safety cues, but the purpose is insufficiently 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?
There are zero parameters and schema coverage is 100%. The description does not add parameter info, but the baseline for 0 parameters is 4. No further clarification is needed, though a brief note on expected input (none) would be helpful.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 /gitProvider.getAll' is a tautology that merely restates the tool name and HTTP method. It does not explain what the tool does in natural language, leaving an AI agent without a clear understanding of its purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus the many sibling tools (e.g., gitProvider-allForPermissions, gitProvider-remove). There are no usage context, prerequisites, or alternative recommendations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gitProvider-removeDDestructive
POST /gitProvider.remove
| Name | Required | Description | Default |
|---|---|---|---|
| gitProviderId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations include destructiveHint: true, but the description adds no behavioral context beyond that. It does not explain what gets destroyed or any side effects. With annotations present, the description still fails to provide useful insight.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short, but it is not concise in a helpful way; it is merely a placeholder that omits essential information. True conciseness conveys meaning efficiently, which is lacking here.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 destructive with one required parameter and no output schema, the description is completely inadequate. It should at minimum state the purpose and parameter role.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the description offers no parameter information. The single required parameter, gitProviderId, is not explained—what it is or how to obtain it is absent.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'POST /gitProvider.remove', which is a tautology that restates the HTTP method and endpoint without any indication of the tool's function. It fails to specify that the tool removes a git provider configuration.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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. Among sibling tools, there are other gitProvider operations (e.g., gitProvider-getAll, gitProvider-toggleShare), but the description offers no context for selecting this one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
libsql-changeStatusDIdempotent
POST /libsql.changeStatus
| Name | Required | Description | Default |
|---|---|---|---|
| libsqlId | Yes | ||
| applicationStatus | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations include idempotentHint and openWorldHint, but the description adds nothing beyond them. No mention of side effects, required permissions, or behavior. The bar is partially met by annotations, but the description does not add value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While extremely short, the description is not concise in a useful way; it is under-specified and omits essential information, making it a poor example of conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With two required parameters and an enum, the tool needs explanation of what changing status does, possible statuses, and any side effects. The description provides none of this, leaving the agent completely uninformed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, and the description provides no explanation for the two required parameters (libsqlId, applicationStatus) or the allowed enum values. The description fails to add any semantic meaning beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'POST /libsql.changeStatus' merely restates the HTTP method and endpoint path, providing no meaningful semantics about what the tool does beyond what the name implies. It is 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?
No guidance is provided on when to use this tool versus alternatives like libsql-create, libsql-deploy, libsql-start, libsql-stop. The description lacks any usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
libsql-createD
POST /libsql.create
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| appName | Yes | ||
| dockerImage | No | ghcr.io/tursodatabase/libsql-server:v0.24.32 | |
| environmentId | Yes | ||
| description | Yes | ||
| databaseUser | Yes | ||
| databasePassword | Yes | ||
| sqldNode | Yes | ||
| sqldPrimaryUrl | Yes | ||
| enableNamespaces | No | ||
| serverId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does not disclose any behavioral traits (e.g., side effects, permissions, destructive actions). Annotations only include 'openWorldHint: true', which the description does not clarify or contradict.
Agents need to know what a tool does to the world before calling 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 this is under-specification, not conciseness. It fails to provide essential information, making it useless for an agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 (11 parameters, 9 required, no output schema), the description is completely inadequate. It lacks any explanation of what is being created or the expected outcome.
Complex tools with many parameters or behaviors need more documentation. 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 11 parameters with 0% description coverage, and the description adds no meaning to any parameter. The agent must rely solely on property names, types, and 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 'POST /libsql.create' is essentially a tautology of the tool name 'libsql-create'. It does not state what the tool does or what resource it creates, leaving the agent to infer from the name alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus its siblings (e.g., libsql-deploy, libsql-update). The description lacks any context about prerequisites or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
libsql-deployDIdempotent
POST /libsql.deploy
| Name | Required | Description | Default |
|---|---|---|---|
| libsqlId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate idempotentHint=true and openWorldHint=true, but the description does not add any behavioral context beyond these. There is no explanation of side effects, permissions, or failure modes, leaving the agent with limited information about 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 extremely short but under-specified. It fails to convey necessary information, making it an example of under-specification rather than efficient conciseness. A good description should be both compact and 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 the single parameter, absence of output schema, and low schema coverage, the description should provide comprehensive context. Instead, it offers almost nothing, leaving the agent unable to understand the tool's purpose, input, or outcome.
Complex tools with many parameters or behaviors need more documentation. 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 required parameter 'libsqlId' has no description in the schema (0% coverage), and the tool description does not clarify what this ID represents or how it should be obtained. This is a critical gap for an agent to invoke the tool correctly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'POST /libsql.deploy', which is a tautology of the tool name and endpoint. It does not state what the tool does (e.g., deploy a libsql database or service) nor distinguish it from sibling tools like libsql-create or libsql-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?
There is no guidance on when to use this tool versus alternatives. The description is too minimal to provide any context for selection, such as prerequisites or scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
libsql-moveDIdempotent
POST /libsql.move
| Name | Required | Description | Default |
|---|---|---|---|
| libsqlId | Yes | ||
| targetEnvironmentId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral context beyond the annotations (idempotentHint, openWorldHint). It does not disclose any side effects, permissions required, or changes to the resource. With such a minimal description, the agent has no insight into the operation'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 extremely short, but this is not commendable conciseness. It is under-specified, providing no useful information. The single sentence is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and minimal schema coverage, the description is completely inadequate. An agent cannot determine the purpose, behavior, or parameters of this tool 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 input schema has two required parameters (libsqlId, targetEnvironmentId) but the description provides no explanation of their semantics. Schema description coverage is 0%, so the description adds no value over the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is just 'POST /libsql.move', which only states the HTTP method and path. It does not explain what moving a libsql resource entails, making it completely uninformative about the tool's purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like libsql-create or libsql-deploy. The description lacks any context about prerequisites or appropriate scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
libsql-oneDRead-onlyIdempotent
GET /libsql.one
| Name | Required | Description | Default |
|---|---|---|---|
| libsqlId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the agent knows it's safe and idempotent. However, the description adds no behavioral context beyond the URL, failing to describe any side effects or limitations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely short but not effectively concise; it omits essential information. Under-specification rather than efficient communication.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 retrieval tool, the description lacks completeness: no output schema, no parameter semantics, and no behavioral context. Annotations partially compensate but the description itself is insufficient.
Complex tools with many parameters or behaviors need more documentation. 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 one parameter (libsqlId) with no description in schema (0% coverage) and the description does not mention the parameter at all. The agent receives no explanation of what libsqlId represents or how to provide it correctly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 /libsql.one' hints at an API endpoint but does not explicitly state what the tool does. It vaguely indicates a retrieval operation, but without specifying that it fetches a single libsql resource by ID, leaving purpose unclear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus siblings like libsql-create, libsql-remove, etc. The description provides no context for selection or exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
libsql-readLogsDRead-onlyIdempotent
GET /libsql.readLogs
| Name | Required | Description | Default |
|---|---|---|---|
| libsqlId | Yes | ||
| tail | No | ||
| since | No | all | |
| search | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, but the description adds no additional behavioral context (e.g., what logs contain, pagination, or response format). It does not contradict annotations, but it fails to enhance understanding beyond structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While extremely concise, the description sacrifices substance for brevity. It is essentially a tautology of the tool name, failing to earn its single sentence with useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and minimal description, the tool definition is highly incomplete. There is no mention of what the returned logs contain, their format, or how they relate to the libsql service, making it difficult for an agent to correctly invoke 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?
Schema coverage is 0% with no parameter descriptions. The tool description does not compensate at all, providing no explanation for parameters like tail, since, or search. The agent receives no semantic context beyond raw schema 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 merely repeats the tool name with an HTTP method ('GET /libsql.readLogs'), providing no specific verb or resource details beyond what the name implies. It fails to clarify what logs are being read or how this differs from similar sibling tools like mariadb-readLogs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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. Many sibling readLogs tools exist for different databases, and the description offers no context to distinguish libsql-readLogs from them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
libsql-rebuildDIdempotent
POST /libsql.rebuild
| Name | Required | Description | Default |
|---|---|---|---|
| libsqlId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide idempotentHint=true and openWorldHint=true, but the description adds no behavioral details. It doesn't explain what 'rebuild' does (e.g., whether it destroys data, recreates the database, etc.). The description fails to add value beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short, but this is due to under-specification rather than concise clarity. It lacks substantive information to help the agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has one parameter and no output schema, the description is completely inadequate. It does not explain the tool's purpose, behavior, or parameter semantics, leaving the agent without necessary information.
Complex tools with many parameters or behaviors need more documentation. 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 one required parameter 'libsqlId' of type string, but the description does not explain its meaning or role. With 0% schema description coverage, the description should compensate but 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 is just 'POST /libsql.rebuild', which does not state the tool's purpose. It does not indicate that it rebuilds a libsql database or any other operation. The sibling tools suggest a rebuild pattern, but the description itself is missing and 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?
No guidance on when to use this tool versus alternatives like libsql-create, libsql-reload, or libsql-update. The description lacks any context for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
libsql-reloadDIdempotent
POST /libsql.reload
| Name | Required | Description | Default |
|---|---|---|---|
| libsqlId | Yes | ||
| appName | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate idempotent and open world hints, but the description adds no behavioral context (e.g., what state changes occur, whether connections are reset, or if configuration is applied).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is under-specified—single line lacks substance. Conciseness should not sacrifice meaning; here it provides nearly no useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Without output schema or parameter descriptions, the definition is incomplete for a potentially complex operation like database reloading. Sibling tools with similar naming patterns (e.g., mariadb-reload) suggest a consistent action, but no details confirm this.
Complex tools with many parameters or behaviors need more documentation. 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 has two required parameters (libsqlId, appName) with zero description coverage. The description does not explain their purpose or format, leaving the agent to infer.
Input schemas describe structure but not intent. Descriptions should explain 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 only says 'POST /libsql.reload', which is vague. It does not specify what reloading means for a libsql database, nor does it differentiate from sibling tools like libsql-rebuild or libsql-restart.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 (e.g., libsql-rebuild, libsql-start, or other database reload tools). The description provides no context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
libsql-removeDDestructive
POST /libsql.remove
| Name | Required | Description | Default |
|---|---|---|---|
| libsqlId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already indicate destructiveHint=true and openWorldHint=true. The description adds no behavioral context beyond what annotations provide; it does not explain side effects, return values, or error behaviors.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While the description is extremely short, it is under-specified. Conciseness should not sacrifice necessary information; here it fails to communicate the tool's purpose or usage, making it insufficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 one parameter and no output schema, the description is completely inadequate. It omits essential details such as what the tool does, how to use the parameter, and what the outcome is.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has one required parameter 'libsqlId' with no description in the schema (0% coverage). The tool description does not mention or explain the parameter, leaving the agent with no semantic understanding of what to pass.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'POST /libsql.remove' merely restates the HTTP method and endpoint, which is essentially a tautology of the tool name. It does not explicitly state that the tool removes a libsql resource, leaving 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 are no usage guidelines. The description provides no context about when to use this tool versus alternatives like libsql-deploy or libsql-update, nor does it mention any prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
libsql-saveEnvironmentDIdempotent
POST /libsql.saveEnvironment
| Name | Required | Description | Default |
|---|---|---|---|
| libsqlId | Yes | ||
| env | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide idempotentHint=true and openWorldHint=true, but the description fails to add any behavioral context beyond the HTTP method. It does not disclose side effects, required permissions, or what the save operation entails, leaving 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 extremely short (3 words), but this is under-specification rather than conciseness. It fails to provide essential information that a single sentence could cover, thus not earning its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (two required parameters, no output schema, and many sibling tools), the description is completely inadequate. It omits return values, side effects, and any context about when to invoke this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema coverage and no parameter descriptions in the schema, the description must compensate but does not. It does not explain what libsqlId (likely a database identifier) or env (likely environment variables) represent, making the parameters opaque.
Input schemas describe structure but not intent. Descriptions should explain 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 'POST /libsql.saveEnvironment' is minimal and essentially restates the HTTP method and endpoint path. It does not clarify what 'saveEnvironment' means (e.g., saving environment variables, configuration, or state), and fails to distinguish from sibling tools like libsql-update or libsql-deploy.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 provided on when to use this tool versus alternatives such as libsql-start, libsql-update, or other database saveEnvironment tools like mariadb-saveEnvironment. The description lacks any contextual usage hints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
libsql-saveExternalPortsDIdempotent
POST /libsql.saveExternalPorts
| Name | Required | Description | Default |
|---|---|---|---|
| libsqlId | Yes | ||
| externalPort | No | ||
| externalGRPCPort | No | ||
| externalAdminPort | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate idempotent and open world hints, but the description adds no behavioral insights (e.g., side effects of null values, whether it creates/updates, or authorization needs). The description fails to build on existing annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While extremely short, the description is underspecified rather than concise. It omits all necessary detail, failing to earn its place with useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has four parameters, no output schema, and no parameter descriptions, the lack of any contextual explanation renders the description completely inadequate for an AI agent 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% parameter description coverage, and the tool description does not clarify the meaning of externalPort, externalGRPCPort, externalAdminPort, or their relationship. The agent receives no semantic context beyond parameter names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description "POST /libsql.saveExternalPorts" is a tautology that merely restates the tool name in a different form. It does not specify the verb, resource, or any distinguishing purpose from sibling tools like libsql-update or libsql-saveEnvironment.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 lacks any context for usage, prerequisites, or exclusion scenarios, leaving the agent without decision support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
libsql-startDIdempotent
POST /libsql.start
| Name | Required | Description | Default |
|---|---|---|---|
| libsqlId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate idempotentHint=true and openWorldHint=true, but the description adds no behavioral details beyond the endpoint. It does not contradict annotations but also does not supplement them with any new 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?
While extremely concise, the description is under-specified. It fails to earn its place by providing essential context, being too brief to be 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?
Given the tool's complexity (single parameter, no output schema), the description should at least clarify the purpose and expected outcome. It is completely inadequate for an agent to understand when to invoke it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has one required parameter (libsqlId) with no description (0% coverage). The description does not mention the parameter at all, so it adds no meaning beyond the schema definition.
Input schemas describe structure but not intent. Descriptions should explain 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 only gives HTTP method and endpoint 'POST /libsql.start', which vaguely hints at starting a libsql service but does not explicitly state the action or resource. The name 'libsql-start' is slightly more informative but the description adds no clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus sibling tools like libsql-stop, libsql-changeStatus, or libsql-deploy. The description gives no context for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
libsql-stopDIdempotent
POST /libsql.stop
| Name | Required | Description | Default |
|---|---|---|---|
| libsqlId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide idempotentHint and openWorldHint, but the description adds no behavioral context. It fails to explain what stopping entails, such as impact on data, required permissions, or state changes.
Agents need to know what a tool does to the world before calling 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 at the expense of completeness. It is under-specified, providing no actionable information beyond the HTTP method and path.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a stop operation with one parameter and no output schema, the description is completely inadequate. It does not clarify the effect, reversibility, or any side effects, leaving the agent without needed context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain the required 'libsqlId' parameter. With low coverage, the description must compensate but does not, leaving the agent without semantic 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 is only 'POST /libsql.stop', which restates the tool name without explaining its function. It does not specify that it stops a libsql database or differentiate from sibling tools like libsql-start or libsql-remove.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 context about prerequisites, conditions, 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.
libsql-updateDIdempotent
POST /libsql.update
| Name | Required | Description | Default |
|---|---|---|---|
| libsqlId | Yes | ||
| name | No | ||
| appName | No | ||
| description | No | ||
| databaseUser | No | ||
| databasePassword | No | ||
| sqldNode | No | ||
| sqldPrimaryUrl | No | ||
| enableNamespaces | No | ||
| dockerImage | No | ghcr.io/tursodatabase/libsql-server:v0.24.32 | |
| command | No | ||
| env | No | ||
| memoryReservation | No | ||
| memoryLimit | No | ||
| cpuReservation | No | ||
| cpuLimit | No | ||
| externalPort | No | ||
| externalGRPCPort | No | ||
| externalAdminPort | No | ||
| applicationStatus | No | ||
| healthCheckSwarm | No | ||
| restartPolicySwarm | No | ||
| placementSwarm | No | ||
| updateConfigSwarm | No | ||
| rollbackConfigSwarm | No | ||
| modeSwarm | No | ||
| labelsSwarm | No | ||
| networkSwarm | No | ||
| stopGracePeriodSwarm | No | ||
| endpointSpecSwarm | No | ||
| replicas | No | ||
| createdAt | No | ||
| environmentId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate idempotentHint=true and openWorldHint=true, but the description adds no behavioral context (e.g., whether it fully replaces or partially updates, required permissions, or side effects). With annotations, the bar is lower, but the description fails to provide any additional insight.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short (3 words) but is underspecified rather than concise. It lacks structure and does not earn its place by providing useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 33 parameters, no output schema, and no description, the tool definition is severely incomplete. The agent cannot determine how to 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?
Schema coverage is 0%, and the description provides no information about any of the 33 parameters. The agent has no guidance on what each parameter means or how to use them correctly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is just 'POST /libsql.update', which is a tautology of the name. It does not specify what the tool does, what resource it updates, or how it differs from sibling tools like libsql-create or libsql-remove.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 guidelines are provided. There is no indication of when to use this tool versus alternatives, such as libsql-create for creation or libsql-one for retrieval.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
licenseKey-activateDIdempotent
POST /licenseKey.activate
| Name | Required | Description | Default |
|---|---|---|---|
| licenseKey | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare idempotentHint=true and openWorldHint=true, but the description adds no behavioral context. It does not disclose side effects, error conditions, or the effect of repeated activation. Minimal value beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short but under-speci?ed. Conciseness should not sacrifice clarity; here it provides no substantive information, making it ineffective.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 license activation operation and the lack of an output schema, the description should explain expected outcomes or behaviors. It fails entirely to complete the tool's specification.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description fails to explain the 'licenseKey' parameter. Neither the schema nor the description clarify what a license key is, its format, or its purpose, leaving the agent without essential semantic information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'POST /licenseKey.activate' is a tautology that merely restates the HTTP method and endpoint. It does not explain what activating a license key means or how it differs from sibling tools like licenseKey-deactivate or licenseKey-validate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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. There is no mention of prerequisites, alternative tools, or context for activation vs deactivation or validation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
licenseKey-deactivateCIdempotent
POST /licenseKey.deactivate
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate idempotentHint=true, but the description does not elaborate on behavioral effects such as whether deactivation is reversible or what state changes occur. It adds no transparency beyond the name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short but does not earn its place; it offers no useful information. It is under-specified rather than concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and zero parameters, the description should at least clarify purpose and effect. It fails to provide any meaningful context, leaving the agent without sufficient information.
Complex tools with many parameters or behaviors need more documentation. 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%. The description adds no parameter information, but none is needed. 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 is merely the HTTP endpoint 'POST /licenseKey.deactivate', which adds no explanatory value beyond the tool's name. It does not state the action verb or resource clearly, making it vague.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool or how it relates to siblings like licenseKey-activate. There is no mention of prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
licenseKey-getEnterpriseSettingsCRead-onlyIdempotent
GET /licenseKey.getEnterpriseSettings
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, indicating safe, idempotent reads. The description adds no extra behavioral context (e.g., what data is returned, any prerequisites). Bar is lowered due to annotations, but description adds negligible value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (one line). It is not wasteful but could be slightly more informative without adding bulk, e.g., 'Retrieves enterprise license settings.'
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 a vague name, the description lacks context about the response content or the purpose of enterprise settings. Siblings suggest this is part of license key management, but the description fails to clarify 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?
There are no parameters (schema coverage 100%), so the description does not need to explain parameters. It is adequate for a zero-parameter tool, though it could mention the output format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is merely an HTTP method and endpoint path ('GET /licenseKey.getEnterpriseSettings'), which is a tautology that restates the tool name. It does not explain what enterprise settings are or what the tool does beyond the implied retrieval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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. Sibling tools include 'licenseKey-activate', 'licenseKey-updateEnterpriseSettings', etc., but no context is given for selecting this one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
licenseKey-haveValidLicenseKeyDRead-onlyIdempotent
GET /licenseKey.haveValidLicenseKey
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does not disclose any behavioral traits beyond the annotations (readOnlyHint, idempotentHint, openWorldHint). It adds no context about what happens when called, rate limits, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short but not appropriately concise because it omits essential information. Every sentence should earn its place; this single sentence provides no useful guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, no parameters, and many sibling tools, the description is completely inadequate. It fails to explain the tool's purpose, making it unusable for selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so the schema provides no meaning. The description should add meaning about what the tool does, but it only provides the route, thus failing to add 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 is merely the HTTP method and route 'GET /licenseKey.haveValidLicenseKey', which is a tautology of the tool name. It does not state what the tool does, such as checking if a license key is valid.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 licenseKey-validate or licenseKey-activate. The description offers no context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
licenseKey-updateEnterpriseSettingsDIdempotent
POST /licenseKey.updateEnterpriseSettings
| Name | Required | Description | Default |
|---|---|---|---|
| enableEnterpriseFeatures | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide idempotentHint: true and openWorldHint: true, but the description adds no behavioral context beyond these. It does not disclose side effects, prerequisites (e.g., need for a valid enterprise license), or the implications of the openWorldHint. Since annotations are present, the description's omission is a missed opportunity, resulting in a score of 2.
Agents need to know what a tool does to the world before calling 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 (one line) but this brevity does not constitute conciseness because it lacks essential information. It adds no value beyond the tool name and is an under-specification rather than an efficient summary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 only one parameter but no output schema and minimal annotations, the description is grossly incomplete. It fails to mention prerequisites (e.g., a valid license key), the effect of setting enableEnterpriseFeatures to true/false, or how to interpret the lack of output. The sibling 'getEnterpriseSettings' suggests a complement but is not referenced.
Complex tools with many parameters or behaviors need more documentation. 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 'enableEnterpriseFeatures' has no description in either the schema (0% coverage) or the tool description. The parameter's purpose is only vaguely implied by its name, and no explicit semantic meaning is provided. This leaves the agent without guidance on what values to use.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'POST /licenseKey.updateEnterpriseSettings' merely restates the tool name and HTTP method, adding no explanatory value. It fails to specify that this tool updates enterprise settings for the license key, such as enabling or disabling enterprise features. This is a tautology of the name, earning a score of 2.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 context is provided. The description does not indicate when to use this tool (e.g., to enable enterprise features) nor when to avoid it or use alternatives like 'licenseKey-getEnterpriseSettings'. The sibling list exists but the description itself offers no guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
licenseKey-validateDIdempotent
POST /licenseKey.validate
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral insight beyond the annotations (idempotentHint, openWorldHint). It does not disclose what happens during validation, error conditions, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While brief, the description fails to earn its place by providing any useful information. It is essentially a restatement of the endpoint, missing necessary 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?
With no parameters, no output schema, and a single-line description that adds no value, the description is completely inadequate for an agent to understand when and how to invoke this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so the schema coverage is 100% by default. The description need not add parameter details. Baseline is 4 for zero-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 is merely the HTTP method and endpoint ('POST /licenseKey.validate'), which is a tautology of the tool name. It does not state what the tool does or how it differs from siblings like licenseKey-activate or licenseKey-haveValidLicenseKey.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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. Siblings exist for license key activation, deactivation, and checking validity, but the description gives no context for choosing validate over them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mariadb-changePasswordDIdempotent
POST /mariadb.changePassword
| Name | Required | Description | Default |
|---|---|---|---|
| mariadbId | Yes | ||
| password | Yes | ||
| type | No | user |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate idempotentHint and openWorldHint, but the description adds no behavioral context (e.g., impact on connections, required current password, or side effects). It fails to go beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely short but meaningless; it is under-specification rather than efficient communication. A useful description would add context without being 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 security-sensitive password change tool, the description lacks essential information: return values, prerequisites, side effects, or error handling. It is completely inadequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain the parameters (mariadbId, password, type) or their roles. The schema's pattern and enum constraints remain 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 is 'POST /mariadb.changePassword', which is a tautology—it only restates the name and HTTP method without specifying the tool's purpose (changing a MariaDB password).
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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. With multiple sibling tools like 'mongo-changePassword', 'mysql-changePassword', etc., the description should differentiate when to use this tool, but it doesn't.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mariadb-changeStatusDIdempotent
POST /mariadb.changeStatus
| Name | Required | Description | Default |
|---|---|---|---|
| mariadbId | Yes | ||
| applicationStatus | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral information beyond what annotations (idempotentHint, openWorldHint) already provide. It does not disclose side effects, required permissions, or what the operation does internally. Given the annotations, the description adds minimal value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (one line), but it is under-specified, omitting critical information. Conciseness should be balanced with completeness; here, the brevity comes at the cost of utility.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 entirely incomplete for a tool that changes database status. It lacks explanation of the effect of each status, prerequisites, return values (no output schema), and error conditions. This is insufficient for an agent 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% description coverage, and the description provides no explanation for the two required parameters (mariadbId, applicationStatus). The enum values for applicationStatus are listed but not described, leaving an agent to guess their meaning and usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is merely 'POST /mariadb.changeStatus', which restates the tool name and HTTP method without explicitly stating the action. It implies changing status but lacks a clear verb-resource description, and does not distinguish from sibling tools like libsql-changeStatus.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 are multiple changeStatus tools for different databases; the description offers no context or prerequisites, making it difficult for an agent to select correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mariadb-createD
POST /mariadb.create
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| appName | No | ||
| dockerImage | No | mariadb:6 | |
| databaseRootPassword | No | ||
| environmentId | Yes | ||
| description | No | ||
| databaseName | Yes | ||
| databaseUser | Yes | ||
| databasePassword | Yes | ||
| serverId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does not disclose any behavioral traits such as side effects, required permissions, or constraints. Annotations only provide an open world hint, which is insufficient without additional context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise but lacks substance. It is effectively a single token that adds no value, making it under-specified rather than efficiently concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (10 parameters, 5 required) and the lack of output schema or description, the description is completely incomplete. It fails to provide essential context for correct usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description must explain parameter meanings. However, it provides no information about the 10 parameters, leaving the agent to infer from names and schema constraints alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'POST /mariadb.create' is a tautology of the tool name and provides no information about what the tool actually does. It fails to state that it creates a MariaDB database instance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 postgres-create or mysql-create. There is no context on prerequisites 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.
mariadb-deployDIdempotent
POST /mariadb.deploy
| Name | Required | Description | Default |
|---|---|---|---|
| mariadbId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate idempotentHint: true and openWorldHint: true, but the description adds no behavioral context beyond the endpoint. No mention of side effects, authentication needs, or resource dependencies.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise but at the cost of any useful information. The single phrase is essentially a placeholder, not a meaningful description. Under-specification is 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?
Given the complexity of sibling tools, no output schema, and no parameter descriptions, the description is completely inadequate. It does not explain what deploying entails, return values, or how it relates to other operations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, and the description does not explain the required parameter 'mariadbId'. The descriptor 'POST /mariadb.deploy' adds no meaning about what the parameter represents or how it affects deployment.
Input schemas describe structure but not intent. Descriptions should explain 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 is 'POST /mariadb.deploy', which is a tautology that restates the name without specifying any action. It does not state what 'deploy' means in context of MariaDB, and fails to distinguish from siblings like 'mariadb-create' or 'mariadb-start'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 MariaDB tools (e.g., think about when to deploy vs create vs start). No prerequisites or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mariadb-moveDIdempotent
POST /mariadb.move
| Name | Required | Description | Default |
|---|---|---|---|
| mariadbId | Yes | ||
| targetEnvironmentId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide idempotentHint: true and openWorldHint: true, but the description adds no behavioral context beyond that. It does not explain what happens during the move (e.g., whether the original is deleted, if downtime occurs, or authorization requirements). No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely brief (6 words) but under-specifies the tool. It does not earn its place because it provides no useful information beyond the tool name and HTTP method. True conciseness would include essential details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and a move operation, the description should explain what 'move' entails, such as changing environments, impacts on availability, or prerequisites. The description is completely inadequate for an agent to use 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?
Schema coverage is 0% (no descriptions for mariadbId or targetEnvironmentId). The description does not add any meaning or constraints for the parameters. The parameter names are self-explanatory, but without additional context, the agent lacks guidance on valid values or requirements.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is just 'POST /mariadb.move', which is a tautology of the name. It does not state what the tool does, leaving the agent to infer from the name alone. No verb or resource explanation is given.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 vs alternatives like mariadb-create, mariadb-deploy, or other database move tools (compose-move, mongo-move). The name implies moving a MariaDB instance, but there is no explicit context or exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mariadb-oneDRead-onlyIdempotent
GET /mariadb.one
| Name | Required | Description | Default |
|---|---|---|---|
| mariadbId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does not disclose any behavioral traits beyond what annotations already provide. It fails to mention return value, side effects (none expected given readOnlyHint), or other 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 extremely short but under-specified; it does not convey necessary information. Conciseness is appropriate only when the content is sufficient, which is not the case here.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 the context (many sibling tools, no output schema), the description is completely inadequate. It provides no information about what the tool does or how it relates to similar 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?
With 0% schema description coverage, the description must compensate but does not. The 'mariadbId' parameter is not explained; the description adds no meaning beyond the schema 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 'GET /mariadb.one' is a tautology; it restates the name without explaining that it retrieves a single MariaDB instance. It provides no semantic meaning about 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 guidance is given on when to use this tool versus alternatives like mariadb-search, mariadb-getAll, or similar tools for other databases. The description lacks any contextual hints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mariadb-readLogsDRead-onlyIdempotent
GET /mariadb.readLogs
| Name | Required | Description | Default |
|---|---|---|---|
| mariadbId | Yes | ||
| tail | No | ||
| since | No | all | |
| search | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the safety profile is covered. However, the description adds no behavioral context such as log format, pagination, or size limits. It misses an opportunity to explain return values or performance 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 extremely short (one line), which is concise but at the cost of being uninformative. It does not explain the tool's purpose or usage, sacrificing substance 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?
Given the tool has 4 parameters with no schema descriptions, no output schema, and a complex domain (database logs), the description is wholly insufficient. It fails to provide any context about filtering, formatting, or how to 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?
Schema coverage is 0%, meaning no parameter descriptions are provided in the schema, and the description does not explain any parameter. The parameters (mariadbId, tail, since, search) have no documented meaning, making it hard for an agent to use correctly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 merely the HTTP method and path ('GET /mariadb.readLogs'), which essentially repeats the tool name without stating what the tool does. It does not clarify that it reads logs from a MariaDB instance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 sibling tools like mongo-readLogs or mysql-readLogs. There is no mention of context, alternatives, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mariadb-rebuildDIdempotent
POST /mariadb.rebuild
| Name | Required | Description | Default |
|---|---|---|---|
| mariadbId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description offers no behavioral insights beyond what annotations already convey. It does not disclose whether the operation is destructive, requires the instance to exist, or triggers side effects. Annotations provide idempotentHint and openWorldHint but the description adds nothing.
Agents need to know what a tool does to the world before calling 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 but at the cost of being uninformative. It is not effective conciseness; it is under-specification. A better description would add meaningful context in 1-2 sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 rebuild operation and the absence of an output schema, the description is wholly inadequate. It does not address what rebuilding entails, what happens to the database, or how the result is communicated.
Complex tools with many parameters or behaviors need more documentation. 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 does not explain the single required parameter 'mariadbId'. With 0% schema description coverage, the description must provide context but fails to do so. The parameter name is self-explanatory, but the description should confirm its role.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 merely the HTTP endpoint 'POST /mariadb.rebuild' and does not state what the tool does or what 'rebuild' entails. It fails to define a specific verb-resource action, and does not differentiate from sibling database rebuild 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?
No guidance is provided on when to use this tool versus alternatives like mariadb-create, mariadb-restore, or others. The description lacks any context about prerequisites, typical scenarios, or when rebuild is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mariadb-reloadDIdempotent
POST /mariadb.reload
| Name | Required | Description | Default |
|---|---|---|---|
| mariadbId | Yes | ||
| appName | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral information beyond the annotations (idempotentHint=true, openWorldHint=true). It does not describe side effects, authentication requirements, or any state changes. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely brief (one phrase), but it is under-specified rather than concise. It lacks any structure or 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 no output schema, no parameter explanations, and minimal behavioral context, the description is severely incomplete for an agent to correctly invoke this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain the meaning of 'mariadbId' or 'appName'. The description fails to compensate for the missing schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'POST /mariadb.reload' merely restates the tool name without explaining what 'reload' means (e.g., reload configuration, restart service). It fails to distinguish from sibling tools like mariadb-rebuild or mariadb-restart.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 mariadb-rebuild or mariadb-deploy. The description lacks any context for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mariadb-removeDDestructive
POST /mariadb.remove
| Name | Required | Description | Default |
|---|---|---|---|
| mariadbId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint: true, so the agent knows it's a destructive action. However, the description adds no further behavioral details (e.g., what data is lost, whether confirmation is required, or what happens to related resources). With annotations carrying some weight, the description fails to add value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is overly terse—just five words—and lacks essential structure. It is under-specified rather than concise, providing no useful information to the agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 destructive nature and single parameter, the description is woefully incomplete. It fails to mention return values, side effects, or any confirmation step, making it inadequate for an agent to use 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 0%, and the description does not explain the mariadbId parameter. The schema only defines it as a required string with minLength, but the description adds no semantic meaning or usage hints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'POST /mariadb.remove' is a tautology that merely repeats the tool name and HTTP method. It does not state what action the tool performs (e.g., delete a MariaDB database) or differentiate it from siblings like mariadb-stop or other removal 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?
No guidance is provided on when to use this tool versus alternatives such as mariadb-stop or similar database removal tools. The description lacks any context about appropriate use cases or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mariadb-saveEnvironmentDIdempotent
POST /mariadb.saveEnvironment
| Name | Required | Description | Default |
|---|---|---|---|
| mariadbId | Yes | ||
| env | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide idempotent and open-world hints, but the description does not clarify behavior (e.g., whether it merges or overwrites the environment). No contradiction, but insufficient 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?
Extremely short, but it is under-specification rather than conciseness. It fails to convey necessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, no parameter descriptions, and many sibling saveEnvironment tools, the description is completely inadequate for an agent to select or 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?
With 0% schema description coverage, the description must explain parameters but does not. The parameter 'env' is ambiguous (environment variables vs. environment selection?).
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 merely the HTTP method and tool name, a tautology that does not state what the tool does. It fails to specify the action of saving the environment for a MariaDB instance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 mariadb-update or mariadb-saveExternalPort. The description omits any usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mariadb-saveExternalPortDIdempotent
POST /mariadb.saveExternalPort
| Name | Required | Description | Default |
|---|---|---|---|
| mariadbId | Yes | ||
| externalPort | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate idempotentHint and openWorldHint, but the description adds no additional behavioral context such as side effects, permissions, or impact. Fails to go beyond what annotations already provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely short but not concise; it is under-specified. The single line conveys no useful information and is inadequate for a tool with required 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 tool with 2 required parameters and no output schema, the description provides zero context about the tool's operation, return values, or usage scenarios. Completely incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain the meaning of parameters 'mariadbId' or 'externalPort' or their allowed values (e.g., null for externalPort).
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 merely 'POST /mariadb.saveExternalPort' which restates the tool name and endpoint, offering no insight into the tool's purpose. It is a tautology with no verb or resource explanation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 mariadb-saveEnvironment, mariadb-start, etc. No context on prerequisites or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mariadb-searchDRead-onlyIdempotent
GET /mariadb.search
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | ||
| name | No | ||
| appName | No | ||
| description | No | ||
| projectId | No | ||
| environmentId | No | ||
| limit | No | ||
| offset | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true and idempotentHint=true, which partially inform behavior. However, the description adds no additional context about pagination, result structure, or constraints. It fails to go beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is too brief to be useful. While it is short, it is under-specified rather than concise. Every sentence should earn its place; this single sentence adds no 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?
Given the complexity (8 optional parameters, no output schema, no description), the description is severely incomplete. It fails to explain the tool's purpose, usage, parameters, or return values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, placing full burden on the description. The description provides no information about any of the 8 parameters (q, name, appName, description, projectId, environmentId, limit, offset) or how they affect the search.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 /mariadb.search' is a tautology of the tool name and fails to specify what the tool does. It does not state a verb, resource, or distinguish it from sibling tools like mariadb-one, mariadb-create, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as mariadb-one or other search tools (e.g., application-search, compose-search). There are no context or exclusion statements.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mariadb-startDIdempotent
POST /mariadb.start
| Name | Required | Description | Default |
|---|---|---|---|
| mariadbId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does not disclose any behavioral traits beyond what annotations provide (idempotentHint, openWorldHint). It fails to explain side effects such as starting an already-running instance or prerequisites.
Agents need to know what a tool does to the world before calling 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 at the expense of informativeness. It is under-specified and does not earn its place as a useful explanation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 start operation with one parameter, the description is wholly incomplete. It omits the action, parameter semantics, return values, and prerequisites.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has one parameter 'mariadbId' with no description in the schema or the tool description. The description adds no meaning, leaving the agent to infer its role.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'POST /mariadb.start', which merely repeats the tool name and HTTP method. It does not state that the tool starts a MariaDB instance, leaving the purpose unclear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 'mariadb-stop' or 'mariadb-one'. The description lacks context for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mariadb-stopDIdempotent
POST /mariadb.stop
| Name | Required | Description | Default |
|---|---|---|---|
| mariadbId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate idempotentHint=true and openWorldHint=true, but the description adds no behavioral details such as whether the stop is graceful, if it requires the database to be running, or side effects. The agent is left guessing.
Agents need to know what a tool does to the world before calling 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 line, which is concise but lacks substantive content. It is underspecified rather than efficiently 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 tool with one parameter and no output schema, the description should clearly state the action and parameter purpose. It fails to do so, leaving the agent without enough context 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?
The input schema has one required parameter 'mariadbId' with no description, and schema description coverage is 0%. The description does not explain what mariadbId represents (e.g., the server ID), so the agent must infer from the name alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is just 'POST /mariadb.stop', which restates the HTTP method and path without explaining the tool's action. It fails to convey that this tool stops a MariaDB server, making it a tautology of 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?
No guidance on when to use this tool versus alternatives like mariadb-start or mariadb-reload. The sibling list includes many database management tools, but the description provides no comparison or context for choosing this one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mariadb-updateDIdempotent
POST /mariadb.update
| Name | Required | Description | Default |
|---|---|---|---|
| mariadbId | Yes | ||
| name | No | ||
| appName | No | ||
| description | No | ||
| databaseName | No | ||
| databaseUser | No | ||
| databasePassword | No | ||
| databaseRootPassword | No | ||
| dockerImage | No | ||
| command | No | ||
| args | No | ||
| env | No | ||
| memoryReservation | No | ||
| memoryLimit | No | ||
| cpuReservation | No | ||
| cpuLimit | No | ||
| externalPort | No | ||
| applicationStatus | No | ||
| healthCheckSwarm | No | ||
| restartPolicySwarm | No | ||
| placementSwarm | No | ||
| updateConfigSwarm | No | ||
| rollbackConfigSwarm | No | ||
| modeSwarm | No | ||
| labelsSwarm | No | ||
| networkSwarm | No | ||
| stopGracePeriodSwarm | No | ||
| endpointSpecSwarm | No | ||
| ulimitsSwarm | No | ||
| replicas | No | ||
| createdAt | No | ||
| environmentId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description provides no behavioral information beyond what annotations indicate. While annotations show idempotentHint=true and openWorldHint=true, the description does not reinforce or explain these traits (e.g., idempotency meaning safe to retry). No mention of effects, authorization needs, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short, but this is under-specification rather than conciseness. It uses one meaningless phrase that does not convey necessary information. Front-loading is irrelevant when the content is absent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 high complexity (32 parameters, many nested objects) and no output schema, the description is completely inadequate. It provides zero context about return values, side effects, or how to use the parameters effectively. The tool cannot be used correctly based solely on this description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not specify any parameters or their meanings. The tool has 32 parameters, including nested objects (e.g., healthCheckSwarm, placementSwarm), but the description fails to explain which are required (only mariadbId) or how they affect the update. The agent receives no semantic help.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 only 'POST /mariadb.update', which is a tautological statement of the endpoint and does not explain what the tool does. It fails to state the verb (update) applied to the resource (MariaDB service) or differentiate it from sibling tools like mariadb-create or mariadb-deploy.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 are no usage guidelines in the description. It does not indicate when to use this tool over alternatives (e.g., mariadb-deploy vs mariadb-update) or provide any context for when an update is appropriate. Sibling tools like mariadb-update, mariadb-start, mariadb-stop exist but no guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mongo-changePasswordDIdempotent
POST /mongo.changePassword
| Name | Required | Description | Default |
|---|---|---|---|
| mongoId | Yes | ||
| password | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description adds no behavioral traits beyond annotations (idempotentHint=true, openWorldHint=true). It does not mention side effects, required permissions, or whether the change is immediate.
Agents need to know what a tool does to the world before calling 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 lacks substance; it is under-specified rather than concise, providing no usable information for an agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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, basic annotations, and 0% parameter coverage, the description is completely inadequate. An agent cannot determine the tool's purpose, parameters, or 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?
With 0% schema description coverage, the description entirely fails to explain the two required parameters (mongoId, password). No meaning is added beyond the minimal schema validation pattern.
Input schemas describe structure but not intent. Descriptions should explain 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 is 'POST /mongo.changePassword', which only restates the endpoint path and provides no verb-resource clarity. It fails to explain that the tool changes a MongoDB password.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 sibling tools like mongo-changeStatus or other database change-password tools. No context about prerequisites or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mongo-changeStatusDIdempotent
POST /mongo.changeStatus
| Name | Required | Description | Default |
|---|---|---|---|
| mongoId | Yes | ||
| applicationStatus | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide idempotentHint and openWorldHint, but description adds no behavioral details beyond that. It doesn't describe side effects, required permissions, or state transitions.
Agents need to know what a tool does to the world before calling 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, but it is the endpoint string—concise but uninformative. It does not structure any useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool that changes status of a managed MongoDB resource, the description is completely inadequate. It omits prerequisites, valid transition paths, error behavior, and any output 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 coverage is 0% with no descriptions. The description fails to explain what mongoId represents or the meaning of applicationStatus enum values in 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?
Description is just the endpoint 'POST /mongo.changeStatus', which tautologically restates the tool name. It does not specify what the tool does or what resource it operates on.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus siblings like mongo-start, mongo-stop, or other changeStatus tools. The description offers no context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mongo-createD
POST /mongo.create
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| appName | No | ||
| dockerImage | No | mongo:15 | |
| environmentId | Yes | ||
| description | No | ||
| databaseUser | Yes | ||
| databasePassword | Yes | ||
| serverId | No | ||
| replicaSets | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description provides no behavioral details despite annotations including openWorldHint:true. No disclosure of side effects, permissions, or state changes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely short (one line), but it's under-specification rather than conciseness. Every sentence should earn its place; this fails to convey purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 9 parameters, no output schema, and an openWorldHint annotation, the description is completely inadequate for an agent to use 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?
Schema description coverage is 0%. The description adds no meaning to the 9 parameters, leaving the agent to infer from names only.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description is merely 'POST /mongo.create', offering no verb or resource explanation. It fails to state what the tool does, effectively a tautology of 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?
No guidance on when to use this tool versus siblings like mongo-deploy or mongo-create. No context or alternatives provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mongo-deployDIdempotent
POST /mongo.deploy
| Name | Required | Description | Default |
|---|---|---|---|
| mongoId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide idempotentHint=true and openWorldHint=true, but the description adds no behavioral context. It does not disclose side effects, required permissions, or what happens to the database. The description 'POST' might imply non-idempotence, but the annotation states otherwise; however, not an explicit contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short but fails to provide essential information. It is under-specified rather than concise. Every sentence should add value; this single sentence is insufficient and does not earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of the domain (many mongo sibling tools), no output schema, and zero schema coverage, the description is completely inadequate. Agents have no context about what deployment entails, what the response looks like, or how it differs from other mongo operations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter 'mongoId' is a string with no description in the schema (0% coverage). The description does not explain its purpose, format, or relation to existing resources, leaving agents without guidance on how to populate it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is 'POST /mongo.deploy', which merely restates the tool name and HTTP method. It does not specify the action or resource, failing to convey what deploying a MongoDB instance entails. This is a tautology with no additional 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?
No usage guidance is provided. The description does not specify when to use this tool versus alternatives like mongo-create or mongo-deploy from sibling tools. There is no mention of prerequisites, context, or exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mongo-moveDIdempotent
POST /mongo.move
| Name | Required | Description | Default |
|---|---|---|---|
| mongoId | Yes | ||
| targetEnvironmentId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description adds no behavioral info beyond what idempotentHint and openWorldHint annotations imply. Name suggests moving, but no confirmation or details on side effects, permissions, or return values.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise (2 words), but at the cost of omitting essential information. Not well-structured; lacks front-loaded purpose or usage instructions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 minimal description, the tool definition is severely incomplete. AI agent cannot determine what the operation does, its inputs' meanings, or what response to expect.
Complex tools with many parameters or behaviors need more documentation. 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 has 0% description coverage and the description does not explain the two parameters (mongoId, targetEnvironmentId). AI agent cannot infer their meaning or format 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?
Description is just 'POST /mongo.move', which is a tautology of the tool name. It does not specify the action (moving a MongoDB resource) or resource. No differentiation from siblings like mongo-create or mongo-deploy.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 vs alternatives (e.g., mongo-create, mongo-deploy, or other move tools). Lacks context on prerequisites or conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mongo-oneDRead-onlyIdempotent
GET /mongo.one
| Name | Required | Description | Default |
|---|---|---|---|
| mongoId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, indicating no side effects. The description adds no behavioral context beyond the endpoint, which is acceptable but does not enhance 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 extremely concise but underspecified. It consists of a single line that adds no value beyond the tool name, failing to earn its place with substantive 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 single parameter and absence of output schema, the description is completely inadequate. It does not clarify what is returned, error handling, or how to use 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?
Schema description coverage is 0%, and the description itself contains no details about the required 'mongoId' parameter. The meaning and format of the parameter are left entirely unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'GET /mongo.one' is a tautology that merely restates the tool's name and HTTP method. It does not specify a verb or resource beyond what the name implies, leaving the purpose ambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like mongo-search or mongo-one itself. There is no mention of context, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mongo-readLogsDRead-onlyIdempotent
GET /mongo.readLogs
| Name | Required | Description | Default |
|---|---|---|---|
| mongoId | Yes | ||
| tail | No | ||
| since | No | all | |
| search | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and idempotentHint=true, so the safety profile is covered. However, the description adds no additional behavioral context beyond that. It does not disclose what logs are returned, the format, or any dependencies. With annotations present, the description should contribute some value but fails to do so.
Agents need to know what a tool does to the world before calling 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 (one line) but under-specified for a tool with four parameters. Conciseness is not achieved; the brevity omits essential information. The description should be longer to be 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?
Given the parameter count (4), lack of output schema, and many sibling tools, the description is completely inadequate. It does not explain what the tool returns, how to use the parameters in combination, or how it differs from similar tools. The description fails to provide a complete picture.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain any of the four parameters (mongoId, tail, since, search). Parameter names and patterns provide minimal clues, but the agent receives no guidance on their semantics from the description. This is a significant gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is merely 'GET /mongo.readLogs', which repeats the tool name with an HTTP method but does not explicitly state the action or resource. It relies on the name to imply reading MongoDB logs, but lacks a clear verb+resource statement. Compared to sibling tools like mongo-create or mariadb-readLogs, there is no differentiation beyond 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?
No usage guidelines are provided. The description does not indicate when to use this tool over alternatives, such as other mongo tools or readLogs for other databases. There is no context on prerequisites (e.g., needing an existing MongoDB instance) 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.
mongo-rebuildDIdempotent
POST /mongo.rebuild
| Name | Required | Description | Default |
|---|---|---|---|
| mongoId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral context beyond the annotations (idempotentHint, openWorldHint). It does not explain what a rebuild does (e.g., destructive effects, downtime, data preservation). With annotations, the bar is lowered but the description still adds zero value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short but not appropriately concise; it is under-specified and lacks front-loaded key information. Every sentence should pull weight; here, the single sentence fails to convey purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a rebuild operation and the lack of output schema or parameter details, the description is severely incomplete. It does not inform the agent about the operation's effect, return value, or side effects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The sole parameter 'mongoId' has no description in the schema (coverage 0%). The description does not mention or explain the parameter, leaving the agent without any semantic 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 is merely 'POST /mongo.rebuild', which restates the tool name and HTTP method. It does not specify the verb, resource, or what 'rebuild' entails. This is a tautology of the name and title.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 alternative rebuild tools for other database types (e.g., libsql-rebuild, mariadb-rebuild). There is no context on prerequisites or scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mongo-reloadDIdempotent
POST /mongo.reload
| Name | Required | Description | Default |
|---|---|---|---|
| mongoId | Yes | ||
| appName | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide idempotentHint and openWorldHint, but the description adds no behavioral context (e.g., whether it restarts the service, reloads config, or affects connections). The description is essentially empty, so it fails to add value beyond structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (5 words) but to the point of being useless. It lacks any structure or front-loading of key information. Conciseness without substance is under-specification.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 database reload operation, the description is completely inadequate. It lacks explanation of effects, prerequisites, return values (no output schema), and relationship to sibling tools. The description fails to provide a minimally complete picture.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description must compensate but it says nothing about 'mongoId' or 'appName'. The agent has no idea what these parameters identify (e.g., MongoDB instance ID, application name) beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'POST /mongo.reload' is a tautology of the tool name and provides no information about what the tool does. The title from annotations is not included, so the agent cannot discern that this tool reloads a MongoDB instance or its configuration.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 sibling tools like mongo-rebuild, mongo-start, or similar reload tools for other databases. No context, prerequisites, or alternatives are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mongo-removeDDestructive
POST /mongo.remove
| Name | Required | Description | Default |
|---|---|---|---|
| mongoId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark destructiveHint: true, so the agent knows the operation is destructive. The description adds no further behavioral context (e.g., what is removed, whether it's reversible, or side effects). Without contradictions, the description offers minimal added value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short (one line) but lacks substantive information. It is under-specified rather than concise; each word does not contribute useful guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a single parameter and a destructive operation with no output schema, the description should at least state that it removes a MongoDB instance. It does not, making it completely inadequate for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain the sole parameter 'mongoId'. It does not indicate what the ID refers to (e.g., database instance identifier). The description fails to add meaning beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is only 'POST /mongo.remove', which is a tautology of the tool name. It fails to specify what resource or data the tool removes, and does not distinguish it from sibling tools like mongo-stop or postgres-remove.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 mongo-stop or other removal tools. No when-to-use, when-not-to-use, or prerequisite information is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mongo-saveEnvironmentDIdempotent
POST /mongo.saveEnvironment
| Name | Required | Description | Default |
|---|---|---|---|
| mongoId | Yes | ||
| env | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate idempotentHint=true and openWorldHint=true, but the description does not elaborate on behavioral traits (e.g., whether env is merged or replaced, if authentication is required, or side effects). With annotations present but minimal, the description adds no value beyond the structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely brief (6 words), but this is under-specification, not conciseness. It fails to convey any actionable information, earning its place only as a placeholder.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 mutation tool with no output schema, no parameter descriptions, and a generic sibling set, the description is completely inadequate. An agent cannot reliably invoke this tool based on the provided 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?
Schema description coverage is 0%, and the description provides no explanation for the two required parameters (mongoId, env). An agent cannot discern what mongoId refers to (MongoDB instance ID?) or what format env expects (name-value pairs? JSON?). This is a critical gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description is merely the HTTP endpoint 'POST /mongo.saveEnvironment', which restates the tool name without specifying the action or resource. While it implies saving an environment for MongoDB, it fails to distinguish from many similar saveEnvironment siblings (e.g., application-saveEnvironment, mongo-update). Sibling tools like mongo-create and mongo-update are unaddressed.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 (e.g., mongo-create, mongo-update, or other saveEnvironment tools). The description lacks any context about prerequisites, use cases, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mongo-saveExternalPortDIdempotent
POST /mongo.saveExternalPort
| Name | Required | Description | Default |
|---|---|---|---|
| mongoId | Yes | ||
| externalPort | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide idempotentHint and openWorldHint, hinting at safe retries and potential creation, but the description adds no behavioral details, such as permissions needed or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short but under-specified, providing no meaningful information. It is not concise in a helpful way; it omits essential 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 tool with two required parameters, no output schema, and minimal annotations, the description leaves out all context about use cases, effects, and relationships to other database 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 coverage is 0% and the description offers no parameter explanations. The parameter names 'mongoId' and 'externalPort' are somewhat self-explanatory, but the description fails to add any value over the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is just 'POST /mongo.saveExternalPort', essentially repeating the name without explaining the tool's purpose. It fails to state what saving an external port means or 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 on when to use this tool versus siblings like mariadb-saveExternalPort or mongo-update. No context about prerequisites or scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mongo-searchDRead-onlyIdempotent
GET /mongo.search
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | ||
| name | No | ||
| appName | No | ||
| description | No | ||
| projectId | No | ||
| environmentId | No | ||
| limit | No | ||
| offset | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the description does not need to repeat these. However, the description adds no behavioral context beyond the path, such as expected results, permissions, or side effects. It fails to leverage the description field to augment annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While the description is extremely short, it is under-specified rather than concise. Every sentence should earn its place, but here the single phrase adds negligible value, making the tool harder to use correctly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 8 optional parameters, no output schema, and many sibling search tools, the description is wholly incomplete. It does not specify what is being searched, the return format, or any operational constraints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage and a description that mentions no parameters, the agent receives no guidance on the meaning of the eight parameters (q, name, appName, etc.). The description should at least summarize parameter roles or search criteria.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 /mongo.search' provides only an HTTP method and path, but does not state what the tool does (e.g., 'Search MongoDB records'). It is nearly a tautology of the tool name 'mongo-search' and lacks a specific verb and 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 usage guidelines are provided. There is no indication of when to use this tool versus alternative search tools like mariadb-search, mysql-search, or postgres-search, which are listed as siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mongo-startDIdempotent
POST /mongo.start
| Name | Required | Description | Default |
|---|---|---|---|
| mongoId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate idempotentHint=true and openWorldHint=true, but the description adds no explanation of behavioral traits such as what happens when starting (e.g., side effects, required permissions, or state changes). The description fails to elaborate beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise, but under-specification severely harms utility. While brevity is positive, the description does not earn its place as it provides no actionable information; it is functionally equivalent to having no description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the rich set of sibling mongo tools and similar start tools for other databases, the description is completely inadequate. No output schema exists, and the description omits any information about return values, side effects, or usage context. The agent lacks necessary details to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, and the description does not explain the single parameter 'mongoId'. The agent cannot determine that this parameter likely refers to the identifier of a MongoDB instance to start. No meaning is added 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 'POST /mongo.start' is a tautology that merely restates the tool name and HTTP method. It does not specify that the tool starts a MongoDB instance or service, leaving the purpose completely ambiguous. Among sibling tools like mongo-stop and other database start commands, there is no differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description offers no context on prerequisites (e.g., does a MongoDB need to exist first?), or situations where mongo-start is appropriate compared to mongo-deploy or mongo-create.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mongo-stopDIdempotent
POST /mongo.stop
| Name | Required | Description | Default |
|---|---|---|---|
| mongoId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide idempotentHint and openWorldHint, but the description adds no behavioral context (e.g., whether stopping is destructive, if it requires authorization, or what happens to related services). The agent is left to infer behavior from the name alone.
Agents need to know what a tool does to the world before calling 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 underspecified. It is not concise in a meaningful way because it fails to convey the tool's purpose or usage. Every sentence should add value; this one does not.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has one parameter and no output schema, the description should provide basic context about the operation (e.g., stopping a MongoDB instance, idempotency, availability). It supplies none, making it incomplete for effective tool selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The parameter 'mongoId' has no description in the schema (0% coverage), and the tool description does not clarify its meaning. The agent cannot determine what ID to provide (e.g., database instance ID) without external knowledge.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is just 'POST /mongo.stop', which merely restates the tool name. It lacks a clear verb-resource statement like 'Stops a MongoDB instance.' The name implies stopping, but the description does not explicitly state the tool's purpose, making it 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?
No usage guidance is provided. The description does not specify when to use this tool (e.g., to stop a running MongoDB), prerequisites, or alternatives like mongo-start. The agent receives no help in selecting this tool over siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mongo-updateDIdempotent
POST /mongo.update
| Name | Required | Description | Default |
|---|---|---|---|
| mongoId | Yes | ||
| name | No | ||
| appName | No | ||
| description | No | ||
| databaseUser | No | ||
| databasePassword | No | ||
| dockerImage | No | ||
| command | No | ||
| args | No | ||
| env | No | ||
| memoryReservation | No | ||
| memoryLimit | No | ||
| cpuReservation | No | ||
| cpuLimit | No | ||
| externalPort | No | ||
| applicationStatus | No | ||
| healthCheckSwarm | No | ||
| restartPolicySwarm | No | ||
| placementSwarm | No | ||
| updateConfigSwarm | No | ||
| rollbackConfigSwarm | No | ||
| modeSwarm | No | ||
| labelsSwarm | No | ||
| networkSwarm | No | ||
| stopGracePeriodSwarm | No | ||
| endpointSpecSwarm | No | ||
| ulimitsSwarm | No | ||
| replicas | No | ||
| createdAt | No | ||
| environmentId | No | ||
| replicaSets | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide idempotentHint=true and openWorldHint=true, but the description adds no behavioral context. It does not clarify whether the update is partial or full, what side effects occur, or if it requires any state.
Agents need to know what a tool does to the 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 very short, the description is under-specified, not concise. It conveys no meaningful information, so it fails the 'every sentence earns its place' test.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 high parameter count, lack of output schema, and many sibling tools, the description is wholly inadequate. It provides no context about the update behavior, return values, or relationships to other mongo tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, yet the description provides no parameter explanations. With 31 parameters and only mongoId required, the agent cannot deduce which fields are modifiable or their 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 'POST /mongo.update' is a tautology; it restates the tool name in HTTP format without explaining what the tool does. It does not distinguish from sibling tools like mongo-create or mongo-deploy.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 gives no context about prerequisites, typical use cases, or when to avoid it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mounts-allNamedByApplicationIdDRead-onlyIdempotent
GET /mounts.allNamedByApplicationId
| Name | Required | Description | Default |
|---|---|---|---|
| applicationId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the safety profile is covered. However, the description adds no behavioral context beyond the annotations, such as what data is returned or any 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 line, but it is under-specified and merely restates the tool name. It is not informative, so despite brevity, it does not earn a higher score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with one required parameter and no output schema, the description should at least indicate the purpose of returning all mounts for an application. It does not, leaving the agent with minimal context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not mention the single required parameter 'applicationId'. With low coverage, the description must compensate but fails to add any meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'GET /mounts.allNamedByApplicationId' is a tautology, restating the tool name without explaining what the tool does. It does not use a specific verb or clarify the function of retrieving all mounts by application ID, failing to distinguish from sibling tools like 'mounts-listByServiceId'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 'mounts-listByServiceId' or 'mounts-one'. The description lacks any context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mounts-createD
POST /mounts.create
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | ||
| hostPath | No | ||
| volumeName | No | ||
| content | No | ||
| mountPath | Yes | ||
| filePath | No | ||
| serviceType | No | ||
| serviceId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description offers no behavioral information beyond the endpoint. Annotations include openWorldHint: true, which is about schema extensibility, not behavior. No destructive or read-only hints are given, leaving agents unaware of side effects or permissions required.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While the description is short, it sacrifices all informative content. Conciseness without substance is under-specification. A single line that adds no value is not effective.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (8 parameters, 2 enums, required fields) and lack of output schema, the description is completely inadequate. It provides no guidance on request format, behavior, or use cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain any parameters. With 8 parameters (3 required, 2 enums), the agent gets no guidance on how to fill them (e.g., what 'type' means, how 'hostPath' differs from 'volumeName').
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'POST /mounts.create', which is a tautology of the tool name and HTTP method, providing no explanation of what the tool does. It fails to specify that it creates a mount, unlike siblings like mounts-update or mounts-remove.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 context is provided. There is no indication of when to use this tool versus alternatives like mounts-update or mounts-remove.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mounts-listByServiceIdDRead-onlyIdempotent
GET /mounts.listByServiceId
| Name | Required | Description | Default |
|---|---|---|---|
| serviceType | Yes | ||
| serviceId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so safety is covered. However, the description adds no behavioral context beyond the implied GET method. It does not detail response format, pagination, or any 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 extremely short, but that reflects under-specification rather than conciseness. It is not front-loaded with key information; it is essentially empty.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With zero param descriptions, no output schema, and minimal description, the tool definition fails to inform the agent about inputs, outputs, or behavior. It is critically incomplete for any 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 0% and the description says nothing about the two required parameters (serviceType, serviceId). The agent cannot infer their meaning or expected values from the tool definition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'GET /mounts.listByServiceId', which merely repeats the tool name and HTTP method. It does not state what the tool does (e.g., list mounts for a given service). This is a tautology, providing no purpose 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 usage guidance is provided. The description does not indicate when to use this tool versus sibling tools like mounts-allNamedByApplicationId or compose-loadMountsByService. The agent has no basis for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mounts-oneDRead-onlyIdempotent
GET /mounts.one
| Name | Required | Description | Default |
|---|---|---|---|
| mountId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint=true, idempotentHint=true, and openWorldHint=true, which already inform the agent that this is a safe, read-only operation. The description adds no behavioral context beyond repeating 'GET'. It does not contradict annotations, but offers no additional transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single phrase, which is concise but insufficient. It does not provide enough information to be useful; it is under-specified rather than efficiently 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 tool with one parameter and no output schema, the description is woefully incomplete. It does not explain the tool's purpose, return value, or how it differs from sibling tools. The annotations are the only useful 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 has one required parameter 'mountId' with no description in the schema (0% coverage). The tool description also fails to describe the parameter, its format, or its role. The agent gets no help understanding what to provide.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'GET /mounts.one' only provides the HTTP method and endpoint path, which vaguely suggests a retrieval operation. It does not explicitly state that the tool fetches a single mount by its ID, leaving purpose unclear. Sibling tools like 'mounts-allNamedByApplicationId' and 'mounts-listByServiceId' are not 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?
The description offers no guidance on when to use this tool versus alternatives. It does not mention any context, prerequisites, or exclusions. Given the many sibling mount-related tools, this omission is critical.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mounts-removeDDestructive
POST /mounts.remove
| Name | Required | Description | Default |
|---|---|---|---|
| mountId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does not disclose any behavioral traits beyond what annotations already provide. The destructiveHint=true annotation indicates destruction, but the description adds no context about side effects, irreversibility, or required permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While incredibly short, the description is under-specified. It fails to convey any useful information to the agent, making it insufficiently concise rather than efficiently so.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple structure (one required parameter, no output schema), the description should at least explain what a mount is and what removal entails. It does not, leaving the agent with incomplete 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 only parameter 'mountId' is not described at all. Schema coverage is 0%, and the description provides no meaning or guidance on how to obtain or format this identifier.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is just 'POST /mounts.remove', which essentially restates the tool name. It does not explain what removing a mount does or what a mount is. It's a tautology, providing no added clarity beyond 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?
No guidance is given on when to use this tool versus alternatives like mounts-update or mounts-one. There is no mention of prerequisites, caution, or when removal is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mounts-updateDIdempotent
POST /mounts.update
| Name | Required | Description | Default |
|---|---|---|---|
| mountId | Yes | ||
| type | No | ||
| hostPath | No | ||
| volumeName | No | ||
| filePath | No | ||
| content | No | ||
| serviceType | No | ||
| mountPath | No | ||
| applicationId | No | ||
| composeId | No | ||
| libsqlId | No | ||
| mariadbId | No | ||
| mongoId | No | ||
| mysqlId | No | ||
| postgresId | No | ||
| redisId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description lacks any behavioral information beyond the HTTP method. Despite annotations indicating idempotency and open-world assumptions, there is no disclosure of side effects, required permissions, or response behavior. With zero annotation coverage for destructive or read-only hints, the description fails to inform the agent of tool safety.
Agents need to know what a tool does to the 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 single-line description is brief, conciseness requires informative content. This is under-specification, not conciseness. Every sentence should earn its place; here, the only sentence is nearly a tautology.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (16 parameters, 2 enum types, no output schema) and minimal annotations, the description is completely inadequate. There is no explanation of return values, side effects, or parameter relationships, leaving the agent severely uninformed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, and the description adds no meaning to any of the 16 parameters. The schema only provides types and enums but no descriptions. The agent cannot infer which parameters are required for specific update scenarios.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'POST /mounts.update' merely restates the HTTP method and path, providing no indication of what a mount is or what updating entails. It does not distinguish from sibling tools like mounts-create or mounts-remove.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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, context, or when to prefer mounts-update over mounts-create or other mount operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mysql-changePasswordDIdempotent
POST /mysql.changePassword
| Name | Required | Description | Default |
|---|---|---|---|
| mysqlId | Yes | ||
| password | Yes | ||
| type | No | user |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide idempotentHint and openWorldHint, but description adds no behavioral context. It doesn't disclose mutability or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely short but lacks substance; it's under-specified rather than concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has complex parameters and many siblings, yet description provides no value beyond the endpoint path.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, and description fails to explain any parameters (mysqlId, password, type).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description is just 'POST /mysql.changePassword', which is a tautology. It does not state the tool's function beyond 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?
No guidance on when to use this tool compared to siblings like mariadb-changePassword or postgres-changePassword.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mysql-changeStatusDIdempotent
POST /mysql.changeStatus
| Name | Required | Description | Default |
|---|---|---|---|
| mysqlId | Yes | ||
| applicationStatus | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide idempotentHint and openWorldHint, but the description adds nothing beyond the endpoint. It does not explain behavioral traits like what status changes occur, whether it affects running connections, or any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short, but this is under-specification rather than conciseness. It fails to provide essential information, making it not valuable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 tool changes the status of a MySQL resource, has two required parameters, an enum, and no output schema, the description is completely inadequate. It lacks any context about when and how to use the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, and the description does not mention the two parameters (mysqlId, applicationStatus). There is no explanation of what mysqlId refers to or the meaning of enum values (idle, running, done, error).
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 only 'POST /mysql.changeStatus', which is a tautology of the endpoint. It does not state what the tool actually does (changing status of a MySQL instance) or provide a verb-resource pair. This fails to clarify the tool's purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidance is provided. There is no indication of when to use this tool versus siblings like mysql-start, mysql-stop, or similar changeStatus tools for other databases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mysql-createD
POST /mysql.create
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| appName | No | ||
| dockerImage | No | mysql:8 | |
| environmentId | Yes | ||
| description | No | ||
| databaseName | Yes | ||
| databaseUser | Yes | ||
| databasePassword | Yes | ||
| databaseRootPassword | No | ||
| serverId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No behavioral traits are disclosed beyond the readOnlyHint and openWorldHint annotations. The description does not mention side effects, required permissions, or any constraints, leaving agents unaware of the tool's impact.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Although short, the description is not concise in a meaningful way—it is minimal to the point of being uninformative. Every sentence should add value, but this single phrase adds none.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 (10 parameters, 5 required, no output schema), the description is severely incomplete. It fails to provide any operational context, such as prerequisites, return values, or typical use cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description provides no information about the 10 parameters, despite the schema having 0% description coverage. It does not explain the meaning of 'name', 'appName', 'databaseName', etc., forcing agents to rely solely on parameter names and types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is 'POST /mysql.create', which is a tautology—it merely restates the tool name and HTTP method without indicating what the tool actually does. A user cannot infer that this tool creates a MySQL database instance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 mariadb-create or postgres-create. The description is absent of any context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mysql-deployDIdempotent
POST /mysql.deploy
| Name | Required | Description | Default |
|---|---|---|---|
| mysqlId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description provides no behavioral information beyond what the annotations (idempotentHint, openWorldHint) already indicate. It does not disclose deployment actions, side effects, or requirements. With annotations present, the description adds no value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While extremely concise, the description is too minimal to be useful. It does not front-load key information and under-specifies the tool's purpose. Every sentence should earn its place, but there is no substantive content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of deployment operations (likely involving state changes, prerequisites, and side effects) and the absence of an output schema, the description is completely inadequate. It provides no information about what happens during deployment, success conditions, or concurrency 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 description coverage is 0% and the description does not explain the 'mysqlId' parameter. It is unclear what this ID represents (e.g., an existing MySQL instance ID) or how it should be obtained. The description fails to add meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is just 'POST /mysql.deploy', which is an HTTP endpoint, not a description of what the tool does. It fails to specify the action (deploy) and the resource (a MySQL instance). It does not distinguish from siblings like mysql-create or mysql-rebuild.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 mysql-create, mysql-deploy for other databases (postgres-deploy, mariadb-deploy), or other MySQL management tools. No context for the parameter or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mysql-moveDIdempotent
POST /mysql.move
| Name | Required | Description | Default |
|---|---|---|---|
| mysqlId | Yes | ||
| targetEnvironmentId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate idempotentHint and openWorldHint, but the description adds no behavioral information beyond what annotations already state. It does not disclose side effects, required permissions, or what happens to the source after a move.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is overly short (3 words) but is under-specified rather than concise. Every sentence (the only one) fails to earn its place as it provides no useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a move operation (two required params, no output schema), the description is completely inadequate. It lacks details on what moving entails, the effect on the source and destination, and any post-move state.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, meaning neither the schema nor the description provides any meaning for the two required parameters (mysqlId, targetEnvironmentId). The description fails to compensate for this gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is simply 'POST /mysql.move', which is a tautology of the tool name. It does not specify the action (e.g., 'move a MySQL database') nor the resource, providing no clarity on 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 given on when to use this tool versus alternatives like mysql-create, mysql-deploy, or other move tools. There is no context on prerequisites, scenarios, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mysql-oneDRead-onlyIdempotent
GET /mysql.one
| Name | Required | Description | Default |
|---|---|---|---|
| mysqlId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint as true, which are consistent with the implied read operation. However, the description adds no additional behavioral context (e.g., what data is returned, error conditions, or side effects). It fails to add value beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short, but sacrificed clarity for brevity. It is essentially a trivial string that fails to communicate the tool's purpose. Conciseness should preserve 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 has one required parameter, no output schema, and simple safety annotations, the description is still inadequate to fully understand the tool's use. A useful description would specify the return value or operation 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?
The parameter mysqlId has no description in the schema (0% coverage) and the tool description does not explain what it represents (e.g., a MySQL database ID, server ID, etc.). The agent cannot infer the meaning or constraints beyond the type and minLength.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'GET /mysql.one', which is a URL path, not a clear statement of the tool's function. It does not specify a verb (other than implying HTTP GET) or the resource being acted upon. There is no differentiation from sibling tools like mysql-search or mysql-readLogs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 mysql-search, mysql-one (if distinct), or other mysql tools. There is no mention of context, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mysql-readLogsDRead-onlyIdempotent
GET /mysql.readLogs
| Name | Required | Description | Default |
|---|---|---|---|
| mysqlId | Yes | ||
| tail | No | ||
| since | No | all | |
| search | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations (readOnlyHint, idempotentHint, openWorldHint) indicate the tool is safe and idempotent, but the description adds no behavioral details beyond the endpoint. It does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short, but its brevity comes at the cost of providing any useful information. It does not front-load key details and every word is wasted on restating the endpoint.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the existence of similar readLogs tools for other databases and the lack of an output schema, the description should explain the tool's purpose, parameters, and return value. It provides none of this context, leaving the agent to rely solely on the tool name.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 4 parameters (mysqlId, tail, since, search) with 0% schema description coverage. The description fails to explain any parameter's meaning, format, or constraints, such as that 'since' uses a pattern like 'all' or duration.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 merely the HTTP method and endpoint path, which tautologically restates the tool name. It does not specify that the tool retrieves logs for a MySQL instance, nor does it distinguish it from sibling tools like mariadb-readLogs or postgres-readLogs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 ai-analyzeLogs or other database readLogs tools. There is no mention of prerequisites, context, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mysql-rebuildDIdempotent
POST /mysql.rebuild
| Name | Required | Description | Default |
|---|---|---|---|
| mysqlId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral information beyond the annotations (idempotentHint, openWorldHint). It does not disclose side effects, whether the operation is destructive, or what happens to the database state. The agent must rely solely on the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short (3 words) but fails to convey essential information. Conciseness should not come at the cost of clarity; here the brevity results in under-specification rather than efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, a single undocumented parameter, and a complex operation (database rebuild), the description is wholly inadequate. It does not explain return values, prerequisites, effects, or error conditions, leaving a significant gap in the agent's 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 only parameter 'mysqlId' has no description in the schema (0% coverage) and is not mentioned in the tool description. The description provides no additional meaning, leaving the agent to guess the parameter's purpose and format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'POST /mysql.rebuild' only provides the HTTP method and path, not a clear statement of what the tool does. It fails to explain what 'rebuild' entails for a MySQL resource, leaving the purpose vague and uninformative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 other database rebuild tools or mysql-create/mysql-update. There are no conditional statements or context about prerequisites, making it impossible for an agent to decide correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mysql-reloadDIdempotent
POST /mysql.reload
| Name | Required | Description | Default |
|---|---|---|---|
| mysqlId | Yes | ||
| appName | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare idempotentHint and openWorldHint, which imply safe repeated calls, but the description adds no behavioral context beyond that. It does not explain what 'reload' means (e.g., restart, refresh config, apply changes). No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Excessively short to the point of being under-specification. The single sentence is not informative and fails to earn its place, as it adds no value over the tool name and endpoint.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of the tool (2 required params, no output schema, many sibling tools), the description is severely incomplete. It provides no information about return values, side effects, or when to use it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain the two required parameters (mysqlId and appName). The agent has no context on what values to provide or their 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 is simply 'POST /mysql.reload', which is a tautology of the tool name. It provides no verb or resource description, and does not distinguish from sibling reload tools for other databases (e.g., mariadb-reload, postgres-reload).
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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. There is no indication of when to use this tool versus alternatives such as mysql-rebuild, mysql-start, or mysql-restart. The description does not mention prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mysql-removeDDestructive
POST /mysql.remove
| Name | Required | Description | Default |
|---|---|---|---|
| mysqlId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide destructiveHint: true and openWorldHint: true, but the description adds nothing beyond that. It doesn't explain consequences like irreversible deletion or required permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise (one phrase) but under-specified. It's not efficient communication; it's insufficient for an agent to act.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 destructive operation with many sibling tools and no output schema, the description is severely incomplete. No return values, side effects, or examples.
Complex tools with many parameters or behaviors need more documentation. 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 has 0% coverage and no description for mysqlId. The description fails to explain what mysqlId refers to (e.g., a UUID, name, or ID). No additional meaning 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?
Description is just 'POST /mysql.remove', which restates the endpoint without clarifying what 'remove' means. It doesn't distinguish from sibling tools like mysql-delete or mysql-stop. The name implies removal but the description adds no clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. There are many mysql sibling tools (e.g., mysql-stop, mysql-reload) but no hints about prerequisites or scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mysql-saveEnvironmentDIdempotent
POST /mysql.saveEnvironment
| Name | Required | Description | Default |
|---|---|---|---|
| mysqlId | Yes | ||
| env | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description adds no behavioral context. Annotations indicate idempotent and open world hints, but the description itself provides no additional transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely short (one line) but under-specified. Under-specification is not conciseness; it lacks 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?
No output schema, minimal annotations, and description provides no context. Fails to give a complete picture of the tool's 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 has 0% parameter description coverage. Description does not explain the meaning of mysqlId or env, leaving the agent to infer from names alone.
Input schemas describe structure but not intent. Descriptions should explain 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 is just the HTTP method and endpoint, 'POST /mysql.saveEnvironment', which is a tautology. It does not state the tool's purpose: saving environment variables for a MySQL instance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 provided. Description lacks any indication of when to use this tool vs alternatives like application-saveEnvironment or compose-saveEnvironment.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mysql-saveExternalPortDIdempotent
POST /mysql.saveExternalPort
| Name | Required | Description | Default |
|---|---|---|---|
| mysqlId | Yes | ||
| externalPort | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description offers no behavioral information. Annotations indicate idempotentHint and openWorldHint, but the description does not clarify what side effects occur (e.g., whether the port is replaced, if other settings are affected). It adds no value beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short, but conciseness is not useful when it omits essential information. It is under-specified, not 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 no output schema and minimal annotations, the description is completely inadequate. It fails to provide the purpose, parameter roles, or expected behavior, making it impossible for an agent to use correctly without external knowledge.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has two parameters (mysqlId and externalPort) with no schema descriptions (0% coverage). The description does not explain what these parameters represent or their expected values, leaving the agent with no additional 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 is just the HTTP method and tool name ('POST /mysql.saveExternalPort'), which is a tautology. It does not state what the tool does, such as saving or updating an external port for a MySQL instance. The purpose is entirely unclear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 similar tools for other databases (e.g., mariadb-saveExternalPort) or other MySQL operations. There is no context for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mysql-searchDRead-onlyIdempotent
GET /mysql.search
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | ||
| name | No | ||
| appName | No | ||
| description | No | ||
| projectId | No | ||
| environmentId | No | ||
| limit | No | ||
| offset | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description contributes no behavioral information beyond what annotations already declare (readOnlyHint, idempotentHint). It fails to describe important traits such as whether results are paginated, how the search matches, or what data 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 too minimal to be considered concise; it is a single redundant line that does not convey useful information. It lacks structure and does not earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 8 parameters and no output schema, the description is completely inadequate. It fails to explain the tool's purpose, return value, or how parameters interact, making it impossible for an agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage and no parameter explanations in the description, the agent receives no guidance on the meaning or usage of the 8 parameters (q, name, appName, etc.). The description does not compensate for the schema's lack of 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 'GET /mysql.search' is a tautology that repeats the tool name without stating a clear verb and resource. It does not specify that this tool searches for MySQL-related entities, leaving the purpose ambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidelines are provided. The description offers no context on when to use this tool versus sibling tools like mysql-create, mysql-one, etc., or any search-specific behavior.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mysql-startDIdempotent
POST /mysql.start
| Name | Required | Description | Default |
|---|---|---|---|
| mysqlId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral context beyond the annotations (idempotentHint, openWorldHint). No mention of effects, prerequisites, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise but under-specified. A single token does not constitute a useful description; it lacks 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?
With one required parameter, no output schema, and sibling tools, the description is completely inadequate for the agent to understand the tool's purpose and 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 single parameter 'mysqlId' is not described. With 0% schema coverage, the description should clarify its purpose but fails to do so.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'POST /mysql.start' is a tautology, restating the HTTP method and endpoint path without any indication of what the tool does. It does not specify the action (starting a MySQL service) or 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?
No guidance is provided on when to use this tool versus alternatives like mysql-create, mysql-deploy, or mysql-stop. The description offers no context for decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mysql-stopDIdempotent
POST /mysql.stop
| Name | Required | Description | Default |
|---|---|---|---|
| mysqlId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare idempotentHint=true and openWorldHint=true, which provide some behavioral insight. However, the description adds no further context (e.g., what happens when stopping an already stopped instance, required permissions, or side effects). With annotations present, the bar is lower, but the description still fails to add any behavioral detail beyond the structured data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While the description is extremely short (4 words), it is not concise in a useful way—it omits critical purpose and usage information. The agent cannot determine when or how to invoke the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has one parameter, no output schema, and annotations that only hint at idempotency and open-world behavior, the description is wholly incomplete. It fails to describe the action, side effects, or return value, making it nearly unusable 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 input schema has 0% description coverage for the single required parameter 'mysqlId'. The description 'POST /mysql.stop' does not clarify what 'mysqlId' represents (e.g., the ID of the MySQL instance to stop). Since schema coverage is low, the description must compensate but completely fails to explain 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 is merely 'POST /mysql.stop', which is a tautology of the name and HTTP method. It does not state what the tool does (e.g., stopping a MySQL instance), leaving the agent to guess the purpose from the tool name alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like mysql-start, mysql-restart, or mysql-stop. The description gives no context about prerequisites, expected state, or interactions with other tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mysql-updateDIdempotent
POST /mysql.update
| Name | Required | Description | Default |
|---|---|---|---|
| mysqlId | Yes | ||
| name | No | ||
| appName | No | ||
| description | No | ||
| databaseName | No | ||
| databaseUser | No | ||
| databasePassword | No | ||
| databaseRootPassword | No | ||
| dockerImage | No | ||
| command | No | ||
| args | No | ||
| env | No | ||
| memoryReservation | No | ||
| memoryLimit | No | ||
| cpuReservation | No | ||
| cpuLimit | No | ||
| externalPort | No | ||
| applicationStatus | No | ||
| healthCheckSwarm | No | ||
| restartPolicySwarm | No | ||
| placementSwarm | No | ||
| updateConfigSwarm | No | ||
| rollbackConfigSwarm | No | ||
| modeSwarm | No | ||
| labelsSwarm | No | ||
| networkSwarm | No | ||
| stopGracePeriodSwarm | No | ||
| endpointSpecSwarm | No | ||
| ulimitsSwarm | No | ||
| replicas | No | ||
| createdAt | No | ||
| environmentId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide idempotentHint=true and openWorldHint=true, but the description adds no behavioral information such as permission requirements, side effects, or what aspects of the MySQL instance are modified.
Agents need to know what a tool does to the world before calling 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 achieves this by omitting essential information. It is not a model of conciseness that serves the agent's needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 32 parameters, no output schema, and a minimal description, the tool definition is severely incomplete for an agent to use correctly, even with annotations providing some hints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description does not explain any of the 32 parameters. The schema contains only types and constraints, leaving the agent without guidance on what values to use.
Input schemas describe structure but not intent. Descriptions should explain 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 only contains the HTTP method and endpoint ('POST /mysql.update'), without stating that it updates a MySQL instance or explaining the tool's function. It does not differentiate from sibling tools like mysql-create or mysql-deploy beyond the name itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as mysql-create, mysql-deploy, or mysql-rebuild. No context about prerequisites or scenarios is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notification-allDRead-onlyIdempotent
GET /notification.all
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint. The description adds no new behavioral context beyond the HTTP path, which is redundant. It does not confirm that reading is safe or describe any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise but at the expense of clarity. It is essentially a single line that restates the name. While brevity is good, the description should front-load the purpose, which it does not.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no output schema and no parameter documentation, the description should explain what is returned (e.g., a list of notifications). It does not, leaving the agent without sufficient context to understand the tool's 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 input schema has no parameters, so schema coverage is 100%. However, the description does not clarify that no parameters are expected or that the tool is a simple list all. It fails to add meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is a tautology: 'GET /notification.all' merely repeats the tool's name and HTTP method without stating what the tool does. It fails to specify that it retrieves all notifications or list any 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?
No guidance is provided on when to use this tool versus the many sibling notification tools (e.g., notification-one, notification-createDiscord). There is no context about alternatives or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notification-createCustomD
POST /notification.createCustom
| Name | Required | Description | Default |
|---|---|---|---|
| appBuildError | No | ||
| databaseBackup | No | ||
| dokployBackup | No | ||
| volumeBackup | No | ||
| dokployRestart | No | ||
| name | Yes | ||
| appDeploy | No | ||
| dockerCleanup | No | ||
| serverThreshold | No | ||
| endpoint | Yes | ||
| headers | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description provides no behavioral context. Annotations only give openWorldHint=true, but description does not disclose that the tool creates a notification sending to an arbitrary endpoint, what events it listens for, 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?
Description is extremely short but fails to convey any useful information. It is under-specified rather than concise, earning a low 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 11 parameters, no output schema, and zero parameter descriptions, the description is completely inadequate for an agent to understand the tool's functionality and 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 0%, and the description adds no information about the 11 parameters. The booleans likely control notification triggers, but this is left entirely implicit.
Input schemas describe structure but not intent. Descriptions should explain 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 is 'POST /notification.createCustom', a tautology that restates the HTTP method and tool name without specifying what the tool does. It fails to indicate that it creates a custom notification with configurable event triggers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 the many other notification-create tools for specific platforms (e.g., Discord, Email). No mention of prerequisites or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notification-createDiscordD
POST /notification.createDiscord
| Name | Required | Description | Default |
|---|---|---|---|
| appBuildError | Yes | ||
| databaseBackup | Yes | ||
| dokployBackup | Yes | ||
| volumeBackup | Yes | ||
| dokployRestart | Yes | ||
| name | Yes | ||
| appDeploy | Yes | ||
| dockerCleanup | Yes | ||
| serverThreshold | Yes | ||
| webhookUrl | Yes | ||
| decoration | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation 'openWorldHint: true' hints at external dependencies, but the description adds no behavioral details (e.g., that it requires a valid webhook URL, or that creation may fail if the webhook is unreachable). Description does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short (one phrase) but fails to be concise in a helpful way. It omits essential information, so it is under-specified rather than efficiently 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 the tool's complexity (11 required boolean parameters, no schema descriptions, no output schema), the description is completely inadequate. It does not explain the tool's core function, parameter semantics, or expected behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description adds no meaning to any of the 11 required parameters. Boolean fields like 'appBuildError' and 'databaseBackup' are unexplained; the agent cannot infer their purpose from the description alone.
Input schemas describe structure but not intent. Descriptions should explain 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 is 'POST /notification.createDiscord', which merely repeats the tool name and HTTP method. It does not state that this tool creates a Discord notification configuration. The title in annotations is slightly more descriptive but the textual description provides no purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus other notification creation tools (e.g., notification-createSlack, notification-createEmail). The sibling list includes many similar tools, but the description offers no differentiation or usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notification-createEmailD
POST /notification.createEmail
| Name | Required | Description | Default |
|---|---|---|---|
| appBuildError | Yes | ||
| databaseBackup | Yes | ||
| dokployBackup | Yes | ||
| volumeBackup | Yes | ||
| dokployRestart | Yes | ||
| name | Yes | ||
| appDeploy | Yes | ||
| dockerCleanup | Yes | ||
| serverThreshold | Yes | ||
| smtpServer | Yes | ||
| smtpPort | Yes | ||
| username | Yes | ||
| password | Yes | ||
| fromAddress | Yes | ||
| toAddresses | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses no behavioral traits. With no annotations beyond openWorldHint, the agent is left unaware of side effects like creating a resource or requiring SMTP configuration.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise but at the expense of useful content. The description is so minimal that it provides no value, which is under-specification rather than effective conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 15 required parameters with no schema descriptions and no output schema, the description fails completely to make the tool usable. The agent cannot infer how to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description adds no information about the 15 parameters. Agents must guess the meaning of booleans and required strings, which is inadequate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is just 'POST /notification.createEmail', which merely states the HTTP method and endpoint path. It does not explain that the tool creates an email notification, leaving the purpose ambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus other notification-create tools (e.g., notification-createDiscord, notification-createSlack). The description provides no context for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notification-createGotifyD
POST /notification.createGotify
| Name | Required | Description | Default |
|---|---|---|---|
| appBuildError | Yes | ||
| databaseBackup | Yes | ||
| dokployBackup | Yes | ||
| volumeBackup | Yes | ||
| dokployRestart | Yes | ||
| name | Yes | ||
| appDeploy | Yes | ||
| dockerCleanup | Yes | ||
| serverUrl | Yes | ||
| appToken | Yes | ||
| priority | Yes | ||
| decoration | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description lacks any behavioral details beyond the endpoint. It does not state whether this creates a notification, modifies settings, or requires authentication. Annotations only provide openWorldHint=true, which is not about 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 short (one phrase), but it fails to provide essential information. It is under-specified rather than concise. Minimal effort to convey purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 12 required parameters and no output schema, the description provides no context about what each parameter does, what the tool returns, or how it behaves. Completely inadequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain any of the 12 required parameters. Each parameter's meaning is left entirely to the schema property names, which are cryptic (e.g., appBuildError, databaseBackup).
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 only 'POST /notification.createGotify', which is the API endpoint, not a purpose statement. It does not mention creating a Gotify notification or what the tool does. This is a tautology of the name and provides no clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternative notification creation tools (e.g., notification-createCustom, notification-createDiscord). There is no mention of prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notification-createLarkD
POST /notification.createLark
| Name | Required | Description | Default |
|---|---|---|---|
| appBuildError | Yes | ||
| databaseBackup | Yes | ||
| dokployBackup | Yes | ||
| volumeBackup | Yes | ||
| dokployRestart | Yes | ||
| name | Yes | ||
| appDeploy | Yes | ||
| dockerCleanup | Yes | ||
| serverThreshold | Yes | ||
| webhookUrl | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral context beyond the annotation openWorldHint: true. It does not mention side effects, required permissions, or what happens when the webhook URL 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?
While extremely short, this is not concise but under-specified. It provides no substantive information, making it effectively useless.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 10 required parameters and no output schema, yet the description offers zero explanation of inputs or outputs. The openWorldHint annotation is insufficient to compensate for the lack of contextual detail.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description fails to explain the purpose of any of the 10 required boolean parameters (e.g., appBuildError, databaseBackup) or the webhookUrl field, forcing agents to guess their 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 is merely 'POST /notification.createLark', which is a tautology of the tool name and endpoint, providing no indication of what the tool does. It fails to state it creates a Lark notification channel.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 sibling notification creation tools like notification-createDiscord or notification-createSlack. Agents have no context for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notification-createMattermostD
POST /notification.createMattermost
| Name | Required | Description | Default |
|---|---|---|---|
| appBuildError | Yes | ||
| databaseBackup | Yes | ||
| dokployBackup | Yes | ||
| volumeBackup | Yes | ||
| dokployRestart | Yes | ||
| name | Yes | ||
| appDeploy | Yes | ||
| dockerCleanup | Yes | ||
| serverThreshold | Yes | ||
| webhookUrl | Yes | ||
| channel | No | ||
| username | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description provides no behavioral information. Annotations include openWorldHint=true indicating unknown side effects, but the description adds no context about side effects, permissions, or what happens on creation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short (one line), but it fails to provide any useful information. Conciseness should not come at the expense of clarity; this is underspecified.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 12 parameters with no explanations, no output schema, and a minimal description, the tool is severely incomplete. The agent cannot safely or correctly invoke this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 0% description coverage; the description does not explain any parameter. With 12 parameters (10 required), the agent has no insight into what each parameter does, such as webhookUrl, channel, or boolean flags.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 merely 'POST /notification.createMattermost', which is a tautology of the tool name and HTTP method. It does not state what the tool does, e.g., create a Mattermost notification channel or send a notification.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The name implies it creates a Mattermost notification, but there is no guidance on when to use this vs siblings like notification-createSlack or notification-createEmail. No prerequisites or use cases are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notification-createNtfyD
POST /notification.createNtfy
| Name | Required | Description | Default |
|---|---|---|---|
| appBuildError | Yes | ||
| databaseBackup | Yes | ||
| dokployBackup | Yes | ||
| volumeBackup | Yes | ||
| dokployRestart | Yes | ||
| name | Yes | ||
| appDeploy | Yes | ||
| dockerCleanup | Yes | ||
| serverUrl | Yes | ||
| topic | Yes | ||
| accessToken | Yes | ||
| priority | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide openWorldHint: true, indicating non-read-only behavior, but description adds no further behavioral details. No mention of side effects, authentication needs, or what gets created. Barely 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?
Description is extremely short but at the expense of substance. Not front-loaded with useful information; just the endpoint path. Lacks any structure to convey purpose or 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 complexity (12 required params, no schema descriptions, no output schema), the description provides virtually no context. Agent cannot determine tool's purpose or how to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and description does not explain any of the 12 required parameters. Agent must infer semantics from parameter names alone (e.g., appBuildError, serverUrl), which is insufficient.
Input schemas describe structure but not intent. Descriptions should explain 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 is just 'POST /notification.createNtfy' – repeats the endpoint path without stating what the tool does. Fails to specify verb+resource or distinguish from sibling notification creation tools (e.g., notification-createDiscord, notification-createSlack).
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 vs alternatives. Sibling tools include many other notification creation methods, but no mention of selection criteria or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notification-createPushoverD
POST /notification.createPushover
| Name | Required | Description | Default |
|---|---|---|---|
| appBuildError | No | ||
| databaseBackup | No | ||
| dokployBackup | No | ||
| volumeBackup | No | ||
| dokployRestart | No | ||
| name | Yes | ||
| appDeploy | No | ||
| dockerCleanup | No | ||
| serverThreshold | No | ||
| userKey | Yes | ||
| apiToken | Yes | ||
| priority | No | ||
| retry | No | ||
| expire | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With only an openWorldHint annotation (indicating potential side effects), the description fails to disclose any behavioral traits such as that this tool creates a resource, requires authentication tokens, or modifies system state. No additional context is provided.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While the description is extremely concise, it is under-specified and fails to communicate essential information. It is not a model of effective conciseness as it does not earn its place by adding 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?
Given the complexity (14 parameters, many booleans) and no output schema, the description is severely incomplete. It does not explain the tool's function, how boolean flags work together, what the return value is, or how it integrates with other 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 coverage is 0% and the description adds no meaning to the 14 parameters. The boolean flags (e.g., appBuildError, databaseBackup) are unexplained, and the required fields (name, userKey, apiToken) lack any context about their purpose or format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is merely the HTTP method and endpoint path 'POST /notification.createPushover', which adds no information beyond the tool's name. It doesn't state that this tool creates a Pushover notification configuration or distinguish it from other notification creation tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like notification-createDiscord or notification-updatePushover. The description lacks any context about the tool's purpose or usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notification-createResendD
POST /notification.createResend
| Name | Required | Description | Default |
|---|---|---|---|
| appBuildError | Yes | ||
| databaseBackup | Yes | ||
| dokployBackup | Yes | ||
| volumeBackup | Yes | ||
| dokployRestart | Yes | ||
| name | Yes | ||
| appDeploy | Yes | ||
| dockerCleanup | Yes | ||
| serverThreshold | Yes | ||
| apiKey | Yes | ||
| fromAddress | Yes | ||
| toAddresses | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description lacks any behavioral details. Even though annotations include openWorldHint: true (indicating side effects), the description itself does not disclose what side effects occur, such as creating a resend provider, persisting data, or triggering external API calls. The annotation does not compensate for the missing description.
Agents need to know what a tool does to the 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 short, it is not concise in a useful way; it lacks critical information. Every sentence should add value, but this single line adds none. It is under-specified rather than efficiently 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 the complexity (12 required parameters, no output schema, many sibling notification creation tools), the description is wholly incomplete. It fails to address what the tool returns, prerequisites, or how it differs from similar tools. The agent cannot use this tool correctly based on 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?
With 12 required parameters and 0% schema description coverage, the description adds no meaning beyond the raw schema. It does not explain the purpose of parameters like appBuildError, apiKey, fromAddress, or toAddresses. The agent has no context to correctly populate these fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is 'POST /notification.createResend', which merely restates the endpoint path. It does not explain what the tool does, such as creating a resend notification configuration or sending a test resend. This is a tautology and fails to convey the tool's purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus sibling tools like notification-createEmail or notification-createDiscord. The description gives no context for appropriate usage, leaving the agent without direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notification-createSlackD
POST /notification.createSlack
| Name | Required | Description | Default |
|---|---|---|---|
| appBuildError | Yes | ||
| databaseBackup | Yes | ||
| dokployBackup | Yes | ||
| volumeBackup | Yes | ||
| dokployRestart | Yes | ||
| name | Yes | ||
| appDeploy | Yes | ||
| dockerCleanup | Yes | ||
| serverThreshold | Yes | ||
| webhookUrl | Yes | ||
| channel | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses no behavioral traits beyond what annotations provide. Annotations include openWorldHint=true but no destructive or readOnly hints, and the description does not mention side effects, permissions, or any operational context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence, which is concise, but it sacrifices all informative content. Under-specification makes it nearly useless.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 (11 required parameters, no output schema, many siblings), the description is completely inadequate. It fails to provide any 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 input schema has 11 required parameters with 0% description coverage. The description does not explain any parameter meanings, so the agent cannot infer how to populate them correctly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'POST /notification.createSlack', which is a tautology that restates the tool name. It does not specify what the tool does or what 'notification.createSlack' means, leaving the agent without any clear purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool or how it differs from sibling tools like notification-createDiscord or notification-createEmail. The description provides no context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notification-createTeamsD
POST /notification.createTeams
| Name | Required | Description | Default |
|---|---|---|---|
| appBuildError | Yes | ||
| databaseBackup | Yes | ||
| dokployBackup | Yes | ||
| volumeBackup | Yes | ||
| dokployRestart | Yes | ||
| name | Yes | ||
| appDeploy | Yes | ||
| dockerCleanup | Yes | ||
| serverThreshold | Yes | ||
| webhookUrl | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses no behavioral traits such as side effects (creating a Teams notification), authentication requirements, or error scenarios. Annotations provide only openWorldHint: true, but the description adds no value beyond that; the agent cannot infer what happens upon execution.
Agents need to know what a tool does to the world before calling 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. It sacrifices informativeness for brevity, providing no actionable details while requiring effort from the agent to infer meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 10 required parameters, no parameter descriptions, no output schema, and many siblings, the description is critically incomplete. It fails to give the agent a functional understanding of the tool's behavior, inputs, or outputs.
Complex tools with many parameters or behaviors need more documentation. 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 10 required parameters with 0% description coverage, and the description does not add any meaning to parameters like appBuildError, webhookUrl, or name. The agent cannot understand what values to provide or how they affect notification behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'POST /notification.createTeams', which merely restates the HTTP method and endpoint path. It does not explain what the tool does, such as creating a Microsoft Teams notification with specified settings. This is a tautology that fails to clarify the tool's purpose, especially among many similar notification creation siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives like notification-createSlack or notification-createDiscord. The description lacks any context for appropriate usage, leaving the agent without decision-making information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notification-createTelegramD
POST /notification.createTelegram
| Name | Required | Description | Default |
|---|---|---|---|
| appBuildError | Yes | ||
| databaseBackup | Yes | ||
| dokployBackup | Yes | ||
| volumeBackup | Yes | ||
| dokployRestart | Yes | ||
| name | Yes | ||
| appDeploy | Yes | ||
| dockerCleanup | Yes | ||
| serverThreshold | Yes | ||
| botToken | Yes | ||
| chatId | Yes | ||
| messageThreadId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description provides no behavioral information. Annotations only include title and openWorldHint, which does not indicate side effects, required permissions, or whether this is a destructive operation. The agent gets no insight into 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?
While extremely short, the description is too minimal to be useful. It sacrifices all informative content for brevity, failing to justify its existence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 (12 required parameters, no output schema), the description is completely inadequate. It lacks any information about the tool's purpose, parameters, or behavior, leaving the agent unable 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 description coverage is 0%, and the description does not explain any of the 12 parameters. The agent has no context for what fields like botToken, chatId, or the boolean flags (e.g., appBuildError) mean or how they relate to Telegram notification behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'POST /notification.createTelegram', which merely repeats the tool name. It does not state what the tool does, e.g., whether it creates a Telegram notification configuration or sends a message. This is a tautology and provides no clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus the many sibling notification creation tools (e.g., createDiscord, createEmail). The description offers no context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notification-getEmailProvidersDRead-onlyIdempotent
GET /notification.getEmailProviders
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral information beyond the annotations. Annotations already indicate readOnlyHint, idempotentHint, and openWorldHint; the description repeats nothing useful.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short but lacks useful content. It is underspecified rather than concise, failing to front-load any actionable information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and minimal description, the tool is inadequately documented. The agent cannot infer that this likely returns a list of email provider configurations, leaving a significant gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
While there are no parameters (schema coverage 100%), the description fails to add any meaning. A baseline of 3 applies per rules, but the path-only description provides no semantic enrichment, so it is scored down.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 merely the HTTP path 'GET /notification.getEmailProviders', which is a tautology. It does not state what the tool does or what it returns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 sibling notification tools like notification-all or notification-createEmail. The agent receives no context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notification-oneCRead-onlyIdempotent
GET /notification.one
| Name | Required | Description | Default |
|---|---|---|---|
| notificationId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, idempotentHint, and openWorldHint, indicating safety and idempotence. The description adds nothing beyond the endpoint pattern, offering no additional behavioral details (e.g., error handling, response format, or rate limits).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short but under-specifies the tool. It is not conciseness that earns its place; it omits essential information. A single-line endpoint path does not adequately describe 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?
Given the tool has only one parameter and no output schema, the description should explain what the tool returns or error conditions. It lacks this context, making it incomplete for an agent to use 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 has one required parameter 'notificationId' with 0% schema description coverage. The tool description does not clarify its meaning or format. The parameter is somewhat self-explanatory, but the description fails to add 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 'GET /notification.one' is minimal and does not clearly state the action. It implies a GET request for a single notification, but fails to specify that it retrieves a notification by ID. The name 'notification-one' helps, but the description alone is vague.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like 'notification-all' or 'notification-createCustom'. The description provides no context for appropriate usage, leaving the agent without decision support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notification-receiveNotificationDIdempotent
POST /notification.receiveNotification
| Name | Required | Description | Default |
|---|---|---|---|
| ServerType | No | Dokploy | |
| Type | Yes | ||
| Value | Yes | ||
| Threshold | Yes | ||
| Message | Yes | ||
| Timestamp | Yes | ||
| Token | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations include idempotentHint and openWorldHint, but the description adds no behavioral context such as side effects, authentication needs, or what happens to the received data (e.g., storage, alerting).
Agents need to know what a tool does to the world before calling 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 (one line) but wastes that line on a non-informative HTTP endpoint. It is under-specified rather than effectively concise, as it fails to communicate the tool's 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?
Given the tool has 7 required parameters, no output schema, and only minimal annotations, the description provides virtually no context. The agent lacks fundamental understanding of when and how to invoke this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 7 parameters with 0% description coverage. The description does not explain any parameter's meaning or usage beyond the schema's type/enum definitions, failing to compensate for the lack of schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is 'POST /notification.receiveNotification', which merely restates the tool name and HTTP method. It does not specify what 'receiveNotification' does, such as accepting external webhooks or processing alerts, failing to provide a clear purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus sibling notification tools (e.g., notification-createDiscord, notification-testTelegramConnection). The description lacks context for appropriate usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notification-removeDDestructive
POST /notification.remove
| Name | Required | Description | Default |
|---|---|---|---|
| notificationId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide destructiveHint=true, indicating deletion. The description adds no behavioral context beyond that, such as irreversibility or side effects. Description does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise but inadequate. A single endpoint reference is not a proper description. It fails to front-load useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and minimal description, the tool is incomplete. A user cannot understand what the tool does or what happens after invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, and the description does not explain the 'notificationId' parameter beyond what the schema provides. No additional meaning or constraints are given.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is 'POST /notification.remove', which is an HTTP method and endpoint, not a description of the tool's purpose. It lacks a verb and resource, and does not distinguish it from sibling notification tools like notification-all or notification-delete (if it existed).
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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. With many sibling notification tools, clear usage context is missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notification-testCustomConnectionDIdempotent
POST /notification.testCustomConnection
| Name | Required | Description | Default |
|---|---|---|---|
| endpoint | Yes | ||
| headers | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide idempotentHint=true and openWorldHint=true, but the description adds no behavioral context. It does not disclose side effects, response structure, 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 excessively short and lacks substance. It is under-specified rather than concise, providing no useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has two parameters (one required, one nested object) and no output schema, the description is entirely insufficient. It does not explain the test behavior, expected response, or error handling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description provides no information about the 'endpoint' or 'headers' parameters. The agent has no semantic guidance beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description only provides the HTTP method and endpoint path, which is essentially a tautology with the tool name. It fails to state what the tool does, e.g., tests a custom notification connection.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 notification-testDiscordConnection or other testConnection tools. The description offers no context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notification-testDiscordConnectionDIdempotent
POST /notification.testDiscordConnection
| Name | Required | Description | Default |
|---|---|---|---|
| webhookUrl | Yes | ||
| decoration | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide idempotentHint=true and openWorldHint=true, but the description adds no behavioral context (e.g., whether a notification is actually sent, what happens on success/failure). It only repeats the HTTP method and path.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short but fails to convey any useful information. It is under-specified rather than concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (2 params, no output schema), a minimal description like 'Tests a Discord webhook connection' would suffice, but the current description is completely inadequate.
Complex tools with many parameters or behaviors need more documentation. 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 has 2 parameters (webhookUrl required, boolean decoration) with 0% schema description coverage. The description provides no explanation of what these parameters mean or how to use them.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description is 'POST /notification.testDiscordConnection', which is just the endpoint path. It restates the name and does not state the tool's purpose (e.g., test a Discord webhook connection). This is 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?
No usage guidance provided. With many sibling notification test connection tools (e.g., testSlack, testEmail), there is no indication of when to use this tool versus alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notification-testEmailConnectionDIdempotent
POST /notification.testEmailConnection
| Name | Required | Description | Default |
|---|---|---|---|
| smtpServer | Yes | ||
| smtpPort | Yes | ||
| username | Yes | ||
| password | Yes | ||
| toAddresses | Yes | ||
| fromAddress | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description provides no behavioral information. Annotations indicate idempotentHint=true and openWorldHint=true, but the description does not leverage or add to these. It doesn't mention side effects, permissions, or response behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short, but it is underspecified to the point of uselessness. While brevity is valued, this lacks essential content; it is not 'appropriately sized' for the tool's 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?
With 6 required parameters, no output schema, and no param descriptions, the description is severely incomplete. It fails to inform the AI about parameter formats, return values, or any contextual details 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?
Schema description coverage is 0%, yet the description offers no parameter explanations. The six required parameters (smtpServer, smtpPort, username, password, toAddresses, fromAddress) are left entirely for the AI to infer from names alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'POST /notification.testEmailConnection', which merely restates the tool name and HTTP method. It does not specify what the tool does beyond the implied HTTP POST action, offering no clear verb or resource description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 or how to use this tool. No alternatives, prerequisites, or context provided. The sibling tools include many notification-test* variants, but the description doesn't differentiate them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notification-testGotifyConnectionDIdempotent
POST /notification.testGotifyConnection
| Name | Required | Description | Default |
|---|---|---|---|
| serverUrl | Yes | ||
| appToken | Yes | ||
| priority | Yes | ||
| decoration | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral context beyond the annotations (idempotentHint, openWorldHint). It doesn't explain outcomes like success/failure, side effects, or response format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely short but under-specified. It is not appropriately sized; it sacrifices useful information for brevity, making it insufficiently 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 tool testing a connection with 3 required parameters and no output schema, the description provides zero context on what the test does, what results to expect, or any related setup.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the tool description does not explain what any parameter means (e.g., serverUrl, appToken, priority, decoration). The description fails to compensate for the lack of schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is merely the HTTP method and endpoint path. It does not state the tool's purpose beyond what the name 'testGotifyConnection' implies. Vague and uninformative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 the many sibling notification test tools. No context on prerequisites or appropriate scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notification-testLarkConnectionDIdempotent
POST /notification.testLarkConnection
| Name | Required | Description | Default |
|---|---|---|---|
| webhookUrl | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description offers no behavioral information beyond what annotations provide. While annotations indicate idempotency and open world hints, the description adds no context about side effects, prerequisites, or response behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short but fails to include essential information. While brevity is valued, this is under-specification rather than conciseness, as it does not serve the tool's usability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's single parameter, lack of output schema, and numerous similar sibling tools, the description is critically incomplete. It provides no basis for the agent to understand when or how to use this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%; the description does not explain the 'webhookUrl' parameter or its role. The schema defines it as a required string with minLength, but the description adds no meaning, leaving the parameter's semantics ambiguous.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'POST /notification.testLarkConnection' is a tautology that merely restates the tool's name and HTTP method. It provides no verb or resource explanation, making the purpose completely unclear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 guidelines are given. The description does not indicate when to use this tool versus alternative testConnection tools (e.g., testDiscordConnection, testSlackConnection), leaving the agent without any selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notification-testMattermostConnectionDIdempotent
POST /notification.testMattermostConnection
| Name | Required | Description | Default |
|---|---|---|---|
| webhookUrl | Yes | ||
| channel | No | ||
| username | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate idempotentHint=true and openWorldHint=true, which help the agent understand it can be called multiple times and may affect external systems. However, the description adds nothing beyond the annotations; it does not explain what happens during testing (e.g., sends a test message). No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very brief (one line) but lacks essential information, making it under-specified rather than concise. It does not earn its place as it provides no useful guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (3 parameters, many sibling test tools) and lack of output schema, the description is severely incomplete. It does not explain the test's behavior, return value, or prerequisites, leaving the agent to guess.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%; the description does not mention any parameters. The schema lists webhookUrl (required), channel, and username with no descriptions, so the agent must guess their purpose. The description adds no semantic value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is 'POST /notification.testMattermostConnection', which merely restates the tool name and HTTP method. It does not explain that the tool tests a Mattermost notification channel by sending a test message, nor does it distinguish it from sibling test tools like notification-testSlackConnection.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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. There is no mention that it should be used after creating a Mattermost notification to validate the webhook, or any conditions under which it should not be used.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notification-testNtfyConnectionDIdempotent
POST /notification.testNtfyConnection
| Name | Required | Description | Default |
|---|---|---|---|
| serverUrl | Yes | ||
| topic | Yes | ||
| accessToken | Yes | ||
| priority | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations include idempotentHint=true and openWorldHint=true, indicating the tool is safe to retry and interacts with an external system. The description adds no further behavioral context, but the annotations cover key traits moderately well.
Agents need to know what a tool does to the world before calling 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 fails to convey meaningful information. It is under-specified rather than concise, providing no value 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 four required parameters, no output schema, and a minimal description, the tool definition is incomplete. An agent cannot reliably determine what inputs are needed or what the tool returns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage and the tool description does not explain any of the four parameters (serverUrl, topic, accessToken, priority). The agent has no semantic guidance for these required fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is simply 'POST /notification.testNtfyConnection', which is a tautology repeating the tool name as an HTTP method and path. It does not explain that the tool tests an Ntfy connection or what that entails.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 guidelines are provided. There are many sibling test connection tools for different notification services, but the description gives no indication when to use this specific one over alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notification-testPushoverConnectionDIdempotent
POST /notification.testPushoverConnection
| Name | Required | Description | Default |
|---|---|---|---|
| userKey | Yes | ||
| apiToken | Yes | ||
| priority | Yes | ||
| retry | No | ||
| expire | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate idempotentHint and openWorldHint, but the description adds no behavioral context. It does not contradict annotations but fails to add value beyond them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short but not helpfully concise; it lacks essential information and is under-specified for an agent to select or invoke the tool correctly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 5 parameters, 0% schema coverage, no output schema, and many sibling tools, the description is severely incomplete. It should explain what the tool tests (Pushover connection), required parameters, and expected behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, meaning no parameter descriptions exist in the schema. The description provides zero information about parameters, leaving the agent with no guidance on input meanings.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 merely the HTTP method and endpoint path ('POST /notification.testPushoverConnection'), which fails to state what the tool does. It does not identify the action or resource in a meaningful 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?
No guidance is provided on when to use this tool versus alternatives. Among many similar test-connection siblings (e.g., notification-testDiscordConnection), there is no differentiation or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notification-testResendConnectionDIdempotent
POST /notification.testResendConnection
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | Yes | ||
| fromAddress | Yes | ||
| toAddresses | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description provides no behavioral details beyond the annotations (idempotentHint=true, openWorldHint=true). It does not mention that the tool likely tests an email delivery service by sending a test email, nor any rate limits or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While the description is short, it is under-specified rather than appropriately concise. A single line that adds no information is not an effective use 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 tool with three required parameters, no output schema, and many similar sibling tools, the description is severely lacking. Essential context about inputs, outputs, and usage is entirely missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description must compensate by explaining the parameters (apiKey, fromAddress, toAddresses), but it adds nothing. The purpose and meaning of these fields remain unclear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description merely repeats the HTTP method and endpoint as 'POST /notification.testResendConnection', which is a tautology of the tool name. It fails to explicitly state what the tool does, such as testing a Resend email notification connection.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 alternative notification test tools (e.g., notification-testEmailConnection, notification-testSlackConnection). The description lacks any context about the appropriate use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notification-testSlackConnectionDIdempotent
POST /notification.testSlackConnection
| Name | Required | Description | Default |
|---|---|---|---|
| webhookUrl | Yes | ||
| channel | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations include idempotentHint=true and openWorldHint=true, but the description adds no behavioral detail. It does not mention side effects, auth requirements, or what the test entails beyond the endpoint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely short but at the cost of being completely uninformative. Every sentence should add value; this one adds none.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 2 required parameters, no output schema, and no description of return values. For a test connection tool, success/failure indication is critical but omitted. The description is wholly inadequate for an agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description provides no additional meaning for the two required parameters (webhookUrl, channel). The parameter purposes remain entirely unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description is tautological ('POST /notification.testSlackConnection') and does not state what the tool does. It fails to indicate that it tests a Slack connection, which is implied only by the tool name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus sibling tools like notification-testDiscordConnection. There are many similar test connection tools, and the description provides no distinguishing context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notification-testTeamsConnectionDIdempotent
POST /notification.testTeamsConnection
| Name | Required | Description | Default |
|---|---|---|---|
| webhookUrl | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate idempotentHint and openWorldHint, providing some behavioral context, but the description adds no further disclosure. It does not explain whether a test notification is actually sent, what happens on success/failure, or any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short (one fragment), which might seem concise but is actually under-specified. There is no front-loaded purpose statement, and the sentence fails to justify its existence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 existence of many sibling test connection tools, the description should differentiate this tool's specific role. It provides no differentiation, no output schema, and insufficient context for an agent 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?
The input schema has one required parameter 'webhookUrl' with no description. The tool description provides zero additional meaning about this parameter, such as format expectations or purpose, despite 0% schema description 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?
Description is merely the HTTP method and endpoint path 'POST /notification.testTeamsConnection', which restates the tool name without clarifying what the tool does. It fails to specify that it tests a Microsoft Teams webhook connection by sending a test notification.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like notification-testDiscordConnection or notification-testSlackConnection. There is no context for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notification-testTelegramConnectionDIdempotent
POST /notification.testTelegramConnection
| Name | Required | Description | Default |
|---|---|---|---|
| botToken | Yes | ||
| chatId | Yes | ||
| messageThreadId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide idempotentHint=true and openWorldHint=true, but the description adds no behavioral details such as success/failure indicators or side effects. Transparency is minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, but it is under-specified to the point of being uninformative. It does not earn its place as it adds no useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 3 required parameters, no output schema, and many sibling test connection tools, the description is completely inadequate. It fails to explain the tool's purpose, parameter usage, or return value.
Complex tools with many parameters or behaviors need more documentation. 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 3 parameters with 0% description coverage, and the tool description provides no additional meaning. The agent receives no hint about what botToken, chatId, or messageThreadId represent.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 merely 'POST /notification.testTelegramConnection', which is a tautology of the tool name. It does not state that this tool tests a Telegram connection, leaving the purpose unclear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 alternative notification test tools (e.g., testDiscordConnection). The description offers no context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notification-updateCustomDIdempotent
POST /notification.updateCustom
| Name | Required | Description | Default |
|---|---|---|---|
| appBuildError | No | ||
| databaseBackup | No | ||
| dokployBackup | No | ||
| volumeBackup | No | ||
| dokployRestart | No | ||
| name | No | ||
| appDeploy | No | ||
| dockerCleanup | No | ||
| serverThreshold | No | ||
| endpoint | No | ||
| headers | No | ||
| notificationId | Yes | ||
| customId | Yes | ||
| organizationId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral information. Annotations declare idempotentHint and openWorldHint, but the description does not elaborate on the tool's behavior, such as what gets updated, side effects, or error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short but at the expense of informativeness. It is under-specified, not concise. A good description would front-load the purpose while being succinct.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 (14 parameters, nested objects, no output schema), the description is completely inadequate. It does not help an agent understand what the tool does, how to use its parameters, or what to expect as a 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 description provides zero information about the 14 parameters. With 0% schema description coverage, the description must compensate, but it does not. Required parameters like notificationId and customId are left unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is merely 'POST /notification.updateCustom', which is a technical endpoint path, not a clear statement of purpose. It fails to explain what the tool does in natural language. The title 'Notification UpdateCustom' is only in annotations, not in the description 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 provided on when to use this tool versus the many other notification-update tools (e.g., notification-updateDiscord, notification-updateEmail). There is no mention of context, prerequisites, or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notification-updateDiscordDIdempotent
POST /notification.updateDiscord
| Name | Required | Description | Default |
|---|---|---|---|
| appBuildError | No | ||
| databaseBackup | No | ||
| dokployBackup | No | ||
| volumeBackup | No | ||
| dokployRestart | No | ||
| name | No | ||
| appDeploy | No | ||
| dockerCleanup | No | ||
| serverThreshold | No | ||
| webhookUrl | No | ||
| decoration | No | ||
| notificationId | Yes | ||
| discordId | Yes | ||
| organizationId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide idempotentHint and openWorldHint but no readOnlyHint or destructiveHint. The description adds no behavioral information beyond the endpoint. For a mutation tool, important details like effects of updates, required permissions, and response behavior are missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short but fails to convey any meaningful information. It is under-specified rather than concise, providing no value to the agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 (14 parameters, no output schema, lack of parameter descriptions), the description is completely inadequate. It does not differentiate from sibling tools or help the agent understand the tool's role.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain any of the 14 parameters. Many boolean toggles and string fields like webhookUrl remain undefined. The tool fails to convey what each parameter 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 is just 'POST /notification.updateDiscord', which is a tautology. It does not state what the tool does or what resource it acts on. The title from annotations is also vague. Given sibling tools like createDiscord, testDiscordConnection, it likely updates an existing Discord notification, but this is not communicated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 notification-createDiscord or notification-testDiscordConnection. The description offers no context for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notification-updateEmailDIdempotent
POST /notification.updateEmail
| Name | Required | Description | Default |
|---|---|---|---|
| appBuildError | No | ||
| databaseBackup | No | ||
| dokployBackup | No | ||
| volumeBackup | No | ||
| dokployRestart | No | ||
| name | No | ||
| appDeploy | No | ||
| dockerCleanup | No | ||
| serverThreshold | No | ||
| smtpServer | No | ||
| smtpPort | No | ||
| username | No | ||
| password | No | ||
| fromAddress | No | ||
| toAddresses | No | ||
| notificationId | Yes | ||
| emailId | Yes | ||
| organizationId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds nothing beyond the annotations (idempotentHint: true, openWorldHint: true). It does not disclose critical behavioral traits such as whether it creates or updates, what data it modifies, or any side effects. Annotations carry some burden, but the description should provide context like update scope or configuration details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While extremely short, the description sacrifices essential information. It is under-specified and fails to earn its place by providing actionable guidance. True conciseness requires completeness within minimal 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 high parameter count (18), no output schema, and the presence of many sibling tools, the description is entirely inadequate. It does not explain the tool's purpose, usage, or behavior, leaving a significant gap in understanding 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?
With 18 parameters and 0% schema description coverage, the description must compensate by explaining parameter meanings. It does not mention any parameter, leaving the agent to guess the purpose of fields like appBuildError, smtpServer, toAddresses, etc.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'POST /notification.updateEmail' is essentially a tautology of the tool name, providing no additional insight into what the tool does. Among many sibling update tools, it fails to differentiate this one from others like notification-updateDiscord or notification-updateSlack.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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. There is no mention of prerequisites, context, or exclusions, making it impossible for an agent to decide when to invoke it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notification-updateGotifyDIdempotent
POST /notification.updateGotify
| Name | Required | Description | Default |
|---|---|---|---|
| appBuildError | No | ||
| databaseBackup | No | ||
| dokployBackup | No | ||
| volumeBackup | No | ||
| dokployRestart | No | ||
| name | No | ||
| appDeploy | No | ||
| dockerCleanup | No | ||
| serverUrl | No | ||
| appToken | No | ||
| priority | No | ||
| decoration | No | ||
| notificationId | Yes | ||
| gotifyId | Yes | ||
| organizationId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations set idempotentHint=true and openWorldHint=true, but the description adds no behavioral context. It does not mention side effects, required permissions, or output, so the agent lacks essential transparency for a mutation-like update 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 too short (merely the endpoint) and fails to convey purpose, usage, or parameter context. It is under-specified rather than concise, wasting the opportunity to aid the agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 (15 parameters, no output schema), the description is grossly incomplete. It lacks any elaboration on behavior, return values, or parameter roles, making it nearly useless for an AI agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage and 15 parameters (including many booleans), the description provides no meaning for the parameters. The agent cannot infer what fields like appBuildError, databaseBackup, or decoration control, making correct invocation unlikely.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 only 'POST /notification.updateGotify', which restates the tool name and endpoint path without explaining what the tool does. It does not specify the verb (update), resource (Gotify notification), or differentiate from sibling tools like notification-updateCustom or notification-testGotifyConnection.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 state prerequisites, scope, or exclusions, leaving the agent to guess.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notification-updateLarkDIdempotent
POST /notification.updateLark
| Name | Required | Description | Default |
|---|---|---|---|
| appBuildError | No | ||
| databaseBackup | No | ||
| dokployBackup | No | ||
| volumeBackup | No | ||
| dokployRestart | No | ||
| name | No | ||
| appDeploy | No | ||
| dockerCleanup | No | ||
| serverThreshold | No | ||
| webhookUrl | No | ||
| notificationId | Yes | ||
| larkId | Yes | ||
| organizationId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide idempotentHint and openWorldHint, indicating safe repeatability and potential side effects beyond input schema. The description adds no behavioral context beyond the endpoint string, so it contributes minimal value beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short but not concise in a helpful way—it is underspecified. It consists of only the endpoint string, which does not earn its place as a useful description. Front-loading is irrelevant when the content is absent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 (13 parameters, no output schema, numerous siblings) and the lack of parameter descriptions, the description is completely inadequate. It fails to provide necessary context for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 13 parameters with 0% description coverage, and the description adds no meaning to any parameter. An AI agent receives no guidance on what each boolean or string field controls, leaving the tool nearly unusable without external knowledge.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'POST /notification.updateLark', which is merely the HTTP method and endpoint. It does not state what the tool does in plain language; it is a tautology of the tool name. The title provides some context but the description itself fails to clarify purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus its many siblings (e.g., notification-updateDiscord, notification-updateSlack). The title 'Notification UpdateLark' hints at updating a Lark notification, but the description offers no explicit when-to-use or when-not-to-use instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notification-updateMattermostDIdempotent
POST /notification.updateMattermost
| Name | Required | Description | Default |
|---|---|---|---|
| appBuildError | No | ||
| databaseBackup | No | ||
| dokployBackup | No | ||
| volumeBackup | No | ||
| dokployRestart | No | ||
| name | No | ||
| appDeploy | No | ||
| dockerCleanup | No | ||
| serverThreshold | No | ||
| webhookUrl | No | ||
| channel | No | ||
| username | No | ||
| notificationId | Yes | ||
| mattermostId | Yes | ||
| organizationId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations include idempotentHint=true and openWorldHint=true, but the description adds no behavioral context beyond the endpoint. It does not contradict annotations, but it fails to disclose any traits such as side effects, authorization needs, or return behavior. With annotations present, the description carries a lower burden but still contributes nothing.
Agents need to know what a tool does to the world before calling 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 (just the endpoint) but not concise in a helpful sense; it under-specifies the tool entirely. Every sentence should earn its place, and this single sentence adds no value beyond the tool name itself.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 (15 parameters, no output schema, no param descriptions), the description is completely inadequate. It lacks any context about the expected effect, return value, or how to use it alongside sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 15 parameters with zero description coverage (schema_description_coverage=0%). The description provides no explanation of any parameter's meaning, purpose, or expected values, forcing the agent to rely solely on parameter names, which are ambiguous (e.g., 'appBuildError', 'name', 'channel').
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 a tautology: 'POST /notification.updateMattermost' simply restates the tool name and HTTP method. It does not specify what the tool does, what resource it acts on, or how it differs from siblings like notification-updateSlack or notification-createMattermost.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 lacks any indication of when to use this tool versus the many sibling notification-update* tools (e.g., updateSlack, updateCustom), and there is no mention of prerequisites, context, or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notification-updateNtfyDIdempotent
POST /notification.updateNtfy
| Name | Required | Description | Default |
|---|---|---|---|
| appBuildError | No | ||
| databaseBackup | No | ||
| dokployBackup | No | ||
| volumeBackup | No | ||
| dokployRestart | No | ||
| name | No | ||
| appDeploy | No | ||
| dockerCleanup | No | ||
| serverUrl | No | ||
| topic | No | ||
| accessToken | No | ||
| priority | No | ||
| notificationId | Yes | ||
| ntfyId | Yes | ||
| organizationId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide idempotentHint and openWorldHint, but the description adds no behavioral context. It does not disclose traits like authentication needs or side effects. However, it does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise but under-specified. It is a single line that provides no useful information, failing to earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 15 parameters, no output schema, and zero schema descriptions, the description is completely inadequate. It lacks necessary context for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds no meaning to the 15 parameters. Schema description coverage is 0%, and the tool description does not explain any parameter or their roles.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is just the endpoint path 'POST /notification.updateNtfy', which is a tautology. It does not state what the tool does beyond the name, failing to specify that it updates an Ntfy notification.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives (e.g., notification-createNtfy, notification-updateCustom). The description lacks any context about appropriate usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notification-updatePushoverDIdempotent
POST /notification.updatePushover
| Name | Required | Description | Default |
|---|---|---|---|
| notificationId | Yes | ||
| pushoverId | Yes | ||
| organizationId | No | ||
| userKey | No | ||
| apiToken | No | ||
| priority | No | ||
| retry | No | ||
| expire | No | ||
| appBuildError | No | ||
| databaseBackup | No | ||
| dokployBackup | No | ||
| volumeBackup | No | ||
| dokployRestart | No | ||
| name | No | ||
| appDeploy | No | ||
| dockerCleanup | No | ||
| serverThreshold | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate idempotent and openWorld hints, but the description adds no behavioral context. It does not mention effects, permissions, or limitations beyond what annotations already convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While very short, it is under-specified rather than concise. It lacks substantive content and wastes the opportunity to convey necessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 17 parameters, no output schema, and many sibling notification tools, the description is completely inadequate to help an agent correctly select and invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the tool description does not explain any of the 17 parameters. The description fails to add meaning to the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'POST /notification.updatePushover' is a tautology; it simply repeats the tool name and HTTP method without stating what the tool does. There is no verb or resource description beyond 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?
No guidance is provided on when to use this tool vs alternatives like creation or testing. The description lacks any context for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notification-updateResendDIdempotent
POST /notification.updateResend
| Name | Required | Description | Default |
|---|---|---|---|
| appBuildError | No | ||
| databaseBackup | No | ||
| dokployBackup | No | ||
| volumeBackup | No | ||
| dokployRestart | No | ||
| name | No | ||
| appDeploy | No | ||
| dockerCleanup | No | ||
| serverThreshold | No | ||
| apiKey | No | ||
| fromAddress | No | ||
| toAddresses | No | ||
| notificationId | Yes | ||
| resendId | Yes | ||
| organizationId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide idempotentHint and openWorldHint, but the description adds no behavioral context such as permissions required, side effects, or response nature. It does not contradict annotations but fails to add value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short but at the expense of completeness. It is under-specification rather than concise; every necessary sentence is missing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (15 parameters, many boolean flags for notification types, no output schema), the description is completely inadequate. An agent cannot determine what fields to set or when to use it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description provides no information on parameter meanings. With 15 parameters including booleans and strings, the lack of any parameter description is a critical gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is merely the HTTP method and endpoint path, not a statement of what the tool does. It fails to communicate the action (update a Resend notification) or the resource, making it effectively missing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 sibling notification update tools (e.g., notification-updateEmail). The description does not indicate the channel type or context for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notification-updateSlackDIdempotent
POST /notification.updateSlack
| Name | Required | Description | Default |
|---|---|---|---|
| appBuildError | No | ||
| databaseBackup | No | ||
| dokployBackup | No | ||
| volumeBackup | No | ||
| dokployRestart | No | ||
| name | No | ||
| appDeploy | No | ||
| dockerCleanup | No | ||
| serverThreshold | No | ||
| webhookUrl | No | ||
| channel | No | ||
| notificationId | Yes | ||
| slackId | Yes | ||
| organizationId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide idempotentHint=true and openWorldHint=true, but the description adds no behavioral details. The description does not disclose side effects, authorization needs, or other traits beyond what annotations offer.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is extremely short but fails to convey any meaningful information. It is under-specified rather than concise, wasting the opportunity to provide useful guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 14 parameters, no output schema, and a trivial description, the definition is severely incomplete. An AI agent cannot effectively determine how to 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?
Schema has 14 parameters with 0% documentation in description. The description provides no explanation of parameter meanings, formats, or relationships. The parameter names are partially self-explanatory but the description should add 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?
Description is just 'POST /notification.updateSlack', which barely indicates it updates a Slack notification. It is vague and does not specify the resource or action clearly beyond the endpoint.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives like notification-createSlack or notification-testSlackConnection. The description provides no context on prerequisites or appropriate use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notification-updateTeamsDIdempotent
POST /notification.updateTeams
| Name | Required | Description | Default |
|---|---|---|---|
| appBuildError | No | ||
| databaseBackup | No | ||
| dokployBackup | No | ||
| volumeBackup | No | ||
| dokployRestart | No | ||
| name | No | ||
| appDeploy | No | ||
| dockerCleanup | No | ||
| serverThreshold | No | ||
| webhookUrl | No | ||
| notificationId | Yes | ||
| teamsId | Yes | ||
| organizationId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral information beyond the annotations. While annotations indicate idempotentHint and openWorldHint, the description fails to disclose any side effects, permissions required, or other behavioral 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 extremely short (one line), but its brevity comes at the cost of completeness. It is under-specified and does not earn its place by providing necessary context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (13 parameters, many sibling tools, no output schema), the description is wholly insufficient. It provides no guidance on parameter usage, input formation, or expected behavior, making it nearly impossible for an agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage and a bare description, no parameter meaning is provided. The 13 parameters, including many boolean flags and string identifiers, are unexplained, leaving the agent unable to determine correct usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is merely 'POST /notification.updateTeams', which restates the tool name without providing any specific verb or resource clarification. It fails to convey what the tool does, such as updating a Teams notification channel.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 guidelines are provided on when to use this tool versus alternative notification-update tools (e.g., notification-updateSlack, notification-updateDiscord). The agent has no context to differentiate between them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notification-updateTelegramDIdempotent
POST /notification.updateTelegram
| Name | Required | Description | Default |
|---|---|---|---|
| appBuildError | No | ||
| databaseBackup | No | ||
| dokployBackup | No | ||
| volumeBackup | No | ||
| dokployRestart | No | ||
| name | No | ||
| appDeploy | No | ||
| dockerCleanup | No | ||
| serverThreshold | No | ||
| botToken | No | ||
| chatId | No | ||
| messageThreadId | No | ||
| notificationId | Yes | ||
| telegramId | Yes | ||
| organizationId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations include idempotentHint=true and openWorldHint=true, but the description adds no behavioral context. It does not state side effects, required permissions, or what changes occur. With annotations present, the description adds minimal value beyond them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single line, but it is under-specified rather than concise. It fails to convey essential information about the tool's functionality, structure, or usage. Being short is not beneficial if it is useless.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 (15 parameters, no output schema, rich sibling set), the description is completely inadequate. It does not explain what the tool does, what values it modifies, or what the response indicates. No guidance on required parameters or relationships.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, meaning no parameter descriptions. The description provides no additional meaning for the 15 parameters. While some boolean names are self-explanatory, fields like botToken, chatId, notificationId, and telegramId still lack context on format or purpose.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is 'POST /notification.updateTelegram', which is a tautology repeating the endpoint. It does not state what the tool does (e.g., updates an existing Telegram notification configuration). Given siblings like notification-createTelegram, the name implies update, but the description provides no clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidance is provided. The description does not explain when to use this tool versus notification-createTelegram or other notification-update* tools. The agent has no context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
organization-activeDRead-onlyIdempotent
GET /organization.active
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the description adds no behavioral context beyond the endpoint path. It does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short (one phrase) but lacks any explanatory front-loading. It is under-specified, not concisely 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?
Without an output schema, the description does not explain what 'active' returns or how to interpret the response. For a simple GET endpoint, more context on behavior would help 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?
There are zero parameters (schema coverage 100%), and the guidelines indicate a baseline of 4 for such cases. The description does not need to add parameter info.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 /organization.active' is a tautology that merely restates the tool name; it does not specify what the tool does, what 'active' means, or what resource is accessed. It fails to provide a verb+resource description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 (e.g., organization-all, organization-one). No context about prerequisites or alternatives is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
organization-allCRead-onlyIdempotent
GET /organization.all
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the safety profile is clear. The description adds no additional behavioral context (e.g., pagination, return format), providing no value beyond what annotations convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (one line) but under-specified. It does not explain what the tool returns or how to interpret the result, which is essential for an agent to use it 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?
Given no output schema, the description should at least state that it returns a list of organizations. It fails to do so, leaving the agent guessing about the response format. For a simple listing tool, this 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?
With no parameters and 100% schema coverage, the baseline is 4. The description need not add parameter info since no parameters 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 'GET /organization.all' indicates it's a GET request to list all organizations, which distinguishes it from sibling tools like 'organization-one' (single) and 'organization-create' (create). However, it lacks specificity about scope (e.g., all organizations accessible to the user or in the system), making it minimally clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., 'organization-one' for a specific organization). The description does not mention prerequisites, filters, 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.
organization-allInvitationsCRead-onlyIdempotent
GET /organization.allInvitations
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and openWorldHint=true, which indicate a safe, idempotent read operation. The description adds no additional behavioral context, but it does not contradict the annotations. The burden is partially met by the annotations, so the score is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (one short line) but under-specified. It lacks clarity and fails to convey the tool's function effectively, making it more under-informative than concisely 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?
Given no output schema, the description should at least indicate what the tool returns (e.g., 'Returns a list of all invitations'). It does not, so the description is incomplete for this simple read operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, and schema description coverage is 100% trivially. The description does not add parameter semantics, but there is nothing to add. 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 'GET /organization.allInvitations' only hints at listing invitations via the HTTP method and path, but it does not explicitly state the tool's purpose (e.g., 'List all invitations'). This is a tautology of the tool name, lacking a clear verb+resource statement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 siblings like 'organization-inviteMember' or 'organization-removeInvitation'. The agent is left to infer the tool's role 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.
organization-createD
POST /organization.create
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| logo | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description offers no behavioral insights beyond what is inferred from the name. The annotation openWorldHint: true hints at side effects, but the description does not add any details about the creation process, such as permissions required, idempotency, or allowed field values. It fails to leverage the opportunity to disclose important behaviors.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise but at the cost of omitting essential information. It is under-specified rather than efficiently informative, making it insufficient for an AI agent to understand the tool's purpose and usage.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (two parameters, no output schema, no param descriptions) and the presence of many sibling tools, the description fails to provide any meaningful context. It does not explain return values, side effects, or how this creation affects the system state.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, placing the full burden on the description to explain parameters. The description does not define what 'name' or 'logo' represent, their expected formats, or constraints. This is a critical gap that severely impairs correct invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'POST /organization.create' is minimal and only provides the HTTP method and endpoint path. It does not explicitly state that this tool creates an organization, relying on the name and path to imply the purpose. This is vague and lacks the clarity needed for an agent to understand the 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?
No usage guidelines are provided. The description does not indicate when to use this tool versus other organization-related siblings (e.g., organization-update, organization-delete). There is no context on prerequisites or conditions for creation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
organization-deleteDDestructive
POST /organization.delete
| Name | Required | Description | Default |
|---|---|---|---|
| organizationId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide destructiveHint=true and openWorldHint=true. The description adds no additional behavioral context such as permanence, cascading effects, or permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise but under-specified. The raw endpoint string 'POST /organization.delete' is not a proper description and lacks structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 output schema, the description should clarify expected outcomes, return values, or side effects. None provided.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the description does not explain the 'organizationId' parameter. No guidance on format, source, or effect of 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 is 'POST /organization.delete', which essentially restates the tool name without explaining what it does. It lacks a clear verb-resource statement like 'Delete an organization'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 organization-related tools (e.g., organization-update, organization-remove). No context on preconditions or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
organization-inviteMemberDIdempotent
POST /organization.inviteMember
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | |||
| role | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds zero behavioral context beyond annotations. Annotations indicate idempotentHint and openWorldHint, but the description does not clarify effects (e.g., 'Sends an invitation email') or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While short, the description is not concise in a helpful way; it is under-specified. Every sentence should inform, but here only the endpoint is repeated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 minimal description, the tool's return value, error states, and side effects are completely undocumented. Incomplete for a mutation tool with 2 required 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 0%, and the description provides no parameter meaning or allowed values. The 'role' parameter lacks enum hints, and 'email' pattern is not explained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is merely the HTTP method and endpoint, which restates the tool name without explaining what the tool does (e.g., 'Invite a user to the organization'). No verb or resource purpose is articulated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 sibling tools like organization-create or organization-updateMemberRole. Missing context about prerequisites or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
organization-oneDRead-onlyIdempotent
GET /organization.one
| Name | Required | Description | Default |
|---|---|---|---|
| organizationId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the read-only nature is clear. The description adds no new behavioral information, but does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short (one line) but sacrifices necessary detail; it is under-specified rather than efficiently concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and a single parameter, the description should at least indicate what the tool returns (e.g., an organization object) but does not, leaving the agent without a complete understanding of 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?
Schema description coverage is 0%, and the description fails to explain the required 'organizationId' parameter, leaving the agent without guidance on its meaning or usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description 'GET /organization.one' is a tautology of the tool name 'organization-one', adding no semantic information about what the tool does or how it differs from siblings like 'organization-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?
No guidance is provided on when to use this tool versus alternatives; the description lacks any usage context or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
organization-removeInvitationDDestructive
POST /organization.removeInvitation
| Name | Required | Description | Default |
|---|---|---|---|
| invitationId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare destructiveHint=true and openWorldHint=true, but the description adds no behavioral context beyond that. It does not explain side effects, auth requirements, or what happens post-removal. Description adds minimal value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely short (one line), but at the cost of being uninformative. Does not earn its place due to lack of content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple tool (single param, no output schema), the description is severely incomplete. It does not state the tool's purpose, parameter meaning, or any usage context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%. The description does not explain the 'invitationId' parameter at all, leaving the agent without any semantic understanding beyond the name.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description is 'POST /organization.removeInvitation', which is a tautology restating the endpoint. It does not use a verb or explicitly state what the tool does beyond implying removal of an invitation from the name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives (e.g., organization-inviteMember, organization-allInvitations). No context about prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
organization-setDefaultDIdempotent
POST /organization.setDefault
| Name | Required | Description | Default |
|---|---|---|---|
| organizationId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations (idempotentHint: true, openWorldHint: true) already indicate repeatable safe calls and potential external side effects. However, the description adds no additional behavioral context, such as what changes are made or what permissions are required. With annotations present, the bar is lower, but the description still fails to contribute valuable 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 line, but it is not concisely helpful—it is under-specified. It omits critical information that an agent needs, making it wasteful rather than efficient. Every sentence should earn its place; this one does not.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having only one parameter and no output schema, the tool exists among many organization-related siblings. The description is completely inadequate: it does not explain the tool's effect, side effects, or how it differs from similar tools like 'organization-update'. An agent cannot use this tool correctly based solely on the description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning the description must explain the single parameter 'organizationId'. The description says nothing about it, leaving the agent uncertain about what organization ID to provide or its purpose. The schema alone is insufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'POST /organization.setDefault' is essentially a tautology, restating the tool's name and adding the HTTP method. It fails to explain what the tool does, such as setting a default organization for the user or another context. This provides no clarity for an AI agent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidance is provided. The description does not indicate when to use this tool versus siblings like organization-update, organization-active, or organization-one. The agent has no basis to choose this tool over alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
organization-updateDIdempotent
POST /organization.update
| Name | Required | Description | Default |
|---|---|---|---|
| organizationId | Yes | ||
| name | Yes | ||
| logo | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral insights beyond what annotations already provide (idempotentHint, openWorldHint). It does not specify preconditions, side effects, or response expectations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Overly terse; one line is under-specification, not conciseness. Missing essential details that should be 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?
Fails to meet the needs of a 3-parameter tool with no output schema and many siblings. Provides virtually no useful context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema coverage and no parameter descriptions in the text, the agent gets no help understanding the meaning or constraints of organizationId, name, or logo.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'POST /organization.update' barely indicates an update operation but fails to specify what is updated or the resource affected. It relies on the tool name, which is mediocre.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 sibling tools like organization-create or organization-delete. Lacks context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
organization-updateMemberRoleDIdempotent
POST /organization.updateMemberRole
| Name | Required | Description | Default |
|---|---|---|---|
| memberId | Yes | ||
| role | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral information beyond what annotations (idempotentHint, openWorldHint) already provide. It does not disclose side effects, permission requirements, or what happens on success/failure. Annotations carry the entire burden and offer only two hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short with only 30 characters, but this is due to underspecification, not effective conciseness. Every sentence (if any) must earn its place; here, it provides no value. A concise but informative description would be longer.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero output schema, no parameter descriptions, and minimal annotations, the description critically lacks context. The agent cannot infer success/error responses, required permissions, or the scope of changes. The tool is completely underspecified for safe and correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does nothing to clarify 'memberId' or 'role'. The role parameter has a minLength constraint but no enum or allowed values; the agent cannot determine valid role strings. No meaning is added beyond the bare type information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'POST /organization.updateMemberRole' merely restates the tool name and HTTP method. It does not clarify that the tool updates a member's role within an organization, which is only implied by the name. With siblings like 'inviteMember' and 'removeInvitation', the agent needs explicit confirmation of the 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 provides no guidance on when to use this tool versus alternatives like 'organization-update' or 'organization-inviteMember'. No prerequisites or conditions are mentioned, leaving the agent without context for appropriate invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
patch-byEntityIdCRead-onlyIdempotent
GET /patch.byEntityId
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| type | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint and idempotentHint, so the description does not need to re-state those. However, it adds no additional behavioral context, such as what entity types are supported or the effect of the 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 short but lacks substance. It is under-specified and does not convey essential information concisely.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, no explanation of return values, and minimal context about the tool's role within the patch domain. The description is insufficient for an agent to understand when or how 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?
Schema coverage is 0% and the description does not elaborate on parameters. It fails to explain the meaning of 'id' and 'type' values beyond the enum.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is just 'GET /patch.byEntityId', which restates the HTTP method and endpoint without clarifying the tool's purpose. It does not explain what 'byEntityId' means or how it differs from sibling tools like patch-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?
No guidance on when to use this tool versus alternatives. The description does not indicate prerequisites, exclusions, or compare to other patch-* tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
patch-cleanPatchReposDIdempotent
POST /patch.cleanPatchRepos
| Name | Required | Description | Default |
|---|---|---|---|
| serverId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare idempotentHint=true and openWorldHint=true, but the description adds no further behavioral context. It does not contradict annotations but adds no value beyond them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short, but it is under-specified rather than concise. It lacks necessary information, making it inefficient for an AI agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 over a hundred sibling tools and no output schema, the description fails to explain what 'cleanPatchRepos' does or how it differs from similar tools. It is completely inadequate.
Complex tools with many parameters or behaviors need more documentation. 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 one parameter 'serverId' with 0% schema description coverage. The description does not mention this parameter or its purpose, providing no semantic help.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'POST /patch.cleanPatchRepos' merely restates the tool name with an HTTP method, offering no verb or resource explanation. It is a tautology and fails to indicate what the tool actually does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus sibling tools like patch-create or patch-delete. The description provides no context for its usage at all.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
patch-createD
POST /patch.create
| Name | Required | Description | Default |
|---|---|---|---|
| filePath | Yes | ||
| content | Yes | ||
| type | No | ||
| enabled | No | ||
| applicationId | No | ||
| composeId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide title and openWorldHint (suggesting unknown side effects), but the description adds no behavioral context. For a tool with minimal annotation coverage, the description should disclose more, such as whether it creates a patch file or applies it, or any destructive actions.
Agents need to know what a tool does to the world before calling 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 lacks substance; it is under-specification, not effective conciseness. Every sentence should earn its place, but here there is only a URL fragment.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (6 parameters, no output schema, no return description), the definition is wholly inadequate. An agent cannot determine the tool's purpose, inputs, or effects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, and the description adds zero information about any of the 6 parameters, including the required filePath and content, or the optional type, enabled, applicationId, composeId.
Input schemas describe structure but not intent. Descriptions should explain 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 is 'POST /patch.create', which merely repeats the tool name and HTTP method without stating what the tool does. It does not distinguish it from siblings like patch-update or patch-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?
No guidance on when to use this tool vs alternatives. The description provides no context about prerequisites, scenarios, 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.
patch-deleteDDestructive
POST /patch.delete
| Name | Required | Description | Default |
|---|---|---|---|
| patchId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral information beyond the annotations (destructiveHint: true). While it does not contradict the annotations, it fails to elaborate on side effects, irreversibility, or permissions, which is minimal value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely short (one word plus HTTP method) but this is under-specification, not conciseness. It fails to communicate meaningful information, wasting the opportunity to aid the agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
As a deletion tool with siblings and annotations indicating destructiveness, the description offers no context about what a 'patch' is, the effect of deletion, or any related operations. It is inadequate for proper tool selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain the 'patchId' parameter at all. The parameter's meaning and usage are entirely left to the schema, which lacks 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 'POST /patch.delete' is a tautology that merely echoes the tool name and HTTP method. It does not state the action (delete a patch) or the resource being acted upon, failing to provide a clear purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus siblings like patch-create, patch-update, or patch-one. There is no context about prerequisites, alternatives, or appropriate scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
patch-ensureRepoDIdempotent
POST /patch.ensureRepo
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| type | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide idempotentHint=true and openWorldHint=true, but description adds no behavioral context beyond annotations. No mention of what 'ensureRepo' does, effects, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is too terse; it sacrifices clarity for brevity. A single line is insufficient to convey purpose, leading to under-specification.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 two required parameters, no output schema, and annotations, the description is severely incomplete. An agent cannot understand what the tool does or when to invoke it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and description does not explain parameters. The 'id' or 'type' fields carry no meaning from the description. Enum values are not clarified.
Input schemas describe structure but not intent. Descriptions should explain 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 is just 'POST /patch.ensureRepo' which does not state what the tool does. The title 'Patch EnsureRepo' is vague, and no verb-resource clarity is provided. It is missing/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?
No guidance on when to use this tool versus alternatives like other patch-* tools or application/compose tools. No context about conditions or scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
patch-markFileForDeletionDIdempotent
POST /patch.markFileForDeletion
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| type | Yes | ||
| filePath | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations include idempotentHint and openWorldHint, but the description adds no behavioral context. It does not disclose side effects, prerequisites, or system impact beyond the raw endpoint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely short but not concise—it omits essential information. Effective conciseness requires completeness; this is under-specification.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given three required parameters and no output schema, the description should compensate with context. It provides none, leaving the agent completely uninformed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the burden falls entirely on the tool description, which offers zero explanation of parameters (id, type, filePath) or their semantics. The 'type' enum is not clarified.
Input schemas describe structure but not intent. Descriptions should explain 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 'POST /patch.markFileForDeletion' merely restates the tool name in HTTP verb format. It does not explain what 'mark file for deletion' means or what the tool accomplishes, making it 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?
No guidance on when to use this tool versus siblings like patch-delete or patch-update. The description provides no context for decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
patch-oneDRead-onlyIdempotent
GET /patch.one
| Name | Required | Description | Default |
|---|---|---|---|
| patchId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint, idempotentHint, but the description adds no behavioral context beyond that. It doesn't clarify what 'patch.one' retrieves 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?
Extremely concise but under-specified. The description is a single line lacking structure or additional sentences to aid 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 no output schema, multiple sibling patches, and a single parameter, the description fails to provide necessary context about what the tool returns or how it fits into the 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?
The schema has one parameter (patchId) with no description. The description adds no meaning or constraints beyond the schema. Schema coverage is 0%.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 /patch.one' is a tautology, restating the tool name without specifying what the tool does. No verb or resource semantics are provided.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like patch-create, patch-update, or other patches. Missing context entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
patch-readRepoDirectoriesDRead-onlyIdempotent
GET /patch.readRepoDirectories
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| type | Yes | ||
| repoPath | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint, idempotentHint, and openWorldHint, but the description adds no behavioral details. It does not contradict annotations, but it also fails to add any value beyond them, such as what kind of data is returned or any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short (a single phrase), but this is under-specification rather than conciseness. It fails to provide essential information that would fit in a concise yet informative 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 three required parameters and no output schema, the description leaves the agent completely in the dark about what the tool does, its return format, or how to use it. This is thoroughly insufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage and no description text clarifying parameter meanings, the schema alone must suffice. The description adds no semantic context for required parameters like 'id', 'type' (enum), or 'repoPath', leaving the agent without guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'GET /patch.readRepoDirectories' merely restates the HTTP method and endpoint path, providing no indication of what the tool actually does. It is a tautology and fails to clarify the purpose beyond 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 offers no guidance on when to use this tool versus the numerous siblings (e.g., patch-readRepoFile, settings-readDirectories). No context about prerequisites or alternatives is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
patch-readRepoFileDRead-onlyIdempotent
GET /patch.readRepoFile
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| type | Yes | ||
| filePath | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the agent knows it is a safe read operation. However, the description adds no additional behavioral context, such as what data is returned or any side effects. It neither contradicts nor enhances the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise but at the expense of clarity. It is too short to convey essential information; it should include at least a brief purpose 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 complexity of three required parameters, no output schema, and a minimal description, the tool is severely under-documented. The agent lacks sufficient information to correctly select and invoke this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning the input schema provides no descriptions for the three parameters (id, type, filePath). The description does not explain these parameters at all, leaving the agent to guess their meaning and usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is simply 'GET /patch.readRepoFile', which indicates an HTTP method and endpoint but does not clearly state what the tool does or what resource it acts upon. It is vague and fails to differentiate from 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?
No guidance is provided on when to use this tool versus alternatives. There is no mention of context, prerequisites, 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.
patch-saveFileAsPatchDIdempotent
POST /patch.saveFileAsPatch
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| type | Yes | ||
| filePath | Yes | ||
| content | Yes | ||
| patchType | No | update |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral information beyond the annotations. Annotations indicate idempotentHint and openWorldHint, but the description does not explain what the tool does, its side effects, or any prerequisites.
Agents need to know what a tool does to the 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 short (2 words), it is underspecified rather than efficiently concise. Every sentence should add value, and this one does not.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 5 parameters (4 required), no output schema, and no description, the tool definition is incomplete. The context signals indicate moderate complexity, but the description fails to provide essential usage context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, but it provides no information about the parameters (id, type, filePath, content, patchType). The schema itself gives basic types and enums, but without description the semantics are unclear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'POST /patch.saveFileAsPatch' merely restates the tool name and HTTP method, providing no indication of what the tool actually does. It does not distinguish this tool from siblings like patch-create or patch-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 usage context is provided. There is no guidance on when to use this tool versus alternatives such as patch-create, patch-update, or patch-markFileForDeletion among many sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
patch-toggleEnabledDIdempotent
POST /patch.toggleEnabled
| Name | Required | Description | Default |
|---|---|---|---|
| patchId | Yes | ||
| enabled | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate idempotentHint: true and openWorldHint: true. The description does not contradict these, but it also does not add any behavioral details beyond what annotations provide. Since there is no explanation of side effects or required permissions, the behavioral transparency is minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short but not concise in a helpful way. It omits essential information and does not justify its 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?
Given the lack of parameter descriptions, no output schema, and a large set of sibling tools, the description is grossly incomplete. An agent cannot effectively use this tool based on the provided 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?
Schema description coverage is 0%. The description does not explain what 'patchId' refers to or what 'enabled' means. The agent is left to infer from the name alone, which is insufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is just 'POST /patch.toggleEnabled', which is the HTTP method and path. It does not state what the tool does. Even the tool name 'patch-toggleEnabled' suggests toggling the enabled state of a patch, but the description adds no value.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 'patch-update' or 'patch-create'. The description offers no context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
patch-updateDIdempotent
POST /patch.update
| Name | Required | Description | Default |
|---|---|---|---|
| patchId | Yes | ||
| type | No | ||
| filePath | No | ||
| enabled | No | ||
| content | No | ||
| createdAt | No | ||
| updatedAt | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare idempotentHint: true and openWorldHint: true, indicating safe retry behavior and unknown schema. The description adds nothing beyond these annotations; no additional behavioral traits are disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief but fails to be informative. It is not terse in a helpful way—it omits essential information. Conciseness should not come at the cost of utility.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 7 parameters, no output schema, and the complexity of patch operations, the description is completely inadequate. It provides no completion context for the agent to judge whether it should invoke this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for parameter meanings. It does not describe any parameter (e.g., patchId, type, content). The agent receives no semantic help beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is 'POST /patch.update', which merely restates the tool name with an HTTP verb. It does not specify what the tool does (e.g., update a patch object) and fails to distinguish it from siblings like patch-create or patch-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?
No guidance is provided on when to use this tool versus alternatives (e.g., patch-create vs patch-update). The description is entirely absent of contextual usage information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
port-createD
POST /port.create
| Name | Required | Description | Default |
|---|---|---|---|
| publishedPort | Yes | ||
| publishMode | No | ingress | |
| targetPort | Yes | ||
| protocol | No | tcp | |
| applicationId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description gives only the HTTP method, implying a create operation but with no behavioral details (e.g., whether it overwrites existing ports, validation rules, or side effects). Annotations include openWorldHint: true but no destructiveHint or readOnlyHint, leaving the agent to guess.
Agents need to know what a tool does to the world before calling 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 at the expense of completeness. It is not concise in a helpful way; it omits essential information that should be present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 5 parameters (3 required), no output schema, and no parameter descriptions, the description is critically incomplete. It fails to explain the relationship between publishedPort and targetPort, or the significance of applicationId.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description adds no meaning to the parameters. The agent is left to infer semantics from parameter names alone, which is insufficient for correct invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'POST /port.create' is a tautology that adds no semantic information beyond the tool's name and HTTP method. It fails to state what the tool does—e.g., that it creates a port mapping for an application.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 sibling tools like port-delete, port-update, or port-one. There is no mention of context, prerequisites, or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
port-deleteDDestructive
POST /port.delete
| Name | Required | Description | Default |
|---|---|---|---|
| portId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description adds no behavioral context beyond the annotations. Annotations already indicate destructiveHint=true, but description does not elaborate on consequences or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise but under-specified. Useful information is missing; conciseness does not compensate for lack of substance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, no parameter descriptions, and no behavioral details. The description fails to equip the agent for correct invocation or understanding of effects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the tool description provides no explanation for the 'portId' parameter. The agent has no clue what value to provide.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description is merely 'POST /port.delete', which adds no value beyond the tool name. It does not specify what a 'port' is or what deletion entails, making it 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?
No usage guidance provided. No mention of when to use this tool, prerequisites, or alternatives among sibling tools (e.g., port-create, port-update).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
port-oneCRead-onlyIdempotent
GET /port.one
| Name | Required | Description | Default |
|---|---|---|---|
| portId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint, idempotentHint, and openWorldHint, covering the safety profile. The description adds no further behavioral context, but does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short (one phrase), which is concise but at the expense of clarity. It is front-loaded but too minimal to be 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?
Given the low parameter count and presence of annotations, the description still lacks a complete statement of the tool's operation. It does not explain what the tool does or what it returns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, and the description does not mention the 'portId' parameter or its semantics. The description fails to compensate for the lack of 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 'GET /port.one' only provides the HTTP method and endpoint path, not the actual purpose. It does not state that the tool retrieves a single port resource by ID, relying solely on the name 'port-one' for inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like port-create, port-update, or port-delete. The description lacks context for selecting this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
port-updateDIdempotent
POST /port.update
| Name | Required | Description | Default |
|---|---|---|---|
| portId | Yes | ||
| publishedPort | Yes | ||
| publishMode | No | ingress | |
| targetPort | Yes | ||
| protocol | No | tcp |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide idempotentHint and openWorldHint, but the description adds no additional behavioral context (e.g., what happens on update, permissions needed, or side effects). It does not contradict annotations, but adds minimal value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short, but conciseness should not sacrifice completeness. It lacks essential information, making it more under-specified than concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (5 parameters, 2 enums, no output schema) and lack of annotations beyond hints, the description is severely incomplete. It fails to explain the tool's purpose, parameter behavior, or 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?
With 0% schema description coverage, the description bears full responsibility for explaining parameters. It provides no information about the meaning of portId, publishedPort, targetPort, or the enums. The schema alone does not clarify 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 is merely the HTTP endpoint 'POST /port.update', which is a tautology of the tool name. It does not state what the tool does, what a 'port' represents, or how it differs from sibling tools like port-create or port-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?
No usage guidelines are provided. There is no indication of when to use this tool versus alternatives, nor any prerequisites or context for its use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
postgres-changePasswordDIdempotent
POST /postgres.changePassword
| Name | Required | Description | Default |
|---|---|---|---|
| postgresId | Yes | ||
| password | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations include idempotentHint=true and openWorldHint=true, but the description adds no behavioral context. It does not explain side effects (e.g., password change affects authentication), idempotency implications, or required permissions. With minimal annotations, the description fails to disclose behavioral traits beyond what is already signaled.
Agents need to know what a tool does to the world before calling 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 at the expense of informativeness. It is not effectively concise because it omits essential purpose and usage details. Being concise should not mean being empty; this description is underspecified.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 password-changing operation for a database, and with no output schema, the description is completely inadequate. It lacks information about effects (e.g., immediate password update, session invalidation), prerequisites, or postconditions. The tool is not usable based solely on this description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema defines two required parameters (postgresId, password) with basic constraints, but schema description coverage is 0%. The description provides no additional meaning or usage hints for these parameters, such as formatting or constraints for the password. The agent relies solely on schema, which lacks semantic guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is 'POST /postgres.changePassword', which merely repeats the tool name and HTTP method. It fails to state what the tool does—it does not mention changing a password or any action. This is a tautology and provides no purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidelines are provided. The description does not indicate when to use this tool versus sibling tools like mariadb-changePassword or mongo-changePassword. There is no context for appropriate usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
postgres-changeStatusDIdempotent
POST /postgres.changeStatus
| Name | Required | Description | Default |
|---|---|---|---|
| postgresId | Yes | ||
| applicationStatus | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral information beyond the annotations (idempotentHint=true, openWorldHint=true). It does not disclose any consequences, permissions, or side effects of changing the status. With such minimal description, the agent lacks transparency on tool 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 short, but conciseness should not sacrifice informativeness. The single sentence is under-specified and does not earn its place; it provides no value 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?
Given the tool has 2 required parameters with enums and no output schema, the description is completely inadequate. It fails to explain the tool's purpose, behavior, or parameter usage, making it impossible for an agent to select or invoke it correctly based solely on this description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage for parameters is 0%, meaning no descriptions exist in the schema. The description also fails to explain the meaning or expected values of 'postgresId' and 'applicationStatus'. The enum for 'applicationStatus' provides some hint, but without semantic context, the agent cannot use the parameters effectively.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 only the HTTP method and endpoint path ('POST /postgres.changeStatus'), which is a tautology. It does not state what the tool does, leaving the agent to infer from the name and schema. This is insufficient for purpose clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives (e.g., postgres-update or other sibling changeStatus tools). The description is silent on usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
postgres-createD
POST /postgres.create
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| appName | No | ||
| databaseName | Yes | ||
| databaseUser | Yes | ||
| databasePassword | Yes | ||
| dockerImage | No | postgres:18 | |
| environmentId | Yes | ||
| description | No | ||
| serverId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations include openWorldHint: true, indicating possible undocumented side effects, but the description provides no behavioral context. It does not explain what 'create' entails (e.g., creating a database, user, or configuration), nor any side effects or dependencies.
Agents need to know what a tool does to the 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 very short (one line), it is under-specified and fails to convey essential information. Effective conciseness requires substantive content; this is merely minimal and uninformative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 9 parameters, no output schema, and the behavioral implications of 'create', the description is completely inadequate. It provides no guidance on return values, errors, or lifecycle relationships to other postgres-* tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description adds no meaning to the 9 parameters (including 5 required ones like name, databaseName, databaseUser, databasePassword, environmentId). The description does not clarify parameter roles or constraints beyond the schema's type/pattern fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description is simply 'POST /postgres.create', which tautologically restates the tool name. It fails to specify the tool's action, such as creating a PostgreSQL database or service. The title 'Postgres Create' offers minimal clue, but the description itself adds no verb+resource clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus sibling tools like postgres-deploy, postgres-one, or postgres-remove. No context on prerequisites or appropriate scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
postgres-deployDIdempotent
POST /postgres.deploy
| Name | Required | Description | Default |
|---|---|---|---|
| postgresId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide idempotentHint and openWorldHint, but the description adds no behavioral context beyond what is already available. For a tool named 'deploy', details about side effects, permissions, or idempotency guarantees are absent.
Agents need to know what a tool does to the 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 extremely short, the description is under-specified rather than concise. It does not earn its place as a meaningful sentence; it is merely an endpoint reference.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 large number of sibling tools and the absence of output schema, the description is woefully incomplete. An agent lacks essential context to use 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 description offers no explanation for the required parameter 'postgresId'. With schema description coverage at 0%, the description fails to compensate, leaving the agent guessing about the parameter's meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'POST /postgres.deploy' merely restates the HTTP method and endpoint path, providing no explicit statement of what the tool does. The name 'deploy' is ambiguous, especially among siblings like 'postgres-create' and 'postgres-start'. This falls short of even a tautology; it's essentially a placeholder.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus the many other postgres-related siblings (e.g., postgres-create, postgres-start, postgres-deploy). An agent cannot determine the appropriate context without additional information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
postgres-moveDIdempotent
POST /postgres.move
| Name | Required | Description | Default |
|---|---|---|---|
| postgresId | Yes | ||
| targetEnvironmentId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description provides no behavioral information beyond the HTTP method. Annotations indicate idempotentHint and openWorldHint, but the description adds no context about what happens during the move (e.g., effects on the database, downtime, data integrity).
Agents need to know what a tool does to the world before calling 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 lacks substance. It is under-specified rather than concise, missing critical details for tool selection and invocation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of moving a Postgres database, the description is severely incomplete. It omits prerequisites, side effects, return values, and any context beyond the tool name. Output schema is absent, and sibling tools with similar patterns are not differentiated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has two required parameters (postgresId, targetEnvironmentId) with no descriptions. The description adds no meaning to these parameters, leaving the agent without understanding each parameter's role.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description "POST /postgres.move" is a tautology, merely restating the resource name without specifying what the tool does. It fails to convey any action or resource involved.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 compose-move, mariadb-move, etc. There is no mention of prerequisites, context, 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.
postgres-oneCRead-onlyIdempotent
GET /postgres.one
| Name | Required | Description | Default |
|---|---|---|---|
| postgresId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the agent knows it's safe. The description adds no further behavioral context (e.g., no side effects, auth details) beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise but under-specified. A one-phrase description is efficient but lacks necessary detail; it does not earn its place with substantive 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?
No output schema and no description of return value. Given the complexity of the domain and the single parameter, the description is incomplete, failing to inform the agent about what the tool returns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has one required parameter (postgresId) with 0% description coverage. The description fails to explain what postgresId represents, leaving the agent without semantic guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'GET /postgres.one' is vague; it reads as an HTTP endpoint rather than stating the tool's function (e.g., retrieving a specific Postgres database). It does not distinguish from siblings like postgres-create or postgres-search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. The name 'one' suggests fetching a single item, but the description provides no context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
postgres-readLogsDRead-onlyIdempotent
GET /postgres.readLogs
| Name | Required | Description | Default |
|---|---|---|---|
| postgresId | Yes | ||
| tail | No | ||
| since | No | all | |
| search | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true and idempotentHint=true, indicating a safe, idempotent operation. The description adds no further behavioral details (e.g., response size, pagination). It does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely short but uninformative—merely a path. Does not earn its place as it adds no value 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?
For a tool with 4 parameters, no output schema, and no parameter descriptions, the description is critically incomplete. It fails to explain the tool's function, inputs, or outputs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% with no parameter descriptions. The tool description does not explain the meaning of postgresId, tail, since, or search, leaving their roles entirely to the agent's inference.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is just a URL path ('GET /postgres.readLogs') that repeats the tool name without stating what the tool does. It is a tautology, providing no verb or resource explanation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 sibling tools like application-readLogs or mariadb-readLogs. The description offers no context for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
postgres-rebuildDIdempotent
POST /postgres.rebuild
| Name | Required | Description | Default |
|---|---|---|---|
| postgresId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral information beyond the annotations (idempotentHint=true, openWorldHint=true). It does not disclose whether the tool is destructive, what side effects occur, or what happens to existing data. The openWorldHint is vague, and the description does not clarify the tool's actual 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 concise (only 1 line), but this brevity sacrifices essential information. A minimally adequate description would include at least a sentence explaining the tool's function. The current text is under-specified rather than efficiently 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?
Given that this tool likely performs a significant operation on a Postgres database (e.g., rebuilding from scratch or reapplying schema), the description is completely inadequate. There is no output schema, no parameter details, and no explanation of what the tool achieves or returns. The annotations provide some metadata but do not compensate for the lack of substantive description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has one required parameter 'postgresId' with no description, and the description does not explain its purpose or expected format. With schema description coverage at 0%, the description fails entirely to add semantic meaning to 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 'POST /postgres.rebuild' is a tautology that merely restates the tool name and HTTP method. It does not explain what 'rebuild' means, whether it recreates the database, reapplies configuration, or something else. It also fails to distinguish this tool from siblings like postgres-reload, postgres-deploy, or postgres-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. There is no mention of prerequisites, scenarios, or exclusions. The sibling list includes many database rebuild tools but lacks context to help an agent decide when postgres-rebuild is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
postgres-reloadDIdempotent
POST /postgres.reload
| Name | Required | Description | Default |
|---|---|---|---|
| postgresId | Yes | ||
| appName | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate idempotent and open-world hints, which provide some behavioral context. However, the description adds no extra behavioral details such as side effects, required permissions, or whether it restarts the database or reloads configuration.
Agents need to know what a tool does to the 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 extremely short (3 words), this is under-specification rather than efficient conciseness. The description omits critical information and does not front-load a clear purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a database reload operation, the description is woefully incomplete. It lacks purpose, parameter guidance, and behavioral context, making it insufficient for correct tool selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not clarify what postgresId and appName represent. Without additional explanation, an agent cannot determine how to use these parameters correctly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 merely 'POST /postgres.reload', which does not state the action or resource. It is a tautology of the tool name and endpoint, failing to explain what reloading means or 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 usage guidance is provided. The description lacks context on when to use this tool over siblings like postgres-rebuild or postgres-restart, or alternatives for other databases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
postgres-removeDDestructive
POST /postgres.remove
| Name | Required | Description | Default |
|---|---|---|---|
| postgresId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral information beyond the annotations. Annotations already mark it as destructive (destructiveHint: true), but the description does not elaborate on consequences, such as data loss or required permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise but at the expense of informativeness. It is too minimal to serve its 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?
Given the tool's simplicity (one parameter, no output schema), the description is grossly incomplete. It fails to state basic function, missing critical context for correct 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 single parameter 'postgresId' has no description in the schema, and the tool description provides no additional context about its meaning or expected format. With 0% schema description coverage, this is a critical gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is merely the HTTP endpoint 'POST /postgres.remove' and does not explicitly state the tool's purpose. The name suggests removing a Postgres resource, but the description fails to articulate that, leaving 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 usage guidelines are provided. There is no information on when to use this tool versus alternatives, prerequisites, or any context for invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
postgres-saveEnvironmentDIdempotent
POST /postgres.saveEnvironment
| Name | Required | Description | Default |
|---|---|---|---|
| postgresId | Yes | ||
| env | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does not disclose any behavioral traits beyond what annotations already provide. Annotations indicate idempotentHint=true and openWorldHint=true, but the description fails to explain what saving environment entails (e.g., whether it merges or replaces, side effects, or required permissions). No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While the description is short, it is not appropriately informative. A single line repeating the HTTP endpoint is not a valid description; it fails to add value and could be considered incomplete rather than concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity, lack of output schema, and a large set of sibling tools, this description is completely inadequate. It provides no information about return values, side effects, or typical use cases.
Complex tools with many parameters or behaviors need more documentation. 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 two parameters (postgresId and env) with 0% description coverage. The description adds no meaning or context about these parameters, leaving the agent to infer from names alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 a tautology: it merely repeats the HTTP method and endpoint ("POST /postgres.saveEnvironment") without specifying any verb or resource. It provides no insight into what the tool actually does, failing to distinguish it from siblings like postgres-create or postgres-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. With siblings such as postgres-create, postgres-update, and postgres-saveExternalPort, the description offers no context for selecting the appropriate tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
postgres-saveExternalPortDIdempotent
POST /postgres.saveExternalPort
| Name | Required | Description | Default |
|---|---|---|---|
| postgresId | Yes | ||
| externalPort | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide idempotentHint and openWorldHint, but the description adds no additional behavioral context. It does not contradict annotations, but it fails to disclose any traits beyond what annotations already convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short but under-specified. It sacrifices informativeness for brevity, providing no useful guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 0% schema description coverage, no output schema, and no descriptive context, the tool definition is severely incomplete. It fails to equip an AI agent with sufficient information to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, and the description does not explain the parameters postgresId or externalPort. No meaning is added beyond the schema 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 'POST /postgres.saveExternalPort' is essentially a restatement of the tool's name and HTTP method. It vaguely implies saving an external port for a Postgres instance but does not clearly state the action or 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 other postgres-* or database saveExternalPort tools. The description lacks any contextual hints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
postgres-searchDRead-onlyIdempotent
GET /postgres.search
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | ||
| name | No | ||
| appName | No | ||
| description | No | ||
| projectId | No | ||
| environmentId | No | ||
| limit | No | ||
| offset | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so the agent knows this is a safe read operation. However, the description adds no behavioral context beyond repeating the HTTP method, providing no extra value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short (a single fragment), but this is under-specification rather than conciseness. It lacks essential information and does not earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 8 parameters, many sibling search tools, and no output schema, the description is woefully incomplete. It provides no indication of search scope, result format, or any other critical context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning none of the 8 parameters are documented. The description does not add any meaning to the parameters, leaving the agent to guess what each parameter 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 is just 'GET /postgres.search', which restates the tool name without explaining what 'postgres.search' actually does. It fails to convey a specific verb and resource, nor does it distinguish from sibling search tools like mariadb-search or mongo-search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. There are many search tools for different databases, but the description offers no context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
postgres-startDIdempotent
POST /postgres.start
| Name | Required | Description | Default |
|---|---|---|---|
| postgresId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
While annotations indicate idempotentHint=true (safe to retry) and openWorldHint=true, the description adds no behavioral context. It does not contradict the annotations, but it also fails to disclose critical traits like whether the start operation is immediate or asynchronous, or whether it requires a stopped instance.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is overly terse and does not earn its place. It provides no useful information; simply stating the HTTP method is redundant and wastes space that could be used for meaningful guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (one required parameter, no output schema), the description is grossly incomplete. It does not explain the purpose, behavior, or required input, leaving the agent with no confidence in how to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage for the required parameter 'postgresId', and the description provides no explanation of its meaning or format. The agent must infer that 'postgresId' is the identifier of the database to start, but there is no explicit guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'POST /postgres.start' is a tautology that restates the tool name and HTTP method. It does not specify that this tool starts a Postgres database instance, nor does it differentiate it from sibling tools like 'postgres-stop' or 'postgres-create'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as 'postgres-create' (to create a new instance) or 'postgres-start' is used after creation. There is no mention of prerequisites or conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
postgres-stopDIdempotent
POST /postgres.stop
| Name | Required | Description | Default |
|---|---|---|---|
| postgresId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide idempotentHint=true and openWorldHint=true, but the description adds no behavioral context. It does not state that the tool stops a Postgres instance, so the agent must infer from the name. With annotations present, the bar is lower, but the description still fails to add value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While brief, the description is a mere tautology that repeats the endpoint. It is underspecified rather than concise, providing no useful information to the agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 of the tool (one parameter, no output schema), the description should at minimum state the purpose and the role of the parameter. It fails to deliver even basic 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 defines a required postgresId parameter with zero description coverage. The tool description offers no explanation of what this parameter represents (e.g., the unique identifier of the Postgres database to stop).
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'POST /postgres.stop', which is a tautology that restates the HTTP method and endpoint. It does not specify the verb or resource, such as 'stop a Postgres database'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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. There is no indication of when to use this tool versus alternatives like postgres-start or other database actions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
postgres-updateDIdempotent
POST /postgres.update
| Name | Required | Description | Default |
|---|---|---|---|
| postgresId | Yes | ||
| name | No | ||
| appName | No | ||
| databaseName | No | ||
| databaseUser | No | ||
| databasePassword | No | ||
| description | No | ||
| dockerImage | No | ||
| command | No | ||
| args | No | ||
| env | No | ||
| memoryReservation | No | ||
| externalPort | No | ||
| memoryLimit | No | ||
| cpuReservation | No | ||
| cpuLimit | No | ||
| applicationStatus | No | ||
| healthCheckSwarm | No | ||
| restartPolicySwarm | No | ||
| placementSwarm | No | ||
| updateConfigSwarm | No | ||
| rollbackConfigSwarm | No | ||
| modeSwarm | No | ||
| labelsSwarm | No | ||
| networkSwarm | No | ||
| stopGracePeriodSwarm | No | ||
| endpointSpecSwarm | No | ||
| ulimitsSwarm | No | ||
| replicas | No | ||
| createdAt | No | ||
| environmentId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral information beyond annotations. Annotations indicate idempotent and open-world hints, but the tool may replace or merge fields; no such clarification is given.
Agents need to know what a tool does to the world before calling 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 but at the expense of all substance. A single tautological sentence does not fulfill the requirement for effective tool documentation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 high parameter count, nested objects, and absence of output schema, the description is grossly inadequate. It fails to explain the overall update behavior, prerequisites, or effect of omitting optional fields.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage and no parameter explanations in the description, the agent receives no semantic guidance for the 31 parameters. Even basic constraints (e.g., which fields are updatable together) are missing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is just 'POST /postgres.update', which is a tautology and does not state the tool's purpose. It fails to explain that it updates an existing Postgres service configuration.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus siblings like postgres-create or other update tools. The minimal description provides no context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
previewDeployment-allDRead-onlyIdempotent
GET /previewDeployment.all
| Name | Required | Description | Default |
|---|---|---|---|
| applicationId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, indicating safe read-only behavior. The description adds no further behavioral context beyond restating the HTTP method. It does not contradict annotations but provides no additional value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise (one sentence), but conciseness without substance is detrimental. It fails to earn its place by providing necessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Considering the lack of output schema, minimal annotations, and single parameter, the description is severely incomplete. It offers no context about what the tool returns or how it behaves.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has one required parameter 'applicationId' with no description in the schema (0% coverage). The tool description does not mention the parameter at all, leaving its meaning and format entirely 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 is just 'GET /previewDeployment.all', which provides only the HTTP method and path. It does not explain what the tool actually does, such as listing all preview deployments. It is somewhat more than a tautology but still vague and fails to distinguish from sibling tools like 'previewDeployment-one' or 'previewDeployment-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?
No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, context, or exclusions. The description is entirely silent on usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
previewDeployment-deleteDDestructive
POST /previewDeployment.delete
| Name | Required | Description | Default |
|---|---|---|---|
| previewDeploymentId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral context beyond what the annotations already hint (destructiveHint, openWorldHint). It lacks details on irreversibility, confirmation requirements, or side effects, leaving the agent to guess about the operation's full impact.
Agents need to know what a tool does to the 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 short, it is severely under-specified. It provides only a raw endpoint string, which is not concise but rather incomplete. Every sentence should add value; here, the single statement is essentially useless.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 operation with one parameter, a minimal description could still clarify scope and result. This description lacks any completion regarding return values, side effects, or dependencies. It is wholly inadequate for an AI agent to use 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 has one parameter (previewDeploymentId) with 0% schema description coverage. The description does not explain what this ID represents, how to obtain it, or any constraints (e.g., valid format). The parameter's meaning is entirely opaque.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 a tautology ('POST /previewDeployment.delete') that merely restates the HTTP method and endpoint. It does not convey what the tool does beyond what the name implies, nor does it specify the resource 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 is provided on when to use this tool versus alternatives like previewDeployment-redeploy or previewDeployment-one. The description fails to indicate prerequisites, effects on related resources, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
previewDeployment-oneCRead-onlyIdempotent
GET /previewDeployment.one
| Name | Required | Description | Default |
|---|---|---|---|
| previewDeploymentId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, indicating a safe read operation. The description adds no further behavioral context, but does not contradict the annotations. With annotations present, the bar is lower; a score of 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely brief (7 words), but this brevity is not effective conciseness—it omits critical information. It reads as a placeholder rather than a purposeful summary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 (1 param, no output schema), the description should still explain the return value or behavior. It fails to do so, leaving significant gaps 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?
The schema has one required parameter 'previewDeploymentId' with 0% description coverage. The description does not mention this parameter or its meaning, leaving the agent without guidance on what value to provide.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'GET /previewDeployment.one' essentially repeats the tool name in HTTP verb format without explaining what the tool does. It does not state the action (fetching a single preview deployment) or distinguish it from sibling tools like previewDeployment-all or previewDeployment-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?
No guidance on when to use this tool versus alternatives. Sibling tools exist for listing, deleting, and redeploying preview deployments, but the description provides no context for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
previewDeployment-redeployDIdempotent
POST /previewDeployment.redeploy
| Name | Required | Description | Default |
|---|---|---|---|
| previewDeploymentId | Yes | ||
| title | No | ||
| description | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide idempotentHint and openWorldHint, but description adds no behavioral details beyond the endpoint. No mention of side effects, permissions, or outcomes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely short but under-specification is not conciseness. Fails to provide any meaningful content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has 3 params, no output schema, and zero description. For a redeploy action, critical details about what changes, idempotency, or prerequisites are missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 0% description coverage and description offers no parameter meaning beyond raw names. With 3 parameters (previewDeploymentId, title, description), agent gets no guidance on their usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description is just 'POST /previewDeployment.redeploy', a tautology of the tool name. It does not state what action is performed or what resource is 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 on when to use this tool versus siblings like previewDeployment-all, previewDeployment-delete, or application-redeploy.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
project-allBRead-onlyIdempotent
GET /project.all
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, which cover safety and consistency. The description adds no additional behavioral context (e.g., pagination, filtering, or side effects). No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short (just the path), which is concise but lacks structure. It is front-loaded but provides no natural language explanation. The brevity may hinder understanding for agents expecting descriptive text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters and simple read-only behavior, the description is functional but minimally complete. It does not describe the return format or any query options. Without an output schema, the agent must guess the response structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 0 parameters, so schema description coverage is 100% by default. The description adds nothing about parameters, but there are none to document. Baseline is 4 for 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 'GET /project.all' clearly indicates a verb (GET) and resource (project.all), implying listing all projects. This distinguishes it from sibling tools like project-one (single project) and project-create (creation). However, it is a minimal path expression rather than a full sentence.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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. Siblings include project-allForPermissions, project-search, project-create, etc., but the description provides no context on when to choose this over those. 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.
project-allForPermissionsCRead-onlyIdempotent
GET /project.allForPermissions
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations state readOnlyHint and idempotentHint, but description adds no behavioral context beyond the endpoint; no discussion of what 'forPermissions' entails.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely brief but lacks substantive information; essentially a tautology of 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?
Fails to explain the output or the meaning of 'forPermissions'; incomplete for a listing tool with 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?
No parameters to describe; schema coverage is 100% trivially; description adds nothing but not 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?
Description is just the HTTP method and endpoint path; does not state what the tool does (e.g., list projects with permissions).
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 vs project-all or other listing tools; no context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
project-createD
POST /project.create
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| description | No | ||
| env | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral context beyond the annotations. With openWorldHint: true, the agent knows it's a write operation, but the description itself provides no additional transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is too short and lacks meaningful content. While concise, it fails to convey essential information, making it under-specified.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 3 parameters and no output schema, the description is insufficient. It omits the core purpose and parameter semantics, leaving the agent unable 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 description coverage is 0%, so the description must compensate. However, it provides no information about the 'name', 'description', or 'env' parameters, leaving the agent with no guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'POST /project.create' is essentially a tautology, restating the tool name and HTTP method without specifying what the tool does. It does not distinguish from 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?
No guidance is provided on when to use this tool versus alternatives like project-update or project-remove.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
project-duplicateDIdempotent
POST /project.duplicate
| Name | Required | Description | Default |
|---|---|---|---|
| sourceEnvironmentId | Yes | ||
| name | Yes | ||
| description | No | ||
| includeServices | No | ||
| selectedServices | No | ||
| duplicateInSameProject | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral context beyond the annotations. The annotations already indicate idempotent and open-world hints, but the description does not explain what gets duplicated, whether it is destructive, or any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short (one line) but lacks substance. True conciseness would convey the essential purpose and usage; here it is merely the endpoint string, which is underspecified.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 6 parameters, no output schema, and no parameter descriptions, the description is completely inadequate. It does not cover return values, prerequisites, or 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?
The input schema has no descriptions for any of its 6 properties (0% coverage), and the description does not explain any parameter. The agent has no help understanding what fields like sourceEnvironmentId, name, includeServices, etc., mean.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is just 'POST /project.duplicate', which restates the endpoint without explaining what the tool does. It fails to specify that it duplicates a project or any related details. No differentiation from sibling tools like project-create or environment-duplicate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. There is no mention of use cases, prerequisites, or exclusion criteria. Siblings like project-create might be confused, but no help is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
projectEnvironment-getARead-onlyIdempotent
Get environment variables for a project. Returns normalized envMap plus the reconstructed envText.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so safety profile is clear. The description adds value by detailing the specific return format (envMap and envText), providing behavioral context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded, and directly conveys action and return value. No redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with one parameter and no output schema, the description adequately covers purpose and return format. However, it lacks details on error handling, prerequisites (e.g., project existence), or response structure beyond the two fields, which would enhance 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 0%, and the single parameter (projectId) is not elaborated in the description. The parameter name is self-explanatory, but the description fails to add meaning or constraints beyond the schema, such as format or linking to existing projects.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 environment variables for a project) and specifies the return data (normalized envMap plus reconstructed envText). It distinguishes from sibling tools like serviceEnvironment-get by focusing on project-level.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide explicit guidance on when to use this tool versus alternatives (e.g., serviceEnvironment-get, environment-byProjectId). It implies usage for fetching project environment variables, but no when-not or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
projectEnvironment-saveBIdempotent
Save (update) environment variables for a project. The env parameter can be a string in KEY=VALUE format or an object map of env keys to values.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | ||
| env | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation idempotentHint:true is already provided. The description adds the 'update' trait, but does not disclose behavior on missing projects, authorization needs, or whether it merges or replaces variables. The value is moderate beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. The purpose is front-loaded in the first sentence. Every part earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, sparse annotations, and 0% schema coverage, the description is adequate but lacks details on idempotency, return values, and incremental vs. full replacement. It does enough for a simple tool but leaves gaps for complex 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 coverage is 0%, so the description must compensate. It explains the env parameter's allowed formats (KEY=VALUE string or object map), adding meaning. However, it omits semantics for projectId. Baseline is 3 with low coverage and partial compensation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool 'Save (update) environment variables for a project' with a specific verb and resource. It also clarifies the env parameter format, distinguishing it from service-level variants, but does not explicitly differentiate from siblings like serviceEnvironment-save.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 vs. alternatives (e.g., projectEnvironment-get, serviceEnvironment-save). Prerequisites like project existence are not mentioned, and no exclusion criteria are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
project-oneDRead-onlyIdempotent
GET /project.one
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, covering basic safety. However, the description adds no additional behavioral context (e.g., no mention of response format or side effects).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short but under-specified, lacking crucial information. Being concise is only valuable when the content is 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 the tool's simplicity (1 param, no output schema), a minimal description could suffice, but this one omits essential details like return value and usage context, making 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?
Schema description coverage is 0%, and the description fails to explain the meaning or format of the single required parameter 'projectId'. The agent cannot infer its purpose 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 is 'GET /project.one', which vaguely suggests retrieving a single project but does not explicitly state that it fetches a specific project by its ID. It is barely more informative than 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 provided on when to use this tool versus alternatives like project-all, project-search, or project-create. The agent has no context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
project-removeDDestructive
POST /project.remove
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark destructiveHint=true and openWorldHint=true, but the description adds no behavioral context whatsoever. Fails to add value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise but at the expense of essential information. More content is needed; brevity here is under-specification.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a single required parameter and no output schema, the description should explain the effect of the tool. It is completely inadequate for an agent to use 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 coverage is 0%, and the description provides no explanation for the 'projectId' parameter. No added meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description 'POST /project.remove' is a tautology, restating the tool name without specifying that it deletes a project. No verb or resource beyond 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?
No guidance on when to use this tool vs alternatives like project-update or project-duplicate. No context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
project-searchDRead-onlyIdempotent
GET /project.search
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | ||
| name | No | ||
| description | No | ||
| limit | No | ||
| offset | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=true and idempotentHint=true, so the agent can infer it's a safe, idempotent read operation. However, the description adds no behavioral context beyond the endpoint, such as what happens with the optional parameters or whether results are paginated.
Agents need to know what a tool does to the world before calling 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 at the cost of being minimally informative. A single endpoint string is not a functional description; it fails the 'every sentence earns its place' test because it contributes zero decision-making value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 5 parameters, no output schema, and many sibling tools, the description is far from complete. It leaves critical gaps about response format, search behavior, and parameter interaction, making the tool nearly unusable without external 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?
Schema coverage is 0% with no parameter descriptions. The description does not clarify the meaning of parameters like q, name, description, limit, or offset. The agent cannot determine how to use them effectively.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 /project.search' is essentially a tautology that repeats the tool name without specifying what 'search' means, what resources are involved, or how it differs from sibling search tools like 'application-search' or 'compose-search'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool vs alternatives such as project-all, project-one, or other entity-specific search tools. The description gives no context about prerequisites, filtering strategies, 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.
project-updateDIdempotent
POST /project.update
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | ||
| name | No | ||
| description | No | ||
| createdAt | No | ||
| organizationId | No | ||
| env | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare idempotentHint and openWorldHint, but the description adds no behavioral details beyond what is already structured. It does not discuss side effects, required permissions, or partial updates.
Agents need to know what a tool does to the world before calling 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 (four words) but at the cost of missing essential information. Conciseness should not sacrifice completeness; here it is under-specified.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 six parameters, no output schema, and many sibling tools, this description is completely inadequate. It fails to explain return values, update semantics, or parameter constraints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage and no parameter descriptions in the tool description, the agent receives no semantic guidance for the six parameters (projectId, name, description, createdAt, organizationId, env). The schema itself provides no descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'POST /project.update' is a tautology that merely restates the tool name and HTTP method. It does not specify what the tool does, e.g., that it updates a project's fields. This fails to provide clear purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives like project-create, project-remove, or project-duplicate. The description offers no context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redirects-createD
POST /redirects.create
| Name | Required | Description | Default |
|---|---|---|---|
| regex | Yes | ||
| replacement | Yes | ||
| permanent | Yes | ||
| applicationId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide only title and openWorldHint=true, but the description adds no behavioral details. It doesn't disclose that this is a creation operation, nor does it cover side effects, permissions, or idempotency. Without description, the agent has very little to infer 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?
While very short (one phrase), it is under-specified rather than concise. Every sentence should add value; this adds none. It does not earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and 4 parameters with zero schema descriptions, the tool description is wholly inadequate. It fails to provide enough context for an agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description adds no parameter information. The four required parameters (regex, replacement, permanent, applicationId) are not explained in any way, leaving the agent to guess their meanings.
Input schemas describe structure but not intent. Descriptions should explain 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 is just 'POST /redirects.create', which is a tautology of the tool name. It does not state what the tool does; at minimum it should indicate that it creates a redirect rule.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus siblings like redirects-delete, redirects-one, or redirects-update. The description lacks any context about when creation is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redirects-deleteDDestructive
POST /redirects.delete
| Name | Required | Description | Default |
|---|---|---|---|
| redirectId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation 'destructiveHint: true' already indicates the tool modifies or deletes data, but the description adds nothing beyond that. It does not disclose what exactly happens (e.g., permanent deletion, required permissions, rollback possibility). The description is insufficiently 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 extremely short, but not concise in a useful way—it is under-specified. The single line does not earn its place as it provides no actionable information beyond what the name and annotations already supply.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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) and the presence of a destructive hint annotation, the description still fails to be complete. It does not confirm that the tool deletes a redirect, state what 'redirectId' refers to, or mention any side effects. The agent must rely solely on the tool name and schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage for the lone parameter 'redirectId'. The tool description does not explain what this parameter represents (e.g., 'the ID of the redirect to delete'), leaving the agent to infer from the parameter name alone. This 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 'POST /redirects.delete' is a tautology that merely restates the tool name and HTTP method. It does not specify the action or resource beyond what the name already conveys. No verb or clear purpose is stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like redirects-create or redirects-update. The description lacks any context about prerequisites, side effects, or appropriate scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redirects-oneDRead-onlyIdempotent
GET /redirects.one
| Name | Required | Description | Default |
|---|---|---|---|
| redirectId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint, idempotentHint, and openWorldHint, so the safety profile is clear. The description adds no additional behavioral context, but annotations carry the burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short but fails to convey essential information. It is under-specified rather than concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple input schema and lack of output schema, the description should at least state that it retrieves a single redirect by ID. It is completely inadequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%. The description does not explain the 'redirectId' parameter or its role. The schema is minimal, and the description adds no 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 is only 'GET /redirects.one', which is a tautology of the tool name. It does not specify the verb or resource clearly, nor does it differentiate from sibling tools like 'redirects-create'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. Siblings include CRUD operations, but the description offers no context or exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redirects-updateDIdempotent
POST /redirects.update
| Name | Required | Description | Default |
|---|---|---|---|
| redirectId | Yes | ||
| regex | Yes | ||
| replacement | Yes | ||
| permanent | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate idempotentHint=true and openWorldHint=true, which partially cover safety, but the description adds no behavioral detail. It does not mention that the tool overwrites an existing redirect, what happens on missing redirectId, or any other effects beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While short, the description is not concise in a helpful way—it contains no substantive information beyond the endpoint. Every sentence should earn its place; this one does not. It is under-specified rather than concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 4 required parameters, no output schema, and no description of return values or side effects, the description is completely inadequate. It fails to tell the AI what the tool accomplishes, how parameters interact, or what response to expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description should compensate by explaining parameters. It does not: the names 'regex', 'replacement', 'permanent' are ambiguous (e.g., 'permanent' likely indicates a 301 vs 302 redirect). No parameter meaning is provided, making it hard for the AI to use correctly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The tool name 'redirects-update' suggests updating a redirect, but the description 'POST /redirects.update' adds no explicit statement of purpose. It merely repeats the HTTP path without clarifying what the tool does, failing to provide a specific verb and resource beyond 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?
No guidance is given on when to use this tool versus siblings like 'redirects-create' or 'redirects-delete'. The description lacks any context, prerequisites, or scenarios, leaving the AI without direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redis-changePasswordCIdempotent
POST /redis.changePassword
| Name | Required | Description | Default |
|---|---|---|---|
| redisId | Yes | ||
| password | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare idempotentHint=true and openWorldHint=true, indicating safe retries and potential external side effects. The description adds no behavioral context beyond these annotations, such as authentication requirements or impacts on existing connections.
Agents need to know what a tool does to the world before calling 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 (30 characters) but fails to convey essential information. It prioritizes brevity over completeness, making it under-specified for an AI agent to understand the tool's capabilities.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 sensitivity of changing a password, the description omits critical context: no return value description, no error conditions, no prerequisites. Combined with no output schema, the tool is insufficiently documented for reliable invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description provides no explanation of the parameters (redisId, password). The schema includes a pattern for password but no semantic meaning; the description should at least clarify the format of redisId or constraints on password.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 merely 'POST /redis.changePassword', which adds no semantic value beyond the tool name. It fails to explicitly state that the tool changes the password for a Redis instance, relying solely on the name for clarity. This is a tautology of the endpoint 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 such as redis-update, mariadb-changePassword, or other sibling tools. The idempotent and openWorld annotations hint at behavioral traits but do not constitute usage guidelines.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redis-changeStatusDIdempotent
POST /redis.changeStatus
| Name | Required | Description | Default |
|---|---|---|---|
| redisId | Yes | ||
| applicationStatus | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations declare idempotentHint=true and openWorldHint=true, but the description adds no behavioral context. It does not explain what changing the status entails, possible side effects, or whether it triggers any other actions. Without description, the agent must infer behavior from the name alone.
Agents need to know what a tool does to the world before calling 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 (one line) but lacks substantive content. Conciseness does not compensate for missing critical information. Every tool description needs to be useful, not just brief.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool modifies state via an enum, the description should clarify the semantics of each status value and the overall effect. No output schema exists, so the description should cover return behavior. It fails to provide any of this context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning the description must explain the parameters. However, the description only gives the endpoint. The parameters redisId and applicationStatus are only defined in the schema (e.g., enum values), with no additional meaning or usage context added by the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is 'POST /redis.changeStatus', which merely restates the tool's HTTP method and endpoint. It does not specify what the tool does, such as changing the status of a Redis instance. This is a tautology and provides no functional clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like redis-start, redis-stop, or similar changeStatus tools for other databases. The description lacks any context for appropriate usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redis-createD
POST /redis.create
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| appName | No | ||
| databasePassword | Yes | ||
| dockerImage | No | redis:8 | |
| environmentId | Yes | ||
| description | No | ||
| serverId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does not disclose any behavioral traits such as side effects, permissions, or responses. The annotation only has 'openWorldHint: true', which the description does not contradict, but also does not supplement.
Agents need to know what a tool does to the world before calling 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 (one phrase), but it does not use that space effectively—it is under-specified rather than concise. It does not earn its place as it adds no 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?
Given the tool has 7 parameters, no output schema, and numerous sibling tools, the description is completely inadequate. It fails to provide any context about creation behavior, return values, or relationships to other 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?
With 0% schema description coverage and no parameter info in the description, the AI agent gains no understanding of the 7 parameters. Even the required parameters (name, databasePassword, environmentId) are not explained in 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 is only 'POST /redis.create', which is a tautology of the tool name. It does not state what the tool does, e.g., creating a Redis resource. Among siblings like 'redis-update', 'redis-deploy', etc., no differentiation is provided.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like 'redis-deploy', 'redis-rebuild', or other create tools. The description lacks any context for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redis-deployDIdempotent
POST /redis.deploy
| Name | Required | Description | Default |
|---|---|---|---|
| redisId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral information beyond what annotations provide. Annotations indicate idempotent and open-world behavior, but the description does not explain what the tool actually does or 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 extremely brief but fails to convey any useful information. It is underspecified, not concise, and lacks structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 the deployment domain and the lack of output schema, the description is completely inadequate. It provides no information about return values, side effects, or 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?
The input schema has one required parameter 'redisId' with 0% description coverage. The description does not explain the parameter's purpose, format, or constraints, leaving the agent with no semantic guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'POST /redis.deploy' is essentially a tautology of the tool name. It does not specify any action (e.g., deploy a Redis instance) or resource, leaving the tool's purpose completely unclear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 redis-create, redis-start, or redis-deploy. No context about prerequisites or scenarios is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redis-moveDIdempotent
POST /redis.move
| Name | Required | Description | Default |
|---|---|---|---|
| redisId | Yes | ||
| targetEnvironmentId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description offers no behavioral details beyond the annotations (idempotentHint: true, openWorldHint: true). It does not explain side effects, prerequisites, or changes. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short (just the endpoint), but this conciseness is detrimental as it omits all essential information. It is under-specified rather than efficiently concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of output schema, no parameter descriptions, and the presence of many similar sibling tools, the description is completely inadequate. It provides no actionable context 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?
Input schema describes two required parameters (redisId, targetEnvironmentId) but with no descriptions. The tool description provides no semantic meaning or usage context for these 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 is 'POST /redis.move', which merely restates the tool name and HTTP method without specifying what the tool does. It fails to indicate that it moves a Redis instance to a different environment, as implied by 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?
No guidance is provided on when to use this tool versus alternatives like application-move or compose-move. The description lacks any context for decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redis-oneDRead-onlyIdempotent
GET /redis.one
| Name | Required | Description | Default |
|---|---|---|---|
| redisId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description 'GET /redis.one' adds no behavioral context beyond what annotations already provide (readOnlyHint, idempotentHint, openWorldHint). It does not disclose any traits such as permissions, side effects, or response format. Since annotations carry the burden, the description fails to add value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While the description is extremely concise (six tokens), it is under-specified and does not earn its place. A useful concise description would still convey the action and parameter semantics. Here, it is a mere endpoint reference, which is not effective communication.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has one required parameter, no output schema, and rich siblings, the description is wholly inadequate. It does not explain what the tool returns, how the parameter identifies the Redis instance, or how this differs from other redis tools. The description leaves the agent with almost no actionable information.
Complex tools with many parameters or behaviors need more documentation. 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 one required parameter 'redisId' with no description, and schema coverage is 0%. The description does not mention 'redisId' or explain its purpose, leaving it entirely undocumented. The description should have compensated for the schema deficiency but did 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 is 'GET /redis.one', which is a tautology restating the tool name with an HTTP method. It provides no verb or resource explanation, failing to clarify that this tool retrieves a single Redis instance. Despite the name implying 'get one', the description adds nothing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 given. The description does not specify when to use this tool versus sibling tools like redis-search, redis-update, or redis-readLogs. The name hints at retrieval, but explicit when-to-use or when-not-to-use instructions are absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redis-readLogsDRead-onlyIdempotent
GET /redis.readLogs
| Name | Required | Description | Default |
|---|---|---|---|
| redisId | Yes | ||
| tail | No | ||
| since | No | all | |
| search | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations provide readOnlyHint, idempotentHint, and openWorldHint, indicating safe, idempotent behavior. The description adds no additional behavioral context, relying solely on annotations. While not contradictory, it misses opportunities to mention result format or prerequisites.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is too short to be considered concise; it is under-specified. It fails to provide necessary information in a structured manner.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 4 parameters, no output schema, and no parameter descriptions, the description is completely inadequate. An agent cannot correctly invoke this tool without external knowledge.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description must explain parameters. It does not mention any parameter, leaving agents to guess the meaning of 'redisId', 'tail', 'since', and 'search'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 merely 'GET /redis.readLogs', which restates the tool name and HTTP method without specifying what the tool does. It fails to convey that it retrieves logs for a Redis instance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 similar tools like 'compose-readLogs' or 'mariadb-readLogs'. The description does not mention any context or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redis-rebuildDIdempotent
POST /redis.rebuild
| Name | Required | Description | Default |
|---|---|---|---|
| redisId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate idempotentHint=true and openWorldHint=true, but the description adds no behavioral context such as required permissions or side effects. It does not contradict annotations but fails to add value beyond them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise but at the expense of essential information. The single sentence 'POST /redis.rebuild' is uninformative and does not earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, one undocumented parameter, and a missing description, the tool definition is wholly inadequate. The agent cannot determine the operation's effect, inputs, or outputs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter 'redisId' is a required string with no description in the schema or the tool description. The agent has no idea what this parameter represents or how to use it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is only 'POST /redis.rebuild' which provides no verb or resource explanation. It does not state that this tool rebuilds a Redis instance, leaving the agent unable to understand its purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives like redis-create, redis-deploy, or redis-update. The description offers no context for decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redis-reloadDIdempotent
POST /redis.reload
| Name | Required | Description | Default |
|---|---|---|---|
| redisId | Yes | ||
| appName | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate idempotentHint=true and openWorldHint=true, which suggest safe repeated calls. However, the description adds no behavioral context beyond the endpoint. It fails to explain side effects (e.g., does it reload config? restart?), leaving the agent to guess.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (one line), but this is under-specification rather than effective conciseness. Essential information is missing, making it less than minimally viable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 2 required parameters, no output schema, and no parameter descriptions, the description is completely inadequate. It does not help the agent understand the tool's purpose, parameters, or behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain the meaning of 'redisId' or 'appName'. The agent has no information about what these parameters represent or how to use them correctly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'POST /redis.reload', which is a restatement of the tool name. It does not specify any verb or resource, making it a tautology. Without additional context, the agent cannot determine what action 'reload' performs on Redis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 'redis-rebuild' or 'redis-start'. There is no mention of prerequisites, typical use cases, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redis-removeDDestructive
POST /redis.remove
| Name | Required | Description | Default |
|---|---|---|---|
| redisId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate destructiveHint=true, but the description adds no behavioral context beyond that. It does not explain what gets removed (e.g., the entire Redis instance or a specific key), nor any side effects. With annotations already present, the description minimally adds value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short (5 words), but this is under-specification rather than conciseness. It lacks structure and does not provide the essential information needed for the tool to be used correctly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 1 parameter and annotations present, the description should at minimum state the tool's purpose. It fails to do so, making it incomplete for an AI agent to select or 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 coverage is 0%, and the description does not describe the 'redisId' parameter at all. The schema only defines it as a required string with minLength=1, but the description adds no meaning about what this ID represents or where to find it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'POST /redis.remove' is a tautology that merely restates the tool name and HTTP method. It fails to specify what the tool does (e.g., deletes a Redis instance), and does not distinguish it from sister tools like redis-one or redis-reload.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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, context for usage, or comparison with other redis-* or remove tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redis-saveEnvironmentDIdempotent
POST /redis.saveEnvironment
| Name | Required | Description | Default |
|---|---|---|---|
| redisId | Yes | ||
| env | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral information beyond what annotations provide. Annotations declare idempotentHint and openWorldHint, but the description doesn't elaborate on effects, side effects, or 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 extremely concise but at the expense of informativeness. The single sentence 'POST /redis.saveEnvironment' is nearly tautological with the tool name, failing to earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (2 required params, no output schema) and the rich set of sibling tools, the description is completely inadequate. It provides no context for an AI agent to understand when or how to use the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, yet the description provides no information about the parameters 'redisId' and 'env'. Their meanings, valid values, or constraints are entirely absent.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is just 'POST /redis.saveEnvironment' which merely repeats the endpoint path and does not state the tool's purpose. It fails to specify any verb or resource, making it impossible to discern 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?
There is no guidance on when to use this tool versus alternatives. Among sibling tools like 'application-saveEnvironment' or 'compose-saveEnvironment', no distinguishing context is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redis-saveExternalPortDIdempotent
POST /redis.saveExternalPort
| Name | Required | Description | Default |
|---|---|---|---|
| redisId | Yes | ||
| externalPort | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate idempotentHint=true and openWorldHint=true, but the description adds no behavioral context beyond repeating the HTTP method. It does not explain that this tool sets or removes an external port for a Redis instance, nor 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 extremely short but fails to be informative; it is under-specified rather than concise. The single sentence adds no value 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?
Given the tool has two required parameters and no output schema, the description is completely inadequate. It does not mention the tool's effect, return value, or prerequisites (e.g., the Redis instance must exist), leaving the agent without essential context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description provides no explanation of the two required parameters ('redisId' and 'externalPort'). It does not clarify that 'externalPort' accepts a number or null to unset the port, leaving the agent without necessary semantic information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is simply 'POST /redis.saveExternalPort', which restates the tool name without specifying a verb or resource. It fails to indicate what action is performed on which resource, and does not differentiate from sibling tools like redis-update or redis-saveEnvironment.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 redis-saveEnvironment or similar saveExternalPort tools for other databases. No prerequisites or exclusion criteria are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redis-searchDRead-onlyIdempotent
GET /redis.search
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | ||
| name | No | ||
| appName | No | ||
| description | No | ||
| projectId | No | ||
| environmentId | No | ||
| limit | No | ||
| offset | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds minimal value beyond annotations (readOnlyHint, idempotentHint, openWorldHint). It implies a read-only GET operation but fails to disclose what resources are searched, the result format, or any side effects. With annotations present, the bar is lower, but the description still lacks 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?
While the description is very short, it is under-specified rather than concise. It fails to convey necessary information, making it an ineffective use of the description space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (8 parameters, 0% schema coverage, no output schema, many sibling tools), the description is entirely insufficient. It does not explain what the tool searches, how to use the parameters, or what the output looks like.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% with 8 parameters. The description does not mention any parameters, so it adds no meaning beyond the raw schema. For a 0% coverage tool, the description must compensate, but it completely neglects 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 'GET /redis.search' is a tautology that merely repeats the tool name in HTTP method notation. It does not specify what the tool does (e.g., search for Redis instances, search within Redis data, etc.) nor distinguish it from sibling tools like redis-create or application-search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as application-search, compose-search, or other redis-* tools. There are no explicit when-to-use or when-not-to-use conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redis-startDIdempotent
POST /redis.start
| Name | Required | Description | Default |
|---|---|---|---|
| redisId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide idempotentHint=true and openWorldHint=true, but the description adds no behavioral context beyond what is already implied. It does not mention side effects, state changes, or call safety, though it does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise but to a fault—it is a single token that provides no meaningful information beyond the tool name. Useful conciseness requires enough detail to guide usage.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has one parameter, no output schema, and annotations that only hint at idempotency and open-world behavior, the description fails to explain return values, success/failure indications, or any operational context. It is far from 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 'redisId' lacks any description in the schema (0% coverage) and the description offers no explanation of what it represents or how to obtain it. Without this, an AI agent cannot correctly provide 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 is merely 'POST /redis.start', which restates the tool name in HTTP format without specifying the verb+resource clearly. It does not explain that the tool starts a Redis instance, leaving the purpose very vague.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus siblings like redis-create, redis-deploy, or redis-stop. There is no context about prerequisites or typical scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redis-stopDIdempotent
POST /redis.stop
| Name | Required | Description | Default |
|---|---|---|---|
| redisId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate idempotentHint=true and openWorldHint=true, but the description provides no behavioral context. It does not explain that stopping an already-stopped Redis is safe (idempotent) or that it may affect external systems. The description adds zero value beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While extremely short, the description is not concise; it is underspecified. Every sentence is missing, as the description contains only the HTTP method and path, which adds no actionable information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (single required parameter, no output schema), the description is completely inadequate. It fails to provide essential context such as what stopping does, effects on dependent resources, or error states.
Complex tools with many parameters or behaviors need more documentation. 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 'redisId' has no schema description (0% coverage), and the tool description offers no clarification on its purpose, format, or how to obtain it. Without additional context, an agent cannot correctly provide this 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 is only 'POST /redis.stop', which is a tautology of the tool name. It does not specify what stopping Redis entails (e.g., stopping a container, a service, or a process) and does not distinguish it from sibling tools like redis-start or redis-reload.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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. For example, there is no mention of prerequisites (e.g., the Redis instance must be running) or scenarios where redis-restart might be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redis-updateDIdempotent
POST /redis.update
| Name | Required | Description | Default |
|---|---|---|---|
| redisId | Yes | ||
| name | No | ||
| appName | No | ||
| description | No | ||
| databasePassword | No | ||
| dockerImage | No | ||
| command | No | ||
| args | No | ||
| env | No | ||
| memoryReservation | No | ||
| memoryLimit | No | ||
| cpuReservation | No | ||
| cpuLimit | No | ||
| externalPort | No | ||
| createdAt | No | ||
| applicationStatus | No | ||
| healthCheckSwarm | No | ||
| restartPolicySwarm | No | ||
| placementSwarm | No | ||
| updateConfigSwarm | No | ||
| rollbackConfigSwarm | No | ||
| modeSwarm | No | ||
| labelsSwarm | No | ||
| networkSwarm | No | ||
| stopGracePeriodSwarm | No | ||
| endpointSpecSwarm | No | ||
| ulimitsSwarm | No | ||
| replicas | No | ||
| environmentId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate idempotentHint=true and openWorldHint=true, but the description adds no behavioral context beyond what is already in annotations. It does not disclose side effects, required permissions, or the nature of the update (e.g., partial vs full replacement).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While the description is very short, it is under-specified rather than concise. It conveys no useful information about the tool's purpose or usage, making it inefficient for the task.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 high complexity (29 parameters, no output schema), the description is woefully incomplete. It does not explain what updating a Redis resource entails, what the return value is, or what side effects occur (e.g., service restart).
Complex tools with many parameters or behaviors need more documentation. 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 is empty of any parameter information, and the input schema has 0% description coverage. With 29 parameters, many of which are complex nested objects, the description fails to explain their purpose or usage, leaving the agent to rely solely on schema field names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is merely 'POST /redis.update', which essentially restates the tool name. It does not specify what update operation is performed (e.g., which properties can be updated) and does not distinguish it from sibling tools like redis-create, redis-deploy, or redis-changePassword.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 an update is appropriate, or when to use other redis-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
registry-allCRead-onlyIdempotent
GET /registry.all
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and openWorldHint=true, which indicate a safe, idempotent read operation. The description adds no additional behavioral context, such as response format, pagination, or filtering behavior, which would be valuable beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (one short phrase), which is efficient but lacks essential information. It could be equally concise while adding a brief purpose statement, making it more useful without increasing length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of parameters, the description is still incomplete because it does not explain what data is returned. With no output schema, the description should clarify that this tool returns a list of all registries, but it only restates the endpoint. Sibling tools like 'registry-one' suggest this is a listing operation, but the description should state it explicitly.
Complex tools with many parameters or behaviors need more documentation. 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 parameters, and schema description coverage is 100%. The description does not add parameter information, but with zero parameters, the baseline score of 4 is appropriate as there is nothing 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 'GET /registry.all' is a tautology that restates the endpoint without clarifying what it retrieves. While the resource 'registry' is clear, the action 'all' implies listing but lacks explicit statement of returning a list of all registries, which is necessary for distinguishing from sibling tools like 'registry-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?
No guidance is provided on when to use this tool versus alternatives such as 'registry-one' or 'registry-create'. The description does not specify use cases or conditions, leaving the agent 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.
registry-createD
POST /registry.create
| Name | Required | Description | Default |
|---|---|---|---|
| registryName | Yes | ||
| username | Yes | ||
| password | Yes | ||
| registryUrl | Yes | ||
| registryType | Yes | ||
| imagePrefix | Yes | ||
| serverId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide only openWorldHint=true, but the description adds no behavioral context (e.g., side effects, authentication requirements, or that this creates a resource). Since annotations are sparse, the description should compensate, but it does not.
Agents need to know what a tool does to the 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 extremely concise, the description is under-specified to the point of uselessness. Conciseness should not sacrifice essential information; here it omits the tool's core 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?
Given the tool's 7 parameters, 6 required, and no output schema, the description is entirely inadequate. It fails to explain the resource type, operation semantics, or expected behavior, leaving the agent with no actionable context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage and no parameter explanations in the description, the agent has no understanding of what each field (e.g., registryName, username, password) represents. The description adds zero value over the bare 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 is merely 'POST /registry.create', a tautology that restates the tool name without indicating what a registry is or what creating it entails. It fails to specify that this creates a container registry, leaving purpose ambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like 'registry-update' or 'registry-remove'. There is no mention of prerequisites or context, making it impossible for an agent to decide when to invoke it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
registry-oneDRead-onlyIdempotent
GET /registry.one
| Name | Required | Description | Default |
|---|---|---|---|
| registryId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=true, idempotentHint=true, and openWorldHint=true, which convey basic safety and idempotency. However, the description adds no additional behavioral context such as what happens if the registryId does not exist, or whether the tool returns a success response or error. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While the description is short (one sentence), it is under-specified rather than concise. It omits essential information about the tool's function, parameters, and usage. A good concise description would include the purpose and key parameter details in a compact form.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has one required parameter and no output schema, the description should at minimum state that it retrieves a registry entry by ID. The current description is entirely inadequate for an agent to understand the tool's purpose, preconditions, or return value.
Complex tools with many parameters or behaviors need more documentation. 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's 'registryId' parameter has no description, and schema description coverage is 0%. The tool description does not explain what 'registryId' represents or how to obtain it. The parameter semantics are left entirely to the agent to infer from the name.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is merely 'GET /registry.one', which is a tautology of the tool name. It does not state that the tool retrieves a specific registry by its ID, nor does it clarify what 'registry' refers to. It fails to distinguish from sibling tools like 'registry-all' or 'registry-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?
No guidance is provided on when to use this tool versus its siblings. For example, it does not explain that this tool is for fetching a single registry entry while 'registry-all' lists all registries, or that 'registry-create' is for creating a new one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
registry-removeDDestructive
POST /registry.remove
| Name | Required | Description | Default |
|---|---|---|---|
| registryId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate destructiveHint: true, but the description adds no behavioral context (e.g., that removal is irreversible, requires permissions). Relies entirely on annotations, which are insufficient without elaboration.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise but due to under-specification rather than efficiency. A single line that provides no useful guidance wastes the opportunity to be helpful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 removal tool with one parameter and no output schema, the description should at minimum state the operation and its irreversibility. The current description is virtually empty.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the description adds zero information about the required parameter 'registryId'. The agent gets no help understanding what this ID refers to or how to obtain it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'POST /registry.remove' does not explicitly state the action; the name and title imply removal, but the description is vague and fails to clearly convey that this tool removes a registry.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 'registry-create' or 'registry-update'. The description provides no context for usage decisions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
registry-testRegistryDIdempotent
POST /registry.testRegistry
| Name | Required | Description | Default |
|---|---|---|---|
| registryName | No | ||
| username | Yes | ||
| password | Yes | ||
| registryUrl | Yes | ||
| registryType | Yes | ||
| imagePrefix | No | ||
| serverId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate idempotentHint=true and openWorldHint=true, but the description adds no additional behavioral context. It does not describe side effects, permissions, or other traits. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While extremely short, the description is too minimal to be useful. It sacrifices all informative content for brevity, failing to add value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, 0% parameter description coverage, and a bare-bones description, the tool definition is severely incomplete. It does not equip an AI agent to understand or invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 7 parameters with 0% description coverage, and the description provides no insight into parameter meaning or purpose. Parameters like registryName, username, password are left entirely unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is merely 'POST /registry.testRegistry', which restates the tool name without providing any specific verb or resource context. It fails to clarify what the tool does beyond the implied 'test' action from the name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 sibling tools like registry-testRegistryById or registry-create. The description lacks any context about appropriate usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
registry-testRegistryByIdDIdempotent
POST /registry.testRegistryById
| Name | Required | Description | Default |
|---|---|---|---|
| registryId | No | ||
| serverId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does not add any behavioral information beyond the annotations (idempotentHint=true, openWorldHint=true). It fails to clarify what side effects or outputs the 'test' operation entails, leaving behavioral traits completely 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?
While the description is very short, it is not concise in a helpful sense; it omits all essential information. Conciseness should preserve clarity, but here it sacrifices all explanatory value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (2 parameters, no output schema, no parameter documentation), the description is grossly incomplete. It does not specify what the tool returns, how it behaves under different inputs, or any relevant context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage and two parameters (registryId, serverId), the description should explain their meaning, but it offers nothing. The agent cannot deduce what 'registryId' or 'serverId' represent or how they are used.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description only repeats the HTTP method and endpoint path ('POST /registry.testRegistryById'), which restates the tool's name without explaining what the tool does. The term 'test' is vague and not elaborated, leaving the agent uncertain about the tool's purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as 'registry-testRegistry' or 'registry-one'. The description lacks any contextual cues about prerequisites, appropriate scenarios, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
registry-updateDIdempotent
POST /registry.update
| Name | Required | Description | Default |
|---|---|---|---|
| registryId | Yes | ||
| registryName | No | ||
| imagePrefix | No | ||
| username | No | ||
| password | No | ||
| registryUrl | No | ||
| createdAt | No | ||
| registryType | No | ||
| organizationId | No | ||
| serverId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does not disclose behavioral traits beyond what annotations (idempotentHint, openWorldHint) already provide. It lacks details on side effects, authentication needs, or return behavior, missing an opportunity to add value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short but at the expense of informativeness. It is underspecified, not concise in a helpful way.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 (10 parameters, no output schema, no parameter descriptions), the description is completely inadequate. It provides no context for effective tool 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?
With 10 parameters and 0% schema description coverage, the description offers no explanations for any parameter. The agent receives no help understanding the meaning of properties like registryId, registryName, etc.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 merely 'POST /registry.update', which restates the tool's name and HTTP method, providing no meaningful verb or resource description. It fails to clarify what the tool actually does beyond the endpoint.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidance is provided. There is no indication of when to use this tool versus sibling tools like registry-create or registry-remove, nor any prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rollback-deleteDDestructive
POST /rollback.delete
| Name | Required | Description | Default |
|---|---|---|---|
| rollbackId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide destructiveHint=true, but the description adds no behavioral context. It could explain that deletion is irreversible or requires permissions. With annotations present, the description fails to add value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While extremely short, this is under-specification, not conciseness. The description lacks any substantive content that would help an agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has one parameter, destructive annotations, and no output schema, the description is completely inadequate. It does not describe the tool's purpose, behavior, or return value.
Complex tools with many parameters or behaviors need more documentation. 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 has one required parameter 'rollbackId' with 0% description coverage. The tool description does not explain what a rollbackId is or how to obtain it, leaving the agent without necessary 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?
Description is only 'POST /rollback.delete', a tautology of the tool name. It does not explain that the tool deletes a rollback record, nor does it distinguish from sibling 'rollback-rollback'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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. For instance, it does not differentiate from 'rollback-rollback' or specify prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rollback-rollbackDIdempotent
POST /rollback.rollback
| Name | Required | Description | Default |
|---|---|---|---|
| rollbackId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate idempotentHint and openWorldHint, but the description adds no behavioral context (e.g., whether it reverts a previous rollback, what actions it performs). The bare endpoint does not disclose 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 excessively short without being informative; it is under-specified rather than concise. Essential purpose and parameter meaning are missing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite only one parameter and no output schema, the description fails to provide any useful context about the tool's operation or return values, leaving the agent completely in the dark.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description offers no explanation for the 'rollbackId' parameter. The agent cannot infer what value to provide or its significance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 merely the HTTP endpoint 'POST /rollback.rollback', which is tautological and does not explain the tool's function. It fails to distinguish from related tools like 'rollback-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?
No guidance is provided about when to use this tool versus alternatives. The description lacks any context for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
schedule-createD
POST /schedule.create
| Name | Required | Description | Default |
|---|---|---|---|
| scheduleId | No | ||
| name | Yes | ||
| cronExpression | Yes | ||
| appName | No | ||
| serviceName | No | ||
| shellType | No | ||
| scheduleType | No | ||
| command | Yes | ||
| script | No | ||
| applicationId | No | ||
| composeId | No | ||
| serverId | No | ||
| userId | No | ||
| enabled | No | ||
| timezone | No | ||
| createdAt | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide only openWorldHint: true and a title. The description adds no behavioral information such as idempotency, required permissions, or side effects. With minimal annotations, the description carries full burden but fails to disclose behavior beyond the endpoint path.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short (one phrase) but is underspecified rather than concise. It wastes the opportunity to convey purpose and context in a compact manner.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 (16 parameters, 2 enums, no output schema), the description is completely inadequate. It does not explain the tool's function, the meaning of parameters, or the return value. The tool is not usable without additional 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?
Schema coverage is 0%, meaning no parameter descriptions are provided. The tool's description does not explain any of the 16 parameters, including required ones like name, cronExpression, and command. It adds zero value beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description is 'POST /schedule.create', which merely restates the tool name and HTTP method. It does not specify the action (creating a schedule) or distinguish from sibling tools like schedule-update or schedule-list. This is 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?
No guidance is provided on when to use this tool versus alternatives such as schedule-update or schedule-runManually. The context of schedule creation is implied by the name but not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
schedule-deleteDDestructive
POST /schedule.delete
| Name | Required | Description | Default |
|---|---|---|---|
| scheduleId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, so the agent knows it's a deletion. However, the description adds no further behavioral context (e.g., permanence, confirmation, side effects). It does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely short, but at the cost of missing essential information. Not concise in a helpful way; under-specification outweighs 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 operation with one required parameter, the description should at minimum state the tool's purpose. It fails to do so, making it incomplete for safe and correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so description must explain 'scheduleId'. It provides zero information about the parameter, leaving the agent with no understanding of what value to provide.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description is 'POST /schedule.delete', which merely repeats the tool name in HTTP format. Does not state that the tool deletes a schedule or what it does, making it 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?
No guidance on when to use this tool vs. alternatives like schedule-update or schedule-runManually. Sibling tools exist but no differentiation is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
schedule-listDRead-onlyIdempotent
GET /schedule.list
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| scheduleType | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the safety profile is clear. The description adds no behavioral details beyond the HTTP method and resource path, which is already implied by the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single phrase, but it is under-specified, lacking essential information. It is concise in length but not in content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and only two required parameters, the description fails to provide any context about return values, pagination, or filtering behavior. It is insufficient for an agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not mention or explain the two required parameters (id, scheduleType) or the enum values. The description 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 'GET /schedule.list' implies a list operation for schedules, but it does not explicitly state what it lists nor differentiate from sibling tools like schedule-one (single schedule) or schedule-runManually.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 schedule-one, schedule-create, or other list tools. No exclusions or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
schedule-oneDRead-onlyIdempotent
GET /schedule.one
| Name | Required | Description | Default |
|---|---|---|---|
| scheduleId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and openWorldHint=true. The description adds no behavioral context beyond what annotations provide, failing to add value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely brief (five characters), but this is under-specification rather than conciseness. It does not earn its place as it provides no actionable information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and the complexity of schedule management (with many sibling tools), the description should clarify the scope, return value, or how it differs from schedule-list. It fails to do so.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage and no parameter descriptions in the input schema, the description must explain the 'scheduleId' parameter. It does not address it at all.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'GET /schedule.one' is essentially a tautology, repeating the tool name in a different format. It does not specify that the tool retrieves a single schedule by ID or any other purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like schedule-list or schedule-create. The description offers no context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
schedule-runManuallyDIdempotent
POST /schedule.runManually
| Name | Required | Description | Default |
|---|---|---|---|
| scheduleId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description provides no behavioral traits beyond the annotations. It does not disclose side effects, what happens when a schedule is run, or any other relevant behavior. Annotations (idempotentHint, openWorldHint) are present but not explained by the description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short, but this is under-specification rather than conciseness. It does not earn its place as it adds no 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 one required parameter and no output schema, the description should clearly state its purpose. It completely fails to provide adequate context for an AI agent 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?
The input schema has one parameter (scheduleId) with no description (0% coverage). The tool's description offers no explanation of what scheduleId represents or how to obtain it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is just the HTTP method and path ("POST /schedule.runManually"), which does not explain what the tool does. It fails to specify the verb and resource, and does not distinguish from sibling tools like schedule-create or schedule-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 on when to use this tool versus alternatives. There is no context about prerequisites, when to run a schedule manually, or when to use other schedule-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
schedule-updateDIdempotent
POST /schedule.update
| Name | Required | Description | Default |
|---|---|---|---|
| scheduleId | Yes | ||
| name | Yes | ||
| cronExpression | Yes | ||
| appName | No | ||
| serviceName | No | ||
| shellType | No | ||
| scheduleType | No | ||
| command | Yes | ||
| script | No | ||
| applicationId | No | ||
| composeId | No | ||
| serverId | No | ||
| userId | No | ||
| enabled | No | ||
| timezone | No | ||
| createdAt | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral context beyond the annotations (idempotentHint, openWorldHint). It does not contradict annotations but fails to describe that the tool updates an existing schedule or any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely brief, but it is under-specified rather than efficiently concise. It sacrifices essential content for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the 16 parameters, no output schema, and two annotations that only hint at behavior, the description is grossly incomplete. It does not explain the tool's purpose, parameters, or 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 description provides no explanation of any of the 16 parameters. With 0% schema coverage, the description does not compensate, leaving agents without guidance on parameter meaning or usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'POST /schedule.update' is a tautology of the tool name and HTTP method. It does not state what the tool does in terms of verb and resource, failing to add clarity beyond the name itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidance is provided. The description does not indicate when to use this tool versus siblings like schedule-create or schedule-delete, nor does it mention prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
security-createD
POST /security.create
| Name | Required | Description | Default |
|---|---|---|---|
| applicationId | Yes | ||
| username | Yes | ||
| password | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No behavioral details beyond the endpoint. For a tool requiring a password, it should mention side effects (e.g., creates a user, stores credentials). Annotations lack destructiveHint/readOnlyHint, so description carries full burden and fails.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely short but at the expense of clarity—it's under-specified rather than concise. Every sentence (just one) fails to add value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 3 required parameters, no output schema, and zero additional context, the description is wholly inadequate for an agent to correctly invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description adds no meaning to parameters (applicationId, username, password). Their roles and constraints are entirely unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is just 'POST /security.create', which is a tautology of the tool name. It does not specify what resource or action is being performed (e.g., creating a user, a security token, or something else).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus siblings like security-delete, security-update, or security-one. No context about prerequisites or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
security-deleteDDestructive
POST /security.delete
| Name | Required | Description | Default |
|---|---|---|---|
| securityId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint: true, but the description adds no further behavioral context. It does not explain the outcome of deletion, reversibility, or affected resources, so minimal value is added beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While extremely short, the description is under-specified rather than concise. It provides no actionable information, failing to earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive tool with one required parameter and no output schema, the description should explain what is being deleted and consequences. It is completely inadequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter 'securityId' has no description in the input schema (0% coverage), and the tool description offers no explanation of its meaning, format, or purpose. The agent is left to guess what value to provide.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'POST /security.delete' merely restates the tool name in HTTP format. It does not specify what security entity is deleted or any action beyond the name, making it 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?
No guidance is provided about when to use this tool versus its siblings (e.g., security-create, security-update). The agent receives no context for decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
security-oneCRead-onlyIdempotent
GET /security.one
| Name | Required | Description | Default |
|---|---|---|---|
| securityId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral context beyond what annotations already provide (readOnlyHint, idempotentHint). It does not disclose any additional traits, such as the scope of data returned or potential error conditions. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short (one line), but this is not conciseness; it is under-specification. Important information is omitted, making it less 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?
Given the tool's simplicity (1 parameter, no output schema), the description should at least clarify what a 'security' resource is and what the tool returns. It does not, leaving the agent with insufficient context to use it appropriately.
Complex tools with many parameters or behaviors need more documentation. 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 required parameter 'securityId' is described only in the schema, and the description does not mention it at all. With 0% schema description coverage, the description should compensate but fails, leaving the agent without semantic guidance for 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 'GET /security.one' implies a retrieval operation for a security resource, but it does not explicitly state what the tool does or what 'security' refers to. The title 'Security One' helps, but the description is too vague to differentiate from other similar 'one' 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?
No usage guidelines are provided. The description does not indicate when to use this tool versus alternatives like security-create or security-update. There is no mention of context or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
security-updateDIdempotent
POST /security.update
| Name | Required | Description | Default |
|---|---|---|---|
| securityId | Yes | ||
| username | Yes | ||
| password | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide idempotentHint and openWorldHint, but the description adds no behavioral context such as authentication requirements or side effects. With annotations, the bar is lower, but the description still fails to disclose any behavioral traits beyond the HTTP route.
Agents need to know what a tool does to the world before calling 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 phrase, but it is under-specified and provides no useful information. It is not concise in conveying purpose; it is merely a restatement of 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?
The tool has 3 required parameters, no output schema, and exists among CRUD siblings. The description completely fails to explain what is updated, what the response returns, or any prerequisites. It is severely incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning the parameters (securityId, username, password) lack any schema-level explanations. The description does not add meaning; it only mentions the endpoint. Given the 0% coverage, the description should compensate but 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 is just 'POST /security.update,' which only repeats the HTTP method and endpoint. It does not state what the tool does, e.g., 'Update a security entity.' It is a tautology and provides no verb+resource clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus siblings like security-create or security-one. The description lacks any context for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
server-allCRead-onlyIdempotent
GET /server.all
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint. The description adds no additional behavioral traits beyond the endpoint structure. It does not disclose pagination, filtering, or result format, which would be valuable beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (two words), which is efficient, but it lacks structure or explanatory context. It is front-loaded but does not provide a complete sentence or further details, making it less helpful than a slightly longer description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 parameters and the presence of annotations that cover read-only and idempotent behavior, the description is still insufficient. It does not explain the scope of 'all' (e.g., all servers globally or filtered by organization) or the expected output format. The tool's simplicity does not excuse the omission of basic context about what is returned.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, and schema description coverage is 100%. The description adds no parameter information because none exists. Baseline score of 3 is appropriate as the description does not detract but also does not add 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 'GET /server.all' indicates a GET request to retrieve all servers, but it is vague and does not specify what 'all' encompasses (e.g., all servers in the system, or all servers accessible to the user). It distinguishes from sibling tools like 'server-one' but lacks detail to be fully clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as 'server-allForPermissions' or 'server-count'. The description does not mention any prerequisites or context, leaving the agent without decision criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
server-allForPermissionsCRead-onlyIdempotent
GET /server.allForPermissions
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, idempotentHint, and openWorldHint, covering safety and idempotency. However, the description adds no behavioral context beyond the endpoint string. For a tool with rich annotations, the description should at least confirm the action (e.g., retrieving permission-resolved server list), but it does not.
Agents need to know what a tool does to the world before calling 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 (one line) but does not earn its place: it merely restates the endpoint without clarifying purpose or usage. Conciseness should not sacrifice 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 absence of an output schema, the description should compensate with sufficient context. However, it fails to explain what the tool returns or how it differs from similar tools like 'server-all'. The annotations help but are not a substitute for purpose 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?
The input schema has no parameters (0 params, 100% coverage by default). The description correctly has no parameter details to add, so the baseline score 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 'GET /server.allForPermissions' essentially repeats the tool name in URL format, providing only the HTTP method. It does not explicitly state what the tool does (e.g., 'List all servers for permission assignment'). The sibling 'server-all' likely lists all servers, but this tool's purpose is unclear from the description alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no guidance on when to use this tool versus alternatives like 'server-all' or 'server-one'. Without context, an AI agent cannot determine the appropriate scenario for invoking this endpoint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
server-buildServersDRead-onlyIdempotent
GET /server.buildServers
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint, idempotentHint, openWorldHint, but the description contradicts the readOnlyHint by using the verb 'build' which implies mutation. The description adds no behavioral context beyond annotations and is misleading.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise but under-specified. One line provides no structure or substance, and critical information is missing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema and no description of return values. The description does not explain what 'buildServers' means or what the endpoint returns, making it incomplete for an agent to use 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?
No parameters exist, so baseline score of 4 applies. However, the description adds no semantic value; it does not explain the tool's scope or return 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?
Description is merely 'GET /server.buildServers', a tautology that restates the endpoint name. It does not clarify what the tool does; 'buildServers' suggests construction but annotations indicate readOnlyHint true, creating confusion. No distinction from siblings like server-all or server-create.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. The description provides no context for appropriate use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
server-countDRead-onlyIdempotent
GET /server.count
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
While annotations indicate readOnlyHint and idempotentHint, the description adds no behavioral context beyond what is already structured. It does not explain that the tool returns a count, nor does it mention any side effects or limitations. Given the simple nature, the description could still be more transparent about the return value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short but at the expense of being informative. It uses a single sentence that essentially repeats the tool name, failing to provide meaningful content. This is under-specification, 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?
Given the simplicity of the tool (no parameters, annotations present), the description should at least state that it returns the total number of servers. Without this, the agent cannot understand the output or decide between this and similar tools. The description is incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema is empty with no parameters, and schema description coverage is 100%. The description adds no parameter information, but since there are no parameters, 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 'GET /server.count' is a tautology, restating the tool name without indicating what the tool does. It fails to specify that it returns a count of servers, which is essential for distinguishing it from sibling tools like 'server-all' or 'server-getServerMetrics'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 'server-all' for listing servers or 'server-one' for details. The description does not hint at the context or prerequisites for invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
server-createD
POST /server.create
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| description | Yes | ||
| ipAddress | Yes | ||
| port | Yes | ||
| username | Yes | ||
| sshKeyId | Yes | ||
| serverType | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description adds no behavioral context beyond the annotations (openWorldHint: true); fails to disclose effects, auth needs, or side effects, leaving agent uninformed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise (one line) but under-specified; lacks essential structure or details needed for understanding tool usage.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 7 required parameters, no output schema, and minimal annotations, the description is wholly incomplete for effective tool selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description provides zero information about any of the 7 required parameters, entirely failing to clarify their meaning beyond the schema field names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description is 'POST /server.create', which is a tautology of the tool name and endpoint, not a clear statement of what the tool accomplishes beyond the obvious.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance provided on when to use this tool versus sibling tools like server-setup, server-update, or server-remove; lacks context for appropriate invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
server-getDefaultCommandDRead-onlyIdempotent
GET /server.getDefaultCommand
| Name | Required | Description | Default |
|---|---|---|---|
| serverId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=true and idempotentHint=true, but the description adds no behavioral context beyond what is already disclosed. It does not describe what data is returned, potential side effects, or authorization requirements, failing to add value beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short (one phrase), but it is not effective conciseness—it omits essential information. It does not earn its place because it fails to aid understanding or usage.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, read-only, no output schema), the description should at least explain the return value and the concept of a 'default command' for a server. It does none of this, making the tool almost unusable without external 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 single required parameter 'serverId' is documented only in the schema (type string, required). With 0% schema description coverage, the description must compensate, but it provides no explanation of what 'serverId' represents or how it is used. This leaves the parameter's semantic meaning entirely unspecified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 /server.getDefaultCommand' merely restates the tool's name and HTTP method without explaining what the tool does. The verb 'get' and resource 'server.getDefaultCommand' imply retrieval of a default command, but the purpose is vague and not explicitly stated. It fails to distinguish its purpose from sibling tools like compose-getDefaultCommand.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 compose-getDefaultCommand or other server-related tools. There is no mention of prerequisites, use cases, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
server-getServerMetricsDRead-onlyIdempotent
GET /server.getServerMetrics
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| token | Yes | ||
| dataPoints | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral information beyond what is already in the annotations (readOnlyHint, idempotentHint, openWorldHint). It does not contradict annotations but provides no additional value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While extremely short, the description is under-specified and fails to convey necessary information, making it ineffective despite its 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?
Given the three required parameters, no output schema, and sibling tools like 'user-getServerMetrics', the description is critically incomplete, missing details on what metrics are returned and how each parameter is used.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description offers no explanation for the three required parameters (url, token, dataPoints), leaving their purpose completely ambiguous.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 /server.getServerMetrics' is a tautology, restating the tool name and HTTP method without specifying what metrics are retrieved or how this differs from the sibling tool 'user-getServerMetrics'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 'user-getServerMetrics', nor any prerequisites or context for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
server-getServerTimeCRead-onlyIdempotent
GET /server.getServerTime
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint, idempotentHint, and openWorldHint, which fully disclose behavioral traits. The description adds no additional behavioral context, but since annotations already cover safety and idempotency, the description is not deficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (one line) but offers minimal explanatory value. It front-loads the method and endpoint, yet fails to include a readable purpose statement. It is not verbose, but could be more 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 the tool's simplicity and rich annotations, the description still lacks a clear statement of what the tool returns (e.g., server time format, timezone). No output schema is provided, so the description should fill that gap; it 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 tool has zero parameters, so the description cannot add meaning beyond the schema (which is empty). Per guidelines, 0 params yields baseline 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description 'GET /server.getServerTime' essentially restates the tool name without clarifying its purpose. It implies retrieval of server time but does not explicitly state that this tool returns the current server time. This is a tautology, adding no value over 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?
No guidance is provided on when to use this tool versus siblings like server-getServerMetrics or server-publicIp. There is no mention of alternatives, prerequisites, or context, leaving the agent without decision support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
server-oneDRead-onlyIdempotent
GET /server.one
| Name | Required | Description | Default |
|---|---|---|---|
| serverId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, indicating a safe read operation. The description adds no extra behavioral context beyond the implied HTTP method, offering little added value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short (one phrase), but it is under-specified rather than appropriately concise. It front-loads nothing meaningful and lacks structure, offering insufficient information for an agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 single required parameter, no output schema, and the presence of annotations, the description is still critically incomplete. It fails to convey the tool's purpose, parameter semantics, or expected behavior, making it nearly useless for selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has one parameter (serverId) with no description. Schema description coverage is 0%, and the tool description does not explain the parameter's meaning or usage. The description fails to compensate for this gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'GET /server.one' is extremely minimal and does not state what the tool does. It only suggests an HTTP method and path but fails to indicate that it retrieves a single server by ID, which is implied by the name but not clarified.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 server-all or server-create. The description lacks any context about appropriate usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
server-publicIpCRead-onlyIdempotent
GET /server.publicIp
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, indicating safe, read-only behavior. The description adds no new behavioral context beyond the annotations, but it does not contradict them either.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short (one sentence) and front-loaded, but it adds little value beyond the tool name. It is more under-specified than concise, though acceptable for a trivially 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?
With no output schema, the description should at least hint at the return value (e.g., the public IP as a string). It does not, leaving the agent without knowledge of what the tool returns. Context signals show no parameters, but completeness is lacking.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the input schema fully covers that. According to guidelines, no parameters earns a baseline of 4, and the description does not need to add parameter information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'GET /server.publicIp' essentially restates the tool name and HTTP method, making it clear that it retrieves the server's public IP. However, it does not differentiate from siblings like 'settings-getIp' or 'server-all', which could also provide IP information.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. For instance, it does not clarify how it differs from 'settings-getIp' or why one might choose this over other server-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
server-removeDDestructive
POST /server.remove
| Name | Required | Description | Default |
|---|---|---|---|
| serverId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already include destructiveHint=true, warning of destructive behavior, but the description adds no additional context about side effects, irreversibility, or required permissions. It fails to build on the annotation's signal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short but at the cost of being uninformative. It is effectively a placeholder, not a concise yet complete summary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 annotations and a simple schema, the description omits critical information such as the effect of removal, return value, and error conditions. It is insufficient for an agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description does not explain the 'serverId' parameter at all. With 0% schema description coverage, it should clarify that this is the ID of the server to remove, 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 is merely 'POST /server.remove,' which is a tautology of the tool name and HTTP method. It does not state that the tool removes a server, leaving the purpose ambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives like server-update or server-setup. There is no mention of prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
server-securityDRead-onlyIdempotent
GET /server.security
| Name | Required | Description | Default |
|---|---|---|---|
| serverId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, so the description adds no additional behavioral context beyond confirming it's a GET request. It does not disclose how errors are handled or what happens on missing serverId.
Agents need to know what a tool does to the world before calling 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 at the expense of usefulness. True conciseness would still convey necessary information; this is under-specification.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 a parameter and no output schema, the description provides insufficient information for an agent to understand what data is returned or how to use the tool correctly. It is completely inadequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, and the description completely ignores the required 'serverId' parameter. With only one parameter, the description fails to provide any context on what the parameter represents or how it affects the request.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 /server.security' is essentially a tautology of the tool name, indicating an HTTP method but not explaining what the tool does (e.g., retrieves security settings for a server). It adds minimal value beyond the name and does not distinguish from 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?
No guidance on when to use this tool versus alternatives like security-one, security-create, etc. The description provides no context for appropriate usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
server-setupDIdempotent
POST /server.setup
| Name | Required | Description | Default |
|---|---|---|---|
| serverId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide idempotentHint:true and openWorldHint:true, but the description adds no additional behavioral context. It does not describe side effects, permissions, or response behavior beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely short but at the expense of clarity. It is underspecified rather than efficiently 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 1 parameter, no output schema, and no param descriptions, the description provides no contextual completeness. Missing function purpose, prerequisites, return values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%. The description does not mention the required 'serverId' parameter or its meaning. Fails to add any semantic value to 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 'POST /server.setup' is a tautology of the endpoint. No verb or resource description beyond the name; does not clarify the tool's function or distinguish it from siblings like server-create or server-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 on when to use this tool versus alternatives. No context on prerequisites, when to prefer this over other server-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
server-setupMonitoringDIdempotent
POST /server.setupMonitoring
| Name | Required | Description | Default |
|---|---|---|---|
| serverId | Yes | ||
| metricsConfig | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description adds no behavioral information beyond annotations (idempotentHint, openWorldHint). No mention of side effects, permissions, or outcomes. Annotation contradiction is false as description is empty.
Agents need to know what a tool does to the 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 short, the description is under-specified and fails to convey anything useful. It is not concise; it is absent of content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given high complexity (many required nested params, no output schema), the description is completely inadequate. It fails to inform the agent about input requirements, return values, or usage context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, and description provides no explanation of parameters. The complex nested schema (e.g., metricsConfig.server.thresholds) is left entirely undocumented in 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?
Description is 'POST /server.setupMonitoring' which is a tautology; it does not state what the tool does, what 'setupMonitoring' means, or what resources it affects. No verb or clear purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs siblings like 'admin-setupMonitoring' or other server tools. No context on prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
server-updateDIdempotent
POST /server.update
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| description | Yes | ||
| serverId | Yes | ||
| ipAddress | Yes | ||
| port | Yes | ||
| username | Yes | ||
| sshKeyId | Yes | ||
| serverType | Yes | ||
| command | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate idempotentHint=true and openWorldHint=true, but the description adds no behavioral context. It does not explain side effects, required permissions, or return behavior, leaving the agent without critical information 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, but this is under-specification rather than conciseness. It lacks essential details and fails to add value 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?
Given the complexity (9 parameters, 8 required, no output schema) and the presence of many sibling tools, the description is woefully incomplete. It provides no usage context, return value information, or integration guidance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, no parameter semantics are provided. The description does not elaborate on any of the 9 parameters (e.g., serverId, ipAddress, serverType), leaving their purpose and format entirely to inference from names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is 'POST /server.update', which merely restates the tool name in endpoint form. It does not specify the action or resource beyond what the name implies, and it fails to distinguish from sibling tools like application-update or compose-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. Among many update tools, there is no context about prerequisites, scenarios, or exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
server-validateDRead-onlyIdempotent
GET /server.validate
| Name | Required | Description | Default |
|---|---|---|---|
| serverId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (readOnlyHint, idempotentHint, openWorldHint) indicate safety and idempotency, but the description adds no behavioral context beyond that. It does not explain the outcome (e.g., returns success/failure) or error handling for invalid server IDs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While the description is very short, it is under-specified. True conciseness conveys essential information efficiently; this fails to do so, making it closer to minimalism than effective communication.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 output schema and the need for the agent to understand what 'validate' means, the description is completely inadequate. It offers no insight into return values, side effects, or usage context for a tool with a required parameter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description should explain the required parameter 'serverId'. However, it omits any mention of the parameter, its meaning, or expected format, leaving the agent with no semantic help.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 merely the HTTP path 'GET /server.validate' without stating what the tool does. It does not indicate that it validates a server's existence or health, nor does it distinguish from sibling tools like server-one (fetch details) or server-all (list servers).
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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. For example, it does not clarify if this should be used as a prerequisite before other server operations or to check server validity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
server-withSSHKeyDRead-onlyIdempotent
GET /server.withSSHKey
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true. The description adds no behavioral context beyond what annotations provide, and does not mention any side effects, auth needs, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short but under-specified. It does not earn its space; it adds no value and is essentially a repetition of 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 no output schema and minimal input, the description is completely inadequate. It does not explain what the tool returns or how it differs from siblings. The context signals indicate high complexity (many siblings), but the description offers no 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?
No parameters exist, so schema coverage is trivially 100%. However, the description fails to explain the tool's purpose or what 'withSSHKey' means, making it uninformative.
Input schemas describe structure but not intent. Descriptions should explain 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 'GET /server.withSSHKey' is a tautology, restating the name without clarifying what the tool does. It lacks a specific verb and resource context, and does not distinguish from siblings like server-all or server-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?
No guidance on when to use this tool versus alternatives. Sibling tools include server-all, server-one, server-create, etc., but the description provides no context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
serviceEnvironment-getARead-onlyIdempotent
Get environment variables for a service (application, compose, postgres, mysql, mongo, redis, mariadb, or libsql). Returns normalized envMap plus the reconstructed envText.
| Name | Required | Description | Default |
|---|---|---|---|
| serviceType | Yes | ||
| serviceId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the agent knows this is a safe, deterministic read operation. The description adds that it returns 'normalized envMap plus the reconstructed envText,' which provides some behavioral context about the output format, but does not disclose edge cases, error handling, or what happens if the service does not exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. The first sentence states the purpose and enumerates service types; the second describes the return format. It is appropriately sized for the tool's simplicity but could be slightly improved by front-loading the required 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 annotations covering safety and idempotency, the description is mostly adequate. However, it lacks guidance on the serviceId parameter (e.g., where to find it, format) and does not mention that both parameters are required. For a two-param tool with no output schema, this is a minor but 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?
Schema coverage is 0%, so the description must compensate. It lists the serviceType enum values, which repeats the schema, but does not explain the serviceId parameter or provide additional meaning beyond the field names. The description does not help the agent understand how to obtain or format serviceId.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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'), the resource ('environment variables for a service'), and explicitly lists all supported service types (application, compose, postgres, mysql, mongo, redis, mariadb, libsql). It differentiates from sibling tools like serviceEnvironment-save (which modifies env vars) and per-service get tools by focusing specifically on environment variables.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 when you need environment variables but provides no explicit guidance on when not to use or alternatives. Considering sibling tools like serviceEnvironment-save and per-service read tools, the description does not differentiate usage context or provide exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
serviceEnvironment-saveBIdempotent
Save (update) environment variables for a service. The env parameter can be a string in KEY=VALUE format or an object map of env keys to values.
| Name | Required | Description | Default |
|---|---|---|---|
| serviceType | Yes | ||
| serviceId | Yes | ||
| env | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The idempotentHint annotation already declares idempotent behavior. The description adds that the env parameter accepts string or object formats, which is useful. However, it does not disclose whether the update merges or replaces existing variables, or any side effects, which would be valuable beyond the annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences: first states purpose, second clarifies the key parameter format. No redundant or missing words, and the essential information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 3 required parameters including a complex anyOf and an enum, the description is insufficient. It omits what the tool returns, whether env values are merged or replaced, prerequisites (e.g., service existence), and error conditions. Without an output schema, the agent lacks critical context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description bears full burden. It explains the env parameter format (string KEY=VALUE or object map), adding meaning beyond the schema. But it does not describe serviceType (enum values) or serviceId, leaving those parameters underspecified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'Save (update) environment variables for a service', which is a specific verb and resource. The title also reinforces this. However, it does not differentiate from sibling tools like application-saveEnvironment or compose-saveEnvironment, which serve similar purposes for specific service types.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus the many service-specific saveEnvironment siblings. There is no mention of prerequisites, context, or alternatives, leaving the agent without decision support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
settings-assignDomainServerDIdempotent
POST /settings.assignDomainServer
| Name | Required | Description | Default |
|---|---|---|---|
| host | Yes | ||
| certificateType | Yes | ||
| letsEncryptEmail | No | ||
| https | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does not disclose any behavioral traits beyond what annotations provide. Annotations indicate idempotent and open-world hints, but the description adds no context about side effects, required permissions, or response behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While extremely short, the description is under-specified and fails to convey any useful information. This is not conciseness but omission; it does not earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of output schema and parameter descriptions, the description is completely inadequate. It does not inform the agent about what the tool accomplishes or how 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 0%, and the description provides no additional meaning for parameters. The schema has properties like 'host' and 'certificateType' but no descriptions, and the tool description does not clarify their 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 is simply 'POST /settings.assignDomainServer', which is a tautology of the tool name. It provides no information about what the tool actually does, such as assigning a domain server or configuring settings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives. The description lacks any context about prerequisites, scenarios, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
settings-checkGPUStatusDRead-onlyIdempotent
GET /settings.checkGPUStatus
| Name | Required | Description | Default |
|---|---|---|---|
| serverId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true. The description adds no behavioral transparency beyond these annotations; it does not clarify what happens or what constraints 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 a single sentence that under-specifies the tool. It is not appropriately structured; it lacks clarity and context, making it unhelpful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity (1 optional parameter, no output schema), the description is completely inadequate. It fails to explain what GPU status is checked, what the response contains, or any side effects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain the 'serverId' parameter's meaning or usage. With no parameter details, the agent cannot correctly invoke the 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 is just the HTTP method and endpoint path 'GET /settings.checkGPUStatus', which indicates a read operation to check GPU status but does not explicitly state what the tool does. It is slightly more informative than a tautology but remains vague compared to a specific verb+resource definition.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 'settings-setupGPU' or other settings tools. The description lacks any context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
settings-checkInfrastructureHealthDRead-onlyIdempotent
GET /settings.checkInfrastructureHealth
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and openWorldHint=true. The description adds no behavioral context beyond that, such as what health checks are performed or what the response looks like. It fails to disclose any additional 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 extremely short (one line), but it is under-specified rather than concise. It lacks meaningful information and does not earn its place as a helpful description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters, no output schema, and a vague description, the tool is inadequately documented. The description leaves the agent without any understanding of what 'checkInfrastructureHealth' entails or what it returns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, and schema coverage is 100% (empty object). The description adds no semantic value beyond the schema, so 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 merely restates the tool name and HTTP method ('GET /settings.checkInfrastructureHealth'). It does not explicitly state the purpose beyond what is obvious from the name. It fails to differentiate from sibling tools like 'settings-health' or 'settings-checkGPUStatus'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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. There is no indication of when to use this tool versus alternatives, no prerequisites, and no context for typical scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
settings-cleanAllDIdempotent
POST /settings.cleanAll
| Name | Required | Description | Default |
|---|---|---|---|
| serverId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations (idempotentHint: true, openWorldHint: true) provide some behavioral hints, but the description adds nothing. It fails to disclose what gets destroyed or modified, what authentication is needed, or any side effects. For a 'cleanAll' operation, critical behavioral details are missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short (3 words) but this is underspecification, not conciseness. Every word should add value; here, none do. The entire burden of explanation is placed on the tool name and annotations, which are insufficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 (1 optional param, no output schema, many sibling cleanup tools), the description is completely inadequate. It provides zero context about what is cleaned, the scope of the operation, or return values. An agent would have to guess or fail.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has one parameter 'serverId' with 0% description coverage. The description does not explain the parameter's purpose, format, or constraints (e.g., whether it's required despite being optional in schema). An agent cannot determine how to correctly invoke the 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 is just 'POST /settings.cleanAll', which is a tautology of the tool name. It does not state what the tool does—e.g., what 'cleanAll' means or what settings are affected. For example, sibling tools like 'settings-cleanDockerBuilder' and 'settings-cleanDeploymentQueue' provide clearer purpose via their names, but the description for this tool offers no additional clarification.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 indicate when to use this tool compared to other settings-clean variants like 'settings-cleanAllDeploymentQueue' or 'settings-cleanStoppedContainers'. An agent would have no context to decide if this is the right tool for a given cleanup task.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
settings-cleanAllDeploymentQueueDIdempotent
POST /settings.cleanAllDeploymentQueue
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
While annotations indicate idempotentHint and openWorldHint, the description adds no behavioral context beyond what is already in the structured data. It does not disclose side effects, scope, or idempotency 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 extremely short (one phrase) but lacks meaningful structure. It does not earn its place as it provides minimal information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (zero parameters, but likely a significant operation), the description is insufficient. No details about effect, return, or prerequisites are provided.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so the schema coverage is trivially 100%. The description adds nothing about parameters, but with zero parameters, no additional meaning 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 'POST /settings.cleanAllDeploymentQueue' is essentially a tautology, restating the tool's name without explaining what the tool does. It fails to specify the verb and resource meaningfully.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 settings-cleanAll or deployment-queueList. The description lacks any context about appropriate scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
settings-cleanDockerBuilderDIdempotent
POST /settings.cleanDockerBuilder
| Name | Required | Description | Default |
|---|---|---|---|
| serverId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide idempotentHint=true and openWorldHint=true, but the description adds no behavioral information. With annotations present, the bar is lower, but the description still fails to comment on side effects, permissions, or what exactly gets cleaned.
Agents need to know what a tool does to the world before calling 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 misses critical information. It is not concise; it is under-specified. Every word should add value, but here it only repeats existing metadata.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero schema coverage, no output schema, and a potentially complex cleanup operation, the description is completely inadequate. It does not provide any context about what cleaning the Docker builder involves or how it affects the system.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has one parameter 'serverId' with no description, and schema description coverage is 0%. The description does not explain the parameter's meaning, format, or behavior, leaving the agent without guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description is merely 'POST /settings.cleanDockerBuilder', which is a tautology of the tool name and HTTP method. It does not state what the tool does, its purpose, or what cleaning the Docker builder entails.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 are many sibling cleanup tools (settings-cleanAll, settings-cleanDockerPrune), but the description provides no differentiators or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
settings-cleanDockerPruneDIdempotent
POST /settings.cleanDockerPrune
| Name | Required | Description | Default |
|---|---|---|---|
| serverId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (idempotentHint, openWorldHint) provide minimal behavioral cues, but the description adds nothing beyond the path. It does not describe what Docker prune actions are performed, side effects, or permissions needed.
Agents need to know what a tool does to the world before calling 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 this brevity sacrifices necessary detail. It is not appropriately sized for a tool with sibling ambiguity and no output 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?
Given the large number of sibling tools, lack of output schema, and minimal annotations, the description is completely insufficient. It omits crucial context about return values, side effects, and when to invoke this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has one optional parameter (serverId) with 0% description coverage, and the description ignores it entirely. The agent receives no guidance on the parameter's purpose or usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description only repeats the tool name as a URL path ('POST /settings.cleanDockerPrune'), failing to state what cleaning action occurs. It does not distinguish from sibling tools like settings-cleanAll or settings-cleanUnusedImages.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 or context that would help the agent decide.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
settings-cleanMonitoringDIdempotent
POST /settings.cleanMonitoring
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations include idempotentHint, indicating the tool can be safely retried, but the description adds no behavioral details (e.g., what gets modified, side effects, permission requirements). Despite annotations providing some hints, the description is silent on key behavioral traits beyond what annotations already convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short (one sentence) but fails to convey any useful information. Conciseness should not come at the expense of substance; this is under-specification rather than efficient communication.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (no parameters, no output schema), the description should still explain what 'cleanMonitoring' means and what monitoring it affects. Without this, an agent cannot determine the scope or effect of this tool relative to other cleanup 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 has zero parameters, and schema description coverage is 100%. According to the evaluation guidelines, 0 parameters yields a baseline of 4. The description does not add parameter semantics (as none exist), but this 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 only states the HTTP method and endpoint ('POST /settings.cleanMonitoring'), without any explanation of what the tool does. It does not specify the verb or resource meaningfully, making it impossible for an agent to understand its purpose. This is a tautology, effectively restating the name without adding information.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus its siblings, such as settings-cleanAll or settings-cleanDockerBuilder. The description provides no context about prerequisites, alternatives, or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
settings-cleanRedisDIdempotent
POST /settings.cleanRedis
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral information beyond the annotations. Annotations indicate idempotentHint and openWorldHint, but the description does not elaborate on what behavior to expect (e.g., what is cleaned, effects on Redis).
Agents need to know what a tool does to the world before calling 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 but at the expense of clarity. It is a single line that does not earn its place because it fails to inform. Under-specification is 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?
Given the lack of output schema, no parameters, and many sibling tools, the description is highly incomplete. It does not specify what Redis data is cleaned, whether it is destructive, or what the outcome is. The agent cannot use this tool confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so the schema description coverage is trivially 100%. The description does not need to add param info. 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 is merely the HTTP method and endpoint. It does not state what the tool does, leaving the agent to infer from the name 'cleanRedis'. This is a tautology of the tool name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool or when to use alternatives like settings-cleanAll, settings-reloadRedis, or other clean tools. The description provides no context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
settings-cleanSSHPrivateKeyDIdempotent
POST /settings.cleanSSHPrivateKey
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate idempotentHint=true (safe to repeat) and openWorldHint=true (may have side effects beyond inputs), but the description adds no behavioral context. It fails to clarify whether the tool permanently deletes the SSH private key or only marks it for cleanup, and does not mention prerequisites 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 very short but not informative. It is under-specified, providing only the HTTP method and endpoint, which is not helpful for an AI agent. True conciseness would convey purpose with minimal words, but this fails to convey any meaningful 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 should explain what happens when invoked (e.g., 'Removes the stored SSH private key from settings'). It does not, leaving the agent to guess the effect. Sibling tools like settings-saveSSHPrivateKey increase the need for clarity, which is unmet.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so schema coverage is trivially 100%. The description could still add value by confirming that no input is required, but it does not. However, the absence of parameters is clear from the schema, so this dimension is minimally adequate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is merely the HTTP route 'POST /settings.cleanSSHPrivateKey', which is a tautology of the tool name. It does not explain what the tool does, what 'clean' means in this context, or what resource it acts upon. No differentiation from sibling tools like settings-saveSSHPrivateKey.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 guidelines are provided on when to use this tool vs. alternatives such as settings-saveSSHPrivateKey or settings-cleanAll. The description offers no context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
settings-cleanStoppedContainersDIdempotent
POST /settings.cleanStoppedContainers
| Name | Required | Description | Default |
|---|---|---|---|
| serverId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description provides no behavioral details beyond the annotations. The annotations indicate idempotency and open-world hint, but the description fails to confirm that stopped containers are removed or describe 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 very short but underspecified. It is not concise in a helpful sense; it merely echoes the endpoint.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with one optional parameter and no output schema, the description is severely incomplete, lacking essential context about what the tool does.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description should explain parameters. It does not mention the 'serverId' parameter or its role.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 a tautology, restating the name as a URL path without explaining what the tool does. It lacks a verb and resource description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 vs. siblings like settings-cleanAll or settings-cleanDockerBuilder. No context is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
settings-cleanUnusedImagesDIdempotent
POST /settings.cleanUnusedImages
| Name | Required | Description | Default |
|---|---|---|---|
| serverId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral traits beyond what annotations already indicate (idempotentHint, openWorldHint). It fails to disclose what gets cleaned (unused Docker images?), potential side effects, or safety considerations.
Agents need to know what a tool does to the 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 extremely short, the description is not appropriately sized due to severe under-specification. Every sentence should earn its place, but this single sentence provides virtually no 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?
Given the complexity of the setting's clean operations and the existence of many sibling tools, the description is completely inadequate. No output schema exists, and the description does not clarify return values, scope of cleaning, or behavior across servers.
Complex tools with many parameters or behaviors need more documentation. 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 one parameter 'serverId' with no description, and schema coverage is 0%. The description does not explain the purpose or use of 'serverId', leaving the agent without guidance on 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 'POST /settings.cleanUnusedImages' merely restates the tool's name and HTTP method. It does not specify what 'cleanUnusedImages' means or what action it performs, nor does it distinguish this tool from similar siblings like settings-cleanAll or settings-cleanDockerBuilder.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 guidelines are provided about when to use this tool versus alternatives. There is no mention of prerequisites, context, or conditions for invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
settings-cleanUnusedVolumesDIdempotent
POST /settings.cleanUnusedVolumes
| Name | Required | Description | Default |
|---|---|---|---|
| serverId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Although annotations provide idempotentHint and openWorldHint, the description adds no behavioral context. It does not explain what cleaning volumes entails (e.g., deletion, side effects). The tool may be destructive, but without description or destructiveHint, the agent has insufficient 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 extremely short (one line) but under-specified. It is not concise in a helpful way; it omits essential information. Every sentence should earn its place, but this sentence adds zero value, making it a case of under-specification rather than efficient conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has one parameter, no output schema, and many related cleanup siblings, the description is completely inadequate. It does not explain the tool's operation, effects, or relationship to other tools, leaving the agent unable to use it correctly without external knowledge.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'serverId' has 0% schema description coverage, and the tool description does not explain its purpose or format. The agent cannot infer that serverId likely identifies the server for cleanup. The description fails to add meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description is just the HTTP endpoint 'POST /settings.cleanUnusedVolumes', which adds no meaning beyond the tool name. It does not state what the tool does, failing to clarify its purpose. The name implies cleaning unused volumes, but the description itself is missing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 its many cleanup siblings (e.g., settings-cleanUnusedImages, settings-cleanStoppedContainers). There is no mention of context, prerequisites, or alternatives, leaving the agent without direction on appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
settings-getDockerDiskUsageDRead-onlyIdempotent
GET /settings.getDockerDiskUsage
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral context beyond the annotations. Annotations already indicate readOnlyHint=true, idempotentHint=true, and openWorldHint=true. The description fails to disclose what data is returned or any other behavioral 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 extremely concise but at the expense of informativeness. It is a single line, but it does not earn its place as it conveys almost nothing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given there is no output schema, the description must explain the return value. It does not. The tool is one of many settings tools, and without context, the agent cannot determine its utility.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Although there are no parameters, the description should explain what information the tool returns. With 0 parameters, the baseline is 4, but the description provides no semantic value—it only shows the HTTP method and path, leaving the agent uninformed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 merely the HTTP path 'GET /settings.getDockerDiskUsage', which is a tautology restating the tool name. It does not specify that the tool retrieves Docker disk usage statistics or any other meaningful 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 on when to use this tool versus alternative settings tools. For example, it does not clarify how it differs from settings-cleanDockerPrune or settings-getDokployCloudIps.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
settings-getDokployCloudIpsCRead-onlyIdempotent
GET /settings.getDokployCloudIps
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint, idempotentHint, and openWorldHint, but the description adds no behavioral context beyond what is already in annotations. It does not mention side effects, authentication needs, rate limits, or what happens on error. No contradiction exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short (just the endpoint), but it is under-informative. While conciseness is valued, this lacks substantive content needed for an AI agent. It reads more like a placeholder than a crafted description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 should explain what the tool returns (e.g., list of IPs, format). Without this, the agent cannot understand the response structure. The openWorldHint suggests the result may change, but details are missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters in the input schema, and schema coverage is 100%. The description does not need to clarify parameters. Baseline score of 4 is appropriate since there is nothing to add.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'GET /settings.getDokployCloudIps' is a tautology of the tool name and endpoint path. The title from annotations hints at retrieving Dokploy cloud IPs, but the description itself provides no explicit statement of what the tool does, relying on inference from the name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidance is provided. There are numerous sibling tools for retrieving settings (e.g., settings-getIp, settings-getDockerDiskUsage), but the description does not explain when to use this tool over alternatives or mention any prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
settings-getDokployVersionCRead-onlyIdempotent
GET /settings.getDokployVersion
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint and idempotentHint, covering the safety profile. However, the description adds no behavioral context (e.g., response format, side effects). It neither contradicts nor supplements annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short but fails to convey essential purpose or usage. It is under-specified rather than concise, wasting the opportunity to provide minimal necessary info.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description must explain what the tool returns. It does not, and annotations do not cover this. For a simple retrieval tool, this is a significant gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters and schema coverage is 100%. The description could have optionally explained the return value, but its absence is less critical. 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 is just 'GET /settings.getDokployVersion', which only restates the tool name in HTTP format. It does not explicitly state that it retrieves the Dokploy version, failing to provide clear purpose beyond 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?
No guidance is given on when to use or avoid this tool. There is no reference to siblings or context, leaving the agent without criteria for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
settings-getIpCRead-onlyIdempotent
GET /settings.getIp
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint and idempotentHint, so the safe read behavior is clear. However, the description adds no additional behavioral details (e.g., rate limits, data source), and fails to disclose any potential side effects or authentication needs beyond what annotations imply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short but does not earn its place by providing useful information. It is under-specified, not concise in the sense of delivering value 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?
Despite having no parameters and supportive annotations, the description fails to state the purpose clearly (what IP is retrieved). For a tool with no output schema, the description should clarify the return value or typical usage, which is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the schema fully covers the input. With 100% schema coverage, the description has no need to add parameter meaning, and the 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 'GET /settings.getIp' is a tautology that simply restates the tool name as an HTTP endpoint. It does not specify what IP is being retrieved (e.g., server IP, settings IP) or the scope of the operation, making it uninformative for an agent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus similar sibling tools like 'server-publicIp'. The description lacks any context about prerequisites, alternatives, or conditions for invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
settings-getLogCleanupStatusCRead-onlyIdempotent
GET /settings.getLogCleanupStatus
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint. The description adds no further behavioral details, such as what status information is returned or if it triggers any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short (one line) but lacks any substantive information. It is under-specification rather than concise and does not front-load useful content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no output schema, the description should explain what the response contains. It does not, leaving the agent to guess what 'log cleanup status' entails. The description is incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters with 100% coverage. The description does not need to add parameter info, and the baseline of 4 applies as per rule.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 tautology of the name, stating only the HTTP method and path. It does not explain what 'log cleanup status' means or what the tool does beyond 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?
No guidance on when to use this tool versus any of the many settings siblings, such as settings-updateLogCleanup or settings-cleanAll.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
settings-getOpenApiDocumentDRead-onlyIdempotent
GET /settings.getOpenApiDocument
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral details beyond what annotations already provide (readOnlyHint, idempotentHint, openWorldHint). It does not describe what the tool returns, side effects, or any prerequisites. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short but fails to include essential information about the tool's purpose. It is under-specified rather than concise, as every sentence should add 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?
Despite having no parameters and read-only annotations, the description lacks any indication of what the tool returns (e.g., the OpenAPI document content). It is incomplete for an agent to understand the tool's 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?
There are no parameters, so schema coverage is trivially 100%. Baseline for zero parameters is 4, but since the description provides no additional meaning about the tool's operation, a 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 is 'GET /settings.getOpenApiDocument', which merely restates the endpoint from the tool name without clarifying that it retrieves the OpenAPI specification document. It uses a generic HTTP verb+path pattern without stating the purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus sibling tools like settings-getDokployVersion or settings-health. The agent receives no context about appropriate usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
settings-getReleaseTagDRead-onlyIdempotent
GET /settings.getReleaseTag
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral information beyond what annotations already provide (readOnly, idempotent, openWorld). It does not disclose any additional traits such as side effects, authentication needs, or return format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise but under-specifies. It simply repeats the tool name and HTTP method without adding useful information, failing to earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description should at least mention what the tool returns (e.g., the release tag value or format). It completely fails to provide contextual completeness for a simple retrieval tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the input schema is fully self-explanatory. The description does not need to add parameter information, and no additional semantics are required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'GET /settings.getReleaseTag' is a tautology, merely restating the tool name and HTTP method. It does not explain what a release tag is or what the tool returns, leaving the purpose barely inferable from the name alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'settings-getDokployVersion' or 'settings-getUpdateData'. No usage context or contraindications are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
settings-getTraefikPortsDRead-onlyIdempotent
GET /settings.getTraefikPorts
| Name | Required | Description | Default |
|---|---|---|---|
| serverId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint, idempotentHint, and openWorldHint. The description adds no additional behavioral context beyond the 'GET' method, which is redundant with readOnlyHint. It does not explain what happens when serverId is provided or omitted.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise but at the expense of completeness. The description is a single line that adds no value beyond the tool name. It is under-specified, not efficiently concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only tool with one optional parameter and no output schema, the description fails to explain what the tool returns or how to interpret results. It is not self-contained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the parameter 'serverId' has no description in either the schema or the tool description. The description provides no meaning for this 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 is just the HTTP method and endpoint path, which is a tautology of the tool name. It does not explain what the tool does, what Traefik ports are, or how it differs from similar tools like settings-readTraefikConfig.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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. The description lacks context for when an AI agent should call this instead of other settings-* tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
settings-getUpdateDataDIdempotent
POST /settings.getUpdateData
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate idempotentHint=true, implying a read operation, but the description adds no behavioral context such as whether other settings are affected or if authentication is required. It fails to leverage the openWorldHint annotation.
Agents need to know what a tool does to the world before calling 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 this is not conciseness—it is under-specification. No sentences add real value beyond restating 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?
Given the absence of output schema and the number of sibling tools, the description is completely inadequate. It does not clarify return values, side effects, or typical use cases.
Complex tools with many parameters or behaviors need more documentation. 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, schema coverage is trivially 100%, but the description provides no semantic value beyond the endpoint. The baseline of 4 for 0 params is reduced because the description fails to explain what the tool does or what it returns.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 merely the HTTP endpoint 'POST /settings.getUpdateData', which is a tautology of the tool name. It does not specify what data is updated or retrieved, and fails to distinguish this tool from numerous sibling 'settings-get*' 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?
No guidance is provided on when to use this tool versus alternatives like settings-getDokployVersion or settings-getTraefikPorts. Agents have no information about context or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
settings-getWebServerSettingsCRead-onlyIdempotent
GET /settings.getWebServerSettings
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and openWorldHint=true, so the description does not need to repeat these. However, it adds no additional behavioral context such as what data is returned or if there are any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short but lacks substance. It is a single line that provides no useful information beyond the name, making it under-specified rather than concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple getter with no parameters and no output schema, the description could still indicate what the response contains. The current description does not help the agent determine if this tool meets its needs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters and 100% schema description coverage. With no parameters to describe, the description is adequate; baseline for 0 parameters is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is merely the HTTP method and endpoint path ('GET /settings.getWebServerSettings'), which is a tautology of the tool name. It does not state what the tool does or what 'web server settings' refers 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?
No guidance is provided on when to use this tool versus other sibling tools like 'settings-readWebServerTraefikConfig' or 'settings-getTraefikPorts'. The context does not clarify the tool's role.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
settings-haveActivateRequestsDRead-onlyIdempotent
GET /settings.haveActivateRequests
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and openWorldHint=true, but the description adds no behavioral context beyond the endpoint path. It does not explain what 'activate requests' are, what the response contains, 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?
While extremely short, the description sacrifices clarity for brevity. A single line with only the HTTP method and path is insufficient to convey the tool's purpose. It is not front-loaded with 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 no parameters, no output schema, and the simplicity implied by annotations, the description still fails to explain what the tool returns or its role in the system. The name suggests a boolean check, but this is not confirmed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, and schema coverage is 100% trivially. The description adds no value regarding parameters, but the absence is not harmful. The baseline for 0 parameters is 4, but the description does not even confirm no input is needed, making 3 more 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 'GET /settings.haveActivateRequests' merely repeats the HTTP method and endpoint path, providing no plain-language explanation of what the tool does. It fails to state a specific verb and resource, leaving the purpose entirely unclear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 settings-toggleRequests or settings-cleanAll. The extensive list of sibling tools offers no differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
settings-haveTraefikDashboardPortEnabledDRead-onlyIdempotent
GET /settings.haveTraefikDashboardPortEnabled
| Name | Required | Description | Default |
|---|---|---|---|
| serverId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint. The description adds no behavioral details beyond the endpoint path, such as what the tool returns or any constraints. It does not contradict annotations but fails to add value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise but at the expense of usefulness. It is under-specified and fails to convey necessary information, which is not 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?
Given the minimal description, lack of parameter guidance, and absence of output schema details, the tool definition is incomplete. An AI agent would lack critical context to invoke 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?
There is one parameter, 'serverId', with 0% schema description coverage. The description provides no explanation of the parameter's meaning, making it impossible for an agent to use correctly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 /settings.haveTraefikDashboardPortEnabled' merely restates the tool name as an HTTP endpoint, providing no additional clarity about what the tool does. It lacks a verb and specific resource context, making it 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?
No guidance is given on when to use this tool versus siblings like settings-toggleDashboard or settings-getTraefikPorts. The description offers no context for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
settings-healthCRead-onlyIdempotent
GET /settings.health
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the agent knows it's a safe read operation. However, the description adds no behavioral details (e.g., what happens on failure, return format).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short but under-specified. It does not earn its place as a meaningful description; it merely echoes the name and path.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters, good annotations, and no output schema, the description still fails to explain the purpose or return value of the health check. It is incomplete for an agent to understand the tool's 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 input schema has zero parameters with 100% coverage, so the baseline is 4. The description does not need to add parameter semantics, but it also doesn't provide any extra 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 'GET /settings.health' only provides the HTTP method and endpoint, without stating what the tool does. It fails to clarify the concept of 'health' or distinguish it from sibling tools like 'settings-checkInfrastructureHealth'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives. The description lacks context about prerequisites or scenarios where this health check is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
settings-isCloudDRead-onlyIdempotent
GET /settings.isCloud
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, but the description adds no behavioral context such as what is checked or what response to expect. It provides minimal additional transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short but at the expense of informativeness. It is not appropriately sized for the tool's role; it lacks necessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no parameters, the description should clarify the tool's purpose and return value. It completely fails to do so, leaving the agent uninformed about what 'isCloud' means.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so schema coverage is 100%. The description does not add meaning beyond the schema, but since there are no parameters, the lack of parameter details is not critical. Baseline for zero parameters is 4, but the description still fails to explain the tool's result.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 /settings.isCloud' is a tautology that merely restates the tool name and HTTP method. It fails to indicate what the endpoint returns or what 'isCloud' signifies, providing no value beyond the tool name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus other settings tools like settings-getIp or settings-health. The description offers no context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
settings-isUserSubscribedCRead-onlyIdempotent
GET /settings.isUserSubscribed
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, providing a clear safety profile. The description adds no behavioral context beyond the endpoint, but it does not contradict the annotations. With annotations present, a score of 3 is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short (3 words), but it sacrifices substance for brevity. It is under-specified rather than concise, failing to provide useful information that warrants its length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of an output schema and the simple nature of the tool (no parameters), the description should at least hint at the return value (e.g., boolean). It does not, leaving the agent uncertain about what the tool returns or how it behaves.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, and schema description coverage is 100%. Per guidelines, the baseline score is 4, and the description does not need to add parameter information since there are none.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description only states 'GET /settings.isUserSubscribed', which restates the tool's name and HTTP method without explaining what the tool actually does. While the name implies a subscription status check, the description lacks clarity on the action and output.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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, when not to use it, or how it differs from sibling tools like settings-health or settings-getDokployVersion. The agent receives no contextual advice for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
settings-readDirectoriesDRead-onlyIdempotent
GET /settings.readDirectories
| Name | Required | Description | Default |
|---|---|---|---|
| serverId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral information beyond what annotations already provide (readOnlyHint, idempotentHint). It does not contradict annotations but adds no value, failing to disclose any traits like side effects or required permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely brief (one line), but it is under-specification rather than efficient conciseness. Every sentence should earn its place; this sentence fails to provide any useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (1 optional param, no output schema, many sibling tools), the description is completely inadequate. It lacks any detail about return values, scope, or behavior, making it impossible for an agent to use 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 0% description coverage, and the description does not explain the 'serverId' parameter. The tool name hints at reading directories, but no semantic detail is given about what serverId does or how it affects the result.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 simply 'GET /settings.readDirectories', which is a tautology of the tool name and does not state what the tool does. It lacks any verb-resource definition to distinguish it from siblings like settings-readTraefikConfig.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 offers no context, prerequisites, or exclusions, leaving the agent without any usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
settings-readMiddlewareTraefikConfigCRead-onlyIdempotent
GET /settings.readMiddlewareTraefikConfig
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, idempotentHint=true, openWorldHint=true. The description adds no behavioral context beyond what is already structured, such as what 'MiddlewareTraefikConfig' entails 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?
While the description is extremely concise, it is under-specified. It consists of only the endpoint path, which does not provide enough context for an AI agent to understand the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema is provided, and the description lacks information about the return value. Given the tool has zero parameters, the description should at least indicate what configuration is retrieved, but it fails to do so.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so the description need not compensate for undocumented parameters. However, it does not clarify the nature of the response or what the tool returns, which limits its usefulness.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 merely the HTTP method and endpoint path 'GET /settings.readMiddlewareTraefikConfig', which essentially restates the tool name. It does not explain what the tool does in natural language, nor does it distinguish it from sibling tools like settings-readTraefikConfig or settings-readWebServerTraefikConfig.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 guidelines are provided. The description does not indicate when to use this tool over alternatives, such as reading other Traefik configs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
settings-readTraefikConfigDRead-onlyIdempotent
GET /settings.readTraefikConfig
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, but the description adds no behavioral context beyond that. While not contradictory, it fails to disclose any additional traits (e.g., scope of config, auth requirements).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is too concise (a single non-informative phrase) and does not earn its place. While short, it lacks substance and structure needed to guide an agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 sibling tools (e.g., various Traefik config readers/updaters) and the absence of an output schema, the description is incomplete. It does not clarify the scope (settings versus application) or what the configuration pertains to.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, and schema coverage is 100%. The description adds no meaning beyond the empty schema, but baseline for 0 params is 3. No param information is 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 'GET /settings.readTraefikConfig' is a tautology that restates the tool name and route without explaining what the tool does. It provides no verb or resource semantics, making it impossible for an agent to infer 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 offers no guidance on when to use this tool versus sibling tools like application-readTraefikConfig or settings-updateTraefikConfig. No context, exclusions, or alternatives are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
settings-readTraefikEnvDRead-onlyIdempotent
GET /settings.readTraefikEnv
| Name | Required | Description | Default |
|---|---|---|---|
| serverId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint as true. The description adds no behavioral information beyond the endpoint path; it does not explain what 'TraefikEnv' contains, what the response looks like, or any required permissions. With annotations present, the bar is lower, but the description still fails to add meaningful context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (2 words) but at the expense of essential information. It is under-specified rather than efficiently informative, making it of limited use.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has one parameter, no output schema, and the description is minimal, the description is wholly incomplete. The agent cannot understand the tool's purpose, parameters, or expected behavior without additional external knowledge.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain the sole parameter 'serverId'. The schema only shows it is an optional string, but no meaning or format is provided. The description should compensate for the lack of schema descriptions but fails completely.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 /settings.readTraefikEnv' is a tautology of the tool name; it restates the HTTP method and path without specifying what the tool accomplishes. No verb or resource is clarified beyond the name itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus sibling tools like 'settings-readTraefikConfig' or 'settings-readTraefikFile'. The description offers no context for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
settings-readTraefikFileDRead-onlyIdempotent
GET /settings.readTraefikFile
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| serverId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (readOnlyHint, idempotentHint, openWorldHint) indicate a read-only, idempotent operation, but the description adds no behavioral context beyond these. It fails to disclose what the file contains or any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short but lacks substance. It is under-specified rather than concise; it sacrifices clarity 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?
Given no output schema and minimal description, the tool is insufficiently documented. An agent cannot infer the purpose, behavior, or return format.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description does not explain the parameters (path, serverId). The required 'path' parameter is left ambiguous; no indication of what file paths are valid.
Input schemas describe structure but not intent. Descriptions should explain 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 is merely the HTTP method and endpoint path ('GET /settings.readTraefikFile'), which is a tautology that restates the tool name without explaining what the tool does. It lacks a verb-resource description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 or how it differs from siblings like settings-readTraefikConfig, settings-readTraefikEnv, etc. The description provides no context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
settings-readWebServerTraefikConfigDRead-onlyIdempotent
GET /settings.readWebServerTraefikConfig
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, indicating safe read-only behavior. However, the description adds no further behavioral context, such as permissions required or the nature of the configuration, leaving the tool's behavior underspecified.
Agents need to know what a tool does to the world before calling 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 but at the expense of informativeness. It is too minimal to be useful; it merely restates the tool name as an HTTP path without adding 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?
Given the simplicity of the tool (no parameters) but the presence of many sibling tools, the description lacks the context needed to distinguish this read operation from similar ones. It does not explain what 'WebServerTraefikConfig' is or when to use this specific endpoint.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters and schema coverage is 100% by default. With zero parameters, the description need not provide parameter info, and 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 is merely the HTTP method and path, which is a tautology of the tool name. It does not state what the tool does or what resource it retrieves, leaving its purpose unclear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 siblings like settings-readTraefikConfig or settings-updateWebServerTraefikConfig. The description offers no context for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
settings-reloadRedisDIdempotent
POST /settings.reloadRedis
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral information beyond the annotations. Annotations indicate idempotentHint and openWorldHint, but the description does not explain what reloading entails or any side effects. It fails to convey 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 concise (one line) but lacks substance. It does not front-load key information or provide a meaningful summary. Conciseness here is not beneficial due to under-specification.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 of the tool (no parameters, no output schema), the description is still incomplete. It does not explain the purpose or effect of reloading Redis, leaving the agent with insufficient context 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?
There are no parameters, and the input schema is empty. The description adds no information about parameters, but with zero parameters, the baseline is 4. The description could have clarified that no arguments are needed, but it is not necessary.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'POST /settings.reloadRedis' merely repeats the HTTP method and endpoint, providing no explanation of what the tool does. It fails to state that it reloads Redis configuration or any specific action, making it 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?
No guidance is given on when to use this tool versus alternatives like 'settings-cleanRedis' or 'redis-reload'. There is no context provided for appropriate use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
settings-reloadServerDIdempotent
POST /settings.reloadServer
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate idempotentHint=true and openWorldHint=true, but the description adds no behavioral context (e.g., does it restart services? requires root?). Description fails to add value beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely short (3 words) but under-specified. It is not concise in a helpful way; critical information missing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, no parameter details, and a tautological description. Completely inadequate for a tool that likely affects server state.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has zero parameters, so schema coverage is 100% trivially. Description adds no meaning beyond schema, getting 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?
Description is 'POST /settings.reloadServer', which merely restates the tool name and method. It does not specify what 'reloadServer' means or what resource is 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 on when to use this tool versus alternatives like settings-reloadRedis or settings-reloadTraefik. The tool's role in server management is entirely unspecified.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
settings-reloadTraefikDIdempotent
POST /settings.reloadTraefik
| Name | Required | Description | Default |
|---|---|---|---|
| serverId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds nothing about behavior beyond what annotations already provide (idempotentHint, openWorldHint). It does not explain what 'reload' entails (e.g., applies latest config changes, no service restart). No side effects are disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise but at the expense of informativeness. A description should include purpose and usage hints; this is essentially a raw endpoint string.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero output schema and optional parameter, the description should explain what 'reload' accomplishes, when it is needed, and its effect on running applications. It fails to provide any meaningful 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 single parameter 'serverId' (optional) has zero description coverage. The tool description fails to explain its purpose or format, leaving the agent to infer its meaning from the name alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'POST /settings.reloadTraefik' barely adds beyond the name. It implies an HTTP endpoint but does not explain that the tool reloads Traefik configuration. It does not distinguish from sibling tools like 'settings-readTraefikConfig' which reads the config.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 'settings-updateTraefikConfig' or 'settings-readTraefikConfig'. The description provides no context about prerequisites or typical usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
settings-saveSSHPrivateKeyDIdempotent
POST /settings.saveSSHPrivateKey
| Name | Required | Description | Default |
|---|---|---|---|
| sshPrivateKey | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral context beyond the annotations (idempotentHint, openWorldHint). It does not disclose side effects, authentication needs, or whether it overwrites existing keys.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is too terse and under-specified. It lacks any substantive information, making it unhelpful despite its 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?
Given no output schema, no parameter descriptions, and a minimal description, the definition is incomplete 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?
Schema coverage is 0% and the description provides no details about the sshPrivateKey parameter, such as expected format, source, 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 'POST /settings.saveSSHPrivateKey' restates the tool name and HTTP method, but does not clearly state what the tool does beyond implying it saves an SSH private key. It lacks a verb-resource purpose and does not distinguish from siblings like settings-cleanSSHPrivateKey.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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, context, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
settings-setupGPUDIdempotent
POST /settings.setupGPU
| Name | Required | Description | Default |
|---|---|---|---|
| serverId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare idempotentHint and openWorldHint, but the description adds no behavioral information beyond that. It does not disclose any side effects, permissions, or error conditions. No contradiction, but no value added.
Agents need to know what a tool does to the world before calling 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 at the expense of clarity. It is under-specified rather than concise, as it omits all essential details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of output schema and the tool's likely complexity (GPU setup), the description is completely inadequate. It fails to explain return values, prerequisites, or effects, leaving the agent with no usable information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage and no parameter descriptions in the tool description, the agent has no information about the meaning or format of 'serverId'. The description fails to compensate for the schema's lack of 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 is merely 'POST /settings.setupGPU', which is a tautology of the tool name and provides no verb-resource semantics. It does not state what the tool does, making it useless for understanding its purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like 'server-setup' or 'settings-checkGPUStatus'. The description offers no context for decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
settings-toggleDashboardDIdempotent
POST /settings.toggleDashboard
| Name | Required | Description | Default |
|---|---|---|---|
| enableDashboard | No | ||
| serverId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide idempotentHint and openWorldHint, but the description adds no behavioral context. The name suggests a toggle (state change), which typically is not idempotent, creating potential confusion. No explicit contradiction with annotations, but lack of clarification reduces 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 extremely brief (one line) but fails to convey essential information. This is underspecification, 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?
Given the lack of output schema, 0% parameter coverage, and absence of explanation, the description is completely inadequate for an agent to understand the tool's functionality or return value.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description should explain the parameters. It does not mention 'enableDashboard' (boolean) or 'serverId' (string) at all, leaving their semantics entirely unclear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 only 'POST /settings.toggleDashboard', which is a tautology that restates the tool's name and HTTP method without specifying what the tool actually does. It fails to convey the verb+resource 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 on when to use this tool versus alternatives. The description provides no context about prerequisites, use cases, or distinctions from sibling settings tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
settings-toggleRequestsDIdempotent
POST /settings.toggleRequests
| Name | Required | Description | Default |
|---|---|---|---|
| enable | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral details beyond what the annotations provide (idempotentHint, openWorldHint). It does not disclose side effects, persistence, or required permissions. The agent learns nothing about 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?
While very short, the description is under-specified, not concise. It fails to deliver essential information. Every descriptive element is missing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with one required boolean parameter and no output schema, the description is completely inadequate. It does not help the agent select or invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description must explain the 'enable' parameter. It does not. The agent is left to guess whether to pass true/false and what effect each value has.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'POST /settings.toggleRequests' merely restates the tool name in HTTP verb/path format. It does not communicate what action the tool performs, such as enabling or disabling requests. This is a tautology that provides no purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool vs. alternatives like settings-toggleDashboard or settings-haveActivateRequests. The description lacks context about use cases, preconditions, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
settings-updateDockerCleanupDIdempotent
POST /settings.updateDockerCleanup
| Name | Required | Description | Default |
|---|---|---|---|
| enableDockerCleanup | Yes | ||
| serverId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description provides no behavioral information beyond annotations (idempotentHint, openWorldHint). It does not mention that this is an update operation or what changes are made.
Agents need to know what a tool does to the 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 brief, the description is under-specified rather than concise. It lacks essential information to be 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?
Given the complexity (2 params, no output schema) and lack of annotation detail, the description is completely inadequate for an AI agent to understand tool 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 has two parameters (enableDockerCleanup, serverId) but description gives no meaning or context for them. With 0% schema description coverage, the description fails to compensate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description is merely the HTTP method and endpoint name 'POST /settings.updateDockerCleanup', which is a tautology. It does not state what the tool does or what resource it acts on.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 tools like 'settings-cleanDockerPrune' exist but are not differentiated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
settings-updateLogCleanupDIdempotent
POST /settings.updateLogCleanup
| Name | Required | Description | Default |
|---|---|---|---|
| cronExpression | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide idempotentHint and openWorldHint, but the description adds no behavioral context (e.g., what happens during update, side effects, prerequisites). It does not contradict annotations but fails to add value beyond them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (one word plus endpoint) but this is due to underspecification, not efficient communication. Important information is missing, so it fails to be appropriately sized or 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?
Given the complexity (single required parameter with no schema description, no output schema, and no description), this tool definition is completely inadequate. The agent cannot determine what the tool does or how 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?
The only parameter (cronExpression) is required but has no description in the schema (0% coverage). The tool description does not mention it or explain its meaning or format. The agent has no semantic understanding of 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 is just 'POST /settings.updateLogCleanup', which merely restates the tool name and HTTP method. It does not specify what the tool does, what resource it acts on, or any verb. This is a tautology and provides no purpose clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidelines are provided. There is no indication of when to use this tool versus the many sibling tools, especially other settings-update or cleanup tools. The agent receives no context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
settings-updateMiddlewareTraefikConfigDIdempotent
POST /settings.updateMiddlewareTraefikConfig
| Name | Required | Description | Default |
|---|---|---|---|
| traefikConfig | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare idempotentHint=true and openWorldHint=true, but the description adds no behavioral context beyond the endpoint. It does not explain the effect of the update (e.g., overwrite, merge, restart required), nor does it mention any side effects implied by openWorldHint.
Agents need to know what a tool does to the world before calling 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 (4 words) but under-specified. It is not concise in a helpful way; it omits essential information, making it useless for an AI agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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, the presence of many sibling tools, and the lack of output schema or rich annotations, the description is completely inadequate. It provides no context about preconditions, effects, or return values.
Complex tools with many parameters or behaviors need more documentation. 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 shows one required string parameter 'traefikConfig' with minLength 1, but the description provides no explanation of its expected format (e.g., JSON, YAML, raw config) or semantics. With 0% schema description coverage, the description should compensate but fails to do so.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is merely the HTTP method and endpoint path ('POST /settings.updateMiddlewareTraefikConfig'), which is a tautology of the tool name. It does not clarify what the tool does, e.g., what 'updateMiddlewareTraefikConfig' means in terms of functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 guidelines are provided. The description does not indicate when to use this tool versus siblings like 'settings-updateTraefikConfig' or 'settings-updateWebServerTraefikConfig', leaving the agent without decision support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
settings-updateServerDIdempotent
POST /settings.updateServer
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide idempotentHint and openWorldHint, but the description adds no behavioral context. It does not disclose what effects calling this tool has on the server, such as configuration changes or restarts.
Agents need to know what a tool does to the world before calling 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 but at the expense of clarity. It under-specifies the tool's function, making it unhelpful despite its 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?
With no parameters and no output schema, the description should explain the tool's action. The current description is completely inadequate, providing no information about what 'updateServer' entails.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so the schema coverage is 100%. However, the description does not add meaningful information about the tool's purpose, leaving the agent to guess what the tool does without any parameter 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 'POST /settings.updateServer' only provides the HTTP method and endpoint, restating the tool name without stating what the tool does. It lacks a verb and resource description, making it 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?
No guidance is given on when to use this tool versus sibling tools like server-update or other settings-* tools. The description fails to provide context or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
settings-updateServerIpDIdempotent
POST /settings.updateServerIp
| Name | Required | Description | Default |
|---|---|---|---|
| serverIp | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide idempotentHint=true and openWorldHint=true, but the description adds no behavioral information (e.g., side effects, dependencies). The description fails to supplement the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short but at the expense of substance. It is under-specified, providing no useful information. Conciseness here is detrimental.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 (1 required parameter, no output schema), the description is grossly incomplete. It does not explain the tool's purpose or behavior, leaving the agent without critical context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%. The description does not explain the 'serverIp' parameter—its format, meaning, or constraints. The parameter is entirely undocumented in 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 'POST /settings.updateServerIp' is a tautology, only repeating the HTTP method and endpoint. It does not state what the tool does, e.g., 'Updates the server IP address'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 settings-updateServer or settings-getIp. The description lacks any usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
settings-updateTraefikConfigDIdempotent
POST /settings.updateTraefikConfig
| Name | Required | Description | Default |
|---|---|---|---|
| traefikConfig | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate idempotent and open world, but the description adds no behavioral context (e.g., whether the config is merged or replaced, what happens on failure, authentication requirements).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short but unhelpfully so. It front-loads no useful information and fails to earn its place by providing context 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?
Given a single parameter and no output schema, the description should compensate with clear semantics. It does not explain return values, error cases, or parameter construction, leaving the tool inadequately defined.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%. The parameter 'traefikConfig' is required but unexplained. The description does not clarify expected format (JSON string, YAML, partial vs full config), leaving the agent without guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is 'POST /settings.updateTraefikConfig', which merely repeats the tool name and HTTP method. It does not clarify what 'updateTraefikConfig' entails, nor does it distinguish it from siblings like settings-readTraefikConfig or application-updateTraefikConfig.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 context is provided. The description does not mention when to use this tool over alternatives (e.g., settings-updateTraefikFile), nor any prerequisites or conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
settings-updateTraefikFileDIdempotent
POST /settings.updateTraefikFile
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| traefikConfig | Yes | ||
| serverId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate idempotentHint=true and openWorldHint=true, but the description adds no behavioral context. It doesn't explain side effects or prerequisites, missing an opportunity to augment the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely brief (one line), but it's under-specified rather than concise. It lacks structure and 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?
No output schema exists, and the description fails to explain return values, success indicators, or potential errors. The agent has insufficient context to understand the tool's 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 has 3 parameters (path, traefikConfig, serverId) with no descriptions. The description does not explain their meaning or usage, leaving the agent to guess.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 merely 'POST /settings.updateTraefikFile', which echoes the name without clarifying the action. It doesn't specify that it updates a Traefik configuration file, leaving the purpose ambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool vs siblings like settings-readTraefikFile or settings-updateTraefikConfig. The description fails to distinguish the scenario for updating a Traefik file.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
settings-updateTraefikPortsDIdempotent
POST /settings.updateTraefikPorts
| Name | Required | Description | Default |
|---|---|---|---|
| serverId | No | ||
| additionalPorts | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate idempotentHint=true and openWorldHint=true, but the description adds no behavioral context (e.g., that it modifies port mappings, requires server ID, or effect on running services). Without annotations, description would be scored 1, but with annotations the bar is lower; still, description fails to add meaningful behavioral info 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?
Excessively short (one line) to the point of under-specification. Not concise; it is missing essential information. Every sentence should earn its place; here there are no sentences of 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?
Given the tools complexity (nested object parameters, no output schema), the description is completely inadequate. It provides no context about return values, side effects, or how the tool interacts with the system. A tool of this type should explain the effect on Traefik configuration.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so description must compensate. It does not. Parameters 'serverId' and 'additionalPorts' are not explained; the nested object structure of 'additionalPorts' (targetPort, publishedPort, protocol) is entirely undocumented in the description. The tool name gives a hint but no semantic clarity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is just the endpoint path 'POST /settings.updateTraefikPorts', which is a tautology of the tool name. It does not state what the tool does, e.g., update Traefik port mappings. Purpose is completely unclear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 settings-getTraefikPorts or settings-updateTraefikConfig. No context about prerequisites or conditions. Entirely lacking.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
settings-updateWebServerTraefikConfigDIdempotent
POST /settings.updateWebServerTraefikConfig
| Name | Required | Description | Default |
|---|---|---|---|
| traefikConfig | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate idempotentHint=true and openWorldHint=true, but the description adds no behavioral context beyond these annotations, such as whether the config is replaced or merged, or if validation occurs.
Agents need to know what a tool does to the world before calling 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 terse (one sentence) but lacks substance; it is under-specified rather than effectively concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a configuration update tool, the description is critically incomplete. It fails to explain the effect of the update, the expected format of the config string, or any validation 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 coverage is 0%, and the description provides no explanation for the required 'traefikConfig' parameter, such as its expected format (e.g., JSON, YAML) 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 is merely the HTTP method and endpoint path, which repeats the tool name. It does not state what the tool does, such as updating the Traefik configuration for the web server.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidance is provided. The description gives no context on when to use this tool versus related siblings like settings-updateTraefikConfig or settings-readWebServerTraefikConfig.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
settings-writeTraefikEnvDIdempotent
POST /settings.writeTraefikEnv
| Name | Required | Description | Default |
|---|---|---|---|
| env | Yes | ||
| serverId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description adds no behavioral info beyond annotations. Annotations indicate idempotent and open world, but description doesn't clarify what writing involves or potential 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?
Extremely short but under-specified. Conciseness is not helpful when it omits all meaningful content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and an open world hint, description is completely insufficient. Does not explain behavior, parameters, or 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?
No parameter descriptions in schema or description. Agent cannot determine what values to provide for 'env' or 'serverId'.
Input schemas describe structure but not intent. Descriptions should explain 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 is just the HTTP method and endpoint path, which is a tautology of the tool name. It does not state what the tool does or 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?
No guidance on when to use this tool vs alternatives. Sibling tools include many settings operations, but the description provides no context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sshKey-allDRead-onlyIdempotent
GET /sshKey.all
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so the agent knows it's a safe read operation. However, the description adds no behavioral details beyond what annotations provide, such as scope (e.g., whether it returns keys for the current user or all keys in the system) or response format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise but at the expense of informativeness. A single line that merely echoes the endpoint does not earn its place; it under-specifies rather than being efficiently 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?
With no output schema, the description should explain what is returned (e.g., a list of SSH keys). It does not. Given the simplicity of zero parameters, a complete description would be brief but informative; this description fails to provide minimum context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and schema coverage is 100%. The description does not need to provide parameter details. Baseline 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 is essentially a tautology, restating the name 'sshKey-all' as 'GET /sshKey.all'. It does not specify what the tool does (e.g., list all SSH keys) and fails to distinguish it from sibling tools like sshKey-one or sshKey-allForApps.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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. Sibling tools exist for specific operations (create, one, remove), but the description offers no context about when 'all' is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sshKey-allForAppsDRead-onlyIdempotent
GET /sshKey.allForApps
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and openWorldHint=true. The description adds no behavioral information beyond the endpoint string, and it does not contradict the annotations. However, it fails to disclose any additional traits such as scope or filtering 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 short, but it is not effective because it lacks substantive content. Every sentence should provide value; this one merely restates the tool name in endpoint form, which is not useful for an agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 no parameter details, the description is woefully incomplete. It does not explain what the tool returns, its scope, or how it differs from sibling tools like 'sshKey-all'. The agent cannot infer 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?
There are 0 parameters, so the baseline is 4 per guidelines. The schema coverage is 100% (trivially), and the description does not need to add parameter details. No improvement 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 is just the HTTP method and endpoint name ('GET /sshKey.allForApps'), which is a tautology. It does not state what the tool does or what resource it acts on. The purpose is entirely unclear without additional 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 guidance on when to use this tool versus its siblings like 'sshKey-all'. The description provides no context, conditions, or exclusions for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sshKey-createD
POST /sshKey.create
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| description | No | ||
| privateKey | Yes | ||
| publicKey | Yes | ||
| organizationId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses no behavioral traits beyond the annotation openWorldHint=true, which is vague. No mention of side effects, authentication, or required permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While the description is short, it is due to under-specification, not conciseness. It contains no useful information and fails to earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 5 parameters, no output schema, and minimal annotations, the description is completely inadequate. It provides no context for proper 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?
Input schema coverage is 0%, meaning the description adds no meaning to any of the 5 parameters (name, description, privateKey, publicKey, organizationId). The description simply restates the endpoint.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description is just 'POST /sshKey.create', which is a tautology of the name and provides no verb or resource meaning. It fails to state that the tool creates an SSH key.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 sshKey-generate or sshKey-update. The description gives no context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sshKey-generateDIdempotent
POST /sshKey.generate
| Name | Required | Description | Default |
|---|---|---|---|
| type | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations (idempotentHint: true, openWorldHint: true), the description adds no behavioral context. It doesn't disclose whether the tool creates a key, stores it, or returns it, nor any side effects or prerequisites.
Agents need to know what a tool does to the world before calling 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 this is due to under-specification rather than conciseness. It sacrifices all informative 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 tool with one parameter and no output schema, the description is completely inadequate. It does not explain the operation's purpose, return value, or when to invoke it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has a single optional parameter 'type' with enum values, but the description does not mention it at all. With 0% schema description coverage, the description fails to add 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 is 'POST /sshKey.generate', which is a tautology that merely repeats the tool name and HTTP method. It provides no indication of what the tool does, such as generating an SSH key pair or returning a public key.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 sshKey-create or sshKey-one. The description offers no context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sshKey-oneDRead-onlyIdempotent
GET /sshKey.one
| Name | Required | Description | Default |
|---|---|---|---|
| sshKeyId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true and idempotentHint=true, which indicate safe, non-mutating behavior. The description adds no additional behavioral context, but does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short, but this is under-specification rather than conciseness. It lacks essential information and every sentence does not earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has one required parameter and no output schema, the description should provide enough context for invocation. It fails to explain the return value or behavior, making 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?
Schema coverage is 0%, so the description must compensate by explaining the parameter's purpose. However, it does not mention the sshKeyId parameter at all, leaving the agent with only the schema's name and type.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'GET /sshKey.one' merely repeats the tool name without explaining what the tool does in plain terms. It does not specify the verb-resource relationship or distinguish it from sibling tools like sshKey-all, sshKey-create, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool vs alternatives. No context, no exclusions, no mention of prerequisites or when-not-to-use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sshKey-removeDDestructive
POST /sshKey.remove
| Name | Required | Description | Default |
|---|---|---|---|
| sshKeyId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations provide destructiveHint=true and openWorldHint=true, but the description adds no behavioral context beyond the HTTP method. It does not explain side effects or requirements (e.g., that the SSH key must 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 extremely short but at the expense of useful information. It is under-specified rather than concisely 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 the single required parameter and no output schema, the description fails to explain what the tool does, what happens after removal, or any important context. It is completely inadequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description carries the full burden of explaining the parameter 'sshKeyId'. It provides no details on its meaning, format, or source, leaving the agent with no guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'POST /sshKey.remove' provides a verb+resource but is essentially a tautology of the tool name. It does not clarify what 'remove' entails or distinguish it from siblings like sshKey-create or sshKey-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. There is no mention of prerequisites, when-not-to-use, or references to sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sshKey-updateDIdempotent
POST /sshKey.update
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| description | No | ||
| lastUsedAt | No | ||
| sshKeyId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide idempotentHint and openWorldHint, but the description adds no behavioral context beyond those. It does not explain update semantics, e.g., which fields are updated, whether partial updates are allowed, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is too short: a single line that merely restates the endpoint. It lacks substantive information, making it under-specified rather than concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, and the description does not explain what the tool returns. It also fails to describe prerequisites, error conditions, or the scope of the update operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description does not clarify the meaning of parameters like name, description, lastUsedAt, or sshKeyId. No parameter documentation is 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?
Description is 'POST /sshKey.update', which is a tautology of the tool name. It does not state what the tool does, e.g., updating an SSH key's name, description, or lastUsedAt.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 vs alternatives like sshKey-create or sshKey-remove. Sibling tools exist but the description provides no context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sso-addTrustedOriginDIdempotent
POST /sso.addTrustedOrigin
| Name | Required | Description | Default |
|---|---|---|---|
| origin | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (idempotentHint, openWorldHint) indicate safe retry and open input, but the description adds no behavioral details. For a mutation tool without further context, this is minimal – no statement about effects, validation, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short, but it is under-specified rather than concise. It lacks any substantive information, making it ineffective. Every sentence should add value; this one merely echoes 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?
Given the tool is a simple one-parameter operation with no output schema and minimal annotations, a short description could suffice, but this one does not even hint at the purpose (e.g., 'Add a trusted origin for SSO authentication'). It is completely inadequate.
Complex tools with many parameters or behaviors need more documentation. 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 'origin' is only defined in the schema as a string with minLength 1. The description adds no semantic meaning (e.g., URL format, wildcards, or purpose). With 0% schema description coverage, the description should compensate but fails to do so.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is 'POST /sso.addTrustedOrigin', which merely repeats the tool name with HTTP method. It does not explain what a trusted origin is or what the tool accomplishes, making it a tautology and failing to clarify purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool compared to siblings like sso-removeTrustedOrigin, sso-updateTrustedOrigin, or sso-getTrustedOrigins. There is no mention of context or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sso-deleteProviderDDestructive
POST /sso.deleteProvider
| Name | Required | Description | Default |
|---|---|---|---|
| providerId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds zero behavioral context beyond what annotations already provide. While destructiveHint:true signals deletion, the description does not elaborate on consequences (e.g., irreversible removal, cascading effects) and openWorldHint:true suggests unknown side effects that remain 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 extremely short but this is under-specification, not efficient conciseness. It fails to deliver any substantive information, making it inadequate for an AI agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 one required parameter and no output schema, the description is critically incomplete. It omits what happens on success/failure, return values, and dependencies, leaving the agent with insufficient information to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With schema description coverage at 0%, the description must explain the providerId parameter. It does not. The parameter's purpose, format, or expected values are entirely 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 only repeats the HTTP method and endpoint ('POST /sso.deleteProvider'), which adds no meaning beyond the tool name. It fails to specify that this tool deletes an SSO provider, making it 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?
No guidance is provided on when to use this tool versus sibling tools like sso-listProviders, sso-update, or sso-one. There is no mention of prerequisites, alternatives, or context for deletion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sso-getTrustedOriginsCRead-onlyIdempotent
GET /sso.getTrustedOrigins
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, but the description adds no extra behavioral context (e.g., side effects, response format). It does not contradict annotations but fails to add value beyond them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short (one line), which is concise, but it lacks substance and does not provide meaningful information. It is under-specified rather than efficiently written.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters and annotations are present, the description still fails to explain what trusted origins are or what the response contains. No output schema, so more context would 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?
Tool has 0 parameters, and schema description coverage is 100%. Description does not need to add parameter information; baseline score is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description is merely 'GET /sso.getTrustedOrigins', which does not clearly state the tool's purpose in natural language. The name suggests retrieving trusted origins for SSO, but the description lacks a clear verb+resource statement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 tools like sso-addTrustedOrigin and sso-removeTrustedOrigin exist, but no differentiation or context is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sso-listProvidersDRead-onlyIdempotent
GET /sso.listProviders
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool as read-only (readOnlyHint=true) and idempotent, so the description adds no additional behavioral context. However, the description does not contradict annotations, so a score of 2 is appropriate given the lack of added value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short but under-specified. Conciseness should be coupled with clarity; here it sacrifices content for brevity, resulting in an uninformative description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 no parameters and annotations providing some safety context, the description lacks any explanation of the tool's purpose, return values, or relationship to other SSO tools. It is not complete enough for an agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With zero parameters, the schema is fully covered. However, the description adds no meaning beyond the endpoint path. It does not explain what the tool returns or how it operates, which is a missed opportunity to clarify 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 /sso.listProviders' only states the HTTP method and endpoint path, which is a tautology and fails to explain what the tool actually does. It does not clarify that it lists SSO providers or any other meaningful purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like other SSO tools (e.g., sso-addTrustedOrigin, sso-deleteProvider). There is no mention of context, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sso-oneDRead-onlyIdempotent
GET /sso.one
| Name | Required | Description | Default |
|---|---|---|---|
| providerId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (readOnlyHint, idempotentHint, openWorldHint) already indicate safe read operation. Description adds no extra behavioral info but does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise but underspecified. A single line with no structure or explanation for an AI agent to understand the tool's use.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 existence of many sibling SSO tools and no output schema, the description is completely inadequate. It fails to explain purpose, parameter meaning, or return value.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description only contains 'GET /sso.one' without explaining the required 'providerId' parameter. No semantic value 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?
Description is 'GET /sso.one', which is a tautology of the name. It does not state the verb+resource or distinguish from sibling SSO tools like sso-listProviders or sso-getTrustedOrigins.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 vs alternatives such as sso-listProviders for listing all providers or sso-update for modifying. Lacks any context about its purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sso-registerDIdempotent
POST /sso.register
| Name | Required | Description | Default |
|---|---|---|---|
| providerId | Yes | ||
| issuer | Yes | ||
| domains | Yes | ||
| oidcConfig | No | ||
| samlConfig | No | ||
| organizationId | No | ||
| overrideUserInfo | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations include idempotentHint: true and openWorldHint: true, but the description adds no behavioral context beyond that. For a registration tool, no mention of side effects, authentication requirements, or prerequisites is provided.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short, but this is underspecification rather than conciseness. A single line repeating the endpoint name provides no useful structure or content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (7 params, nested objects, no output schema), the description is completely inadequate. It omits all usage context, return value information, and behavioral details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%. The description does not explain any of the 7 parameters (including nested objects like oidcConfig and samlConfig). The schema alone is complex and requires clarification.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'POST /sso.register', which merely repeats the tool name as a URL. It fails to state any verb or resource, making it tautological and uninformative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 other SSO-related tools (e.g., sso-addTrustedOrigin, sso-deleteProvider). The description offers no context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sso-removeTrustedOriginDDestructive
POST /sso.removeTrustedOrigin
| Name | Required | Description | Default |
|---|---|---|---|
| origin | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint: true and openWorldHint: true, signaling destruction and potential side effects. The description adds no additional behavioral details (e.g., reversibility, impact on SSO). It does not contradict annotations but provides no extra value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely short but not concise in a helpful way – it omits essential information. Every sentence should earn its place; here the single sentence is a redundant endpoint reference.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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, the description is still incomplete. It does not explain the relationship to sibling tools (add, update, get trusted origins) or the outcome of removal. No output schema exists to fill 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 single required parameter 'origin' has no schema description and the tool description provides no explanation of what values are expected (e.g., URL format or ID). With 0% schema description coverage, the description must compensate but fails entirely.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is a tautology: 'POST /sso.removeTrustedOrigin' merely restates the name and HTTP method without elaborating on what removing a trusted origin entails. The purpose is only clear from the name itself, not from the description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 sso-deleteProvider or sso-updateTrustedOrigin. The description provides no context about prerequisites, conditions, or scenarios where removal is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sso-showSignInWithSSODRead-onlyIdempotent
GET /sso.showSignInWithSSO
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral context beyond what the annotations already provide (readOnlyHint, idempotentHint, openWorldHint). It does not disclose what the tool returns, side effects, or any operational 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 extremely short but under-specified. It fails to include essential information such as the tool's purpose or return value. Every sentence should earn its place; this single line merely repeats the tool name and method, providing no new value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of output schema and the rich set of sibling SSO tools, the description is severely incomplete. It does not explain what the tool returns, thus an agent cannot determine if this tool fulfills its goal. For a tool with no parameters and simple safety profile, this is a critical 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?
There are zero parameters and the schema coverage is 100%, so the schema already fully describes the input. According to the rubric, 0 parameters earns a baseline of 4. The description does not need to add parameter information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is merely the HTTP endpoint 'GET /sso.showSignInWithSSO', which restates the tool name and method but does not explain what the tool actually does. It fails to convey whether it retrieves a sign-in UI, checks SSO status, or returns configuration. This is barely more informative than 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 use this tool versus its siblings like sso-listProviders or sso-one. The description provides no context about prerequisite conditions, intended scenarios, 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.
sso-updateDIdempotent
POST /sso.update
| Name | Required | Description | Default |
|---|---|---|---|
| providerId | Yes | ||
| issuer | Yes | ||
| domains | Yes | ||
| oidcConfig | No | ||
| samlConfig | No | ||
| organizationId | No | ||
| overrideUserInfo | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (idempotentHint: true, openWorldHint: true) provide some behavioral hints, but the description adds zero additional context. It does not explain side effects, required permissions, or any other behavioral traits beyond what the annotations already convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short (3 words), but conciseness is not the same as underspecification. Here, brevity sacrifices all informative content. A good description earns its place; this one does not.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (7 parameters, deep nesting, no output schema) and the availability of many sibling SSO tools, the description is grossly incomplete. It fails to provide any context that would help an agent correctly invoke this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description must compensate by explaining what each parameter does, but it offers nothing. The complex nested objects (oidcConfig, samlConfig) are left completely opaque.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'POST /sso.update', which merely restates the tool name in a different format (HTTP method). It does not specify what the tool does, what resource it modifies, or how it differs from sibling tools like sso-register or sso-deleteProvider.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 context, prerequisites, or consequences, leaving the agent without decision-making cues.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sso-updateTrustedOriginDIdempotent
POST /sso.updateTrustedOrigin
| Name | Required | Description | Default |
|---|---|---|---|
| oldOrigin | Yes | ||
| newOrigin | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral context beyond the annotations (idempotentHint, openWorldHint). It does not mention any side effects, permissions, rate limits, or other behavioral traits. The annotations already convey idempotency and open-world semantics, but the description fails to elaborate on what that means for the 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?
The description is extremely short (one line), but this is not concise in a helpful way—it's under-specified. Every sentence should earn its place, but here the only sentence adds no value. Better to have a few more sentences to clarify purpose and 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 the tool has two required parameters, no output schema, and no description beyond the endpoint, the description is entirely inadequate. It leaves the agent guessing about the tool's functionality, expected input, and side effects. Complete and rich annotations would compensate somewhat, but here the description adds no value.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% (no parameter descriptions in schema). The description does not explain the parameters oldOrigin and newOrigin—e.g., what formats they expect, their meaning (current origin URL, new origin URL), or constraints. The names are somewhat self-explanatory but incomplete without additional 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 is only 'POST /sso.updateTrustedOrigin', which is a tautology of the tool name and endpoint. It does not state what the tool does, e.g., updating a trusted origin for SSO. Without context, the purpose is unclear and fails to differentiate from siblings like sso-addTrustedOrigin or sso-removeTrustedOrigin.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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. Siblings include sso-addTrustedOrigin, sso-getTrustedOrigins, sso-removeTrustedOrigin, but the description offers no criteria for choosing this tool over those.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stripe-canCreateMoreServersCRead-onlyIdempotent
GET /stripe.canCreateMoreServers
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint, idempotentHint, and openWorldHint, but the description adds no behavioral context beyond the HTTP method. It does not disclose the return type (likely boolean) 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?
Extremely short but not truly concise—it fails to convey meaningful information. The single line is under-specified for an agent to understand the tool's utility.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero output schema and no parameter description, the description is completely inadequate. It does not explain what the tool returns (e.g., boolean, success/failure) or its role in the system.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters and 100% coverage. With no parameters to document, the description does not need to add param information; however, it could clarify that no parameters are required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'GET /stripe.canCreateMoreServers' is essentially a tautology restating the tool name. It vaguely implies a check for server creation capacity but does not explicitly state the tool's purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus sibling stripe tools like stripe-getCurrentPlan or stripe-getProducts. It does not specify if it should be called before creating a server or what its result indicates.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stripe-createCheckoutSessionD
POST /stripe.createCheckoutSession
| Name | Required | Description | Default |
|---|---|---|---|
| tier | Yes | ||
| productId | Yes | ||
| serverQuantity | Yes | ||
| isAnnual | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description provides no behavioral information beyond annotations. openWorldHint: true is set, but the description doesn't clarify side effects, idempotency, or required permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While extremely concise (one sentence), the description sacrifices all informative content. It is under-specified, not concise in a helpful sense.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 description of return values or behavior, the description fails to provide a complete understanding of the tool's functionality. A tool with 4 required parameters and no output schema needs far 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?
Schema description coverage is 0%, and the description does not mention any parameters. The meaning of 'tier', 'productId', 'serverQuantity', and 'isAnnual' is not elaborated, requiring the agent to infer from names alone.
Input schemas describe structure but not intent. Descriptions should explain 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 is a tautology: 'POST /stripe.createCheckoutSession' merely restates the tool name in HTTP request format, providing no explanation of what a checkout session is or what it does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. There are many sibling tools like stripe-getCurrentPlan, stripe-upgradeSubscription, etc., but no context on 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.
stripe-createCustomerPortalSessionD
POST /stripe.createCustomerPortalSession
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does not disclose any behavioral aspects such as side effects, authentication requirements, or rate limits. The annotation 'openWorldHint: true' does not alleviate the lack of 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 overly terse. Conciseness should serve clarity, but here it omits essential information, making it unhelpful despite its 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?
Without any description of output or behavior, and given the lack of an output schema, the tool description is completely inadequate for an agent to understand its functionality or return value.
Complex tools with many parameters or behaviors need more documentation. 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, schema coverage is 100%, but the description adds no value beyond the schema. It fails to clarify that no parameters are needed, leaving the agent guessing about the tool's 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 only repeats the tool name and HTTP method ('POST /stripe.createCustomerPortalSession'), providing no explanation of what the tool does. It is a tautology and does not convey the purpose of creating a Stripe customer portal session.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 stripe-createCheckoutSession. No context for appropriate usage is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stripe-getCurrentPlanCRead-onlyIdempotent
GET /stripe.getCurrentPlan
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the safety profile is covered. However, the description adds no behavioral context (e.g., what data is returned, whether authentication is needed, or side effects). It fails to add value beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is only two words, which is extremely concise but under-specified. It does not provide enough information to earn its place, as it repeats the tool name and HTTP method. Conciseness is not a virtue when it omits critical details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity (no parameters, no output schema), the description fails to explain what the 'current plan' entails, such as its structure or related entities. The agent cannot infer the return value or usage context, making the definition 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?
There are no parameters, and the schema coverage is 100%. The description could mention that no input is required, but it does not. Baseline for zero parameters is 4, but the description does not leverage this opportunity to reassure the agent, so 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 'GET /stripe.getCurrentPlan' clarifies the HTTP method and resource, but essentially restates the tool name. It does not elaborate on what the 'current plan' is or distinguish it from sibling tools like stripe-getProducts or stripe-getInvoices. The purpose is clear but not enhanced beyond 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?
No guidance is provided on when to use this tool versus alternatives such as stripe-createCheckoutSession or stripe-upgradeSubscription. There are no context hints about prerequisites or scenarios, leaving the agent without decision support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stripe-getInvoicesDRead-onlyIdempotent
GET /stripe.getInvoices
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint, idempotentHint, and openWorldHint, so the safety profile is clear. The description adds no additional behavioral context (e.g., authentication needs, data scope). It neither contradicts nor enriches the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While brief, the description is under-specified. It does not earn its place by providing any useful information beyond the tool name. True conciseness would include a brief verb-object phrase.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 no parameters, the description fails to clarify what invoices are returned (e.g., all, recent, by customer). The annotations provide some safety hints, but the description is incomplete 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?
There are zero parameters, so the input schema provides no meaning. The description does not need to add parameter details. Baseline 4 is appropriate given 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 is 'GET /stripe.getInvoices' which merely repeats the tool name and HTTP method. It does not specify what the tool does (e.g., list all invoices, filter, etc.), providing no actionable purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus other Stripe tools like stripe-getCurrentPlan or stripe-createCheckoutSession. The description lacks any context for decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stripe-getProductsDRead-onlyIdempotent
GET /stripe.getProducts
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint and idempotentHint, but the description adds no behavioral context such as return format, pagination, or scope of data. It only restates the endpoint, providing no added value beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While very short, the description is under-specified and does not convey the tool's purpose effectively. Conciseness should not compromise clarity; here it lacks 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 simple nature (no params, good annotations), the description is still incomplete. It should explicitly state that this tool retrieves all Stripe products. The current description fails to provide complete 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 has no parameters (100% coverage), so the description does not need to explain parameters. The baseline score of 3 is appropriate because the schema already handles it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'GET /stripe.getProducts' is a tautology that simply repeats the tool name and HTTP method without explaining what the tool does. It does not specify that it retrieves Stripe products or what kind of data is returned.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus sibling stripe tools like stripe-getCurrentPlan or stripe-getInvoices. The description does not mention any context or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stripe-upgradeSubscriptionDIdempotent
POST /stripe.upgradeSubscription
| Name | Required | Description | Default |
|---|---|---|---|
| tier | Yes | ||
| serverQuantity | Yes | ||
| isAnnual | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide idempotentHint and openWorldHint, but the description adds zero behavioral context beyond that. It does not mention what changes occur (e.g., billing, plan tier), side effects, or security considerations. The description carries no additional value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (one line), but it is under-specified to the point of being unhelpful. Conciseness should not come at the expense of clarity; here it fails to convey necessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, no behavioral description, and incomplete parameter semantics. For a mutation tool, the description should explain what the upgrade does (e.g., changes tier, quantity, billing cycle) and any limitations. It is completely inadequate for safe and correct agentic use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description provides no explanation of the parameters (tier, serverQuantity, isAnnual). The agent must infer meaning solely from names and schema constraints. The description adds no semantic value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is 'POST /stripe.upgradeSubscription', which is a tautology that merely repeats the tool name and HTTP method. It fails to specify what upgrading a subscription entails or how it differs from other Stripe tools like stripe-createCheckoutSession or stripe-getCurrentPlan.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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. The description provides no context about prerequisites, scenarios, or when not to use it. The only implicit hint is the word 'upgrade', but it's insufficient for an agent to make a decision.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
swarm-getContainerStatsDRead-onlyIdempotent
GET /swarm.getContainerStats
| Name | Required | Description | Default |
|---|---|---|---|
| serverId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (readOnlyHint, idempotentHint, openWorldHint) indicate safe read behavior, but the description adds no additional traits. It fails to mention any permissions, return format, or operational 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 extremely concise (one line) but is under-specified. It does not use the available space to provide meaningful information, so conciseness comes at the cost of utility.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 a sparse description, the tool fails to specify what statistics are returned, how they are structured, or any pagination/limits. The description is incomplete 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?
The input schema has one parameter (serverId) with 0% description coverage. The description provides no explanation of this parameter, leaving its purpose and format entirely 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 'GET /swarm.getContainerStats' is a tautology that merely restates the tool name. It does not specify what 'container stats' includes or distinguish it from sibling tools like 'docker-getContainers'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 context or alternatives are provided. The description gives no indication of when to use this tool over similar container-related siblings such as 'docker-getContainers' or 'swarm-getNodes'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
swarm-getNodeAppsDRead-onlyIdempotent
GET /swarm.getNodeApps
| Name | Required | Description | Default |
|---|---|---|---|
| serverId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, which indicate safe, idempotent, open-world behavior. However, the description adds no additional behavioral context beyond these annotations; it does not explain what 'open world' means in this context or any other behavioral 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 extremely short but severely under-specified; it fails to provide essential information. Conciseness should not come at the expense of clarity and completeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has one parameter, no output schema, and annotations are present, the description should explain what NodeApps are and how serverId is used. It is completely inadequate for an agent to understand and use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has a single parameter 'serverId' with no description, no enum, and schema description coverage is 0%. The description provides zero information about the parameter, leaving the agent unable to determine its meaning or required format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is merely the HTTP method and endpoint name ('GET /swarm.getNodeApps'), which tautologically restates the tool name without explaining what 'getNodeApps' does. It fails to distinguish this from sibling tools like 'swarm-getNodes' or 'swarm-getNodeInfo'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 indicate when or why this tool should be used over alternative sibling tools for retrieving swarm node information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
swarm-getNodeInfoDRead-onlyIdempotent
GET /swarm.getNodeInfo
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | ||
| serverId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint, idempotentHint, and openWorldHint, but the description adds no behavioral context beyond the HTTP method. It does not disclose what data is returned, authentication requirements, or other traits, leaving the agent uninformed about the tool's 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 but at the expense of clarity. A single line repeating the HTTP endpoint is not well-structured for an agent; it lacks a clear sentence or bullet points that convey purpose in a usable manner.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 a sparse description, the tool definition is severely incomplete. The agent cannot determine what information is returned, the structure of the response, or how to interpret the results, making it nearly impossible to use correctly without external knowledge.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has two parameters (nodeId required, serverId optional) with 0% schema description coverage, yet the description provides no explanation of these parameters. The agent cannot infer their meanings or usage from the description alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 merely the HTTP method and endpoint path 'GET /swarm.getNodeInfo', which restates the tool name without explaining what 'node info' entails. It does not use a verb like 'retrieve' or 'get' to clarify the action, and it fails to distinguish from sibling tools like 'swarm-getNodes'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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. Sibling tools such as 'swarm-getNodes' and 'swarm-getNodeApps' exist, but the description offers no differentiation or context about selecting this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
swarm-getNodesDRead-onlyIdempotent
GET /swarm.getNodes
| Name | Required | Description | Default |
|---|---|---|---|
| serverId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, so the description does not need to add safety info. However, it adds no behavioral context beyond that—no mention of scope, permissions, or side effects. Minimal value added.
Agents need to know what a tool does to the world before calling 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 (one phrase), but it is under-specification, not conciseness. It fails to provide 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 absence of output schema and minimal annotations, the description should compensate by explaining return values, possible filters, or relationship to other swarm tools. It does none of this, leaving the agent uninformed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%. The description does not explain the purpose of serverId (optional string). It adds no semantic meaning 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 'GET /swarm.getNodes' is a tautology of the tool name and title. It provides no verb or explanation of what the tool does, e.g., 'List nodes in the swarm.' Fails to distinguish from siblings like cluster-getNodes or swarm-getNodeInfo.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 vs alternatives. For instance, no mention of when to use this instead of cluster-getNodes, swarm-getNodeApps, or swarm-getNodeInfo.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tag-allDRead-onlyIdempotent
GET /tag.all
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations readOnlyHint and idempotentHint declare the tool is safe and idempotent, but the description adds no behavioral details beyond the HTTP method. It does not contradict annotations but fails to add value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (three words) but underspecified. Conciseness should not come at the expense of clarity; this is too brief to be 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?
Given no output schema and many sibling tools, the description should explain what the tool returns (e.g., list of tags) and how it differs from tag-one. It fails completely, making it inadequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters and schema coverage is 100% (empty schema). Baseline is 4, but the description adds no meaning beyond the schema, so a slight penalty for missing purpose 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 'GET /tag.all' is a tautology, merely restating the tool's name as an HTTP endpoint. It fails to specify the actual action or resource, such as listing all tags, leaving the purpose ambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like tag-one or tag-create. There is no mention of context, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tag-assignToProjectDIdempotent
POST /tag.assignToProject
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | ||
| tagId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral information beyond annotations. Annotations indicate idempotentHint=true and openWorldHint=true, but the description does not explain the operation's effect (e.g., whether it creates an association or updates existing ones) or any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely brief, but this is under-specification rather than conciseness. A useful description would include a short sentence explaining the action. The single line adds no 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?
Given there is no output schema and the input schema has zero descriptions, the description must compensate but fails entirely. Sibling tools exist (tag-create, tag-removeFromProject, etc.), yet the description provides no context to distinguish this tool's role.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description gives no explanation of what projectId and tagId represent. Without context, an agent cannot understand their purpose (e.g., projectId is the target project, tagId is the tag to assign).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'POST /tag.assignToProject' is a tautology, restating the tool name and HTTP method. It fails to specify what the tool does (e.g., assign tag to project) or differentiate it from sibling tools like tag-create, tag-removeFromProject, or tag-bulkAssign.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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. For example, it doesn't mention that it assigns a tag to a project, nor does it contrast with tag-removeFromProject or tag-bulkAssign.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tag-bulkAssignDIdempotent
POST /tag.bulkAssign
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | ||
| tagIds | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate idempotentHint and openWorldHint, but the description adds no behavioral context beyond these hints. It does not explain the idempotent nature or open-world semantics, leaving the agent without practical usage insights.
Agents need to know what a tool does to the 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 extremely short, the description is under-specified rather than concise. It fails to deliver essential information, making it unhelpful despite its 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?
Given no output schema and only two required parameters, the description is grossly incomplete. It lacks explanation of the tool's function, parameters, and return behavior, rendering it inadequate for correct selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, and the description does not clarify the meaning of 'projectId' or 'tagIds'. The agent cannot determine what constitutes valid 'tagIds' or how they relate to the assignment 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 only states the HTTP method and endpoint path. It does not explain what 'bulkAssign' means, leaving the agent to infer from the name. This is vague and barely distinguishes from siblings like 'tag-assignToProject' which is clearer.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 'tag-assignToProject' or 'tag-removeFromProject'. The name implies bulk assignment, but no context about prerequisites or exclusivity is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tag-createD
POST /tag.create
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| color | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations include openWorldHint=true, suggesting side effects, but the description does not disclose any behavioral traits such as whether the tool requires authentication, creates a resource, or has side effects. Minimal value beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short but lacks structure and substance. It is under-specified rather than concise; every sentence should earn its place, but here there is no substantive sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 2 parameters and no output schema, the description is completely inadequate. It does not explain what the tool returns, errors, or the creation process. The agent cannot invoke this tool correctly 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?
Schema description coverage is 0%, and the description adds no meaning for the two parameters (name, color). The agent gets no guidance on what 'color' values are acceptable or how 'name' is used.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'POST /tag.create' only provides the HTTP method and endpoint, which is a tautology of the tool name. It does not state the tool's purpose (e.g., create a new tag), leaving the agent to infer from the name and 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 use this tool vs alternatives like tag-update or tag-remove. The description does not specify prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tag-oneCRead-onlyIdempotent
GET /tag.one
| Name | Required | Description | Default |
|---|---|---|---|
| tagId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, indicating a safe read operation. The description adds no behavioral details beyond what annotations provide, but does not contradict them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short (4 words) but lacks essential information. It is under-specified, not genuinely concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and a single minimally-described parameter, the description provides almost no contextual completeness. It fails to explain what the tool returns or how to use it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has one parameter 'tagId' with no description (0% coverage). The description does not mention or explain the parameter, adding zero meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'GET /tag.one' only gives an HTTP method and path, not stating the actual action (e.g., 'Retrieve a single tag'). It is vague and does not distinguish from sibling tools like 'tag-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?
No guidance is provided on when to use this tool vs alternatives (e.g., 'tag-all', 'tag-create'). The agent receives no context 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.
tag-removeDDestructive
POST /tag.remove
| Name | Required | Description | Default |
|---|---|---|---|
| tagId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate destructiveHint: true, but the description adds no behavioral context beyond that. It does not explain what happens when a tag is removed (e.g., deletions from associated resources, irreversibility).
Agents need to know what a tool does to the world before calling 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 fails to convey the tool's purpose. It is under-specified rather than concise, offering no value beyond the endpoint.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has one required parameter, no output schema, and destructive behavior, the description should at minimum state that it removes a tag. It completely fails to provide necessary context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain the 'tagId' parameter. With a single required parameter and no additional info, the agent must infer its purpose from the name alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 merely the HTTP method and endpoint 'POST /tag.remove', which does not state what the tool does. It fails to use a verb+resource pattern and does not differentiate from sibling tools like tag-removeFromProject.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 tag-removeFromProject or tag-delete (if exists). The description lacks any context for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tag-removeFromProjectDDestructive
POST /tag.removeFromProject
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | ||
| tagId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral context beyond the annotations (destructiveHint, openWorldHint). It fails to explain what removing a tag from a project entails, such as whether the tag itself is deleted or only the association, or any other 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?
While extremely short, the description is not concise because it is underspecified. Every sentence should add value, but this single sentence is inadequate and does not earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's destructive nature and two required parameters, the description is far from complete. It lacks essential details about the operation's effect, prerequisites, and return values, leaving the agent with insufficient information to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage for the two parameters (projectId, tagId). The description does not elaborate on their meaning, format, or constraints beyond the schema's minLength and requirement.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is just 'POST /tag.removeFromProject' which merely repeats the API endpoint. It does not explicitly state the tool's functionality; the agent must infer from the tool name. This is a tautology, adding no value.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 tag-create, tag-remove, or tag-assignToProject. The description lacks any context for decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tag-updateDIdempotent
POST /tag.update
| Name | Required | Description | Default |
|---|---|---|---|
| tagId | Yes | ||
| name | No | ||
| color | No | ||
| createdAt | No | ||
| organizationId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral information beyond annotations. Annotations already signal idempotency and open-world interaction, but the description fails to clarify any additional traits such as permission requirements or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While brief, the description is under-specified. It consists of a single meaningless line that does not earn its place, causing confusion rather than aiding 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?
The tool has 5 parameters, no output schema, and no schema descriptions. The description is entirely insufficient, failing to cover basic functionality, parameter effects, or return 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?
With 0% schema coverage, the description must compensate but does not. It provides no explanation of the 5 parameters (e.g., tagId, name, color), leaving the agent without meaning 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 'POST /tag.update' is a tautology of the tool name 'tag-update'. It does not state the action or resource, providing no clarifying 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 usage guidance is given. The description does not indicate when to use this tool over siblings like tag-create or tag-remove, leaving the agent without context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
user-allCRead-onlyIdempotent
GET /user.all
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and openWorldHint=true, so the safety profile is clear. The description adds nothing beyond these, but does not contradict them. A score of 3 is appropriate as annotations carry the burden and the description doesn't provide additional 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 extremely concise (5 characters), but this is under-specification, not efficient communication. It does not earn its place; a tool description should provide actionable information, not just echo the endpoint.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description should explain what the tool returns (e.g., a list of users). It fails to do so. For a list tool with many siblings, the description leaves agents guessing about its purpose 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 no parameters (empty schema, 100% coverage). Baseline for high coverage is 3. The description 'GET /user.all' does not add any semantic meaning beyond what the schema already indicates (no parameters). No return information is provided, but the score remains at 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 'GET /user.all' is a tautology that merely restates the tool name as an HTTP endpoint. It does not specify a verb (beyond 'GET') or resource meaningfully, and fails to distinguish from siblings like 'user-get', 'user-one', etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. Although 'all' suggests listing all users, there is no explicit context or exclusion criteria to help an agent choose it over similar list tools like 'auditLog-all' or 'certificates-all'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
user-assignPermissionsDIdempotent
POST /user.assignPermissions
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| accessedProjects | Yes | ||
| accessedEnvironments | Yes | ||
| accessedServices | Yes | ||
| accessedGitProviders | Yes | ||
| accessedServers | Yes | ||
| canCreateProjects | Yes | ||
| canCreateServices | Yes | ||
| canDeleteProjects | Yes | ||
| canDeleteServices | Yes | ||
| canAccessToDocker | Yes | ||
| canAccessToTraefikFiles | Yes | ||
| canAccessToAPI | Yes | ||
| canAccessToSSHKeys | Yes | ||
| canAccessToGitProviders | Yes | ||
| canDeleteEnvironments | Yes | ||
| canCreateEnvironments | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate idempotentHint=true and openWorldHint=true, but the description adds no additional behavioral context. It does not explain the effects of assigning permissions, such as whether it overwrites or appends to existing permissions, or any side effects. The description fails to leverage the opportunity to clarify behavior beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short (one line), but it is under-specified rather than concise. It lacks essential information such as tool purpose and parameter guidance. The structure is minimal but not effective.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 17 required parameters, no output schema, and no parameter descriptions, the description is completely inadequate. It fails to provide enough information for an AI agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 17 parameters with 0% description coverage. The description provides no explanation of the parameters' meanings or how they relate to the assignment operation. For example, 'accessedProjects' is not clarified as a list of project IDs or permissions. The description adds no value over the raw property names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is merely 'POST /user.assignPermissions', which is the HTTP method and endpoint path. It does not state what the tool does, making it a tautology. The title in annotations ('User AssignPermissions') provides minimal context, but the description itself is missing a purpose statement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 user-getPermissions or other user management tools. There is no mention of prerequisites or context for use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
user-checkUserOrganizationsDRead-onlyIdempotent
GET /user.checkUserOrganizations
| Name | Required | Description | Default |
|---|---|---|---|
| userId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint, idempotentHint, and openWorldHint, but the description adds no behavioral context beyond the HTTP verb. It fails to disclose any additional traits such as return format or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely brief but not concise; it is underspecified. It lacks structure and front-loading of critical information, wasting the opportunity to guide the agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has one required parameter and no output schema, the description is incomplete. It does not explain the tool's purpose, what organizations are checked, or how the response looks, making it insufficient 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 single parameter 'userId' has no description in the schema, and the tool description provides no meaning or usage hints. With 0% schema description coverage, the description does not compensate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is merely the HTTP method and endpoint path ('GET /user.checkUserOrganizations'), which is a tautology of the tool name. It does not specify the verb or resource meaningfully, nor does it distinguish the tool from siblings like user-get or user-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?
No guidance is provided on when to use this tool versus alternatives. Sibling tools include user-all, user-get, user-one, and others, but the description offers no context for choosing this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
user-createApiKeyD
POST /user.createApiKey
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| prefix | No | ||
| expiresIn | No | ||
| metadata | Yes | ||
| rateLimitEnabled | No | ||
| rateLimitTimeWindow | No | ||
| rateLimitMax | No | ||
| remaining | No | ||
| refillAmount | No | ||
| refillInterval | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description provides no behavioral details beyond annotations. It does not mention side effects, authentication requirements, or that the tool creates a new 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?
While very short, it is under-specified rather than concise. The single line provides no actionable information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 10 parameters, nested objects, and no output schema, the description is severely incomplete. It fails to convey the tool's purpose, parameter behavior, or 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?
Schema has 10 parameters with 0% description coverage. The description adds no meaning to any parameter, leaving the agent to guess 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?
Description is just 'POST /user.createApiKey', which is a tautology of the endpoint and does not explain what the tool does. It fails to convey that it creates an API key for a user.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 any alternative. With many sibling tools, this omission is critical.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
user-createUserWithCredentialsD
POST /user.createUserWithCredentials
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | |||
| password | Yes | ||
| role | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No behavioral information beyond annotations (which only have openWorldHint). Description provides no disclosure about side effects, required permissions, or destructive nature. Agent cannot infer that this creates a user 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?
Description is extremely short (one phrase) but fails to convey essential information. Under-specification is not conciseness; it should be longer to be 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 user creation tool with 3 required parameters and no output schema, the description is completely inadequate. It lacks any context about return value, side effects, or typical usage 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 0% and description adds no meaning to parameters. The schema itself defines email, password, role, but the description does not clarify their purpose (e.g., that email is the unique identifier, password must be kept secret, role determines permissions).
Input schemas describe structure but not intent. Descriptions should explain 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 is just the HTTP endpoint 'POST /user.createUserWithCredentials', which restates the tool name without explaining what it does. No indication that it creates a user with email/password/role.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 user-createApiKey or user-sendInvitation. No context about prerequisites or use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
user-deleteApiKeyDDestructive
POST /user.deleteApiKey
| Name | Required | Description | Default |
|---|---|---|---|
| apiKeyId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral information beyond what the annotations already provide (destructiveHint=true). It does not explain side effects, irreversibility, or authentication requirements. Contradicts none, but adds zero value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short (one line), but this is underspecification rather than conciseness. It fails to convey purpose or parameters, making it unhelpful despite its 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?
Given the tool has a destructive hint, one required parameter, and no output schema, the description should explain the operation's effect and parameter meaning. It provides none of this, resulting in a completely incomplete tool 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?
With 0% schema description coverage and no parameter descriptions in the tool description, the agent receives no help understanding what apiKeyId refers to. The description does not mention the parameter at all.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is merely the HTTP method and endpoint ('POST /user.deleteApiKey'), which is a tautology of the tool name. It does not state what the tool does in a useful way, such as 'Deletes an API key for the user.'
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 user-createApiKey or user-generateToken. The description lacks any context for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
user-generateTokenDIdempotent
POST /user.generateToken
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description adds no behavioral context beyond annotations. It does not disclose what token is generated, side effects, or permissions needed. Annotations already provide idempotentHint=true and openWorldHint=true, but the description contributes nothing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely short but under-specified; it is not conciseness but rather omission of 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?
Lacks completeness: no explanation of return value, prerequisites, or side effects. Given no output schema, the description should compensate but fails entirely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so baseline is higher, but the description fails to clarify the tool's purpose. It does not add meaning beyond the schema, which is empty. For a 0-param tool, the description should at least state the action.
Input schemas describe structure but not intent. Descriptions should explain 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 is just 'POST /user.generateToken', which is a tautology. It does not state what the tool does beyond the HTTP method, leaving the agent unaware that it generates a user token.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 vs alternatives (e.g., user-createApiKey). The description provides no context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
user-getCRead-onlyIdempotent
GET /user.get
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral context beyond what is already in annotations (readOnlyHint, idempotentHint). It does not explain the scope of the data returned, authentication requirements, or any side effects. The annotations declare it safe, but the description should still add value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While extremely concise, the single-sentence description is under-specified and fails to convey essential information. Conciseness should not come at the cost of clarity; a few more sentences would improve it without adding 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 description is completely inadequate for a tool with no output schema and many siblings. It does not describe the return value, which user is retrieved, or the context of use. Important details like 'returns the current user's profile' are missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With zero parameters and 100% schema coverage, the description has little to add. However, it could clarify that no parameters are needed, which it does not explicitly state. Baseline for 0 parameters is 4, and the description meets that minimal standard.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 /user.get' is a tautology that merely restates the tool name in HTTP format. It does not specify what the tool does, e.g., retrieves the current authenticated user's information, nor does it differentiate from sibling tools like 'user-all' or 'user-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?
No guidance is provided on when to use this tool versus alternatives such as 'user-one' (for a specific user) or 'user-all' (list all users). There is no context on prerequisites 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.
user-getBackupsDRead-onlyIdempotent
GET /user.getBackups
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint=true and idempotentHint=true, establishing safety. The description adds no behavioral context beyond what annotations already convey, such as what data is returned, authentication needs, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely short (5 words) but under-specified. Conciseness without substance is not valuable; the structure lacks any explanatory content about the tool's purpose or behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of the system (many sibling tools for backups and users) and the lack of output schema, the description is completely inadequate. An agent cannot understand what this tool does or how to use it 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?
No parameters exist, so schema coverage is 100%. Baseline for 0 params is 4, but the description fails to clarify what the tool returns or requires, making it less helpful. Score reduced for lack of added meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description is just 'GET /user.getBackups', a tautology that repeats the tool name in URL form. It does not state that it retrieves backups for the current user or any specific resource, and fails to differentiate from sibling tools like backup-listBackupFiles or user-get.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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. With sibling tools for backups and user info, an agent cannot determine the appropriate context for invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
user-getBookmarkedTemplatesCRead-onlyIdempotent
GET /user.getBookmarkedTemplates
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint. The description adds no behavioral traits beyond the fact it's a GET request, which is already implied by the name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short (one line), which is concise but at the expense of completeness. It is not structured to convey 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?
No output schema and no description of return value. For a retrieval tool, the agent needs to know what is returned (e.g., list of bookmarked templates). OpenWorldHint suggests variable results, but no context is provided.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters in input schema, so schema coverage is 100%. The description doesn't need to add parameter info. 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?
Description is 'GET /user.getBookmarkedTemplates', which is essentially the name and HTTP method. It does not clearly state what the tool does beyond the name, making it 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?
No guidance on when to use this tool versus alternatives like user-toggleTemplateBookmark. The description provides no context for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
user-getContainerMetricsDRead-onlyIdempotent
GET /user.getContainerMetrics
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| token | Yes | ||
| appName | Yes | ||
| dataPoints | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint, idempotentHint, and openWorldHint, but the description merely repeats the endpoint and does not add behavioral context beyond what annotations already provide. No extra details about rate limits, prerequisites, or return 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 very concise (one line) but at the expense of clarity. It does not earn its place because it adds minimal value. Better to have a slightly longer description that explains the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is completely inadequate given the absence of an output schema and 0% parameter coverage. It does not explain what the tool returns, the meaning of metrics, or how to interpret results. A more complete description 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 has 4 required parameters with 0% description coverage. The description provides no explanation of parameters (url, token, appName, dataPoints), their purpose, or format. The description fails to compensate for the missing schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description only gives the HTTP method and endpoint ('GET /user.getContainerMetrics'), which implies retrieving container metrics but does not explain what the tool does. It fails to differentiate from sibling tools like docker-getContainers or user-getServerMetrics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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. The description provides no context about use cases 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.
user-getInvitationsDRead-onlyIdempotent
GET /user.getInvitations
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint as true. The description adds no behavioral context beyond what annotations provide, but does not contradict them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely brief but at the cost of clarity. Under-specification rather than concise communication. Lacks front-loaded purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and simple semantics, the description should clarify scope (e.g., 'invitations for the current user'). It is incomplete compared to sibling tools that have more descriptive names.
Complex tools with many parameters or behaviors need more documentation. 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, schema coverage is 100%, but the description fails to explain what the tool returns (e.g., list of pending invitations). Baseline 4 for no parameters is not met because the description adds no semantic value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'GET /user.getInvitations' is essentially a tautology, restating the name and endpoint. It does not specify what the tool does, e.g., 'Retrieve invitations for the current user'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 vs sibling tools like organization-allInvitations or user-sendInvitation. The agent cannot determine context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
user-getMetricsTokenCRead-onlyIdempotent
GET /user.getMetricsToken
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already indicate readOnlyHint=true, idempotentHint=true, so the description does not add value beyond stating it's a GET request. It does not explain what the token is used for, its lifespan, or any authentication requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (one short phrase), but it sacrifices informativeness for brevity. It is not front-loaded with useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the rich annotations and no parameters, the description is incomplete. It does not explain the return value or when to use this tool, leaving the agent guessing its purpose.
Complex tools with many parameters or behaviors need more documentation. 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 no parameters, the description should explain what the tool returns or its purpose, but it only repeats the endpoint. The input schema is empty, so the description carries full burden to add meaning, which it fails to do.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is just 'GET /user.getMetricsToken', which only states the HTTP method and endpoint without clarifying what a metrics token is or what the tool does. It does not distinguish from siblings like user-get, user-getContainerMetrics, or user-getServerMetrics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 sibling list includes many other metrics-related tools, but the description offers no differentiation or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
user-getPermissionsDRead-onlyIdempotent
GET /user.getPermissions
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations correctly indicate readOnlyHint, idempotentHint, and openWorldHint, but the description adds no additional behavioral context (e.g., what data is returned, whether authentication is needed). Given annotations are present, the description is minimally adequate but fails to provide useful details beyond them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short (22 characters) but lacks substance. It is under-specified rather than effectively concise; the single sentence does not earn its place as it only restates 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?
Despite zero parameters and annotations, the description fails to explain the tool's purpose or return value. An agent cannot infer what 'permissions' are being retrieved, making it incomplete for a functional 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?
Input schema has no parameters and 100% schema coverage. The description adds no meaning beyond the schema, which is already complete. Baseline 3 is appropriate as the description provides no extra 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?
Description is 'GET /user.getPermissions' which merely restates the tool name and HTTP method. It does not specify what permissions are retrieved, for whom, or what the response represents, making it 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?
No guidance on when to use this tool versus sibling tools like user-get or user-one. Without differentiation, an agent cannot decide which tool to invoke.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
user-getServerMetricsDRead-onlyIdempotent
GET /user.getServerMetrics
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, but the description adds zero behavioral context. It does not disclose what metrics are returned, the effect on the system (none), or any constraints. No value added beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short, but it is under-specified rather than concise. It fails to convey any useful information about the tool's purpose or behavior, wasting the opportunity to be helpful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a metrics retrieval tool with no output schema, the description should at minimum indicate what type of metrics (e.g., CPU, memory, uptime). It does not. Combined with zero parameters and no behavioral details, the description is grossly incomplete for the agent to understand its utility.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, and schema coverage is 100% (empty schema). The description does not add meaning beyond the schema, but the schema itself is complete for a parameterless tool. 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 tautology: 'GET /user.getServerMetrics' repeats the tool's name and HTTP method without specifying what the tool actually does (e.g., retrieve server metrics). It fails to add any semantic value beyond 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?
No guidance is provided on when to use this tool versus alternatives. There are sibling tools like 'server-getServerMetrics' and 'server-getServerTime', yet the description gives no context for differentiation. The agent receives no hints about scope or intended use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
user-getUserByTokenCRead-onlyIdempotent
GET /user.getUserByToken
| Name | Required | Description | Default |
|---|---|---|---|
| token | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and openWorld hints, so the safety profile is clear. The description adds no further behavioral context (e.g., whether authentication is required, what the token represents). Since it does not contradict annotations, a baseline of 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short (only the path) but lacks substance. It is not a proper description; it is essentially a tautology of the tool name. Conciseness should not come at the expense of meaningful content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple token-based user retrieval, the description should at least specify the purpose, expected input, and output. None of these are provided. The lack of output schema and param descriptions makes this incomplete for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description provides no information about the 'token' parameter beyond the schema's type and minLength. The description should compensate by explaining what the token is (e.g., a user or API token) but fails to do so.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'GET /user.getUserByToken' essentially repeats the tool name and provides no explicit verb or resource description. It implies a GET operation to retrieve user info by token, but this is only inferred. It does not clearly distinguish from siblings like 'user-get' or 'user-generateToken'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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. There is no mention of when to use this tool versus alternatives such as 'user-get' (which likely retrieves user by ID) or 'user-generateToken'. The agent receives no context on the appropriate scenario for this endpoint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
user-haveRootAccessDRead-onlyIdempotent
GET /user.haveRootAccess
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint, idempotentHint, and openWorldHint. The description adds no behavioral traits beyond these, so it provides no additional transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short but fails to be informative. It does not earn its place as it adds negligible value over 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?
No output schema exists, and the description does not explain what the tool returns (e.g., a boolean indicating root access). For a simple query tool, this is entirely inadequate.
Complex tools with many parameters or behaviors need more documentation. 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 no parameters and 100% schema coverage, the base score is 3. The description offers no further 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 'GET /user.haveRootAccess' essentially restates the tool's name and HTTP method, providing no independent explanation of what the tool does. It does not distinguish from siblings like 'user-get' or 'user-session'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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. There is no mention of context, prerequisites, or exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
user-oneCRead-onlyIdempotent
GET /user.one
| Name | Required | Description | Default |
|---|---|---|---|
| userId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, which cover the safety profile. The description adds no behavioral context beyond the HTTP method, but it does not contradict the annotations. With annotations present, the description's lack of added detail is acceptable at baseline.
Agents need to know what a tool does to the world before calling 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 ('GET /user.one'), which is concise but underspecified. It does not provide enough information to be useful; this is under-specification rather than effective conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and a single parameter, the description should at least indicate what the tool returns or how the userId is used. It offers none of this context, making it incomplete for an AI 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 input schema has one required string parameter 'userId' with no description. The description does not explain its purpose, format, or relation to the resource. Since schema coverage is 0%, the description fails to compensate, leaving the agent with no semantic guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'GET /user.one' is vague. It indicates an HTTP method and endpoint but does not explicitly state that the tool retrieves a single user by ID. The name 'user-one' suggests fetching one user, but the description adds no clarity beyond the name itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidance is provided. The description does not specify when to use this tool over siblings like 'user-all' or 'user-get', nor does it mention prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
user-removeCDestructive
POST /user.remove
| Name | Required | Description | Default |
|---|---|---|---|
| userId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already indicate destructiveHint: true and openWorldHint: true. The description adds no additional behavioral context, such as permanence of removal, cascade effects, or required permissions, which are important 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 extremely brief (single line), but it lacks informative content. It is under-specified rather than concise, failing to communicate the tool's purpose or usage 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?
Despite the tool being simple (one parameter, no output schema, annotations present), the description is insufficient. It does not clarify the action, return value, or any side effects, making it incomplete for an agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is one required parameter, 'userId' of type string. The description provides no explanation of what this parameter represents or how to obtain it. The schema has 0% description coverage, and the description does not compensate, leaving the agent to infer meaning solely from the parameter name.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is 'POST /user.remove', which merely states the HTTP method and endpoint. It does not explicitly state the action of removing a user, though the tool name and destructiveHint imply it. The purpose is unclear compared to sibling tools like user-update or user-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?
No guidance is provided on when to use this tool versus alternatives, such as other user management tools. The annotations include destructiveHint and openWorldHint, but the description lacks context on prerequisites or cases where removal should be avoided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
user-sendInvitationDIdempotent
POST /user.sendInvitation
| Name | Required | Description | Default |
|---|---|---|---|
| invitationId | Yes | ||
| notificationId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description gives no behavioral information. Annotations indicate idempotentHint=true and openWorldHint=true, but the description does not elaborate on side effects, authentication, or result details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (one line) but at the expense of completeness. It is front-loaded but lacks any substantive content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no parameter descriptions, the description fails to provide adequate context for a tool that requires two parameters. It does not clarify return values or side effects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, and the description does not explain what invitationId and notificationId represent. The agent has no semantic understanding of the parameters beyond their names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is merely the HTTP endpoint 'POST /user.sendInvitation', which restates the tool name without explaining what the tool does. It fails to convey the action or 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 siblings like organization-inviteMember or user-getInvitations. There is no context on prerequisites or scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
user-sessionCRead-onlyIdempotent
GET /user.session
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint, idempotentHint, and openWorldHint, which cover safety and idempotency. However, the description adds no additional behavioral context such as response structure or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise but at the expense of clarity. It is under-specified and does not earn its place as a standalone description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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, so the description must clarify what is returned. It does not, leaving the agent unsure of the tool's value or 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?
No parameters exist, so schema coverage is 100%. The description does not need to explain parameters, and it does not add any confusion.
Input schemas describe structure but not intent. Descriptions should explain 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 is 'GET /user.session', which indicates an HTTP method and endpoint but does not explain what the tool does. It is slightly better than a tautology but still vague and fails to convey the purpose clearly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 'user-get' or 'user-one'. The description provides no context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
user-toggleTemplateBookmarkDIdempotent
POST /user.toggleTemplateBookmark
| Name | Required | Description | Default |
|---|---|---|---|
| templateId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral information beyond what annotations (idempotentHint, openWorldHint) already provide. It does not disclose side effects, mutability, or whether it adds or removes a bookmark.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short but at the expense of being under-specified. It consists of a single line that adds no value, so it is not efficiently 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 the tool's single parameter, no output schema, and the presence of sibling tools, the description is completely inadequate. It does not clarify the toggle behavior or how this tool relates to bookmarks.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, and the tool description provides no explanation of the 'templateId' parameter. The schema only states it's a required string with minLength 1, but the meaning is entirely unclear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 merely 'POST /user.toggleTemplateBookmark', which is a tautology that restates the tool name without explaining what toggling a template bookmark means. It fails to specify the action (toggle) and the resource (template bookmark) in a meaningful 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?
No guidance on when to use this tool vs. alternatives like user-getBookmarkedTemplates. The description offers no context about prerequisites, typical scenarios, 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.
user-updateDIdempotent
POST /user.update
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | ||
| firstName | No | ||
| lastName | No | ||
| isRegistered | No | ||
| expirationDate | No | ||
| createdAt2 | No | ||
| createdAt | No | ||
| twoFactorEnabled | No | ||
| No | |||
| emailVerified | No | ||
| image | No | ||
| banned | No | ||
| banReason | No | ||
| banExpires | No | ||
| updatedAt | No | ||
| enablePaidFeatures | No | ||
| allowImpersonation | No | ||
| enableEnterpriseFeatures | No | ||
| licenseKey | No | ||
| stripeCustomerId | No | ||
| stripeSubscriptionId | No | ||
| serversQuantity | No | ||
| password | No | ||
| currentPassword | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral information beyond the annotations. Annotations indicate idempotency and open-world hints, but the description does not elaborate on side effects or 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 concise but under-specified. It consists of a single phrase that does not earn its place as it adds no 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 24 parameters, no output schema, and no description, the description is completely inadequate. It fails to provide any context for 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?
With 24 parameters and 0% schema description coverage, the description provides no information about any parameter. The agent must infer meaning solely from parameter names and types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'POST /user.update' is a tautology, merely restating the tool name and HTTP method. It provides no explanation of what updating a user entails, offering no value beyond 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?
No guidance on when to use this tool versus alternatives like user-all, user-one, or user-remove. There is no differentiation or context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
volumeBackups-createD
POST /volumeBackups.create
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| volumeName | Yes | ||
| prefix | Yes | ||
| serviceType | No | ||
| appName | No | ||
| serviceName | No | ||
| turnOff | No | ||
| cronExpression | Yes | ||
| keepLatestCount | No | ||
| enabled | No | ||
| applicationId | No | ||
| postgresId | No | ||
| mariadbId | No | ||
| mongoId | No | ||
| mysqlId | No | ||
| redisId | No | ||
| libsqlId | No | ||
| composeId | No | ||
| createdAt | No | ||
| destinationId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations include openWorldHint: true, but the description does not expand on behavioral traits. It does not state whether the tool is destructive, what resources are changed, or any side effects. For a creation 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 line, which is under-specified rather than concise. It could be far more informative without becoming verbose. The structure is minimal but not effective.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 20 parameters, no output schema, and no parameter descriptions, the description is completely inadequate. It fails to explain the tool's action, required inputs, or 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?
Schema description coverage is 0%, so the description should compensate. It does not mention any parameter, despite the schema having 20 properties (5 required). The meaning of 'name', 'volumeName', 'prefix', etc., is left entirely to the agent.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'POST /volumeBackups.create' only states the HTTP method and endpoint, not a functional purpose. It fails to specify that the tool creates a volume backup or what a volume backup is. It does not distinguish from siblings like volumeBackups-update or volumeBackups-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?
No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, conditions, or typical use cases. Sibling tools exist but are not referenced.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
volumeBackups-deleteDDestructive
POST /volumeBackups.delete
| Name | Required | Description | Default |
|---|---|---|---|
| volumeBackupId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral context beyond the annotations. While annotations indicate destructiveHint: true, the description does not explicitly state that the tool deletes a resource or any consequences, such as irreversibility.
Agents need to know what a tool does to the world before calling 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 at the cost of completeness. It lacks any useful information, making it under-specified rather than concise. A minimally adequate description would include the action and parameter 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 absence of an output schema, low schema coverage, and only annotations providing hints, the description is severely lacking. It does not cover what the tool does, when to use it, or any behavioral details, making it completely inadequate.
Complex tools with many parameters or behaviors need more documentation. 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 one parameter (volumeBackupId) with 0% schema description coverage, and the description does not mention or explain this parameter. The parameter's purpose remains entirely unclear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description only states 'POST /volumeBackups.delete', which is a tautology that simply reiterates the tool name and HTTP method. It fails to describe what the tool does, such as deleting a volume backup, leaving no clarity on its purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidelines are provided. The description does not explain when to use this tool versus siblings like volumeBackups-create or volumeBackups-update, nor does it mention prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
volumeBackups-listDRead-onlyIdempotent
GET /volumeBackups.list
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| volumeBackupType | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate read-only, idempotent, open-world, but the description adds no behavioral context (e.g., pagination, sorting, filtering). It merely restates the HTTP method.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (one phrase) but at the expense of usefulness. It fails to provide necessary clarity, making it under-specified rather than efficiently concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With two required parameters, no output schema, and no description of return values or behavior, the description is incomplete. The agent cannot properly invoke this tool without guessing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the description says nothing about parameters. Both required parameters (id, volumeBackupType) are undocumented, leaving the agent guessing their meaning and allowable values beyond the enum.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 merely 'GET /volumeBackups.list', which is a tautology of the tool name. It fails to convey any purpose, such as listing volume backups for a given 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 regarding when to use this tool versus siblings like volumeBackups-one, volumeBackups-create, etc. There is no context on selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
volumeBackups-oneDRead-onlyIdempotent
GET /volumeBackups.one
| Name | Required | Description | Default |
|---|---|---|---|
| volumeBackupId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint. The description adds no behavioral context beyond these annotations. It does not contradict annotations but fails to add value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short, but it is not concise; it is a bare repetition of the name. It lacks front-loaded useful information and wastes the opportunity to explain the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's single parameter and lack of output schema, the description fails to explain what the tool does (retrieve a specific volume backup), what the response contains, or any preconditions. The description is severely 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 has 0% description coverage for the single required parameter 'volumeBackupId'. The tool description provides no additional meaning or clarification about this 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 'GET /volumeBackups.one' is a tautology that merely restates the tool's name and HTTP method. It provides no specific verb or resource meaning beyond what is already implied by 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?
No guidance is provided on when to use this tool versus sibling tools like volumeBackups-list, volumeBackups-create, etc. There is no context on prerequisites or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
volumeBackups-runManuallyDIdempotent
POST /volumeBackups.runManually
| Name | Required | Description | Default |
|---|---|---|---|
| volumeBackupId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate idempotentHint=true and openWorldHint=true, but the description adds no behavioral context. It does not mention side effects, triggers, or outcomes of running a manual backup. With annotations present, the bar is lower, but the description still fails to add value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely short, but it is under-specification rather than conciseness. Essential details are missing, making the description unhelpful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 explanation of return values, and a single sentence that adds no value, the tool is inadequately documented for an agent to use 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 0% and the description does not explain the 'volumeBackupId' parameter. The schema only provides type and constraints; the description adds no 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 is 'POST /volumeBackups.runManually', which is just the HTTP method and endpoint path. It does not state what the tool does in plain language; the verb 'runManually' is implicit but not explained. This is a tautology of the tool name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus siblings like volumeBackups-create or volumeBackups-list. The description provides no context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
volumeBackups-updateDIdempotent
POST /volumeBackups.update
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| volumeName | Yes | ||
| prefix | Yes | ||
| serviceType | No | ||
| appName | No | ||
| serviceName | No | ||
| turnOff | No | ||
| cronExpression | Yes | ||
| keepLatestCount | No | ||
| enabled | No | ||
| applicationId | No | ||
| postgresId | No | ||
| mariadbId | No | ||
| mongoId | No | ||
| mysqlId | No | ||
| redisId | No | ||
| libsqlId | No | ||
| composeId | No | ||
| createdAt | No | ||
| destinationId | Yes | ||
| volumeBackupId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide idempotentHint: true and openWorldHint: true, but the description adds no behavioral context beyond the endpoint. It does not explain the side effects of updating a volume backup (e.g., does it overwrite settings? trigger a backup? require the backup to exist?). With annotations present, the bar is lower, but the description still fails to add value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While technically concise (one word plus the HTTP method), the description is severely under-specified. It does not front-load any useful information and wastes the opportunity to clarify functionality. Conciseness without substance is a deficit.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 (21 parameters, 6 required, no output schema), the description is wholly incomplete. It provides no context on return values, error conditions, prerequisites (e.g., the volume backup must exist), or which fields are updatable. Sibling tools and the schema hint at update semantics, but the description does not bridge the gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning no parameter descriptions exist in the schema. The tool description does not compensate by explaining the meaning or role of key parameters like volumeBackupId, destinationId, cronExpression, or the many nullable IDs. The agent has no way to interpret the purpose 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 'POST /volumeBackups.update' merely restates the tool name and HTTP method, providing no explicit statement of what the tool does (e.g., update an existing volume backup's configuration). It is a tautology and does not distinguish the tool from its siblings like create or 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 offers no guidance on when to use this tool versus alternatives such as volumeBackups-create, volumeBackups-delete, or volumeBackups-update. There is no mention of prerequisites, intended scenarios, 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.
whitelabeling-getCRead-onlyIdempotent
GET /whitelabeling.get
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint=true. The description adds no behavioral details beyond the endpoint path, providing no new value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short but under-specified. It sacrifices meaningful content for brevity, failing to be helpful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 minimal description, the tool's behavior and return value are completely opaque. Contextual information is insufficient for an agent to understand its 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?
No parameters exist, so schema coverage is 100% trivially. Baseline 4 applies as there is nothing for the description to add.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description is just the HTTP method and endpoint path ('GET /whitelabeling.get'). It does not state what the tool returns or what 'whitelabeling' refers to, making the purpose unclear. Barely above 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?
No usage guidance is provided. The description offers no context on when to use this tool versus siblings like whitelabeling-getPublic or whitelabeling-update.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
whitelabeling-getPublicCRead-onlyIdempotent
GET /whitelabeling.getPublic
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and openWorldHint=true, covering the safety profile. However, the description adds no behavioral context beyond the endpoint path. It does not disclose what data is returned, whether authentication is required, or any other 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 extremely brief but at the cost of being uninformative. It is essentially a repetition of the tool name and HTTP method, failing to add value. Conciseness should not come at the expense of 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?
Despite having no parameters and annotations providing safety cues, the description lacks fundamental information about what the tool returns or its purpose. It does not explain what 'public whitelabeling' means, leaving the agent without a clear understanding of the tool's functionality.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, and schema coverage is 100% (trivially). The description does not need to elaborate on parameters. The baseline for zero parameters is 4, and the description meets that minimum.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 /whitelabeling.getPublic" is a tautology that merely restates the tool name and HTTP method. It does not explain what the tool does, what resource it returns, or how it differs from sibling tools like whitelabeling-get or whitelabeling-reset.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 guidelines are provided. The description does not indicate when to use this tool, what prerequisites exist, or how it relates to alternatives. The annotations imply safety (readOnly, idempotent, open world), but the description itself offers no guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
whitelabeling-resetCIdempotent
POST /whitelabeling.reset
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide idempotentHint and openWorldHint, but the description adds no behavioral context. It fails to describe what state changes occur, what side effects might happen, or any prerequisites (e.g., admin privileges). The description carries the burden here and doesn't deliver.
Agents need to know what a tool does to the world before calling 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 but at the expense of clarity. It is too short to be useful; a single line repeating the endpoint does not earn its place as a description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 (no params, no output schema), the description could easily state what is reset (e.g., 'Resets all whitelabeling settings to defaults'). The current description leaves the purpose ambiguous, making it incomplete for an agent to understand the tool's effect.
Complex tools with many parameters or behaviors need more documentation. 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 covers 100% of input (none). With no parameters, the description does not need to add parameter semantics; a baseline score of 4 is appropriate. It could confirm 'no input required,' but absence doesn't detract.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'POST /whitelabeling.reset' is a tautology that merely restates the tool name in HTTP format. It provides no semantic content about what the tool does – whether it resets branding, domain settings, or something else.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 sibling tools like whitelabeling-get, whitelabeling-update, or whitelabeling-getPublic. There is no context for selecting this tool over alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
whitelabeling-updateDIdempotent
POST /whitelabeling.update
| Name | Required | Description | Default |
|---|---|---|---|
| whitelabelingConfig | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide idempotentHint=true, indicating idempotency, but the description adds no behavioral details beyond the endpoint. It does not disclose side effects, authorization needs, or what happens to existing configuration. The description fails to add value over the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise but under-informative. It consists of a single phrase that adds no value, making it too short to be helpful. It should include a brief explanation of 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?
Given the tool's complexity (nested configuration object, no output schema, sibling tools), the description is completely inadequate. It lacks any context about the tool's role, outcomes, or relationships, making it impossible for an agent to use correctly without external knowledge.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description must compensate by explaining parameters, but it provides none. The input schema is an object with many self-explanatory fields (appName, logoUrl, etc.), but the description does not even summarize them, leaving the agent to infer from field names alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 merely 'POST /whitelabeling.update', which is a tautology of the tool name and does not state the tool's purpose. It fails to specify that the tool updates whitelabeling configuration, leaving the agent without clear understanding.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives like whitelabeling-get or whitelabeling-reset. The description provides no context about prerequisites, limitations, or criteria for use.
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. Dates show when Glama detected each change.
523 tool updates
v0.29.1- First observed
admin-setupMonitoring - First observed
ai-analyzeLogs - First observed
ai-create - First observed
ai-delete - First observed
ai-deploy - First observed
ai-get - First observed
ai-getAll - First observed
ai-getEnabledProviders - First observed
ai-getModels - First observed
ai-one - First observed
ai-suggest - First observed
ai-testConnection - First observed
ai-update - First observed
application-cancelDeployment - First observed
application-cleanQueues - First observed
application-clearDeployments - First observed
application-create - First observed
application-delete - First observed
application-deploy - First observed
application-disconnectGitProvider - First observed
application-dropDeployment - First observed
application-killBuild - First observed
application-markRunning - First observed
application-move - First observed
application-one - First observed
application-readAppMonitoring - First observed
application-readLogs - First observed
application-readTraefikConfig - First observed
application-redeploy - First observed
application-refreshToken - First observed
application-reload - First observed
application-saveBitbucketProvider - First observed
application-saveBuildType - First observed
application-saveDockerProvider - First observed
application-saveEnvironment - First observed
application-saveGiteaProvider - First observed
application-saveGithubProvider - First observed
application-saveGitlabProvider - First observed
application-saveGitProvider - First observed
application-search - First observed
application-start - First observed
application-stop - First observed
application-update - First observed
application-updateTraefikConfig - First observed
auditLog-all - First observed
backup-create - First observed
backup-listBackupFiles - First observed
backup-manualBackupCompose - First observed
backup-manualBackupLibsql - First observed
backup-manualBackupMariadb - First observed
backup-manualBackupMongo - First observed
backup-manualBackupMySql - First observed
backup-manualBackupPostgres - First observed
backup-manualBackupWebServer - First observed
backup-one - First observed
backup-remove - First observed
backup-update - First observed
bitbucket-bitbucketProviders - First observed
bitbucket-create - First observed
bitbucket-getBitbucketBranches - First observed
bitbucket-getBitbucketRepositories - First observed
bitbucket-one - First observed
bitbucket-testConnection - First observed
bitbucket-update - First observed
certificates-all - First observed
certificates-create - First observed
certificates-one - First observed
certificates-remove - First observed
certificates-update - First observed
cluster-addManager - First observed
cluster-addWorker - First observed
cluster-getNodes - First observed
cluster-removeWorker - First observed
compose-cancelDeployment - First observed
compose-cleanQueues - First observed
compose-clearDeployments - First observed
compose-create - First observed
compose-delete - First observed
compose-deploy - First observed
compose-deployTemplate - First observed
compose-disconnectGitProvider - First observed
compose-fetchSourceType - First observed
compose-getConvertedCompose - First observed
compose-getDefaultCommand - First observed
compose-getTags - First observed
compose-import - First observed
compose-isolatedDeployment - First observed
compose-killBuild - First observed
compose-loadMountsByService - First observed
compose-loadServices - First observed
compose-move - First observed
compose-one - First observed
compose-processTemplate - First observed
compose-randomizeCompose - First observed
compose-readLogs - First observed
compose-redeploy - First observed
compose-refreshToken - First observed
compose-saveEnvironment - First observed
compose-search - First observed
compose-start - First observed
compose-stop - First observed
compose-templates - First observed
compose-update - First observed
customRole-all - First observed
customRole-create - First observed
customRole-getStatements - First observed
customRole-membersByRole - First observed
customRole-remove - First observed
customRole-update - First observed
deployment-all - First observed
deployment-allByCompose - First observed
deployment-allByServer - First observed
deployment-allByType - First observed
deployment-allCentralized - First observed
deployment-killProcess - First observed
deployment-queueList - First observed
deployment-removeDeployment - First observed
destination-all - First observed
destination-create - First observed
destination-one - First observed
destination-remove - First observed
destination-testConnection - First observed
destination-update - First observed
docker-getConfig - First observed
docker-getContainers - First observed
docker-getContainersByAppLabel - First observed
docker-getContainersByAppNameMatch - First observed
docker-getServiceContainersByAppName - First observed
docker-getStackContainersByAppName - First observed
docker-removeContainer - First observed
docker-restartContainer - First observed
docker-uploadFileToContainer - First observed
domain-byApplicationId - First observed
domain-byComposeId - First observed
domain-canGenerateTraefikMeDomains - First observed
domain-create - First observed
domain-delete - First observed
domain-generateDomain - First observed
domain-one - First observed
domain-update - First observed
domain-validateDomain - First observed
environment-byProjectId - First observed
environment-create - First observed
environment-duplicate - First observed
environment-one - First observed
environment-remove - First observed
environment-search - First observed
environment-update - First observed
gitea-create - First observed
gitea-getGiteaBranches - First observed
gitea-getGiteaRepositories - First observed
gitea-getGiteaUrl - First observed
gitea-giteaProviders - First observed
gitea-one - First observed
gitea-testConnection - First observed
gitea-update - First observed
github-getGithubBranches - First observed
github-getGithubRepositories - First observed
github-githubProviders - First observed
github-one - First observed
github-testConnection - First observed
github-update - First observed
gitlab-create - First observed
gitlab-getGitlabBranches - First observed
gitlab-getGitlabRepositories - First observed
gitlab-gitlabProviders - First observed
gitlab-one - First observed
gitlab-testConnection - First observed
gitlab-update - First observed
gitProvider-allForPermissions - First observed
gitProvider-getAll - First observed
gitProvider-remove - First observed
gitProvider-toggleShare - First observed
libsql-changeStatus - First observed
libsql-create - First observed
libsql-deploy - First observed
libsql-move - First observed
libsql-one - First observed
libsql-readLogs - First observed
libsql-rebuild - First observed
libsql-reload - First observed
libsql-remove - First observed
libsql-saveEnvironment - First observed
libsql-saveExternalPorts - First observed
libsql-start - First observed
libsql-stop - First observed
libsql-update - First observed
licenseKey-activate - First observed
licenseKey-deactivate - First observed
licenseKey-getEnterpriseSettings - First observed
licenseKey-haveValidLicenseKey - First observed
licenseKey-updateEnterpriseSettings - First observed
licenseKey-validate - First observed
mariadb-changePassword - First observed
mariadb-changeStatus - First observed
mariadb-create - First observed
mariadb-deploy - First observed
mariadb-move - First observed
mariadb-one - First observed
mariadb-readLogs - First observed
mariadb-rebuild - First observed
mariadb-reload - First observed
mariadb-remove - First observed
mariadb-saveEnvironment - First observed
mariadb-saveExternalPort - First observed
mariadb-search - First observed
mariadb-start - First observed
mariadb-stop - First observed
mariadb-update - First observed
mongo-changePassword - First observed
mongo-changeStatus - First observed
mongo-create - First observed
mongo-deploy - First observed
mongo-move - First observed
mongo-one - First observed
mongo-readLogs - First observed
mongo-rebuild - First observed
mongo-reload - First observed
mongo-remove - First observed
mongo-saveEnvironment - First observed
mongo-saveExternalPort - First observed
mongo-search - First observed
mongo-start - First observed
mongo-stop - First observed
mongo-update - First observed
mounts-allNamedByApplicationId - First observed
mounts-create - First observed
mounts-listByServiceId - First observed
mounts-one - First observed
mounts-remove - First observed
mounts-update - First observed
mysql-changePassword - First observed
mysql-changeStatus - First observed
mysql-create - First observed
mysql-deploy - First observed
mysql-move - First observed
mysql-one - First observed
mysql-readLogs - First observed
mysql-rebuild - First observed
mysql-reload - First observed
mysql-remove - First observed
mysql-saveEnvironment - First observed
mysql-saveExternalPort - First observed
mysql-search - First observed
mysql-start - First observed
mysql-stop - First observed
mysql-update - First observed
notification-all - First observed
notification-createCustom - First observed
notification-createDiscord - First observed
notification-createEmail - First observed
notification-createGotify - First observed
notification-createLark - First observed
notification-createMattermost - First observed
notification-createNtfy - First observed
notification-createPushover - First observed
notification-createResend - First observed
notification-createSlack - First observed
notification-createTeams - First observed
notification-createTelegram - First observed
notification-getEmailProviders - First observed
notification-one - First observed
notification-receiveNotification - First observed
notification-remove - First observed
notification-testCustomConnection - First observed
notification-testDiscordConnection - First observed
notification-testEmailConnection - First observed
notification-testGotifyConnection - First observed
notification-testLarkConnection - First observed
notification-testMattermostConnection - First observed
notification-testNtfyConnection - First observed
notification-testPushoverConnection - First observed
notification-testResendConnection - First observed
notification-testSlackConnection - First observed
notification-testTeamsConnection - First observed
notification-testTelegramConnection - First observed
notification-updateCustom - First observed
notification-updateDiscord - First observed
notification-updateEmail - First observed
notification-updateGotify - First observed
notification-updateLark - First observed
notification-updateMattermost - First observed
notification-updateNtfy - First observed
notification-updatePushover - First observed
notification-updateResend - First observed
notification-updateSlack - First observed
notification-updateTeams - First observed
notification-updateTelegram - First observed
organization-active - First observed
organization-all - First observed
organization-allInvitations - First observed
organization-create - First observed
organization-delete - First observed
organization-inviteMember - First observed
organization-one - First observed
organization-removeInvitation - First observed
organization-setDefault - First observed
organization-update - First observed
organization-updateMemberRole - First observed
patch-byEntityId - First observed
patch-cleanPatchRepos - First observed
patch-create - First observed
patch-delete - First observed
patch-ensureRepo - First observed
patch-markFileForDeletion - First observed
patch-one - First observed
patch-readRepoDirectories - First observed
patch-readRepoFile - First observed
patch-saveFileAsPatch - First observed
patch-toggleEnabled - First observed
patch-update - First observed
port-create - First observed
port-delete - First observed
port-one - First observed
port-update - First observed
postgres-changePassword - First observed
postgres-changeStatus - First observed
postgres-create - First observed
postgres-deploy - First observed
postgres-move - First observed
postgres-one - First observed
postgres-readLogs - First observed
postgres-rebuild - First observed
postgres-reload - First observed
postgres-remove - First observed
postgres-saveEnvironment - First observed
postgres-saveExternalPort - First observed
postgres-search - First observed
postgres-start - First observed
postgres-stop - First observed
postgres-update - First observed
previewDeployment-all - First observed
previewDeployment-delete - First observed
previewDeployment-one - First observed
previewDeployment-redeploy - First observed
project-all - First observed
project-allForPermissions - First observed
project-create - First observed
project-duplicate - First observed
project-one - First observed
project-remove - First observed
project-search - First observed
project-update - First observed
projectEnvironment-get - First observed
projectEnvironment-save - First observed
redirects-create - First observed
redirects-delete - First observed
redirects-one - First observed
redirects-update - First observed
redis-changePassword - First observed
redis-changeStatus - First observed
redis-create - First observed
redis-deploy - First observed
redis-move - First observed
redis-one - First observed
redis-readLogs - First observed
redis-rebuild - First observed
redis-reload - First observed
redis-remove - First observed
redis-saveEnvironment - First observed
redis-saveExternalPort - First observed
redis-search - First observed
redis-start - First observed
redis-stop - First observed
redis-update - First observed
registry-all - First observed
registry-create - First observed
registry-one - First observed
registry-remove - First observed
registry-testRegistry - First observed
registry-testRegistryById - First observed
registry-update - First observed
rollback-delete - First observed
rollback-rollback - First observed
schedule-create - First observed
schedule-delete - First observed
schedule-list - First observed
schedule-one - First observed
schedule-runManually - First observed
schedule-update - First observed
security-create - First observed
security-delete - First observed
security-one - First observed
security-update - First observed
server-all - First observed
server-allForPermissions - First observed
server-buildServers - First observed
server-count - First observed
server-create - First observed
server-getDefaultCommand - First observed
server-getServerMetrics - First observed
server-getServerTime - First observed
server-one - First observed
server-publicIp - First observed
server-remove - First observed
server-security - First observed
server-setup - First observed
server-setupMonitoring - First observed
server-update - First observed
server-validate - First observed
server-withSSHKey - First observed
serviceEnvironment-get - First observed
serviceEnvironment-save - First observed
settings-assignDomainServer - First observed
settings-checkGPUStatus - First observed
settings-checkInfrastructureHealth - First observed
settings-cleanAll - First observed
settings-cleanAllDeploymentQueue - First observed
settings-cleanDockerBuilder - First observed
settings-cleanDockerPrune - First observed
settings-cleanMonitoring - First observed
settings-cleanRedis - First observed
settings-cleanSSHPrivateKey - First observed
settings-cleanStoppedContainers - First observed
settings-cleanUnusedImages - First observed
settings-cleanUnusedVolumes - First observed
settings-getDockerDiskUsage - First observed
settings-getDokployCloudIps - First observed
settings-getDokployVersion - First observed
settings-getIp - First observed
settings-getLogCleanupStatus - First observed
settings-getOpenApiDocument - First observed
settings-getReleaseTag - First observed
settings-getTraefikPorts - First observed
settings-getUpdateData - First observed
settings-getWebServerSettings - First observed
settings-haveActivateRequests - First observed
settings-haveTraefikDashboardPortEnabled - First observed
settings-health - First observed
settings-isCloud - First observed
settings-isUserSubscribed - First observed
settings-readDirectories - First observed
settings-readMiddlewareTraefikConfig - First observed
settings-readTraefikConfig - First observed
settings-readTraefikEnv - First observed
settings-readTraefikFile - First observed
settings-readWebServerTraefikConfig - First observed
settings-reloadRedis - First observed
settings-reloadServer - First observed
settings-reloadTraefik - First observed
settings-saveSSHPrivateKey - First observed
settings-setupGPU - First observed
settings-toggleDashboard - First observed
settings-toggleRequests - First observed
settings-updateDockerCleanup - First observed
settings-updateLogCleanup - First observed
settings-updateMiddlewareTraefikConfig - First observed
settings-updateServer - First observed
settings-updateServerIp - First observed
settings-updateTraefikConfig - First observed
settings-updateTraefikFile - First observed
settings-updateTraefikPorts - First observed
settings-updateWebServerTraefikConfig - First observed
settings-writeTraefikEnv - First observed
sshKey-all - First observed
sshKey-allForApps - First observed
sshKey-create - First observed
sshKey-generate - First observed
sshKey-one - First observed
sshKey-remove - First observed
sshKey-update - First observed
sso-addTrustedOrigin - First observed
sso-deleteProvider - First observed
sso-getTrustedOrigins - First observed
sso-listProviders - First observed
sso-one - First observed
sso-register - First observed
sso-removeTrustedOrigin - First observed
sso-showSignInWithSSO - First observed
sso-update - First observed
sso-updateTrustedOrigin - First observed
stripe-canCreateMoreServers - First observed
stripe-createCheckoutSession - First observed
stripe-createCustomerPortalSession - First observed
stripe-getCurrentPlan - First observed
stripe-getInvoices - First observed
stripe-getProducts - First observed
stripe-upgradeSubscription - First observed
swarm-getContainerStats - First observed
swarm-getNodeApps - First observed
swarm-getNodeInfo - First observed
swarm-getNodes - First observed
tag-all - First observed
tag-assignToProject - First observed
tag-bulkAssign - First observed
tag-create - First observed
tag-one - First observed
tag-remove - First observed
tag-removeFromProject - First observed
tag-update - First observed
user-all - First observed
user-assignPermissions - First observed
user-checkUserOrganizations - First observed
user-createApiKey - First observed
user-createUserWithCredentials - First observed
user-deleteApiKey - First observed
user-generateToken - First observed
user-get - First observed
user-getBackups - First observed
user-getBookmarkedTemplates - First observed
user-getContainerMetrics - First observed
user-getInvitations - First observed
user-getMetricsToken - First observed
user-getPermissions - First observed
user-getServerMetrics - First observed
user-getUserByToken - First observed
user-haveRootAccess - First observed
user-one - First observed
user-remove - First observed
user-sendInvitation - First observed
user-session - First observed
user-toggleTemplateBookmark - First observed
user-update - First observed
volumeBackups-create - First observed
volumeBackups-delete - First observed
volumeBackups-list - First observed
volumeBackups-one - First observed
volumeBackups-runManually - First observed
volumeBackups-update - First observed
whitelabeling-get - First observed
whitelabeling-getPublic - First observed
whitelabeling-reset - First observed
whitelabeling-update
TDQS
Tools are grouped by resource prefixes (e.g., application-, postgres-, compose-, etc.), making it clear which resource each tool operates on. Within each group, actions are distinct and descriptive (create, delete, update, etc.), so an agent can generally tell them apart. However, some near-duplicates (e.g., ai-get vs ai-one) create minor ambiguity.
All tool names follow the consistent pattern of resource-action (e.g., postgres-create, notification-testSlackConnection). There are no significant deviations in style or structure, ensuring predictable naming throughout.
With 523 tools, the server is far too large for any typical MCP use case. Even if the domain requires many operations, this number creates a bloated and overwhelming surface that hinders agent efficiency and selection.
The tool set covers a broad range of operations for managing servers, databases, deployments, notifications, and more. However, the sheer volume suggests redundancy (e.g., multiple GET methods for the same entity) and potential gaps in curation, making it hard to assess true completeness.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
The OpenRouter for tools. One MCP connection gives any AI agent 254 hosted tools, pay per call.
471Build, validate, deploy — HTTP APIs, cron jobs, webhooks and MCP tools — from your AI client.
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
327 dev tools via REST API and MCP. Generate Dockerfiles, schemas, K8s, APIs, and more.
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceExposes Dokploy functionalities as tools consumable via the Model Context Protocol, allowing AI models and other applications to programmatically manage projects and applications on a Dokploy server.10618MIT
- AlicenseNot gradedqualityFmaintenanceEnables AI models to interact programmatically with Dokploy servers to manage projects, applications, and deployment services. It provides 67 specialized tools for direct Dokploy API operations through the Model Context Protocol.106Apache 2.0
- AlicenseNot gradedqualityDmaintenanceComprehensive, type-safe MCP server providing 380 tools to manage Dokploy deployments, applications, and infrastructure via natural language.295MIT
- FlicenseNot gradedqualityCmaintenanceWraps the Dokploy REST API to expose Dokploy operations as MCP tools for managing projects, applications, compose stacks, deployments, domains, and environment variables.151-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/bravos2k5/mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server