Skip to main content
Glama

HTB App MCP

Local MCP server for Hack The Box App services via the HTB API (primarily v4, with machine flag submission on v5) at:

https://labs.hackthebox.com/api/v4

This project does not use pyhackthebox: the client talks directly to HTB via httpx and authenticates with:

Authorization: Bearer <HTB_APP_TOKEN>

Do not confuse this with the official HTB CTF MCP at mcp.hackthebox.ai/v1/ctf/mcp/. This server is for HTB App/Labs content: Machines, Challenges, Sherlocks, Fortresses, Starting Point, Seasonal, and Pro Labs.

Current status

  • Recommended transport: local Streamable HTTP MCP on http://127.0.0.1:8000/mcp.

  • HTTP is stateless by default: restart the server without your MCP client getting stuck on Session not found.

  • Recommended auth: MCP header Authorization: Bearer <HTB_APP_TOKEN>, no .env needed.

  • Fallback: stdio + .env / environment variables.

  • Exposed tools: 60 (plus the htb://service-map resource).

Related MCP server: htb-mcp

Setup

Prerequisites:

  • Python 3.11+

  • uv

  • HTB App Token from app.hackthebox.com

Install dependencies:

uv sync

Start the server:

uv run htb-app-mcp --transport http --host 127.0.0.1 --port 8000

Configure your MCP client:

{
  "mcpServers": {
    "htb-app-mcp": {
      "url": "http://127.0.0.1:8000/mcp",
      "type": "http",
      "headers": {
        "Authorization": "Bearer <HTB_APP_TOKEN>"
      }
    }
  }
}

In this mode the token comes from the MCP client and is forwarded to HTB only. No .env required.

Restarting the server

HTTP is stateless by default, avoiding the Session not found issue. You can restart:

uv run htb-app-mcp --transport http --host 127.0.0.1 --port 8000

and the MCP client can reconnect without starting a new chat. If the client still uses an old connection, reload the MCP servers on the client side.

For protocol debugging you can force stateful mode:

uv run htb-app-mcp --transport http --stateful-http

Alternative mode: stdio

Stdio is useful when an MCP host wants to launch the local process directly.

Config:

{
  "mcpServers": {
    "htb-app-mcp": {
      "command": "uv",
      "args": ["--directory", "D:\\Sources\\htb-app-mcp", "run", "htb-app-mcp"],
      "env": {
        "HTB_API_TOKEN": "<HTB_APP_TOKEN>"
      }
    }
  }
}

You can also use .env as a local fallback:

cp .env.example .env
# edit .env and set HTB_API_TOKEN (or API_TOKEN)
uv run htb-app-mcp

.env is gitignored.

Tools

Area

Tools

Account

htb_whoami, htb_user_profile

VPN

htb_connection_status, htb_vpn_servers, htb_switch_vpn_server, htb_download_ovpn

Search

htb_search, htb_api_get, htb_api_post

Machines

htb_list_machines, htb_machine_info, htb_active_machine, htb_active_virtual_machine, htb_recommended_machines, htb_machine_tasks

Machine actions

htb_spawn_machine, htb_stop_machine, htb_extend_machine, htb_reset_machine, htb_submit_machine_flag

Challenges

htb_list_challenges, htb_challenge_info, htb_challenge_categories, htb_download_challenge

Challenge actions

htb_start_challenge, htb_stop_challenge, htb_start_container, htb_stop_container, htb_submit_challenge_flag

Sherlocks

htb_list_sherlocks, htb_sherlock_info, htb_sherlock_tasks, htb_sherlock_progress, htb_sherlock_play, htb_start_sherlock_vm, htb_stop_sherlock_vm, htb_reset_sherlock_vm, htb_download_sherlock, htb_submit_sherlock_task_flag

Fortresses

htb_list_fortresses, htb_fortress_info, htb_fortress_flags, htb_submit_fortress_flag, htb_reset_fortress

Seasonal

htb_list_seasons, htb_active_season_machine, htb_season_machines, htb_season_rewards, htb_season_user_rank, htb_season_user_ranks, htb_season_leaderboard, htb_season_top_leaderboard

Starting Point

htb_starting_point_progress, htb_starting_point_tier, htb_submit_machine_task

Pro Labs

htb_list_prolabs, htb_prolab_overview, htb_prolab_machines, htb_prolab_flags, htb_submit_prolab_flag

Resource:

htb://service-map

Prompt:

htb_target_workflow

HTB endpoints covered

The server uses verified real endpoints on labs.hackthebox.com/api/v4 (with machine flag submission on api/v5), including:

GET  /user/info
GET  /connection/status
GET  /user/connection/status
GET  /connections/servers?product=...
POST /connections/servers/switch/{vpnId}
GET  /access/ovpnfile/{vpnId}/0
GET  /access/ovpnfile/{vpnId}/0/1

GET  /search/fetch

GET  /machine/paginated
GET  /machine/profile/{machineSlug}
GET  /machine/active
GET  /api/v5/virtual_machine/active
GET  /machine/recommended
GET  /machines/{machineId}/tasks
POST /vm/spawn
POST /vm/terminate
POST /vm/extend
POST /vm/reset
POST /vm/reset/vote
POST /vm/reset/vote/accept
POST /api/v5/machine/own

GET  /challenges
GET  /challenge/info/{challengeSlug}
GET  /challenge/categories/list
GET  /challenges/{challengeId}/download_link
POST /container/start
POST /container/stop
POST /challenge/own

GET  /sherlocks
GET  /sherlocks/{sherlockId}/info
GET  /sherlocks/{sherlockId}/tasks
GET  /sherlocks/{sherlockId}/progress
GET  /sherlocks/{sherlockId}/play
POST /challenge/start/vm/{sherlockId}
POST /challenge/reset/vm/{sherlockId}
GET  /sherlocks/{sherlockId}/download_link
POST /sherlocks/{sherlockId}/tasks/{taskId}/flag

GET  /fortresses
GET  /fortress/{fortressId}
GET  /fortress/{fortressId}/flags
POST /fortress/{fortressId}/flag
POST /fortress/{fortressId}/reset

GET  /season/list
GET  /season/machine/active
GET  /season/machines/{seasonId}
GET  /season/rewards/{seasonId}
GET  /season/user/rank/{seasonId}
GET  /season/user/{userId}/ranks
GET  /season/{players|teams}/leaderboard
GET  /season/{players|teams}/leaderboard/top/{seasonId}

GET  /sp/tiers/progress

GET  /prolabs
GET  /prolab/{prolabId}/overview
GET  /prolab/{prolabId}/machines
GET  /prolab/{prolabId}/flags
POST /prolab/{prolabId}/flag

Some older endpoints documented online now return 404 (e.g. /machine/list, /machines, /starting-point/machines).

Downloads

Supported downloads:

  • OVPN: htb_download_ovpn

  • Challenge ZIP: htb_download_challenge

  • Sherlock ZIP: htb_download_sherlock

Defaults:

  • directory: downloads

  • ZIP password: hackthebox

  • ZIP extraction: enabled for challenges and Sherlocks

  • ZIP downloads serialized with a minimum interval to reduce 429 Too Many Requests

Change the directory:

export HTB_DOWNLOAD_DIR="D:/Sources/htb-app-mcp/downloads"

Environment variables

| Variable | Default | Usage | |---|---|---:|---| | HTB_API_TOKEN | empty | HTB token for stdio or HTTP fallback | | API_TOKEN | empty | Supported alias for compatibility | | HTB_TOKEN | empty | Supported alias | | HTB_API_BASE_URL | https://labs.hackthebox.com/api/v4 | Override base API URL | | HTB_DOWNLOAD_DIR | downloads | Download directory | | HTB_CLEANUP_DOWNLOADS_ON_EXIT | 1 | Wipe download dir contents on shutdown; 0 to keep | | HTB_MAX_RETRIES | 3 | Retries for transient HTTP failures (429/5xx, connect errors) | | HTB_RETRY_BACKOFF | 0.5 | Base seconds for exponential backoff + jitter | | HTB_RETRY_BACKOFF_MAX | 20 | Cap for a single backoff wait (seconds) | | HTB_TIMEOUT | 30 | HTTP timeout to HTB in seconds | | HTB_LOAD_DOTENV | 1 | Set to 0 to disable .env loading | | HTB_MCP_TRANSPORT | stdio | stdio, http, streamable-http | | HTB_MCP_HOST | 127.0.0.1 | HTTP bind address | | HTB_MCP_PORT | 8000 | HTTP port | | HTB_MCP_PATH | /mcp | MCP HTTP path | | HTB_MCP_STATELESS_HTTP | 1 in HTTP mode | HTTP stateless by default | | HTB_MCP_JSON_RESPONSE | 0 | Return JSON responses where supported | | HTB_MCP_LOG_LEVEL | INFO | Server log level | | HTB_MCP_VERBOSE_HTTP | 0 | Set to 1 to re-enable verbose HTTPX logging | | HTB_DOWNLOAD_MIN_INTERVAL | 1.0 | Minimum seconds between ZIP downloads | | HTB_MCP_GRACEFUL_SHUTDOWN_TIMEOUT | 5 | Graceful shutdown timeout in seconds | | HTB_MCP_WINDOWS_SELECTOR_EVENT_LOOP | 1 | Use selector event loop on Windows |

CLI

uv run htb-app-mcp --help

Main options:

--transport {stdio,http,streamable-http}
--host 127.0.0.1
--port 8000
--path /mcp
--stateless-http
--stateful-http
--json-response
--log-level INFO
--graceful-shutdown-timeout 5

Local validation

Smoke test with direct client:

uv run python tests/smoke_client.py

Smoke test with MCP stdio:

uv run python tests/smoke_mcp.py

Smoke test with MCP HTTP and Authorization header:

uv run python tests/smoke_http.py

Troubleshooting

Session not found

Update the code and restart in default HTTP stateless mode:

uv run htb-app-mcp --transport http --host 127.0.0.1 --port 8000

If the client still holds an old connection, use reload MCP servers on the client side.

404 Not Found on /mcp

Check that:

  • the server is started with --transport http

  • the MCP config points to http://127.0.0.1:8000/mcp

  • HTB_MCP_PATH or --path is not set to something other than /mcp

ConnectionResetError [WinError 10054] on Windows

The HTTP transport forces the selector event loop on Windows to avoid noisy stack traces when an MCP client closes a completed HTTP/SSE connection.

Traceback or ASGI callable returned without completing response on Ctrl+C

Shutdown handling is cross-platform: on Linux/macOS it uses standard Uvicorn signal handling; on Windows it enables the selector event loop only to avoid Proactor-specific noise. In all cases the server filters benign noise from Uvicorn/Starlette when closing HTTP MCP streams with Ctrl+C. For full debug logs, set HTB_MCP_VERBOSE_HTTP=1.

422 Unprocessable Entity

HTB rejects invalid parameters. The server normalizes common cases:

  • Easy -> easy

  • Very Easy -> very-easy

  • unsolved -> incompleted

  • solved -> complete

  • sort_by=difficulty -> user_difficulty for challenges

  • target_type=challenge -> challenges for search

If HTB changes the schema, use htb_api_get to test a read-only endpoint.

403 Forbidden during download

This is not necessarily a bug: HTB may deny access to challenges or files not available for your account plan, tier, status, or permissions.

429 Too Many Requests

You hit the HTB rate limit. The server serializes ZIP downloads, but if an agent requests many consecutive downloads, wait a few minutes or increase:

export HTB_DOWNLOAD_MIN_INTERVAL=2.0

Logs with signed URLs

HTTPX and httpcore logs are silenced by default to avoid printing temporary S3 URLs. For debugging:

export HTB_MCP_VERBOSE_HTTP=1

Do not share verbose logs: they may contain temporary presigned URLs.

Security

  • Keep the HTTP server on loopback (127.0.0.1).

  • Do not commit .env or tokens.

  • Do not paste tokens in logs or the README.

  • Avoid HTB_MCP_VERBOSE_HTTP=1 outside local debugging.

  • Tools like spawn, stop, reset, submit flag, switch VPN have side effects on your HTB account.

API notes

HTB App v4 APIs are not officially stable for external integrations. Most public references are community-maintained or reverse-engineered; HTB may change paths, payloads, or permissions without notice.

Available Tools

60 tools
htb_active_machineA

Return the currently active spawned machine, if one exists.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description discloses the tool's read-only nature and conditional return value. It is straightforward and does not contradict any annotations, though it could mention idempotency or side effects explicitly.

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 13 words, perfectly front-loaded with the purpose. Every word is necessary and there is no redundancy.

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 zero-parameter query tool, the description covers the essential behavior. It could potentially mention the output format or what happens when no machine is active, but it is adequately informative given the tool's simplicity.

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?

The tool has zero parameters and the schema coverage is 100% (vacuously). The description adds nothing about parameters, but the baseline score is 4 for no-parameter tools.

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 returns the currently active spawned machine, using a specific verb and resource. It distinguishes from sibling tools like htb_list_machines or htb_machine_info by focusing on the active machine only.

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 context but provides no explicit guidance on when to use this tool versus alternatives like htb_machine_info or htb_list_machines. It is adequate but lacks explicit when-not or alternative recommendations.

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

htb_active_season_machineB

Return the currently active seasonal machine card.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior3/5

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

Description states it returns a 'card' but does not explain what that entails (e.g., data fields, format, or side effects). With no annotations, the description partially discloses behavior but lacks depth.

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?

Single sentence, no redundancy, and immediately conveys the tool's function. Every word earns its place.

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 zero-parameter tool with no output schema, the description is adequate but minimal. It does not explain the structure of the returned 'card' or any implications of using it.

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?

No parameters exist, and schema coverage is 100%. The description adds value by clarifying what the tool returns, exceeding the schema's silent input.

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?

Description uses a specific verb 'Return' and resource 'active seasonal machine card', clearly indicating the tool's purpose. It distinguishes from siblings such as 'htb_active_machine' and 'htb_season_machines' by focusing on the seasonal aspect.

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 alternatives like 'htb_season_machines' or 'htb_active_machine'. No context about prerequisites or ordering relative to other tools.

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

htb_active_virtual_machineB

Return the active machine or Sherlock VM, if one exists.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.3/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 it returns data, implying a read-only operation. It does not mention authentication requirements, rate limits, or any side effects, 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?

A single sentence that is front-loaded with the key action and resource, containing no unnecessary words or 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?

The description covers the essential purpose for a simple, parameterless tool. However, it lacks details about the return value structure, which could be beneficial for an agent to interpret the output correctly.

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?

With zero parameters and 100% schema coverage, the description adequately explains the tool's functionality. A baseline score of 4 is appropriate as no parameter documentation is needed.

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 returns the active machine or Sherlock VM, with a specific verb and resource. However, it does not differentiate between this and the sibling htb_active_machine, which may cause confusion.

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 htb_active_machine, htb_spawn_machine, or htb_stop_machine. The context for choosing this tool is missing.

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

htb_api_getA

Call a read-only HTB API path for endpoint discovery. Example path: /machine/recommended.

Defaults to API v4. Prefix the path with /api/vN (e.g. /api/v5/...) to target another version.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
params_jsonNo{}

TDQS

A3.6/5.0
Behavior3/5

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

The description declares the tool is read-only, which is a key behavioral trait. It also explains default API version and how to target other versions. However, it does not mention auth requirements, rate limits, or error handling, which would be helpful with no annotations 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 extremely concise with three sentences, each serving a clear purpose. It is front-loaded with the main action and examples, wasting no 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 tool with no output schema and two parameters, the description covers the main purpose and version handling. However, it lacks detail on the optional parameter and the return format, making it incomplete for full agent understanding.

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

Parameters2/5

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

With 0% schema description coverage, the description must compensate but only partially explains the 'path' parameter via an example. The 'params_json' parameter is not mentioned at all, leaving the agent to guess its purpose and usage.

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 is for calling a read-only HTB API path for endpoint discovery, providing an example path. This distinguishes it from write tools like htb_api_post among 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 for endpoint discovery but provides no explicit guidance on when to use this tool versus alternatives. No exclusions or context for when not to use it are given.

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

htb_api_postA

Call a write HTB API path for endpoint discovery or ad-hoc mutations.

Defaults to API v4. Prefix the path with /api/vN to target another version. Example: path=/api/v5/machine/own body_json={"id":395,"flag":"abc"}

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
body_jsonNo{}

TDQS

A4.2/5.0
Behavior3/5

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

No annotations are provided, so the description must convey behavioral traits. It states it's a write operation and defaults to API v4, but does not disclose potential side effects (e.g., submitting flags) or authentication requirements. Basic info is present but incomplete.

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 concise with three sentences and an example. It front-loads the purpose and efficiently conveys versioning and parameter usage without unnecessary text.

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 generic POST tool with two parameters and no output schema, the description covers core usage, version targeting, and an example. It lacks details on response format, authentication, or error handling, but these are not critical for a straightforward tool.

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 0%, so the description must add value. It explains the path parameter's version prefix convention and provides an example for body_json, giving meaningful semantics beyond the bare 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 calls a write HTB API path for endpoint discovery or ad-hoc mutations, distinguishing it from the sibling htb_api_get for read operations. The example reinforces the purpose.

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 specifies usage for 'endpoint discovery or ad-hoc mutations,' providing clear context. It implicitly distinguishes from htb_api_get but lacks explicit when-not-to-use guidance or alternatives.

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

htb_challenge_categoriesB

List challenge categories and ids useful for filtering.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.3/5.0
Behavior2/5

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

The description does not disclose behavioral traits such as read-only nature, authentication requirements, or any side effects. Since no annotations are provided, the description carries the full burden but adds only basic functionality.

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 concise and front-loaded with the core action. Every word adds value without unnecessary elaboration.

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 parameterless tool without output schema, the description covers the essential purpose. It could mention the return format (e.g., list of category objects) to be fully complete, but the current description is sufficient for an agent to understand its function.

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

Parameters4/5

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

The tool has 0 parameters, so the baseline is 4. The description does not need to add parameter meaning, and it correctly omits any misleading param info.

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 'List' and the resource 'challenge categories and ids', indicating the tool returns a list of categories and their IDs. It does not explicitly differentiate from sibling tools like htb_list_challenges, but the distinct resource (categories vs. challenges) provides implicit 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. It does not mention prerequisites, context for use, or situations where it should not be used.

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

htb_challenge_infoC

Return challenge details by id or slug/name.

ParametersJSON Schema
NameRequiredDescriptionDefault
challengeYes

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 bears full responsibility for behavioral disclosure. It only states 'return challenge details', omitting any mention of side effects, error handling, authentication requirements, or rate limits.

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

Conciseness4/5

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

Description is a single sentence with no redundancy. It is appropriately brief but could be more structured (e.g., separated input/output info).

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?

Without an output schema, the vague phrase 'challenge details' does not sufficiently inform the agent about the return value structure. Given the tool's simplicity and many siblings, more completeness is needed.

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 description adds that the 'challenge' parameter accepts an id or slug/name, providing meaning beyond the schema's bare string type. However, it does not explain format, constraints, or what happens if the input is invalid.

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?

Description clearly states verb (return) and resource (challenge details) with identifier specification (by id or slug/name). However, it does not explicitly distinguish from sibling tools like htb_list_challenges, leaving room for ambiguity.

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

Usage Guidelines2/5

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

No guidance provided on when to use this tool versus alternatives such as htb_list_challenges or htb_challenge_categories. The description lacks context about prerequisites or typical use cases.

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

htb_connection_statusB

Return active HTB VPN/lab connections for the authenticated account.

ParametersJSON Schema
NameRequiredDescriptionDefault
include_legacyNo

TDQS

B3.1/5.0
Behavior3/5

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

No annotations are provided, so the description must convey behavioral traits. It correctly implies a read-only operation, but does not disclose whether authentication is required or what 'active' means in terms of connection state. The description is adequate but minimal.

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

Conciseness4/5

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

The description is a single clear sentence with no wasted words. However, it could be slightly improved by incorporating a brief note about the parameter.

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 optional param, no output schema), the description covers the core purpose. Yet, it omits details about the return format and the meaning of 'active', which are moderately important for correct use.

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

Parameters1/5

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

The schema has one parameter (include_legacy) with 0% description coverage, and the description does not mention it. The tool name suggests a simple status query, but the parameter's effect is unexplained, leaving the agent unsure how to use the optional 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 the verb 'Return' and the resource 'active HTB VPN/lab connections', distinguishing it from sibling tools like htb_vpn_servers (list servers) and htb_switch_vpn_server (switch server).

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 vs alternatives, such as htb_download_ovpn for VPN config or htb_whoami for account details. Usage context is only implied.

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

htb_download_challengeB

Download a challenge ZIP by id and optionally extract it under the download directory.

ParametersJSON Schema
NameRequiredDescriptionDefault
extractNo
passwordNohackthebox
overwriteNo
challenge_idYes

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 must disclose behavioral traits. It mentions download and extraction but fails to note side effects (e.g., file overwrite via the 'overwrite' parameter), security or authentication needs, or return behavior. The description is too terse for a mutation-capable 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, highly concise, and directly states the core functionality. All words are purposeful, 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 has moderate complexity (4 params, no output schema), but the description omits important context: authentication requirements, return values (e.g., file path or status), and extraction behavior. It is sufficient for a basic use case but incomplete for reliable agent execution.

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 description adds limited value beyond the schema: it clarifies the role of 'challenge_id' (by ID) and 'extract' (optional extraction). However, it does not explain the 'password' default or 'overwrite' behavior. Given 0% schema description coverage, the description provides minimal compensation, rating a baseline 3.

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 ('Download'), the resource ('a challenge ZIP'), and specifies usage by ID with optional extraction. It effectively distinguishes from sibling tools like htb_challenge_info or htb_download_sherlock by focusing on challenges and the download/extract operation.

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 htb_challenge_info or htb_start_challenge. The description does not specify prerequisites, conditions, or exclusions, leaving the agent without context for appropriate invocation.

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

htb_download_ovpnC

Download an OpenVPN profile for a VPN server id. protocol must be udp or tcp.

ParametersJSON Schema
NameRequiredDescriptionDefault
vpn_idYes
filenameNo
protocolNoudp
overwriteNo

TDQS

C2.7/5.0
Behavior2/5

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

No annotations exist, so the description must carry the full behavioral burden. It does not disclose whether the download overwrites existing files (despite an 'overwrite' parameter), authentication needs, or what happens with the filename parameter. This is insufficient.

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

Conciseness4/5

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

The description is very short (one sentence) with no filler words. It is front-loaded with the action. However, it could benefit from slightly more structure (e.g., listing parameters) without sacrificing conciseness.

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 4 parameters, no output schema, and no annotations, the description is too sparse. It omits important details like the return value format, error handling, or prerequisite steps. This leaves the agent with significant ambiguity.

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

Parameters2/5

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

Schema description coverage is 0%. The description explains the vpn_id implicitly and the 'protocol' parameter, but it does not add meaning for 'filename' or 'overwrite' parameters. Users remain unclear about their purpose beyond schema names.

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 an OpenVPN profile') and the required identifier ('for a VPN server id'). It also specifies the protocol constraint. However, it does not differentiate from sibling tools like htb_vpn_servers or htb_switch_vpn_server, which could cause 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?

The description provides a constraint on protocol ('must be udp or tcp') but offers no guidance on when to use this tool versus alternatives, nor does it mention prerequisites like obtaining a VPN server ID from another tool.

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

htb_download_sherlockC

Download a Sherlock ZIP by id and optionally extract it under the download directory.

ParametersJSON Schema
NameRequiredDescriptionDefault
extractNo
passwordNohackthebox
overwriteNo
sherlock_idYes

TDQS

C2.9/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 disclose behavioral details. It only states download and optional extract, but does not mention side effects (e.g., file system impact), permissions needed, or default behavior for extraction.

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 clear sentence, efficiently conveying the core action. No unnecessary words, though it could be slightly more structured with bullet points.

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 4 parameters and no output schema or annotations, the description is too minimal. It omits important context such as what a Sherlock is, where files are downloaded, and what 'download directory' refers to.

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

Parameters2/5

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

Schema has 0% description coverage. The description only mentions 'by id' and 'optionally extract', ignoring parameters like password, overwrite, and extract. It adds minimal meaning beyond the schema itself.

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

Purpose5/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 (Sherlock ZIP) with scope (by id, optionally extract). It is specific and distinguishes from other sherlock tools like htb_sherlock_info or htb_sherlock_play.

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 alternatives such as htb_sherlock_info or htb_sherlock_play. The description does not mention prerequisites or preferred scenarios.

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

htb_extend_machineB

Extend the running time for a spawned machine VM by id.

ParametersJSON Schema
NameRequiredDescriptionDefault
machine_idYes

TDQS

B3.2/5.0
Behavior2/5

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

No annotations provided; description only says 'extend running time' without detailing side effects, authorization needs, or limits. Does not disclose if multiple extensions are allowed or what happens when time runs out.

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?

Single sentence, no redundant words. Efficiently conveys the core action.

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?

With 1 param and no output schema, the description covers basic purpose but lacks important context (e.g., how much time is extended, error scenarios). Adequate for a simple tool but incomplete for practical use.

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

Parameters2/5

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

Schema coverage is 0%; description adds minimal meaning: 'by id' implies machine identification. Does not explain what machine_id refers to beyond its title.

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?

Description clearly states the action (extend) on a resource (running time of a spawned machine VM by id). It is distinct from sibling tools like spawn, stop, reset, etc.

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 alternatives (e.g., when to extend vs. reset or stop). No context on prerequisites or limitations.

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

htb_fortress_flagsB

List flag metadata for a fortress id.

ParametersJSON Schema
NameRequiredDescriptionDefault
fortress_idYes

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 must carry the full burden. It only says 'List flag metadata' which implies a read operation, but does not disclose what happens with invalid IDs, authentication requirements, or rate limits.

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

Conciseness4/5

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

The description is a single sentence, concise and front-loaded. It wastes no words, but could include a bit more detail without becoming verbose.

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 integer parameter, no output schema), the description is minimally sufficient. However, it lacks any detail about the return format or edge cases, which would aid completeness.

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

Parameters2/5

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

Schema description coverage is 0%, meaning the schema has no descriptions for parameters. The description repeats 'fortress id' but adds no new meaning or constraints beyond the parameter name and type.

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 'List', the resource 'flag metadata', and the scope 'for a fortress id'. It distinguishes from siblings like 'htb_fortress_info' and 'htb_submit_fortress_flag'.

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 (when needing flag metadata for a fortress) but lacks explicit guidance on when not to use or alternatives. For example, no mention that 'htb_fortress_info' might provide different data.

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

htb_fortress_infoC

Return details for a fortress id.

ParametersJSON Schema
NameRequiredDescriptionDefault
fortress_idYes

TDQS

C2.6/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 disclose behavior. It only states 'Return details' without mentioning side effects, permissions, or whether it is read-only. The agent cannot infer safety or constraints beyond the name.

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

Conciseness4/5

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

The description is a single, concise sentence with no wasted words. It is appropriately sized for a simple tool, though it could include more useful details without losing conciseness.

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 zero annotations, no output schema, and zero schema coverage, the description is incomplete. It does not explain what 'details' include, return format, or prerequisites (e.g., needing a valid fortress ID). The agent lacks sufficient context to fully understand the tool's output.

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

Parameters1/5

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

Schema coverage is 0%, meaning the description does not explain the parameter. The schema has a single 'fortress_id' with type integer, but the description repeats 'fortress id' without adding format, source, or behavioral context. No value added 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 'Return details for a fortress id.' clearly states the verb (Return) and resource (details for a fortress id). It is clear but does not explicitly differentiate from sibling tools like htb_list_fortresses, though the singular 'details' implies a specific fortress retrieval.

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, it doesn't suggest using it after retrieving a fortress ID from htb_list_fortresses or indicate it is not for submission actions like htb_submit_fortress_flag.

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

htb_list_challengesC

List challenges. difficulty/status accept friendly aliases; category accepts comma-separated ids.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
todoNo
stateNo
statusNo
keywordNo
sort_byNo
categoryNo
per_pageNo
sort_typeNo
difficultyNo

TDQS

C2.6/5.0
Behavior2/5

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

The description adds that 'difficulty/status accept friendly aliases' and 'category accepts comma-separated ids', which are useful behavioral hints. However, with no annotations and no output schema, critical behaviors like pagination, sorting, response structure, and authentication requirements are omitted.

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 extremely concise at two sentences, with no fluff. However, it sacrifices substance for brevity, leaving many important details unstated.

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

Completeness1/5

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

With 10 parameters, no output schema, and no annotations, the description is grossly incomplete. It fails to explain pagination, filtering, sorting, the return format, or how to use the tool effectively.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It explains that 'difficulty' and 'status' accept friendly aliases and that 'category' accepts comma-separated IDs, but the other 7 parameters (page, per_page, sort_by, sort_type, keyword, state, todo) are completely undocumented.

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 challenges', which is specific and matches the tool name. However, it does not distinguish this tool from siblings like htb_challenge_info or htb_challenge_categories beyond the resource name.

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

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 use cases, prerequisites, or exclusions, leaving the agent without context for selection.

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

htb_list_fortressesB

List HTB fortresses.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description carries full burden. It implies a read-only operation but omits authentication requirements, rate limits, or any side effects. The return format is unspecified, which is a significant gap for a listing 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 with no extraneous words. It is perfectly concise and front-loaded for a zero-parameter tool.

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 absence of annotations and output schema, the description is incomplete. It does not indicate what the list contains (IDs, names, etc.), any ordering, or whether pagination is supported. An agent would have to guess the response structure.

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?

The tool has zero parameters, and schema coverage is 100% (empty properties). The description adds no parameter details, but none are needed. Baseline 4 is appropriate since there is no parameter information to provide.

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 'List' and resource 'HTB fortresses', distinguishing it from sibling tools like htb_fortress_info or htb_fortress_flags which perform more specific operations. However, it lacks scope details such as whether it lists all fortresses or just active ones.

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. Sibling tools for fortress details, flags, or submissions exist, but the description gives no context for choosing this list tool.

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

htb_list_machinesC

List machines with optional filters. difficulty/state accept comma-separated values.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
todoNo
stateNo
statusNo
keywordNo
sort_byNo
per_pageNo
sort_typeNo
difficultyNo

TDQS

C2.7/5.0
Behavior2/5

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

No annotations provided, and description only mentions filters; does not disclose pagination, rate limits, or any behavioral traits.

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

Conciseness4/5

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

Single sentence is concise and front-loads purpose; could be restructured to include more info without losing conciseness.

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?

No output schema, 9 parameters, no annotations; description lacks return values, pagination details, and filter behavior beyond comma-separated values.

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

Parameters2/5

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

Schema coverage is 0%, but description only adds meaning for difficulty and state; other 7 parameters are not explained.

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?

Clearly states 'List machines' with optional filters, but does not differentiate from siblings like htb_recommended_machines or htb_active_machine.

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; only implies filtering via comma-separated values.

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

htb_list_prolabsA

List all HTB Pro Labs with id, name, version, and subscription state.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/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 states the action but does not disclose safety (e.g., read-only nature) or other behaviors like authentication needs. Since it's a simple list, it's minimally adequate.

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 with all necessary information: action, resource, and returned fields. Every word adds value with no redundancy.

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

Completeness5/5

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

Given the tool has no parameters, no output schema, and no annotations, the description sufficiently covers the tool's purpose and output. For a simple list tool, it is complete.

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?

The input schema has zero parameters, and the schema description coverage is 100%. Per guidelines, a baseline of 4 is appropriate since no parameter information is needed.

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 lists all HTB Pro Labs with specific fields (id, name, version, subscription state). The verb 'list' and resource 'Pro Labs' are specific, and the output fields are provided, distinguishing it from sibling tools like htb_prolab_overview which likely handles single lab details.

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?

No explicit guidance on when to use this tool versus alternatives like htb_list_machines or htb_prolab_overview. The usage is implied for listing all Pro Labs, but no exclusions or context are given.

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

htb_list_seasonsA

List HTB seasonal machine seasons and their active/ended state.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior2/5

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

No annotations are provided, so the description bears full responsibility for behavioral disclosure. While 'List' implies a read-only operation, the description does not explicitly confirm no side effects, required authentication, rate limits, or other behavioral traits. This is a significant gap 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.

Conciseness5/5

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

The description is a single sentence that conveys the essential purpose without extra words. It is front-loaded and efficient.

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

Completeness3/5

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

The description adequately conveys the tool's purpose and what it returns (seasons and state). However, it lacks details on the return format (e.g., array of objects, fields), which would be helpful given no output schema. For a simple list tool, it is minimally complete but could be more informative.

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?

The input schema has no parameters, so schema coverage is effectively 100%. The description adds no parameter information, which is acceptable since there are none. Baseline score of 4 is appropriate for a zero-parameter tool.

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 'List' and the resource 'HTB seasonal machine seasons', and specifies that it returns their 'active/ended state'. This distinguishes it from sibling tools like htb_season_machines, which list machines within a season.

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 does not provide explicit guidance on when to use this tool versus alternatives. The purpose is implied, but no context or exclusion criteria are given. For a simple listing tool, this is minimally adequate.

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

htb_list_sherlocksC

List Sherlocks with optional filters. category accepts comma-separated ids.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
stateNo
statusNo
keywordNo
sort_byNo
categoryNo
per_pageNo
sort_typeNo
difficultyNo

TDQS

C2.6/5.0
Behavior2/5

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

No annotations exist. The description does not disclose behavioral traits such as read-only nature, pagination behavior, rate limits, or what the response includes. It only mentions 'optional filters' without elaborating on behavior.

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 a single sentence, but it is under-specified. While concise, it sacrifices necessary detail. A balanced description would be slightly longer to cover key parameters and usage context.

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 listing tool with 9 parameters and no output schema, the description is insufficient. It fails to explain how filters combine, pagination defaults, or expected output format. More complete documentation is needed for effective use.

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

Parameters2/5

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

Schema description coverage is 0%. The description adds meaning only to 'category' (comma-separated ids). The other 8 parameters (page, state, status, etc.) receive no explanation, leaving the agent to infer from field names alone.

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

Purpose4/5

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

The description clearly states 'List Sherlocks with optional filters.' The verb 'List' and resource 'Sherlocks' are specific, distinguishing it from sibling list tools like 'htb_list_machines' or 'htb_list_challenges'.

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 alternatives (e.g., 'htb_sherlock_info', 'htb_sherlock_tasks'). No when-not-to-use or comparison with other list tools is provided.

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

htb_machine_infoB

Return details for a machine by id or slug/name.

ParametersJSON Schema
NameRequiredDescriptionDefault
machineYes

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, and the description does not disclose behavioral traits such as being read-only, authentication requirements, rate limits, or side effects. It adds no behavioral context beyond the basic purpose.

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, efficient sentence that wastes no words. It is front-loaded with core 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 low schema coverage and no output schema, the description should explain what 'details' includes (e.g., status, OS, difficulty). It is too brief to be fully adequate for an agent to understand the tool's complete behavior.

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 has 0% description coverage, and the description adds the meaning that the 'machine' parameter can be an id or slug/name. However, it does not specify format, constraints, or examples.

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 'Return' and the resource 'details for a machine', and specifies how to identify the machine ('by id or slug/name'). It effectively distinguishes from sibling tools like htb_list_machines (list all) or htb_active_machine (current active).

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 machine identifier is known, but does not provide explicit when-not or alternative tools. It lacks guidance on when to use this versus siblings like htb_search or htb_list_machines.

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

htb_machine_tasksC

Return task/adventure questions for a machine when available.

ParametersJSON Schema
NameRequiredDescriptionDefault
machine_idYes

TDQS

C2.6/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 fully convey behavioral traits. It only states the action without mentioning side effects, permissions, or response format. Minimal transparency.

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 very concise (one sentence) but lacks necessary detail. It is not verbose, but the brevity sacrifices 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?

Given no output schema and no annotations, the description is insufficient. It does not explain what task questions look like, whether availability is guaranteed, or how to interpret results.

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

Parameters2/5

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

With 0% schema description coverage, the description adds no value beyond the schema. The single parameter machine_id is not explained in context.

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 returns task/adventure questions for a machine, using a specific verb and resource. It distinguishes from sibling tools that handle submissions or machine info, though it doesn't explicitly differentiate.

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 like htb_machine_info or htb_submit_machine_task. Lacks any context about prerequisites or exclusions.

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

htb_prolab_flagsC

List flags for a Pro Lab by id.

ParametersJSON Schema
NameRequiredDescriptionDefault
prolab_idYes

TDQS

C2.9/5.0
Behavior2/5

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

Without annotations, the description must convey behavioral traits. It only states 'list flags', which implies a read operation, but does not disclose if there are side effects, pagination, or rate limits. The description is insufficiently transparent.

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

Conciseness4/5

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

The description is a single, front-loaded sentence with no wasted words. While concise, it could include more context 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 lack of output schema and the presence of many sibling tools, the description should specify what information is returned (e.g., flags, status) and how results are structured. It falls short.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must explain parameters. It merely restates the scope without adding any details about the prolab_id parameter, such as where to find it or its format.

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 (listing) and the resource (flags for a Pro Lab), with the input method (by id). It distinguishes this tool from siblings like htb_submit_prolab_flag, which handles flag submission.

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 instead of alternatives such as htb_prolab_overview or htb_submit_prolab_flag. The context of use is entirely implied.

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

htb_prolab_machinesC

List machines in a Pro Lab by id.

ParametersJSON Schema
NameRequiredDescriptionDefault
prolab_idYes

TDQS

C2.8/5.0
Behavior2/5

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

No annotations provided, so description must fully disclose behavior. It describes a read-only 'list' operation but omits any details about permissions, rate limits, or side effects. Bare minimum.

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?

Extremely concise single sentence with no wasted words. Could be improved by adding context, but as a minimal description it's 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?

Adequate for a simple list tool with one parameter, but lacks details about return values or how it differs from machine listing tools. With no output schema, more context would be helpful.

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

Parameters2/5

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

The only parameter, prolab_id, is mentioned as 'by id' but not explained (e.g., where to find it, format). Schema has 0% description coverage, so description should compensate but does not.

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?

Clearly states it lists machines in a Pro Lab, distinguishing from sibling tools like htb_list_prolabs (lists labs) and htb_prolab_overview (overview of a lab). However, 'machines' could be more precisely defined.

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?

Only states 'by id' but provides no guidance on when to use this tool over siblings like htb_list_machines or htb_prolab_flags. No explicit context or alternatives.

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

htb_prolab_overviewB

Return detailed overview for a Pro Lab id (machines count, flags count, social links).

ParametersJSON Schema
NameRequiredDescriptionDefault
prolab_idYes

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 must fully disclose behavior. It mentions the return content but omits read-only nature, authentication needs, rate limits, side effects, or error conditions. For a simple retrieval tool, this is minimal behavioral information.

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 efficiently communicates purpose and return content 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?

Given the simple input and no output schema, the description explains the tool's purpose adequately. However, it lacks any mention of return format, authentication prerequisites, or error behavior, which would be expected for a complete context.

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

Parameters1/5

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

The input schema has 1 parameter (prolab_id) with 0% description coverage. The description does not add any meaning beyond the schema's title and type. The agent must rely on the parameter name alone.

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 specifies the tool returns a detailed overview for a Pro Lab, listing included fields (machines count, flags count, social links). It clearly distinguishes from sibling tools like htb_prolab_machines and htb_prolab_flags.

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 is for overview/summary rather than detailed lists, but it does not explicitly state when to use it versus alternatives like htb_prolab_machines. No when-not-to-use or prerequisite information is provided.

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

htb_reset_fortressC

Vote to reset a fortress instance.

ParametersJSON Schema
NameRequiredDescriptionDefault
fortress_idYes

TDQS

C2.4/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. It only says 'vote to reset', but does not explain whether the reset is immediate, requires approval, has side effects, or is reversible. The voting mechanism is opaque, which is critical for a potentially destructive action.

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

Conciseness2/5

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

The description is extremely terse (four words), but this brevity comes at the cost of omitting essential details. It is not appropriately sized for the tool's complexity; it sacrifices clarity for brevity.

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 lacks completeness given the tool's context. It does not explain the outcome of the vote, the expected behavior, or any dependencies. With no output schema and one parameter, more detail is needed to fully inform the agent.

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

Parameters1/5

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

Schema description coverage is 0%, and the description adds no information about the sole parameter 'fortress_id'. The agent gets no clues on what a valid fortress_id is or how to obtain it, making parameter usage entirely reliant on external knowledge.

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 'vote to reset' and the resource 'fortress instance'. This distinguishes it from sibling reset tools like htb_reset_machine, which likely perform immediate resets. However, 'vote to reset' is somewhat ambiguous as it implies a multi-step process, but the core purpose is communicated.

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

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, when a vote is needed, or how it differs from other reset tools. This leaves the agent uncertain about the appropriate context for invocation.

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

htb_reset_machineC

Reset a machine VM. mode: request, vote, or accept_vote.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNorequest
machine_idYes

TDQS

C2.9/5.0
Behavior2/5

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

No annotations provided. Description does not disclose behavioral traits like whether resetting destroys progress, required permissions, rate limits, or side effects. For a mutation action, 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.

Conciseness4/5

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

The description is short and front-loaded with purpose, but it could include mode explanations without losing conciseness.

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 no output schema, missing parameter explanations, and no annotations, the description is insufficient for a reset tool. It leaves critical questions unanswered.

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

Parameters2/5

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

With 0% schema coverage, the description adds minimal value: it lists mode values but doesn't explain their semantics. The required machine_id parameter is not described at all.

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 resets a machine VM, with specific modes listed (request, vote, accept_vote). This distinguishes it from sibling tools like spawn or stop, which have different purposes.

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 reset vs alternatives (e.g., spawn, extend). No explanation of mode semantics or prerequisites (e.g., ownership).

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

htb_reset_sherlock_vmC

Reset a Sherlock VM play instance by Sherlock id.

ParametersJSON Schema
NameRequiredDescriptionDefault
sherlock_idYes

TDQS

C2.7/5.0
Behavior2/5

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

No annotations provided, so the description carries full burden. It does not disclose behavioral traits such as whether the reset is destructive, stops running instances, or clears progress. Critical missing information for a reset action.

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?

A single, clear sentence with no extraneous words. It is concise but lacks depth; however, for a simple tool it is appropriately sized.

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 no output schema and no annotations, the description omits important context about what happens after reset, any side effects, or response format. Incomplete for an agent's decision-making.

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

Parameters2/5

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

The description only says 'by Sherlock id', adding minimal meaning beyond the schema. It does not explain what the ID represents, how to obtain it, or any constraints. With 0% schema description coverage, the description fails to compensate.

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

Purpose4/5

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

The description 'Reset a Sherlock VM play instance by Sherlock id' clearly identifies the verb (Reset) and resource (Sherlock VM play instance), distinguishing it from sibling tools like start/stop. However, it could specify the scope or effect more precisely.

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 alternatives like start/stop or others. The description does not mention prerequisites, context, or when not to use it.

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

htb_season_leaderboardC

Return a seasonal leaderboard. leaderboard must be players or teams.

ParametersJSON Schema
NameRequiredDescriptionDefault
season_idNo
leaderboardNoplayers

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are present, and the description does not disclose any behavioral traits such as data freshness, error handling, or side effects. The agent has no information about what happens if the season_id is null or invalid.

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 very short and concise, but it lacks necessary details. While brevity is good, the under-specification reduces its effectiveness.

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 absence of output schema, low parameter documentation, and lack of annotations, the description is incomplete. It does not explain what the leaderboard data looks like or how the season_id affects results.

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

Parameters2/5

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

The description adds minimal value beyond the schema: it specifies that the leaderboard parameter must be 'players' or 'teams', but does not explain the season_id parameter at all. With 0% schema coverage, the description should provide more guidance.

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 it returns a seasonal leaderboard and constrains the leaderboard parameter to 'players' or 'teams'. However, it does not differentiate from the sibling tool htb_season_top_leaderboard, which likely returns similar data.

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 usage guidelines are provided. The description does not indicate when to use this tool versus alternatives like htb_season_top_leaderboard or htb_season_user_rank, nor does it explain the context for using the season_id parameter.

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

htb_season_machinesA

List machines for a season id returned by htb_list_seasons.

ParametersJSON Schema
NameRequiredDescriptionDefault
season_idYes

TDQS

A3.6/5.0
Behavior2/5

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

No annotations provided. The description does not disclose behavioral traits like side effects, read-only nature, pagination, or rate limits. It only states the outcome without depth.

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?

Single sentence, front-loaded with action and resource, no filler words. Every word earns its place.

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?

Missing output schema and details about output structure, pagination, or filtering. Does not state if it returns all machines or only active ones, leaving gaps for an 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 has 0% description coverage, so the description must compensate. It adds context that season_id comes from htb_list_seasons, but does not explain its format or constraints. Adequate but not detailed.

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?

Description specifies the action 'List' and resource 'machines for a season id', and clearly states the source of the id ('returned by htb_list_seasons'). This differentiates it from sibling tools like htb_list_machines or htb_season_rewards.

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?

Implies prerequisite of calling htb_list_seasons first. Does not explicitly state when not to use, but the context of season-specific listing is clear among sibling tools.

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

htb_season_rewardsB

List rewards and rank progression data for a season id.

ParametersJSON Schema
NameRequiredDescriptionDefault
season_idYes

TDQS

B3.3/5.0
Behavior3/5

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

The description indicates a read-only listing operation, but it does not explicitly state that no modifications occur. Given the lack of annotations, the description partially fulfills transparency by mentioning the data returned, but it could better disclose behavioral traits like authentication requirements or rate limits.

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

Conciseness5/5

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

The description is a single, concise sentence that quickly conveys the tool's purpose. There is no unnecessary 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?

The description lacks details about the output structure (e.g., format of rewards and rank progression). Without an output schema, the agent has no understanding of what the tool returns, which is a significant gap for a listing tool.

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

Parameters2/5

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

The schema coverage is 0%, and the description only mentions 'for a season id' without explaining what a season ID is, how to obtain it, or its expected format. This adds minimal value beyond the parameter name.

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 specific verb 'List' and the resource 'rewards and rank progression data' for a given season ID. It effectively differentiates from sibling tools like htb_season_leaderboard or htb_season_user_rank by combining both rewards and rank progression.

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 or exclusions. With multiple season-related siblings, explicit usage context would be beneficial.

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

htb_season_top_leaderboardC

Return top seasonal leaderboard entries. period: 1Y, 6M, 3M, 1M, or 1W.

ParametersJSON Schema
NameRequiredDescriptionDefault
periodNo1W
season_idYes
leaderboardNoplayers

TDQS

C2.7/5.0
Behavior2/5

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

No annotations exist, so the description must carry behavioral transparency. It only states the action (return entries) and a parameter list, omitting any details about side effects, ordering, pagination, or authorization requirements.

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

Conciseness4/5

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

The description is very short and to the point, with no wasted words. It efficiently conveys the core purpose and a key parameter constraint, though it could include more detail without becoming 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?

For a tool with three parameters, no output schema, and no annotations, the description is insufficient. It does not specify the meaning of 'top', return format, or behavior for different inputs, leaving significant gaps for an AI agent.

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

Parameters2/5

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

With 0% schema description coverage, the description should explain each parameter. It only documents the period values but ignores season_id (required) and leaderboard (default 'players'), adding minimal value 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 it returns top seasonal leaderboard entries and lists allowed period values. It does not explicitly differentiate from sibling tools like htb_season_leaderboard, but the name and context imply a specific subset.

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; no mention of prerequisites, filters, or conditions. The description only enumerates period options but lacks contextual usage advice.

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

htb_season_user_rankB

Return the authenticated user's rank/progress for a season id.

ParametersJSON Schema
NameRequiredDescriptionDefault
season_idYes

TDQS

B3.2/5.0
Behavior2/5

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

No annotations provided; the description does not disclose authentication requirements, rate limits, or the exact structure of the return value. It only states the basic operation without behavioral details.

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

Conciseness5/5

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

Single sentence with no unnecessary words, front-loaded with action and outcome. Every word earns its place.

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 one parameter, no output schema, and no annotations, the description is adequate but lacks information on the return format and error handling. Could be more complete by specifying the response object or preconditions.

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

Parameters2/5

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

With 0% schema description coverage, the description adds minimal meaning: 'for a season id' indicates season_id identifies the season. It does not explain expected format, valid range, or relation to other season IDs.

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 (return), resource (authenticated user's rank/progress), and scope (for a season id). It distinguishes from the plural sibling 'htb_season_user_ranks' by specifying it's for the authenticated user only.

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 alternatives like 'htb_season_user_ranks' or 'htb_season_leaderboard'. The context of use is implied but not explicit.

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

htb_season_user_ranksB

Return all seasonal ranks for a specific HTB user id.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_idYes

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 should disclose behavioral traits. It only states the return value without mentioning side effects, authorization needs, rate limits, or any constraints.

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

Conciseness5/5

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

Single sentence with 10 words, no fluff, directly conveys the function.

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 query tool, the description is mostly adequate, but it lacks any information about output format, error handling, or pagination, which are not covered by annotations or output schema.

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

Parameters2/5

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

Schema description coverage is 0%. The description barely adds meaning beyond the parameter name 'user_id'—it just says 'for a specific HTB user id', which is already obvious from the name.

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 'return' and resource 'all seasonal ranks' for a specific user id, distinguishing it from similar sibling tools like htb_season_leaderboard or htb_season_user_rank.

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 alternatives; no mention of prerequisites, exclusions, or context.

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

htb_sherlock_infoB

Return Sherlock details by id or slug/name.

ParametersJSON Schema
NameRequiredDescriptionDefault
sherlockYes

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description should disclose behavioral traits. It implies a read-only operation by stating 'return', but does not mention side effects, authentication requirements, or rate limits. The vague 'details' leaves the agent guessing about scope.

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, unambiguous sentence with 8 words. Every word is necessary, and it is perfectly front-loaded with the core action. No superfluous 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 lack of output schema, the description should hint at what 'details' includes (e.g., name, difficulty, status). It omits this entirely, leaving the agent uninformed about the response structure. Simple tool but insufficient for a single-param query.

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?

Despite 0% schema description coverage, the description adds meaning by specifying that the 'sherlock' parameter accepts 'id or slug/name'. This clarifies the acceptable input format beyond the schema's bare 'type: string'.

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 ('return Sherlock details') and the identification method ('by id or slug/name'). It distinguishes the tool from siblings like htb_sherlock_tasks or htb_sherlock_progress by focusing on general details. However, it doesn't explicitly contrast with them.

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

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 htb_sherlock_tasks or htb_sherlock_play. The description provides no context about prerequisites or preferred usage scenarios.

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

htb_sherlock_playC

Return Sherlock play metadata and current VM/container state.

ParametersJSON Schema
NameRequiredDescriptionDefault
sherlock_idYes

TDQS

C2.8/5.0
Behavior2/5

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

No annotations provided, and description only states it returns data—does not disclose whether it has side effects, auth requirements, or other behavioral traits.

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

Conciseness4/5

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

Single sentence with no waste, but could include more detail without becoming verbose; front-loaded with 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?

Given no output schema and low complexity, the description lacks details on return format, what metadata includes, and what 'current state' entails.

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

Parameters1/5

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

Schema coverage is 0%, and description does not explain sherlock_id or add any meaning beyond the schema's name and type.

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 indicates the tool returns metadata and current VM/container state, which distinguishes it from sibling tools that start/stop/reset or provide task info.

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 when to use this tool vs alternatives like htb_sherlock_info or htb_sherlock_progress; usage context is implied by name but not explicit.

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

htb_sherlock_progressB

Return progress for a Sherlock id.

ParametersJSON Schema
NameRequiredDescriptionDefault
sherlock_idYes

TDQS

B3.3/5.0
Behavior2/5

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

No annotations provided, so description must fully disclose behavior. It mentions returning progress but does not describe what 'progress' entails, format, or whether it is a read-only operation. Minimal 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?

Single sentence, no unnecessary words, front-loaded. 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 tool with one parameter and no output schema, the description is adequate but lacks details like possible values of progress or error conditions. Could be more complete given siblings.

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 covers 0% description of parameter, but the description states 'for a Sherlock id', confirming the parameter is the identifier. This adds minimal 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?

Description uses a specific verb ('Return') and resource ('progress for a Sherlock id'), clearly indicating the tool's function. It distinguishes from siblings like htb_sherlock_info and htb_sherlock_tasks.

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 such as htb_sherlock_info or htb_sherlock_tasks. The description lacks context for decision-making.

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

htb_sherlock_tasksB

Return tasks/questions for a Sherlock id.

ParametersJSON Schema
NameRequiredDescriptionDefault
sherlock_idYes

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations, the description should disclose behavioral traits. It only states 'Return tasks/questions' without addressing side effects, authentication requirements, or error conditions. The tool appears to be read-only, but this is not explicitly confirmed.

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 conveys the core purpose without extraneous words. It is appropriately sized and front-loaded.

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 could include return format or error handling to be fully complete for an 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?

The schema shows one required integer parameter with 0% coverage. The description adds meaning by indicating the parameter is a 'Sherlock id', but does not explain what constitutes a valid ID or how to obtain it. Some value is added beyond the schema but not fully compensates for the coverage gap.

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 ('Return') and the resource ('tasks/questions for a Sherlock id'). It effectively distinguishes the tool from siblings like htb_sherlock_info, which returns info, and htb_sherlock_progress, which returns progress.

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 explicit guidance is given on when to use this tool versus alternatives. The description implies usage when tasks are needed, but does not mention prerequisites, context, or situations where a different tool would be more appropriate.

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

htb_spawn_machineC

Spawn a machine or Starting Point VM by id.

ParametersJSON Schema
NameRequiredDescriptionDefault
machine_idYes

TDQS

C2.6/5.0
Behavior2/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 such as whether spawning is destructive, requires authorization, or returns a result. 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.

Conciseness3/5

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

The description is very concise (one sentence), which is positive, but it sacrifices completeness. It lacks structure such as bullet points or examples.

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 single required parameter, no output schema, and no annotations, the description is incomplete. It does not explain the result of spawning, prerequisites, or error conditions, leaving the agent underinformed.

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

Parameters2/5

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

The schema coverage is 0% (no description for machine_id), and the tool description only says 'by id', adding no meaning beyond the parameter name. The agent does not learn how to find or format the machine_id.

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 'Spawn' and the resource 'a machine or Starting Point VM by id', which distinguishes it from sibling tools like htb_stop_machine or htb_machine_info. However, it could be more specific about what 'Spawn' entails.

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 provided on when to use this tool versus alternatives. It does not specify any context, prerequisites, or exclusions, leaving the agent without direction for proper invocation.

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

htb_start_challengeB

Start a challenge container by challenge id when the challenge supports containers.

ParametersJSON Schema
NameRequiredDescriptionDefault
challenge_idYes

TDQS

B3/5.0
Behavior2/5

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

No annotations provided. Description only states it starts a container, but lacks disclosure of side effects, permissions, error handling, or return behavior. For a mutation tool, more transparency is needed.

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?

Single sentence, 12 words, front-loaded with action. No extraneous content. Concise, though could benefit from additional structure for completeness.

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 simplicity (1 param, no output schema), description is minimally adequate. Tells basic function and condition, but lacks detail on return values, errors, or preconditions.

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

Parameters2/5

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

Schema coverage is 0% with no parameter description. Description adds 'by challenge id' but does not clarify where to get the id or format. Insufficient compensation.

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?

Description uses specific verb 'start' and resource 'challenge container' with condition 'when the challenge supports containers'. This distinguishes it from siblings like htb_start_container, which may be for generic containers. Clear purpose.

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?

Implies usage when wanting to start a container for a challenge that supports containers. Provides a condition but no explicit when-not-to-use or alternatives. Moderate guidance.

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

htb_start_containerC

Start a container by container id for HTB content that exposes one.

ParametersJSON Schema
NameRequiredDescriptionDefault
container_idYes

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. It states the tool 'starts a container' but does not reveal if the operation is idempotent, whether it requires a stopped container, or any side effects (e.g., resource allocation). This is minimal transparency 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 of 13 words, perfectly front-loaded with the action and key detail. Every word earns its place; there is 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?

For a simple tool with one parameter and no output schema, the description covers the core purpose but omits important details like what happens upon success (e.g., connection info, status) or any prerequisite conditions. It is minimally adequate but not comprehensive.

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

Parameters2/5

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

The only parameter, container_id, is described as an integer in the schema. The description merely repeats 'by container id' without adding formatting, constraints, or context (e.g., where to find the ID). With 0% schema description coverage, the description fails to compensate for the lack of parameter documentation.

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

Purpose4/5

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

The description clearly states the action ('start a container'), the identifier ('by container id'), and the context ('for HTB content that exposes one'). It distinguishes from siblings like htb_stop_container, though it could be more specific about what HTB content encompasses.

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 (e.g., htb_spawn_machine, htb_start_challenge). There are no prerequisites, exclusions, or when-not-to-use instructions, leaving the agent to infer the appropriate context.

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

htb_starting_point_progressA

Return Starting Point tier progress for the authenticated account.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/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 full burden. It mentions 'authenticated account' implying authentication is needed, but does not disclose whether this operation is read-only, rate limits, 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, clear sentence with no wasted words. It is concise and front-loaded.

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

Completeness5/5

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

For a tool with no parameters and no output schema, the description sufficiently states the purpose and scope (Starting Point tier progress for authenticated account). It is complete given the tool's simplicity.

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?

The tool has zero parameters, and schema coverage is 100% (no properties). With no parameters, the description does not need to add parameter semantics; baseline is 4.

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 returns Starting Point tier progress for the authenticated account, using specific verb 'Return' and specific resource 'Starting Point tier progress'. It differentiates from sibling tools like htb_starting_point_tier.

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 Starting Point progress but does not explicitly state when to use this tool vs alternatives or provide any exclusions or context about prerequisites.

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

htb_starting_point_tierA

Return metadata for a Starting Point tier id.

HTB removed the per-tier machine listing endpoint, so only tier metadata (name, description, completion) is returned. Use htb_search or htb_list_machines + htb_machine_info for Starting Point machine details.

ParametersJSON Schema
NameRequiredDescriptionDefault
tier_idYes

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description carries the full burden. It discloses the limitation that per-tier machine listing is removed, so only metadata is returned. This is transparent about behavior, though it does not mention auth requirements or side effects, which are minimal for a read-only metadata lookup.

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 concise with two well-structured sentences. The first sentence states the purpose, and the second explains the limitation and alternative usage. No unnecessary 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?

Given the tool's simplicity (one parameter, no output schema, no annotations), the description is fairly complete. It explains the limitation and provides direction for related functionality. However, it could mention what the response contains besides 'metadata'.

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 0%, so the description must add meaning. It indicates that tier_id is the identifier for the tier, but does not explain what values are valid or how to obtain them. This is barely adequate for a single integer 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 that the tool returns metadata for a Starting Point tier id, specifying that it returns name, description, and completion status. It distinguishes itself from sibling tools like htb_search and htb_list_machines by noting the endpoint no longer provides per-tier machine listings.

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?

The description explicitly advises using htb_search or htb_list_machines + htb_machine_info for Starting Point machine details, providing clear guidance on when not to use this tool and what alternatives to use.

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

htb_start_sherlock_vmC

Start a Sherlock VM play instance by Sherlock id.

ParametersJSON Schema
NameRequiredDescriptionDefault
sherlock_idYes

TDQS

C2.8/5.0
Behavior1/5

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

With no annotations, the description should disclose behavioral traits but does not. It fails to mention if multiple instances can run, if starting requires stopping others, 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.

Conciseness4/5

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

One clear sentence with no redundancy. However, it is too brief given the lack of annotations and schema details.

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 tool with one parameter and no output schema, the description should clarify what a 'play instance' is, lifecycle details, and how to use the id. It feels incomplete.

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

Parameters2/5

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

The description adds 'by Sherlock id' but does not explain how to obtain the id or any constraints. Schema coverage is 0%, so the description should compensate but doesn't.

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 (Start), resource (Sherlock VM play instance), and identification method (by Sherlock id). It distinguishes from siblings like htb_stop_sherlock_vm.

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, prerequisites, or alternatives. For example, whether the Sherlock must be selected first via htb_list_sherlocks or htb_sherlock_info is omitted.

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

htb_stop_challengeB

Stop a challenge container by challenge id.

ParametersJSON Schema
NameRequiredDescriptionDefault
challenge_idYes

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are present, so the description must fully disclose behavioral traits. It only states 'Stop' without explaining consequences (e.g., termination of container, state changes, idempotency, or permissions required). A destructive action like stopping should clarify if it is reversible or what happens to running processes.

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. Every word serves a purpose; there is no redundancy or filler. For a simple tool, this strikes an optimal balance between brevity and clarity.

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. It communicates the basic purpose but lacks contextual details like expected side effects, return values, or error conditions. A score of 3 reflects that it meets the essential need but leaves gaps for an agent to infer.

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

Parameters2/5

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

The input schema has 0% description coverage, meaning the description does not explain the 'challenge_id' parameter beyond what the schema provides (type integer, title 'Challenge Id'). The description fails to add useful context, such as how to obtain the ID or constraints (e.g., must be an active challenge).

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 ('Stop') and the resource ('a challenge container by challenge id'), using a specific verb and resource. It distinguishes from sibling tools like htb_stop_container (for containers) and htb_stop_machine (for machines) by focusing on 'challenge' containers.

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 (e.g., htb_stop_container or htb_stop_machine). There is no mention of prerequisites, such as whether the container must be running, or when not to use it (e.g., if the challenge is already stopped). The description lacks context for proper decision-making.

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

htb_stop_containerC

Stop a container by container id for HTB content that exposes one.

ParametersJSON Schema
NameRequiredDescriptionDefault
container_idYes

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations, the description carries full burden but only states the action 'stop'. It fails to disclose side effects (e.g., container termination, data loss), required permissions, or whether the container can be restarted. The agent learns nothing beyond the basic 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, well-formed sentence with no unnecessary words (13 words). It is maximally concise and front-loaded with the key action and resource.

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 this is a simple tool with one parameter and no output schema, the description still lacks important context: it does not mention the lifecycle relationship to 'htb_start_container', what happens to the container after stopping, or any prerequisites. Ambiguity remains about whether this is for challenges, labs, or other HTB content.

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

Parameters1/5

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

The input schema has 0% description coverage; the description does not explain the 'container_id' parameter beyond what the schema already provides (type integer, required). No context about how to obtain the container_id or its format is given, providing zero added value over 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 (Stop) and resource (container) with a specific identifier. It distinguishes from sibling tools like 'htb_stop_machine' and 'htb_stop_challenge' by specifying 'container', though the phrase 'for HTB content that exposes one' is slightly vague but still conveys the 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 on when to use this tool versus alternatives. For instance, it does not mention that this should be used only for containers started with 'htb_start_container', nor does it exclude usage for challenges or machines. This minimal guidance forces the agent to infer context.

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

htb_stop_machineC

Terminate a spawned machine or Starting Point VM by id.

ParametersJSON Schema
NameRequiredDescriptionDefault
machine_idYes

TDQS

C2.9/5.0
Behavior2/5

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

The description indicates a destructive action ('terminate') but fails to disclose side effects such as loss of state, required permissions, or reversibility. With no annotations, the description bears the full burden and does not adequately inform the agent of behavioral traits.

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

Conciseness4/5

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

The description is extremely concise at one sentence, front-loaded with the verb. While no words are wasted, some additional context could be added without sacrificing conciseness.

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 single parameter and no output schema, the description is minimally complete but lacks essential context such as error handling, success indicators, or the requirement that the machine must be currently spawned. It does not reference sibling tools like htb_active_machine for context.

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

Parameters2/5

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

The only parameter `machine_id` is an integer with no schema description (0% coverage). The phrase 'by id' adds minimal value beyond the parameter name. No guidance on where to obtain the ID or constraints 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 clearly states the action 'Terminate' and the resource 'a spawned machine or Starting Point VM by id'. It distinguishes from sibling tools like htb_spawn_machine and htb_reset_machine by specifying termination, making the purpose unambiguous.

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

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 htb_reset_machine. There is no mention of prerequisites, conditions for use, or scenarios where termination is appropriate.

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

htb_stop_sherlock_vmC

Stop a Sherlock VM play instance by Sherlock id.

ParametersJSON Schema
NameRequiredDescriptionDefault
sherlock_idYes

TDQS

C2.9/5.0
Behavior2/5

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

Without annotations, the description must disclose behavioral traits, but it only states the action. It omits details like whether the stop is graceful or forced, what happens to running tasks, and the state after stopping.

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 efficient sentence that front-loads the action. However, it could be slightly expanded to provide essential behavioral context without becoming verbose.

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), the description covers the basic purpose and input. However, it lacks depth on behavior and usage context, making it minimally adequate.

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

Parameters1/5

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

Schema description coverage is 0%, and the description adds no meaning to the parameter 'sherlock_id' beyond its title. It does not explain how to obtain the ID, any format constraints, or relationship with other tools like htb_start_sherlock_vm.

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 ('Stop'), the resource ('Sherlock VM play instance'), and the identifier ('by Sherlock id'), which is specific and differentiates from sibling tools that operate on machines, challenges, or containers.

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 alternatives like htb_stop_machine or htb_reset_sherlock_vm. No prerequisites or context provided, leaving the agent to infer usage from the name alone.

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

htb_submit_challenge_flagD

Submit a challenge flag.

ParametersJSON Schema
NameRequiredDescriptionDefault
flagYes
challenge_idYes

TDQS

D1.8/5.0
Behavior1/5

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

No annotations are provided, so the description must fully disclose behavioral traits. It fails to mention any side effects, authentication requirements, or what happens upon submission (e.g., success/error response). For a submission tool, this is critical missing information.

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

Conciseness2/5

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

The description is a single short sentence, which is concise but severely under-specified. It fails to provide necessary context, thus not earning its place in a helpful manner.

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

Completeness1/5

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

Given the tool's complexity (2 required params, many sibling tools, no output schema), the description is grossly incomplete. It provides no information about return values, expected input formats, or behavioral nuances, leaving the agent unable to reliably use the tool.

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

Parameters1/5

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

Schema coverage is 0%, meaning parameters have no descriptions. The description does not elaborate on what 'flag' or 'challenge_id' mean, their format, or how to obtain them. Agent has no guidance beyond parameter names and types.

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

Purpose3/5

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

The description states 'Submit a challenge flag,' which is a verb+resource pair, but it does not distinguish this tool from many sibling submission tools like htb_submit_machine_flag or htb_submit_fortress_flag. The name provides context, but the description itself is vague.

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. It does not mention prerequisites (e.g., needing to start the challenge first) or any context that would help the agent decide to use this tool.

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

htb_submit_fortress_flagD

Submit a fortress flag.

ParametersJSON Schema
NameRequiredDescriptionDefault
flagYes
fortress_idYes

TDQS

D1.3/5.0
Behavior1/5

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

No annotations are provided, and the description omits any behavioral details such as authentication requirements, side effects, rate limits, or success/error conditions.

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

Conciseness2/5

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

While short, the description is under-specified, failing to convey essential information. It sacrifices completeness for brevity.

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

Completeness1/5

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

Given the lack of annotations, output schema, and parameter descriptions, the description is severely incomplete. The agent cannot reliably use this tool without external knowledge.

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

Parameters1/5

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

Parameter schema has 0% coverage; neither 'flag' nor 'fortress_id' has a description. The tool description adds no additional meaning, so the agent must guess the format or semantics.

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

Purpose2/5

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

The description 'Submit a fortress flag' is a tautology of the tool name. It provides no additional context to distinguish it from sibling submit tools like htb_submit_machine_flag or htb_submit_challenge_flag.

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

Usage Guidelines1/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 other submit tools. The agent has no way to know prerequisites, context, or alternatives.

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

htb_submit_machine_flagC

Submit a user/root machine flag for a machine id.

ParametersJSON Schema
NameRequiredDescriptionDefault
flagYes
difficultyNo
machine_idYes

TDQS

C2.6/5.0
Behavior2/5

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

No annotations provided, so the description must fully disclose behavioral traits. It only states the basic action without mentioning side effects (e.g., whether submission stops the machine), authentication requirements, or rate limits. This is minimal.

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

Conciseness3/5

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

The description is a single sentence with no unnecessary words. However, it is too short and lacks critical details, so it is not effectively concise but rather under-specified.

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 lack of annotations, output schema, and zero parameter descriptions, the description is incomplete. It does not explain flag format, submission effects, error scenarios, or required context like the machine being active.

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

Parameters2/5

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

Schema description coverage is 0%, so the description should explain parameters. It mentions 'machine id' and 'flag' implicitly, but does not clarify that 'flag' is a string, that 'machine_id' is required, or describe the optional 'difficulty' parameter. Adds little beyond parameter names.

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 (submit) and the resource (user/root machine flag for a machine id). It distinguishes from sibling submission tools by specifying 'machine flag', which differentiates it from fortress, sherlock, prolab, and challenge flag submissions.

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 alternatives like htb_submit_fortress_flag or htb_submit_challenge_flag. No context on prerequisites (e.g., machine must be spawned) or cases where it should not be used.

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

htb_submit_machine_taskA

Submit the text answer/flag for a Starting Point machine task.

Use htb_machine_tasks to list available tasks and their ids for a machine. Returns 'Task flag owned!' on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
flagYes
task_idYes
machine_idYes

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are provided, so the description must carry the behavioral burden. It states the success message, but lacks details on side effects, authorization, or error cases. It is adequate but not thorough.

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 extremely concise with two sentences and no unnecessary words. Every sentence adds value.

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 tool has 3 parameters and no output schema. The description covers core purpose, prerequisites, and expected success message. It could mention failure scenarios or flag format constraints but is largely complete.

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

Parameters2/5

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

Schema coverage is 0%, meaning the description does not explain individual parameters. Parameter titles in the schema provide basic meaning, but the description adds no semantic value beyond the titles.

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 it submits a flag for a Starting Point machine task, using specific verbs and resource. It distinguishes from siblings like htb_submit_machine_flag by specifying 'Starting Point' context.

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 provides a clear prerequisite: use htb_machine_tasks to list tasks. It implies the tool is for Starting Point tasks, but does not explicitly contrast with other submission tools.

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

htb_submit_prolab_flagC

Submit a flag for a Pro Lab by id.

ParametersJSON Schema
NameRequiredDescriptionDefault
flagYes
prolab_idYes

TDQS

C2.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 must disclose behavioral traits. It only says 'submit', implying mutation, but does not reveal any side effects, prerequisites, or post-conditions. Critically incomplete.

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

Conciseness2/5

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

Extremely short (one sentence), but omits essential information. True conciseness should preserve clarity and completeness; this is under-specified and forces the agent to rely on schema alone.

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

Completeness1/5

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

Given the absence of annotations, output schema, and parameter explanations, the description is grossly insufficient. An agent lacks context for invocation, return expectations, and tool behavior.

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

Parameters1/5

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

Schema description coverage is 0%, with two undocumented parameters (flag and prolab_id). The description adds no meaning beyond the schema's field titles and types, offering no guidance on expected format 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 verb 'submit' and the resource 'flag for a Pro Lab', which distinguishes it from similar tools for other targets (fortress, challenge, machine). However, it does not elaborate on success conditions or return values.

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 alternatives. The name implies it's for Pro Labs, but the description does not explicitly differentiate or provide context for selection.

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

htb_submit_sherlock_task_flagB

Submit the flag/answer for a Sherlock task id.

ParametersJSON Schema
NameRequiredDescriptionDefault
flagYes
task_idYes
sherlock_idYes

TDQS

B3/5.0
Behavior2/5

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

No annotations are provided, so the description bears full responsibility for behavioral disclosure. It merely states the action without revealing whether the operation is destructive, what happens on success or failure, or any side effects. This is insufficient for agents to anticipate consequences.

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

Conciseness4/5

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

The description is a single concise sentence that efficiently conveys the primary purpose. However, it lacks any structural elements (e.g., bullet points or sections) that could improve readability while remaining brief.

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 three required parameters and no output schema or annotations, the description is too minimal. It does not explain how to obtain the IDs, what constitutes a valid flag, or what response to expect, leaving significant gaps for the agent.

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

Parameters1/5

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

The input schema has 0% description coverage and the description adds no information about the parameters beyond their names. Agents are left to guess the meaning of 'flag', 'task_id', and 'sherlock_id', and no format or constraints are 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 clearly states the action ('Submit') and the resource ('flag/answer for a Sherlock task id'). It distinguishes from sibling submit tools by specifying 'Sherlock task', making the purpose unambiguous.

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

Usage Guidelines3/5

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

The description implies usage context (submitting a flag for a Sherlock task) but provides no explicit guidance on when to use this tool versus alternatives like htb_submit_machine_flag or htb_submit_challenge_flag. No when-not-to-use conditions are mentioned.

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

htb_switch_vpn_serverA

Switch the assigned HTB VPN server to a server id returned by htb_vpn_servers.

ParametersJSON Schema
NameRequiredDescriptionDefault
vpn_idYes

TDQS

A3.5/5.0
Behavior2/5

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

No annotations provided. Description indicates a mutation ('switch') but does not disclose side effects (e.g., disconnection), authentication needs, rate limits, or error states. For a tool with no annotations, this is insufficient.

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

Conciseness5/5

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

Single sentence, front-loaded with action and result. No unnecessary 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 tool with one parameter and no output schema, description covers core usage and data source. However, missing behavioral context about side effects and error handling makes it incomplete.

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?

Single integer parameter vpn_id. Schema has 0% description coverage, but description adds meaning by stating it's a server ID from htb_vpn_servers. Lacks detail on valid range, format, or behavior for invalid IDs.

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?

Description clearly states the tool switches the HTB VPN server using a server ID from htb_vpn_servers. It uses specific verb 'switch' and resource 'assigned HTB VPN server', distinguishing it from sibling tools like htb_download_ovpn or htb_connection_status.

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?

Implicitly guides usage by referencing htb_vpn_servers for the server ID, but lacks explicit when-to-use and when-not-to-use, as well as prerequisites. No mention of alternatives among siblings.

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

htb_user_profileB

Return public profile details for an HTB user id.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_idYes

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description must carry full behavioral disclosure. It only mentions 'public' but does not specify read-only nature, side effects, authentication requirements, or rate limits. For a simple read tool, more transparency is expected.

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

Conciseness5/5

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

The description is a single sentence with 7 words, directly stating the purpose. It is front-loaded with the verb and resource, containing no unnecessary words or 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's simplicity (1 parameter, no output schema), the description lacks detail about return values, error conditions, or prerequisites. It does not explain what 'public profile details' includes, leaving the agent uncertain about the output format and completeness.

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

Parameters2/5

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

Schema description coverage is 0%, so the description should compensate. However, it adds no information about the single required parameter 'user_id' beyond what the schema already shows. The parameter name is self-explanatory, but the description fails to clarify expected format or constraints.

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 (Return), the resource (public profile details), and the input (HTB user id). It is specific and distinguishes from sibling tools like htb_whoami or htb_machine_info.

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 are no preconditions, exclusions, or context for when it is appropriate. The description merely implies that it is for fetching user profiles.

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

htb_vpn_serversA

List VPN servers for product: labs, starting_point, fortresses, or competitive.

ParametersJSON Schema
NameRequiredDescriptionDefault
productNolabs

TDQS

A4/5.0
Behavior3/5

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

No annotations exist, so the description carries full burden. It accurately describes a read-only list operation, but lacks details on output format, pagination, or authentication requirements. Minimal 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?

Single sentence, front-loaded verb, no fluff. Every word is necessary and informative.

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 simple parameter and no output schema, the description is fairly complete. It covers the tool's purpose and the parameter values. Minor gaps in return format but acceptable for a list tool.

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 0%, but the description explicitly lists the allowed product values ('labs, starting_point, fortresses, or competitive'), adding meaning beyond the schema's type and default.

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 lists VPN servers for specific products (labs, starting_point, fortresses, or competitive). The verb 'list' and resource 'VPN servers' are specific, distinguishing it from sibling tools like htb_switch_vpn_server or htb_download_ovpn.

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 listing servers but does not explicitly state when to use this tool versus alternatives (e.g., before connecting via htb_switch_vpn_server). No exclusion criteria or context is provided.

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

htb_whoamiA

Validate the API token and return the authenticated HTB account profile.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations provided, the description fully carries the transparency burden. It indicates a read operation (validate and return) with no mention of side effects, error behavior on invalid token, auth requirements beyond the token itself, or rate limits. The description is accurate but minimally transparent.

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

Conciseness5/5

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

The description is a single sentence of 12 words, no wasted content. It is front-loaded with the primary action and resource. Every word earns its place.

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 (no params, no output schema), the description covers the core purpose. However, it does not describe the return value structure (e.g., format or fields of the profile), leaving the agent to infer. This is a minor gap but acceptable for a minimal tool.

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?

The tool has zero parameters, so the baseline is 4 per rubric. The description does not need to add parameter semantics since there are none. It correctly describes the tool's action without parameter 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 clearly states the tool validates the API token and returns the authenticated account profile. The verb 'Validate' and 'return' specify the action, and 'API token' and 'HTB account profile' specify the resource. Among siblings like htb_user_profile, which likely requires a username, this tool's no-parameter design and focus on the current user differentiate it effectively.

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 use when needing to verify the current token and get the authenticated user's profile. However, it does not explicitly state when not to use it (e.g., if you need another user's profile, use htb_user_profile) or mention alternatives. The guidance is adequate but lacks explicit exclusions.

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.

  1. 60 tool updatesv0.1.0
    • First observedhtb_active_machine
    • First observedhtb_active_season_machine
    • First observedhtb_active_virtual_machine
    • First observedhtb_api_get
    • First observedhtb_api_post
    • First observedhtb_challenge_categories
    • First observedhtb_challenge_info
    • First observedhtb_connection_status
    • First observedhtb_download_challenge
    • First observedhtb_download_ovpn
    • First observedhtb_download_sherlock
    • First observedhtb_extend_machine
    • First observedhtb_fortress_flags
    • First observedhtb_fortress_info
    • First observedhtb_list_challenges
    • First observedhtb_list_fortresses
    • First observedhtb_list_machines
    • First observedhtb_list_prolabs
    • First observedhtb_list_seasons
    • First observedhtb_list_sherlocks
    • First observedhtb_machine_info
    • First observedhtb_machine_tasks
    • First observedhtb_prolab_flags
    • First observedhtb_prolab_machines
    • First observedhtb_prolab_overview
    • First observedhtb_recommended_machines
    • First observedhtb_reset_fortress
    • First observedhtb_reset_machine
    • First observedhtb_reset_sherlock_vm
    • First observedhtb_search
    • First observedhtb_season_leaderboard
    • First observedhtb_season_machines
    • First observedhtb_season_rewards
    • First observedhtb_season_top_leaderboard
    • First observedhtb_season_user_rank
    • First observedhtb_season_user_ranks
    • First observedhtb_sherlock_info
    • First observedhtb_sherlock_play
    • First observedhtb_sherlock_progress
    • First observedhtb_sherlock_tasks
    • First observedhtb_spawn_machine
    • First observedhtb_start_challenge
    • First observedhtb_start_container
    • First observedhtb_start_sherlock_vm
    • First observedhtb_starting_point_progress
    • First observedhtb_starting_point_tier
    • First observedhtb_stop_challenge
    • First observedhtb_stop_container
    • First observedhtb_stop_machine
    • First observedhtb_stop_sherlock_vm
    • First observedhtb_submit_challenge_flag
    • First observedhtb_submit_fortress_flag
    • First observedhtb_submit_machine_flag
    • First observedhtb_submit_machine_task
    • First observedhtb_submit_prolab_flag
    • First observedhtb_submit_sherlock_task_flag
    • First observedhtb_switch_vpn_server
    • First observedhtb_user_profile
    • First observedhtb_vpn_servers
    • First observedhtb_whoami

TDQS

C2.9/5.0

Scored across 60 tools

Disambiguation4/5

Most tools have clearly distinct purposes targeting specific HTB resources (machines, challenges, sherlocks, etc.). However, there is some potential confusion between 'htb_active_machine' and 'htb_active_virtual_machine', and the generic API tools ('htb_api_get', 'htb_api_post') could overlap with other specific tools.

Naming Consistency5/5

All tool names follow a consistent 'htb_<verb>_<resource>' pattern in snake_case with imperative verbs. The naming is predictable and easy to understand across the entire set of 60 tools.

Tool Count2/5

With 60 tools, the count is well above the typical 3-15 range and falls into 'too many' per the calibration guidelines. While the server covers a broad platform, the number of tools could be streamlined by merging overlapping functions and reducing redundancy.

Completeness5/5

The tool set provides comprehensive coverage of HTB's features including user profile, VPN, machines, fortresses, seasons, starting point, Pro Labs, challenges, sherlocks, and search. The inclusion of generic API tools ('htb_api_get', 'htb_api_post') fills any remaining gaps, making the surface effectively complete.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables interaction with the Hevy fitness tracking platform through their API. Supports managing workouts, routines, exercise templates, and webhook subscriptions for comprehensive fitness data management.
    7 npm
    ISC
  • F
    license
    B
    quality
    D
    maintenance
    Provides programmatic access to all Scoring Engine API functionality for managing Red/White/Blue team cybersecurity competitions, including scoreboard, overview, team management, service management, injects, notifications, and admin tools.
    53
    -
  • F
    license
    Not graded
    quality
    F
    maintenance
    Enables interaction with the Productboard REST API, providing tools to manage features, notes, companies, objectives, initiatives, key results, releases, webhooks, users, products, and components.
    -