Skip to main content
Glama
wagonbomb

InsightAppSec MCP Server

by wagonbomb

InsightAppSec MCP Server

A Model Context Protocol (MCP) server that provides AI assistants with access to the Rapid7 InsightAppSec API for application security scanning, vulnerability management, and reporting.

Overview

This MCP server enables AI assistants like Claude to interact with Rapid7 InsightAppSec, allowing you to:

  • Manage applications and their security configurations

  • Launch and monitor security scans

  • Query and triage vulnerabilities

  • Generate security reports

  • Automate scan scheduling

  • Search across all InsightAppSec resources

  • Configure authentication (OAuth, form-based, macros, traffic files)

  • Manage token replacement (CSRF, session tokens, dynamic parameters)

Related MCP server: Intigriti MCP Server

Prerequisites

Installation

From Source

# Clone the repository
git clone https://github.com/yourusername/insightappsec-mcp.git
cd insightappsec-mcp

# Install dependencies
npm install

# Build the project
npm run build

Configuration

Create a .env file based on the provided template:

cp .env.example .env

Edit the .env file with your credentials:

INSIGHTAPPSEC_API_KEY=your-api-key-here
INSIGHTAPPSEC_REGION=us

Supported Regions:

Region

Code

United States

us

Europe

eu

Asia-Pacific

ap

Canada

ca

Australia

au

Usage with Claude Desktop

Add the following to your Claude Desktop configuration file:

Windows: %APPDATA%\Claude\claude_desktop_config.json macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "insightappsec": {
      "command": "node",
      "args": ["C:/path/to/insightappsec-mcp/build/index.js"],
      "env": {
        "INSIGHTAPPSEC_API_KEY": "your-api-key-here",
        "INSIGHTAPPSEC_REGION": "us"
      }
    }
  }
}

Restart Claude Desktop to load the MCP server.

Available Tools

Application Management

Tool

Description

list_apps

List all applications with pagination and sorting

get_app

Get detailed information about a specific application

create_app

Create a new application

update_app

Update application name or description

delete_app

Delete an application and all associated data

manage_app_tags

Add or remove tags from an application

Scan Operations

Tool

Description

list_scans

List scans with pagination and filtering

get_scan

Get detailed information about a specific scan

submit_scan

Submit a new scan based on a scan configuration

delete_scan

Delete a failed scan

control_scan

Pause, resume, stop, or cancel a running scan

get_scan_execution_details

Get real-time execution metrics for a scan

get_scan_engine_events

Get engine event logs for a scan

Scan Configuration

Tool

Description

list_scan_configs

List all scan configurations

get_scan_config

Get details of a specific scan configuration

create_scan_config

Create a new scan configuration

update_scan_config

Update scan configuration settings

delete_scan_config

Delete a scan configuration

Vulnerability Management

Tool

Description

list_vulnerabilities

List vulnerabilities with pagination and sorting

get_vulnerability

Get detailed information about a vulnerability

update_vulnerability

Update vulnerability status or severity

get_vulnerability_discoveries

Get discovery history for a vulnerability

list_vulnerability_comments

List all comments on a vulnerability

add_vulnerability_comment

Add a comment to a vulnerability

Scheduling & Automation

Tool

Description

list_schedules

List all scan schedules

get_schedule

Get details of a specific schedule

create_schedule

Create a recurring scan schedule

update_schedule

Update schedule frequency or timing

delete_schedule

Delete a scan schedule

Blackout Windows

Tool

Description

list_blackouts

List all blackout windows

get_blackout

Get details of a specific blackout window

create_blackout

Create a blackout window to prevent scans

update_blackout

Update blackout window settings

delete_blackout

Delete a blackout window

Reporting

Tool

Description

list_reports

List all generated reports

generate_report

Generate a new vulnerability report

get_report_status

Check the status of a report generation

Tool

Description

search

Universal search across all InsightAppSec resources using DSL query syntax

Infrastructure

Tool

Description

list_engines

List all registered scan engines

get_engine

Get details of a specific scan engine

list_engine_groups

List all engine groups

get_engine_group

Get details of a specific engine group

File Management

Tool

Description

list_files

List all files for an application (macros, traffic, selenium, etc.)

get_file

Get file metadata by ID

create_file

Create file metadata entry

upload_file_content

Upload binary file content (base64-encoded)

delete_file

Delete a file

download_file

Download file content as base64

Supported File Types:

  • MACRO - Recorded authentication sequences (.rec)

  • RECORDED_TRAFFIC - HTTP traffic captures (.har, .trec, .saz)

  • SELENIUM - Browser automation scripts (.html, .side)

  • CERTIFICATE - SSL certificates (.pfx)

  • SWAGGER - API specifications (.json, .yaml)

  • WSDL - Web service definitions (.wsdl)

  • GRAPHQL - GraphQL schemas (.graphqls)

Authentication & Token Management

Tool

Description

get_scan_config_options

Get full scan config options including auth settings

configure_form_auth

Configure form-based authentication (username/password)

configure_oauth

Configure OAuth 2.0 authentication

configure_token_replacement

Configure global token extraction/injection rules

configure_session_handling

Configure session detection, cookies, relogin triggers

configure_csrf_handling

Configure automatic CSRF token detection and injection

configure_macro_auth

Link a macro file to scan config for authentication

configure_traffic_auth

Link a traffic file to scan config for authentication

Example Conversations

List Applications

"Show me all my applications in InsightAppSec"

The assistant will use list_apps to retrieve and display your applications.

Start a Security Scan

"Start a scan using the 'Production Web App' scan configuration"

The assistant will:

  1. Use list_scan_configs to find the configuration

  2. Use submit_scan to start the scan

  3. Report the scan ID and status

Check Vulnerability Status

"Show me all high severity vulnerabilities"

The assistant will use search with a DSL query:

type: VULNERABILITY
query: vulnerability.severity='HIGH'

Monitor a Running Scan

"What's the status of scan abc-123?"

The assistant will use get_scan and get_scan_execution_details to show:

  • Current scan status

  • Progress percentage

  • Requests completed

  • Vulnerabilities found so far

Triage Vulnerabilities

"Mark vulnerability xyz-789 as a false positive and add a comment explaining why"

The assistant will:

  1. Use update_vulnerability to set status to FALSE_POSITIVE

  2. Use add_vulnerability_comment to add the explanation

Schedule Recurring Scans

"Set up a weekly scan for the production app every Monday at 2 AM"

The assistant will use create_schedule with:

  • Frequency: WEEKLY

  • Start time: Next Monday at 2:00 AM UTC

Configure OAuth Authentication

"Set up OAuth client credentials authentication for the API scan"

The assistant will use configure_oauth with:

  • Grant type: CLIENT_CREDENTIALS

  • Token URL, client ID, client secret

Set Up Token Replacement for CSRF

"Configure the scan to automatically handle CSRF tokens"

The assistant will use configure_csrf_handling with:

  • auto_detect: true

  • Optional regex patterns for token names

Upload Authentication Macro

"Upload my recorded login macro for the scan"

The assistant will:

  1. Use create_file to create metadata (type: MACRO)

  2. Use upload_file_content with base64-encoded macro content

  3. Use configure_macro_auth to link it to the scan config

Search Query Syntax

The search tool supports a powerful DSL for querying resources:

Operators

Operator

Description

Example

=

Equals

vulnerability.severity='HIGH'

!=

Not equals

scan.status!='COMPLETE'

>, <, >=, <=

Comparison

vulnerability.cvss>7.0

CONTAINS

Substring match

app.name CONTAINS 'prod'

IN

Value in list

vulnerability.status IN ['UNREVIEWED', 'VERIFIED']

AND, OR

Logical operators

severity='HIGH' AND status='UNREVIEWED'

Searchable Resource Types

  • VULNERABILITY

  • SCAN

  • SCAN_CONFIG

  • APP

  • SCHEDULE

  • BLACKOUT

  • MODULE

  • ATTACK_TEMPLATE

  • ENGINE

  • ENGINE_GROUP

Example Queries

# Find critical vulnerabilities in production apps
type: VULNERABILITY
query: vulnerability.severity='HIGH' AND app.name CONTAINS 'prod'

# Find running scans
type: SCAN
query: scan.status='RUNNING'

# Find scan configs without recent scans
type: SCAN_CONFIG
query: scan_config.last_scan_date < '2024-01-01'

Authentication Configuration

The MCP server supports comprehensive authentication configuration for scanning authenticated applications.

OAuth 2.0 Authentication

Configure OAuth for API-based authentication:

configure_oauth:
  scan_config_id: "uuid"
  grant_type: "CLIENT_CREDENTIALS"
  token_url: "https://auth.example.com/oauth/token"
  client_id: "your-client-id"
  client_secret: "your-client-secret"
  scope: "read write"

Supported grant types:

  • CLIENT_CREDENTIALS - Server-to-server authentication

  • AUTHORIZATION_CODE - User-delegated access

  • RESOURCE_OWNER_PASSWORD - Direct username/password

  • IMPLICIT - Browser-based apps

Form-Based Authentication

Configure traditional login form authentication:

configure_form_auth:
  scan_config_id: "uuid"
  username_field: "email"
  password_field: "password"
  username: "test@example.com"
  password: "testpassword"
  logged_in_regex: "Welcome|Dashboard"
  logout_link_regex: "logout|sign.out"

Token Replacement

Extract tokens from responses and inject them into subsequent requests:

configure_token_replacement:
  scan_config_id: "uuid"
  extraction_location: "RESPONSE_BODY"
  extraction_pattern: "csrf_token\":\"([^\"]+)\""
  injection_location: "REQUEST_HEADER"
  injection_parameter: "X-CSRF-Token"

Supported locations:

  • REQUEST_URL, REQUEST_HEADER, REQUEST_BODY, REQUEST_COOKIE

  • RESPONSE_HEADER, RESPONSE_BODY

CSRF Token Handling

Enable automatic CSRF token detection and injection:

configure_csrf_handling:
  scan_config_id: "uuid"
  auto_detect: true
  token_name_regex: "csrf|_token|authenticity"

Session Management

Configure session detection and automatic re-authentication:

configure_session_handling:
  scan_config_id: "uuid"
  session_cookie_regex: "JSESSIONID|PHPSESSID"
  session_loss_regex: "session expired|please login"
  relogin_on_session_loss: true
  lock_cookies: true

Macro-Based Authentication

Use recorded macros for complex authentication flows:

  1. Upload the macro file:

create_file:
  app_id: "uuid"
  name: "login-macro.rec"
  type: "MACRO"

upload_file_content:
  app_id: "uuid"
  file_id: "uuid"
  content_base64: "<base64-encoded-macro>"
  1. Configure the scan to use it:

configure_macro_auth:
  scan_config_id: "uuid"
  macro_file_id: "uuid"
  replay_speed: 1.0

Vulnerability Statuses

Status

Description

UNREVIEWED

New vulnerability, not yet triaged

FALSE_POSITIVE

Determined to be a false positive

VERIFIED

Confirmed as a real vulnerability

IGNORED

Acknowledged but accepted risk

REMEDIATED

Fixed in the application

DUPLICATE

Duplicate of another finding

Severity Levels

Severity

Description

SAFE

No security impact

INFORMATIONAL

Information disclosure

LOW

Minor security concern

MEDIUM

Moderate security risk

HIGH

Serious security vulnerability

Development

Project Structure

insightappsec-mcp/
├── src/
│   ├── index.ts              # Entry point
│   ├── config.ts             # Configuration management
│   ├── client/
│   │   └── api-client.ts     # HTTP client for InsightAppSec API
│   ├── schemas/
│   │   └── common.ts         # Shared Zod schemas
│   ├── tools/
│   │   ├── apps.ts           # Application management tools
│   │   ├── scans.ts          # Scan operation tools
│   │   ├── scan-configs.ts   # Scan configuration tools
│   │   ├── vulnerabilities.ts # Vulnerability management tools
│   │   ├── schedules.ts      # Schedule management tools
│   │   ├── blackouts.ts      # Blackout window tools
│   │   ├── engines.ts        # Engine management tools
│   │   ├── reports.ts        # Reporting tools
│   │   ├── search.ts         # Search tool
│   │   ├── files.ts          # File management tools
│   │   └── auth.ts           # Authentication configuration tools
│   └── utils/
│       └── response-formatter.ts  # MCP response formatting
├── build/                    # Compiled JavaScript output
├── package.json
├── tsconfig.json
└── .env.example

Scripts

# Build the project
npm run build

# Run in development mode
npm run dev

# Type checking
npm run typecheck

# Run tests
npm test

Adding New Tools

  1. Create or modify a tool file in src/tools/

  2. Use the server.tool() method to register the tool:

server.tool(
  "tool_name",
  "Tool description",
  {
    param1: z.string().describe("Parameter description"),
    param2: z.number().optional().describe("Optional parameter"),
  },
  async ({ param1, param2 }) => {
    const result = await client.get<unknown>("/endpoint");

    if (result.error) {
      return formatErrorResponse(result.error);
    }

    return formatResponse(result.data);
  }
);
  1. Import and register in src/index.ts

Error Handling

The server handles common API errors gracefully:

Status Code

Meaning

400

Bad request - check parameters

401

Authentication failed - check API key

403

Access forbidden - insufficient permissions

404

Resource not found

409

Resource conflict

422

Validation error - check request body

429

Rate limited - wait and retry

5xx

Server error - retry later

Error responses include:

  • Status code

  • Error message

  • Correlation ID (for Rapid7 support)

  • Detailed error information when available

API Reference

This MCP server wraps the Rapid7 InsightAppSec API v1.

For detailed API documentation, see:

License

MIT

Contributing

Contributions are welcome! Please feel free to submit issues and pull requests.

Support

  • For InsightAppSec API issues, contact Rapid7 Support

  • For MCP server issues, open a GitHub issue

Available Tools

56 tools
add_vulnerability_commentC

Add a comment to a vulnerability

ParametersJSON Schema
NameRequiredDescriptionDefault
contentYesThe comment text to add
vulnerability_idYesThe unique identifier of the vulnerability

TDQS

C2.6/5.0
Behavior1/5

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

No annotations are present, and the description fails to disclose any behavioral traits. It doesn't mention whether the comment is appended to existing comments, if permissions are required, or what the response/return value looks like. The description is purely declarative with no 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.

Conciseness3/5

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

The description is concise and front-loaded, but it is minimal and provides no additional explanatory value. It is not overly verbose, but it lacks any structure or extra context that would make it more than a basic statement.

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

Completeness2/5

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

Given the tool's simplicity, the description is still incomplete. It doesn't mention return values, relationship to list_vulnerability_comments, or any potential side effects. The agent would need to infer these from the schema or other tools.

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

Parameters3/5

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

The input schema fully describes both parameters (vulnerability_id and content) with types and descriptions. The description adds no extra meaning beyond the schema, but since schema coverage is 100%, the baseline of 3 is appropriate.

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

Purpose4/5

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

The description clearly states the action (add) and the resource (comment to a vulnerability). It distinguishes from siblings like update_vulnerability and list_vulnerability_comments by the explicit 'add' operation. However, it doesn't elaborate on what constitutes a comment or any nuances.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. There is no mention of related tools like list_vulnerability_comments or any prerequisites for adding a comment. The description only states the action without context.

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

configure_csrf_handlingC

Configure automatic CSRF token detection and injection

ParametersJSON Schema
NameRequiredDescriptionDefault
auto_detectYesEnable automatic CSRF token detection
scan_config_idYesThe unique identifier of the scan configuration
token_name_regexNoRegex pattern for CSRF token field names (e.g., 'csrf|_token|authenticity_token')
token_value_regexNoRegex pattern for CSRF token values (e.g., '[a-f0-9]{32,}')

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits, but it only states the action generically. It does not mention side effects, prerequisites, whether it modifies existing scan configurations, or how the regex parameters interact with detection. This is insufficient for a mutation-like configuration tool.

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

Conciseness4/5

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

The description is a single, brief sentence with no wasted words, and the tool name is front-loaded in the description. However, it may be too terse to be genuinely helpful, lacking any contextual expansion.

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

Completeness2/5

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

The tool has four parameters and no output schema or annotations, so the description should explain the purpose in more depth. It only describes the high-level goal without connecting to the scan config context or explaining how the configuration is applied. This is insufficient for safe and correct invocation.

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

Parameters3/5

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

The input schema has descriptions for all four parameters, achieving 100% coverage, so the baseline is 3. The description adds no parameter-specific information, so it neither enhances nor detracts from the schema.

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

Purpose4/5

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

The description states a specific action ('Configure') and a specific resource ('automatic CSRF token detection and injection'), making it clear what the tool addresses. However, it does not explicitly distinguish this from sibling configuration tools like configure_form_auth or configure_oauth, though the CSRF focus is evident 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.

Usage Guidelines2/5

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

No guidance is provided about when to use this tool instead of alternatives such as configure_token_replacement or configure_session_handling. The description only states the function, leaving the agent to infer usage context from the name and schema.

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

configure_form_authB

Configure form-based authentication (username/password login) for a scan configuration

ParametersJSON Schema
NameRequiredDescriptionDefault
passwordYesTest password to use for authentication
usernameYesTest username to use for authentication
password_fieldYesForm field name for password (e.g., 'password', 'pass')
scan_config_idYesThe unique identifier of the scan configuration
username_fieldYesForm field name for username (e.g., 'username', 'email')
logged_in_regexNoRegex pattern to detect successful login (e.g., 'Welcome|Dashboard')
login_link_regexNoRegex pattern to find login page links
logout_link_regexNoRegex pattern to detect logout links to avoid

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It only says 'Configure' without mentioning side effects, permission requirements, reversibility, validation behavior, or what happens to existing settings. This is inadequate for a mutation tool.

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

Conciseness5/5

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

The description is a single sentence, front-loaded with the core action and resource. There is zero wasted wording, making it highly concise. It does not repeat schema information.

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

Completeness2/5

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

Given the tool has 8 parameters, 5 required, no output schema, and no annotations, the one-sentence description is insufficient. It fails to explain the configuration process, expected effects, prerequisites, or any behavioral caveats. The schema covers parameters but not the operational context.

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

Parameters3/5

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

Schema description coverage is 100%, so parameters are already well-documented. The description adds no extra meaning beyond labeling the auth type as 'form-based', which the schema's username/password fields already imply. Baseline 3 is appropriate because the description does not enhance parameter understanding.

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

Purpose5/5

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

The description clearly states the tool configures form-based authentication (username/password login) for a scan configuration. This distinguishes it from sibling tools like configure_oauth and configure_macro_auth by naming the specific authentication type.

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

Usage Guidelines2/5

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

The description gives no explicit guidance on when to use this tool versus alternatives such as configure_oauth or configure_token_replacement. The context of 'form-based authentication' implies usage but does not provide exclusions or decision criteria, especially given the many sibling authentication tools.

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

configure_macro_authC

Configure macro-based authentication using a previously uploaded macro file

ParametersJSON Schema
NameRequiredDescriptionDefault
replay_speedNoPlayback speed multiplier (1 = normal speed)
macro_file_idYesThe unique identifier of the macro file (upload first using create_file + upload_file_content)
extra_delay_msNoAdditional delay after macro completion (milliseconds)
scan_config_idYesThe unique identifier of the scan configuration

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full responsibility for disclosing behavioral traits. It only says 'configure macro-based authentication' without explaining what changes occur (e.g., associating the macro with a scan config), whether the operation is reversible, or any side effects. The lack of detail about the configuration process or return behavior is a significant gap for a mutation tool.

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

Conciseness4/5

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

The description is a single, concise sentence that starts with the action verb 'Configure' and introduces the key concept. It avoids unnecessary words and is well-structured, though it could include a bit more contextual detail without becoming overly verbose.

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

Completeness2/5

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

Given the complexity of the tool (4 parameters, no annotations, no output schema), the description is notably incomplete. It fails to explain what macro-based authentication entails, how it integrates with scan configurations, or when it should be used. The sibling tools highlight the need for differentiation and contextual guidance, which is entirely absent.

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

Parameters3/5

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

Schema description coverage is 100%, so the parameters are fully documented in the schema. The description adds no meaningful information about the parameters beyond what the schema already provides (e.g., it doesn't mention replay_speed or extra_delay_ms). This aligns with the baseline score of 3 for high schema coverage.

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

Purpose4/5

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

The description specifies the verb 'configure' and the resource 'macro-based authentication', which clearly distinguishes it from sibling auth tools like configure_form_auth and configure_oauth. The phrase 'using a previously uploaded macro file' adds key context about the prerequisite, making the purpose clear and specific, though it doesn't explicitly mention that it applies to a scan configuration.

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

Usage Guidelines2/5

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

The description implies a prerequisite (previously uploaded macro file) but provides no guidance on when to use this tool versus alternatives such as configure_form_auth or configure_oauth. It does not mention trade-offs, exclusions, or scenarios where macro-based auth is preferred, leaving the agent without 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.

configure_oauthB

Configure OAuth 2.0 authentication for a scan configuration

ParametersJSON Schema
NameRequiredDescriptionDefault
scopeNoOAuth scope (space-separated)
passwordNoPassword (for resource_owner_password grant)
usernameNoUsername (for resource_owner_password grant)
client_idYesOAuth client ID
token_urlYesToken endpoint URL
grant_typeYesOAuth grant type
redirect_uriNoRedirect URI (for authorization_code grant)
client_secretYesOAuth client secret
scan_config_idYesThe unique identifier of the scan configuration
authorization_urlNoAuthorization URL (for authorization_code grant)

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states 'Configure' (implying a write operation) but does not mention prerequisites (e.g., scan config must exist), effects on existing OAuth settings, security implications (e.g., client secret storage), or idempotency. This is a significant gap for a mutation tool.

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

Conciseness5/5

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

The description is a single, clear sentence with no wasted words. It front-loads the primary action and resource, making it easy to parse and remember.

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

Completeness2/5

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

Given the moderate complexity (10 parameters, 5 required), no output schema, and lack of annotations, the description is too sparse to be fully self-contained. It does not explain what 'configure' entails, any required setup, or how this relates to other scan configuration tools, leaving important gaps for the agent.

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

Parameters3/5

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

Schema description coverage is 100%, with all ten parameters having descriptive names and descriptions. The tool description adds no parameter-specific detail, but the baseline of 3 is appropriate because the schema already provides full semantic coverage.

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

Purpose5/5

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

The description clearly states the verb 'Configure' and the resource 'OAuth 2.0 authentication for a scan configuration', which is specific and distinguishes this tool from sibling configure_* tools (e.g., configure_form_auth, configure_token_replacement). The purpose is unambiguous and well-scoped.

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

Usage Guidelines2/5

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

The description gives no guidance on when to use this tool versus alternatives. With multiple configure_* siblings, the absence of any comparative or conditional context (e.g., 'use when OAuth is required') means the agent must infer usage solely from the tool name and minimal description.

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

configure_session_handlingC

Configure session management including cookie handling and automatic re-login on session loss

ParametersJSON Schema
NameRequiredDescriptionDefault
lock_cookiesNoPrevent modification of session cookies during attacks
scan_config_idYesThe unique identifier of the scan configuration
session_loss_regexNoRegex pattern in response body indicating session expired (e.g., 'session expired|login required')
session_cookie_regexNoRegex pattern to identify session cookies (e.g., 'JSESSIONID|PHPSESSID')
relogin_on_session_lossNoAutomatically re-authenticate when session is lost
session_loss_header_regexNoRegex pattern in response headers indicating session loss

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It states what the tool does but does not mention side effects, mutability, permissions required, or reversibility. As a configuration tool, it likely modifies an existing scan config, but the description does not reveal whether changes are immediately applied, if they can be undone, or what the response format is. This leaves the agent uncertain about the operation's safety and impact.

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

Conciseness5/5

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

The description is a single, focused sentence that leads with the verb 'Configure' and states the main scope. There is no fluff or repetition. Every word contributes to understanding the tool's core function, making it highly concise and well-structured.

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

Completeness2/5

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

The tool has 6 parameters, no output schema, and no annotations. While the parameter schema is complete, the description does not provide contextual completeness for a configuration mutation: it lacks usage scenarios, behavioral implications, or any operational expectations. An agent using this tool would need more context to understand how it fits into the broader scan configuration workflow, especially given the many sibling configuration tools.

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

Parameters3/5

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

Schema description coverage is 100%, meaning every parameter (lock_cookies, session_loss_regex, etc.) has a descriptive comment. The tool description itself adds no additional parameter context, but per the rubric, the baseline is 3 when the schema covers all parameters. The parameter descriptions are reasonably self-explanatory, so no significant gap exists.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Configure session management including cookie handling and automatic re-login on session loss.' It uses a specific verb ('Configure') and names the resource (session management) plus key capabilities. While it doesn't explicitly differentiate from sibling configuration tools like configure_form_auth or configure_oauth, the focus on session handling is distinctive enough to avoid serious ambiguity.

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

Usage Guidelines2/5

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

No guidance is provided regarding when to use this tool versus alternatives. The description does not mention any prerequisites, exclusions, or compare itself to sibling tools. A user must infer from the name and context that this tool is for session-related configuration, but no explicit usage direction is given.

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

configure_token_replacementA

Configure global token replacement rules to extract tokens from responses and inject them into subsequent requests.

Use this for dynamic tokens like CSRF tokens, API keys, or session identifiers that need to be captured and replayed.

ParametersJSON Schema
NameRequiredDescriptionDefault
match_criteriaNoHow to match the extraction patternREGEX
scan_config_idYesThe unique identifier of the scan configuration
extraction_patternYesRegex pattern to extract the token value
injection_locationYesWhere to inject the token
extraction_locationYesWhere to extract the token from
injection_parameterYesParameter/field name where the token should be injected

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description carries the burden of disclosing behavior. It explains the core extract/inject mechanism and the global scope, but does not disclose whether existing rules are overwritten, whether it is a mutating operation, or any side effects on ongoing scans. This is adequate but not fully transparent.

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

Conciseness5/5

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

Two sentences with no redundant content. The first sentence states the purpose, the second gives concrete examples. Information is front-loaded and every word earns its place.

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

Completeness4/5

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

The description is complete enough for an agent to understand when to select the tool and what it does. It does not explain return values (no output schema) or whether configuration replaces existing rules, but for selection and basic understanding, it covers the essential context.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds high-level context about token extraction/injection but does not elaborate on specific parameter usage beyond what the schema already provides. It neither adds nor detracts from the schema.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'Configure global token replacement rules to extract tokens from responses and inject them into subsequent requests.' This is a specific verb+resource+scope formulation that distinguishes it from sibling tools like configure_csrf_handling or configure_session_handling by focusing on token replacement.

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

Usage Guidelines4/5

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

The second sentence provides clear usage context: 'Use this for dynamic tokens like CSRF tokens, API keys, or session identifiers that need to be captured and replayed.' This indicates when to choose this tool, though it does not explicitly name alternatives or state 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.

configure_traffic_authA

Configure traffic-based authentication using a previously uploaded traffic file (.har, .trec, .saz)

ParametersJSON Schema
NameRequiredDescriptionDefault
scan_config_idYesThe unique identifier of the scan configuration
traffic_file_idYesThe unique identifier of the traffic file
traffic_file_passwordNoPassword for encrypted traffic files

TDQS

A3.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It only mentions configuration and the input file, but does not disclose whether this mutates the scan config, replaces existing auth settings, or what happens on failure (e.g., wrong password). No side effects or required permissions are mentioned.

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

Conciseness5/5

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

The description is a single concise sentence that front-loads the primary purpose and includes necessary file format details. Every word earns its place with no redundancy or filler.

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

Completeness3/5

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

The tool is a configuration/mutation operation with no output schema and no annotations. The description explains the core input and purpose but omits behavioral context such as whether the configuration is additive or replaces existing auth, or what the success/failure response looks like. It is minimally viable but lacks depth for a safe invocation.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. The description adds value beyond the schema by specifying supported traffic file formats (.har, .trec, .saz) and implying that traffic_file_id must reference an uploaded file. This enriches the meaning of the traffic_file_id parameter.

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

Purpose5/5

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

The description clearly states a specific action ('Configure') on a specific resource ('traffic-based authentication') with a concrete method ('using a previously uploaded traffic file'). It lists supported file extensions (.har, .trec, .saz), which differentiates it from sibling auth configuration tools like configure_form_auth or configure_oauth.

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

Usage Guidelines4/5

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

The phrase 'previously uploaded traffic file' clearly implies the prerequisite that the file must be uploaded before calling this tool. It also indicates the tool is for traffic-based authentication, distinguishing it from alternative auth methods, but it does not explicitly state when not to use it or name alternatives.

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

control_scanB

Control a running scan (pause, resume, stop, or cancel)

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesThe action to perform on the scan
scan_idYesThe unique identifier of the scan

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of disclosing behavioral implications. It merely lists actions without explaining effects, differences between stop and cancel, reversibility, or required permissions. This is insufficient for a tool that mutates scan state.

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

Conciseness5/5

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

A single, front-loaded sentence communicates the essential purpose and actions with no filler. Every word contributes meaning.

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

Completeness2/5

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

The tool has no output schema and no annotations, so the description alone must convey return behavior, error conditions, and action-specific nuances. It does none of these. While the parameter list is simple, the semantic distinctions between STOP and CANCEL are left unexplained, making the description incomplete for safe autonomous invocation.

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

Parameters3/5

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

The schema already provides 100% coverage with descriptions for both parameters, including an enum for action. The description adds nothing beyond restating the enum values. With this coverage, a baseline of 3 is appropriate; no additional semantic value is provided.

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

Purpose5/5

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

The description uses a specific verb ('control') and resource ('running scan'), and enumerates the exact actions (pause, resume, stop, cancel). This clearly distinguishes it from sibling tools like submit_scan, get_scan, and delete_scan.

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

Usage Guidelines3/5

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

The description implies usage for controlling a running scan's lifecycle, but does not explicitly state when to use this tool versus alternatives such as delete_scan or get_scan. The context is clear but exclusions or alternatives are not mentioned.

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

create_appC

Create a new application

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesName of the application
descriptionNoDescription of the application

TDQS

C2.7/5.0
Behavior1/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It only says 'create', revealing nothing about side effects, permissions, idempotency, or response behavior. This is no more informative than the tool name.

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

Conciseness5/5

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

The description is a single compact sentence that clearly conveys the core action without any wasted words. It is efficiently front-loaded and easy to parse.

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

Completeness2/5

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

For a create operation with no annotations and no output schema, the description is incomplete. It fails to mention any required input constraints, expected response, or prerequisites, leaving the agent without sufficient context to invoke the tool confidently.

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

Parameters3/5

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

The schema already provides full descriptions for both parameters ('name' and 'description'), so schema coverage is 100%. The description adds no additional meaning beyond the schema, resulting in the baseline score of 3.

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

Purpose4/5

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

The description clearly states the verb 'create' and the resource 'application', which distinguishes it from sibling tools like create_schedule or create_scan_config. However, it lacks any detail about what constitutes an application or any specifics beyond the basic action.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives such as create_scan_config or create_file. No prerequisites, exclusions, or context are provided.

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

create_blackoutA

Create a blackout window to prevent scans during maintenance periods

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesName of the blackout window
stopYesStop time in ISO 8601 format
startYesStart time in ISO 8601 format (e.g., 2024-01-15T09:00:00Z)
enabledNoWhether the blackout is enabled
all_scan_configsNoApply to all scan configs globally

TDQS

A3.8/5.0
Behavior3/5

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

The description discloses the main behavioral effect: creating a blackout window prevents scans. However, with no annotations, it does not provide details about side effects, whether changes are reversible, or any permissions required. Since the tool is a simple create operation and the effect is clearly stated, this is adequate but not rich.

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

Conciseness5/5

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

The description is a single sentence that front-loads the action and purpose. It contains no filler or redundant information.

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

Completeness4/5

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

Given the schema's comprehensive parameter descriptions and the tool's straightforward purpose, the description provides sufficient context for an agent. It doesn't cover edge cases like overlapping windows or immediate effect, but for a create tool this is adequate. The lack of an output schema is mitigated by the simplicity of the operation.

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

Parameters3/5

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

The input schema has 100% coverage with descriptions for all five parameters. The description adds no additional parameter information, but the schema already documents name, start, stop, enabled, and all_scan_configs. Baseline 3 applies.

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

Purpose5/5

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

The description uses the specific verb 'create' with the resource 'blackout window' and clearly states the purpose: 'prevent scans during maintenance periods.' This distinguishes it from sibling tools like list_blackouts, update_blackout, and delete_blackout.

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

Usage Guidelines3/5

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

The description implies when to use it (during maintenance periods to prevent scans), but it does not explicitly mention alternatives or when not to use it. For example, it doesn't say to use update_blackout for modifying existing blackouts. This is clear context but no explicit exclusions.

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

create_fileA

Create file metadata entry. After creating, use upload_file_content to upload the actual file.

Supported file types:

  • MACRO: Recorded authentication sequences (.rec)

  • RECORDED_TRAFFIC: HTTP traffic captures (.har, .trec, .saz)

  • SELENIUM: Browser automation scripts (.html, .side)

  • CERTIFICATE: SSL certificates (.pfx)

  • SWAGGER: API specifications (.json, .yaml)

  • WSDL: Web service definitions (.wsdl)

  • GRAPHQL: GraphQL schemas (.graphqls)

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesName of the file
typeYesType of file
app_idYesThe unique identifier of the application
descriptionNoDescription of the file

TDQS

A4.6/5.0
Behavior4/5

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

No annotations are provided, so the description carries the transparency burden. It clearly states that only the metadata entry is created, not the file content, and enumerates supported types. However, it does not mention authentication requirements, idempotency, 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.

Conciseness5/5

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

The description is front-loaded with the main purpose, followed by a clear workflow pointer and a structured list of supported types. Every sentence earns its place with no wasted words.

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

Completeness4/5

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

For a metadata-creation tool with no output schema, the description adequately covers the creation flow and how to proceed with content upload. It could mention what the response contains or error scenarios, but the core usage is well-covered.

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

Parameters4/5

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

Schema description coverage is 100%, so parameters are well-documented. The description adds extra meaning by mapping file types to their real-world file extensions (e.g., MACRO -> .rec, SWAGGER -> .json/.yaml), which goes beyond the enum labels.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'Create file metadata entry.' It uses a specific verb and resource, and distinguishes itself from sibling tools by explicitly directing users to 'upload_file_content' for the actual file upload.

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

Usage Guidelines5/5

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

It explicitly provides usage context: 'After creating, use upload_file_content to upload the actual file.' This explains the workflow and points to the relevant sibling tool. Supporting file types further guides when this tool is applicable.

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

create_scan_configA

Create a new scan configuration for an application

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesName of the scan configuration
app_idYesThe ID of the application this config belongs to
descriptionNoDescription of the scan configuration
attack_template_idYesThe ID of the attack template to use

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It states the action but does not disclose side effects, permissions, idempotency, or what happens on success. For a mutation tool, this is a significant gap beyond what the name alone implies.

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

Conciseness5/5

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

The description is a single, focused sentence with no redundant wording. It states the essential purpose without any filler, making it highly concise and well-structured.

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

Completeness3/5

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

The tool is a simple create operation with four well-documented parameters and no output schema. The description is adequate for basic understanding but lacks context about what a scan configuration is, how it relates to the application, or any prerequisites or dependencies that might affect usage.

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

Parameters3/5

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

The input schema provides full descriptions for all four parameters (100% coverage), so the baseline is 3. The description adds minimal parameter meaning beyond 'for an application', which maps to the app_id parameter, but it 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.

Purpose5/5

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

The description clearly states the action ('Create'), the resource ('a new scan configuration'), and the scope ('for an application'). This distinguishes it from sibling tools like update_scan_config or list_scan_configs, which have different verbs and resources.

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

Usage Guidelines3/5

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

Usage is implied by the verb 'Create' and the resource type, but there is no explicit guidance on when to choose this over alternatives or any prerequisites. The phrase 'for an application' gives some context, but no exclusions or alternative references are provided.

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

create_scheduleB

Create a new scan schedule for automated recurring scans

ParametersJSON Schema
NameRequiredDescriptionDefault
enabledNoWhether the schedule is enabled
frequencyYesHow often the scan should run
first_startYesISO 8601 datetime for the first scheduled run (e.g., 2024-01-15T09:00:00Z)
scan_config_idYesThe ID of the scan configuration to schedule

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It only says 'create', with no disclosure of side effects, validation behavior, response format, or error cases. The 'recurring' wording may also mislead for one-time (ONCE) schedules.

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

Conciseness5/5

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

The description is a single, clear sentence with no filler. It is easy to parse and immediately conveys the tool's purpose.

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

Completeness2/5

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

For a create tool with 4 parameters and no output schema, the description is too thin. It does not mention what is returned, whether the referenced scan config must exist, or any constraints like conflicts with existing schedules.

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

Parameters3/5

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

The input schema fully describes all four parameters with types, defaults, and an example for first_start. The description adds no extra parameter context, so the baseline score of 3 is appropriate.

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

Purpose4/5

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

The description clearly states the action (create) and resource (scan schedule), and is distinct from sibling schedule tools like update_schedule and delete_schedule. However, it says 'recurring scans' while the frequency enum includes ONCE, which is slightly misleading.

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

Usage Guidelines3/5

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

The usage is implied: you use this to create a new schedule. There is no explicit mention of when to prefer this over alternatives, exclusions, or prerequisites. The agent must infer from the verb and the sibling tool names.

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

delete_appA

Delete an application. This will also delete all associated scan configs, scans, and vulnerabilities.

ParametersJSON Schema
NameRequiredDescriptionDefault
app_idYesThe unique identifier of the application to delete

TDQS

A4/5.0
Behavior4/5

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

With no annotations provided, the description carries the burden of behavioral disclosure. It clearly states the destructive cascade effect: deleting the application will also delete scan configs, scans, and vulnerabilities. This adds meaningful behavioral context beyond the simple 'Delete an application' statement, though it stops short of explicitly stating irreversibility 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.

Conciseness5/5

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

The description is two sentences with no wasted words. The primary action is front-loaded in the first sentence, and the second sentence efficiently adds the crucial cascading behavior. Every phrase earns its place.

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

Completeness4/5

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

Given the low complexity (one required parameter), no output schema, and no annotations, the description is largely complete. It explains the core deletion action and the critical side effects. A minor gap is the lack of an explicit warning about irreversibility, but the cascade disclosure covers the most important contextual need.

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

Parameters3/5

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

Schema description coverage is 100% for the single app_id parameter, which is clearly described as the unique identifier of the application to delete. The tool description does not add additional parameter-related meaning, so the baseline of 3 applies since the schema already documents the parameter fully.

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

Purpose5/5

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

The description uses a specific verb+resource, 'Delete an application,' and distinguishes this tool from sibling deletion tools like delete_scan and delete_schedule by targeting the application itself. It also clarifies the cascading scope by mentioning deletion of associated scan configs, scans, and vulnerabilities.

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

Usage Guidelines3/5

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

The description implies usage when an application and its entire associated data need to be removed, but it does not explicitly state when to use this tool versus alternatives such as delete_scan or delete_scan_config. No exclusions or alternative tool guidance is provided, so guidance is inferred rather than explicit.

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

delete_blackoutB

Delete a blackout window

ParametersJSON Schema
NameRequiredDescriptionDefault
blackout_idYesThe unique identifier of the blackout window to delete

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. 'Delete' implies destructive behavior, but the description does not explain irreversibility, required permissions, or what happens if the blackout is in use. This is a significant gap for a mutation tool.

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

Conciseness5/5

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

The description is a single concise sentence that communicates the core purpose without unnecessary words. It is appropriately sized for the simplicity of the operation.

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

Completeness2/5

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

The description adds no value beyond the tool name and schema. There is no mention of return values, errors, or behavioral context. For a destructive operation with no annotations and no output schema, this is insufficient.

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

Parameters3/5

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

Schema description coverage is 100% and clearly documents the blackout_id parameter. The tool description adds no additional parameter meaning, so the baseline of 3 is appropriate.

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

Purpose5/5

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

The description 'Delete a blackout window' clearly identifies the action (delete) and the resource (blackout window), and it distinguishes itself from sibling CRUD tools like create_blackout and update_blackout. It is specific and unambiguous.

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

Usage Guidelines2/5

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

No guidance is provided for when to use this tool versus alternatives. The description does not mention prerequisites, side effects, or when not to use it. For a delete operation, it would be helpful to note that it permanently removes the blackout.

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

delete_fileB

Delete a file from an application

ParametersJSON Schema
NameRequiredDescriptionDefault
app_idYesThe unique identifier of the application
file_idYesThe unique identifier of the file to delete

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, and the description only states the basic action without disclosing behavioral traits such as irreversibility, permission requirements, or side effects. It does not mention whether deletion is permanent or if there are dependencies.

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

Conciseness5/5

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

The description is a single clear sentence, front-loaded with the action, and contains no unnecessary words.

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

Completeness2/5

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

Given the tool's simplicity (2 required parameters, no output schema, no annotations), the description is incomplete as it does not specify return behavior, permanence, or prerequisites. It minimally covers the core action but lacks context an agent would need for a destructive operation.

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

Parameters3/5

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

The schema already provides full descriptions for both parameters (app_id and file_id), achieving 100% coverage. The tool description adds no additional parameter meaning beyond the schema.

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

Purpose5/5

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

The description clearly states the tool's function with a specific verb ('Delete') and resource ('file'), and the mention of 'from an application' distinguishes it from other delete tools for schedules, blackouts, apps, scans, and scan configs. It fully explains 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.

Usage Guidelines2/5

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 when to use delete_app or delete_scan. No criteria or scenarios are given.

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

delete_scanA

Delete a scan. Only scans in FAILED status can be deleted.

ParametersJSON Schema
NameRequiredDescriptionDefault
scan_idYesThe unique identifier of the scan to delete

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden. It discloses the key behavioral restriction (FAILED status only), which is valuable. However, it does not mention whether deletion is permanent, whether associated data is affected, or any permission requirements. For a destructive operation, this is a moderate gap.

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

Conciseness5/5

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

The description is two short sentences with no redundant information. Every word earns its place, and the constraint is stated directly after the purpose without any filler.

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

Completeness4/5

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

For a single-parameter tool with no output schema and a simple operation, the description covers the essentials: what it does and the one critical precondition. It is not overly complex, so no further explanation of return values or side effects is strictly needed, though a note on permanence would have made it complete.

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

Parameters3/5

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

The schema covers 100% of the parameters, with scan_id already having a clear description ('The unique identifier of the scan to delete'). The description adds no additional parameter semantics, but the baseline of 3 applies since the schema does the work.

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

Purpose5/5

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

The description uses a specific verb-resource pair ('Delete a scan') and adds a crucial constraint ('Only scans in FAILED status can be deleted'), clearly distinguishing this from sibling delete tools like delete_schedule or delete_scan_config. The resource and action are unambiguous.

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

Usage Guidelines4/5

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

The description clearly indicates when the tool is applicable: only for scans in FAILED status. This serves as an implicit exclusion (do not use for non-FAILED scans), though it does not explicitly name alternatives or say what to do instead. The context provided is sufficient for basic usage.

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

delete_scan_configB

Delete a scan configuration

ParametersJSON Schema
NameRequiredDescriptionDefault
scan_config_idYesThe unique identifier of the scan configuration to delete

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of disclosing behavioral traits, but it only restates the action. It fails to mention whether deletion is permanent, what happens to associated data, required permissions, 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.

Conciseness5/5

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

The description is a single, concise sentence with no redundant words. It is appropriately sized for such a simple tool and front-loads the essential action.

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

Completeness2/5

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

For a destructive operation with no annotations and no output schema, the description is too sparse. It does not explain the result of success/failure, whether the action is reversible, or any special conditions, making it incomplete for practical use.

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

Parameters3/5

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

The schema already provides 100% coverage for the single parameter with a clear description. The tool description adds no further parameter detail, so the baseline of 3 applies.

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

Purpose5/5

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

The description 'Delete a scan configuration' uses a specific verb and resource, clearly distinguishing it from sibling delete tools that target different entities (schedule, blackout, app, scan, file). The purpose is unmistakable.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives. It does not mention any prerequisites, context, or exclusions, leaving the agent to infer usage solely from the tool name and schema.

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

delete_scheduleB

Delete a scan schedule

ParametersJSON Schema
NameRequiredDescriptionDefault
schedule_idYesThe unique identifier of the schedule to delete

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. 'Delete a scan schedule' implies a destructive operation but does not mention side effects, such as whether associated scans are canceled, whether the deletion is reversible, or if any confirmation is required. This lack of transparency is a notable gap for a mutation tool.

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

Conciseness5/5

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

The description is a single, clear sentence that conveys the tool's purpose without any redundant or extraneous information. It is appropriately sized for a simple delete operation, and every word contributes meaning.

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

Completeness2/5

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

While the tool is simple (one parameter, no output schema), the description is minimal and lacks critical contextual details such as side effects, reversibility, or relationship to schedules and scans. Given the absence of annotations and output schema, the description is incomplete for a destructive operation.

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

Parameters3/5

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

The input schema fully documents the only parameter (schedule_id) with a description and UUID format, so the schema coverage is 100%. The description adds no additional parameter semantics, which aligns with the baseline score of 3 when the schema already provides complete parameter information.

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

Purpose5/5

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

The description clearly states the action ('Delete') and the resource ('a scan schedule'), using a specific verb and noun. This unambiguously distinguishes it from sibling tools like list_schedules, create_schedule, and update_schedule.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. For example, there is no mention of prerequisites, such as whether a schedule can be deleted if it is currently active, or any note about using delete_blackout for blackout schedules instead. The description offers no contextual usage cues.

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

download_fileB

Download file content as base64-encoded string

ParametersJSON Schema
NameRequiredDescriptionDefault
app_idYesThe unique identifier of the application
file_idYesThe unique identifier of the file

TDQS

B3.1/5.0
Behavior2/5

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

There are no annotations, so the description carries the full burden. It discloses the output encoding (base64) but omits any behavioral details such as whether the operation is read-only, potential size limits, or what happens if the file 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.

Conciseness5/5

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

The description is a single, compact sentence that states the verb, resource, and output format without any redundant words. It is front-loaded and highly concise.

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

Completeness3/5

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

For a simple two-parameter tool with no output schema, the description provides the key return format (base64 string) but lacks clarification on the full response structure or any constraints. It is minimally acceptable but leaves some gaps.

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

Parameters3/5

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

Schema description coverage is 100% for both parameters, adequately defining app_id and file_id. The description adds no extra parameter meaning, but the schema already provides sufficient clarity, so the baseline score of 3 is appropriate.

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

Purpose4/5

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

The description clearly states the action ('Download') and the resource ('file content') as well as the output format ('base64-encoded string'). It is specific and understandable, but does not explicitly differentiate from sibling tool get_file, which might also retrieve file-related information.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like get_file or list_files. The description does not mention prerequisites, exclusions, 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.

generate_reportB

Generate a new vulnerability report for an application or scan

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesName of the report
app_idNoApp ID for app-type or compliance reports
formatNoOutput formatPDF
scan_idNoScan ID for scan-type reports
report_typeYesType of report to generate

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It does not disclose whether report generation is asynchronous, what permissions are required, or any side effects. The existence of get_report_status suggests async behavior, but the description omits this entirely.

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

Conciseness4/5

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

The description is a single, front-loaded sentence with no unnecessary words. It effectively states the core purpose, though it lacks depth. The brevity is appropriate for conciseness, but not for completeness.

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

Completeness2/5

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

For a tool with five parameters, two enums, and no output schema or annotations, the description is notably incomplete. It does not explain conditional parameter usage (e.g., scan_id for scan-type reports vs app_id for others), return behavior, or the likely asynchronous nature of report generation.

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

Parameters3/5

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

The input schema provides 100% coverage of all five parameters with descriptions, so the baseline is 3. The description adds no additional meaning about parameters; it even fails to mention the 'compliance' report type that exists in the schema.

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

Purpose5/5

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

The description clearly states the tool's action ('Generate') and resource ('a new vulnerability report'), with scope ('for an application or scan'). It distinguishes from siblings like list_reports and get_report_status by emphasizing creation of a new report.

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

Usage Guidelines2/5

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

No guidance is given on when to use this tool versus alternatives. The description does not mention list_reports or get_report_status, nor does it provide any exclusions or context about choosing report types beyond a passing mention of application or scan.

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

get_appB

Get detailed information about a specific application

ParametersJSON Schema
NameRequiredDescriptionDefault
app_idYesThe unique identifier of the application

TDQS

B3.1/5.0
Behavior2/5

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

There are no annotations to rely on, so the description must carry the behavioral transparency burden. It only says 'Get detailed information' without disclosing what information is returned, whether the operation is read-only, error behavior for non-existent app IDs, or permission requirements. This is minimal disclosure for a read operation.

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

Conciseness5/5

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

The description is a single sentence that is direct and free of extraneous words. It is appropriately sized for a simple getter tool and front-loads the core purpose.

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

Completeness3/5

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

The tool is simple with one parameter and no output schema, and the description gives a basic idea of its function. However, 'detailed information' is vague and does not specify what information is included, such as configuration, status, or tags. It is minimally complete but lacks useful contextual detail.

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

Parameters3/5

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

The input schema has 100% coverage for its single parameter, app_id, with a clear description. The tool description adds no additional parameter semantics, but the schema already provides sufficient meaning. This aligns with the baseline of 3 for high schema coverage.

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

Purpose4/5

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

The description clearly states the tool's function: retrieving detailed information about a specific application. The verb 'get' and resource 'application' are precise, and the word 'specific' implicitly distinguishes it from list_apps, which likely lists multiple applications. However, it does not explicitly name the alternative or the distinction.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. It does not mention that app_id can be obtained from list_apps, nor does it state any prerequisites or exclusions. The description simply restates the tool's action without contextual direction.

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

get_blackoutA

Get detailed information about a specific blackout window

ParametersJSON Schema
NameRequiredDescriptionDefault
blackout_idYesThe unique identifier of the blackout window

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. However, it only says 'Get detailed information', which is essentially a restatement of the purpose. It does not disclose return format, error handling, permissions, or any side effects. This is minimal transparency for a read operation.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no unnecessary words. It states the action and the target concisely, making it easy for an agent to parse quickly.

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

Completeness3/5

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

For a simple single-parameter get tool, the description is minimally adequate, but 'detailed information' is vague and does not indicate what fields or data the response will contain. No output schema exists, so the description should provide more context about the return value, but it does not. The tool is likely straightforward, but the description leaves room for ambiguity.

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

Parameters3/5

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

Schema coverage is 100%, with blackout_id described as 'The unique identifier of the blackout window'. The tool description adds no additional meaning about the parameter beyond what the schema already provides, so the baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool's function with a specific verb ('Get') and resource ('detailed information about a specific blackout window'). It distinguishes itself from sibling tools like list_blackouts (which lists blackouts) and create/update/delete by focusing on a single, specific window.

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

Usage Guidelines3/5

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

The description implies usage for retrieving a single blackout window by ID, but it does not explicitly state when to use this tool over alternatives like list_blackouts, nor does it mention any prerequisites or exclusions. The context is clear but the guidance is implied rather than stated.

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

get_engineA

Get detailed information about a specific scan engine

ParametersJSON Schema
NameRequiredDescriptionDefault
engine_idYesThe unique identifier of the engine

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only mentions 'detailed information' without revealing permissions, error behavior, return format, or any side effects. The read-only nature is implied but not explicitly disclosed.

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

Conciseness5/5

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

The description is a single, clear sentence that front-loads the verb and object. It contains no filler or redundant information and is appropriately sized for a simple tool.

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

Completeness3/5

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

For a simple get-by-ID tool with no output schema, the description is functional but minimal. It does not specify what 'detailed information' includes or mention any caveats, though the tool's simplicity and complete parameter schema mitigate the absence.

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

Parameters3/5

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

The input schema fully documents the engine_id parameter with a clear description (100% schema coverage). The description adds no additional meaning beyond what the schema already provides, so the baseline of 3 applies.

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

Purpose5/5

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

The description clearly states the tool's purpose with a specific verb 'Get' and resource 'detailed information about a specific scan engine'. This distinguishes it from sibling tools like list_engines, which lists all engines, and get_engine_group, which targets a different resource.

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

Usage Guidelines3/5

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

The description implies usage for retrieving a single engine by ID via the word 'specific', but it does not explicitly state when to use this tool versus alternatives like list_engines. No exclusions or alternative tool references are provided.

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

get_engine_groupB

Get detailed information about a specific engine group

ParametersJSON Schema
NameRequiredDescriptionDefault
engine_group_idYesThe unique identifier of the engine group

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries the full responsibility for behavioral disclosure. It states only that the tool 'gets detailed information,' but does not describe what information is included, whether it is read-only, any required permissions, error conditions, or response format. This is a minimal disclosure that leaves significant ambiguity.

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

Conciseness5/5

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

The description is a single, concise sentence that is front-loaded with the verb and object. There is no redundant wording or extraneous details. It is appropriately sized for a simple getter tool.

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

Completeness3/5

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

Given the tool's simplicity (one parameter, no output schema, no annotations), the description is minimally adequate. However, it does not explain what 'detailed information' includes, nor does it clarify return format or behavior. For a tool that purportedly returns detailed information, some elaboration on the response would improve completeness.

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

Parameters3/5

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

The schema description covers 100% of the single parameter, engine_group_id, providing its type and meaning. The description adds no extra semantic information. Since schema coverage is high, a baseline of 3 is appropriate, and there is no additional value from the tool description.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Get detailed information about a specific engine group.' The verb 'get' and resource 'engine group' are specific, and the word 'specific' distinguishes it from list operations like list_engine_groups. However, it does not explicitly mention alternatives or contrast with sibling tools, so it falls short of a 5.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives such as list_engine_groups or get_engine. No prerequisites, context, or exclusions are provided. The description offers no usage direction beyond the basic action.

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

get_fileA

Get file metadata by ID

ParametersJSON Schema
NameRequiredDescriptionDefault
app_idYesThe unique identifier of the application
file_idYesThe unique identifier of the file

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. However, it only states the action and resource, without disclosing any behavioral traits such as authentication requirements, error behavior (e.g., 404 if file not found), return format, or whether the operation is read-only. The verb 'get' implies read-only, but this is not explicit.

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

Conciseness5/5

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

The description is a single concise sentence that immediately conveys the core purpose. No filler or redundant information, and it is front-loaded with the action and resource.

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

Completeness3/5

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

Given the simplicity of a get-by-ID metadata operation and the complete schema, the description is adequate but minimal. However, without an output schema or annotations, it does not clarify what specific metadata will be returned, error handling, or permissions, leaving some gaps for an agent relying solely on this description.

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

Parameters3/5

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

Schema description coverage is 100%, with both app_id and file_id fully described as unique identifiers. The tool description adds no additional parameter semantics beyond what the schema already documents, so a baseline score of 3 is appropriate.

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

Purpose5/5

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

The description 'Get file metadata by ID' uses a specific verb ('Get'), a clear resource ('file metadata'), and a scope ('by ID'). This clearly distinguishes it from siblings like download_file (which fetches content) and list_files (which lists multiple files).

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

Usage Guidelines3/5

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

The description implies this tool is for fetching a single file's metadata when an ID is available, but it does not explicitly state when to use it versus alternatives. No exclusions or alternative tool mentions are provided, so the context is clear but lacks explicit guidance.

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

get_report_statusB

Get the status and details of a generated report

ParametersJSON Schema
NameRequiredDescriptionDefault
report_idYesThe unique identifier of the report

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description must carry behavioral disclosure; it only states the operation, omitting return shape, failure behavior for unknown reports, whether status is pollable, or authentication/permissions. Since it's a read/get operation, there is some safe inference from the name, but no concrete details.

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

Conciseness5/5

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

The description is a single front-loaded sentence with no filler; every word contributes to the core purpose. Appropriate size for a simple one-parameter tool.

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

Completeness3/5

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

Given the simple one-parameter schema and no output schema, the description covers the basic operation but lacks any return value details or usage caveats. It is minimally viable but not rich; no annotations or output schema place more burden on the description, so it falls short of complete.

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

Parameters3/5

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

Schema coverage is 100% with a single report_id parameter described as 'The unique identifier of the report'. The description adds only the context that the report is 'generated', which doesn't materially enrich parameter semantics beyond the schema.

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

Purpose4/5

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

The description uses a specific verb ('Get') and identifies the resource ('status and details of a generated report'), clearly distinguishing it from sibling list_reports and generate_report tools. However, it doesn't further distinguish from similar single-report retrieval tools or qualify scope.

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

Usage Guidelines2/5

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

No guidance on when to use this tool vs alternatives; it doesn't mention that it should be used only after generate_report, nor exclude alternative retrieval paths. The intended usage is only implied by the tool name.

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

get_scanB

Get detailed information about a specific scan

ParametersJSON Schema
NameRequiredDescriptionDefault
scan_idYesThe unique identifier of the scan

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states 'Get detailed information' which implies a read-only operation, but does not explicitly confirm no side effects, required permissions, or possible errors. For a simple getter, the description is minimal but acceptable; however, it adds little beyond what the tool 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.

Conciseness5/5

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

The description is a single, focused sentence with no redundancy or filler. It efficiently communicates the core function without wasting tokens.

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

Completeness3/5

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

The tool is low complexity (one parameter, no nested objects) and the schema is thorough for inputs. However, there is no output schema, and the description does not specify what 'detailed information' includes or how it differs from related scan tools like get_scan_execution_details. The description is adequate for a simple getter but leaves some ambiguity about return content.

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

Parameters3/5

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

The schema covers 100% of the single parameter (scan_id) with a clear description. The tool description adds no additional meaning beyond the schema, but the schema already provides sufficient semantic information. Baseline 3 is appropriate given high schema coverage.

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

Purpose4/5

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

The description clearly states the verb 'Get' and the resource 'scan' with the scope 'specific' and 'detailed information'. It distinguishes from list_scans (which lists multiple scans) but does not explicitly differentiate from sibling tools like get_scan_execution_details. Clear but lacking explicit sibling differentiation.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. The description does not mention prerequisites (e.g., having a scan_id), nor does it suggest when to choose get_scan over get_scan_execution_details or list_scans. There are no usage context or exclusion notes.

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

get_scan_configB

Get detailed information about a specific scan configuration

ParametersJSON Schema
NameRequiredDescriptionDefault
scan_config_idYesThe unique identifier of the scan configuration

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden. It indicates a read-only operation ('Get'), but provides no additional behavioral context such as response format, possible errors, or effects. It does not contradict any annotations because none exist.

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

Conciseness5/5

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

The description is a single, front-loaded sentence that directly states the tool's purpose. Every word adds meaning, with no filler or redundancy. It is concise and well-structured.

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

Completeness3/5

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

The tool is simple with one parameter and no output schema, so a brief description is reasonable. However, without an output schema, the description should ideally indicate what 'detailed information' includes (e.g., configuration settings, scan engine, targets). The current description is minimally adequate but leaves the return content vague.

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

Parameters3/5

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

Schema coverage is 100%: the single parameter scan_config_id is described as 'The unique identifier of the scan configuration.' The description adds no new meaning beyond confirming it targets a specific configuration. With full schema coverage, 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.

Purpose5/5

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

The description uses a specific verb ('Get') and a specific resource ('detailed information about a specific scan configuration'), clearly indicating it fetches one configuration. This distinguishes it from sibling tools like list_scan_configs (which lists all configs) and get_scan_config_options (which retrieves options).

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

Usage Guidelines2/5

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

The description offers no guidance on when to use this tool versus alternatives. It does not mention that an ID is required or that list_scan_configs should be used to discover IDs. No exclusions or alternative tools are referenced.

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

get_scan_config_optionsB

Get the full scan configuration options including authentication settings

ParametersJSON Schema
NameRequiredDescriptionDefault
scan_config_idYesThe unique identifier of the scan configuration

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description must carry behavioral disclosure. It only states what is retrieved, without noting side effects, required permissions, or return structure. 'Get' implies read-only but is not explicit.

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

Conciseness5/5

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

One concise sentence with the verb and resource front-loaded. No wasted words.

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

Completeness3/5

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

For a simple read tool with one parameter, the description is adequate but does not compensate for the missing output schema or annotations. It hints at the return ('full options') but does not specify the structure or edge cases.

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

Parameters3/5

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

Input schema has 100% coverage with a clear description for scan_config_id. The tool description does not add any parameter-level semantics beyond indicating it returns options, but schema already handles the single parameter.

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

Purpose4/5

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

The description states a specific action ('Get') and resource ('full scan configuration options'), and adds a distinctive scope ('including authentication settings'). However, it does not explicitly differentiate from get_scan_config, though the name implies a broader options list.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus get_scan_config or the auth configuration tools (configure_form_auth, configure_oauth, etc.). It 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.

get_scan_engine_eventsA

Get engine event logs for a scan

ParametersJSON Schema
NameRequiredDescriptionDefault
sizeNoResults per page (default: 50, max: 1000)
indexNoPage index (0-based, default: 0)
scan_idYesThe unique identifier of the scan

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description carries the full burden of behavioral disclosure. The verb 'Get' implies a read-only operation, but it does not explicitly state whether the operation has side effects, how pagination works beyond the schema, or what the response format is. It is minimally transparent but not misleading.

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

Conciseness5/5

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

The description is a single, concise sentence that front-loads the core action and object. It contains no unnecessary words or repetition, making it highly efficient for its minimal purpose.

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

Completeness3/5

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

The tool is a simple log retrieval with a well-documented schema, but the absence of an output schema means the description should have explained the expected return structure or event format. It does not, leaving a gap in contextual completeness for an agent unfamiliar with the tool.

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

Parameters3/5

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

The schema provides 100% coverage of all three parameters, including descriptions for defaults and constraints. The description adds no additional parameter semantics beyond what the schema already offers, so the baseline of 3 is appropriate.

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

Purpose5/5

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

The description uses a specific verb 'Get' with a clear resource ('engine event logs') and scope ('for a scan'), which precisely distinguishes it from sibling tools like get_scan or get_scan_execution_details. It unambiguously states the tool's primary function.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives such as get_scan_execution_details or get_scan. While the purpose implies its use cases, it lacks explicit exclusions or context that would help an agent select it correctly.

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

get_scan_execution_detailsA

Get real-time execution metrics for a running or completed scan

ParametersJSON Schema
NameRequiredDescriptionDefault
scan_idYesThe unique identifier of the scan

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. 'Get' implies a read operation, and 'real-time' suggests current data, but it does not clarify whether the call is non-mutating, what specific metrics are returned, or if there are any rate limits or prerequisites. The 'running or completed' clause adds some context, but transparency remains partial.

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

Conciseness5/5

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

The description is a single, focused sentence with no wasted words. It front-loads the action and resource, making it immediately clear what the tool does.

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

Completeness3/5

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

The tool is simple (1 param, no output schema), but the description leaves 'execution metrics' undefined. It would be more complete with a brief list of example metrics (e.g., progress, duration, status). Given the low complexity, the description is adequate but not thorough.

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

Parameters3/5

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

Schema description coverage is 100% (scan_id is defined), so the baseline is 3. The description doesn't add extra meaning beyond the schema; it just confirms the tool operates on a scan. No further elaboration on the parameter is needed given the high schema coverage.

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

Purpose5/5

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

The description clearly identifies the verb ('Get') and resource ('real-time execution metrics for a scan'), which distinguishes it from sibling tools like 'get_scan' (which likely returns general scan details) and 'control_scan' (which performs actions). It also specifies scope: running or completed scans.

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

Usage Guidelines3/5

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

The description implies usage when real-time execution metrics are needed, but it does not explicitly state when to use this tool versus alternatives such as 'get_scan' or 'get_scan_engine_events'. No exclusions or conditional guidance is provided.

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

get_scheduleA

Get detailed information about a specific schedule

ParametersJSON Schema
NameRequiredDescriptionDefault
schedule_idYesThe unique identifier of the schedule

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations, the description carries full responsibility for behavioral disclosure. It indicates a read operation via 'Get', but does not explicitly state it is read-only, mention authentication needs, or describe failure behavior or response format. The minimal description leaves significant behavioral context unstated.

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

Conciseness5/5

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

The description is a single, focused sentence with no wasted words. It is concise and directly states the tool's purpose.

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

Completeness3/5

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

For a simple get operation, the description is adequate but lacks details about the return value. Since there is no output schema, the description could clarify what 'detailed information' includes, but it does not. The tool is straightforward, but completeness is slightly compromised by the vague term 'detailed information'.

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

Parameters3/5

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

Schema has 100% coverage for the single parameter schedule_id, and the description adds no additional meaning beyond the schema. Baseline 3 is appropriate because the schema already documents the parameter adequately.

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

Purpose5/5

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

The description uses a specific verb 'Get' and resource 'specific schedule', clearly distinguishing it from sibling list_schedules which lists schedules. It unambiguously identifies the action and target.

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

Usage Guidelines3/5

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

The description implies usage for retrieving details of a single schedule, but it does not explicitly state when to use it instead of list_schedules or mention any exclusions or prerequisites. Usage context is only implied, not clearly articulated.

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

get_vulnerabilityA

Get detailed information about a specific vulnerability

ParametersJSON Schema
NameRequiredDescriptionDefault
vulnerability_idYesThe unique identifier of the vulnerability

TDQS

A3.7/5.0
Behavior3/5

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

The description makes the read-only nature clear by using 'get', but it does not disclose return format, whether the vulnerability object contains all fields, or any error/not-found behavior. Since no annotations are provided, the description partially carries the transparency burden but leaves gaps.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no wasted words. It immediately states the action and target resource and is appropriately sized for a simple getter.

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

Completeness3/5

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

For a simple get-by-ID tool with one well-documented parameter, the description is mostly complete, but 'detailed information' is vague and there is no output schema. It could state that the full vulnerability object is returned or mention any notable fields.

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

Parameters3/5

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

The parameter vulnerability_id is fully described in the schema (UUID, unique identifier). The description adds little beyond 'specific vulnerability', which corresponds directly to the parameter. Schema coverage is 100%, so baseline 3 is appropriate.

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

Purpose5/5

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

The description 'Get detailed information about a specific vulnerability' uses a specific verb ('get') and resource ('vulnerability'), and the phrase 'specific vulnerability' distinguishes it from list_vulnerabilities and get_vulnerability_discoveries. It clearly communicates the tool's core function.

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

Usage Guidelines3/5

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

The description implies usage when a user needs details for a single vulnerability by ID, but it does not explicitly mention when to use this over list_vulnerabilities or get_vulnerability_discoveries. No alternatives or exclusion criteria are stated.

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

get_vulnerability_discoveriesB

Get the discovery history for a vulnerability

ParametersJSON Schema
NameRequiredDescriptionDefault
sizeNoResults per page (default: 50, max: 1000)
indexNoPage index (0-based, default: 0)
vulnerability_idYesThe unique identifier of the vulnerability

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states 'Get', which implies read-only behavior but does not explicitly confirm it, nor does it mention pagination, response format, error handling, or any side effects. This is insufficient for a tool with no annotation support.

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

Conciseness4/5

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

The description is a single, front-loaded sentence that is efficient and easy to parse. However, it is extremely terse, lacking any additional context that might be expected for a tool with no annotations or output schema, so it does not fully earn the top score for structure.

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

Completeness2/5

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

With no output schema and no annotations, the description is expected to provide context about the return format and behavior. It fails to explain what 'discovery history' contains, how pagination works, or what the response structure is, leaving the agent under-informed for a tool that might return varied historical data.

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

Parameters3/5

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

The input schema provides 100% coverage with descriptions for all three parameters, so the baseline score of 3 applies. The tool description itself adds no parameter-level meaning, but since the schema already documents size, index, and vulnerability_id, the description does not need to compensate.

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

Purpose5/5

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

The description clearly states the action ('Get') and the specific resource ('discovery history for a vulnerability'), distinguishing it from sibling tools such as get_vulnerability (which retrieves vulnerability details) and list_vulnerabilities (which lists vulnerabilities). The verb+object structure is unambiguous.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives, nor does it mention any prerequisites, exclusions, or context. It is a bare statement that leaves the agent to infer usage from the name alone, offering no differentiation from related tools.

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

list_appsA

List all applications with optional pagination and sorting

ParametersJSON Schema
NameRequiredDescriptionDefault
sizeNoResults per page (default: 50, max: 1000)
sortNoSort field and direction (e.g., 'name,ASC' or 'submit_time,DESC')
indexNoPage index (0-based, default: 0)

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. 'List' implies a read-only operation, and 'optional pagination and sorting' gives some behavioral context, but it doesn't disclose limitations, permissions, 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.

Conciseness5/5

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

The description is a single, well-front-loaded sentence with no wasted words. It efficiently conveys the core purpose and optional features.

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

Completeness4/5

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

For a simple list tool with well-documented parameters, the description is largely complete. It covers the core functionality and mentions pagination/sorting, though it doesn't describe the return shape or clarify 'all applications' scope.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description's mention of 'optional pagination and sorting' aligns with the size, sort, and index parameters but adds no meaning beyond the schema.

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

Purpose5/5

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

The description clearly states the action 'List' and the resource 'applications', making it distinct from sibling tools like get_app. Mention of 'optional pagination and sorting' adds a specific scope.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives such as get_app for a single application. The description neither gives context nor exclusions, so the agent is left without guidance.

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

list_blackoutsB

List blackout windows with optional pagination

ParametersJSON Schema
NameRequiredDescriptionDefault
sizeNoResults per page (default: 50, max: 1000)
indexNoPage index (0-based, default: 0)

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral transparency. It only states the action and pagination option, but does not disclose that this is a read-only operation, what the return format is, whether all blackout windows are returned, or any default ordering/limitations. This is a significant gap for an unannotated tool.

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

Conciseness5/5

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

The description is a single sentence of seven words ('List blackout windows with optional pagination'), front-loaded with the verb and resource. There is no redundancy or filler; every word contributes to the meaning.

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

Completeness3/5

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

The tool is relatively simple with only two optional parameters and no output schema, so the description does not need much. However, it omits any statement about what the return value looks like (e.g., a list, paginated response), whether all blackouts are returned by default, or any filtering/ordering behavior. While adequate for a basic list, it leaves some uncertainty for an agent invoking the tool.

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

Parameters3/5

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

Schema description coverage is 100%, with both 'size' and 'index' fully documented including defaults, bounds, and descriptions. The description's phrase 'optional pagination' adds no extra meaning beyond what the schema already provides, so the baseline of 3 applies.

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

Purpose5/5

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

The description uses the specific verb 'List' and resource 'blackout windows', clearly identifying the tool's function. This distinguishes it from sibling tools like get_blackout, create_blackout, and delete_blackout. The mention of 'optional pagination' adds relevant detail without obscuring the core purpose.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. The description does not mention using get_blackout for individual blackout details or create_blackout for creating windows. The only hint is 'optional pagination', which is more of a parameter feature than usage context, leaving the agent without explicit selection criteria.

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

list_engine_groupsB

List engine groups with optional pagination

ParametersJSON Schema
NameRequiredDescriptionDefault
sizeNoResults per page (default: 50, max: 1000)
indexNoPage index (0-based, default: 0)

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description must carry the burden of behavioral disclosure. It only says 'List engine groups with optional pagination' but does not explain behavior such as default page size, max page size, response format, sorting, or whether it returns a full list or only metadata. The read-only nature is implied but not stated.

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

Conciseness5/5

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

The description is a single, front-loaded sentence that conveys the core action and resource without unnecessary repetition. It is concise and to the point, with no wasted words.

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

Completeness3/5

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

For a simple list tool with two optional parameters and no output schema, the description is minimally adequate. It identifies the resource and mentions pagination, but it does not describe the return value or any response structure, which would be helpful given the absence of an output schema.

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

Parameters3/5

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

Schema description coverage is 100%, with both size and index parameters fully documented in the schema. The description adds minimal meaning by saying 'optional pagination', which merely reinforces that pagination is optional without providing additional semantic detail beyond the schema.

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

Purpose4/5

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

The description clearly states the action ('List') and the resource ('engine groups'), making the tool's purpose immediately understandable. However, it does not explicitly differentiate from sibling tools like list_engines or get_engine_group, relying on the name to imply the distinction.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It neither mentions scenarios where this tool is appropriate nor points to sibling tools for different use cases (e.g., getting a single engine group via get_engine_group).

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

list_enginesB

List registered scan engines with optional pagination

ParametersJSON Schema
NameRequiredDescriptionDefault
sizeNoResults per page (default: 50, max: 1000)
indexNoPage index (0-based, default: 0)

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states the list operation and optional pagination, but doesn't explicitly confirm read-only behavior, return format, or any side effects. This is minimal behavioral transparency.

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

Conciseness5/5

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

The description is one concise sentence with no redundant words. The verb and resource are front-loaded, and every word contributes to the meaning.

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

Completeness3/5

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

While the tool is simple and parameters are well-covered by the schema, the description omits the return format or list of engine fields, and doesn't differentiate from similar list tools. Given no output schema and no annotations, the description leaves some gaps in fully understanding the tool's behavior and output.

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

Parameters3/5

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

The schema already fully describes both parameters (size and index) with defaults and bounds. The description adds only 'optional pagination', which provides no additional semantic detail beyond the schema.

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

Purpose5/5

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

The description clearly identifies the action ('List') and the resource ('registered scan engines'), and mentions pagination as an optional feature. This distinguishes it from sibling tools like get_engine (single engine) and list_engine_groups (groups).

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives such as get_engine or list_engine_groups. There is no mention of exclusions, context, or comparison with sibling list tools.

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

list_filesA

List all files for an application (macros, traffic files, selenium scripts, etc.)

ParametersJSON Schema
NameRequiredDescriptionDefault
sizeNoResults per page (default: 50, max: 1000)
indexNoPage index (0-based, default: 0)
app_idYesThe unique identifier of the application

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description carries the full burden for behavioral disclosure. It only states 'List all files,' which implies a non-destructive read but does not mention pagination (size/index), ordering, return format, or required permissions. It adds context about file types (macros, traffic files, selenium scripts) but remains thin on 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.

Conciseness5/5

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

The description is a single, front-loaded sentence (about 13 words) that efficiently conveys the action, scope, and examples. Every word adds value, and there is no redundancy or filler.

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

Completeness4/5

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

For a simple list tool with 3 parameters and no output schema, the description is mostly complete. It explains what resource is listed and gives examples of file types, and the schema thoroughly documents pagination. However, it does not explicitly state that the operation is read-only or what the response contains (metadata vs. content), which would enhance completeness.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3. The description adds value beyond the schema by explaining what kinds of files are meant ('macros, traffic files, selenium scripts, etc.'), giving semantic context to the resource. It does not duplicate parameter details, but the file-type examples provide helpful disambiguation.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'List all files for an application' with a specific verb (List), resource (files), and scope (for an application). It also distinguishes from siblings like get_file and create_file by specifying the listing action and the application context.

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

Usage Guidelines3/5

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

The description implies when to use the tool (when you need to list a specific application's files), but it does not explicitly state exclusions or alternatives such as 'use get_file to retrieve a specific file' or 'use list_apps to view applications.' Clear context is present, but no when-not-to-use guidance is given.

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

list_reportsC

List generated reports with optional pagination

ParametersJSON Schema
NameRequiredDescriptionDefault
sizeNoResults per page (default: 50, max: 1000)
indexNoPage index (0-based, default: 0)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full burden. It states 'List' which implies a read operation, but it does not disclose important behaviors such as whether results are sorted, whether the default page size is 50, or whether any filtering is implied. The optional pagination is mentioned but not elaborated.

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

Conciseness5/5

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

A single, front-loaded sentence with no extraneous words. Every word contributes to the core meaning, making it highly efficient.

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

Completeness2/5

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

For a simple list tool, the description lacks critical context: no output schema, no mention of what fields are returned, and no indication of prerequisites (e.g., whether reports must be generated first). Given the sibling tools, more context would help an agent know when to invoke this tool and what to expect.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema fully documents the size and index parameters. The description adds minimal value beyond hinting at 'optional pagination' but does not introduce new meaning or constraints.

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

Purpose4/5

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

The description clearly states the tool lists generated reports, which is a specific verb+resource combination. It distinguishes itself from siblings like generate_report and get_report_status, though it could be clearer about what constitutes a 'generated report'.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool vs alternatives. There are many list_* siblings, and the description does not explain scenarios where list_reports is preferred (e.g., enumerating available reports vs checking a specific status).

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

list_scan_configsB

List scan configurations with optional pagination

ParametersJSON Schema
NameRequiredDescriptionDefault
sizeNoResults per page (default: 50, max: 1000)
sortNoSort field and direction (e.g., 'name,ASC' or 'submit_time,DESC')
indexNoPage index (0-based, default: 0)

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states only 'List scan configurations with optional pagination' but does not disclose default behavior (e.g., default page size, default sort order, whether all configs are returned or only those accessible to the user). The term 'list' implies read-only, but this is not explicit, and no details about response format, errors, or rate limits 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.

Conciseness5/5

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

The description is a single, front-loaded sentence that communicates the core function and a key option (pagination) without any unnecessary words. It is appropriately concise for a simple list operation and follows a clear subject-verb-object structure.

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

Completeness3/5

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

Given the tool's simplicity (3 optional parameters, no output schema, no annotations), the description is minimally adequate but lacks important context. It does not mention the sort parameter, which is part of the schema, nor does it clarify default pagination behavior or differentiate from similar listing tools. For a list operation, more detail about return values (even without an output schema) would improve completeness.

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

Parameters3/5

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

The input schema has 100% parameter description coverage, with each parameter (size, sort, index) having its own description. The tool description adds no additional meaning beyond the schema; it merely mentions 'optional pagination' which is already implied by the size and index parameters. Thus, 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.

Purpose5/5

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

The description uses a specific verb+resource combination: 'List scan configurations' clearly indicates this tool retrieves scan configuration records. It distinguishes from sibling tools like list_scans (which lists scans, not scan configs) and get_scan_config (which retrieves a single config). The phrase 'with optional pagination' further clarifies scope.

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

Usage Guidelines2/5

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

The description provides no explicit guidance on when to use this tool versus alternatives. While the name implies a listing operation, it does not mention that get_scan_config is for single items or that create/update/delete are for mutations. No exclusions or alternative recommendations are given.

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

list_scansB

List scans with optional pagination, sorting, and filtering

ParametersJSON Schema
NameRequiredDescriptionDefault
sizeNoResults per page (default: 50, max: 1000)
sortNoSort field and direction (e.g., 'name,ASC' or 'submit_time,DESC')
indexNoPage index (0-based, default: 0)

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It mentions optional pagination, sorting, and filtering, which are useful behavioral details. However, it does not explicitly confirm that the operation is read-only, describe the response format, or disclose any limitations or side effects. For a list operation, this is adequate but not rich.

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

Conciseness5/5

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

The description is a single, front-loaded sentence: 'List scans with optional pagination, sorting, and filtering'. Every word adds value, with no redundancy or filler. It is concise and structurally effective.

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

Completeness3/5

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

The tool is a simple list operation with three optional parameters and no output schema. The description covers the core functionality and parameter options, but it does not mention what the response looks like, how to interpret results, or specific domain context. Given the simplicity, this is acceptable but leaves some room for improvement.

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

Parameters3/5

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

The input schema has 100% description coverage for all three parameters (size, sort, index). The description references these concepts (pagination, sorting, filtering) but adds no additional meaning or syntax details beyond what the schema already provides. Per the baseline for high schema coverage, a score of 3 is appropriate.

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

Purpose4/5

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

The description clearly states the action (List) and the resource (scans). It distinguishes the tool's purpose from siblings like get_scan or submit_scan, though it does not explicitly exclude other list tools. The mention of pagination, sorting, and filtering adds scope.

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

Usage Guidelines2/5

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

No guidance is given on when to use this tool versus alternatives such as get_scan (for a single scan) or other list tools (list_vulnerabilities, list_engines). The description only says 'List scans', which implies the use case but does not provide explicit context or exclusions.

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

list_schedulesA

List scan schedules with optional pagination

ParametersJSON Schema
NameRequiredDescriptionDefault
sizeNoResults per page (default: 50, max: 1000)
indexNoPage index (0-based, default: 0)

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It only says 'List' and 'optional pagination', which adds little beyond the name and schema. It does not explain what the response looks like, whether results are ordered, or any side effects. This is a significant gap for a tool with zero annotations.

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

Conciseness5/5

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

The description is a single, front-loaded sentence that conveys the core purpose and optional pagination without waste. It is appropriately concise for the simplicity of the tool.

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

Completeness3/5

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

The description covers the essential action and pagination, and the schema handles parameter details. However, it does not describe the return structure, or clarify if any default filtering applies. For a list tool with no output schema and no annotations, this is adequate but leaves gaps.

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

Parameters3/5

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

The input schema provides 100% coverage with descriptions for both 'size' and 'index', including defaults and constraints. The description's mention of 'pagination' adds minimal context since the schema already makes this clear. Baseline 3 applies.

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

Purpose5/5

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

The description clearly states the action ('List') and resource ('scan schedules'), distinguishing it from sibling tools like get_schedule, create_schedule, update_schedule, and delete_schedule. It also mentions optional pagination, adding scope.

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

Usage Guidelines3/5

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

The description implies this is the list operation for schedules, and the pagination mention suggests when to use size/index. However, it does not explicitly state when to prefer this over get_schedule or mention any exclusions or alternative tools.

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

list_vulnerabilitiesC

List vulnerabilities with optional pagination, sorting, and filtering

ParametersJSON Schema
NameRequiredDescriptionDefault
sizeNoResults per page (default: 50, max: 1000)
sortNoSort field and direction (e.g., 'name,ASC' or 'submit_time,DESC')
indexNoPage index (0-based, default: 0)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full burden, but it offers little beyond 'List vulnerabilities' and an unsupported 'filtering' claim. It does not explicitly confirm that the operation is read-only, describe the return format, or note any behavioral constraints such as pagination defaults already in 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.

Conciseness4/5

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

The description is a single, front-loaded sentence with no filler. However, it loses a point because the inclusion of 'filtering' is inaccurate and not supported by the schema, making the conciseness slightly misleading.

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

Completeness3/5

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

For a simple list tool with fully described optional parameters, the description is nearly adequate, but the unsupported 'filtering' claim and lack of any mention of the response structure (no output schema) leave gaps. An agent could attempt to pass a filter parameter and fail.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all three parameters. The description groups size/index as pagination and sort as sorting, adding minimal high-level context, but the 'filtering' mention is misleading because no filter parameter exists.

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

Purpose4/5

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

The description clearly states the tool lists vulnerabilities, using a specific verb and resource, and mentions optional pagination, sorting, and filtering. It is distinct from siblings like get_vulnerability or update_vulnerability, but the claim of 'filtering' is not supported by any parameter in the schema, which slightly undermines accuracy.

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

Usage Guidelines2/5

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

The description gives no guidance on when to use this tool versus alternatives. It does not mention that get_vulnerability retrieves a single vulnerability or that list_vulnerability_comments handles comments, leaving the agent without 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.

list_vulnerability_commentsA

List all comments on a vulnerability

ParametersJSON Schema
NameRequiredDescriptionDefault
vulnerability_idYesThe unique identifier of the vulnerability

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations, the description carries the full burden. It only states the operation without disclosing the read-only nature, return format, pagination, or any side effects. This is insufficient for a tool with no output schema.

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

Conciseness5/5

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

A single, front-loaded sentence with no filler. Every word adds meaning; there is no unnecessary detail.

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

Completeness3/5

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

For a simple tool with one param and no output schema, the description is functional but incomplete—it does not explain what a comment includes, whether results are paginated, or any ordering. Given missing annotations, more context would be beneficial.

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

Parameters3/5

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

The schema fully documents vulnerability_id (100% coverage), so the description adds little parameter-specific value. It reinforces that comments are associated with a vulnerability but provides no additional format or behavior details.

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

Purpose5/5

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

The description uses a specific verb ('List'), identifies the resource ('comments on a vulnerability'), and clarifies scope ('all'). This clearly distinguishes it from sibling tools like add_vulnerability_comment and get_vulnerability.

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

Usage Guidelines3/5

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

The description implies the tool's purpose but provides no explicit guidance on when to use it over alternatives. It does not mention that add_vulnerability_comment is for adding comments, nor does it state any exclusions or conditions.

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

manage_app_tagsB

Add or remove tags from an application

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesWhether to add or remove the tag
app_idYesThe unique identifier of the application
tag_idYesThe unique identifier of the tag

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It does state that the tool adds or removes tags, which is a clear mutation operation, but it does not mention idempotency, permissions, effects on existing tags, or what happens when adding/removing an already-associated tag. It is minimally transparent but not richly so.

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

Conciseness5/5

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

The description is a single, concise sentence that immediately conveys the core function. It is front-loaded and contains no unnecessary words or repetition, earning it a perfect score for efficiency.

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

Completeness3/5

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

The tool has three fully documented parameters and no output schema, making it a simple mutation operation. The description is sufficient for understanding the action, but it lacks any mention of the expected response or side effects, which could leave an agent unsure about what to expect after invocation. It is adequate but not comprehensive.

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

Parameters3/5

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

Schema description coverage is 100% with each parameter (action, app_id, tag_id) clearly documented. The description itself adds no additional parameter semantics beyond what the schema already provides, so it meets the baseline of 3 but does not exceed it.

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

Purpose4/5

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

The description clearly states the action ('Add or remove tags') and the resource ('an application'), making the tool's purpose immediately understandable. It distinguishes itself from sibling tools because no other tool in the list appears to manage tags, though it does not explicitly call out this differentiation.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives, such as update_app or other application-related tools. It gives no context on scenarios where tag management is appropriate or where it should be avoided.

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

submit_scanA

Submit a new scan based on a scan configuration

ParametersJSON Schema
NameRequiredDescriptionDefault
scan_config_idYesThe ID of the scan configuration to use

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, and the description only says 'Submit a new scan.' It does not disclose whether submission is asynchronous, whether specific permissions are needed, or what the response contains, leaving the agent without important 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.

Conciseness5/5

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

The description is a single concise sentence, front-loaded with the action and resource, with no unnecessary filler or repetition.

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

Completeness3/5

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

For a simple one-parameter tool with no output schema and no annotations, the description is minimally adequate for selecting the tool, but it lacks details about return values, execution flow, or side effects.

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

Parameters3/5

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

The schema fully documents the single parameter scan_config_id with its UUID format and description. The description's phrase 'based on a scan configuration' adds no new meaning beyond the schema, so it meets the baseline but does not exceed it.

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

Purpose5/5

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

The description clearly identifies the action ('Submit'), the resource ('a new scan'), and the basis ('a scan configuration'), which distinguishes it from sibling tools like control_scan or list_scans.

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

Usage Guidelines3/5

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

The description implies usage when launching a scan from an existing configuration, but it offers no explicit guidance on when to prefer it over alternatives or any prerequisites.

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

update_appA

Update an existing application

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoNew name for the application
app_idYesThe unique identifier of the application
descriptionNoNew description for the application

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only restates that an update occurs and does not explain whether updates are partial or full, how nonexistent app IDs are handled, required permissions, or what response is returned. This is a notable transparency gap for a mutation tool.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with zero wasted words. It immediately communicates the action and target resource, making it efficient and easy to parse.

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

Completeness3/5

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

The tool has a simple schema with a required app_id and optional fields, and the description covers the basic action. However, with no output schema and no annotations, details about return values, error behavior, and side effects are absent. It is minimally viable but not fully complete.

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

Parameters3/5

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

Schema description coverage is 100%, with each parameter (app_id, name, description) already documented in the input schema. The tool description adds no additional meaning beyond the schema, so the baseline of 3 is appropriate.

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

Purpose5/5

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

The description 'Update an existing application' uses a specific verb and resource, clearly identifying the tool's purpose. The word 'existing' distinguishes it from create_app and delete_app, and the resource name differentiates it from update_vulnerability, update_schedule, and other update siblings.

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

Usage Guidelines3/5

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

The description implies usage when an existing application needs to be modified, but it does not explicitly state when to use this tool over alternatives or mention exclusions. There is no guidance on preferring this over create_app or delete_app, leaving context implied rather than explicit.

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

update_blackoutC

Update an existing blackout window

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoNew name for the blackout window
stopNoNew stop time (ISO 8601)
startNoNew start time (ISO 8601)
enabledNoEnable or disable the blackout
blackout_idYesThe unique identifier of the blackout window

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It only states the action of updating without mentioning idempotency, partial vs full replacement, required fields, or return behavior. This is a significant gap for a mutation tool.

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

Conciseness5/5

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

The description is a single, direct sentence with no unnecessary words. It is front-loaded and perfectly concise, serving its purpose efficiently.

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

Completeness2/5

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

The tool has 5 parameters and no annotations or output schema, yet the description only provides the basic action. It omits essential details about update semantics, response format, and side effects, making it inadequate for fully understanding the tool.

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

Parameters3/5

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

The input schema provides descriptions for all 5 parameters, so the baseline is 3. The description adds no additional parameter context beyond what the schema already covers, but the schema itself is sufficient.

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

Purpose4/5

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

The description clearly states the action ('Update') and the resource ('an existing blackout window'), and it distinguishes from sibling tools like create_blackout and delete_blackout by explicitly targeting an existing entity. However, it does not specify which aspects can be updated, which would enhance clarity.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives such as create_blackout or delete_blackout. It implies that the blackout must already exist, but it lacks explicit context or exclusions, leaving the agent to infer usage.

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

update_scan_configC

Update an existing scan configuration

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoNew name for the scan configuration
descriptionNoNew description for the scan configuration
scan_config_idYesThe unique identifier of the scan configuration

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure, but it only says 'update.' It does not explain whether the update is partial or full, how missing configs are handled, or any side effects. For a mutation tool, this is a significant gap.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no redundancy or wasted words. It directly states the core function.

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

Completeness2/5

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

The tool has no output schema and minimal annotation support. The description does not cover important context such as update semantics (merge vs replace), required permissions, error behavior, or relation to get_scan_config / create_scan_config. This leaves significant gaps for an agent trying to invoke it correctly.

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

Parameters3/5

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

Schema coverage is 100%, so the schema fully documents each parameter (scan_config_id, name, description). The description adds no extra meaning beyond the purpose, but the schema already provides clear semantics, so baseline 3 is appropriate.

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

Purpose4/5

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

The description clearly states the action (update) and the resource (scan configuration), distinguishing it from other update tools by specifying the target. However, it is fairly generic and does not mention what aspects can be updated, though the schema covers that.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives like create_scan_config or delete_scan_config. The description does not mention any prerequisites or context for when an update is appropriate.

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

update_scheduleB

Update an existing scan schedule

ParametersJSON Schema
NameRequiredDescriptionDefault
enabledNoEnable or disable the schedule
frequencyNoNew frequency
first_startNoNew start time (ISO 8601)
schedule_idYesThe unique identifier of the schedule

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It only says 'update' without specifying whether this is a partial or full update, what side effects occur (e.g., affecting running scans), or error behavior. This is insufficient for a mutation tool, as an agent cannot infer the exact impact.

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

Conciseness5/5

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

The description is a single sentence, front-loaded with the key action, and contains zero filler words. It is appropriately sized for the tool's simplicity and does not waste the agent's attention.

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

Completeness2/5

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

The description is minimal and relies entirely on the schema for context. It does not clarify update semantics (partial vs. full), what happens if the schedule_id does not exist, or the result of a successful update. Given there are no annotations and no output schema, this is incomplete for a mutation tool.

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

Parameters3/5

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

The input schema has 100% description coverage for all four parameters, each with clear descriptions (e.g., 'Enable or disable the schedule', 'New frequency'). The description text adds no additional parameter semantics beyond the schema, so the baseline of 3 is appropriate.

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

Purpose5/5

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

The description 'Update an existing scan schedule' clearly identifies the action (update), the resource (scan schedule), and the scope (existing), which distinguishes it from sibling tools like create_schedule, delete_schedule, and list_schedules. The verb and resource are specific and unambiguous.

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

Usage Guidelines3/5

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

The phrase 'existing scan schedule' implies the tool is used when a schedule has already been created and needs modification, and the required schedule_id parameter reinforces this. However, it does not explicitly state when to use this tool over create or delete, nor any prerequisites or conditions, leaving usage guidance largely implicit.

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

update_vulnerabilityA

Update the status or severity of a vulnerability

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNoNew status for the vulnerability
severityNoNew severity for the vulnerability
vulnerability_idYesThe unique identifier of the vulnerability

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the full behavioral disclosure burden. The description merely restates the core action without mentioning side effects, permission requirements, partial update behavior, or any operational constraints. This is a significant gap for a mutation tool.

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

Conciseness5/5

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

The description is a single concise sentence that front-loads the verb and resource. No wasted words or redundancy.

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

Completeness3/5

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

The tool is relatively simple, but the description lacks essential context such as what happens when neither status nor severity is provided, whether the update is partial or full, and what the return value is. Given no output schema and no annotations, the description is minimally adequate but leaves gaps for edge cases.

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

Parameters3/5

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

Schema coverage is 100% with each parameter described, so the baseline is 3. The description adds no extra semantic meaning beyond what the schema already provides, merely naming the two optional fields without elaboration.

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

Purpose5/5

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

The description uses a specific verb ('update') and resource ('vulnerability'), and clearly states the two updatable attributes (status, severity). It distinguishes itself from sibling tools like get_vulnerability, list_vulnerabilities, and comment tools by specifying its update operation.

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

Usage Guidelines3/5

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

The description implies usage (to update a vulnerability's status or severity) but provides no explicit guidance on when to use this tool versus alternatives. It does not mention any prerequisites or selection criteria, which leaves the agent to infer from the tool name.

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

upload_file_contentA

Upload binary file content. The file metadata must be created first using create_file.

ParametersJSON Schema
NameRequiredDescriptionDefault
app_idYesThe unique identifier of the application
file_idYesThe unique identifier of the file
content_base64YesBase64-encoded file content

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden. It discloses the prerequisite (metadata must exist), but does not describe what happens on success, failure, or whether the upload is overwriting or appending. No return type is mentioned, and there is no output schema to compensate.

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

Conciseness5/5

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

Two concise sentences with the main action in the first sentence and a key usage note in the second. No fluff or repetition of schema details.

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

Completeness4/5

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

For a simple 3-parameter upload with no nested structures and full schema coverage, the description is mostly complete. The prerequisite adds important context. It lacks information about return values or error handling, but the low complexity keeps the gap small.

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

Parameters3/5

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

Schema coverage is 100%, and the schema already describes each parameter (app_id, file_id, content_base64). The description adds a small contextual note about file_id needing to exist, but does not expand on format or encoding requirements beyond the schema.

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

Purpose5/5

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

The description uses a specific verb ('Upload') and resource ('binary file content'), clearly distinguishing from siblings like create_file (metadata creation) and download_file (retrieval). The second sentence clarifies the dependency on create_file, reinforcing its role.

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

Usage Guidelines4/5

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

States a clear prerequisite ('file metadata must be created first using create_file'), giving users a direct pointer to when to use this tool versus create_file. It does not explicitly mention alternatives like update_file or download_file, but the dependency is enough for basic usage.

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.

  1. 56 tool updatesv1.0.0
    • First observedadd_vulnerability_comment
    • First observedconfigure_csrf_handling
    • First observedconfigure_form_auth
    • First observedconfigure_macro_auth
    • First observedconfigure_oauth
    • First observedconfigure_session_handling
    • First observedconfigure_token_replacement
    • First observedconfigure_traffic_auth
    • First observedcontrol_scan
    • First observedcreate_app
    • First observedcreate_blackout
    • First observedcreate_file
    • First observedcreate_scan_config
    • First observedcreate_schedule
    • First observeddelete_app
    • First observeddelete_blackout
    • First observeddelete_file
    • First observeddelete_scan
    • First observeddelete_scan_config
    • First observeddelete_schedule
    • First observeddownload_file
    • First observedgenerate_report
    • First observedget_app
    • First observedget_blackout
    • First observedget_engine
    • First observedget_engine_group
    • First observedget_file
    • First observedget_report_status
    • First observedget_scan
    • First observedget_scan_config
    • First observedget_scan_config_options
    • First observedget_scan_engine_events
    • First observedget_scan_execution_details
    • First observedget_schedule
    • First observedget_vulnerability
    • First observedget_vulnerability_discoveries
    • First observedlist_apps
    • First observedlist_blackouts
    • First observedlist_engine_groups
    • First observedlist_engines
    • First observedlist_files
    • First observedlist_reports
    • First observedlist_scan_configs
    • First observedlist_scans
    • First observedlist_schedules
    • First observedlist_vulnerabilities
    • First observedlist_vulnerability_comments
    • First observedmanage_app_tags
    • First observedsearch
    • First observedsubmit_scan
    • First observedupdate_app
    • First observedupdate_blackout
    • First observedupdate_scan_config
    • First observedupdate_schedule
    • First observedupdate_vulnerability
    • First observedupload_file_content

TDQS

B3.3/5.0
Disambiguation4/5

Most tools are clearly distinct by resource and action, such as list_apps vs create_app. However, the several scan-related getters (get_scan, get_scan_execution_details, get_scan_engine_events) could cause confusion, and the universal search tool overlaps with list functions.

Naming Consistency4/5

The vast majority follow the verb_noun pattern with snake_case, e.g., list_schedules, create_scan_config. Minor deviations like manage_app_tags and control_scan, while still understandable, break the otherwise consistent CRUD-oriented naming.

Tool Count2/5

With 56 tools, this far exceeds the recommended range of 3-15 and even the borderline 16-25. While the API scope is broad, many tools could be consolidated (e.g., all configure_* authentication tools), making the set feel oversized and harder to navigate.

Completeness5/5

The tool set provides thorough lifecycle coverage across multiple domains: applications, scans, scan configurations, vulnerabilities, schedules, blackouts, files, reports, and auth settings. CRUD operations are consistently present, and even edge cases like scan control and file uploads are included, leaving no major gaps.

Maintenance

ActivityInactive
ResponsivenessNo issues

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

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    Provides a Model Context Protocol server implementation that allows AI agents and other MCP clients to programmatically interact with DefectDojo, a vulnerability management tool, for managing findings, products, and engagements.
    11
    15
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    A Model Context Protocol (MCP) server for interacting with the Intigriti bug bounty platform's Researcher API. It enables AI assistants to manage bug bounty programs, submissions, and research workflow.
    8
    4
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    A remote MCP server that exposes mock application security testing data (applications, scans, issues) for LLM clients to query security posture using natural language.
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    A unified MCP server for Rapid7's security platform, exposing InsightVM (vulnerability management), InsightIDR (SIEM/investigations), and Metasploit Pro (pentest telemetry) as tools for Claude, Cursor, and any MCP-compatible LLM client.
    6
    MIT

Latest Blog Posts

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/wagonbomb/InsightAppSec-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server