Skip to main content
Glama
stoyky

MITRE ATT&CK MCP Server

by stoyky

Server Quality Checklist

58%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v1.0.2

  • Disambiguation4/5

    Most tools have distinct purposes targeting specific ATT&CK objects and relationships, with clear naming like 'get_techniques_used_by_group' versus 'get_groups_using_technique'. However, some tools like 'get_objects_by_name' and 'get_objects_by_content' could be confused due to overlapping search functionality, and 'get_layer_metadata' is a special-case tool that might be misapplied.

    Naming Consistency5/5

    Tool names follow a highly consistent snake_case pattern with a clear 'verb_noun' or 'verb_noun_preposition_noun' structure throughout. All tools start with 'generate_' or 'get_', and relationship tools consistently use prepositions like 'by', 'for', 'using', or 'targeting' to indicate connections between entities.

    Tool Count2/5

    With 55 tools, this is an extremely large set that feels overwhelming for the ATT&CK framework domain. While ATT&CK has many entities and relationships, this many tools will likely cause analysis paralysis and difficulty in tool selection, exceeding the typical well-scoped range of 3-15 tools.

    Completeness5/5

    The toolset provides comprehensive coverage of the MITRE ATT&CK domain, including retrieval of all entity types (groups, techniques, software, etc.), relationship queries between entities, search capabilities by various attributes, and specialized functions like layer generation and timestamp filtering. No obvious gaps exist for querying the framework's data model.

  • Average 3.2/5 across 55 of 55 tools scored.

    See the Tool Scores section below for per-tool breakdowns.

    • No community issues in the last 6 months
    • 0 commits in the last 12 weeks
    • No stable releases found
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI status not available
  • Add a LICENSE file by following GitHub's guide. Once GitHub recognizes the license, the system will automatically detect it within a few hours.

    If the license does not appear after some time, you can manually trigger a new scan using the MCP server admin interface.

    MCP servers without a LICENSE cannot be installed.

  • This repository includes a README.md file.

  • No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.

    Tip: use the "Try in Browser" feature on the server page to seed initial usage.

  • Add a glama.json file to provide metadata about your server.

  • If you are the author, simply .

    If the server belongs to an organization, first add glama.json to the root of your repository:

    {
      "$schema": "https://glama.ai/mcp/schemas/server.json",
      "maintainers": [
        "your-github-username"
      ]
    }

    Then . Browse examples.

  • Add related servers to improve discoverability.

How to sync the server with GitHub?

Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.

To manually sync the server, click the "Sync Server" button in the MCP server admin interface.

How is the quality score calculated?

The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).

Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.

Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).

Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.

Tool Scores

  • Behavior2/5

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

    No annotations are provided, so the description carries the full burden of behavioral disclosure. It describes a read operation ('Get'), implying it's non-destructive, but doesn't cover critical aspects like authentication needs, rate limits, error handling, or output format. The description adds minimal behavioral context beyond the basic function, leaving significant gaps for an agent to understand how to invoke it safely and effectively.

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

    Conciseness4/5

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

    The description is appropriately sized and front-loaded, starting with the purpose followed by parameter details in a clear 'Args:' section. Every sentence earns its place by explaining parameters, but it could be more concise by integrating the purpose more smoothly. No unnecessary information is included, making it efficient for understanding.

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

    Completeness2/5

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

    Given the complexity (3 parameters, no annotations, no output schema), the description is incomplete. It covers parameter semantics well but lacks output information (e.g., what mitigations look like, data structure), behavioral traits (e.g., permissions, limits), and usage context. For a tool with no structured support, this leaves the agent under-informed about how to use it effectively.

    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 description adds substantial meaning beyond the input schema, which has 0% description coverage. It explains each parameter: 'technique_stix_id' as 'Technique STIX ID to what mitigations are mitigating this technique', 'domain' with allowed values ('enterprise', 'mobile', or 'ics'), and 'include_description' with its default and purpose. This compensates well for the schema's lack of descriptions, though it could be more detailed on STIX ID format or domain implications.

    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 'Get mitigations mitigating technique' which is a tautology of the tool name, providing minimal additional clarity. It specifies the verb 'Get' and resource 'mitigations', but lacks specificity about what 'mitigations' are (e.g., security controls, countermeasures) and doesn't distinguish it from sibling tools like 'get_all_mitigations' or 'get_techniques_mitigated_by_mitigation'. The purpose is vague but not entirely missing.

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

    Usage Guidelines2/5

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

    No explicit guidance on when to use this tool versus alternatives is provided. The description includes parameter details but doesn't mention when this tool is appropriate compared to siblings like 'get_all_mitigations' or 'get_techniques_mitigated_by_mitigation'. There's implied usage through the parameters (e.g., for a specific technique), but no context on exclusions or prerequisites.

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

  • Behavior2/5

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

    With no annotations provided, the description carries full burden but offers minimal behavioral insight. It mentions default values for parameters but doesn't disclose critical traits like whether it's read-only, potential rate limits, authentication needs, error handling, or output format. For a tool with 3 parameters and no output schema, this is inadequate.

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

    Conciseness4/5

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

    The description is front-loaded with the purpose, followed by a structured 'Args:' section listing parameters with brief explanations. It's efficient with minimal waste, though the formatting could be slightly cleaner (e.g., using bullet points). Every sentence serves a clear 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 3 parameters, 0% schema coverage, no annotations, and no output schema, the description is incomplete. It explains parameters but lacks crucial context: no information on return values, error cases, or behavioral constraints. For a tool that likely queries a database or API, this leaves significant gaps in understanding its operation.

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

    Parameters4/5

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

    Schema description coverage is 0%, but the description compensates by explaining all three parameters: 'campaign_stix_id' as the ID to check, 'domain' with its allowed values ('enterprise', 'mobile', or 'ics'), and 'include_description' with its default. This adds meaningful context beyond the bare schema, though it could detail format or examples further.

    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 'Get techniques used by campaign' which clearly indicates it retrieves techniques associated with a campaign. However, it doesn't differentiate from similar sibling tools like 'get_techniques_used_by_group' or 'get_techniques_used_by_group_software', making it somewhat vague about its specific scope within the broader toolset.

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

    Usage Guidelines2/5

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

    No explicit guidance is provided on when to use this tool versus alternatives. The description lists parameters but doesn't mention prerequisites, context, or comparisons to sibling tools such as 'get_all_techniques' or 'get_techniques_by_tactic', leaving users to infer usage based on the tool name alone.

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

  • Behavior2/5

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

    With no annotations provided, the description carries full burden for behavioral disclosure. It mentions the domain parameter and include_description flag but doesn't describe what 'getting all groups' entails - whether this returns a complete list, if there's pagination, what format the output takes, or any rate limits/authentication requirements. For a tool with no annotation coverage, this leaves significant behavioral questions unanswered.

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

    Conciseness4/5

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

    The description is efficiently structured with a clear purpose statement followed by parameter documentation. Both sentences earn their place by providing essential information. While it could be slightly more detailed, there's no wasted verbiage or redundancy in the current formulation.

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

    Completeness2/5

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

    Given the complexity of querying threat actor groups, no annotations, no output schema, and 0% schema description coverage, the description is insufficient. It doesn't explain what constitutes a 'threat actor group' in this context, what fields are returned, how many groups might be expected, or any limitations of the 'get all' operation. For a tool with rich sibling alternatives, this leaves too much context undefined.

    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 provides basic parameter information in the Args section, explaining what 'domain' represents and what 'include_description' controls. However, with 0% schema description coverage, this only partially compensates - it doesn't explain the significance of the domain choices ('enterprise', 'mobile', 'ics') or what the description output actually contains. The parameter documentation is present but incomplete.

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

    Purpose4/5

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

    The description clearly states the verb ('Get') and resource ('all threat actor groups in the MITRE ATT&CK framework'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'get_groups_by_alias' or 'get_groups_using_technique', which would require more specific scoping language.

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

    Usage Guidelines2/5

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

    No guidance is provided on when to use this tool versus alternatives like 'get_groups_by_alias' or 'get_groups_using_technique'. The description only states what the tool does, not when it's appropriate or what distinguishes it from other group-related tools in the sibling list.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries full burden. It states the tool retrieves matrices but doesn't disclose behavioral traits like whether it's a read-only operation (implied by 'Get'), potential rate limits, authentication needs, or what the output format looks like (e.g., list of objects, JSON structure). For a tool with no annotation coverage, this leaves significant gaps in understanding how it behaves.

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

    Conciseness4/5

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

    The description is appropriately sized and front-loaded: the first sentence states the core purpose, followed by a structured 'Args:' section. There's no wasted text, and each part adds value. It could be slightly improved by integrating the parameter details more seamlessly, but overall it's efficient and well-organized.

    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 moderate complexity (2 parameters, no output schema, no annotations), the description is partially complete. It covers the purpose and parameters adequately but lacks context on usage guidelines, behavioral transparency, and output details. For a read operation in a crowded toolset, more guidance on when and how to use it would enhance completeness.

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

    Parameters3/5

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

    The description adds meaningful context for both parameters: it explains 'domain' accepts specific values ('enterprise', 'mobile', or 'ics') and clarifies 'include_description' controls output inclusion with a default. With 0% schema description coverage, this compensates well by providing essential semantics. However, it doesn't detail parameter interactions or edge cases (e.g., what happens if an invalid domain is provided).

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

    Purpose4/5

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

    The description clearly states the tool's purpose: 'Get all matrices in the MITRE ATT&CK framework' - a specific verb ('Get') and resource ('matrices'). It distinguishes from siblings like 'get_all_tactics' or 'get_all_techniques' by focusing on matrices. However, it doesn't explicitly differentiate from similar-sounding tools like 'get_tactics_by_matrix' or 'generate_layer', which might be related but serve different purposes.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives. With many sibling tools (e.g., 'get_all_tactics', 'get_all_techniques', 'get_tactics_by_matrix'), there's no indication of whether this is a broad overview tool, a prerequisite for others, or how it relates to domain-specific queries. The absence of usage context leaves the agent guessing about appropriate scenarios.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries full burden for behavioral disclosure. While it states what the tool does, it doesn't describe important behavioral aspects: whether this is a lookup/read-only operation, what happens when no match is found, what format the attack ID is returned in, or any error conditions. The description is minimal and lacks operational context.

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

    Conciseness3/5

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

    The description is appropriately concise with a clear purpose statement followed by parameter explanations. However, the formatting with 'Args:' heading is somewhat redundant since parameters are already documented in the schema. The structure is functional but could be more integrated.

    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 lookup tool with no annotations and no output schema, the description is incomplete. It doesn't explain what format the attack ID is returned in (string, object, etc.), what happens on failure, or provide any examples. Given the rich ecosystem of ATT&CK tools and the importance of ID mapping in security contexts, more operational context would be valuable.

    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 well by explaining both parameters: 'stix_id: STIX ID to find associated ATT&CK ID for' and 'domain: Domain name ('enterprise', 'mobile', or 'ics')'. It provides the exact enum values for domain and clarifies the relationship between STIX ID and ATT&CK ID. This adds significant value beyond the bare 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 tool's purpose: 'Get attack ID for given stix ID' - this is a specific verb ('Get') + resource ('attack ID') with a clear input ('stix ID'). However, it doesn't distinguish this tool from its sibling 'get_object_by_stix_id' which appears to serve a similar lookup function but returns a full object rather than just an ATT&CK ID.

    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. With many sibling tools that perform various ATT&CK-related lookups (including 'get_object_by_stix_id' and 'get_object_by_attack_id'), there's no indication of when this specific ID-mapping tool is preferred over other retrieval methods.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool 'gets' groups, implying a read-only operation, but doesn't clarify aspects like authentication requirements, rate limits, error handling, or output format. For a tool with no annotations, this is a significant gap in transparency.

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

    Conciseness4/5

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

    The description is well-structured and front-loaded, with the core purpose stated first followed by parameter details. It avoids unnecessary fluff, but the 'Args' section could be more integrated into the main text for better flow. Overall, it's efficient with minimal waste.

    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 (3 parameters, no annotations, no output schema), the description is incomplete. It lacks information on output structure, error cases, or behavioral traits like pagination or data freshness. Without annotations or an output schema, the description should compensate more to be adequate.

    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 includes an 'Args' section that explains each parameter's purpose, adding meaning beyond the input schema (which has 0% description coverage). It clarifies 'technique_stix_id' as the ID to check associations, 'domain' with allowed values, and 'include_description' as a boolean flag. However, it doesn't detail parameter interactions or constraints, keeping the score at baseline.

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

    Purpose4/5

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

    The description clearly states the tool's purpose: 'Get groups using a technique by its STIX ID.' This specifies the verb ('Get'), resource ('groups'), and key input ('technique STIX ID'), making the function unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'get_groups_by_alias' or 'get_groups_attributing_to_campaign,' which would require 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. While it mentions the 'technique_stix_id' parameter, it doesn't explain scenarios where this tool is preferred over other group-related tools (e.g., 'get_all_groups') or technique-related tools (e.g., 'get_techniques_used_by_group'). This lack of context leaves usage unclear.

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

  • Behavior2/5

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

    With no annotations provided, the description carries full burden for behavioral disclosure. It states this is a 'Get' operation which implies read-only behavior, but doesn't address important aspects like: what format the objects are returned in, whether this is a partial/fuzzy match or exact match search, pagination behavior, error conditions, or performance characteristics. The description is minimal beyond the basic operation statement.

    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 reasonably concise with a clear purpose statement followed by parameter documentation. However, the structure has issues: the Args section incorrectly lists 'name' instead of 'content' as shown in the schema, creating inconsistency. The description could be more front-loaded with critical information about search behavior.

    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 4 parameters, no annotations, and no output schema, the description is inadequate. It doesn't explain what 'objects' are returned (STIX objects? which fields?), how the content search works (full-text? substring? regex?), what the output format is, or any error handling. The parameter documentation helps but doesn't compensate for the missing behavioral 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?

    With 0% schema description coverage, the description compensates well by documenting all 4 parameters in the Args section. It provides clear explanations for object_type (with specific allowed values), domain (with allowed values), include_description (with default), and implies content is the search term. However, it incorrectly lists 'name' as a parameter when the schema shows 'content' - this creates some confusion about the actual 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's purpose: 'Get objects by the content of their description' - a specific verb+resource combination. It distinguishes itself from siblings like 'get_objects_by_name' or 'get_objects_by_type' by focusing on content search rather than name or type filtering. However, it doesn't explicitly contrast with these alternatives in the description text itself.

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

    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. With many sibling tools available for querying objects (like get_objects_by_name, get_objects_by_type, get_object_by_attack_id), there's no indication of when content-based search is appropriate versus other lookup methods. The parameter documentation implies some usage context but doesn't provide explicit guidance.

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

  • Behavior2/5

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

    With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool retrieves information ('Get'), implying a read-only operation, but doesn't clarify permissions, rate limits, error conditions, or output format. The description lacks critical behavioral context needed for safe and effective tool invocation.

    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 efficiently structured with a clear purpose statement followed by parameter explanations. Each sentence serves a purpose, though the formatting with 'Args:' could be more integrated. It's appropriately sized for a tool with three parameters and no complex behavioral requirements.

    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 (querying relationships between campaigns and software), lack of annotations, and absence of an output schema, the description is insufficient. It doesn't explain what 'software' means in this context, how results are structured, or what happens when no software is found. For a query tool with no structured output documentation, more completeness is needed.

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

    Parameters3/5

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

    The description includes an 'Args' section that explains each parameter's purpose, adding meaningful context beyond the schema's 0% description coverage. It clarifies that 'campaign_stix_id' is for lookup, 'domain' has specific allowed values, and 'include_description' controls output detail. However, it doesn't explain format requirements for STIX IDs or the implications of domain selection.

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

    Purpose4/5

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

    The description clearly states the tool's purpose: 'Get software used by campaign' specifies both the action (get) and the resource (software used by campaign). It distinguishes from siblings like 'get_all_software' (which lists all software) and 'get_software_used_by_group' (which focuses on groups rather than campaigns), though it doesn't explicitly mention these distinctions.

    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 doesn't mention related tools like 'get_campaigns_using_software' or 'get_techniques_used_by_campaign', nor does it specify prerequisites or appropriate contexts for usage. The only implied usage is from the parameter descriptions, which isn't sufficient for agent decision-making.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries full burden. It states this is a 'Get' operation (implying read-only), but doesn't disclose behavioral traits like authentication requirements, rate limits, error conditions, or what the output format looks like (since there's no output schema). The description is minimal and lacks important operational context.

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

    Conciseness3/5

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

    The description is appropriately brief but could be better structured. The first line states the purpose clearly, but the Args section uses inconsistent formatting (some parameters have explanations in parentheses, others don't). It's front-loaded with the core purpose, but the parameter explanations could be more consistently integrated.

    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 3 parameters, no annotations, and no output schema, the description is incomplete. While it explains parameters adequately, it lacks crucial context about what the tool returns (no output schema means the description should explain the return format), error handling, authentication requirements, and typical use cases. The behavioral transparency gap makes this insufficient for confident tool invocation.

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

    Parameters4/5

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

    With 0% schema description coverage, the description compensates well by explaining all three parameters in the Args section. It clarifies that 'technique_stix_id' is 'Technique STIX ID to check what its subtechniques are', specifies the three possible values for 'domain', and explains what 'include_description' controls with its default. This adds significant meaning beyond the bare 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 tool's purpose: 'Get subtechniques of technique' - a specific verb ('Get') and resource ('subtechniques of technique'). It distinguishes from siblings like 'get_all_subtechniques' (which gets all subtechniques) and 'get_parent_technique_of_subtechnique' (which does the inverse). However, it doesn't explicitly contrast with these siblings in the description text itself.

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

    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 doesn't mention sibling tools like 'get_all_subtechniques' (for all subtechniques without filtering by parent technique) or 'get_parent_technique_of_subtechnique' (for the inverse operation). There's no context about prerequisites, typical use cases, or limitations.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries full burden. It states the action ('Get campaigns') but lacks behavioral details: it doesn't specify if this is a read-only operation, what permissions are needed, how results are returned (e.g., list format, pagination), error handling, or rate limits. The description is minimal and misses key operational context.

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

    Conciseness4/5

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

    The description is appropriately sized and front-loaded: the first sentence states the purpose clearly, followed by a structured 'Args:' section. Each parameter explanation is brief and relevant, with no redundant information. However, the formatting with line breaks could be slightly more polished for readability.

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

    Completeness2/5

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

    Given the complexity (3 parameters, no annotations, no output schema), the description is incomplete. It covers parameter semantics well but lacks behavioral transparency, usage guidelines, and output details. For a tool with no structured safety or output information, this leaves significant gaps for an AI agent to understand how to invoke it effectively.

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

    Parameters4/5

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

    Schema description coverage is 0%, so the description must compensate. It adds meaningful semantics for all three parameters: 'alias' is explained as 'Alias to find associated campaigns for', 'domain' clarifies allowed values ('enterprise', 'mobile', or 'ics'), and 'include_description' notes its purpose and default. This effectively documents parameters beyond the bare 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 verb ('Get') and resource ('campaigns'), specifying the lookup mechanism ('by their alias'). It distinguishes from siblings like 'get_all_campaigns' by focusing on alias-based retrieval. However, it doesn't explicitly contrast with other alias-based tools like 'get_groups_by_alias' or 'get_software_by_alias' beyond the 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 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. With many sibling tools for retrieving campaigns (e.g., 'get_all_campaigns', 'get_campaigns_attributed_to_group', 'get_campaigns_using_software'), the description lacks context on appropriate scenarios, prerequisites, or comparisons to other campaign-fetching methods.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries the full burden of behavioral disclosure. While 'Get' implies a read operation, the description doesn't address important behavioral aspects: what types of objects are returned, whether results are paginated, what permissions are required, rate limits, or what the output format looks like. For a tool with no annotation coverage, this leaves significant gaps in understanding its behavior.

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

    Conciseness4/5

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

    The description is appropriately sized and well-structured. It begins with a clear purpose statement, then provides organized parameter documentation. Every sentence serves a purpose - the first states what the tool does, and the Args section efficiently documents each parameter. No wasted words or 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?

    Given the complexity (3 parameters, no annotations, no output schema), the description is incomplete. While it documents parameters well, it doesn't address critical contextual information: what 'objects' means in this context (from the sibling tools, these appear to be ATT&CK framework objects), what the output contains, whether there are limitations on time ranges or result sizes, or how this tool relates to the many sibling filtering 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?

    With 0% schema description coverage, the description compensates well by providing clear parameter documentation in the Args section. It explains all three parameters: timestamp format (ISO string with example), domain options (three specific values), and include_description behavior (boolean with default). This adds substantial meaning beyond what the bare schema provides.

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

    Purpose4/5

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

    The description clearly states the tool's purpose: 'Get objects modified after a specific timestamp'. This is a specific verb+resource combination (get + objects) with a clear filtering condition (modified after timestamp). However, it doesn't distinguish this tool from its sibling 'get_objects_created_after' - both filter by time but on different attributes (modified vs created).

    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. With many sibling tools available (like 'get_objects_by_type', 'get_objects_by_name', 'get_objects_created_after'), there's no indication of when this time-based filtering approach is appropriate versus other filtering methods. The description 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.

  • Behavior2/5

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

    No annotations are provided, so the description carries full burden. It states the action ('Get') and output control ('include_description'), but lacks behavioral details like error handling (e.g., what happens if alias not found), response format, authentication needs, or rate limits. For a lookup tool with zero annotation coverage, this is insufficient.

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

    Conciseness3/5

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

    The description is front-loaded with the core purpose, followed by a parameter list. However, the structure is slightly awkward ('it's' should be 'its'), and the parameter explanations could be more integrated. It's concise but not optimally 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?

    Given 3 parameters, 0% schema coverage, no annotations, and no output schema, the description provides basic parameter semantics but lacks output details (e.g., what data is returned) and behavioral context. It's minimally adequate for a simple lookup tool but leaves gaps in understanding the full tool behavior.

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

    Parameters4/5

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

    Schema description coverage is 0%, so the description must compensate. It adds meaningful context for all three parameters: 'alias' clarifies it's a 'Software name alias to find in MITRE ATT&CK', 'domain' specifies valid values ('enterprise', 'mobile', or 'ics') with a default, and 'include_description' explains its effect on output. This goes beyond the bare 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 tool's purpose: 'Get software by it's alias' with the context of 'find in MITRE ATT&CK'. This specifies the verb ('Get'), resource ('software'), and key constraint ('by alias'). It distinguishes from siblings like 'get_all_software' (list all) and 'get_software_used_by_group' (different filter), though not explicitly named.

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

    Usage Guidelines2/5

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

    No explicit guidance on when to use this tool versus alternatives. The description mentions the domain parameter options but doesn't compare to siblings like 'get_all_software' for broader queries or 'get_software_used_by_group' for relationship-based lookups. Usage is implied by the tool name and parameters alone.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the action ('Get software used by...') but lacks details on permissions, rate limits, error handling, or output format. For a tool with no annotations, this is insufficient to inform the agent about how the tool behaves beyond its basic function.

    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 front-loaded with the core purpose, followed by a structured 'Args' section. Each sentence serves a clear purpose: the first defines the tool, and the subsequent lines explain parameters. There's no redundant information, making it efficient, though it could be slightly more polished in flow.

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

    Completeness2/5

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

    Given the complexity (3 parameters, no annotations, no output schema), the description is incomplete. It explains parameters but fails to cover behavioral aspects like authentication, response format, or error cases. Without annotations or output schema, the agent lacks critical information for reliable tool invocation.

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

    Parameters4/5

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

    With 0% schema description coverage, the description compensates by explaining all three parameters: 'group_stix_id' (STIX ID for the group), 'domain' (domain options with examples), and 'include_description' (boolean flag with default). This adds meaningful context beyond the bare schema, though it doesn't detail format constraints (e.g., STIX ID structure).

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

    Purpose4/5

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

    The description clearly states the verb ('Get') and resource ('software used by MITRE ATT&CK group'), making the purpose specific and understandable. It distinguishes itself from siblings like 'get_all_software' or 'get_software_used_by_campaign' by focusing on group-specific software usage. However, it doesn't explicitly contrast with 'get_techniques_used_by_group_software', which might be a related but distinct operation.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, such as needing a valid STIX ID, or compare it to siblings like 'get_groups_using_software' or 'get_software_by_alias'. The absence of usage context leaves the agent to infer applicability from the tool name alone.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries full burden. It states the tool 'gets' software (implies read-only) but doesn't disclose behavioral traits like whether it's a search/filter operation, what the output format is (list of software objects?), pagination, rate limits, authentication needs, or error conditions. The description is minimal beyond basic functionality.

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

    Conciseness4/5

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

    The description is appropriately sized and front-loaded: the purpose is stated first in a clear heading, followed by a structured Args section. Every sentence earns its place by explaining parameters. However, the formatting with 'Args:' as a separate line is slightly verbose compared to integrating it into a single paragraph.

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

    Completeness2/5

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

    Given no annotations, no output schema, and 3 parameters, the description is incomplete. It covers parameter semantics well but lacks crucial context: what the tool returns (list of software objects? STIX IDs?), how results are structured, pagination, error handling, or examples. For a search/filter tool with multiple parameters, this leaves significant gaps for an AI agent.

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

    Parameters4/5

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

    Schema description coverage is 0%, so the description must compensate. The Args section adds meaningful semantics for all three parameters: explains what 'technique_stix_id' is for (search software that uses it), clarifies 'domain' options ('enterprise', 'mobile', or 'ics'), and specifies 'include_description' purpose (whether to include description in output) with default. This adequately documents parameters beyond the bare 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 tool's purpose: 'Get software using technique' specifies the action (get) and resource (software) with the constraint (using technique). It distinguishes from siblings like 'get_all_software' (unfiltered list) and 'get_software_by_alias' (different filter). However, it doesn't explicitly differentiate from 'get_software_used_by_group' or 'get_software_used_by_campaign' which filter by different 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?

    The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'get_all_software' (for unfiltered lists) or 'get_software_by_alias' (for alias-based searches). The Args section documents parameters but offers no usage context, prerequisites, or exclusions.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the tool retrieves assets but doesn't specify behavioral traits like whether it's read-only, if it requires authentication, rate limits, pagination, error handling, or what the output format looks like. For a tool with no annotation coverage, this leaves significant gaps in understanding how it behaves.

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

    Conciseness4/5

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

    The description is well-structured and appropriately sized. It starts with a clear purpose statement, followed by a bullet-point-like 'Args' section that efficiently explains parameters. There's no unnecessary information, and every sentence serves a functional purpose in clarifying the tool's use.

    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 complexity (a read operation with 2 parameters), lack of annotations, and no output schema, the description is partially complete. It covers the purpose and parameters well but misses key behavioral aspects like output format, error handling, and usage constraints. For a tool with no structured metadata, it should provide more context to be fully 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 description includes an 'Args' section that explains both parameters: 'domain' is described as 'Domain name ('ics')' and 'include_description' as 'Whether to include description in the output (default is False)'. This adds meaningful context beyond the schema, which has 0% description coverage and only provides titles and types. The parameter explanations are clear and helpful for understanding 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 tool's purpose: 'Get all assets in the MITRE ATT&CK framework (ICS domain only)'. This specifies the verb ('Get'), resource ('assets'), and scope ('ICS domain only'), making it easy to understand what the tool does. However, it doesn't explicitly differentiate from sibling tools like 'get_assets_targeted_by_technique', which focuses on assets targeted by specific techniques rather than retrieving all assets.

    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 doesn't mention sibling tools like 'get_assets_targeted_by_technique' or 'get_objects_by_type' that might overlap in functionality. There's also no information about prerequisites, such as whether authentication is required or if there are any limitations on usage frequency.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries full burden. It states it 'gets' data, implying a read operation, but doesn't disclose behavioral traits like rate limits, authentication needs, pagination, or what the output format looks like. For a tool with no annotations, this leaves significant gaps in understanding how it behaves.

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

    Conciseness4/5

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

    The description is appropriately sized and front-loaded with the core purpose in the first sentence. The Args section is structured but slightly redundant with the schema. Every sentence adds value, though it could be more streamlined.

    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 no annotations, 0% schema description coverage, and no output schema, the description provides basic purpose and parameter semantics but lacks behavioral details and output information. It's minimally adequate for a simple read tool but incomplete for full contextual understanding.

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

    Parameters4/5

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

    Schema description coverage is 0%, so the description must compensate. It adds meaningful context for both parameters: 'domain' specifies allowed values ('enterprise', 'mobile', or 'ics') and 'include_description' explains its effect on output. This goes beyond the schema's basic type information, though it doesn't cover all possible semantic nuances.

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

    Purpose4/5

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

    The description clearly states the verb ('Get') and resource ('all campaigns in the MITRE ATT&CK framework'), making the purpose specific and understandable. However, it doesn't explicitly differentiate from sibling tools like 'get_campaigns_attributed_to_group' or 'get_campaigns_by_alias', which would require 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. With many sibling tools focused on campaigns (e.g., 'get_campaigns_attributed_to_group'), there's no indication of when this broad 'get all' tool is preferred over more specific queries.

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

  • Behavior2/5

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

    With no annotations provided, the description carries full burden for behavioral disclosure. While 'Get' implies a read operation, it doesn't specify whether this is a simple lookup, requires authentication, has rate limits, returns paginated results, or what format the output takes. The description mentions output inclusion options but lacks comprehensive 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.

    Conciseness4/5

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

    The description is appropriately sized with a clear purpose statement followed by parameter explanations. The two-sentence structure is efficient, though the parameter documentation could be slightly more integrated rather than appearing as a separate 'Args:' section.

    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 2-parameter tool with no annotations and no output schema, the description provides adequate basic information but lacks important context. It explains what the tool does and its parameters, but doesn't describe the return format, potential errors, or how this fits within the broader ATT&CK framework query ecosystem represented by sibling 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?

    With 0% schema description coverage, the description compensates well by explaining both parameters: 'domain' with its valid values ('enterprise', 'mobile', or 'ics') and 'include_description' with its purpose and default. This adds significant meaning beyond the bare schema, though it doesn't fully explain the implications of each domain choice.

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

    Purpose4/5

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

    The description clearly states the verb 'Get' and resource 'all data sources in the MITRE ATT&CK framework', making the purpose specific and understandable. However, it doesn't explicitly differentiate from sibling tools like 'get_all_datacomponents' or 'get_all_assets', which would require more specific scope clarification for a perfect score.

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

    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. With many sibling tools available (like get_all_datacomponents, get_all_techniques, etc.), there's no indication of when this specific 'data sources' retrieval is appropriate versus other ATT&CK framework queries.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool retrieves data ('Get'), implying it's a read operation, but doesn't specify if it's paginated, rate-limited, requires authentication, or returns structured data. For a tool with zero annotation coverage, this leaves significant behavioral gaps, though it correctly avoids contradictions.

    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 appropriately sized and front-loaded: the first sentence states the core purpose clearly. The 'Args' section is structured but could be more integrated. There's minimal waste, though the formatting as a code block might reduce readability slightly. Overall, it's efficient and well-organized.

    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 (2 parameters, no output schema, no annotations), the description is moderately complete. It covers the purpose and parameters adequately but lacks behavioral details like response format or error handling. For a simple read tool, it's sufficient but not thorough, especially without annotations to fill 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?

    Schema description coverage is 0%, so the description must compensate. It adds meaningful semantics: it explains 'domain' accepts specific values ('enterprise', 'mobile', or 'ics') and clarifies 'include_description' controls output inclusion with a default. This goes beyond the schema's basic titles and types, providing crucial context for both parameters, though it doesn't detail format or constraints exhaustively.

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

    Purpose4/5

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

    The description clearly states the tool's purpose: 'Get all mitigations in the MITRE ATT&CK framework'. It specifies the verb ('Get') and resource ('mitigations'), and distinguishes it from sibling tools like 'get_mitigations_mitigating_technique' by indicating it retrieves all mitigations rather than filtered ones. However, it doesn't explicitly contrast with other 'get_all_*' tools, preventing a perfect score.

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

    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 doesn't mention sibling tools like 'get_mitigations_mitigating_technique' or explain scenarios where retrieving all mitigations is preferred over filtered queries. The only usage context is implied by the tool name and description, but no explicit when/when-not instructions are given.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries the full burden of behavioral disclosure. While it mentions the MITRE ATT&CK framework context, it doesn't describe what 'parent techniques' means operationally, whether this is a read-only operation, what the output format looks like, or any limitations like rate limits or authentication needs. This leaves significant gaps for a tool with no annotation coverage.

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

    Conciseness4/5

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

    The description is appropriately sized with a clear purpose statement followed by a structured parameter section. Every sentence earns its place, though the formatting with 'Args:' could be slightly more integrated. It's front-loaded with the main purpose first.

    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 moderate complexity (2 parameters, no output schema, no annotations), the description provides adequate but incomplete coverage. It explains parameters well but lacks behavioral context about what 'parent techniques' are, how results are structured, and when to use versus siblings. This makes it minimally viable but with clear 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 description includes an 'Args' section that documents both parameters with clear semantics: 'domain' specifies the MITRE domain with allowed values, and 'include_description' explains what the boolean flag controls. With 0% schema description coverage, this fully compensates by providing all necessary parameter meaning beyond the bare 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 verb ('Get') and resource ('all parent techniques in the MITRE ATT&CK framework'), making the purpose specific and understandable. However, it doesn't explicitly differentiate from sibling tools like 'get_all_techniques' or 'get_parent_technique_of_subtechnique', which would be needed for a perfect score.

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

    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. With many sibling tools like 'get_all_techniques' and 'get_parent_technique_of_subtechnique', there's no indication of how this tool differs in usage context or when it's preferred over others.

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

  • Behavior2/5

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

    With no annotations provided, the description carries full burden but offers minimal behavioral insight. It mentions the domain parameter and include_description flag but doesn't cover critical aspects like pagination, rate limits, authentication needs, error handling, or output format. For a tool with no annotations, this is insufficient.

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

    Conciseness4/5

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

    The description is front-loaded with the core purpose, followed by parameter details in a clear 'Args:' section. It's efficient with no redundant sentences, though the structure could be slightly more polished (e.g., integrating parameter info more seamlessly).

    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 moderate complexity (2 parameters, no output schema, no annotations), the description is minimally adequate. It covers the purpose and parameters but lacks details on behavior, output, and sibling differentiation. Without annotations or output schema, more context would be helpful for safe invocation.

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

    Parameters4/5

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

    The description adds meaningful context for both parameters: it specifies the domain options ('enterprise', 'mobile', or 'ics') and clarifies that include_description controls output inclusion with a default of False. With 0% schema description coverage, this compensates well, though it doesn't detail parameter constraints beyond the listed enums.

    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 all software') and resource ('in the MITRE ATT&CK framework'), making the purpose unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'get_software_by_alias' or 'get_software_used_by_group', which would require 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 like 'get_software_by_alias' or 'get_software_used_by_group'. The description only states what it does, not when it's appropriate, 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.

  • Behavior2/5

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

    With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the domain parameter and include_description option but doesn't describe what the output looks like (e.g., list format, structure), whether it's paginated, or any rate limits or authentication requirements. This leaves significant gaps for a tool that fetches potentially large datasets.

    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 well-structured with a clear purpose statement followed by parameter explanations. It's appropriately sized without wasted words, though the formatting with 'Args:' could be slightly more integrated into the flow.

    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 complexity (fetching all subtechniques from a framework), lack of annotations, and no output schema, the description is incomplete. It explains parameters well but doesn't describe the return format, which is critical for understanding how to use the results. This is adequate for basic understanding but leaves important 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 description provides clear semantics for both parameters: 'domain' specifies the allowed values ('enterprise', 'mobile', or 'ics') and 'include_description' explains its effect on output. With 0% schema description coverage, this fully compensates by adding meaning beyond the bare schema, though it doesn't cover default values explicitly mentioned 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 clearly states the verb 'Get' and resource 'all subtechniques in the MITRE ATT&CK framework', making the purpose specific and understandable. However, it doesn't explicitly differentiate from sibling tools like 'get_subtechniques_of_technique' or 'get_all_techniques', which would be needed for a perfect score.

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

    Usage Guidelines2/5

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

    No guidance is provided on when to use this tool versus alternatives like 'get_all_techniques' or 'get_subtechniques_of_technique'. The description only states what it does without context about its appropriate 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.

  • Behavior2/5

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

    No annotations are provided, so the description carries the full burden of behavioral disclosure. It states it 'gets all techniques' but doesn't mention potential limitations like pagination, rate limits, authentication requirements, or what the output format looks like. For a read operation with no annotation coverage, this leaves significant gaps in understanding how the tool behaves.

    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 appropriately sized and front-loaded with the core purpose in the first sentence. The parameter explanations are concise and directly relevant. There's minimal waste, though the structure could be slightly improved by integrating the args section more seamlessly.

    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 moderate complexity (2 parameters, no output schema, no annotations), the description covers the basic purpose and parameters adequately but lacks context about output format, performance considerations, and differentiation from siblings. It's minimally viable but has clear gaps in behavioral and usage 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 description provides clear semantic meaning for both parameters: 'domain' specifies the MITRE ATT&CK domain, and 'include_description' controls whether descriptions are included in output. With 0% schema description coverage, this fully compensates by explaining what each parameter does, though it doesn't detail the domain enum values beyond what's implied.

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

    Purpose4/5

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

    The description clearly states the verb ('Get') and resource ('all techniques in the MITRE ATT&CK framework'), making the purpose specific and understandable. However, it doesn't explicitly differentiate from sibling tools like 'get_all_subtechniques' or 'get_techniques_by_tactic', which would be needed for a perfect score.

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

    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. With many sibling tools that fetch techniques in different ways (e.g., filtered by tactic, platform, or group), the description lacks any context about when this unfiltered retrieval is appropriate compared to more specific queries.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries the full burden of behavioral disclosure. It describes a read operation ('Get') but doesn't mention permissions, rate limits, pagination, error conditions, or what the output looks like (e.g., format, fields). For a query tool with zero annotation coverage, this leaves significant gaps in understanding how the tool behaves.

    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 appropriately sized and front-loaded: the first sentence states the purpose clearly, followed by a structured 'Args:' section. Every sentence earns its place by explaining parameters, though it could be more concise by integrating parameter details into the main description.

    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 moderate complexity (3 parameters, no output schema, no annotations), the description is partially complete. It covers purpose and parameters well but lacks behavioral details (e.g., output format, errors) and usage context. It's adequate for basic use but insufficient for robust agent decision-making without additional inference.

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

    Parameters4/5

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

    Schema description coverage is 0%, so the description must compensate. It adds meaningful context for all three parameters: 'software_stix_id' specifies it's for lookup, 'domain' lists valid values ('enterprise', 'mobile', or 'ics'), and 'include_description' explains its effect on output. This goes beyond the bare schema, though it could detail STIX ID format or domain implications more.

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

    Purpose4/5

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

    The description clearly states the tool's purpose: 'Get all campaigns that use software' with a specific verb ('Get') and resource ('campaigns'), and it distinguishes from siblings like 'get_all_campaigns' by focusing on campaigns related to software usage. However, it doesn't explicitly differentiate from 'get_campaigns_attributed_to_group' or 'get_campaigns_using_technique', which are similar relationship 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?

    The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'get_all_campaigns' (for unfiltered lists) or 'get_campaigns_using_technique' (for a different relationship type), nor does it specify prerequisites or exclusions. Usage is implied through parameter descriptions but not explicitly stated.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool retrieves datacomponents but doesn't describe what 'detect' means operationally, whether this is a read-only query (implied by 'Get'), potential rate limits, authentication needs, or the format of the output. For a tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.

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

    Conciseness4/5

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

    The description is appropriately sized and front-loaded: the first sentence states the purpose clearly, followed by a structured 'Args' section with parameter details. There's no wasted text, and each sentence adds value. A minor deduction for not integrating parameter semantics more seamlessly into the main description, but overall it's efficient and well-organized.

    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 moderate complexity (3 parameters, no output schema, no annotations), the description is partially complete. It covers the purpose and parameters well but lacks output details (e.g., what datacomponents are returned, format), behavioral context, and usage guidelines. Without annotations or output schema, the description should do more to compensate, but it meets a minimum viable level for a read-oriented tool.

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

    Parameters4/5

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

    Schema description coverage is 0%, so the description must compensate. It adds meaningful semantics for all three parameters: 'technique_stix_id' is explained as 'Technique STIX ID to check what datacomponents detect it', 'domain' specifies allowed values ('enterprise', 'mobile', or 'ics'), and 'include_description' clarifies its effect on output. This goes beyond the schema's basic titles and types, providing necessary context for parameter 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's purpose: 'Get datacomponents that detect the given technique.' It specifies the verb ('Get'), resource ('datacomponents'), and relationship ('detect the given technique'). However, it doesn't explicitly differentiate from sibling tools like 'get_all_datacomponents' or 'get_techniques_detected_by_datacomponent', which would be needed for a score of 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. It doesn't mention sibling tools like 'get_all_datacomponents' (for listing all datacomponents) or 'get_techniques_detected_by_datacomponent' (for the inverse relationship), nor does it specify prerequisites or exclusions. The only implied usage is from the parameter descriptions, but this is insufficient for clear guidelines.

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

  • Behavior2/5

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

    With no annotations provided, the description carries the full burden of behavioral disclosure. It only states what the tool does at a high level without describing: what format the output takes, whether it's paginated, what happens if no groups are found, authentication requirements, rate limits, or error conditions. For a lookup tool with zero annotation coverage, this is a significant gap in 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.

    Conciseness4/5

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

    The description is efficiently structured with a clear purpose statement followed by parameter explanations. Every sentence adds value: the first states the tool's purpose, and the three parameter lines provide essential usage information. There's no redundant or unnecessary content, though the formatting could be slightly cleaner.

    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 a lookup tool with 3 parameters, no annotations, and no output schema, the description does an adequate job explaining the parameters but leaves significant gaps. It doesn't describe the return format, what 'groups' means in this context (e.g., threat actor groups), error handling, or how results are structured. For a tool that presumably returns threat intelligence data, more context about the output would be helpful.

    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 description provides meaningful semantic information for all three parameters beyond the schema's 0% coverage. It explains that 'campaign_stix_id' is used to 'look up what groups have been attributed to it', specifies the three valid values for 'domain', and clarifies that 'include_description' controls 'whether to include description in the output' with its default. This fully compensates for the schema's lack of 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's purpose: 'Get groups attributing to campaign' - a specific verb (get) and resource (groups) with the relationship to campaigns. It distinguishes from siblings like 'get_all_groups' (which lists all groups) and 'get_campaigns_attributed_to_group' (which has the inverse relationship). However, it doesn't explicitly mention what 'attributing to' means in this context (e.g., attribution relationships in threat intelligence).

    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 doesn't mention prerequisites, when this tool is appropriate versus other group/campaign lookup tools, or any limitations. The sibling tools include several related tools (get_groups_by_alias, get_groups_using_software, etc.), but there's no differentiation guidance provided.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries full burden. It mentions what the tool does but lacks behavioral details: it doesn't specify if this is a read-only operation, what permissions are needed, whether results are paginated, error conditions, or the format of returned groups. For a tool with no annotations, this leaves significant behavioral gaps.

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

    Conciseness4/5

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

    The description is appropriately sized and front-loaded with the core purpose in the first sentence. The Args section is structured but slightly verbose; every sentence earns its place by clarifying parameters, though it could be more integrated. No wasted text, but minor room for tighter phrasing.

    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 no annotations, no output schema, and 3 parameters with 0% schema coverage, the description is moderately complete. It covers the purpose and parameters well but lacks output details, error handling, and behavioral context. For a tool with this complexity and no structured support, it's adequate but has clear gaps in transparency and guidelines.

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

    Parameters4/5

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

    Schema description coverage is 0%, so the description must compensate. It provides clear semantics for all 3 parameters: 'software_stix_id' is for checking which groups use given software, 'domain' specifies the domain name with options, and 'include_description' controls output inclusion with default. This adds meaningful context beyond the bare schema, though it could elaborate on STIX ID format or domain implications.

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

    Purpose4/5

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

    The description clearly states the verb ('Get') and resource ('groups using software'), specifying it's by software name. It distinguishes from siblings like 'get_all_groups' (which lists all groups) and 'get_groups_by_alias' (which filters by alias), but doesn't explicitly contrast with 'get_groups_using_technique' (which uses technique instead of software). The purpose is specific but sibling differentiation could be more 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?

    No guidance on when to use this tool versus alternatives is provided. The description doesn't mention prerequisites, when-not scenarios, or compare with similar tools like 'get_groups_using_technique' or 'get_software_used_by_group'. Usage is implied by the parameters but not explicitly stated.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries the full burden. It states the tool retrieves a name but doesn't disclose behavioral traits like whether it's read-only, what happens if the ID is invalid, error handling, or output format. For a tool with no annotation coverage, this leaves significant gaps in understanding its behavior.

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

    Conciseness4/5

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

    The description is appropriately sized and front-loaded: the first sentence states the purpose clearly, followed by a structured 'Args' section. Every sentence adds value, with no wasted words, though the formatting could be slightly more polished.

    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 moderate complexity (2 parameters, no output schema, no annotations), the description is minimally adequate. It covers basic purpose and parameters but lacks details on behavior, error cases, and differentiation from siblings, leaving room for improvement in completeness.

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

    Parameters4/5

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

    The description adds meaningful context beyond the input schema: it explains that 'stix_id' is used to 'find associated name' and lists valid values for 'domain' ('enterprise', 'mobile', or 'ics'), which the schema only titles generically. With 0% schema description coverage, this compensates well, though it doesn't cover all parameter nuances.

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

    Purpose4/5

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

    The description clearly states the tool's purpose: 'Get name for given stix ID' specifies the verb ('Get') and resource ('name'), and the domain parameter clarifies scope. However, it doesn't explicitly differentiate from sibling tools like 'get_object_by_stix_id' or 'get_objects_by_name', which might retrieve similar information.

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

    Usage Guidelines2/5

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

    No guidance is provided on when to use this tool versus alternatives. With many sibling tools that retrieve STIX-related data (e.g., 'get_object_by_stix_id', 'get_objects_by_name'), the description lacks context on use cases, prerequisites, 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.

  • Behavior2/5

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

    With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions case-sensitivity, which is useful, but lacks critical details: it doesn't specify what happens if the STIX ID isn't found (e.g., returns null or error), whether it's a read-only operation, any rate limits, or authentication requirements. For a lookup tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.

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

    Conciseness4/5

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

    The description is well-structured and appropriately sized. It starts with a clear purpose statement, followed by a bullet-point-style 'Args' section that efficiently explains each parameter. Every sentence adds value without redundancy, though it could be slightly more front-loaded by integrating parameter details into the initial sentence.

    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 3 parameters with 0% schema coverage and no output schema, the description does a decent job but has gaps. It explains parameters well but doesn't describe the returned 'object' format, error handling, or how it differs from similar tools. For a lookup tool in a complex domain (ATT&CK/STIX), more context on output structure and use cases would improve completeness.

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

    Parameters4/5

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

    Schema description coverage is 0%, so the description must compensate. It adds meaningful context for all three parameters: 'stix_id' is an 'ATT&CK ID to find associated object for', 'domain' specifies allowed values ('enterprise', 'mobile', or 'ics') with a default, and 'include_description' explains its effect on output. This goes beyond the bare schema, though it doesn't detail the 'object' structure returned.

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

    Purpose4/5

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

    The description clearly states the tool's purpose: 'Get object by STIX ID (case-sensitive)'. It specifies the verb 'Get' and the resource 'object', and distinguishes it from siblings like 'get_object_by_attack_id' by focusing on STIX IDs. However, it doesn't explicitly differentiate from 'get_objects_by_content' or 'get_objects_by_name', which are similar lookup tools, so it's not a perfect 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. It doesn't mention when to choose it over sibling tools like 'get_object_by_attack_id' (for ATT&CK IDs) or 'get_objects_by_name' (for name-based lookups). The only implicit usage hint is the case-sensitivity note, but this is insufficient for clear decision-making.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries full burden. It mentions 'case-sensitive' search behavior, which is useful. However, it doesn't disclose other critical traits: whether this is a read-only operation, what happens if no matches are found, if results are paginated, error conditions, or performance characteristics. For a search tool with no annotation coverage, this leaves significant behavioral gaps.

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

    Conciseness4/5

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

    The description is well-structured and appropriately sized. The first sentence states the core purpose, followed by a clear 'Args:' section documenting each parameter. No wasted sentences. However, the parameter documentation could be slightly more concise by integrating the allowed values more directly into the descriptions.

    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 4 parameters with 0% schema coverage and no output schema, the description does a reasonable job explaining inputs but has significant gaps. It documents parameters well but doesn't describe the return format, error handling, or behavioral constraints. For a search tool with no annotations and no output schema, this leaves the agent guessing about what to expect from the operation.

    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 must compensate for the schema's lack of parameter documentation. It successfully explains all four parameters: 'name' (object to search for), 'stix_type' (with specific allowed values), 'domain' (with allowed values), and 'include_description' (default behavior). This adds substantial meaning beyond the bare schema, though it doesn't explain parameter interactions or search logic.

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

    Purpose4/5

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

    The description clearly states the tool's purpose: 'Get objects by name (case-sensitive)' which specifies the verb (get), resource (objects), and key constraint (by name, case-sensitive). It distinguishes from siblings like 'get_object_by_attack_id' or 'get_objects_by_type' by focusing on name-based retrieval. However, it doesn't explicitly differentiate from 'get_name' which might be a similar sibling.

    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. With many sibling tools for retrieving objects (e.g., 'get_object_by_attack_id', 'get_objects_by_type'), there's no indication of when name-based search is preferred over other methods. The parameter documentation implies usage but doesn't offer contextual advice.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries full burden. It mentions the tool 'shows how groups use a technique', which hints at read-only behavior, but doesn't explicitly state it's a query tool. It lacks details on permissions, rate limits, output format, pagination, or error handling. For a tool with no annotations, this leaves significant behavioral gaps.

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

    Conciseness4/5

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

    The description is appropriately sized and front-loaded: the first sentence states the core purpose, followed by a structured 'Args:' section with clear parameter explanations. There's no redundant information, and each sentence adds value. Minor improvement could be integrating the parameter details more seamlessly, but it's efficient.

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

    Completeness3/5

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

    Given no annotations, 0% schema description coverage, and no output schema, the description does a decent job but has gaps. It covers parameter semantics well and states the purpose clearly, but lacks behavioral details (e.g., output structure, errors) and usage guidelines. For a query tool with three parameters, this is minimally adequate but incomplete.

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

    Parameters4/5

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

    Schema description coverage is 0%, so the description must compensate. It adds meaningful context for all three parameters: 'technique_stix_id' is explained as 'Technique STIX ID to check how they are used and in what procedure', 'domain' is clarified with allowed values ('enterprise', 'mobile', or 'ics'), and 'include_description' specifies its effect ('Whether to include description in the output') and default. This goes well beyond the bare 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 tool's purpose: 'Get procedure examples by technique STIX ID (shows how groups use a technique)'. It specifies the verb ('Get'), resource ('procedure examples'), and key parameter ('technique STIX ID'). However, it doesn't explicitly differentiate from sibling tools like 'get_procedure_examples_by_tactic' or 'get_techniques_used_by_group', which have related but distinct purposes.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'get_procedure_examples_by_tactic' (for tactic-based examples) or 'get_techniques_used_by_group' (for group-based techniques), nor does it specify prerequisites or exclusions. The only implied usage is when you have a technique STIX ID and want procedure examples.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the action ('Get') but lacks details on permissions, rate limits, output format, or whether this is a read-only operation. For a tool with no annotations, this leaves significant gaps in understanding its behavior and constraints.

    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 appropriately sized and front-loaded with the main purpose in the first sentence, followed by parameter details. It avoids unnecessary fluff, but the structure could be slightly improved by integrating the 'Args' section more seamlessly or adding brief context on why revoked techniques matter.

    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 moderate complexity (2 parameters, no output schema, no annotations), the description is minimally adequate. It covers the purpose and parameters but lacks output details, error handling, or contextual examples. Without annotations or output schema, more completeness would enhance usability, but it meets basic requirements.

    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 description includes an 'Args' section that explains both parameters: 'domain' (with allowed values: 'enterprise', 'mobile', or 'ics') and 'include_description' (with default behavior). Since schema description coverage is 0%, this compensates well by adding meaningful semantics beyond the bare schema, though it doesn't cover all possible edge cases for a perfect 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 clearly states the tool's purpose: 'Get all revoked techniques in the MITRE ATT&CK framework.' This specifies the verb ('Get'), resource ('revoked techniques'), and context ('MITRE ATT&CK framework'). However, it doesn't explicitly differentiate from sibling tools like 'get_all_techniques' or 'get_techniques_by_tactic,' which would be needed for a score of 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. With many sibling tools related to techniques (e.g., 'get_all_techniques,' 'get_techniques_by_tactic'), there is no mention of when this specific tool for revoked techniques is appropriate or what distinguishes it from other technique-related queries.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries full burden. It states the tool's basic function but lacks behavioral details: no information about error handling (e.g., invalid IDs), performance characteristics, rate limits, authentication requirements, or what happens if no match is found. For a lookup tool with zero annotation coverage, this is insufficient.

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

    Conciseness4/5

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

    The description is appropriately concise with a clear two-part structure: purpose statement followed by parameter explanations. Every sentence adds value - the first establishes the core function, the second and third clarify inputs. No wasted words, though the formatting could be slightly cleaner.

    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 moderate complexity (2 parameters, no output schema, no annotations), the description is minimally adequate. It covers the basic purpose and parameters but lacks important context: no information about return values (what 'object type' means), error conditions, or how this fits within the broader ATT&CK framework alongside sibling 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?

    Schema description coverage is 0%, so the description must compensate. It successfully does so by explaining both parameters: 'stix_id: ATT&CK ID to find associated object type for' and 'domain: Domain name ('enterprise', 'mobile', or 'ics')'. This adds crucial semantic context beyond the bare schema, though it doesn't cover edge cases or format 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 states the tool's purpose: 'Get object type by stix ID' - a specific verb ('Get') and resource ('object type') with the key input ('stix ID'). It distinguishes from siblings like 'get_object_by_stix_id' (which retrieves full objects) by focusing only on type identification. However, it doesn't explicitly contrast with these alternatives, preventing a perfect score.

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

    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. With many sibling tools (e.g., 'get_object_by_stix_id', 'get_objects_by_type'), there's no indication of when type-only retrieval is preferred over full object retrieval or other filtering methods. The Args section documents parameters but doesn't address usage context.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool retrieves tactics but doesn't describe the output format (e.g., list of tactic objects), pagination, error handling, or any rate limits. For a read operation with no annotation coverage, this leaves significant gaps in understanding how the tool behaves.

    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 appropriately sized and front-loaded with the core purpose in the first line. The Args section is structured clearly, with each parameter explained concisely. There's no wasted text, though it could be slightly more polished (e.g., integrating the Args into a single paragraph).

    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 complexity (3 parameters, no annotations, no output schema), the description is minimally adequate. It covers the basic purpose and parameters but lacks details on output format, error cases, or integration with sibling tools. For a tool in a security context (ATT&CK), more context on STIX and domains would be helpful.

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

    Parameters4/5

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

    Schema description coverage is 0%, so the description must compensate. It adds meaningful context for all three parameters: 'matrix_stix_id' specifies it's for finding associated tactics, 'domain' clarifies allowed values ('enterprise', 'mobile', or 'ics'), and 'include_description' explains its effect on output. This goes beyond the bare schema, though it doesn't detail STIX ID format or domain implications.

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

    Purpose4/5

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

    The description clearly states the verb 'Get' and the resource 'tactics by matrix', which is specific and actionable. It distinguishes from siblings like 'get_all_tactics' (which retrieves all tactics without filtering) and 'get_tactics_by_technique' (which filters by technique instead of matrix). However, it doesn't explicitly mention what 'matrix' refers to (e.g., ATT&CK matrix), 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 versus alternatives. It doesn't mention prerequisites, such as needing a valid matrix STIX ID, or compare it to sibling tools like 'get_all_matrices' or 'get_tactics_by_technique'. The lack of context makes it unclear in what scenarios this tool is preferred over others.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions what the tool does (get techniques by platform) and lists parameters, but fails to describe key behaviors: whether it returns a list or single item, pagination or limits, error handling for invalid platforms, or the output format. For a query tool with no annotation coverage, this leaves significant gaps in understanding how it operates.

    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 well-structured and appropriately sized. It starts with a clear purpose statement, followed by an 'Args:' section that efficiently documents parameters with brief explanations. There's no redundant information, and each sentence adds value. However, it could be slightly more front-loaded by integrating parameter hints into the initial sentence for faster scanning.

    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 complexity (a query tool with 3 parameters, no annotations, and no output schema), the description is moderately complete. It covers the purpose and parameters well, but lacks details on behavior, output format, and usage context. Without an output schema, it should ideally hint at what 'techniques' entail (e.g., IDs, names, or full objects). It's adequate for basic use but leaves room for improvement in guiding the agent fully.

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

    Parameters4/5

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

    Schema description coverage is 0%, so the description must compensate. It adds meaningful semantics beyond the schema: it explains 'platform' as 'Platform (Windows, Linux etc.) to find associated techniques for', clarifies 'domain' with allowed values ('enterprise', 'mobile', or 'ics'), and specifies 'include_description' as 'Whether to include description in the output (default is False)'. This covers all three parameters effectively, though it could elaborate on platform examples or domain implications.

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

    Purpose4/5

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

    The description clearly states the tool's purpose: 'Get techniques by the platform provided (Windows, Linux etc.)'. It specifies the verb ('Get') and resource ('techniques'), and distinguishes it from siblings like 'get_all_techniques' by focusing on platform filtering. However, it doesn't explicitly contrast with other platform-related tools like 'get_techniques_targeting_asset', which might also involve platforms.

    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 doesn't mention sibling tools like 'get_all_techniques' (for unfiltered lists) or 'get_techniques_by_tactic' (for tactic-based filtering), nor does it specify prerequisites or exclusions. The only implied context is needing techniques for a specific platform, but this is basic and lacks comparative advice.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool retrieves data ('Get'), implying a read-only operation, but doesn't specify aspects like error handling (e.g., invalid STIX IDs), rate limits, authentication needs, or output format. For a tool with no annotations, this is a significant gap in transparency.

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

    Conciseness4/5

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

    The description is appropriately sized and front-loaded, with a clear purpose statement followed by parameter details in a structured 'Args' section. Every sentence adds value, such as explaining parameter defaults and options, without unnecessary fluff. A slight improvement in brevity could push it to a 5.

    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 moderate complexity (3 parameters, no output schema, no annotations), the description is adequate but incomplete. It covers parameter semantics well but lacks behavioral details like error handling or output structure. Without annotations or an output schema, more context on what the tool returns would enhance completeness.

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

    Parameters4/5

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

    The description adds meaningful context for all three parameters beyond the input schema, which has 0% description coverage. It explains that 'datacomponent_stix_id' is used to check what techniques it detects, clarifies the 'domain' options ('enterprise', 'mobile', or 'ics'), and specifies that 'include_description' controls output inclusion with a default. This compensates well for the schema's lack of 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's purpose: 'Get techniques detected by a datacomponent.' It specifies the verb ('Get') and resource ('techniques detected by a datacomponent'), making the function understandable. However, it doesn't explicitly differentiate from sibling tools like 'get_datacomponents_detecting_technique' or 'get_all_techniques,' which would require more specificity to earn 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. It lacks context about prerequisites, such as needing a valid STIX ID, and doesn't mention sibling tools like 'get_datacomponents_detecting_technique' for reverse lookups. This absence of usage instructions leaves the agent without clear direction.

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

  • Behavior2/5

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

    No annotations are provided, so the description must fully disclose behavior. It states the tool retrieves data ('Get'), implying a read-only operation, but doesn't clarify if it's a lookup, search, or list function. It lacks details on output format, pagination, error handling, or any constraints like rate limits or authentication needs, leaving significant gaps for an agent.

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

    Conciseness4/5

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

    The description is appropriately sized and front-loaded with the core purpose in the first line. The parameter explanations are clear and efficient, with no redundant sentences. However, the structure could be improved by integrating usage context rather than just listing args.

    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 no annotations, 0% schema coverage, and no output schema, the description does a fair job by explaining parameters and the basic purpose. However, it lacks details on return values, error cases, or behavioral traits, making it incomplete for a tool with three parameters in a complex domain like STIX/ATT&CK.

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

    Parameters4/5

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

    Schema description coverage is 0%, so the description compensates by explaining all three parameters: 'mitigation_stix_id' (to check techniques), 'domain' (with valid values: 'enterprise', 'mobile', or 'ics'), and 'include_description' (default behavior). This adds meaningful context beyond the bare schema, though it doesn't detail STIX ID format or domain implications.

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

    Purpose4/5

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

    The description clearly states the verb ('Get') and resource ('techniques mitigated by mitigation'), making the purpose understandable. It distinguishes from siblings like 'get_mitigations_mitigating_technique' by focusing on techniques rather than mitigations, though it doesn't explicitly name this distinction. The title is null, so the description carries the full burden and does so adequately.

    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 doesn't mention sibling tools like 'get_mitigations_mitigating_technique' (which has an inverse relationship) or explain specific contexts where this query is appropriate. The description only lists parameters without usage context.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool 'gets' information (implying read-only), but doesn't clarify whether this requires authentication, has rate limits, returns paginated results, or what the output format looks like. The description adds minimal behavioral context beyond the basic read operation implied by 'get'.

    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 efficiently structured with a clear purpose statement followed by parameter explanations. Every sentence adds value: the first defines the tool's function, and the parameter descriptions clarify each input's role. It's appropriately sized for a tool with three parameters, though the formatting with 'Args:' could be more integrated.

    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 no annotations, 0% schema description coverage, and no output schema, the description does an adequate job explaining the tool's purpose and parameters. However, it lacks crucial context about output format, error conditions, authentication requirements, and how results relate to ATT&CK framework concepts. For a tool querying security techniques, more domain context would be helpful.

    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 must compensate for undocumented parameters. It provides clear semantics for all three parameters: 'group_stix_id' identifies the group, 'domain' specifies the domain with allowed values, and 'include_description' controls output detail. This fully explains parameter purposes beyond what the bare schema provides, though it doesn't specify format details for STIX IDs.

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

    Purpose4/5

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

    The description clearly states the tool's purpose: 'Get techniques used by group's software' which specifies the verb ('Get'), resource ('techniques'), and scope ('used by group's software'). It distinguishes from sibling tools like 'get_techniques_used_by_group' (which gets techniques directly used by groups) and 'get_software_used_by_group' (which gets software used by groups). However, it could be more specific about what 'techniques' refers to (e.g., ATT&CK techniques).

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

    Usage Guidelines2/5

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

    The description provides no explicit guidance on when to use this tool versus alternatives. While the purpose distinguishes it from some siblings, there's no mention of prerequisites, when-not-to-use scenarios, or comparisons to similar tools like 'get_techniques_used_by_group' or 'get_software_used_by_group'. The agent must infer usage from the tool name and parameter names alone.

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

  • Behavior2/5

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

    No annotations are provided, so the description must fully disclose behavioral traits. It mentions the tool retrieves data components but does not cover aspects like whether it's read-only, potential rate limits, authentication needs, or output format. The description is insufficient for a mutation tool with no annotation support, leaving critical behavioral details unclear.

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

    Conciseness5/5

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

    The description is front-loaded with the core purpose, followed by concise parameter explanations. Every sentence adds value without redundancy, making it efficient and well-structured for quick understanding.

    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 moderate complexity (2 parameters, no output schema, no annotations), the description is adequate but incomplete. It covers the purpose and parameters but lacks details on behavioral traits, usage context, and output format, which are needed for full agent guidance in this environment.

    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 description adds meaningful context for both parameters: it specifies the domain options ('enterprise', 'mobile', or 'ics') and clarifies that 'include_description' controls output inclusion with a default. With 0% schema description coverage, this compensates well, though it could detail parameter interactions or constraints more fully.

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

    Purpose4/5

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

    The description clearly states the tool's purpose: 'Get all data components in the MITRE ATT&CK framework.' It specifies the verb ('Get') and resource ('data components'), but does not explicitly differentiate from sibling tools like 'get_all_datasources' or 'get_datacomponents_detecting_technique', which prevents a score of 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 lists parameters but does not mention sibling tools or contexts where this tool is preferred, such as for comprehensive listing versus filtered queries. This lack of comparative context results in a minimal score.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries full burden. It mentions the tool retrieves all tactics but doesn't disclose behavioral traits like pagination, rate limits, authentication needs, or what happens if the domain is invalid. The description is minimal and lacks operational context.

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

    Conciseness5/5

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

    Appropriately sized and front-loaded: the first sentence states the purpose clearly, followed by a structured 'Args:' section. Every sentence earns its place with no wasted words, making it easy to scan.

    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 no annotations and no output schema, the description is incomplete. It covers parameters well but lacks information on return values, error handling, or behavioral constraints. For a tool with 2 parameters and no structured support, this is a minimal viable description with clear 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?

    Schema description coverage is 0%, so the description must compensate. It adds meaning by explaining 'domain' options ('enterprise', 'mobile', or 'ics') and clarifying 'include_description' as a boolean with a default. This covers both parameters adequately beyond the schema's basic 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 tool's purpose: 'Get all tactics in the MITRE ATT&CK framework' - a specific verb ('Get') and resource ('all tactics'). It distinguishes from many siblings that focus on techniques, groups, or other entities, though not explicitly from 'get_tactics_by_matrix' or 'get_tactics_by_technique'.

    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. It doesn't mention when to prefer this over 'get_tactics_by_matrix' or 'get_tactics_by_technique', nor does it specify prerequisites or typical use cases beyond the basic function.

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

  • Behavior2/5

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

    With no annotations provided, the description carries full burden but lacks critical behavioral details. It doesn't specify whether this is a read-only operation, what the output format looks like (e.g., list of campaign objects), potential rate limits, authentication requirements, or error conditions. The description only covers basic parameter usage without operational context.

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

    Conciseness4/5

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

    The description is appropriately sized and front-loaded with the core purpose in the first sentence, followed by a structured Args section. Every sentence adds value without redundancy, though the Args formatting could be more integrated into the flow rather than a separate block.

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

    Completeness2/5

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

    Given no annotations, 0% schema coverage, and no output schema, the description is incomplete for a tool with 3 parameters. It explains parameters but misses behavioral aspects like response format, pagination, error handling, and how it differs from sibling tools. For a query tool in a security context, more operational guidance is needed.

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

    Parameters4/5

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

    Schema description coverage is 0%, so the description must compensate—and it does well by explaining all three parameters: 'group_stix_id' identifies the MITRE ATT&CK group, 'domain' specifies the domain name with valid values, and 'include_description' controls output inclusion with default. This adds meaningful context beyond the bare schema, though it could detail STIX ID format or domain implications.

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

    Purpose4/5

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

    The description clearly states the verb ('Get') and resource ('campaigns attributed to group'), specifying the relationship between campaigns and groups via STIX ID. It distinguishes from siblings like 'get_all_campaigns' by focusing on attribution to a specific group, though it doesn't explicitly contrast with other campaign-related tools like 'get_campaigns_by_alias' or 'get_campaigns_using_technique'.

    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 needing campaigns linked to a specific MITRE ATT&CK group via STIX ID, but provides no explicit guidance on when to choose this tool over alternatives like 'get_campaigns_by_alias' or 'get_campaigns_using_technique'. It mentions the domain parameter but doesn't explain why or when to select different domains.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the tool retrieves objects but doesn't describe output format, pagination, rate limits, authentication needs, or error handling. For a read operation with no annotation coverage, this leaves significant behavioral gaps.

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

    Conciseness5/5

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

    The description is appropriately sized and front-loaded: the first sentence states the purpose clearly, followed by a structured 'Args' section with concise explanations. Every sentence adds value without redundancy, making it efficient and easy to parse.

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

    Completeness3/5

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

    Given the tool's moderate complexity (3 parameters, no output schema, no annotations), the description is partially complete. It covers parameter semantics well but lacks details on output format, behavioral traits, and usage context. Without annotations or output schema, it should do more to guide the agent fully.

    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 description adds substantial meaning beyond the input schema, which has 0% description coverage. It explains that 'timestamp' is in ISO format with an example, 'domain' accepts specific values ('enterprise', 'mobile', or 'ics'), and 'include_description' controls output inclusion with a default. This compensates well for the schema's lack of documentation.

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

    Purpose4/5

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

    The description clearly states the tool's purpose: 'Get objects created after a specific timestamp.' It specifies the verb ('Get') and resource ('objects'), and distinguishes from siblings like 'get_objects_modified_after' by focusing on creation time. However, it doesn't specify what type of objects (e.g., assets, campaigns) are retrieved, which slightly reduces clarity.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'get_all_assets' or 'get_objects_by_type' for comparison, nor does it specify prerequisites, exclusions, or typical use cases. Usage is implied only by the tool's name and parameters.

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

  • Behavior2/5

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

    With no annotations provided, the description carries full burden for behavioral disclosure. It states what the tool does but provides no information about response format, pagination, rate limits, authentication requirements, or error conditions. For a query tool with no annotation coverage, this represents significant gaps in behavioral understanding.

    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 perfectly structured and concise. The first sentence states the purpose clearly, followed by a well-organized Args section with bullet-point explanations. Every sentence earns its place, and the information is front-loaded with the core purpose stated first.

    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 moderate complexity (3 parameters, no output schema, no annotations), the description is adequate but incomplete. It explains parameters well but lacks information about return values, error handling, or behavioral constraints. For a query tool with no output schema, the description should ideally provide some indication of what to expect in response.

    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 description provides excellent parameter semantics despite 0% schema description coverage. It explains what each parameter means: 'tactic' is 'Tactic name to check procedure examples for', 'domain' specifies the valid values ('enterprise', 'mobile', or 'ics') with a default, and 'include_description' clarifies what it controls. This fully compensates for the schema's lack of 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 verb ('Get') and resource ('procedure examples by tactic'), and provides a helpful parenthetical explanation of what procedure examples represent ('shows how groups use techniques in this tactic'). However, it doesn't explicitly differentiate from its closest sibling 'get_procedure_examples_by_technique' beyond the obvious parameter difference.

    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. While the sibling list includes 'get_procedure_examples_by_technique' which is clearly related, there's no indication of when to choose one over the other, nor any context about prerequisites or typical use cases.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries full burden for behavioral disclosure. It mentions the tool 'gets' data (implying read-only), but doesn't specify whether this requires authentication, has rate limits, returns paginated results, or what format/output to expect. The description lacks behavioral context beyond the basic operation, which is insufficient for a tool with no annotation coverage.

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

    Conciseness5/5

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

    The description is perfectly structured and concise. The first sentence states the purpose clearly, followed by a well-formatted 'Args:' section with bullet-point parameter explanations. Every sentence earns its place, with zero redundant information. The formatting makes it easy to scan and understand.

    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 3 parameters with 0% schema coverage and no output schema, the description does a good job explaining parameters but lacks context about the tool's behavior and output. It doesn't describe what 'tactics' means in the MITRE ATT&CK framework, what the return format looks like, or any error conditions. For a lookup tool with no annotations, this leaves significant gaps in understanding how to effectively use it.

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

    Parameters4/5

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

    With 0% schema description coverage, the description must fully compensate. It provides clear semantics for all three parameters: 'technique_stix_id' is explained as 'Technique STIX ID to find associated tactics for', 'domain' specifies allowed values ('enterprise', 'mobile', or 'ics'), and 'include_description' clarifies its boolean nature and default. This adds substantial value beyond the bare schema, though it doesn't explain STIX ID format or domain implications.

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

    Purpose4/5

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

    The description clearly states the tool's purpose: 'Get tactics associated with a technique' - a specific verb ('Get') and resource ('tactics') with a clear relationship ('associated with a technique'). It distinguishes from siblings like 'get_all_tactics' (which retrieves all tactics without filtering) and 'get_tactics_by_matrix' (which filters by matrix rather than technique). However, it doesn't explicitly mention what 'tactics' refers to in the MITRE ATT&CK 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?

    The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'get_techniques_by_tactic' (reverse relationship) or 'get_all_tactics' (unfiltered list), nor does it specify prerequisites or appropriate contexts. The only implied usage is needing a technique STIX ID, but this is stated as a parameter requirement rather than usage guidance.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries full burden for behavioral disclosure. It only states what the tool does ('Get all techniques'), without mentioning permissions, rate limits, error handling, or output format. For a tool with no annotations and unknown complexity, this is inadequate 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 efficiently structured with a clear purpose statement followed by parameter explanations. Every sentence adds value: the first defines the tool, and the Args section clarifies each parameter without redundancy. It's appropriately sized for its complexity.

    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 3 parameters with 0% schema coverage and no output schema, the description provides basic parameter semantics but lacks behavioral context and usage guidance. It's minimally viable for understanding what the tool does, but gaps in transparency and guidelines make it incomplete for confident agent use.

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

    Parameters4/5

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

    Schema description coverage is 0%, so the description must compensate. It adds meaningful context for all three parameters: 'tactic' (name to lookup), 'domain' (with enum values 'enterprise', 'mobile', or 'ics'), and 'include_description' (boolean flag with default). This goes beyond the bare schema, though it doesn't fully explain parameter interactions or constraints.

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

    Purpose4/5

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

    The description clearly states the tool's purpose: 'Get all techniques of the given tactic'. It specifies the verb ('Get') and resource ('techniques'), and mentions the key parameter ('tactic'). However, it doesn't explicitly differentiate from sibling tools like 'get_all_techniques' or 'get_techniques_by_platform', which would require 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. With many sibling tools like 'get_all_techniques', 'get_techniques_by_platform', and 'get_tactics_by_technique', there's no indication of context, prerequisites, or comparisons. This leaves the agent guessing about appropriate use cases.

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

  • Behavior2/5

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

    With no annotations provided, the description carries full burden for behavioral disclosure. It states what the tool does but doesn't describe important behaviors: whether it's a read-only operation, what format the output takes, if there are rate limits, authentication requirements, or error conditions. The description is purely functional without operational context.

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

    Conciseness5/5

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

    The description is efficiently structured with a clear purpose statement followed by parameter explanations. Every sentence adds value: the first states the tool's function, and the Args section provides necessary parameter context without redundancy. The formatting with bullet-like Args improves readability.

    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 tool with 3 parameters, no annotations, and no output schema, the description provides adequate functional information but lacks operational context. It explains what the tool does and what parameters mean, but doesn't describe output format, error handling, or system constraints. Given the complexity (querying relationships in a security database), more behavioral context would be helpful.

    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 description provides meaningful parameter information in the Args section, explaining what each parameter represents. With 0% schema description coverage, this compensates well: 'software_stix_id: Software STIX ID to check what techniques are associated with it' clarifies the identifier purpose, 'domain' lists valid values, and 'include_description' explains the boolean flag. However, it doesn't specify format requirements for software_stix_id or elaborate on domain implications.

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

    Purpose4/5

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

    The description clearly states the tool's purpose: 'Get techniques used by software' specifies the verb (get) and resource (techniques) with the relationship (used by software). It distinguishes from siblings like 'get_software_using_technique' (reverse relationship) and 'get_all_techniques' (unfiltered list). However, it doesn't explicitly contrast with 'get_techniques_used_by_group_software' which might be similar.

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

    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 prerequisites, typical use cases, or comparison to similar tools like 'get_techniques_used_by_group' or 'get_techniques_used_by_campaign'. The agent must infer usage from the tool name alone.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the domain restriction ('only pertains to ICS domain') and the optional 'include_description' parameter, but doesn't describe other critical behaviors: what the output looks like (e.g., list of assets with IDs/names), whether it's a read-only query (implied by 'Get' but not explicit), error conditions, or rate limits. For a tool with no annotations, this leaves significant gaps in understanding how it behaves.

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

    Conciseness4/5

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

    The description is well-structured and concise: a clear purpose statement followed by an 'Args:' section with parameter explanations. Every sentence earns its place, and there's no redundant information. It could be slightly more front-loaded by integrating the domain restriction into the first sentence, but overall it's efficient and readable.

    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 complexity (a query tool with 3 parameters, no annotations, and no output schema), the description is moderately complete. It explains the purpose, parameters, and domain restriction, but lacks output details (what assets are returned, in what format) and behavioral context (e.g., read-only nature, error handling). For a tool with no structured support, it should do more to compensate, but it meets minimum viability for basic usage.

    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 schema description coverage is 0%, so the description must compensate. It provides clear semantics for all three parameters: 'technique_stix_id' (Technique STIX ID to check what assets are targeted by it), 'domain' (Domain name 'ics'), and 'include_description' (Whether to include description in the output). This adds meaningful context beyond the bare schema, though it doesn't detail format constraints (e.g., STIX ID pattern) or explain the default for 'domain'. Since it covers all parameters adequately, it scores above baseline.

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

    Purpose4/5

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

    The description clearly states the tool's purpose: 'Get assets targeted by technique STIX ID (shows how assets are targeted by technique)'. It specifies the verb ('Get'), resource ('assets'), and relationship ('targeted by technique'), and distinguishes it from siblings like 'get_all_assets' or 'get_techniques_targeting_asset'. However, it doesn't explicitly differentiate from all similar tools (e.g., 'get_techniques_targeting_asset' is the inverse), so it's not a perfect 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 provides some usage context: 'only pertains to ICS domain' and implies it's for querying asset targeting. However, it doesn't explicitly state when to use this tool versus alternatives like 'get_techniques_targeting_asset' (which queries the inverse relationship) or 'get_all_assets' (which lists all assets). The guidance is implied rather than explicit, lacking clear exclusions or named alternatives.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries full burden. It states the tool 'gets' objects but doesn't disclose behavioral traits like whether this is a read-only operation, what format the output takes, if there are rate limits, or authentication requirements. The description only documents parameters without explaining the tool's behavior or constraints.

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

    Conciseness4/5

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

    The description is efficiently structured with a clear purpose statement followed by well-organized parameter documentation. Every sentence serves a purpose, though the parameter documentation could be slightly more integrated with the main description rather than appearing as a separate 'Args:' section.

    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 3 parameters with no schema descriptions and no output schema, the description does an adequate job documenting inputs but leaves significant gaps. It doesn't explain what 'objects' are returned, their structure, or any behavioral aspects. For a tool with no annotations and no output schema, this is minimally viable but incomplete.

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

    Parameters5/5

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

    With 0% schema description coverage, the description fully compensates by providing complete parameter documentation. It clearly explains all three parameters: 'stix_type' with its allowed values, 'domain' with its allowed values and default, and 'include_description' with its purpose and default. This adds significant value beyond the bare 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 tool's purpose: 'Get objects by STIX type' - a specific verb (Get) and resource (objects) with a key filter (STIX type). It distinguishes itself from siblings like 'get_object_by_stix_id' or 'get_objects_by_name' by focusing on type-based retrieval. However, it doesn't explicitly mention what 'objects' refers to in this context (e.g., MITRE ATT&CK objects).

    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. With many sibling tools for specific object types (e.g., 'get_all_campaigns', 'get_all_techniques'), there's no indication whether this tool is a general-purpose alternative or serves a different use case. The parameter documentation implies filtering but offers no usage context.

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

  • Behavior2/5

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

    With no annotations provided, the description carries full burden but provides minimal behavioral context. It mentions default values for parameters but doesn't describe error handling (what happens with invalid STIX IDs), performance characteristics, or authentication requirements. The description doesn't contradict annotations (none exist), but fails to provide important operational context for a lookup tool.

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

    Conciseness4/5

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

    The description is efficiently structured with a clear purpose statement followed by parameter explanations. Every sentence adds value, though the formatting with 'Args:' header is slightly redundant given the schema exists. The information is front-loaded with the core purpose first.

    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 3-parameter lookup tool with no annotations and no output schema, the description provides adequate but incomplete coverage. It explains parameters well but doesn't describe the return format, error conditions, or relationship to the broader MITRE ATT&CK context evident from sibling tools. The description meets minimum requirements but leaves gaps for operational use.

    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 well by explaining all three parameters: 'technique_stix_id' is 'Subtechnique STIX ID to check what its parent technique is', 'domain' specifies 'enterprise', 'mobile', or 'ics', and 'include_description' controls output inclusion with default False. This adds crucial meaning beyond the bare schema, though it could elaborate on STIX ID format expectations.

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

    Purpose4/5

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

    The description clearly states the tool's purpose: 'Get parent technique of subtechnique' - a specific verb ('Get') and resource ('parent technique') relationship. It distinguishes from siblings like 'get_all_parent_techniques' (which lists all) and 'get_subtechniques_of_technique' (which does the inverse). However, it doesn't explicitly mention the MITRE ATT&CK framework context that's implied by the sibling tools.

    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 subtechnique STIX ID and want its parent, but doesn't provide explicit guidance on when to use this versus alternatives like 'get_object_by_stix_id' or 'get_all_parent_techniques'. It mentions the domain parameter options but doesn't explain when to choose different domains or what happens if you use the wrong one.

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

  • Behavior2/5

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

    With no annotations provided, the description carries full burden but offers minimal behavioral insight. It states it 'gets' techniques (likely a read operation) but doesn't disclose permissions needed, rate limits, pagination, error conditions, or what format the output takes. The ICS domain restriction is useful context, but overall behavioral disclosure is inadequate.

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

    Conciseness4/5

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

    The description is appropriately sized and front-loaded with the core purpose. The parameter explanations are clear and necessary given the schema coverage gap. No wasted sentences, though the structure could be slightly improved by integrating parameter details more seamlessly.

    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 tool with 3 parameters, 0% schema coverage, no annotations, and no output schema, the description is minimally complete. It covers parameter purposes and domain restriction, but lacks output format explanation, error handling, or behavioral context that would be needed for confident use. It's adequate but has clear 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?

    With 0% schema description coverage, the description compensates well by explaining all three parameters: asset_stix_id ('Asset STIX ID to find techniques targeting it'), domain ('Domain name'), and include_description ('Whether to include description in the output'). It adds meaning beyond the bare schema, though it doesn't explain STIX ID format or domain constraints beyond 'ics'.

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

    Purpose4/5

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

    The description clearly states the verb 'Get' and resource 'techniques targeting a specific asset', with explicit domain restriction 'ICS domain only'. It distinguishes from some siblings like 'get_all_techniques' but doesn't explicitly differentiate from 'get_techniques_used_by_group' or similar targeting tools.

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

    Usage Guidelines3/5

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

    The description implies usage context with 'ICS domain only' and the required asset_stix_id parameter, but provides no explicit guidance on when to use this versus alternatives like 'get_techniques_used_by_group' or 'get_techniques_by_tactic'. No exclusions or prerequisites are mentioned.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries the full burden. It states the tool 'Get all campaigns' but doesn't disclose behavioral traits like whether this is a read-only operation, if it requires authentication, rate limits, pagination, or error handling. The description is minimal and misses key behavioral context for a tool with no annotation coverage.

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

    Conciseness4/5

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

    The description is appropriately sized and front-loaded with the main purpose in the first sentence. The 'Args:' section efficiently lists parameters with brief explanations. There's minimal waste, though the structure could be slightly more integrated (e.g., embedding param details in prose).

    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 complexity (3 parameters, no annotations, no output schema), the description is incomplete. It explains parameters well but lacks behavioral transparency (e.g., read/write nature, performance) and output details (e.g., format of returned campaigns). For a tool with no structured support, this leaves significant gaps in understanding how to use it effectively.

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

    Parameters4/5

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

    Schema description coverage is 0%, so the description must compensate. It provides clear semantics for all three parameters: 'technique_stix_id' (STIX ID to look up campaigns), 'domain' (domain name with options), and 'include_description' (whether to include description in output). This adds significant value beyond the bare schema, though it could detail domain options more explicitly.

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

    Purpose5/5

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

    The description clearly states the tool's purpose: 'Get all campaigns in which a technique is used by its STIX ID'. This is specific (verb 'Get', resource 'campaigns', condition 'technique is used'), and it distinguishes from siblings like 'get_all_campaigns' (no filtering) and 'get_campaigns_attributed_to_group' (different filter).

    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 campaigns related to a specific technique, but it doesn't explicitly state when to use this tool versus alternatives. For example, it doesn't compare to 'get_techniques_used_by_campaign' (reverse relationship) or 'get_campaigns_using_software' (different filter type). The context is clear but lacks explicit guidance on alternatives.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries full burden. It mentions case-sensitivity but doesn't disclose other behavioral traits like error handling, authentication needs, rate limits, or what happens when no object is found. The description is minimal beyond parameter documentation.

    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 appropriately sized and front-loaded with the core purpose. The parameter documentation is well-structured with clear bullet points. Every sentence earns its place, though the formatting with 'Args:' could be slightly more integrated.

    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 tool with 4 parameters, 0% schema coverage, no annotations, and no output schema, the description does well on parameters but lacks behavioral context. It doesn't explain return values, error conditions, or usage scenarios. Given the complexity, it's adequate but has clear gaps in completeness.

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

    Parameters5/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 fully compensate. It provides detailed semantics for all 4 parameters: explains what 'attack_id' is used for, lists all valid values for 'stix_type' and 'domain', and clarifies the purpose of 'include_description' with its default. This adds significant value beyond the bare schema.

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

    Purpose5/5

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

    The description clearly states the specific action ('Get object') and resource ('by ATT&CK ID'), with explicit case-sensitivity noted. It distinguishes from sibling tools like 'get_object_by_stix_id' and 'get_objects_by_name' by focusing on ATT&CK ID lookup rather than STIX ID or name-based searches.

    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. With many sibling tools available (e.g., 'get_object_by_stix_id', 'get_objects_by_type'), the description doesn't explain scenarios where ATT&CK ID lookup is preferred or prerequisites for use.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries the full burden. It mentions what the tool returns (ID and description) but does not disclose behavioral traits such as error handling (e.g., if alias not found), rate limits, authentication needs, or response format. The description is minimal and lacks critical operational context for a tool with parameters.

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

    Conciseness5/5

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

    The description is front-loaded with the core purpose in the first sentence, followed by a structured 'Args:' section that efficiently details parameters. Every sentence earns its place with no redundant information, making it appropriately sized and easy to parse.

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

    Completeness3/5

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

    Given no annotations and no output schema, the description is incomplete for a tool with parameters. It covers parameter semantics well but lacks behavioral details (e.g., output structure, error cases) and does not reference sibling tools for context. It is adequate for basic use but has clear gaps in operational guidance.

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

    Parameters4/5

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

    Schema description coverage is 0%, so the description must compensate. It adds meaningful semantics for all three parameters: 'alias' is explained as 'alias of a MITRE ATT&CK group', 'domain' specifies allowed values ('enterprise', 'mobile', or 'ics'), and 'include_description' clarifies its purpose and default. This goes beyond the schema's basic titles and types, providing necessary context.

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

    Purpose5/5

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

    The description clearly states the specific action ('Get MITRE ATT&CK group ID and description') and the resource ('by their alias'), distinguishing it from sibling tools like 'get_all_groups' (which retrieves all groups) and 'get_groups_using_technique' (which filters by technique usage). The verb 'Get' is precise, and the scope is well-defined.

    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 an alias and need group details, but it does not explicitly state when to use this tool versus alternatives like 'get_object_by_attack_id' or 'get_objects_by_name'. There is no mention of prerequisites, exclusions, or comparative guidance with sibling tools, leaving usage context partially inferred.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the output includes techniques and optionally descriptions, but does not specify format (e.g., list, JSON), pagination, rate limits, authentication needs, or error handling. For a tool with no annotation coverage, this leaves significant behavioral gaps, though it at least clarifies the core function.

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

    Conciseness5/5

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

    The description is front-loaded with the core purpose in the first sentence, followed by a structured 'Args' section that efficiently explains each parameter. Every sentence earns its place with no redundant or vague language, making it appropriately sized and easy to parse.

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

    Completeness3/5

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

    Given no annotations and no output schema, the description provides adequate basics (purpose and parameters) but lacks details on return format, error cases, or performance traits. For a tool with 3 parameters and moderate complexity in a security context, it is minimally viable but leaves room for more completeness, such as explaining the structure of returned techniques.

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

    Parameters4/5

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

    Schema description coverage is 0%, so the description must compensate. It provides clear semantics for all three parameters: 'group_stix_id' specifies the group identifier, 'domain' lists valid values ('enterprise', 'mobile', or 'ics') with a default implied, and 'include_description' explains its effect on output. This adds substantial value beyond the bare schema, though it could note that 'domain' defaults to 'enterprise' explicitly.

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

    Purpose5/5

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

    The description clearly states the specific action ('Get all MITRE ATT&CK techniques used by group') and identifies the resource ('by group STIX ID'). It distinguishes from siblings like 'get_all_techniques' (which retrieves all techniques without group filtering) and 'get_techniques_used_by_campaign' (which filters by campaign instead of group). The purpose is precise and differentiated.

    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 querying techniques associated with a specific group, but does not explicitly state when to use this tool versus alternatives like 'get_groups_using_technique' (which reverses the relationship) or 'get_techniques_by_tactic' (which filters by tactic). No exclusions or prerequisites are mentioned, leaving usage context partially implied rather than fully guided.

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

  • Behavior3/5

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

    No annotations are provided, so the description carries the full burden. It mentions the tool returns 'JSON string containing the appropriate layer metadata,' which gives some behavioral insight into the output format. However, it lacks details on permissions, rate limits, or error handling. The description doesn't contradict annotations (none exist), but it provides only basic 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.

    Conciseness4/5

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

    The description is appropriately sized and front-loaded, with the first sentence stating the core purpose and usage. The Args and Returns sections are structured clearly. However, the repetition of 'Always' could be slightly streamlined, and the example reference ('such as the generate_layer tool') is helpful but adds minor 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?

    Given the tool's low complexity (1 optional parameter, no output schema, no annotations), the description is reasonably complete. It covers purpose, usage, parameter semantics, and output format. However, it could benefit from more details on the metadata structure or examples, but for a simple tool, it provides adequate 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 schema description coverage is 0%, so the description must compensate. It documents one parameter: 'domain (str, optional): The ATT&CK domain ('enterprise', 'mobile', or 'ics'). Defaults to 'enterprise'.' This adds meaning beyond the schema by specifying allowed values and default. However, with only one parameter covered, it meets the baseline for low coverage but doesn't fully address potential gaps in schema understanding.

    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: 'Always call this tool whenever a prompt requires the generation of a MITRE ATT&CK Navigator Layer, such as the generate_layer tool. Always insert this metadata in the generated layer.' This specifies the action (get metadata for ATT&CK Navigator Layer) and context (for layer generation). However, it doesn't explicitly differentiate from sibling tools beyond mentioning 'generate_layer' as an example, leaving some ambiguity about its unique role versus other metadata-related tools.

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

    Usage Guidelines5/5

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

    The description provides explicit usage guidelines: 'Always call this tool whenever a prompt requires the generation of a MITRE ATT&CK Navigator Layer, such as the generate_layer tool. Always insert this metadata in the generated layer.' This clearly states when to use it (for layer generation) and references a sibling tool ('generate_layer') as an example, offering strong contextual guidance without exclusions.

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

  • Behavior3/5

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

    With no annotations provided, the description carries the full burden of behavioral disclosure. It describes the tool's function (generating a JSON layer) and error conditions, but lacks details about permissions, rate limits, or what the generated layer contains beyond 'techniques with scores'. It doesn't mention if this is a read-only or write operation, though 'generate' implies creation without persistence.

    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 efficiently structured: a clear purpose statement followed by an 'Args:' section with bullet-point explanations for each parameter. Every sentence adds necessary information without redundancy, and the formatting makes it easy to parse.

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

    Completeness3/5

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

    For a tool with 3 parameters, 0% schema coverage, no annotations, and no output schema, the description does a reasonable job explaining inputs and constraints. However, it doesn't describe the output format beyond 'JSON format' or what the generated layer contains structurally. Given the complexity of ATT&CK layers, more detail about the return value would be helpful.

    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 description adds significant semantic value beyond the 0% schema coverage. It explains that 'attack_id' accepts specific ATT&CK ID formats (GXXX, MXXX, SXXX, DXXX) and prohibits TXXX, clarifies that 'score' applies to each technique in the layer, and specifies valid 'domain' values ('enterprise', 'mobile', 'ics') with 'enterprise' as default. This compensates well 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 clearly states the specific action ('Generate an ATT&CK navigator layer in JSON format') and the resource it operates on ('based on a matching ATT&CK ID value'). It distinguishes itself from sibling tools by focusing on layer generation rather than data retrieval or querying, which is the primary function of most siblings.

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

    Usage Guidelines5/5

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

    The description provides explicit usage guidelines: it specifies valid input types (group, mitigation, software, data component IDs) and explicitly prohibits techniques ('NEVER directly input a technique'). It also mentions error handling for invalid or multiple IDs, giving clear boundaries for when to use this tool.

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

GitHub Badge

Glama performs regular codebase and documentation scans to:

  • Confirm that the MCP server is working as expected.
  • Confirm that there are no obvious security issues.
  • Evaluate tool definition quality.

Our badge communicates server capabilities, safety, and installation instructions.

Card Badge

mitre-attack-mcp MCP server

Copy to your README.md:

Score Badge

mitre-attack-mcp MCP server

Copy to your README.md:

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/stoyky/mitre-attack-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server