Skip to main content
Glama

ScanMalware.com URL Scanner

Server Details

MCP server for ScanMalware.com URL scanning, malware detection, and analysis.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
scanmalware/mcp-server
GitHub Stars
0
Server Listing
scanmalware-mcp

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsC

Average 2.9/5 across 128 of 128 tools scored. Lowest: 1.3/5.

Server CoherenceC
Disambiguation2/5

Many tools overlap in purpose, particularly the JS fingerprint search functions (e.g., search_js_fingerprint_by_md5 and search_jsfingerprints_by_md5) which are nearly identical. The large number of get_* and search_* tools for various statistics also creates boundary ambiguity.

Naming Consistency2/5

The verb_noun pattern is mostly followed, but there are significant inconsistencies: 'jsfingerprints' vs 'js_fingerprints' vs 'js_fingerprint', and the occasional use of 'find' instead of 'search' (e.g., find_js_fingerprint_similar_by_hash). This mixed style makes it hard to predict tool names.

Tool Count1/5

With 128 tools, the server is severely over-scoped. Many tools could be combined (e.g., all search_jsfingerprints_by_* variants) or parameterized. The sheer number overwhelms an agent and suggests poor API design.

Completeness4/5

The core URL scanning workflow (submit, retrieve results, search, analyze) is well covered, including detailed sub-analyses like malware, YARA, and JS fingerprints. Minor gaps include no scan cancellation or user-specific scan listing, but overall coverage is strong.

Available Tools

128 tools
find_js_fingerprint_similar_by_hashFind JS Fingerprint Similar By HashC
Read-onlyIdempotent
Inspect

Find similar JS fingerprints by hash.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
thresholdNo
content_sha256Yes
exclude_exact_matchesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the tool's safety profile. The description adds no additional behavioral context such as similarity scoring logic, threshold interpretation, or output format. With annotations present, the lack of extra context here is acceptable, though not enriching.

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 terse sentence with no wasted words, but it is under-specified. It conveys the basic purpose but omits essential details about parameters and behavior. This is borderline under-specification, similar to a vague description, rather than a well-structured concise one.

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, 0% schema description coverage, and many sibling tools, the description is inadequate. It does not explain what 'similar' means, how threshold affects results, or how it differs from similar tools. An output schema exists but is not referenced, and the description alone leaves significant gaps for a correct invocation.

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 only hints at 'by hash', which maps to content_sha256. It provides no meaning for limit, threshold, or exclude_exact_matches. These are left entirely to the schema's basic names and default values, offering little guidance beyond what a developer might infer.

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 'Find similar JS fingerprints by hash' uses a specific verb (find), resource (JS fingerprints), and method (by hash). It clearly conveys the core operation. However, it does not distinguish from similarly named siblings like 'get_jsfingerprint_similar' or 'search_js_fingerprint_by_fuzzy_hash', so it falls short of full 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. There are many sibling tools for JS fingerprint similarity (e.g., get_jsfingerprint_similar, search_js_fingerprinter2_similar), but no exclusions, prerequisites, or alternative recommendations are mentioned.

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

get_ai_analysisGet AI AnalysisB
Read-onlyIdempotent
Inspect

Get AI analysis for a scan_id (if available).

ParametersJSON Schema
NameRequiredDescriptionDefault
scan_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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

Annotations already provide readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds a useful caveat about availability ('if available') but does not explain what happens when analysis is missing (e.g., null vs. error) or other operational behavior.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no unnecessary words. It communicates the core purpose immediately and clearly.

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 surface (one parameter, annotations, output schema present), the description is minimally adequate. However, it lacks guidance on how this tool relates to the many AI-related siblings and does not clarify the meaning of 'if available' operationally, leaving some context gaps.

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 by explaining the parameter. It only restates that the tool works 'for a scan_id', which the schema already conveys via the property name and title 'Scan Id' – no added detail on format, source, 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 a specific action (Get) and resource (AI analysis), and ties it to a scan_id. It is unambiguous, but it does not explicitly distinguish from related sibling tools like search_ai_classification or get_analyzer_results, so it misses the full 5.

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 you have a scan_id and need AI analysis, but it offers no explicit guidance on when not to use it or which alternatives to prefer. The 'if available' caveat hints at behavior but not selection criteria.

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

get_analyzer_resultsGet Analyzer ResultsC
Read-onlyIdempotent
Inspect

Get analyzer results for a scan_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
scan_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

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

The annotations already declare readOnlyHint, idempotentHint, and destructiveHint, covering the safety profile. The description adds no behavioral details beyond the annotations, such as whether scan_id must correspond to an existing scan, what happens if no results exist, or how the output is structured. This is a missed opportunity to add value beyond the structured fields.

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

Conciseness4/5

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

The description is a single, efficient sentence with no redundant words or fluff, which aligns with conciseness. However, the minimalism comes at the cost of useful context, so it is not a 5.

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 large number of sibling tools and the ambiguity of 'analyzer results', this description is incomplete. It does not explain what analyzer results are, how they relate to a scan, or when to prefer this tool over others like get_scan_result. The presence of an output schema doesn't mitigate the lack of decision-relevant 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 schema covers only the parameter name 'scan_id' with no description (0% schema description coverage). The description merely repeats 'scan_id' as part of the sentence but does not explain what a scan_id is, where to obtain it, or its format. The description should compensate for the schema's lack of detail but fails to do so.

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 a clear verb ('Get') and a resource ('analyzer results for a scan_id'), which conveys the basic action. However, 'analyzer results' is ambiguous and does not distinguish this tool from siblings like get_scan_result or get_ai_analysis, which likely provide similar outputs.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives. The description simply states the function without any context about prerequisites (e.g., scan completion), expected use cases, or why an agent should choose this over similar get_* tools.

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

get_analyzer_statsGet Analyzer StatsA
Read-onlyIdempotent
Inspect

Get analyzer statistics overview.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false, covering the safety profile. The description adds only the word 'overview,' which hints at a summary-style response but provides no additional behavioral context—thus it does not exceed or contradict the annotations.

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

Conciseness5/5

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

The description is a single, front-loaded sentence that directly states the tool's action and subject. It contains no filler or unnecessary detail, making it efficient and easy to scan.

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 zero-parameter schema, rich annotations, and presence of an output schema, the description does not need to explain return values or parameters. The only minor gap is the lack of context about what constitutes 'analyzer statistics' or how this overview differs from neighboring statistics endpoints, but the straightforward use case is adequately covered.

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

Parameters4/5

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

The tool accepts zero parameters and schema description coverage is 100%, so the schema carries full parameter meaning. The description's mention of an 'overview' moderately implies a broad, parameter-less summary, which is consistent with the empty 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 'Get analyzer statistics overview' uses a specific verb ('Get') and clearly identifies the resource ('analyzer statistics'), making the tool's purpose understandable. However, it does not distinguish this endpoint from closely related siblings like get_analyzer_results or other *_stats tools, and 'overview' adds only vague scope.

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

Usage Guidelines2/5

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

No guidance is provided about when to use this tool versus alternatives such as get_analyzer_results or other statistics endpoints. There is no mention of use cases, exclusions, or explicit conditions, leaving the agent without direction for tool selection.

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

get_api_rootGet API RootA
Read-onlyIdempotent
Inspect

Get API root metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is fully covered. The description adds minimal behavioral context—'metadata' suggests a lightweight response—but does not disclose details like pagination, rate limits, or auth requirements. This is acceptable given the simplicity.

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

Conciseness5/5

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

The description is a single, concise sentence that communicates the tool's purpose without extraneous words. It is appropriately sized for a zero-parameter, metadata-only endpoint.

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?

The tool is simple (no parameters), has strong annotations, and provides an output schema, which eliminates the need for the description to detail return values. Given these factors, the description is complete and adequate.

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 description correctly implies none are needed. Per rubric, 0 params yields a baseline of 4; the description doesn't need to compensate for missing parameter information.

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

Purpose5/5

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

The description 'Get API root metadata' clearly states the verb (Get), the resource (API root), and the expected output (metadata). This is specific and distinguishes it from all sibling tools, none of which target the API root.

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 provides no explicit guidance on when to use this tool versus alternatives. Usage is implied by the name and description (to retrieve API root metadata), but there is no mention of prerequisites, exclusions, or context such as API discovery.

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

get_bot_protectionGet Bot ProtectionA
Read-onlyIdempotent
Inspect

Get bot-protection detection for a scan_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
scan_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering safety and idempotency. The description adds minimal behavioral context beyond stating the operation, such as what happens if scan_id is invalid or whether null results are possible. It does not contradict annotations.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no wasted words. It is appropriately sized for a simple getter tool and immediately communicates the core function.

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 one-parameter read-only tool with a rich output schema and complete annotations, the description is largely sufficient. It lacks only minor contextual details like when the data might be absent, but those are likely covered by the output schema and sibling tool 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?

Schema coverage is 0% and the description merely repeats the parameter name 'scan_id' without adding format, provenance, or examples. It confirms that the parameter identifies the scan, but this is already evident from the property name, so it adds little semantic value.

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 retrieves 'bot-protection detection' for a scan_id, using specific verb 'Get' and resource. This distinguishes it from sibling tools like get_malware_by_scan or get_technologies_by_scan, which target different detection types.

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 bot-protection data is needed for a scan, but it does not provide explicit guidance on when to use this tool versus alternatives such as get_analyzer_results or get_scan_result. No exclusions or alternative tool names are mentioned.

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

get_capabilities_by_dateGet Capabilities By DateC
Read-onlyIdempotent
Inspect

Get capability stats by date.

ParametersJSON Schema
NameRequiredDescriptionDefault
scan_dateYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds no further behavioral context (e.g., output structure or pagination), but it does not contradict the annotations. With comprehensive annotations, this is adequate.

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

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. However, it is a near-verbatim repeat of the title, adding little informational value. Still, it is concise and structured.

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

Completeness2/5

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

With an output schema present, return values are covered. Annotations cover safety. Yet the description is too sparse to fully differentiate from many sibling stats/acapability tools. It lacks context about what 'capability stats' are, expected date ranges, or when to use this vs. get_latest_capabilities. This creates ambiguity for an 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?

Input schema has 0% description coverage, so the description must compensate. It only says 'by date,' which is a minimal hint about the scan_date parameter but provides no format, timezone, or semantic meaning of 'capability stats.' This is insufficient given the lack of schema descriptions.

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

Purpose4/5

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

The description uses a specific verb ('Get') and identifies the resource ('capability stats') with a clear scope ('by date'). However, it does not distinguish this tool from closely related siblings like get_latest_capabilities, so it misses the differentiation required for a 5.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives, no mention of scenarios where it is preferred, and no exclusions. It only states the basic operation.

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

get_clipboard_eventsGet Clipboard EventsC
Read-onlyIdempotent
Inspect

Get clipboard events for a scan_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
scan_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

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

Annotations already declare read-only, idempotent, and non-destructive behavior. The description adds no behavioral details such as what constitutes an event, any limits on results, or how it relates to clipboard stats or suspicious clipboard searches.

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, direct sentence with no filler or redundancy. It is appropriately concise, though it could be enriched with usage context without losing its tight structure.

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

Completeness3/5

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

Given the simple one-parameter design and rich annotations covering safety, the description is minimally sufficient but lacks context on when to use this tool over overlapping siblings. The presence of an output schema reduces the need to describe return values, but the missing guidance on alternatives lowers 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 coverage is 0% for scan_id, and the tool description simply repeats 'for a scan_id' without explaining its format, how to obtain it, or any constraints. The description fails to compensate for the missing 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 identifies the action ('Get') and the resource ('clipboard events') scoped by 'scan_id.' It distinguishes from sibling tools like get_clipboard_stats by naming 'events' instead of 'stats,' but does not explicitly name alternatives.

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

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 the many similar sibling tools (e.g., get_clipboard_stats, search_suspicious_clipboard). The usage context is entirely implied by the name and parameter, with no exclusions or alternative suggestions.

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

get_clipboard_statsGet Clipboard StatsC
Read-onlyIdempotent
Inspect

Get clipboard statistics.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

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

The annotations already establish this as a read-only, idempotent operation, so the description does not need to repeat that. However, it adds no behavioral context beyond the bare statement, such as whether stats are global or per-scan, how data is aggregated, or any limitations. The description thus fails to enhance the agent's understanding of the tool's runtime behavior.

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

Conciseness5/5

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

The description is a single short sentence with no redundant wording or unnecessary detail. It is appropriately sized for a tool with no parameters and a simple action.

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

Completeness2/5

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

Given the availability of an output schema, the description need not list return fields, but it still leaves the meaning of 'clipboard statistics' ambiguous. It does not clarify whether the data is aggregated globally, time-bound, or scoped to specific scans, nor does it relate to the sibling get_clipboard_events tool. This lack of contextual grounding makes the description insufficient on its own.

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 description coverage is 100% (vacuously). Per the calibration baseline, a description is not required to explain parameters when none exist. The absence of parameter documentation is acceptable.

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 'Get clipboard statistics' clearly identifies the action (get) and resource (clipboard statistics), but it is essentially a verbatim restatement of the title. It fails to specify what statistics are included or how they differ from the sibling tool get_clipboard_events, making it minimally clear but somewhat vague.

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 usage guidance is provided. The description does not mention when to use this tool versus alternatives like get_clipboard_events or search_suspicious_clipboard, nor does it state any contextual prerequisites or conditions.

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

get_cpe_by_scanGet CPE By ScanB
Read-onlyIdempotent
Inspect

Get CPEs for a scan_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
scan_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering safety. The description adds no behavioral context beyond what annotations and schema provide, such as return behavior, potential empty results, or dependency on scan validity.

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, direct sentence with no waste, making it highly concise. However, it is under-specified for a tool that could benefit from brief context, though the simple structure is not a penalty by itself.

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 low complexity (one parameter), the output schema, and strong annotations, the description is minimally viable. However, it lacks usage guidance and parameter semantics, and does not clarify what CPEs are or where scan_id comes from, leaving gaps that structured fields cannot fully fill.

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%, and the description merely repeats 'scan_id' without explaining its meaning, format, or how to obtain it. The parameter name suggests it is an identifier, but no additional semantic value is provided beyond the schema's 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 action ('Get') and resource ('CPEs') with a specific scope ('for a scan_id'). It distinguishes this tool from the many sibling get_*_by_scan tools by specifying the CPE resource, which is unique among 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 provided on when to use this tool versus alternatives such as search_cpe or other get_*_by_scan tools. There is no mention of context, prerequisites, or exclusions, leaving the agent to infer usage from the name alone.

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

get_cpe_statsGet CPE StatsC
Read-onlyIdempotent
Inspect

Get CPE statistics.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

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

Behavioral safety is already declared by annotations (readOnlyHint, openWorldHint, idempotentHint, destructiveHint=false), but the description adds no additional behavioral context such as what the statistics represent or any data-range limitations. It contributes nothing beyond the annotations.

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

Conciseness2/5

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

The description is a single sentence but is under-specified. It provides no useful information beyond restating the tool name, so it is not effective conciseness; it lacks substance.

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?

Despite having no parameters and an output schema, the description fails to explain what CPE refers to, what statistics are returned, or how this tool relates to sibling gaps. The agent cannot make an informed choice about using this 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 input schema has zero parameters, and schema coverage is 100%, so there is no parameter burden for the description to carry. The baseline of 4 for zero-parameter tools applies here.

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 'Get CPE statistics' is essentially a verbatim restatement of the title 'Get CPE Stats'. It does not provide any scope or distinguishing details, making it a tautology rather than a meaningful explanation of what the tool does.

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

Usage Guidelines2/5

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

No usage guidance is provided. The description does not indicate when to use this tool versus alternative stats endpoints like get_analyzer_stats or related CPE tools such as get_cpe_by_scan and search_cpe.

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

get_ct_certificatesGet CT CertificatesC
Read-onlyIdempotent
Inspect

Get certificate transparency data for a domain.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

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

Annotations already provide readOnlyHint, idempotentHint, and destructiveHint=false. The description adds no behavioral context beyond what annotations state, such as scope constraints, rate limits, or output size considerations.

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 short sentence, which is concise and front-loaded. Every word serves a purpose, but it may be under-specified rather than appropriately sized for the task.

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

Completeness2/5

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

While the tool is simple with one parameter and has an output schema, the description lacks enough detail to distinguish it from the many CT-related sibling tools. It does not clarify what specific CT data is returned or when to choose this tool over similar ones.

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 does not compensate. The 'domain' parameter is only mentioned as 'for a domain' with no format, example, or constraints. The description adds negligible meaning over the bare schema field.

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 it retrieves certificate transparency data for a domain, using a specific verb and resource. However, it does not differentiate from sibling CT tools like get_ct_dns_records or get_ct_timeline, making the exact scope of 'certificate transparency data' unclear.

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

Usage Guidelines2/5

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

The description offers no guidance on when to use this tool versus alternatives. It does not mention exclusions, prerequisites, or contextual hints, 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.

get_ct_dns_recordsGet CT DNS RecordsB
Read-onlyIdempotent
Inspect

Get CT DNS records for a domain.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

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

The annotations already declare readOnlyHint, openWorldHint, idempotentHint, and non-destructive behavior. The description adds no additional behavioral context, such as what data is returned, historical scope, 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, compact sentence with no filler. It is appropriately sized for a simple getter tool.

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

Completeness3/5

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

Despite having an output schema and rich annotations, the description leaves 'CT DNS records' undefined, which could confuse agents. However, the simple one-parameter design and annotations partially compensate.

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 was expected to compensate for the sole parameter. It only repeats that the parameter is a domain, adding no format, examples, 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 a specific action ('Get') and resource ('CT DNS records') for a given domain. It distinguishes from sibling tools like get_ct_certificates and get_ct_domains_by_ip by targeting DNS records specifically.

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 the many sibling CT-related tools. The description only states what it does without suggesting alternatives or exclusions.

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

get_ct_domains_by_ipGet CT Domains By IPC
Read-onlyIdempotent
Inspect

Find CT domains on an IP address.

ParametersJSON Schema
NameRequiredDescriptionDefault
ip_addressYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds no behavioral context beyond the basic function, such as result pagination, rate limits, or typical response format. It does not contradict annotations, but provides zero additional transparency.

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

Conciseness4/5

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

The description is a single clear sentence, appropriately concise for a simple tool with one parameter. It is front-loaded and wastes no words, though it is arguably too terse to be fully informative.

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?

Although an output schema exists and annotations are strong, the description is too minimal to provide complete context. It does not explain what 'CT domains' are, how results are scoped historically, or how this differs from the many adjacent CT-related tools. Given the tool's simplicity, a more descriptive explanation would be expected for an agent to invoke it correctly.

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

Parameters2/5

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

With schema description coverage at 0%, the description must compensate. It only implies that ip_address is an IP address, but does not specify IPv4 vs IPv6, whether CIDR is allowed, or any format requirements. The phrase 'on an IP address' adds minimal semantic value beyond the parameter name.

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 finds CT domains on an IP address, using a specific verb and resource. It is not a pure tautology but closely mirrors the title. It does not explicitly differentiate from sibling tools like get_ct_certificates or get_ct_dns_records, but the resource 'CT domains' is reasonably distinct.

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 search_by_ip or other get_ct_* tools. The description does not mention exclusions, prerequisites, or preferred use cases, leaving the agent without context for tool selection.

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

get_ct_similar_domainsGet CT Similar DomainsB
Read-onlyIdempotent
Inspect

Find similar CT domains for a domain.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is clear. The description adds no extra behavioral context such as how similarity is determined, pagination, or limitations, so it provides minimal value beyond annotations.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with zero wasted words. It effectively communicates the core purpose in the minimum possible space.

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

Completeness3/5

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

For a simple one-parameter read tool with output schema present, the description is minimally viable. However, it does not clarify what 'similar CT domains' means operationally (e.g., same issuer, or overlapping certificates), which could lead to incorrect expectations.

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?

There is one parameter 'domain' with 0% schema coverage, but the description explicitly mentions 'for a domain', reinforcing the parameter's meaning. No additional format or constraints are described, leaving room for ambiguity.

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

Purpose4/5

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

The description states the specific action 'Find similar CT domains' with a clear input 'for a domain'. It uses a specific verb and resource, but does not explicitly distinguish from sibling CT tools like get_ct_domains_by_ip, so it misses the top bar.

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 over alternatives. There is no mention of context, exclusions, or related tools, leaving the agent without direction on selecting this tool among many similar CT getters.

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

get_ct_timelineGet CT TimelineB
Read-onlyIdempotent
Inspect

Get CT certificate timeline for a domain.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

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

The description only restates what the tool does without adding behavioral context. Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint, but the description does not elaborate on what a 'timeline' includes, ordering, date ranges, or any other behavioral traits. It adds no value beyond the title.

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, and front-loaded sentence with no unnecessary words. It earns every character and is appropriately concise for a simple tool.

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

Completeness3/5

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

The tool is simple with one parameter, has an output schema, and is accompanied by safety-related annotations, so the description does not need to explain return values. However, it lacks usage guidance and behavioral context, making it minimally viable but not fully complete for a tool with a large sibling family.

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 has one parameter 'domain' with no description (0% coverage). The description's phrase 'for a domain' only repeats the parameter name and does not add meaningful semantics such as expected format, examples, or constraints. The parameter meaning is self-evident from its name, but the description fails to compensate for the lack of schema-based documentation.

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

Purpose5/5

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

The description uses a specific verb 'Get' and clearly identifies the resource as 'CT certificate timeline' for a domain. It distinguishes itself from sibling tools like get_ct_certificates by focusing on a timeline rather than the certificates themselves.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives such as get_ct_certificates or get_domain_history. It lacks any mention of specific use cases, prerequisites, or comparison with related tools.

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

get_domain_historyGet Domain HistoryB
Read-onlyIdempotent
Inspect

Get historical scans for a domain (paginated).

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
limitNo
domainYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint, covering the safety profile. The description adds 'paginated' as a behavioral trait, which is useful. However, it does not disclose other behaviors like whether results are ordered, what happens with no scans, or the meaning of 'historical' in terms of time range.

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

Conciseness5/5

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

The description is a single, front-loaded sentence that conveys the core purpose. It avoids redundancy with the title and annotations, making it easy to parse. Every word earns its place, and the parentheses efficiently add the pagination detail.

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

Completeness3/5

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

The output schema and annotations provide substantial structured context, so the description need not explain return values or safety. However, it lacks guidance on alternatives, expected data volume, or pagination behavior, making it only minimally sufficient for a list-returning endpoint among many similar tools.

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 has 3 parameters (domain, page, limit) with 0% description coverage in the description. The word 'paginated' hints that page and limit exist, but the description does not explain the meaning of 'domain', why 'limit' is capped, or how page indexing works. It adds minimal value beyond the schema's property names and defaults.

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

Purpose5/5

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

The description uses a specific verb ('Get') with a clear resource ('historical scans for a domain') and a pacing qualifier ('paginated'). It distinguishes from sibling tools like get_domain_scans (likely current scans) and get_domain_stats by focusing on historical data and pagination.

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, contrast with get_domain_scans, or suggest scenarios for historical data retrieval. The mere existence of a functional description implies usage but does not clarify edge cases.

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

get_domain_scansGet Domain ScansC
Read-onlyIdempotent
Inspect

Get recent scans for a domain.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
domainYes
statusNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior3/5

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

Annotations already disclose read-only, open-world, idempotent, and non-destructive behavior. The description adds the 'recent' scoping behavior, indicating a time-limited result set, but does not define 'recent' or disclose any other behavioral traits like rate limits or response pagination.

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 concise at just seven words, with no filler or redundancy. However, it leans toward under-specification rather than being optimally informative, so it loses one point for not adding even small clarifying details about 'recent' or parameter usage.

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 three parameters and zero schema description coverage, the description is not complete enough for an agent to select and invoke the tool correctly without guessing the meaning of 'limit' and 'status'. The output schema exists, so return values are covered, but parameter semantics and the definition of 'recent' remain ambiguous.

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 implicitly covers the 'domain' parameter via 'for a domain', but 'limit' and 'status' are left completely unexplained. No added meaning is provided for these fields, so the description only partially compensates for the missing schema descriptions.

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 'Get recent scans for a domain' with a specific verb (get), resource (scans), and domain scope. It distinguishes itself from generic scan listing tools in the sibling set by focusing on a domain, though it doesn't explicitly compare to alternatives.

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 other scan-related tools such as get_recent_scans or search_scans. The 'for a domain' phrase implies domain-specific usage, but there are no explicit usage conditions or exclusions.

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

get_domain_statsGet Domain StatsC
Read-onlyIdempotent
Inspect

Get summary statistics for a domain.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true, so the safety profile is known. However, the description adds no additional behavioral context beyond the annotations—no mention of what data is aggregated, time range, or response format.

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

Conciseness4/5

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

The description is a single short sentence with no wasted words. It is efficiently structured but somewhat underspecified, which is a trade-off.

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 is part of a large family of stats tools with an output schema, the description is too vague. It does not clarify what 'summary statistics' include or how this tool differs from closely related ones like get_analyzer_stats or get_ip_stats.

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 has only one parameter 'domain' with no description (0% schema coverage), so the description must compensate. The description merely restates 'for a domain' and does not explain expected format, acceptable values, or meaning beyond the parameter name.

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 (Get) and resource (summary statistics for a domain), making it clear what the tool does. However, it does not distinguish this from the many other get_*_stats sibling tools, which all share a similar pattern.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives like get_domain_history or get_ip_stats. No context, exclusions, or prerequisites are provided.

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

get_faviconGet FaviconC
Read-onlyIdempotent
Inspect

Get favicon metadata for a scan_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
scan_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is clear. However, the description adds no extra behavioral context (e.g., return format, rate limits, or whether it returns the image itself vs. metadata). It merely restates the tool's primary function without providing new information.

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

Conciseness5/5

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

The description is a single concise sentence with no filler or redundancy. It is appropriately sized for a simple getter tool and every word serves a purpose.

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

Completeness3/5

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

For a simple one-parameter read tool with an output schema, the description is adequate but leaves gaps. It lacks usage guidance and parameter semantics, making it not fully complete on its own. However, annotations and output schema compensate for some transparency and return value expectations.

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 has 0% description coverage, and the description only mentions 'scan_id' by name without explaining its format, semantics, or constraints. Saying 'for a scan_id' adds minimal meaning beyond the parameter name; it does not compensate for the lack of schema documentation.

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

Purpose4/5

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

The description clearly states the action ('Get') and the resource ('favicon metadata') with a specific scope ('for a scan_id'). It is direct and unambiguous, but does not explicitly differentiate from sibling tools like search_by_favicon or get_favicon_stats, which also deal with favicons.

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 exclusions, prerequisites beyond scan_id, or recommended scenarios. The description simply states what it does without contextualizing when it is the right choice.

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

get_favicon_statsGet Favicon StatsB
Read-onlyIdempotent
Inspect

Get favicon statistics.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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

The description adds no behavioral detail beyond the implied read operation, which is consistent with the annotations (readOnlyHint=true, idempotentHint=true, destructiveHint=false, openWorldHint=true). The annotations already declare the safety profile, so the description's lack of additional context is acceptable but not enriching. No contradiction.

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

Conciseness5/5

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

The description is a single three-word sentence, using no unnecessary words. It is maximally concise for a simple no-parameter stats endpoint.

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

Completeness3/5

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

The tool is a no-parameter getter with a likely rich output schema, but the description leaves 'statistics' undefined—no indication of scope (global, per-scan), time range, or categories. For a sibling-heavy context, this may lead to confusion with other stats endpoints. The output schema exists, so return values needn't be described, but the semantics of 'favicon statistics' could be clearer.

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 (0 required, 0 total), and the schema description coverage is 100% vacuously. The description doesn't need to explain parameters, and the 4 baseline applies due to zero params.

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 names the action 'Get' and the resource 'favicon statistics', clearly indicating a read operation for statistical data about favicons. However, it doesn't distinguish this from sibling stats tools like get_screenshot_stats or get_cpe_stats beyond the resource name, and 'statistics' is left unspecified.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool vs alternatives. There is no mention of use cases, exclusions, or related search tools such as search_by_favicon or search_favicon_mmh3. The agent is left to infer from the name alone.

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

get_healthGet HealthA
Read-onlyIdempotent
Inspect

Get API health status.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds no further behavioral context (e.g., return format, uptime details, auth requirements), but it does not contradict the annotations.

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

Conciseness5/5

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

The description is a single concise sentence of five words, with no wasted content and the key information 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 simple health-check tool with zero parameters, rich annotations, and an output schema present, the description is fully adequate. The low complexity and structured metadata fill all gaps.

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 guidelines. The description adds no parameter details, but none are 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 'Get API health status.' uses a specific verb ('Get') and resource ('API health status'), clearly distinguishing it from other get_* tools that target specific subsystems like get_js_fingerprinter2_health or get_scan_result.

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 checking API health, but it does not explicitly state when to use this tool versus alternatives like get_js_fingerprinter2_health. The context is clear enough for a generic health check, but no exclusions or alternative references are provided.

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

get_ids_alertsGet IDS AlertsB
Read-onlyIdempotent
Inspect

Get IDS alerts for a scan_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
scan_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the safety profile is covered. However, the description adds no additional behavioral context, such as authentication requirements, rate limits, or output-specific caveats. It merely restates the tool's purpose without elaborating on side effects or dependencies.

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

Conciseness5/5

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

The description is a single, concise sentence with no redundant information. It is front-loaded with the verb and resource, making it highly efficient and easy to parse.

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

Completeness2/5

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

Although an output schema exists, the description is too sparse to fully contextualize the tool within the extensive sibling set. It lacks usage context and parameter elaboration, leaving an agent without enough information to select this tool confidently over other scan-related data retrieval options.

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, and the description only repeats the parameter name ('scan_id') without explaining its format, origin, or constraints. This provides minimal added meaning beyond the schema structure, failing 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.

Purpose5/5

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

The description clearly states the tool's function: 'Get IDS alerts for a scan_id.' It uses a specific verb (Get) and resource (IDS alerts), and the parameter is explicitly mentioned. This distinguishes it from sibling tools that handle other scan-related data, such as get_scan_result or get_malware_by_scan.

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 preferred contexts, exclusions, or relationships to other tools in the sibling set. An agent would have to infer usage from the name alone, which is insufficient given the large number of similar get_* tools.

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

get_ip_statsGet IP StatsC
Read-onlyIdempotent
Inspect

Get IP statistics (paginated).

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
limitNo
ip_addressYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

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

Annotations already cover the safety profile (readOnlyHint=true, idempotentHint=true, destructiveHint=false). The description adds only 'paginated', which is redundant with the page and limit parameters in the schema. No additional behavioral context (e.g., return format, rate limits, scope of statistics) is provided.

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

Conciseness4/5

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

The description is a single, concise sentence with no filler or redundancy. It front-loads the core purpose. However, the extreme brevity leaves out necessary details, so it sacrifices substance for 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?

The tool has three parameters and an output schema, but the description is too sparse to be complete. It does not specify the scope of 'IP statistics', what data is returned, or how this tool fits among the many sibling tools. The output schema reduces the need to describe return values, but the core semantics are still missing.

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 does not explain what 'ip_address' means, what statistics are returned, or how 'page' and 'limit' control pagination. 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 identifies the resource (IP statistics) and the action (get), which is a specific verb+resource combination. However, it does not specify what kind of statistics are included, and there is no differentiation from sibling tools like get_domain_stats, though it is distinct from IP-specific lookups like search_by_ip.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives, no prerequisites, and no exclusions. The mention of pagination hints at a large dataset but does not explain when to choose this over other IP-related tools or how it differs from them.

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

get_jarm_signaturesGet JARM SignaturesB
Read-onlyIdempotent
Inspect

Get JARM signatures for a scan_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
scan_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

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

The description adds no behavioral context beyond the annotations, which already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint false. It does not disclose any additional traits such as output format, error conditions, 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 is front-loaded with the key action and resource. It earns its place by stating the tool's purpose with no filler or redundancy.

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

Completeness3/5

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

Given the presence of an output schema and comprehensive annotations, the minimal description is partially sufficient for a simple read-only retrieval. However, it omits contextual details like what JARM signatures are or any prerequisite conditions for scan_id, making it slightly incomplete for an agent unfamiliar with the domain.

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% and the description only restates the parameter name ('scan_id') without adding meaning. It does not clarify the format, expectations, or how the scan_id relates to the returned data, so the description fails to compensate for the lack of schema documentation.

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

Purpose5/5

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

The description clearly states the action (Get), the resource (JARM signatures), and the scope (for a scan_id). This distinguishes it from sibling tools like search_by_jarm or get_jarm_stats by specifying the retrieval context.

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 implies it is used when a scan_id is available, but it does not explicitly mention exclusions or alternative tools such as get_jarm_stats or search_by_jarm.

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

get_jarm_statsGet JARM StatsC
Read-onlyIdempotent
Inspect

Get JARM statistics.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

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

The annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is clear. However, the description adds no behavioral context beyond the annotations—it does not explain what 'statistics' denotes (e.g., time range, aggregation level, or global vs. per-scan scope). This leaves the agent without useful operational expectations.

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 filler or redundancy. It clearly states the tool's action and target. It is not 5 because it lacks additional structure (e.g., breaking down what 'statistics' includes) that would enhance utility without adding excessive length.

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 has no parameters, an output schema exists, and annotations cover safety, the description is minimally adequate. However, it does not clarify what specific JARM statistics are provided (e.g., counts, distributions, global aggregates), and the abundance of sibling stats tools makes this ambiguity more consequential. The description could be improved with a brief mention of the data scope.

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 trivially 100%. Per the rubric, a baseline of 4 is appropriate for parameterless tools, and the description does not need to explain parameter semantics that do not exist. The simplicity of the interface is fully captured by 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 'Get JARM statistics' clearly identifies the verb (Get) and resource (JARM statistics), distinguishing it from siblings like get_jarm_signatures or search_by_jarm. However, it does not elaborate on what 'statistics' encompasses, leaving some ambiguity about the exact nature of the data returned.

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?

The description provides no guidance on when to use this tool versus alternatives such as get_jarm_signatures or get_analyzer_stats. Given the large number of sibling tools, the lack of any comparative context or usage scenarios makes it difficult for an agent to decide when this tool is the appropriate choice.

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

get_jsfingerprintGet JS FingerprintC
Read-onlyIdempotent
Inspect

Get JS fingerprint by ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
fingerprint_idYes
include_functionsNo
include_http_headersNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so safety is covered. The description adds only 'by ID', which is a scope constraint but not a behavioral disclosure (e.g., whether optional flags change the response, or what happens on not-found). No contradiction exists, but the added context is minimal.

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

Conciseness4/5

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

The description is a single, front-loaded sentence with no filler. It is concise and to the point, though the content is sparse. It earns its place by stating the core purpose, but it is not 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 moderate complexity (3 parameters, optional flags), an output schema exists, so return values need not be described. However, the tool has many close siblings, and the description does not clarify what a 'fingerprint' includes, how the optional flags affect results, or when a caller would choose this over search/get source variants. The minimal text leaves the agent under-informed.

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 only implies fingerprint_id's role ('by ID') but says nothing about include_functions or include_http_headers. These two optional booleans could alter the response, and without explanation the agent must guess.

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

Purpose4/5

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

The description clearly states the tool's action ('Get'), resource ('JS fingerprint'), and key scope ('by ID'), making it a singular lookup. It is distinct from siblings like get_jsfingerprint_source or get_js_fingerprints (plural), though it does not explicitly call out those alternatives.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives. With many sibling fingerprint tools (e.g., get_jsfingerprint_source, search_js_fingerprint_by_hash), the description does not explain that this is for fetching a full fingerprint object by its ID, nor does it mention any exclusions or fallbacks.

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

get_jsfingerprint_bundle_statsGet JS Fingerprint Bundle StatsC
Read-onlyIdempotent
Inspect

Get JS fingerprint bundle statistics.

ParametersJSON Schema
NameRequiredDescriptionDefault
to_dateNo
from_dateNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, which inform the agent of the safe, read-only nature. The description adds no behavioral context beyond the annotations, such as what is counted, aggregation details, or any filtering effects. It merely restates the tool's 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 redundant wording. It is front-loaded and easy to parse. However, it is so minimal that it borders on under-specification, though it still functions as a clear one-line summary.

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

Completeness2/5

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

The tool has a simple schema with optional date parameters, and an output schema exists. Despite this, the description does not explain what 'bundle statistics' are, how they are computed, or how the date range affects results. The agent is left with an ambiguous mental model of the tool's behavior.

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 two parameters (from_date, to_date) but no descriptions, and schema description coverage is 0%. The tool description does not mention these parameters or explain their purpose, leaving the agent to infer from parameter names. The description should have noted that the tool returns stats for a date range.

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

Purpose4/5

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

The description states a clear verb ('Get') and resource ('JS fingerprint bundle statistics'), which matches the tool name and conveys the basic function. However, it does not specify what 'bundle statistics' includes or how this differs from sibling stats tools like get_jsfingerprint_library_stats, leaving some 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 no guidance on when to use this tool compared to the many sibling statistics tools. It does not mention that it is for bundle-specific statistics, nor does it suggest alternatives or exclusions. The usage context is entirely implicit.

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

get_js_fingerprinter2Get JS Fingerprinter2C
Read-onlyIdempotent
Inspect

Get JS Fingerprinter2 results for a scan_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
scan_idYes
include_detailed_eventsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the safety profile is covered. However, the description itself adds no behavioral context beyond what the annotations provide—it merely states the operation. No extra context like response format, rate limits, or result scope is disclosed.

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

Conciseness5/5

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

The description is a single, focused sentence that is front-loaded with the tool's purpose. No filler or redundancy; it earns its place by clearly stating the operation and key input.

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 large number of sibling tools and the presence of an optional parameter, the description is too sparse. It doesn't clarify what JS Fingerprinter2 results are, how they differ from other JS fingerprint tools, or what include_detailed_events controls. The output schema and annotations help, but the description alone is insufficient for effective tool selection.

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% and the description mentions only scan_id, not include_detailed_events. It provides minimal semantic value for the primary parameter but fails to explain the purpose or effect of the optional parameter, leaving an important part of the interface 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 'Get' and the resource 'JS Fingerprinter2 results' for a given scan_id. It is specific about the operation and scope, though it doesn't explicitly distinguish from sibling tools like get_jsfingerprint or get_js_fingerprints.

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 only states what it does, not the context in which it should be selected. With many similar sibling tools, this leaves the agent without clear selection criteria.

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

get_js_fingerprinter2_coverageGet JS Fingerprinter2 CoverageC
Read-onlyIdempotent
Inspect

Get JS Fingerprinter2 fingerprint coverage.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, but the description adds no behavioral context beyond restating the title. It does not explain what 'coverage' means, what data is returned, or any potential caveats.

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

Conciseness3/5

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

The description is a single sentence with no unnecessary words, but it merely restates the tool title ('Get JS Fingerprinter2 Coverage') without adding substantive information. It is concise in length but lacks informative content.

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

Completeness2/5

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

The description is too sparse to fully contextualize the tool. It does not clarify what 'coverage' refers to, making it difficult for an agent to judge when this tool is appropriate, especially given the large number of similar fingerprint-related tools.

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, so there is nothing to document. According to the rubric, a no-parameter tool receives a baseline of 4; the description does not need to add parameter information.

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

Purpose4/5

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

The description specifies a clear verb ('Get') and a distinct resource ('JS Fingerprinter2 fingerprint coverage'), which differentiates it from sibling tools like stats, health, or fingerprints. However, 'coverage' is not explained, leaving some ambiguity about the exact 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?

The description provides no guidance on when to use this tool versus alternatives. It does not mention exclusions, prerequisites, or related tools such as get_js_fingerprinter2_stats or get_js_fingerprinter2_health.

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

get_js_fingerprinter2_healthGet JS Fingerprinter2 HealthB
Read-onlyIdempotent
Inspect

Get JS Fingerprinter2 health check.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=true, so safety is covered. The description adds no behavioral detail beyond the tautological 'health check'—no mention of rate limits, auth, or what status is returned. It merely restates what the tool name implies.

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

Conciseness5/5

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

One short sentence, no wasted words, front-loaded with the action. Efficiently communicates the tool's purpose.

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 zero-parameter health check with an output schema (not shown), the description is sufficient. It lacks any detail about response semantics, but the output schema covers that. It also doesn't clarify what 'health' means, but for a simple endpoint this is acceptable.

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?

There are zero parameters, so schema coverage is vacuous at 100%. Baseline for 0 params is 4, and the description correctly has no need to explain parameters. It does not add meaning but is not required to.

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 states a specific verb ('Get') and resource ('JS Fingerprinter2 health check'), making the action clear. However, it does not differentiate from the sibling tool 'get_health' or explain what a health check entails, so it lacks explicit sibling distinction.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus generic 'get_health' or other JS Fingerprinter2 endpoints. The description is purely declarative and does not mention alternatives, prerequisites, or exclusions.

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

get_js_fingerprinter2_statsGet JS Fingerprinter2 StatsC
Read-onlyIdempotent
Inspect

Get JS Fingerprinter2 stats.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint, so the safety profile is known. However, the description adds zero behavioral context, such as what statistics are returned, aggregation level, or any caveats, beyond what the annotations provide.

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

Conciseness3/5

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

The description is extremely concise with no wasted words, but it is under-specified. It is not appropriately sized for the ambiguity because it conveys no more information than the tool's title.

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 sits among ~100 siblings including many stats tools, this description provides no contextual distinction. It is completely inadequate for selecting this tool correctly over alternatives like get_analyzer_stats or get_jarm_stats.

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 is empty, so the baseline of 4 applies. There is nothing for the description to add regarding parameter 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 'Get JS Fingerprinter2 stats' is essentially the title repeated verbatim. It uses a generic verb and the resource name but provides no scope or differentiation from sibling stats tools like get_analyzer_stats or get_jsfingerprint_library_stats.

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?

There is no guidance on when to use this tool versus alternatives. It does not mention context, prerequisites, or exclusions, leaving the agent to guess from the name alone.

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

get_jsfingerprint_hash_prevalenceGet JS Fingerprint Hash PrevalenceB
Read-onlyIdempotent
Inspect

Get JS fingerprint hash prevalence for a scan_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
scan_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the safety profile is covered. The description adds the scan_id scoping but no extra behavioral context (e.g., what 'prevalence' means or any limitations). This is a neutral score given annotation coverage.

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

Conciseness5/5

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

The description is a single, tightly worded sentence with no filler. It is front-loaded and communicates the essential purpose efficiently.

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

Completeness3/5

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

The tool is simple (one parameter, output schema exists), so the description meets the minimum viable threshold. However, it lacks usage guidance and does not clarify what 'prevalence' means, making it incomplete for agents unfamiliar with the domain.

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 has 0% description coverage, and the description only repeats 'for a scan_id' without explaining what scan_id is or its format. For a single parameter, the name is somewhat self-explanatory, but the description does not compensate for the missing schema 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's function with a specific verb ('Get') and resource ('JS fingerprint hash prevalence') scoped to a scan_id. It distinguishes from sibling tools like get_jsfingerprint_similar and get_jsfingerprint_similarity_counts by focusing on 'prevalence'.

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 the many related JS fingerprint tools. It does not mention alternatives or exclusions, leaving the agent to infer usage from the name alone.

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

get_jsfingerprint_library_statsGet JS Fingerprint Library StatsD
Read-onlyIdempotent
Inspect

Get JS fingerprint library statistics.

ParametersJSON Schema
NameRequiredDescriptionDefault
to_dateNo
from_dateNo
min_countNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. However, the description adds no behavioral context beyond the title, such as time-range filtering, aggregation semantics, or how min_count affects results. It does not contradict annotations, but it also provides zero incremental value.

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

Conciseness2/5

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

The description is extremely short (one sentence), but it is under-specified and essentially restates the tool title. While concise, it fails to earn its place by adding any new information, making it closer to a tautology than effective 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 existence of an output schema and rich annotations, the tool is not entirely devoid of context, but the description itself is insufficient. With many similar 'get_*_stats' siblings and a 0% schema coverage, the description leaves major gaps about what 'library stats' means and how parameters shape the query. It is a minimum-viable description at best.

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 does not explain any of the three parameters (to_date, from_date, min_count). With no documentation in either schema or description, the agent cannot infer what these parameters mean or how to set them.

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 a clear verb ('Get') and resource ('JS fingerprint library statistics'), but it is ambiguous what 'library' refers to (JavaScript libraries vs the fingerprint library itself). It does not distinguish this from sibling tools like get_jsfingerprint_bundle_stats or get_jsfingerprint_similarity_counts, which also provide statistics.

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?

The description provides no guidance on when to use this tool vs alternatives, no prerequisites, and no context about typical use cases. It is a single sentence with no usage context, failing entirely to help an agent decide when to invoke it.

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

get_js_fingerprintsGet JS FingerprintsC
Read-onlyIdempotent
Inspect

Get JavaScript fingerprints for a scan_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
scan_idYes
include_functionsNo
include_http_headersNo
include_vectors_infoNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

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

The annotations already declare readOnly, openWorld, idempotent, and non-destructive, which covers the safety profile. The description adds no extra behavioral context, such as the meaning of the include_* flags or how results are scoped, beyond restating the scan_id parameter.

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 zero waste. It earns its place but is so brief that it misses opportunities to add clarifying 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?

Between the descriptive tool name, the one-line description, the rich annotations, and the presence of an output schema, the tool is minimally viable. However, the lack of guidance on optional parameters and the absence of usage context relative to sibling tools make it incomplete for nuanced decisions.

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 clarifies scan_id's role but says nothing about the three optional boolean parameters (include_functions, include_http_headers, include_vectors_info), leaving their semantics fully to the reader's inference from their 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 uses a specific verb ('Get') and resource ('JavaScript fingerprints') scoped by 'scan_id', making the core action clear. However, it does not differentiate this tool from closely related siblings like get_jsfingerprint or get_js_fingerprinter2, so it loses a point.

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 guidance is provided. The description does not indicate when to prefer this tool over the many JS fingerprint search/retrieval siblings, nor does it mention alternatives or exclusions.

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

get_jsfingerprint_similarGet JS Fingerprint SimilarC
Read-onlyIdempotent
Inspect

Find similar JS fingerprints.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo
thresholdNo
fingerprint_idYes
exclude_same_scanNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

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

The annotations (readOnlyHint=true, idempotentHint=true, destructiveHint=false) already convey that this is a safe, read-only operation. The description adds no behavioral context beyond that, such as how similarity is computed, whether results are paginated, or the effect of the threshold parameter. It does not contradict the annotations, but it also fails to enrich the agent's understanding.

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

Conciseness2/5

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

The description is a single sentence, which is superficially concise, but it is under-specified. It lacks necessary operational details, making it more of a tautological placeholder than a genuinely concise explanation. True conciseness would convey key information efficiently, which this does not.

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 complexity (5 parameters, output schema, many sibling tools), a single sentence is grossly insufficient. The description does not explain expected inputs, output structure, or how it relates to the broader API. It fails to provide the contextual groundwork needed for correct invocation, especially without any parameter descriptions.

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 does not explain any of the five parameters (limit, offset, threshold, fingerprint_id, exclude_same_scan). While the schema provides parameter names and types, the description adds no meaning—for instance, it does not clarify what 'threshold' controls or how 'exclude_same_scan' affects results. This leaves the agent without essential operational detail.

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 'Find similar JS fingerprints' clearly states the action (find) and resource (JS fingerprints), giving a basic understanding of the tool's purpose. However, it does not distinguish this tool from many siblings with similar names like search_js_fingerprint_by_fuzzy_hash or search_js_fingerprinter2_similar, so it lacks the specificity to stand out.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives. The description does not mention any context, preconditions, or exclusions. With numerous related search tools available, this lack of usage direction leaves the agent uncertain about the appropriate scenario for this tool.

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

get_jsfingerprint_similarity_countsGet JS Fingerprint Similarity CountsD
Read-onlyIdempotent
Inspect

Get JS fingerprint similarity counts.

ParametersJSON Schema
NameRequiredDescriptionDefault
max_countNo
thresholdNo
fingerprint_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, but the description adds no behavioral information beyond the title. It does not explain the effect of threshold or max_count, nor does it describe the shape of the returned counts.

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 concise but under-specified; it is a single tautological sentence that adds no information beyond the title. It is not a case of efficient communication but rather missing content.

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 large set of sibling tools and the terse description, the tool is not adequately defined. The output schema and annotations provide some structure, but the description fails to clarify the tool's unique role, parameter semantics, or selection criteria, making it nearly impossible for an agent to use correctly.

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

Parameters1/5

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

With schema description coverage at 0%, the description was expected to compensate by explaining the parameters, but it does not mention fingerprint_id, threshold, or max_count at all. The agent cannot infer what these parameters mean or how they affect the output.

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 restates the tool's name/title without explaining what a 'similarity count' is or how it relates to the fingerprint. It does identify a specific verb and resource, but the resource term is opaque, so it fails to convey the tool's actual function in a way that distinguishes it from sibling tools like get_jsfingerprint_similar.

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 provided on when to use this tool relative to its many siblings. The description does not mention alternatives, prerequisites, or any selection criteria, leaving the agent to guess.

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

get_jsfingerprint_sourceGet JS Fingerprint SourceC
Read-onlyIdempotent
Inspect

Get JS fingerprint source.

ParametersJSON Schema
NameRequiredDescriptionDefault
fingerprint_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

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

The description adds no behavioral context beyond what annotations already provide. Annotations declare readOnlyHint and idempotentHint, but the description fails to clarify what 'source' means (e.g., raw JavaScript, metadata) or any output format details, which is a gap given the tool's purpose.

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 one-sentence description is brief but under-specified. It provides no informative content beyond the tool's name, making it inefficient rather than concise. A good concise description still carries essential 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?

Given the tool's context among many similar siblings and a single parameter, the description is incomplete. It lacks usage context, differentiation, and parameter semantics, and does not leverage the output schema to enhance understanding. The agent cannot reliably infer when and how to use this 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 input schema has one required integer fingerprint_id with 0% description coverage, and the tool description does not explain this parameter. The name 'fingerprint_id' is somewhat self-explanatory, but no additional meaning is provided, so the description does not compensate for the schema's lack of detail.

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

Purpose3/5

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

The description 'Get JS fingerprint source.' is clear about the resource but is essentially a restatement of the title. It does not specify scope (e.g., by fingerprint_id) or differentiate from siblings like get_jsfingerprint or get_js_fingerprints, so it lacks the specificity needed for a 4 or 5.

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

Usage Guidelines2/5

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

No guidance is given on when to use this tool versus the many similar fingerprint-related tools. There is no mention of prerequisites, typical use cases, or exclusions, leaving the agent without context to select it appropriately.

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

get_js_library_inventoryGet JS Library InventoryC
Read-onlyIdempotent
Inspect

Get JS fingerprint library inventory.

ParametersJSON Schema
NameRequiredDescriptionDefault
libraryNo
min_countNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

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

Annotations declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. However, the description adds no behavioral context beyond the title, such as what the inventory contains, whether results are aggregated, or how filters affect output.

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 short sentence and is easy to scan, but it essentially restates the tool title. It is concise in length but lacks substantive content, making it under-specified rather than efficiently informative.

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?

Although an output schema exists and annotations cover safety, the description leaves significant gaps: it does not explain the inventory's meaning, the role of the optional filters, or how this relates to other JS fingerprint tools. For a tool with 0% schema coverage and many siblings, this is 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?

Schema description coverage is 0% and the description does not mention the two parameters (library, min_count). The parameter names hint at their purpose, but the description adds no meaning about how they filter or shape the inventory.

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 uses a specific verb ('Get') and names a resource ('JS fingerprint library inventory'), giving a basic sense of the operation. However, it does not clarify what 'inventory' returns or how it differs from sibling tools like get_jsfingerprint_library_stats or search_js_fingerprint_by_library, so purpose is only moderately clear.

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

Usage Guidelines2/5

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

No guidance is provided about when to use this tool versus the many related sibling tools (e.g., get_jsfingerprint_library_stats, search_js_fingerprint_by_library). The description gives no context for selecting this tool over alternatives.

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

get_js_segments_by_scanGet JS Segments By ScanC
Read-onlyIdempotent
Inspect

Get JS segments for a scan_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo
scan_idYes
script_urlNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

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

The annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint, so the safety profile is covered. However, the description adds no extra behavioral context such as pagination behavior, return format, or relationship to other segment-related endpoints. It merely restates what the schema already implies.

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 concise and front-loaded, with no unnecessary words. The single sentence efficiently conveys the core function, though it sacrifices detail that is captured in other dimensions.

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 large number of sibling tools and the presence of multiple parameters, the description is too sparse to support confident tool selection and correct invocation. It does not explain pagination, script_url filtering, or why this tool should be used over similar segment retrieval tools. The output schema helps with return values, but not with usage 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?

Schema description coverage is 0%, and the description only mentions scan_id. It leaves limit, offset, and script_url without any explanation of their purpose or role. With such low coverage, the description should compensate, but it 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?

The description clearly identifies the operation as 'Get' and the resource as 'JS segments', scoped by scan_id. However, it does not explicitly distinguish this tool from related siblings like get_js_segments_suspicious or search_js_segments_by_hash, though the scan_id scope provides some differentiation.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. The description simply states what the tool does without mentioning exclusions, prerequisites, or related tools that might be more appropriate in certain scenarios.

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

get_js_segments_suspiciousGet JS Segments SuspiciousC
Read-onlyIdempotent
Inspect

Get suspicious JS segments for a scan_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo
scan_idYes
min_risk_scoreNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, covering the safety profile. However, the description adds no behavioral context—such as what 'suspicious' means, filtering logic, pagination behavior, or any consequences—beyond the bare fact that it returns segments.

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. It is concise, though it omits details that would improve utility; the structure itself is clean and direct.

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 4 parameters and multiple sibling variants, this one-liner is incomplete. It fails to define 'suspicious', explain how it differs from get_js_segments_by_scan or get_js_segments_unknown, or provide enough context for effective use, despite the existence of an 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%, so the description must compensate. It mentions scan_id implicitly but says nothing about limit, offset, or min_risk_score. The meanings of these parameters are left to inference from their names, which is insufficient for precise invocation.

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 'Get suspicious JS segments for a scan_id' clearly identifies the action (Get) and resource (suspicious JS segments) and mentions the key input (scan_id). However, it does not differentiate this tool from its siblings like get_js_segments_by_scan or get_js_segments_unknown.

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. There is no mention of scenarios, exclusions, or reference to sibling functions, leaving the agent without context for selecting this endpoint.

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

get_js_segments_unknownGet JS Segments UnknownC
Read-onlyIdempotent
Inspect

Get unknown JS segments for a scan_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo
scan_idYes
min_code_lengthNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false. The description adds no additional behavioral context beyond the core purpose, such as what 'unknown' classification implies or how pagination behaves.

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 redundancy. It is appropriately front-loaded and communicates the essential purpose immediately.

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?

Even with strong annotations and an output schema, the description is too sparse. It doesn't define what makes segments 'unknown', explain the pagination parameters, or provide context for choosing this tool over related ones like get_js_segments_by_scan or get_js_segments_suspicious.

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 only mentions scan_id, leaving limit, offset, and min_code_length completely unexplained. This fails to clarify their meaning or usage.

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 retrieves unknown JS segments for a scan_id, using a specific verb and resource. The term 'unknown' distinguishes it from sibling tools like get_js_segments_by_scan and get_js_segments_suspicious, though it doesn't elaborate on what 'unknown' means.

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 doesn't mention when 'unknown' segments are relevant or how they differ from suspicious or all segments.

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

get_latest_capabilitiesGet Latest CapabilitiesA
Read-onlyIdempotent
Inspect

Get latest capability stats.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds the 'latest' temporal scope, but this is largely captured by the name. No additional behavioral details such as return structure or rate limits are provided, but with annotations present, this is acceptable.

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 action and resource. It contains no filler and every word contributes to the meaning, making it highly efficient.

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 (no parameters, read-only, output schema present), the description is adequate. However, it could be more complete by clarifying what 'capability stats' refers to or explicitly distinguishing from 'get_capabilities_by_date'. The output schema likely covers return details, so this is a minor gap.

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 input schema fully defines the parameter space. Per the guidelines, a baseline of 4 is appropriate when there are no parameters, and the description does not need to add parameter details.

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 uses a specific verb 'Get' and a specific resource 'latest capability stats', which identifies what the tool does. It is distinct from the sibling 'get_capabilities_by_date' by emphasizing 'latest', but it does not explicitly contrast with that alternative.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives. It does not mention the sibling 'get_capabilities_by_date' or explain how 'latest' relates to the date-based tool, leaving the usage context unclear.

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

get_malware_by_scanGet Malware By ScanB
Read-onlyIdempotent
Inspect

Get malware details for a scan_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
scan_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the operation is known to be safe. However, the description adds no additional behavioral context beyond restating the tool's name, such as what 'malware details' includes or any scan dependencies.

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

Conciseness5/5

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

The description is a single, front-loaded sentence that states the action and target succinctly. No wasted words or vague 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 one parameter, an output schema, and good annotations, so the minimalist description is minimally adequate. However, it lacks any explanation of the nature of malware details or how they relate to a scan, which is left entirely to the name and 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?

With 0% schema description coverage, the description must compensate, but it only says 'for a scan_id' which merely restates the parameter name. It adds no meaning about what a scan_id is or any 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 uses a specific verb 'Get' with a clear resource 'malware details' tied to a scan_id. This distinguishes it from sibling tools like get_yara_by_scan or get_ocr_by_scan, which target different data types.

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 context is implied by the tool name, but there is no explicit guidance on when to use this versus alternatives like get_scan_reports or get_yara_by_scan. No exclusions or alternative recommendations are provided.

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

get_malware_statsGet Malware StatsC
Read-onlyIdempotent
Inspect

Get malware stats.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. However, the description adds no additional behavioral context, such as what data is aggregated, whether results are global or scoped, or any limitations. It neither contradicts annotations nor enriches them.

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 only three words, but they merely echo the title. This is under-specification rather than concise clarity; the sentence does not earn its place because it provides zero informational value beyond the name.

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?

Despite having no parameters and rich annotations, the description fails to clarify what 'malware stats' actually refers to in this system. With many sibling stats tools, this terse description is insufficient for an agent to select the correct tool or understand the returned data.

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 is empty with 100% coverage. The baseline for 0 params is 4, and the description does not need to explain parameters. No deduction is warranted.

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 'Get malware stats' restates the title exactly, providing a verb and resource but no specifics about what constitutes 'malware stats' or how this differs from sibling tools like get_analyzer_stats or get_jarm_stats. It is a tautology that adds no distinctive meaning.

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?

The description provides no guidance on when to use this tool versus the many other get_*_stats tools in the sibling list. There is no context about the intended use case, prerequisites, or alternative tools.

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

get_netlogGet NetlogC
Read-onlyIdempotent
Inspect

Get network log for a scan_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
scan_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is known. However, the description adds no additional behavioral context beyond stating the operation, such as whether the scan must be completed, what data is included in the netlog, or any rate limits. The minimal description does not exceed what annotations already provide.

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

Conciseness5/5

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

The description is a single clear sentence with no redundant phrasing, making it highly concise and easily parsable.

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

Completeness3/5

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

For a simple one-parameter read tool with an output schema, the description is minimally sufficient but lacks contextual guidance about prerequisites or relation to sibling tools. Given the existing annotation and output schema, the description is adequate for a basic invocation but incomplete for understanding when to choose it.

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 no description coverage (0%), so the description must compensate. It merely echoes the parameter name 'scan_id' without explaining format, constraints, or how to obtain a valid scan_id. This adds little beyond the schema structure and the parameter name itself.

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

Purpose4/5

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

The description uses a specific verb 'Get' and identifies the resource 'network log' with the parameter 'scan_id', clearly communicating the tool's function. However, it does not explicitly differentiate itself from sibling tools that may also retrieve scan-related data, so it falls short of a 5.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives such as get_scan_result or get_pcap_metadata. There are no prerequisites, exclusions, or alternative references, leaving the agent without usage context.

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

get_ocr_by_scanGet OCR By ScanC
Read-onlyIdempotent
Inspect

Get OCR data for a scan_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
scan_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. However, the description adds no extra behavioral context such as return format, error behavior, or handling of invalid scan_id. It simply restates the function name without deeper disclosure.

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

Conciseness5/5

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

The description is a single, focused sentence that is immediately comprehensible. It contains no filler or redundant information, making it optimally concise and well-structured.

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

Completeness3/5

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

The tool is simple with one parameter and an output schema exists, so return values are documented externally. However, the description is vague about what 'OCR data' includes and lacks details on prerequisites, making it minimally adequate with clear gaps for full contextual understanding.

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%, so the description must compensate for the undefined scan_id parameter. It only repeats the parameter name and gives no additional meaning about expected format, how to obtain the ID, or any constraints beyond the schema's title.

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

Purpose4/5

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

The description clearly states the tool's purpose with a specific verb and resource: 'Get OCR data for a scan_id.' It distinguishes itself from many sibling get_* tools by focusing on OCR data for a specific scan, though it does not explicitly differentiate from other OCR-related tools like get_ocr_stats or search_ocr.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. It does not mention prerequisites, such as needing a valid scan_id or ensuring OCR has been processed, nor does it relate to siblings like get_scan_result or get_scan_summary.

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

get_ocr_statsGet OCR StatsC
Read-onlyIdempotent
Inspect

Get OCR stats.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. However, the description adds no behavioral context beyond restating the name—no indication of what data is returned, whether stats are global or per-scan, or any other operational details.

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

Conciseness2/5

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

The description is extremely short, but it is under-specified rather than concisely informative. The sentence merely repeats the declared name and adds no value, so it does not earn 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?

While the output schema exists and annotations cover safety, the description is too ambiguous to be complete. Without any clarification of what 'OCR stats' means or how it relates to sibling tools like get_ocr_by_scan or get_analyzer_stats, an agent cannot confidently determine what the call returns or when it is appropriate.

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?

There are zero parameters, so the input schema is complete and there is nothing for the description to explain. The baseline of 4 applies because no parameter documentation is needed.

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

Purpose2/5

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

The description 'Get OCR stats.' is a near-verbatim restatement of the tool name and title, providing no additional detail about what the stats represent or how they differ from the many other 'get_*_stats' sibling tools. This is a tautology rather than a meaningful purpose statement.

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

Usage Guidelines2/5

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

The description gives no guidance on when to use this tool versus the numerous sibling stats tools, no context about prerequisites, and no mention of alternatives. An agent is left to guess the intended scope or use case.

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

get_open_graphGet Open GraphC
Read-onlyIdempotent
Inspect

Get Open Graph data for a scan_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
scan_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

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

Annotations already declare the tool as read-only, idempotent, and non-destructive, so the safety profile is covered. However, the description adds no additional behavioral context beyond that, such as what happens with invalid scan_ids, whether it returns partial data, or any rate-limiting considerations. It fails to go beyond what annotations already provide.

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

Conciseness4/5

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

The description is a single short sentence with no wasted words. It is front-loaded and efficiently states the core purpose. It could be slightly longer to add context, but as far as conciseness goes, it is well-structured and easy to parse.

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

Completeness2/5

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

While the tool is simple (one parameter) and an output schema exists, the description is too minimal to be considered complete. It does not explain what Open Graph data entails, nor does it provide any guidance on valid scan_id formats or expected results. Given the low schema coverage and lack of parameter documentation, the description leaves significant gaps for an agent.

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

Parameters1/5

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

The input schema has zero description coverage for the single parameter scan_id, and the description merely says 'for a scan_id' without adding any extra meaning, format, or constraints. The parameter semantics are essentially undocumented, leaving the agent to infer from the name alone.

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

Purpose4/5

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

The description clearly states the tool retrieves Open Graph data for a given scan_id, using a specific verb and resource. It is unambiguous and distinguishable from the many sibling get_* tools, though it does not explicitly differentiate itself from them. The scope is somewhat generic, but the purpose is nevertheless clear.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. It does not mention any prerequisites, exclusions, or situations where another tool might be more appropriate. The only implied context is that a scan_id is required, but this is not elaborated.

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

get_pastejackingGet PastejackingA
Read-onlyIdempotent
Inspect

Get pastejacking findings for a scan_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
scan_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=true, covering the safety profile. The description adds only the scoping constraint of a scan_id but does not disclose other behavioral traits like return format, pagination, or error behavior. It does not contradict annotations.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no extraneous words. It earns its place by being direct and complete enough for a simple getter.

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

Completeness3/5

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

For a simple read-only tool with one parameter, an output schema, and strong annotations, the description is minimally adequate. It does not explain what 'pastejacking' refers to, nor does it provide usage context, but the sibling naming pattern and scan_id scope make it understandable. It could be enhanced with a brief definition or note on return 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 description coverage is 0%, so the description must compensate. It adds minimal value by placing scan_id in context ('for a scan_id') but does not explain what a scan_id is, where to find it, or any format expectations. This is a thin addition beyond the schema's 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 'Get pastejacking findings for a scan_id' uses a specific verb ('get'), names the resource ('pastejacking findings'), and specifies the scope ('for a scan_id'). It clearly distinguishes from sibling tools like get_malware_by_scan or get_ocr_by_scan by its unique finding type.

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 its usage: one would call this tool when needing pastejacking findings for a given scan. However, it provides no explicit alternatives, exclusions, or comparison to other scan-related getter tools, leaving the agent to infer when to choose this over siblings.

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

get_pcap_metadataGet PCAP MetadataA
Read-onlyIdempotent
Inspect

Get PCAP metadata for a scan_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
scan_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so safety profile is clear. The description adds no additional behavioral context beyond the annotations, which is acceptable for a simple read operation but earns no extra credit.

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

Conciseness5/5

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

The description is a single, concise sentence that is front-loaded and contains no superfluous information.

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

Completeness4/5

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

Given the tool's simplicity (one parameter), annotations covering safety, and an output schema present, the description is sufficient. It does not discuss edge cases or prerequisites, but these are not critical for such a straightforward getter.

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 only repeats 'scan_id' without explaining format, constraints, or examples. The parameter name is somewhat self-explanatory, but the description adds minimal semantic value beyond the schema.

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

Purpose5/5

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

The description clearly states the action ('Get PCAP metadata') and the resource ('for a scan_id'). It is specific and distinguishes from sibling tools by the unique resource type (PCAP metadata).

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

Usage Guidelines3/5

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

Usage context is implied: it is used to retrieve PCAP metadata for a scan. No explicit when-to-use or alternative guidance is given, but the uniqueness of the tool name and simple parameter make the use case evident.

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

get_platform_statsGet Platform StatsC
Read-onlyIdempotent
Inspect

Get platform statistics.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, so the safety profile is clear. However, the description adds no behavioral context beyond that—it does not state what kind of statistics are returned, whether they are global or scoped, or any other relevant behavior.

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 one-sentence description is technically concise but under-specifies the tool. It simply repeats the title 'Get Platform Stats' without providing any useful elaboration, so the sentence does not earn its place.

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?

Despite having an output schema and rich annotations, the description is severely incomplete in context. With over 100 sibling tools including many stats variants, this description gives no indication of what makes 'platform stats' unique, leaving an agent without enough information to select or invoke it 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?

The tool has zero parameters, and the schema coverage is trivially 100%. According to the rubric, 0 params warrants a baseline of 4. The description adds nothing, but there is nothing to explain for parameters.

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 'Get platform statistics' simply restates the tool title without defining what 'platform' refers to. It does not distinguish this tool from the numerous sibling *_stats tools (e.g., get_analyzer_stats, get_domain_stats, get_yara_stats), making the purpose ambiguous.

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

Usage Guidelines1/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 the many other statistics endpoints. There is no mention of scope, prerequisites, or alternatives, so an agent cannot decide between this and similar stats tools.

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

get_rdapGet RDAPC
Read-onlyIdempotent
Inspect

Get RDAP details for a scan_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
scan_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false. The description adds no additional behavioral context, such as what happens when a scan_id is not found, the data source, or the structure of the response. It fails to provide value beyond the structured annotations.

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

Conciseness3/5

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

The description is one short sentence with no fluff, making it concise. However, it is under-specified and lacks informative details that could be added without significant verbosity, so it is not fully appropriately sized for the tool's needs.

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

Completeness3/5

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

The tool is simple with one parameter and an output schema, so the description does not need to explain return values. However, it lacks context about what RDAP is, how it relates to a scan, and when to use this tool, making it minimally complete but not robust.

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 for the single parameter 'scan_id' is 0%, and the description merely says 'for a scan_id' without explaining its format, meaning, or how to obtain it. The description must compensate for the lack of schema documentation, but it does not, leaving the parameter semantically unclear.

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 ('Get') and resource ('RDAP details') tied to a 'scan_id', making the tool's purpose clear. It is distinct from sibling tools because no other tool mentions RDAP. However, it does not elaborate on what RDAP details encompass, which slightly limits the precision.

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 any prerequisites, use cases, or exclusions, and there are no references to sibling tools for comparison.

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

get_recent_scansGet Recent ScansA
Read-onlyIdempotent
Inspect

Get recent public scans (paginated).

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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

Annotations already establish read-only, idempotent, open-world, and non-destructive behavior. The description adds only 'paginated' as a behavioral trait, but does not explain the pagination behavior or other runtime details beyond that single word.

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, front-loaded with the main action and resource, with no filler. The description is appropriately sized for the simple tool.

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

Completeness4/5

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

Given the low complexity, strong annotations, and presence of an output schema, the description is largely sufficient for selecting the tool. However, it leaves pagination parameter details and usage comparison with alternatives to the schema/agent inference.

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 was expected to compensate, but it only says 'paginated' and does not explain page/limit semantics, defaults, bounds, or ordering. The schema itself supplies only property titles and default values, which is minimal.

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

Purpose5/5

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

The description uses a specific verb ('Get') and a clear resource ('recent public scans') and explicitly notes pagination. It distinguishes itself from sibling tools like search_scans or get_domain_scans by scope.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus the many sibling search/get tools, and no explicit exclusions or alternative suggestions. It only states what the tool does, not when to choose it.

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

get_recent_threatsGet Recent ThreatsB
Read-onlyIdempotent
Inspect

Get recent malware threats.

ParametersJSON Schema
NameRequiredDescriptionDefault
hoursNo
limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds no behavioral context beyond this, so it is minimally acceptable but not enriching.

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

Conciseness5/5

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

The description is a single concise sentence that immediately states the core purpose. It is front-loaded with no filler or redundant information, making it highly concise and well-structured.

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

Completeness2/5

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

With multiple similar sibling tools and two undocumented parameters, the description is too terse to provide sufficient context. It does not explain what constitutes a 'malware threat,' how to filter by time or limit, or how it differs from get_recent_yara_threats, leaving the tool under-specified.

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%, and the description does not mention the 'hours' or 'limit' parameters. While the parameter names are somewhat self-explanatory, the description fails to clarify their meaning, format, or effects, earning a low score.

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 'Get recent malware threats' clearly states the tool's purpose with a specific verb and resource. However, it does not differentiate from the sibling tool get_recent_yara_threats, so it earns a 4 rather than a 5.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like get_recent_yara_threats or get_recent_scans. There are no context clues about which scenarios warrant this tool, resulting in no usage guidance.

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

get_recent_yara_threatsGet Recent YARA ThreatsC
Read-onlyIdempotent
Inspect

Get recent YARA threats.

ParametersJSON Schema
NameRequiredDescriptionDefault
hoursNo
limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, covering the safety profile. However, the description adds no behavioral context such as default time range, ordering, pagination, or what 'recent' means, which would be valuable beyond annotations.

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

Conciseness2/5

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

The description is a single short sentence that is concise but under-specified. It omits essential information about parameters and behavior, making it insufficient rather than appropriately concise.

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 (two optional parameters) and rich annotation context, the description still lacks critical details like default behavior, time window interpretation, and result structure. The presence of many sibling tools further necessitates more contextual guidance, which is absent.

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 does not explain the 'hours' or 'limit' parameters. An agent cannot infer that 'hours' controls the lookback window or that 'limit' caps the number of results, leaving the parameters semantically opaque.

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 'Get recent YARA threats' states a clear verb and resource, but provides no scope or distinguishing details. It does not differentiate from sibling tools like get_recent_threats or get_yara_matches, making it ambiguous which tool to use for specific YARA-related queries.

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 the 'hours' parameter or any criteria for selection, so an agent cannot determine if this is the right choice compared to similar tools.

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

get_safe_browsingGet Safe BrowsingA
Read-onlyIdempotent
Inspect

Get safe browsing threats for a scan_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
scan_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the bar is lower. The description adds only that it returns threats, without extra behavioral context like pagination or errors.

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 concise sentence that front-loads the purpose with no redundant words or filler.

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

Completeness4/5

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

The tool is simple with one parameter and an output schema, which covers return values. The description is sufficient for basic invocation, though it could mention the relationship to Scan ID in more detail.

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 one required parameter scan_id with no description, and schema description coverage is 0%. The description merely restates the parameter name, adding no format, source, or usage 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 retrieves safe browsing threats for a given scan_id, using a specific verb and resource. It distinguishes from sibling tools like get_safe_browsing_stats, which provides statistics rather than threats.

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 alternative or exclusion guidance is provided. Usage is implied by the description, but it does not explicitly state when to use this tool over siblings or any conditions.

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

get_safe_browsing_statsGet Safe Browsing StatsC
Read-onlyIdempotent
Inspect

Get safe browsing stats.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

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

The description adds no behavioral context beyond what the annotations already convey. Annotations declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, but the description doesn't mention what data is returned, whether results are time-bounded, or any other operational traits. With no extra information, the description contributes nothing beyond the schema's safety signals.

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, but it is under-specified rather than concise. It simply restates the tool name without earning its place by adding useful information. A concise description should pack meaning into few words; this one conveys no new 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?

Despite having an output schema and complete annotations, the description is too thin to provide adequate context. It doesn't explain what 'safe browsing stats' refers to (e.g., URL reputation counts, threat categories), making the tool less discoverable and understandable. The output schema may list return fields, but the description fails to orient the agent to the tool's purpose and context.

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 score of 4 is appropriate. The schema coverage is 100% (vacuous), and there is no parameter ambiguity for the agent to resolve. The description adds nothing about parameters, but it isn't required for a parameterless tool.

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 'Get safe browsing stats' is a direct restatement of the tool name and title, providing no additional scope or differentiation from sibling tools. It does not specify what kind of stats are included or how they are aggregated, making it tautological rather than a clear purpose statement.

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

Usage Guidelines2/5

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

The description gives no guidance on when to use this tool over alternatives. With over 100 sibling tools including other stats endpoints like get_analyzer_stats and get_domain_stats, the agent receives no context about when safe browsing stats are relevant or how they differ from get_safe_browsing.

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

get_scan_iocGet Scan IOCB
Read-onlyIdempotent
Inspect

Get IOC matches for a scan_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
scan_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds minimal behavioral context beyond restating the function; it does not explain nuances like result ordering, pagination, or any side effects.

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

Conciseness5/5

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

The description is a single concise sentence, front-loaded with the primary action, and contains no redundant information.

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

Completeness3/5

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

The tool is simple with one parameter and an output schema, but the description lacks context about what 'IOC matches' entails, how they relate to scans, or any filtering/limitations. It is adequate for a basic getter but leaves gaps for a user unfamiliar with the domain.

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 only mentions 'scan_id' implicitly without adding format, constraints, or how to obtain a valid scan_id. The description provides little beyond the parameter name already present in 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 'Get IOC matches for a scan_id' clearly states the verb (Get) and resource (IOC matches) and references the required parameter. It is specific enough to distinguish from many sibling tools, though it does not explicitly differentiate from nearby tools like get_yara_matches.

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

Usage Guidelines2/5

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

The description offers no guidance on when to use this tool versus alternatives. It fails to mention whether this is preferable for certain scenarios, or exclude cases better handled by other get_* tools.

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

get_scan_progressGet Scan ProgressB
Read-onlyIdempotent
Inspect

Get scan progress by scan_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
scan_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds minimal extra behavior context ('progress' implies a partial state), but nothing about polling semantics, error conditions, or how progress is represented. With annotations providing the key safety traits, this is adequate but not enriched.

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 redundant words. Every word contributes to the meaning, making it highly efficient.

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's simplicity (one parameter), the presence of an output schema (which covers return values), and strong annotations (read-only, idempotent), the description is complete enough for an agent to invoke the tool correctly without needing extra details.

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% and the description only mentions 'scan_id' without elaborating on its meaning, format, or where to obtain it. It adds barely beyond the parameter name itself, failing to compensate for the lack of a schema description.

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

Purpose4/5

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

The description clearly states the action ('Get') and resource ('scan progress') with the required parameter ('scan_id'). It is specific enough to distinguish from sibling tools like get_scan_result or get_scan_summary, though it does not explicitly name them.

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

Usage Guidelines2/5

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

No guidance is given on when to use this tool versus alternatives. The sibling list includes wait_for_scan and get_scan_result, which are likely related, but the description does not mention when to prefer this tool or what distinguishes it.

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

get_scan_reportsGet Scan ReportsC
Read-onlyIdempotent
Inspect

Get available reports for a scan_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
scan_idYes
report_typeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=true, which cover safety. However, the description adds no behavioral context beyond that—it doesn't disclose whether the tool returns a list of report names, report contents, or how report_type alters behavior. There is no contradiction with annotations, but the description contributes minimal value.

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

Conciseness5/5

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

The description is a single, clear sentence with no filler or redundancy. Every word is meaningful and the structure is front-loaded with the action and resource.

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

Completeness2/5

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

Despite having an output schema and rich annotations, the description is too sparse for a tool with an optional parameter (report_type) and many sibling tools. It fails to explain what 'reports' encompasses or how report_type filters results, so the agent cannot fully determine correct invocation without additional inference.

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% and the description only references scan_id, which is already self-explanatory from the schema property name. The optional report_type parameter is not described in the description or schema, so the agent gets no additional meaning beyond the raw 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 'Get available reports for a scan_id' uses a specific verb ('Get') and resource ('available reports') tied to a scan_id, making the core purpose clear. It does not explicitly differentiate from sibling tools like get_scan_result or get_scan_summary, but the naming and phrasing are sufficient for basic distinction.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives or exclusions. The description does not mention how it relates to get_scan_result, get_scan_summary, or get_analyzer_results, and there are no prerequisites or filter instructions, leaving usage ambiguous.

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

get_scan_resultGet Scan ResultB
Read-onlyIdempotent
Inspect

Get full scan result by scan_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
scan_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the agent knows it is a safe read. The description adds no behavioral traits beyond 'full', such as the size or structure of the result, pagination, or resource considerations. It fails to add meaningful context beyond what annotations already provide.

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

Conciseness5/5

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

The description is a single sentence: 'Get full scan result by scan_id.' It is perfectly concise, front-loaded, and contains no filler or repetition. Every word is necessary and adds to the understanding of the tool's purpose.

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

Completeness3/5

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

The tool is simple with one parameter, and an output schema exists, so return details aren't needed. However, the description lacks guidance on usage context, such as when to use this versus similar get_* tools. The word 'full' partially addresses this, but it could be more explicit. Given the low complexity and good annotations, the description is minimally viable but not fully complete.

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

Parameters2/5

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

The schema description coverage is 0%, so the description must compensate for parameter meaning. However, it merely states 'by scan_id', which simply echoes the schema property name. It does not explain where to obtain a scan_id (e.g., from submit_scan or list tools) or any format constraints. The description adds minimal value over the schema for this single 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 tool's function: 'Get full scan result by scan_id.' It identifies the specific verb 'Get', the resource 'full scan result', and the key parameter 'scan_id'. This distinguishes it from sibling tools like get_scan_summary and get_scan_progress by emphasizing 'full' scope.

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

Usage Guidelines3/5

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

The description implies usage—when you need the complete scan result, you use this tool based on 'scan_id'. However, it does not explicitly mention when not to use it or provide alternatives, such as using get_scan_summary for a summary. With 'full' giving a hint, this is clear context without explicit exclusions.

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

get_scan_summaryGet Scan SummaryA
Read-onlyIdempotent
Inspect

Get compact scan summary by scan_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
scan_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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

The annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds the 'compact' qualifier, which hints at the output being a summary rather than full data, but it does not disclose other behaviors like response format, pagination, 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, front-loaded sentence with no filler. It conveys the purpose and key parameter in six words, making it extremely efficient and easy to parse.

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 one-parameter, read-only tool with an output schema, the description is nearly complete. It clearly states what the tool does, and the 'compact' descriptor sets expectations. It could be improved by mentioning typical use cases or what the summary includes, but this is adequately covered by the output schema.

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 0% schema description coverage, the description compensates by explaining that scan_id is the identifier used to fetch the summary. It adds meaning beyond the schema's bare type/name, though it stops short of providing 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 a specific verb ('Get') and resource ('compact scan summary'), and identifies the lookup key ('by scan_id'). This distinguishes it from sibling tools like get_scan_result or get_scan_reports by emphasizing the 'compact summary' aspect.

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 retrieving a condensed overview of a scan, but it does not explicitly state when to use it over alternatives or mention any exclusions. Given the large sibling list, the lack of explicit guidance limits its usefulness for choosing between similar get_* tools.

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

get_screenshot_statsGet Screenshot StatsC
Read-onlyIdempotent
Inspect

Get screenshot statistics.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering safety expectations. The description adds no behavioral context such as what statistics are computed, time ranges, aggregation levels, or return format, missing an opportunity to inform the agent beyond the annotations.

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

Conciseness3/5

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

The description is a single concise sentence, but it largely duplicates the tool name and title, adding little new information. It is not bloated, but it under-specifies, making it less effective than a more informative concise description.

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

Completeness2/5

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

While the output schema documents return values and annotations cover safety, the description fails to explain what 'screenshot statistics' encompasses (e.g., counts, dates, aggregation). Given the large sibling set of similar stats endpoints, this lack of context leaves the agent uncertain about its exact scope.

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, the schema fully covers this aspect. The description has no additional parameter details to provide, and the baseline score of 4 is appropriate since no clarification 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 'Get screenshot statistics' clearly identifies the verb (get) and resource (screenshot statistics), indicating a read operation for aggregated stats. However, it doesn't distinguish itself from many sibling '_stats' tools like get_analyzer_stats or get_domain_stats, limiting differentiation.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternative stats or search tools. The description simply restates the function without context on use cases, prerequisites, or exclusions.

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

get_technologies_by_scanGet Technologies By ScanA
Read-onlyIdempotent
Inspect

Get detected technologies for a scan_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
scan_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and non-destructive behavior. The description adds no additional behavioral traits beyond the basic lookup, but it does not contradict the annotations.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no filler. It efficiently states exactly what the tool does and which parameter is involved.

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?

This is a simple read-only lookup with strong annotations and an output schema. The description is sufficient for an agent to select and invoke the tool correctly without needing additional return-value details.

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, but the single parameter scan_id is self-descriptive from its name. The description reinforces the parameter's role in context but does not provide format, source, or validation 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 retrieves detected technologies for a given scan_id, using a specific verb and resource. This distinguishes it from sibling tools like get_cpe_by_scan and get_malware_by_scan by resource type.

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 via the scan_id parameter but provides no explicit guidance on when to prefer this over alternatives such as get_cpe_by_scan or search_technologies. It does not mention exclusions or alternatives.

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

get_technology_combinationsGet Technology CombinationsC
Read-onlyIdempotent
Inspect

Get technology combinations (paginated).

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
limitNo
tech_nameYes
min_occurrencesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds pagination as a behavioral trait, but nothing else about filtering, response shape, or rate limits. With strong annotations, this is adequate but not rich.

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

Conciseness3/5

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

The description is very concise, which is efficient, but it is under-specified. It consists of only a phrase that restates the tool name and adds a pagination note, offering little substantive content. This borders on under-specification rather than purposeful 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?

Despite having an output schema and safety annotations, the description fails to explain what technology combinations are, how to use pagination parameters, or the meaning of min_occurrences. With 4 parameters, this is insufficient for an agent to confidently invoke the tool correctly.

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% for 4 parameters, and the description provides no parameter explanations. It doesn't mention tech_name, min_occurrences, page, or limit at all. The names are somewhat self-explanatory, but the description adds zero value beyond the schema, so it fails to compensate for the coverage gap.

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

Purpose4/5

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

The description states 'Get technology combinations (paginated)' with a clear verb and resource. It distinguishes this tool from siblings like get_technology_stats and search_technologies by explicitly targeting 'combinations', though it doesn't elaborate on what constitutes a combination. This is clear despite minimal elaboration.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives such as get_technology_stats or get_technologies_by_scan. The only hint is 'paginated', which implies iteration but no explicit use case or exclusion criteria.

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

get_technology_statsGet Technology StatsC
Read-onlyIdempotent
Inspect

Get technology stats.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint false, but the description adds no behavioral context beyond this, such as what statistics are returned, aggregation method, or scope.

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 under-specified rather than concise. It consists solely of a restatement of the tool name, providing no useful structure or front-loaded 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?

Despite simple schema and annotations, the description fails to clarify which 'technology stats' are meant, given the vast sibling toolset. The output schema exists but doesn't compensate for the ambiguity.

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 schema offers complete coverage; the description has no need to elaborate. Baseline for zero parameters is 4.

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 'Get technology stats' is a tautology of the tool name, restating the title without adding detail or distinguishing from numerous sibling stats tools like get_domain_stats or get_analyzer_stats.

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 context indicators, prerequisites, or exclusions among the many similar get_*_stats tools.

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

get_tls_asn1Get TLS ASN1B
Read-onlyIdempotent
Inspect

Get TLS certificate ASN.1 data for a scan_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
scan_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, which convey the safety profile. The description adds that data is scoped to a scan_id, but this is already in the schema. No additional behavioral traits are disclosed, but there is no contradiction with annotations.

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

Conciseness5/5

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

The description is a single sentence with no unnecessary words. It is highly concise and front-loaded, stating the verb and resource immediately.

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

Completeness3/5

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

The tool is simple with one required parameter and an output schema present, so the description doesn't need to detail return values. However, it lacks guidance on how to select this tool among siblings and does not elaborate on the parameter, making it somewhat incomplete in context.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate. It mentions 'for a scan_id,' providing context for the parameter, but doesn't explain what a scan_id is or where to find it. For a single parameter, this is adequate but minimal.

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

Purpose4/5

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

The description uses a specific verb 'Get' and identifies the resource as 'TLS certificate ASN.1 data' scoped by scan_id. It clearly states what the tool does, though it doesn't explicitly differentiate from siblings like get_tls_details.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives such as get_tls_details or get_ct_certificates. The description only states the function, leaving the agent to infer usage context.

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

get_tls_detailsGet TLS DetailsD
Read-onlyIdempotent
Inspect

Get TLS details for a scan_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
scan_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds no extra behavioral context such as permissions, rate limits, or data shape; it merely restates the read-only nature. No contradiction exists, but the value added beyond annotations 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.

Conciseness2/5

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

The description is extremely short, but it is under-specified rather than appropriately concise. It spends its single sentence restating the title and parameter, providing no useful structural information or context to earn 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?

While the tool has only one parameter and an output schema, the description is too minimal to support correct selection among over a hundred sibling get_* tools. It does not clarify what 'TLS details' encompasses, making the tool ambiguous and incomplete for an 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 schema has 0% description coverage for the single parameter scan_id, and the tool description only repeats the parameter name without explaining its format, source, or relationship to other scan identifiers. This fails to compensate for the schema's lack of detail.

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

Purpose2/5

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

The description says 'Get TLS details' which is nearly identical to the title and uses the vague term 'details' without specifying what aspects of TLS are returned. It fails to distinguish the tool from sibling tools like get_tls_asn1, which likely has a more specific scope.

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

Usage Guidelines2/5

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

The only usage guidance is the implicit requirement of a scan_id, but there is no discussion of when to choose this over other TLS-related or scan-related tools. No alternatives or exclusions are mentioned, so an agent cannot decide between this and sibling tools.

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

get_top_tracking_keysGet Top Tracking KeysC
Read-onlyIdempotent
Inspect

Get top tracking keys.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
tracker_typeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint, covering the safety profile. However, the description adds zero behavioral context beyond the annotations—no mention of ordering, default behavior, or what constitutes 'top'—so it fails to provide additional transparency.

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

Conciseness2/5

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

The description is a single sentence with no unnecessary words, but it is under-specified rather than concise. It lacks vital information needed to understand the tool, making its brevity a deficiency.

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

Completeness2/5

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

The tool operates in a domain with many scanner-related tools, but the description does not clarify what 'tracking keys' are or how this tool fits into the broader workflow. With no output schema content provided and minimal description, there is insufficient context for correct invocation.

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%. The description does not mention 'limit' or 'tracker_type' at all. While 'limit' is somewhat self-explanatory, 'tracker_type' remains completely unexplained, and the description adds no value to 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 'Get top tracking keys.' uses a specific verb ('Get') and resource ('top tracking keys'), clearly distinguishing it from sibling tools like search_tracking_key. However, it lacks any elaboration on what tracking keys are or what 'top' means, slightly limiting clarity.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like search_tracking_key or other get_* analytic tools. The description offers no context on use cases, prerequisites, or selection criteria.

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

get_yara_by_scanGet YARA By ScanC
Read-onlyIdempotent
Inspect

Get YARA results for a scan_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
scan_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

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

Annotations already disclose read-only, idempotent, and non-destructive behavior. The description adds no additional behavioral context such as error handling, scan completion requirements, or return behavior. It only repeats the basic action without detailing edge cases or side effects.

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

Conciseness5/5

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

The description is a single, focused sentence that communicates the tool's purpose with no redundant words. It is front-loaded with the action 'Get YARA results' and is appropriately sized for a simple getter tool.

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

Completeness3/5

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

Given the tool's simplicity and the existence of an output schema, the description is minimally adequate. However, it lacks context about what 'YARA results' encompasses and fails to connect this tool to other scan-related tools (e.g., get_malware_by_scan, get_scan_summary), making it slightly incomplete for effective use among many siblings.

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 has 0% description coverage for scan_id, and the description only says 'for a scan_id', which merely restates the parameter name. It does not explain the format, origin, or how it relates to other scan endpoints, failing to compensate for the lack of schema description.

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

Purpose4/5

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

The description clearly states the action ('Get') and resource ('YARA results') scoped by scan_id. It is specific and easily understood, and the name 'get_yara_by_scan' further clarifies it is per-scan. However, it does not explicitly distinguish itself from similar YARA-related tools like get_yara_matches or get_yara_stats, so it misses the top score for sibling differentiation.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. There are many sibling tools with similar scopes (e.g., get_yara_matches, get_yara_stats, get_recent_yara_threats), but no mention of which one to choose in which scenario, nor any exclusions or prerequisites.

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

get_yara_matchesGet YARA MatchesC
Read-onlyIdempotent
Inspect

Get YARA matches for a scan_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
scan_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, establishing the safety profile. The description adds no further behavioral context, such as pagination, filters, or return format, so it contributes nothing beyond the annotations.

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

Conciseness5/5

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

The description is a single, short sentence that conveys the action immediately with no redundant wording. It is entirely front-loaded and contains zero filler, making it 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 lookup tool with one parameter and rich annotations, the description is minimally sufficient. However, it lacks any clarification of how it differs from the closely named sibling 'get_yara_by_scan' and does not mention any optional behavior, leaving moderate gaps.

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 merely echoes the parameter name 'scan_id' without adding any semantic detail about its format, source, or constraints. With schema description coverage at 0%, the description was expected to compensate but fails to provide meaningful parameter information.

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 uses the verb 'Get' and specifies the resource 'YARA matches' scoped by scan_id, making the primary action unambiguous. However, it does not distinguish itself from the sibling tool 'get_yara_by_scan', which likely performs a similar retrieval, leaving room for 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?

The description provides no guidance on when to use this tool versus alternatives such as 'get_yara_by_scan' or when a scan_id would be available. There is no mention of prerequisites, exclusions, or context for invocation, leaving the agent without decision-making support.

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

get_yara_statsGet YARA StatsC
Read-onlyIdempotent
Inspect

Get YARA stats.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, so the agent knows this is a safe, repeatable read operation. However, the description adds no behavioral context—no explanation of what YARA statistics represent, what the output aggregates, or any limitations. It contributes zero value beyond the annotations.

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

Conciseness2/5

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

While the description is a single short sentence, it is under-specified rather than concise. It repeats the title and provides no informative content, so the sentence does not earn 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?

With no parameters, the tool is simple, but the description leaves the meaning of 'YARA stats' ambiguous. It does not clarify what statistics are included, whether it covers all YARA scans, or how it relates to sibling stats tools. The output schema may document return values, but the description itself is inadequate for understanding the tool's purpose.

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 is trivially complete at 100% coverage. The baseline for no parameters is 4, and there is no need to document parameters. The description doesn't need to elaborate on parameter 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 'Get YARA stats.' is essentially identical to the tool name and title, providing no additional detail about what stats are returned or how they differ from the many sibling stats tools. This is a tautological restatement, not a clarifying explanation.

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

Usage Guidelines2/5

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

The description gives no guidance on when to use this tool versus alternatives like get_analyzer_stats or get_cpe_stats. There is no context, no exclusions, and no mention of 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.

run_js_differential_analysisRun JS Differential AnalysisC
Read-onlyIdempotent
Inspect

Run JS differential analysis for a scan_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
scan_idYes
min_confidenceNo
include_known_librariesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, so the description carries no additional burden for safety. However, it adds no behavioral context beyond the action name—nothing about output structure, side effects, or parameter effects. It restates the tool name rather than enriching it.

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 filler. It is front-loaded with the action and target. However, it is so brief that it sacrifices meaningful content, which slightly 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 tool has 3 parameters, an output schema, and numerous sibling tools in the same domain, the one-line description is insufficient. It does not explain the purpose of the analysis, its relationship to other tools, or what happens when the function is invoked. The output schema exists but the description doesn't help a user understand when to invoke it.

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 has 3 parameters with 0% description coverage. The description only mentions scan_id, providing minimal context that the analysis is per-scan. It does not explain min_confidence or include_known_libraries, their defaults, or how they affect the analysis.

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

Purpose4/5

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

The description uses a specific verb (Run) and resource (JS differential analysis) and identifies the input (scan_id). It is not a tautology, but it does not differentiate from sibling tools that also operate on JS fingerprints or scans, nor does it explain what 'differential analysis' 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 is given on when to use this tool versus the many related search_js_* and get_js* tools. There are no prerequisites mentioned (e.g., whether a scan must be completed) and no alternative tool names for comparison.

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

search_ai_classificationSearch AI ClassificationC
Read-onlyIdempotent
Inspect

Search AI scans by classification.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
classificationYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, which cover the safety profile. However, the description adds no behavioral context beyond the annotations—no mention of pagination, result scope, matching behavior, or rate limits. It does not contradict the annotations.

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

Conciseness4/5

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

The description is a single concise sentence with no wasted words, making it easy to parse. However, the brevity is excessive—it sacrifices necessary detail, so while structurally clean, it is 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?

With 0% schema property descriptions, a required 'classification' parameter, and no explanation of valid inputs or limit behavior, the description is inadequate for an agent to reliably invoke this tool. Even with an output schema present, the missing input semantics make the tool usage ambiguous.

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, but it only mentions 'by classification,' which essentially mirrors the parameter name. It provides no insight into valid classification values, format, or the semantics of the 'limit' parameter, leaving the agent to guess how to properly set arguments.

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 that the tool searches AI scans by classification, using a specific verb ('Search') and resource ('AI scans'). However, it does not explain what 'classification' means or how it distinguishes from sibling tools like search_ai_high_risk and search_ai_scam_type, so it is clear but not fully differentiated.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives. The description does not mention any exclusions, alternatives, or contextual scenarios, leaving the agent without decision support for selecting among the many search_ai_* siblings.

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

search_ai_high_riskSearch AI High RiskD
Read-onlyIdempotent
Inspect

Search AI high-risk scans.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
min_confidenceNo
min_risk_scoreNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

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

The annotations indicate read-only, open-world, idempotent behavior, but the description adds no additional context about what 'high-risk' means, how the search operates, or what limits or thresholds apply. With annotations present, the description still fails to provide any behavioral nuance beyond the literal name.

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 short, but it is under-specified rather than concise. It contains no actionable information, making it insufficient for guiding an agent despite its 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?

Given the tool has three parameters, an output schema, and belongs to a large family of search tools, the description lacks necessary context about search criteria, threshold interpretation, or its relationship to other AI-related search tools. It is not complete enough for correct invocation.

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 includes three parameters (limit, min_confidence, min_risk_score) with zero description coverage. The description does not mention any of these parameters or explain their semantics, leaving the agent to guess their purpose and valid values.

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 'Search AI high-risk scans' essentially restates the tool name with the word 'scans' appended. It does not clarify what constitutes an 'AI high-risk scan' or how this tool differs from similar siblings like search_ai_classification or search_analyzer_high_risk.

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?

There is no guidance on when to use this tool versus alternatives such as search_ai_classification or search_analyzer_high_risk. No context is given about the intended use case, prerequisites, or filtering scenarios.

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

search_ai_scam_typeSearch AI Scam TypeB
Read-onlyIdempotent
Inspect

Search AI scans by scam type.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
scam_typeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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

Annotations already provide the safety profile (readOnlyHint=true, idempotentHint=true, destructiveHint=false). The description adds no extra behavioral context such as pagination behavior, interpretation of 'scam type', or what constitutes an 'AI scan'. It neither contradicts annotations nor enriches them significantly.

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. However, it is so brief that it edges toward under-specification, though it does convey the core action effectively.

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

Completeness3/5

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

For a simple two-parameter read-only search tool with an output schema, the description gives the essential action but omits context about result set behavior and differentiation from other AI search tools. It is minimally adequate but leaves gaps for an agent deciding between search_ai_scam_type and search_ai_high_risk.

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 phrase 'by scam type' sheds light on the scam_type parameter, but the limit parameter is completely unaddressed in the description. No valid formats, examples, or constraints are provided, so the description only partially compensates for the schema gap.

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 'Search AI scans by scam type' clearly states the tool's function: searching AI scan records filtered by scam type. It uses a specific verb and resource, but does not explicitly distinguish it from siblings like search_ai_classification or search_ai_high_risk.

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 guidance is given. The description fails to indicate when to use this tool over the many other search_* tools in the sibling list, nor does it mention any exclusions or prerequisites.

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

search_analyzer_high_riskSearch Analyzer High RiskC
Read-onlyIdempotent
Inspect

Search analyzer high-risk scans (paginated).

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
limitNo
min_risk_scoreNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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

The annotations already cover safety (read-only, non-destructive, idempotent, open-world). The description adds 'paginated' as a behavioral trait, which is helpful but minimal; it does not disclose any additional constraints or side effects.

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

Conciseness5/5

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

The description is a single, well-structured sentence that front-loads the verb and resource. Every word is purposeful, with zero redundancy.

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

Completeness2/5

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

While the output schema and annotations are rich, the description leaves the meaning of 'analyzer high-risk' and its relationship to sibling search tools unexplained, leaving an incomplete picture for an agent to decide when to use it.

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?

With 0% schema description coverage, the description carries full responsibility for parameter meaning, but it does not explain 'min_risk_score' or how pagination parameters work relative to the search scope. No parameter semantics are conveyed.

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 a clear verb ('Search') and resource ('analyzer high-risk scans'), but does not differentiate from sibling tools like 'search_ai_high_risk' or explain what 'analyzer' refers to, making the purpose somewhat vague.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives, no exclusions, and no context about the analyzer domain. The only hint is 'paginated,' which is not usage direction.

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

search_by_asnSearch By ASNA
Read-onlyIdempotent
Inspect

Search scans by ASN (paginated).

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
limitNo
asn_numberYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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

Annotations already declare this as read-only, idempotent, and non-destructive. The description adds the behavioral trait 'paginated', but does not disclose any additional details such as rate limits or auth requirements. A minimal but acceptable addition beyond annotations.

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

Conciseness5/5

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

The description is a single concise sentence that is front-loaded with the key action and scope. No wasted words, each word contributes meaning.

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 search tool with an output schema and solid annotations, the description is nearly complete. It covers the core operation and pagination; however, it could mention that the ASN parameter must be a numeric ASN number or provide a hint about result ordering, but these are minor gaps.

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 for the lack of parameter documentation. It only mentions 'by ASN' and 'paginated', which does not explain parameter types, defaults, or how they interact. The description fails to fully compensate for the missing schema descriptions.

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 'Search scans by ASN' uses a specific verb and resource, clearly distinguishing this tool from sibling search tools like search_by_ip or search_by_favicon. The pagination note adds scope.

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

Usage Guidelines4/5

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

The description clearly implies use when you need to find scans by ASN, and the context is unambiguous. However, it does not explicitly mention alternatives or when not to use it, so it falls short of a 5.

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

search_by_faviconSearch By FaviconA
Read-onlyIdempotent
Inspect

Search scans by favicon hash (paginated).

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
limitNo
hash_typeNommh3
hash_valueYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, so safety is covered. The description adds 'paginated', which is useful behavioral context beyond the annotations, but it does not disclose other details like result ordering or output format. Given annotation coverage, this is adequate but not rich.

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

Conciseness5/5

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

The description is a single concise sentence that is front-loaded with the core purpose. Every word earns its place, and there is no redundant or filler content.

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

Completeness2/5

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

While the output schema likely covers return values, the description leaves hash_type unexplained, which is a significant gap given it is a parameter with no schema description. With 4 parameters and 0% schema coverage, the description should provide more context about how pagination works and what hash_type values are valid, but it only says 'paginated' and 'favicon hash.'

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 mentions 'by favicon hash' which maps to hash_value and 'paginated' which hints at page/limit, but it fails to explain hash_type, a non-obvious parameter. The required parameter hash_value is the only one with clear semantic meaning; the others are left to inference from the schema.

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

Purpose5/5

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

The description 'Search scans by favicon hash (paginated)' clearly states a specific verb (search), resource (scans), and scope (by favicon hash), which distinguishes it from sibling tools like search_by_asn or search_by_screenshot_hash. It also adds the 'paginated' qualifier, 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 the tool is used when you want to search scans by a favicon hash, but it does not provide explicit when-to-use guidance or mention alternatives. The presence of a similar sibling tool, search_favicon_mmh3, suggests there might be overlap, but no comparison or exclusion is given.

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

search_by_fuzzy_hashSearch By Fuzzy HashB
Read-onlyIdempotent
Inspect

Search scans by fuzzy hash (paginated).

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
limitNo
hash_typeYes
hash_valueYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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

The description discloses that results are paginated, adding a behavioral trait not covered by the annotations (which already state readOnlyHint, idempotentHint, etc.). However, it does not explain how pagination works (e.g., page/limit parameters are in the schema, but no mention of result ordering or limits). Given the annotations cover the safety profile, the description's minimal addition merits a moderate score.

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 essential purpose and includes a useful behavioral note ('paginated'). It contains no fluff or redundant information, making it easy for an agent to parse quickly.

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

Completeness3/5

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

Given the tool has 4 parameters, no parameter descriptions, and an output schema, the description is minimally sufficient. It states the core functionality and pagination, and the output schema likely describes return values. However, it lacks details on valid hash types, possible edge cases, and how this tool differs from nearby siblings, leaving gaps in 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?

The input schema has 0% description coverage, and the description does not compensate. It implies that hash_value is the fuzzy hash and hash_type specifies the hash algorithm, but it does not explain valid values for hash_type or the meaning of page/limit beyond their names. This is insufficient for a low-coverage 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 ('Search scans') and the filter ('fuzzy hash'), with a parenthetical indicating pagination. It distinguishes itself from sibling tools by specifying 'scans' as the resource, unlike similar tools like search_jsfingerprints_by_fuzzy_hash. However, it does not explicitly contrast itself with these siblings, so it misses the top score.

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

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 any exclusions, prerequisites, or refer to other search tools that might be more appropriate for different hash types or resources. The only hint is 'scans by fuzzy hash', which is implied usage rather than explicit guidance.

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

search_by_ipSearch By IPB
Read-onlyIdempotent
Inspect

Search scans by IP address (paginated).

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
limitNo
ip_addressYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

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

Annotations already provide safety hints (readOnly, idempotent, non-destructive), so the description's burden is low. However, the description adds no behavioral context beyond the annotations; 'paginated' is redundant with the page and limit parameters in the schema. No rate limits, auth requirements, or side effects are disclosed.

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

Conciseness4/5

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

The description is a single, concise sentence with no fluff. It front-loads the core purpose ('Search scans by IP address') and appends the pagination note. While terse, it is structurally efficient and does not waste words.

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

Completeness2/5

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

For a search tool with pagination and an output schema, the description is too minimal. It does not explain what 'scans' are, how IP matching works (exact, partial, subnet), or any search-specific behavior. The presence of an output schema excuses missing return-value details, but the description still lacks essential operational 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?

Schema description coverage is 0%, so the description should compensate by explaining parameter meanings. It only mentions 'IP address' and 'paginated', leaving ip_address format (IPv4/IPv6, exact match) and page/limit semantics to be inferred from names. The description fails to add meaningful value over the schema.

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

Purpose5/5

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

The description clearly states the action ('Search'), the resource ('scans'), and the filter ('by IP address'), distinguishing it from other search_by_* sibling tools. The added 'paginated' note further specifies the behavior, 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 when to use the tool (when searching scans by IP) but offers no explicit guidance about alternatives or exclusions. It does not mention when to use this tool over search_by_asn or other search variants, leaving usage context to be inferred.

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

search_by_jarmSearch By JARMA
Read-onlyIdempotent
Inspect

Search scans by JARM signature (paginated).

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
limitNo
jarm_signatureYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, covering safety and idempotency. The description adds 'paginated', which is a behavioral trait but is also evident from the page and limit parameters in the schema. No additional context like rate limits or default behavior is provided.

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

Conciseness5/5

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

The description is a single concise sentence with no filler. It is front-loaded with the primary action and filter, making it easy to parse quickly.

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 presence of an output schema and strong annotations, the description is largely sufficient for a simple paginated search tool. It states the resource and pagination, though it lacks usage guidance relative to the many sibling tools. Overall, it is adequate but could be slightly more informative.

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, but it only mentions the JARM signature without explaining page/limit semantics or formats. The parameter names are somewhat self-explanatory, but the description 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?

The description clearly states the tool's action ('Search scans') and the specific filter ('by JARM signature'), which distinguishes it from sibling search tools like search_by_ip or search_by_favicon. It is a specific verb+resource combination.

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 JARM signature is available, but it does not explicitly state when to use this tool over alternatives or mention any exclusions. There is no comparison with similar search tools, leaving usage context implicit.

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

search_by_nameserverSearch By NameserverB
Read-onlyIdempotent
Inspect

Search scans by nameserver.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameserverYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

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

Annotations already declare readOnly, openWorld, idempotent, and non-destructive behavior, so safety is covered. The description adds minimal behavioral context beyond the tool's name, providing no details on matching semantics (e.g., exact vs partial match), result scope, or pagination.

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

Conciseness5/5

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

The description is a single concise sentence that is front-loaded with the verb and resource. There is zero redundant phrasing; it earns its place as an efficient summary of the tool's purpose.

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

Completeness3/5

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

For a simple one-parameter search tool with strong annotations and an output schema (not shown), the description is minimally viable. However, it lacks any usage context or parameter elaboration, so an agent might need additional inference about expected input format or result structure.

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% and the description does not compensate. It merely restates the parameter name ('nameserver') without explaining expected format (e.g., hostname, IP), matching behavior, or any constraints. The single required parameter is left entirely self-explanatory.

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 'Search scans by nameserver' uses a specific verb (Search), identifies the resource (scans), and specifies the search criterion (nameserver). It clearly distinguishes from sibling tools like search_by_ip or search_by_registrar by uniquely indicating the nameserver-based lookup.

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

Usage Guidelines3/5

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

The usage is implied: use this tool when you need to find scans associated with a nameserver. However, there is no explicit guidance on when to choose this over other search_by_* siblings, no exclusions, and no alternative suggestions.

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

search_by_registrarSearch By RegistrarA
Read-onlyIdempotent
Inspect

Search scans by registrar (paginated).

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
limitNo
registrar_nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false. The description adds 'paginated' as a behavioral trait, which is useful, but it does not disclose further details such as result ordering or limit behavior.

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

Conciseness5/5

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

The description is a single concise sentence with no unnecessary words. It directly states the action, resource, and key attribute (paginated).

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 an output schema, so return values need not be described. However, the description provides minimal context about what a scan is or what results contain, and it does not address any nuances of the search. Acceptable for a simple search tool but not fully detailed.

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 only implies the 'registrar_name' parameter, without explaining the 'page' and 'limit' parameters or their defaults. The schema provides defaults but the description does not 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.

Purpose5/5

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

Description states 'Search scans by registrar (paginated)' — specific verb, resource, and scope. It distinguishes this tool from sibling search tools like search_by_asn and search_by_ip.

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. The name and description clearly indicate it is for registrar-based search, but no exclusions or alternative recommendations are given.

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

search_by_screenshot_hashSearch By Screenshot HashB
Read-onlyIdempotent
Inspect

Search scans by screenshot hash (paginated).

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
limitNo
hash_typeYes
hash_valueYes
similarity_thresholdNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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

Annotations already declare readOnly, openWorld, idempotent, and non-destructive hints. The description adds 'paginated' behavior, which is useful beyond annotations, but omits details about matching semantics or result structure, though output schema partially covers the latter.

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

Conciseness5/5

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

The description is a single sentence, front-loaded with the key purpose, and contains no redundant words. Every word contributes value.

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?

Despite having an output schema and annotations, the description is too sparse to fully support invocation: no explanation of hash_type options, similarity_threshold usage, or pagination details. With many sibling tools and zero schema descriptions, this leaves significant ambiguity for an AI agent.

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

Parameters2/5

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

Schema description coverage is 0%, and the description only vaguely references 'screenshot hash', which maps to hash_type/hash_value but does not explain allowed hash types, similarity_threshold behavior, or pagination parameters. The description fails to compensate for the lack of schema descriptions.

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

Purpose5/5

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

The description uses the specific verb 'Search' with a clear resource ('scans') and distinguishing attribute ('by screenshot hash'). This differentiates it from sibling tools like search_by_favicon or search_similar_screenshots, and the 'paginated' note adds scope.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives. Among many sibling search tools, no exclusions or alternative tools are mentioned, leaving the agent without decision support for tool selection.

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

search_cpeSearch CPEA
Read-onlyIdempotent
Inspect

Search CPEs by pattern (paginated).

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
limitNo
cpe_patternYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, covering safety traits. The description adds 'paginated,' which confirms pagination behavior, but this is also evident from the page/limit parameters. It does not disclose additional behavioral details such as pattern syntax or result ordering.

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: 'Search CPEs by pattern (paginated).' It is concise, with no redundant words, and directly states the tool's purpose.

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

Completeness3/5

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

Given the simple read-only, paginated search tool with an output schema, the description is minimally adequate. However, it lacks pattern syntax details and usage differentiation from sibling search tools, leaving room for confusion. The output schema likely covers return values, reducing the burden.

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 only clarifies that cpe_pattern is a 'pattern,' but does not explain the pattern syntax (e.g., regex, wildcard, substring). Page and limit are implied by 'paginated' but not defined. This is minimal compensation for the lack of schema descriptions.

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

Purpose5/5

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

The description uses a specific verb ('Search') and resource ('CPEs') with a clear modifier ('by pattern'), making the tool's function immediately clear. It distinguishes from sibling tools like get_cpe_by_scan, which fetches CPEs for a specific scan.

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

Usage Guidelines3/5

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

The phrase 'by pattern' implies the tool is used when searching CPEs via a pattern, but it does not explicitly state when to use this versus alternatives. No mention is made of other search tools or exclusions, so only implied usage guidance is present.

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

search_favicon_mmh3Search Favicon MMH3A
Read-onlyIdempotent
Inspect

Search favicon by mmh3 hash (paginated).

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
limitNo
mmh3_hashYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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

Annotations already declare the tool read-only, idempotent, and non-destructive. The description adds the 'paginated' behavior, which is useful beyond the annotations, but doesn't disclose details like result ordering or authorization. This is acceptable given the safety profile is already covered.

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 phrase, front-loaded with the verb and resource, with no wasted words. It is appropriately sized for a simple search tool.

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 straightforward search tool, the description, annotations, and output schema together provide sufficient context. The lack of usage guidelines is a minor gap, but the tool is simple enough that the overall completeness is solid.

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 only identifies mmh3_hash as the search key, but doesn't explain page/limit semantics or hash format. The schema parameter names are self-explanatory, but the description provides minimal additional meaning.

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 searches favicons by mmh3 hash, using a specific verb, resource, and key. It distinguishes from sibling tools like search_by_favicon by specifying the hash algorithm, even though it doesn't explicitly name alternatives.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives like search_by_favicon or get_favicon. The description only states the action, leaving usage scenarios unaddressed.

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

search_js_fingerprint_by_bundlerSearch JS Fingerprint By BundlerC
Read-onlyIdempotent
Inspect

Search JS fingerprints by bundler type.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
per_pageNo
bundler_typeYes
bundle_formatNo
min_confidenceNo
include_librariesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. However, the description adds no behavioral context beyond the name—no mention of pagination, matching behavior, or what the response contains.

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

Conciseness5/5

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

One sentence with zero filler; it is clear and front-loaded.

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?

Although annotations and an output schema exist, this is a 6-parameter search tool. The description is too sparse to guide correct invocation—it doesn't explain how filters interact or what values are valid. The agent would have to infer or guess parameter meanings.

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%, so the description must compensate, but it only mentions bundler_type. It does not explain page, per_page, bundle_format, min_confidence, or include_libraries, leaving the agent without semantics for five of six parameters.

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

Purpose5/5

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

The description uses the specific verb 'Search' with resource 'JS fingerprints' and a clear modifier 'by bundler type', making it distinct from the many sibling search tools that filter by other attributes (md5, sha1, library, server, 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?

The description provides no guidance on when to choose this tool over alternatives like search_js_fingerprint_by_md5 or search_jsfingerprints_by_bundler. The only implied context is that it filters by bundler type, but no exclusions or recommended scenarios are given.

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

search_js_fingerprint_by_cdnSearch JS Fingerprint By CDNC
Read-onlyIdempotent
Inspect

Search JS fingerprints by CDN.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
cdn_typeYes
unpinned_onlyNo
cdn_cache_statusNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

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

The annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false, so the safety profile is covered. The description adds no additional behavioral context—it doesn't explain result ordering, pagination implications of limit, or how CDN matching works.

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 single sentence has zero waste and is appropriately front-loaded with the verb and resource. However, the extreme brevity comes at the cost of the missing semantics noted in other dimensions.

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, 0% schema description coverage, and no description-level parameter explanations, the tool definition is not complete enough for effective use. The output schema helps with return values, but key filter semantics (cdn_cache_status, unpinned_only) remain opaque.

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 for all four parameters. It only hints that cdn_type is the CDN filter; unpinned_only, cdn_cache_status, and limit are entirely unexplained. This is insufficient for such low schema coverage.

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

Purpose4/5

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

The description uses a specific verb (search) and resource (JS fingerprints) with a CDN qualifier, clearly distinguishing it from sibling hash-based search tools like search_js_fingerprint_by_md5 or search_js_fingerprint_by_sha1. However, it is extremely terse and doesn't elaborate on what 'by CDN' means in practice.

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 CDN-based search versus the many sibling alternatives (by library, by bundler, by hash, etc.). There are no usage examples, scenarios, or exclusions mentioned.

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

search_js_fingerprint_by_fuzzy_hashSearch JS Fingerprint By Fuzzy HashC
Read-onlyIdempotent
Inspect

Search JS fingerprints by fuzzy hash.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
fuzzy_hashYes
min_similarityNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so safety is covered. However, the description itself adds no behavioral context beyond the annotations—no mention of result ordering, pagination, matching behavior, or any caveats. It contributes nothing beyond what annotations already provide.

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

Conciseness3/5

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

The description is a single concise sentence with no wasted words, which is structurally clean. However, it is under-specified for a tool with multiple parameters and many near-identical siblings, so the brevity is more a lack of content than good 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?

Despite having an output schema, the description is incomplete for practical use. It does not explain what a JavaScript fingerprint is, how fuzzy matching works, or how this tool differs from its many similarly named siblings. The name alone is insufficient to disambiguate.

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 0% description coverage for its 3 parameters (fuzzy_hash, limit, min_similarity). The description fails to explain what 'fuzzy hash' means, how min_similarity affects results, or what limit controls. With zero parameter explanations in both schema and description, the agent is left guessing.

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 'Search JS fingerprints by fuzzy hash' is a tautology that simply restates the tool's name and title. It provides no additional specificity that would help distinguish it from many similar sibling tools such as search_jsfingerprints_by_fuzzy_hash or search_by_fuzzy_hash.

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 about when to use this tool versus the many similar search tools. The description does not mention alternatives, exclusions, or any context such as preferred scenarios, making it impossible for an agent to decide between this and its siblings.

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

search_js_fingerprint_by_librarySearch JS Fingerprint By LibraryC
Read-onlyIdempotent
Inspect

Search JS fingerprints by library name.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
versionNo
per_pageNo
library_nameYes
min_confidenceNo
version_patternNo
include_cdn_onlyNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, covering the safety profile. The description adds no behavioral context beyond the name, such as matching semantics, pagination behavior, or filters. It merely restates the tool's purpose without any additional transparency.

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

Conciseness4/5

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

The description is a single, tight sentence with no unnecessary words, making it very concise. There is no fluff or repetition. However, it is also extremely minimal, which borders on under-specification, but conciseness itself is well-executed.

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?

Despite having an output schema and rich annotations, the description is incomplete for a tool with 7 filtering parameters and many sibling search tools. It fails to mention the additional search capabilities, pagination, or how it relates to similar sibling tools. The description is too sparse to correctly guide tool selection and invocation.

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%, so the description must compensate for the 7 parameters. It only mentions 'library_name', ignoring page, version, per_page, min_confidence, version_pattern, and include_cdn_only. No additional meaning or usage hints are provided for these filters, leaving the agent reliant on guessing from 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 a specific action ('Search'), a resource ('JS fingerprints'), and a scope ('by library name'), making the core purpose understandable. However, it does not differentiate from closely named siblings such as 'search_jsfingerprints_by_library' or 'search_js_fingerprint_by_library_version', so it lacks explicit sibling distinction.

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

Usage Guidelines2/5

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

The description gives no guidance on when to use this tool versus alternatives. It does not mention any exclusions, prerequisites, or superior alternatives, leaving the agent to infer usage solely from the name. No when-to-use or when-not-to-use context is provided.

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

search_js_fingerprint_by_library_versionSearch JS Fingerprint By Library VersionC
Read-onlyIdempotent
Inspect

Search JS fingerprints by library version.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
libraryYes
versionYes
group_by_urlNo
include_deprecatedNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

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

Aside from the annotations (readOnlyHint, idempotentHint, etc.), the description adds no behavioral details. It does not mention pagination, default limit behavior, or how deprecated results are handled. There is no contradiction with annotations, but the description contributes no extra transparency.

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

Conciseness5/5

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

The description is a single sentence, extremely concise and front-loaded. It contains no filler, though it may be too sparse for other dimensions.

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 5 parameters and many closely related siblings, this description is insufficient. It lacks details about optional parameter behavior, output expectations, and distinguishing characteristics, making it hard for an agent to invoke correctly.

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

Parameters2/5

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

The phrase 'by library version' hints at the two required parameters, but the input schema already provides their names/titles. With 0% schema description coverage, the description does not explain limit, group_by_url, or include_deprecated, leaving those parameters ambiguous.

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

Purpose4/5

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

The description uses the verb 'Search' and specifies the resource 'JS fingerprints' filtered by 'library version', making the basic function clear. However, it does not differentiate this tool from closely named siblings such as search_js_fingerprint_by_library or search_jsfingerprints_by_library_version.

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 guidance is provided. There is no mention of when to use this over other search tools, what to do with optional parameters like group_by_url or include_deprecated, or any exclusion criteria.

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

search_js_fingerprint_by_md5Search JS Fingerprint By MD5C
Read-onlyIdempotent
Inspect

Search JS fingerprints by MD5 hash.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
to_dateNo
from_dateNo
hash_valueYes
include_scansNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

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

The description adds no behavioral context beyond the annotations. It does not mention that results may be incomplete (open world), nor does it clarify whether the search is exact-match or how optional filters affect results. The read-only and idempotent traits are conveyed solely by annotations, not by the description.

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

Conciseness4/5

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

The description is a single, direct sentence with no filler or redundant phrasing. It is efficiently front-loaded with the action and target, though it is minimal to the point of under-specification.

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?

Despite having an output schema and strong annotations, the description leaves the tool's role relative to its many siblings unclear and fails to explain the purpose of optional parameters. With five parameters and a large family of similar tools, the description is under-specified and requires guesswork.

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 has 0% description coverage, and the description only references the concept of 'MD5 hash' without elaborating on the hash_value parameter or any other parameters. Optional parameters like limit, from_date, to_date, and include_scans are not explained, so the agent cannot infer their expected formats or behavior beyond their names and defaults.

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

Purpose4/5

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

The description uses a specific verb ('Search'), identifies the resource ('JS fingerprints'), and specifies the filter ('by MD5 hash'), making the core purpose clear. However, it does not distinguish itself from the very similarly named sibling tool 'search_jsfingerprints_by_md5', so it lacks full sibling differentiation.

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

Usage Guidelines2/5

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

No guidance is provided about when to use this tool versus the many alternative JS fingerprint search tools (e.g., search_js_fingerprint_by_sha1, search_jsfingerprints_by_md5). There are no exclusions or references to alternative tools, so the agent receives no decision-making support.

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

search_js_fingerprint_by_normalized_hashSearch JS Fingerprint By Normalized HashC
Read-onlyIdempotent
Inspect

Search JS fingerprints by normalized hash.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
to_dateNo
from_dateNo
hash_valueYes
include_scansNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior. The description adds no additional behavioral traits such as normalization details, exact-match semantics, or how include_scans affects results, so it brings no value beyond the structured data.

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

Conciseness5/5

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

The description is a single concise sentence with no redundant words. It is perfectly front-loaded and every word contributes to the stated purpose, though the under-specification affects other dimensions.

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 five parameters, the presence of an output schema, and a crowded field of sibling search tools, this one-sentence description is inadequate. It omits critical context about exact matching, date filtering, and how this search differs from other hash searches, leaving the agent without enough information to use it correctly.

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 compensate, but it only hints at the role of hash_value via 'by normalized hash.' Other parameters like limit, from_date, to_date, and include_scans receive no semantic explanation beyond their schema titles, leaving the agent to guess their purpose.

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 (search), resource (JS fingerprints), and criterion (by normalized hash), which is a specific verb+resource. However, it does not distinguish this tool from very similar siblings like search_jsfingerprints_by_normalized_hash or search_js_fingerprint_by_sha1, so it lacks sibling differentiation.

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

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 the many other hash-based search siblings. It only implies the use case by naming the search criterion, with no exclusions or alternative suggestions, so an agent gets no decision-making context.

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

search_js_fingerprint_by_serverSearch JS Fingerprint By ServerB
Read-onlyIdempotent
Inspect

Search JS fingerprints by server type.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
server_typeYes
include_headersNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. However, the description adds no behavioral context beyond the annotations—nothing about result ordering, pagination, exact-match semantics, or edge cases. It provides zero additional transparency.

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

Conciseness5/5

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

The description is a single concise sentence, front-loaded with the action and scope. There is no superfluous content; every word contributes to the meaning. It is appropriately brief for a straightforward search 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 3 parameters with 0% schema description coverage and no usage guidance, the description is insufficient for an agent to invoke the tool confidently. The output schema exists, so return format explanation is not required, but the description still fails to address parameter semantics and selection criteria among many similar search tools.

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 schema_description_coverage at 0%, the description must compensate for the lack of parameter documentation. It mentions 'server type' which directly corresponds to the required 'server_type' parameter, but it does not explain the meaning or purpose of 'limit' or 'include_headers'. The description duplicates the parameter name without adding any new insight.

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 ('Search JS fingerprints') and the specific filter ('by server type'). This distinguishes it from sibling tools like search_js_fingerprint_by_bundler or search_js_fingerprint_by_cdn, so the purpose is unambiguous.

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

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. Among the many similar sibling search tools, there is no mention of scenarios where filtering by server type is appropriate, nor any exclusions or recommendations.

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

search_js_fingerprint_by_sha1Search JS Fingerprint By SHA1C
Read-onlyIdempotent
Inspect

Search JS fingerprints by SHA1 hash.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
to_dateNo
from_dateNo
hash_valueYes
include_scansNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

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

The description adds no behavioral context beyond what is already known from the tool name. Annotations already declare the tool as read-only, idempotent, and non-destructive, but the description doesn't mention details such as date-based filtering, limit behavior, or what constitutes a 'fingerprint'.

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, short sentence that is easy to read and free of unnecessary words. However, it is so minimal that it borders on under-specification, merely restating the tool's name without adding useful 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 tool with five parameters and a large set of sibling tools, this description is insufficiently informative. It does not explain the purpose of date filters or include_scans, nor does it help the agent decide when this tool is preferable over other SHA1-related or hash-based search tools.

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?

With 0% schema description coverage, the description was expected to explain parameter meanings. It only mentions the hash value, leaving limit, from_date, to_date, and include_scans completely unexplained. The description adds no value beyond the schema's property titles.

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 (search), the resource (JS fingerprints), and the identifier (SHA1 hash). However, it does not explicitly distinguish this tool from similar siblings like search_js_fingerprint_by_md5 or search_js_fingerprint_by_sha256; it relies on the tool name to convey the SHA1-specific scope.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus the many similar search_js_fingerprint_by_* alternatives. There are no exclusions, preconditions, or references to more appropriate tools for different hash types.

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

search_js_fingerprint_by_sha256Search JS Fingerprint By SHA256B
Read-onlyIdempotent
Inspect

Search JS fingerprints by SHA256 hash.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
to_dateNo
from_dateNo
hash_valueYes
include_scansNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds no behavioral context beyond the basic purpose; it does not mention pagination, date filtering, exact-match semantics, or return format. With no additional disclosure, the description contributes minimal value beyond the annotations.

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

Conciseness5/5

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

The description is a single sentence of eight words, front-loading the core purpose with no unnecessary content. It is appropriately sized for a simple lookup tool.

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

Completeness3/5

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

With an output schema present and annotations covering safety, the description is minimally adequate for basic invocation. However, it omits details about optional parameters (limit, dates, include_scans) and search semantics, leaving an agent to infer or guess for more nuanced usage. The presence of clear parameter defaults partially mitigates this gap.

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 has 5 parameters with 0% description coverage. The tool description does not explain any parameters. While names like 'limit' and 'from_date' are somewhat self-explanatory, ambiguous fields such as 'include_scans' and date format expectations are left undefined. The description fails to compensate for the low schema coverage.

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

Purpose5/5

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

The description clearly states 'Search JS fingerprints by SHA256 hash' with a specific verb and resource. It distinguishes itself from sibling tools that search by other hash types (e.g., by_md5, by_sha1) through the explicit 'by SHA256' qualifier.

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 explicitly state when to use this tool over alternatives, nor does it mention alternatives. However, the name and purpose imply its usage when a SHA256 hash is available, providing a clear but implicit context. No exclusions or alternative tool recommendations are provided.

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

search_js_fingerprinter2_composite_hashSearch JS Fingerprinter2 Composite HashC
Read-onlyIdempotent
Inspect

Search JS Fingerprinter2 by composite hash.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
composite_hashYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

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

The description discloses no behavioral traits beyond what the annotations already provide (readOnlyHint, idempotentHint, destructiveHint). It adds no context about rate limits, result ordering, pagination, or other runtime behavior, so the annotation layer does all the work.

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 with no unnecessary words, making it concise and front-loaded. It is appropriately sized for a simple search tool, even though it largely duplicates the tool's name and title.

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 search tool, the description is minimally sufficient, and the presence of an output schema and annotations reduces the need to explain return values or safety. However, given the large set of sibling search tools, it lacks the contextual differentiation needed to guide an agent toward this specific hash type, and it does not explain what a 'composite hash' is.

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 clarifies that the composite_hash parameter is the search key, which adds semantic meaning beyond the raw schema. However, the limit parameter is not mentioned at all, and with 0% schema description coverage, the description only partially compensates 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 states a clear action: 'Search JS Fingerprinter2 by composite hash.' It names the resource and the specific search key, making the tool's purpose unambiguous. However, it does not explicitly distinguish it from closely related siblings like search_js_fingerprinter2_signature or search_js_fingerprinter2_similar, so it stops short of full differentiation.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus other search variants. There is no mention of alternatives, prerequisites, or use cases, leaving the agent to infer context from the tool's name alone.

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

search_js_fingerprinter2_signatureSearch JS Fingerprinter2 SignatureD
Read-onlyIdempotent
Inspect

Search JS Fingerprinter2 by signature.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
signatureYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is known. However, the description adds no behavioral context, such as how results are ordered, how limit affects output, or what the return structure looks like beyond the output schema.

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

Conciseness2/5

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

The description is extremely short but not appropriately concise; it is under-specified. A single sentence that merely restates the tool name does not earn its place, as it provides no useful additional information.

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 two parameters, zero schema descriptions, and a vague description, the tool is not adequately specified for an agent to invoke it correctly. The output schema exists but the input semantics and tool purpose remain ambiguous, especially given the large number of sibling search tools.

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%, so the description must explain the parameters. It only repeats 'signature' without specifying its format or semantics, and completely omits the 'limit' parameter, leaving the agent to guess what values are acceptable.

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 'Search JS Fingerprinter2 by signature' essentially restates the tool name without adding clarity. It does not define what 'signature' means (e.g., a hash, a substring, an exact match) and does not distinguish this tool from siblings like search_js_fingerprinter2_composite_hash or search_js_fingerprinter2_similar.

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

Usage Guidelines2/5

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

No guidance is provided about when to use this tool versus the many sibling search tools. There is no mention of prerequisites, expected input format, or scenarios where another tool would be more appropriate.

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

search_js_fingerprinter2_similarSearch JS Fingerprinter2 SimilarC
Read-onlyIdempotent
Inspect

Search JS Fingerprinter2 similar scans.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
scan_idYes
include_selfNo
min_similarityNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is known. The description adds no additional behavioral context, such as how similarity is computed, whether self is included by default, or the role of min_similarity.

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

Conciseness4/5

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

The description is a single, front-loaded sentence with no filler or redundancy. It is concise, though it achieves this by omitting substantive 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 4-parameter search tool with many sibling alternatives, the description is operationally thin. It does not explain the similarity mechanism, expected output interpretation, or any edge cases, so an agent cannot confidently select or invoke it based solely on this text.

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% and the description provides no parameter explanations. scan_id is inferable from the tool name, but limit, include_self, and min_similarity remain unexplained, forcing the agent to rely on parameter names and defaults.

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 names a specific verb ('Search') and resource ('JS Fingerprinter2 similar scans'), which distinguishes it from other fingerprint search tools. However, it does not explicitly state that the search is anchored by a scan_id, leaving some ambiguity about the input.

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 guidance is provided. The description does not explain when to use this tool versus siblings like search_js_fingerprinter2_composite_hash, search_js_fingerprinter2_signature, or get_jsfingerprint_similar, nor does it offer any conditions or exclusions.

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

search_js_fingerprint_obfuscatedSearch JS Fingerprint ObfuscatedD
Read-onlyIdempotent
Inspect

Search obfuscated JS fingerprints.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
per_pageNo
max_scoreNo
min_scoreNo
classificationNo
min_code_lengthNo
exclude_librariesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

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

Annotations declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint, but the description adds no behavioral context such as result ordering, pagination defaults, or meaning of 'obfuscated'. It fails to communicate any traits not already in annotations.

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?

A four-word sentence is technically concise but under-specified; it is not informative enough to earn its place, as it merely restates the title.

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 seven parameters and no schema descriptions, this description is grossly incomplete. It does not explain the search criteria, the meaning of 'fingerprint', or how filters interact.

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 does not mention any of the seven parameters. Although names like page and per_page are self-explanatory, fields like max_score, min_score, classification, min_code_length, and exclude_libraries lack semantic context.

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 'Search obfuscated JS fingerprints' is a near verbatim restatement of the tool name and title, providing no additional specificity to distinguish it from sibling tools like search_js_obfuscation or search_js_fingerprint_by_fuzzy_hash.

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

Usage Guidelines2/5

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

No guidance is provided regarding when to use this tool versus alternative search tools. There is no mention of exclusions, prerequisites, or context.

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

search_js_fingerprint_patternsSearch JS Fingerprint PatternsC
Read-onlyIdempotent
Inspect

Search JS fingerprints by patterns.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
has_evalNo
has_cryptoNo
no_libraryNo
cdn_mismatchNo
high_entropyNo
has_websocketNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. But the description adds no behavioral context beyond stating 'by patterns' — it doesn't explain how filters combine, what the result set looks like, or what 'patterns' actually means, adding little value beyond the annotations.

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

Conciseness3/5

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

The description is a single sentence with no wasted words, so it is concise. However, it is merely a restatement of the title and lacks any structured guidance; while appropriately short, it is under-specified and does not serve the reader well.

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?

The tool has 7 parameters, a large sibling list, and an output schema, yet the description provides almost no context. It fails to explain the unique filtering capability provided by the boolean flags or how it relates to the many similar fingerprint search tools, making it inadequate for correct tool selection.

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 does not compensate. It mentions 'patterns' but never explains that the parameters (has_eval, has_crypto, no_library, cdn_mismatch, high_entropy, has_websocket, limit) are the pattern filters. The agent gets no help understanding what these flags mean or how they interact.

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 says 'Search JS fingerprints by patterns,' which gives a specific verb and resource, and the 'by patterns' modifier distinguishes it from the many same-resource search tools that search by hash, library, CDN, etc. However, 'patterns' is vague and not elaborated, so it doesn't fully clarify what kind of patterns are meant.

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 guidance is provided. There is no mention of when to use this versus the dozens of sibling tools like search_js_fingerprint_by_library or search_js_fingerprint_by_cdn, nor any context about the boolean filter flags that should be used.

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

search_jsfingerprints_by_bundlerSearch JS Fingerprints By BundlerB
Read-onlyIdempotent
Inspect

Search JS fingerprints by bundler (paginated).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo
bundlerYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds the behavioral trait of pagination, which is useful, but does not disclose any other context such as response structure or rate limits. No contradiction with annotations.

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

Conciseness5/5

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

The description is a single concise sentence that is front-loaded with the main action and filter, and includes the pagination note. 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 output schema exists and annotations cover safety, the description is mostly sufficient for a simple filtering tool. However, the lack of usage guidance and the similarity to sibling tools (especially the singular variant) leaves some ambiguity about exact invocation context.

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

Parameters3/5

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

The description says 'by bundler' and 'paginated', which maps bundler to the filter and limit/offset to pagination. With 0% schema description coverage, this is minimal but does give basic meaning to all three parameters. It does not specify matching semantics (exact vs partial) or valid bundler formats.

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

Purpose4/5

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

The description states a clear verb 'Search' with a specific resource 'JS fingerprints' and filter 'by bundler', and mentions pagination. However, it does not explicitly differentiate from the similarly named sibling tool 'search_js_fingerprint_by_bundler' (singular), so it is clear but not distinguishing.

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 the many sibling search tools (by library, by cdn, etc.) or the singular 'fingerprint' variant. It lacks context on preferred use cases or exclusions.

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

search_jsfingerprints_by_fuzzy_hashSearch JS Fingerprints By Fuzzy HashC
Read-onlyIdempotent
Inspect

Search JS fingerprints by fuzzy hash (paginated).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo
fuzzy_hashYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds the behavioral detail of pagination, which is useful but minimal. It does not describe response format, ordering, or rate limits, and it does not contradict annotations.

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

Conciseness4/5

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

The description is a single concise sentence with no filler, front-loading the key action and resource. It is appropriately sized for a simple tool, though slightly too terse to convey additional nuance.

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?

Despite having an output schema and good annotations, the description lacks essential context for selecting this tool among many similar siblings. It gives no usage guidance, no differentiation, and minimal parameter explanation. The presence of output schema reduces the need to describe return values, but the tool still feels incomplete for its search purpose.

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 for parameter meaning. It mentions the fuzzy hash criterion and hints at limit/offset via 'paginated', but it does not explain the format or semantics beyond what parameter names already imply. This is insufficient given the lack of schema descriptions.

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 searches JS fingerprints by fuzzy hash, using a specific verb and resource. However, it does not differentiate from sibling tools like search_js_fingerprint_by_fuzzy_hash (singular) or search_by_fuzzy_hash, so it falls short of a 5.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. The description only states the basic action and pagination, with no context on exclusions, prerequisites, or when a sibling 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.

search_jsfingerprints_by_librarySearch JS Fingerprints By LibraryB
Read-onlyIdempotent
Inspect

Search JS fingerprints by library (paginated).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo
libraryYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds the paginated nature of the results, which is useful context, but it does not elaborate on pagination semantics (e.g., limit/offset behavior) or any other runtime traits.

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 immediately states the action and target. It contains no filler or repetition, making it appropriately concise for a simple search tool.

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

Completeness3/5

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

An output schema exists and annotations cover safety, reducing the need to describe return values. However, the description lacks guidance on when to prefer this tool over similar library-focused search siblings and does not clarify matching behavior. It is a minimal viable description but with noticeable 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?

Schema description coverage is 0%, so the description must compensate. It mentions 'by library' and 'paginated', which hints at the library and limit/offset parameters, but provides no detail about expected value formats, matching rules (exact vs substring), or constraints. The parameter names are self-explanatory but the description adds little beyond them.

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 'Search JS fingerprints by library' clearly identifies the verb (search), resource (JS fingerprints), and filter (by library). However, it does not distinguish its purpose from similar sibling tools like 'search_js_fingerprint_by_library' or 'search_jsfingerprints_by_library_version', so it loses a point.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives such as searching by library version or other fingerprint attributes. No exclusions, prerequisites, or context for selection are given, leaving the agent without decision support.

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

search_jsfingerprints_by_library_versionSearch JS Fingerprints By Library VersionB
Read-onlyIdempotent
Inspect

Search JS fingerprints by library version (paginated).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo
libraryYes
versionYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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

Annotations already mark this as read-only, idempotent, and non-destructive. The description adds 'paginated,' which is a behavioral detail, but this is also evident from the `limit`/`offset` parameters. It provides no additional context about auth, rate limits, or response behavior beyond what annotations imply.

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

Conciseness5/5

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

A single sentence with no redundant words. It front-loads the action and resource, making it easy to skim.

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

Completeness2/5

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

The tool is simple, and the output schema covers return values, but the description lacks usage guidance and fails to distinguish from near-identical siblings like search_js_fingerprint_by_library_version. Given the extensive sibling list, this is 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 input schema has no property descriptions, and the description only references 'library version' in passing. It does not explain that `library` and `version` are required string filters, nor the meaning of `limit`/`offset` beyond the word 'paginated.' This leaves the agent reliant on parameter names 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 uses the specific verb 'Search' and identifies the resource 'JS fingerprints' with the qualifier 'by library version,' making the tool's purpose unambiguous and differentiating it from sibling search tools that filter by hash, library, or other criteria.

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

Usage Guidelines2/5

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

There is no guidance on when to choose this tool over alternatives. It does not mention that this is for version-specific lookup or suggest other tools for non-version queries. No exclusions or conditions are provided.

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

search_jsfingerprints_by_md5Search JS Fingerprints By MD5A
Read-onlyIdempotent
Inspect

Search JS fingerprints by MD5 (paginated).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo
hash_valueYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, so the description's additional 'paginated' note provides some behavioral context (e.g., limit/offset support). However, no further behaviors such as result ordering or potential errors are disclosed. This is modest added value beyond the annotations.

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

Conciseness5/5

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

The description is one concise sentence that front-loads the core purpose (search by MD5) and includes relevant pagination info. There is no redundant or irrelevant content, making it an efficient description.

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, an output schema, and informative annotations, the description covers the essential context: search by MD5 with pagination. It could be slightly improved by explicitly noting the hash type in a sentence about when to use this over other hash searches, but overall it is sufficiently complete for basic agent usage.

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

Parameters3/5

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

The input schema has 0% description coverage and labels the only required parameter as 'Hash Value', which is vague. The description clarifies that the hash is an MD5 and that results are paginated, giving meaning to 'limit' and 'offset'. However, it does not specify hash format (e.g., 32-character hex), so completeness is limited.

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 verb 'search', the resource 'JS fingerprints', and the criterion 'by MD5', making it distinct from sibling tools like search_jsfingerprints_by_sha1. The 'paginated' note adds scope. This is a precise and unambiguous purpose statement.

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 should be used when searching by MD5 hash, but it does not explicitly state when to use it over alternatives (e.g., SHA1 or fuzzy hash). No exclusions or alternative recommendations are provided, so usage guidance is only implicit from the tool's name.

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

search_jsfingerprints_by_normalized_hashSearch JS Fingerprints By Normalized HashA
Read-onlyIdempotent
Inspect

Search JS fingerprints by normalized hash (paginated).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo
hash_valueYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false. The description adds 'paginated' behavior, but this is largely inferable from the limit/offset parameters. No additional behavioral context is provided.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no superfluous words. It communicates the essential operation and pagination in a compact manner.

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 is simple, an output schema exists, and annotations cover safety and open-world behavior. The description conveys core function and pagination. It lacks explanation of the normalized hash concept and use cases, but overall is adequate given the structured metadata.

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 references the hash_value parameter via 'by normalized hash' but does not explain what a normalized hash is or clarify limit/offset beyond their names. Insufficient for low coverage.

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

Purpose5/5

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

The description uses a specific verb 'Search', a clear resource 'JS fingerprints', and a defining key 'normalized hash', which distinguishes it from sibling search-by-different-hash tools. The addition of '(paginated)' further clarifies scope.

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

Usage Guidelines3/5

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

Usage context is implied: the tool is for searching by normalized hash. However, no explicit guidance is given on when to choose this over the many similar sibling tools (e.g., by md5, sha1, fuzzy), nor any exclusions or prerequisites.

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

search_jsfingerprints_by_sha1Search JS Fingerprints By SHA1C
Read-onlyIdempotent
Inspect

Search JS fingerprints by SHA1 (paginated).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo
hash_valueYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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

The description adds the behavioral detail 'paginated', which is not in the annotations. However, it does not describe other relevant behaviors such as result ordering, default limits, or meaning of offset. The annotations already declare readOnlyHint and idempotentHint, so the description only adds minimal value beyond them.

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

Conciseness4/5

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

The description is a single concise sentence that is easy to parse. It is front-loaded with the key action and resource. The word 'paginated' is useful, though it could be expanded into a list structure 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?

The tool is simple, and the output schema and annotations cover some aspects, but the description is too sparse for an agent to decide when to use it. It lacks alternative guidance and parameter clarity, making it incomplete in the context of many similar search tools.

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 explain parameters. It only hints that 'hash_value' is a SHA1 hash via 'by SHA1', but it does not describe the format or constraints. The 'limit' and 'offset' parameters are not mentioned at all, despite pagination being flagged.

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

Purpose4/5

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

The description states 'Search JS fingerprints by SHA1 (paginated)', which clearly specifies the action (search), the resource (JS fingerprints), and the search key (SHA1). This distinguishes it from hash-based searches using other algorithms, but it does not differentiate it from the similarly named sibling tool 'search_js_fingerprint_by_sha1'.

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. There are many sibling search tools (e.g., by MD5, SHA256, normalized hash, fuzzy hash), but the description does not clarify which one is appropriate for which scenario.

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

search_jsfingerprints_by_sha256Search JS Fingerprints By SHA256A
Read-onlyIdempotent
Inspect

Search JS fingerprints by SHA256 (paginated).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo
hash_valueYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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

The description adds 'paginated' which is a behavioral trait beyond annotations, indicating that results are delivered in pages. Annotations already declare read-only, idempotent, and non-destructive behaviors, so the safety profile is covered. The description does not disclose additional behaviors such as rate limits or exact matching semantics, but for a simple search tool with strong annotations, this is adequate.

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

Conciseness5/5

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

The description is a single sentence, front-loaded with the core action and resource, and contains no fluff. Each word earns its place; 'paginated' adds useful behavioral info. It is appropriately sized for a straightforward search tool.

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, rich annotations (read-only, idempotent, open-world, non-destructive), and the existence of an output schema, the description is largely complete. It covers the essential purpose and pagination behavior. The only minor gap is not explicitly stating that the search is an exact match on SHA256, but that is strongly implied by the wording. Overall, it provides sufficient context for correct invocation.

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

Parameters3/5

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

Schema coverage is 0%, so the description must compensate. It explains that the search is 'by SHA256', giving meaning to the required 'hash_value' parameter. 'Paginated' implies the roles of 'limit' and 'offset' but does not explicitly detail their usage or defaults. This partial compensation is adequate but not thorough, so a 3 is appropriate.

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

Purpose5/5

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

The description 'Search JS fingerprints by SHA256' uses a specific verb and resource, clearly indicating the operation (search), the target (JS fingerprints), and the lookup key (SHA256). It also mentions pagination, which is a distinct behavioral trait. This distinguishes it from sibling tools that search by other hash types or use different methods, especially the singular 'search_js_fingerprint_by_sha256'.

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 any prerequisites, exclusions, or alternative tools. The only hint is that it accepts a SHA256 hash and supports pagination, but it does not say 'use this instead of X' or describe appropriate contexts, so the agent lacks direction for selection.

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

search_js_malware_familiesSearch JS Malware FamiliesD
Read-onlyIdempotent
Inspect

Search JS malware families.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
min_cluster_sizeNo
similarity_thresholdNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior1/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, but the description adds no behavioral information beyond that — no mention of result format, pagination, clustering behavior, or limitations. Since there is no contradiction, this is a missed opportunity but not an annotation conflict.

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 one-sentence description is overly terse and mostly repeats the title. While it is structurally clean, it has no substantive content, so this is under-specification rather than effective conciseness.

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

Completeness1/5

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

Given a 3-parameter search tool with clustering-related parameters, an output schema, and many similar siblings, the description provides essentially no context. It fails to explain what malware families are, how the parameters relate, or what the response contains.

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 does not mention limit, min_cluster_size, or similarity_threshold. The schema only provides types/defaults, so the agent is left to guess what these parameters mean or how they affect results.

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 is essentially identical to the tool name/title ('Search JS malware families.'), adding no specificity about what constitutes a family or how the search works. It does not distinguish this from sibling search tools like search_js_fingerprint_by_library or search_js_segments_by_hash.

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 about when to use this tool versus the many sibling search tools, nor any exclusions or prerequisites. The description has no usage context whatsoever.

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

search_js_obfuscationSearch JS ObfuscationC
Read-onlyIdempotent
Inspect

Search JS obfuscation signals.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
has_evalNo
risk_levelNo
min_risk_scoreNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

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

The annotations already indicate read-only, idempotent, and non-destructive behavior, so the description carries a low burden for safety. However, it adds no extra behavioral context, such as pagination behavior, default limit, or the meaning of risk scores. It merely restates the tool's purpose without elaborating on results or side effects.

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

Conciseness3/5

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

The description is a single, front-loaded sentence with no filler, which is structurally concise. However, it is under-specified to the point of being less useful than a more detailed description would be. It is not a tautology, but it borders on too terse to be effective.

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 four input parameters, an output schema, and numerous sibling search tools, the description is far too terse to orient an agent. It does not describe what 'signals' refers to, how to filter results, or when this endpoint is preferred over related search tools. The output schema exists but the description still needs to provide search semantics.

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 zero parameter descriptions (0% coverage), so the description must compensate. It does not explain any of the four parameters (limit, has_eval, risk_level, min_risk_score). The phrase 'obfuscation signals' does not clarify acceptable values or semantics, leaving the agent to guess what inputs mean.

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 a clear verb ('Search') and resource ('JS obfuscation signals'), but 'signals' is vague and does not specify what constitutes a signal. It also does not distinguish this tool from sibling tools like search_js_fingerprint_obfuscated or search_js_malware_families, which could be easily confused.

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 lacks any mention of use cases, prerequisites, or exclusions, leaving the agent to infer from the name alone. Unlike better-described siblings, there is no hint of what makes this search unique.

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

search_js_segments_by_hashSearch JS Segments By HashB
Read-onlyIdempotent
Inspect

Search JS segments by code hash.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo
code_hashYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so no credit is needed for that. The description adds no additional behavioral context such as pagination behavior, match semantics, or output format beyond the basic search action.

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 concise sentence that is front-loaded and contains no filler or redundant information. It communicates the core purpose efficiently.

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 is minimally viable for a simple search tool: it says what is searched and by what key. However, given the large number of similar sibling search tools and lack of parameter detail, more context would be needed for complete guidance. Output schema exists, so return values need not be described.

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 carries the full burden for explaining parameters. It only hints at code_hash as the search key but provides no details about limit or offset semantics, and no format or matching rules for the hash.

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 states the tool's action (Search), resource (JS segments), and specific criterion (by code hash). This distinguishes it from sibling tools like search_js_segments_by_normalized_hash, which uses a different hash type.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool over alternatives, nor any context about the search behavior or relationship to other hash-based segment searches. It simply restates the tool's function.

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

search_js_segments_by_normalized_hashSearch JS Segments By Normalized HashC
Read-onlyIdempotent
Inspect

Search JS segments by normalized hash.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo
normalized_hashYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

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

The description adds no behavioral context beyond what annotations already declare (readOnlyHint=true, destructiveHint=false). It fails to mention pagination behavior, the meaning of 'normalized hash,' or any constraints, leaving the agent without additional transparency.

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

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, which is ideal from a conciseness perspective. However, it is so brief that it borders on under-specification, though it still conveys the core 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 the tool's parameters (limit, offset), similar sibling tools, and an output schema, the description leaves out important context: what a normalized hash is, how results are paginated, and how to differentiate this from search_js_segments_by_hash. The description is too thin to fully enable correct selection and invocation.

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%, and the description only repeats the parameter name 'normalized_hash' without explaining its format, expected input, or how limit/offset affect results. The parameter names are self-explanatory to a degree, but the description adds 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 states a clear specific verb+resource: 'Search JS segments by normalized hash.' However, it does not distinguish from very similar siblings like search_js_segments_by_hash or search_js_fingerprint_by_normalized_hash, leaving ambiguity about which tool to choose.

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 clarify the difference between 'normalized hash' and other hash types, nor does it mention that search_js_segments_by_hash exists as a related option.

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

search_ocrSearch OCRC
Read-onlyIdempotent
Inspect

Search OCR text (paginated).

ParametersJSON Schema
NameRequiredDescriptionDefault
qYes
pageNo
limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint false. The description adds 'paginated', which is a small behavioral note beyond the schema, but does not describe return format or search semantics.

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?

One short sentence, but it is under-specified rather than concisely informative. It lacks necessary detail about parameters and usage, so the brevity is not effective.

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 many sibling search tools and an output schema, this description is far too minimal. It fails to explain what 'OCR text' means, how to construct the query, or how it differs from search_ocr_pattern. The agent could easily select the wrong 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 description coverage is 0% and the description says nothing about q, page, or limit. The meaning of q (full-text query, regex, etc.) is entirely unspecified, so the agent lacks critical information to construct a valid request.

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?

Clear verb ('Search') and resource ('OCR text'), but does not specify scope or distinguish from sibling tools like search_ocr_pattern. The parenthetical 'paginated' hints at a detail but does not elevate it to a full scope definition.

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 description lacks any context about supported query types, limitations, or when to prefer search_ocr_pattern or get_ocr_by_scan.

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

search_ocr_patternSearch OCR PatternB
Read-onlyIdempotent
Inspect

Search OCR by pattern (paginated).

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
limitNo
patternYes
case_sensitiveNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds the behavioral detail of 'paginated', which is useful context beyond annotations, but does not disclose other behaviors like pagination limits or matching semantics.

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 short sentence that is front-loaded and contains no filler. It communicates the core function and a key behavioral trait (pagination) without 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 search tool with an output schema and strong annotations, the description covers the essential purpose and pagination behavior. It does not elaborate on matching rules or alternatives, but the output schema and annotation hints fill most gaps, making this adequately complete for straightforward use.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate for parameter meaning. It adds 'by pattern' and 'paginated', which clarifies the pattern parameter and the presence of page/limit, but it does not explain the case_sensitive parameter or the default behavior beyond schema defaults.

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

Purpose4/5

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

The description states a specific action ('Search OCR by pattern') and mentions pagination, clearly identifying the tool's resource and mode of operation. However, it does not differentiate from the sibling tool 'search_ocr', so the purpose is clear but the distinction is not explicit.

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

Usage Guidelines2/5

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

The description implies usage for pattern-based OCR searches but provides no explicit guidance on when to use this tool versus alternatives like 'search_ocr' or 'get_ocr_by_scan'. It also lacks any exclusions or prerequisite context, leaving the agent to infer the appropriate use case.

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

search_scansSearch ScansC
Read-onlyIdempotent
Inspect

Search scans (q must be at least 3 characters).

ParametersJSON Schema
NameRequiredDescriptionDefault
qYes
pageNo
limitNo
search_typeNoall

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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

Annotations already provide readOnly, idempotent, and non-destructive hints, so the description only needs to add extra behavioral context. It adds the q minimum length constraint, which is useful, but it does not disclose pagination behavior or search_type semantics. This is acceptable 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 concise sentence that is front-loaded and easy to parse. However, it is under-specified given the tool's complexity, so it is not perfectly tailored.

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 four parameters, no schema descriptions, and many sibling tools, the description is far too minimal to guide correct usage. The output schema helps with return values, but the description fails to explain the search scope and the meaning of search_type, making the tool hard to use correctly.

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 only explains q's minimum length, leaving search_type, page, and limit undefined. search_type, which defaults to 'all', especially needs semantic explanation because it has no enum or description in the schema.

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 the tool searches scans, but it lacks specificity about what scans are and how the search works. It does not distinguish itself from the many sibling search tools like search_by_ip or search_js_fingerprint, so the purpose is only partially clear.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives. The q length constraint is a prerequisite, but the description does not explain the intended use case or exclude other search types, leaving the agent to guess among many similar tools.

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

search_semanticSearch SemanticB
Read-onlyIdempotent
Inspect

Semantic search over scans (paginated).

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
limitNo
queryYes
thresholdNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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

Annotations already indicate readOnly, idempotent, and non-destructive behavior. The description adds only the pagination detail, providing minimal extra context. No information on authentication, rate limits, or result ordering is given.

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

Conciseness5/5

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

The description is a single, compact sentence that conveys the essential function without wasted words. It is appropriately concise and front-loaded.

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?

Despite having an output schema and annotations, the description lacks critical usage context: what semantic search means, how the threshold affects results, and when to prefer this over other search tools. The pagination note is a small addition, but overall the tool is incompletely described.

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%, and the description does not explain the meaning of 'query', 'threshold', 'page', or 'limit' beyond the word 'paginated' which hints at page/limit. The required query parameter and threshold score are left unexplained, providing little semantic value.

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 'Semantic search over scans (paginated)' clearly identifies the action (search), the resource (scans), and a distinguishing feature (semantic, paginated). It is specific and differentiates from sibling tools focused on other search types.

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 semantic search versus the many other search tools (e.g., search_scans, search_by_ip). The description does not mention alternatives or exclusions, leaving the agent to infer usage.

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

search_similar_scansSearch Similar ScansB
Read-onlyIdempotent
Inspect

Search for scans similar to a scan_id (paginated).

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
limitNo
methodsNo
scan_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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

Annotations cover readOnly, idempotent, openWorld, and destructive hints. The description adds the pagination trait beyond annotations, but does not clarify what 'methods' does or what 'similar' means behaviorally. No contradiction with annotations.

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

Conciseness5/5

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

Single sentence that front-loads the core action and input. No filler words; every word earns its place. Very efficient for the clarity it provides.

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 schema descriptions, the description is too thin. It omits any explanation of the 'methods' parameter and the meaning of 'similar'. Output schema exists, so return values are covered, but the configurable options are not, making the tool difficult to use correctly without external knowledge.

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

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 references scan_id and implies page/limit via 'paginated', but leaves 'methods' completely semantically unexplained. This is a significant gap for a parameter that accepts an array of strings.

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?

States the specific verb 'Search', resource 'scans', and the key input scan_id, plus pagination. It distinguishes from sibling 'search_similar_screenshots' by resource, but does not explicitly contrast with other scan search tools, and 'similar' is somewhat ambiguous regarding criteria.

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 the many alternative search tools (e.g., search_scans, search_semantic, search_by_fuzzy_hash). No exclusions, prerequisites, or alternative tool names are provided.

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

search_similar_screenshotsSearch Similar ScreenshotsC
Read-onlyIdempotent
Inspect

Search for similar screenshots by hash.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
hash_typeNophash
hash_valueYes
max_distanceNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior2/5

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

Annotations already declare read-only, open-world, idempotent, and non-destructive behavior. The description adds only the 'by hash' mechanism but does not disclose how similarity is calculated, what max_distance means, or any limitations on hash types. This is minimal additional context beyond the annotations.

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

Conciseness4/5

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

The description is a single efficient sentence with no filler. It is front-loaded with the core action, though extremely 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?

The tool has four parameters and an output schema, but the description provides almost no operational context. It doesn't explain how to set similarity tolerance, what hash types are supported, or how results are ordered. Despite annotations covering safety, the description leaves substantial gaps for a similarity-search 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?

With 0% schema description coverage, the description must explain the parameters. It mentions 'by hash' but doesn't clarify the meaning of hash_type (e.g., phash), max_distance, or limit. This is insufficient given the four-parameter schema.

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

Purpose5/5

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

The description uses a specific verb ('Search'), resource ('screenshots'), and method ('by hash'), clearly distinguishing it from sibling tools like 'search_by_screenshot_hash' (exact match) and other similar-search tools for different resources.

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 exact-match search or explain the similarity concept, leaving the user to infer from the name.

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

search_suspicious_clipboardSearch Suspicious ClipboardB
Read-onlyIdempotent
Inspect

Search suspicious clipboard indicators (paginated).

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
limitNo
patternNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds that results are paginated, which is a modest behavioral disclosure, but it doesn't explain query semantics or what constitutes 'suspicious'.

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 short sentence with no redundant information. Every word earns its place, and it is appropriately front-loaded.

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?

A search tool with 3 parameters including a nullable 'pattern' needs more context. The description doesn't clarify what makes clipboard indicators suspicious or how patterns are matched, leaving the agent underinformed despite an 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%, so the description needed to compensate. It only mentions pagination, referencing page/limit, but leaves 'pattern' entirely unexplained—whether it's regex, exact match, or something else is unclear.

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 that the tool searches suspicious clipboard indicators, with a specific verb and resource. It doesn't explicitly differentiate from sibling search tools, but the resource is specific enough that purpose is evident.

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. There are many search_* siblings, but no exclusions, prerequisites, or preferred contexts are mentioned.

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

search_technologiesSearch TechnologiesC
Read-onlyIdempotent
Inspect

Search technologies (paginated).

ParametersJSON Schema
NameRequiredDescriptionDefault
qNo
pageNo
limitNo
categoryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

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

Annotations already establish read-only, idempotent, and non-destructive behavior. The description only adds 'paginated,' which is also inferable from the page/limit parameters, so it adds no meaningful behavioral context.

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

Conciseness3/5

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

The description is very short and front-loaded, but it is under-specified. It lacks enough content to be considered appropriately sized for a tool with four parameters and many siblings.

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

Completeness2/5

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

The tool has four parameters, no schema descriptions, and a large sibling set, but the description provides no context about filtering, result behavior, or how it differs from related tools. The output schema exists but cannot compensate for the missing usage 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?

Schema description coverage is 0%, and the description does not mention any parameters (q, category, page, limit). The description fails to compensate for the lack of schema-level explanations.

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 'Search technologies (paginated)' has a verb and resource, but 'technologies' is vague—it doesn't specify what kind of technologies or what a 'search' returns. It doesn't differentiate from siblings like 'search_cpe' or 'get_technologies_by_scan'.

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 instead of the many sibling search tools. The pagination hint is too trivial to count as usage direction.

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

search_tracking_keySearch Tracking KeyB
Read-onlyIdempotent
Inspect

Search by tracking key (paginated).

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYes
pageNo
sortNo
limitNo
tracker_typeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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

Annotations already declare the tool read-only, idempotent, and non-destructive, so the safety profile is covered. The description adds only 'paginated', which is a behavioral detail, but it doesn't disclose matching semantics, sorting defaults, or response structure.

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

Conciseness5/5

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

The description is a single, clear sentence with no filler. 'Search by tracking key (paginated)' delivers the core action and scope efficiently with the key detail front-loaded.

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 5-parameter search tool with zero parameter documentation, this description is under-specified. It provides no context about tracker_type values, output contents, sorting, or how pagination behaves, making it insufficient for confident invocation in many cases.

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%, and the description only implies that 'key' is the search term and that results are paginated. It does not explain tracker_type, sort, or limit semantics, leaving the agent to rely on parameter names and default values.

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

Purpose4/5

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

The description specifies a search action on a tracking key and notes pagination. This clearly identifies the tool's primary purpose and distinguishes it from get_top_tracking_keys and other search siblings, though it doesn't elaborate on the exact result context.

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

Usage Guidelines2/5

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

No guidance is provided about when to use this tool versus the many sibling search and get tools. There are no exclusions, prerequisites, or alternative tool references, leaving the agent without decision support.

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

submit_scanSubmit ScanCInspect

Submit a URL for scanning.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes
optionsNo
scan_typeNopublic
user_agentNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

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

Annotations indicate this is a non-read-only, non-destructive operation, but the description adds no behavioral context beyond that. It does not disclose whether the scan is asynchronous, if it returns a scan ID, or if there are rate limits, which are essential for a submission tool.

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 only six words, which is extremely concise but under-specified. It does not earn its place by adding value beyond the tool name, as it provides no actionable information. It is more under-specified than appropriately concise.

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 four parameters and an output schema, the description is far from complete. It does not explain the scan submission workflow (e.g., subsequent calls to wait_for_scan or get_scan_result), nor does it describe possible options or scan types, leaving the agent without enough context to use the tool effectively.

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

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 only mentions 'URL', ignoring the other three parameters (options, scan_type, user_agent). It does not explain the meaning of these parameters or their defaults, which is a significant gap for an agent trying to invoke the tool correctly.

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 a URL') and the purpose ('for scanning'), making it obvious what the tool does. However, it does not distinguish it from the sibling tool 'submit_scan_report', which could cause confusion about which submission tool to use.

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

Usage Guidelines2/5

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

The description gives no guidance on when to use this tool versus alternatives, nor does it mention any prerequisites or workflows. There is no mention of how it differs from submit_scan_report or wait_for_scan, 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.

submit_scan_reportSubmit Scan ReportDInspect

Submit a scan report.

ParametersJSON Schema
NameRequiredDescriptionDefault
scan_idYes
x_real_ipNo
user_agentNo
report_typeYes
skip_captchaNo
captcha_tokenNo
captcha_answerNo
report_detailsNo
x_forwarded_forNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

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

Annotations already indicate readOnlyHint false, idempotentHint false, and destructiveHint false, but the description adds no additional behavioral context. It does not explain what happens when a report is submitted, captcha requirements, or any side effects, so the description contributes little beyond the annotations.

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

Conciseness2/5

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

The description is short but under-specified. It is a single sentence that merely restates the tool name, so it does not earn its place by adding useful information. True conciseness would distill meaningful guidance, not just repeat the title.

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 9 parameters, captcha-related complexity, and no output schema details shown, the description is completely inadequate. It provides no context about the submission process, required inputs, or expected behavior, making it impossible for an agent to use this tool effectively based solely on the description.

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 does not compensate by explaining any of the 9 parameters, including the required scan_id and report_type. Parameters like skip_captcha, captcha_token, and report_details are entirely undocumented, leaving the agent without semantic understanding.

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 scan report.' is essentially a restatement of the tool name and title. It provides a verb and a resource but adds no scope or distinguishing detail, making it a tautology rather than a clear explanation of what the tool specifically does.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives like submit_scan or when not to use it. The description gives no context about prerequisites, use cases, or exclusions, leaving the agent without any decision-making support.

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

wait_for_scanWait For ScanA
Read-onlyIdempotent
Inspect

Poll until a scan reaches a terminal status, returning the final summary.

ParametersJSON Schema
NameRequiredDescriptionDefault
scan_idYes
timeout_sNo
poll_interval_sNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

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

The description adds that the tool performs repeated polling and that it returns a final summary—behavior not covered by the annotations (readOnlyHint, idempotentHint). It does not disclose timeout behavior or outcomes for non-terminal statuses, but the annotations already signal safety and idempotency, lowering the burden. No contradiction exists.

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

Conciseness5/5

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

The description is a single, front-loaded sentence that packs the essential action ('Poll until terminal status') and result ('returning the final summary') with no wasted words. It is maximally concise while still conveying purpose.

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 core operation, and the output schema handles return value details. The polling semantics are adequately conveyed, though behaviors like timeout handling or cancellation are not described. Given the annotations and output schema, the description is sufficiently complete for an agent to select and invoke the 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?

With schema description coverage at 0%, the description needed to explain scan_id, timeout_s, and poll_interval_s, but it does not. The parameter names are self-evident, and defaults are in the schema, but the description offers no additional meaning, such as units or the effect of timeout_s on polling behavior.

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 'Poll' and the resource 'a scan', with the specific goal of reaching 'a terminal status' and 'returning the final summary'. This clearly distinguishes it from sibling tools like get_scan_progress, which merely fetch current progress without waiting, and get_scan_result, which retrieves a result without polling.

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

Usage Guidelines3/5

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

The phrase 'Poll until a scan reaches a terminal status' implies the tool is for blocking until completion, contrasting with one-off retrieval tools. However, it does not explicitly name alternatives or state when not to use it (e.g., 'use get_scan_progress for non-blocking checks'). The usage context is clear but not fully elaborated.

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

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Servers

  • F
    license
    -
    quality
    D
    maintenance
    MCP server that checks URLs against the URLhaus malware database to identify malicious URLs.
  • A
    license
    A
    quality
    B
    maintenance
    MCP server for urlscan.io that scans URLs, searches historical scan data, and assesses indicators with compact, context-efficient summaries instead of raw API responses.
    14
    MIT
  • F
    license
    -
    quality
    C
    maintenance
    MCP server for detecting and analyzing scams using various heuristics and data sources.
  • A
    license
    A
    quality
    B
    maintenance
    A MCP server for querying the VirusTotal API. This server provides tools for scanning URLs, analyzing file hashes, and retrieving IP address reports.
    11
    331
    144
    MIT

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.