Stratos
Security scanning for GitOps/Flux configurations, detecting misconfigurations and vulnerabilities in Flux-based deployments.
Provides comprehensive security assessment for Azure Kubernetes Service (AKS), including live K8s API scanning, IMDS exploitation, RBAC analysis, and policy bypass detection.
Security assessment for Azure Database for MySQL, covering TDE, firewall rules, and authentication settings.
Security assessment for Azure Database for PostgreSQL, covering TDE, firewall rules, and authentication settings.
Security analysis for Azure Cache for Redis, including encryption, firewall, and authentication checks.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Stratosscan all subscriptions for public storage accounts"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Stratos - Azure Security Assessment MCP Server
Enterprise-grade Azure security assessment toolkit with multi-location scanning, IMDS exploitation, attack path analysis, and compliance reporting
Designed for security professionals conducting authorized penetration tests, compliance audits, and executive risk reporting
Features β’ Quick Start β’ Documentation β’ Examples
Overview
Stratos is a comprehensive Azure security assessment framework built on the Model Context Protocol (MCP). It provides 40 production-ready tools covering multi-location scanning, enumeration, vulnerability scanning, attack path analysis, AKS/Kubernetes security (including live K8s API scanning and IMDS exploitation), backup security, VNet topology analysis, private endpoint validation, and compliance reporting for Azure cloud environments.
Use Cases
Multi-Location Scanning - Scan resources across all 45+ Azure regions
Security Assessments - Identify misconfigurations and vulnerabilities
IMDS Exploitation - Token theft, cluster-wide exposure, deep data plane access
Executive Reporting - Generate professional risk assessment reports
Compliance Audits - Map findings to CIS, NIST frameworks
Penetration Testing - Discover attack paths and privilege escalation vectors
Kubernetes Security - AKS cluster, node, and IMDS vulnerability testing
DevOps Security - Detect hardcoded secrets in Azure DevOps
Key Highlights
100% Read-Only - Safe for production environments
40 Security Tools - Comprehensive Azure service coverage (v1.14.0)
Multi-Location - Scan common (10) or all (45+) Azure regions
Multi-Format Reports - PDF, HTML, CSV, Markdown, JSON
Attack Path Analysis - Privilege escalation and lateral movement mapping
AKS/Kubernetes - 4 consolidated container security tools (ARM + Live K8s + IMDS)
Enterprise Ready - Professional reports for executives and auditors
What's New in v1.14.0 π
Critical Security Enhancement - Research-Driven Expansion
6 New Security Tools - Backup security, VNet peering, Private Endpoints, Diagnostic Settings, Defender coverage, Policy compliance
8 Enhanced Tools - Storage (SAS tokens + WORM), Service Principals (RBAC-focused), Managed Identities (federation), NSG (service endpoints + load balancers), SQL (PostgreSQL + MySQL + Redis), Function Apps (Event Grid + Service Bus)
23 New Parameters - Extended capabilities across existing tools (100% backward compatible)
Research Attribution - Based on Azure Security Benchmark v3, redskycyber/Cloud-Security, CIS Azure Foundations
Cloud Infrastructure Focus - Service principal analysis excludes Azure AD (cloud resources only)
Related MCP server: MCP Shamash
Key Features
π Multi-Location (2 Tools)
list_active_locations - Discover active Azure regions
scan_all_locations - Scan resources across all regions
Support for 45+ Azure locations globally
Location filtering on enumeration tools
π Enumeration (7 Tools)
Subscriptions - Map Azure environment structure
Resource Groups - List all resource containers (with location filter)
Resources - Enumerate all resources (with location filter)
Resource Details - Get detailed configurations
Public IPs - Identify internet-exposed attack surface
RBAC Assignments - Audit access control permissions
Managed Identities - Track passwordless authentication
π‘οΈ Security Scanning (10 Tools)
Storage Security - Public access, HTTPS, encryption
Storage Containers - Deep scan for sensitive files
NSG Rules - Internet-exposed ports, wildcard rules
SQL Databases - TDE encryption, firewall, auth
Key Vaults - Soft delete, purge protection, secrets
Virtual Machines - Disk encryption, security extensions
Cosmos DB - Public access, firewall, encryption
Container Registries - Admin user, vulnerability scanning
Attack Paths - Privilege escalation chains
Service Principals - Application identity scanning
βΈοΈ Kubernetes/AKS (3 Tools + Enhanced Features)
scan_aks_full - π ENHANCED Comprehensive AKS security with multiple scan modes:
mode: 'full'- Complete ARM-based assessment (30+ CIS checks)mode: 'live'- Live K8s API scanning (secrets, RBAC, pods, SAs)mode: 'imds'- IMDS exploitation & token theft (cluster-wide scan, token export)mode: 'pod_identity'- Pod Identity/Workload Identity analysismode: 'admission'- Admission controller bypass detection
scan_aks_policy_bypass - OPA/Kyverno policy bypass detection
get_aks_credentials - Extract kubeconfig for kubectl access
Migration Note (v1.12.0): Deprecated tools scan_aks_live, scan_aks_imds, scan_aks_pod_identity, and scan_aks_admission_bypass are now consolidated into scan_aks_full with scanMode parameter.
π Reporting & DevOps (3 Tools)
Security Reports - PDF/HTML/CSV with CIS/NIST mapping
Azure DevOps Scanner - Hardcoded secrets detection
Credential Exposure - Scan for exposed credentials
Report Features:
Executive summaries with risk statistics
Color-coded severity (CRITICAL/HIGH/MEDIUM/LOW)
Compliance framework mapping
Remediation guidance
π Tool Reference (40 Tools)
Naming Convention
Prefix | Purpose |
| List/discover resources |
| Deep configuration analysis |
| Security assessment |
| Retrieve specific data |
| Find threats/issues |
| Create output/reports |
Complete Tool List
# | Tool Name | Category | Description |
1 |
| Info | Display comprehensive help and examples |
2 |
| Multi-Location | Discover which Azure regions have resources |
3 |
| Multi-Location | Scan resources across all 45+ Azure regions |
4 |
| Enumeration | List all accessible subscriptions |
5 |
| Enumeration | List resource groups in subscription |
6 |
| Enumeration | List all resources (filterable by type) |
7 |
| Enumeration | Get detailed resource configuration |
8 |
| Security | Scan storage accounts for misconfigurations |
9 |
| Security | Identify risky firewall rules |
10 |
| Enumeration | Map internet-exposed attack surface |
11 |
| Enumeration | Audit access control and permissions |
12 |
| Security | Check SQL security (TDE, firewall, auth) |
13 |
| Security | Audit Key Vault configuration |
14 |
| Security | Scan Cosmos DB security settings |
15 |
| Security | Check VM disk encryption and patches |
16 |
| Security | ENHANCED ACR security & supply chain (scanMode: security/poisoning/all) |
17 |
| Security | Find application identities and risks |
18 |
| Enumeration | Track passwordless authentication |
19 |
| Security | Deep scan for sensitive files in blobs |
20 |
| Reporting | ENHANCED Professional reports with fullScan option (PDF/HTML/CSV/JSON) |
21 |
| Analysis | Map privilege escalation chains |
22 |
| Kubernetes | Extract kubeconfig credentials |
23 |
| DevOps | Detect hardcoded secrets in repos/pipelines |
24 |
| Compute | Function App security analysis |
25 |
| Compute | App Service security assessment |
26 |
| Network | Azure Firewall policy analysis |
27 |
| Integration | Logic Apps workflow security |
28 |
| Analysis | Privilege escalation analysis |
29 |
| Analysis | Detect persistence techniques |
30 |
| Kubernetes | ENHANCED Comprehensive AKS security (scanMode: full/live/imds/pod_identity/admission) |
31 |
| Kubernetes | OPA/Kyverno/Azure Policy bypass detection |
32 |
| Containers | Azure Container Apps security scanner |
33 |
| DevOps | GitOps/Flux security scanner |
34 |
| Network | Azure CDN & Front Door security |
35 |
| Security | NEW v1.14.0 Recovery Services Vault security (soft delete, immutability, ASR) |
36 |
| Network | NEW v1.14.0 VNet peering security (gateway transit, cross-tenant) |
37 |
| Network | NEW v1.14.0 Private Link validation (DNS, connection state) |
38 |
| Compliance | NEW v1.14.0 Logging compliance (NIST/CIS mapping) |
39 |
| Security | NEW v1.14.0 Defender for Cloud coverage assessment |
40 |
| Compliance | NEW v1.14.0 Azure Policy governance validation |
π Quick Start
Installation
Option 1: Install from npm (Recommended)
# Install globally from npm
npm install -g stratos-mcpOption 2: Build from source
# Clone the repository
git clone https://github.com/h4cd0c/stratos-mcp.git
cd stratos-mcp
# Install dependencies
npm install
npm run buildPrerequisites
# Login to Azure CLI
az loginVS Code Configuration
Add to .vscode/mcp.json:
{
"servers": {
"stratos": {
"command": "node",
"args": ["C:\\path\\to\\stratos-mcp\\dist\\index.js"],
"type": "stdio"
}
}
}π‘οΈ Input Validation & Auto-Completion β NEW
Enhanced Security (OWASP MCP-05 Compliance):
Pattern-Based Validation - Regex validation for all Azure resource identifiers (subscription IDs, resource groups, locations, etc.)
Whitelist Validation - Location names and resource types validated against Azure service catalogs
Sanitization - Automatic removal of control characters and length enforcement
Clear Error Messages - Helpful validation errors guide users to correct input formats
Improved User Experience:
Auto-Completion Support - Intelligent suggestions for locations, resource types, formats, and scan modes
Prefix Filtering - Type-ahead suggestions as you enter values
Context-Aware - Suggests relevant values based on the current tool and argument
Supported completions:
location/locations- All 60+ Azure locations + "all", "common"resourceType- VMs, Storage, NSGs, AKS, SQL, Key Vaults, Public IPs, Allformat- markdown, json, html, pdf, csvscanMode- common, allstartFrom- public-ips, storage, vms, identities, all
οΏ½ Output Format Control β NEW
All 30 security tools now support flexible output formatting via the optional format parameter:
Markdown (Default) - Human-readable output, perfect for documentation and reports
#azure_whoami
# Returns: Clean markdown text (backward compatible)JSON - Machine-readable structured data with metadata for automation
#azure_whoami format: json
# Returns: { "tool": "azure_whoami", "format": "json", "timestamp": "...", "data": {...} }Key Benefits:
β Backward Compatible - Existing tools work without changes (defaults to markdown)
β API Integration - JSON format enables programmatic consumption
β Automation - Parse structured data for CI/CD pipelines
β Metadata - JSON includes tool name, timestamp, and versioning
β Flexible - Choose format per-tool based on use case
Supported Tools: All security scanners, enumerators, and analyzers (34 tools total)
Example Use Cases:
# Export scan results to JSON for automation
#azure_analyze_storage_security subscriptionId: YOUR_SUB format: json > results.json
# Human-readable documentation output (default)
#azure_scan_sql_databases subscriptionId: YOUR_SUB
# Structured data for API integration
#azure_analyze_attack_paths subscriptionId: YOUR_SUB format: jsonοΏ½π Example Workflows
1. Generate Security Reports (Quick vs Comprehensive)
# Quick scan (4 core tools: Storage, NSG, SQL, KeyVault) - 5-10 seconds
generate_security_report subscriptionId="YOUR_SUB_ID" format="pdf" outputFile="C:\\reports\\quick-scan.pdf"
# Comprehensive scan (ALL 34 tools) - 30-60 seconds
generate_security_report subscriptionId="YOUR_SUB_ID" format="pdf" outputFile="C:\\reports\\full-scan.pdf" fullScan=true2. Analyze Attack Paths
analyze_attack_paths subscriptionId="YOUR_SUB_ID" startFrom="public-ips"3. Scan Azure DevOps for Secrets
scan_azure_devops organizationUrl="https://dev.azure.com/yourorg" personalAccessToken="YOUR_PAT"4. AKS Security Assessment
# Comprehensive ARM-based scan
scan_aks_full subscriptionId="YOUR_SUB_ID" resourceGroup="RG-NAME" clusterName="CLUSTER-NAME"
# IMDS exploitation with token export
scan_aks_imds subscriptionId="YOUR_SUB_ID" resourceGroup="RG-NAME" clusterName="CLUSTER-NAME" scanAllPods=true exportTokens=true deepDataPlane=true5. Deep Storage Container Scan
scan_storage_containers subscriptionId="YOUR_SUB_ID"π Report Formats
Format | Use Case | Features |
Executive presentations | Color-coded severity, professional layout | |
HTML | Interactive dashboards | Modern styling, sortable tables |
CSV | Data analysis, Excel | Structured export for tracking |
JSON | Automation integration | Machine-readable format |
Markdown | Documentation | Human-readable, version control |
π§ Technical Details
Dependencies:
Azure SDK v4+ for all services
Azure DevOps API v13.2.0
PDFKit, Marked, CSV-Writer for exports
TypeScript 5.3.3, Node.js 20+
MCP SDK v1.0.4
Supported Azure Services:
Storage Accounts, Network Security Groups
SQL Databases, Key Vaults, Virtual Machines
Cosmos DB, Container Registries
AKS/Kubernetes, Azure DevOps
β οΈ Disclaimer
FOR AUTHORIZED SECURITY TESTING ONLY
This tool is designed for security professionals conducting authorized penetration tests. Users must:
Have explicit written authorization from target organization
Comply with all applicable laws and regulations
Follow responsible disclosure practices
Respect Azure Terms of Service
Unauthorized access to computer systems is illegal.
π License
MIT
π€ Author
h4cd0c - GitHub
Made with β€οΈ for the security community
Available Tools
43 toolsazure_analyze_application_gatewayA
Analyze Azure Application Gateway and WAF (Web Application Firewall) security configuration. Checks: WAF enabled/disabled, WAF mode (Detection vs Prevention), OWASP rule set version, disabled rule groups, SSL/TLS policy version (TLSv1.0/1.1 = CRITICAL), HTTP-only listeners (no HTTPS redirect), backend authentication certificates, request routing rules. Identifies misconfigurations leading to WAF bypass and MitM attacks.
| Name | Required | Description | Default |
|---|---|---|---|
| subscriptionId | Yes | Azure subscription ID | |
| resourceGroup | No | Optional: Filter by specific resource group | |
| format | No | Output format: 'markdown' (default) or 'json' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden. It describes the analysis and identification of misconfigurations, which implies a read-only operation, but it does not explicitly state that the tool is non-destructive or mention required permissions (e.g., Reader role). The description adds context about security risks (WAF bypass, MitM) but lacks a clear safety disclaimer.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured paragraph that front-loads the tool's purpose. Each sentence adds specific value (lists checks, states security implications). No redundant or filler words. Appropriate length for the tool's scope.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity as a security analyzer, the description covers the main functionality (WAF checks, SSL, routing rules) and identifies misconfigurations. Schema provides full parameter coverage. No output schema exists, so lack of return value description is acceptable. However, adding a sample report format or noting that results are presented in the specified 'format' would increase completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% coverage with descriptions for all 3 parameters (subscriptionId, resourceGroup, format). The description does not add additional meaning beyond the schema, so it meets the baseline. No deeper parameter context (e.g., behavior when resourceGroup omitted) is provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description specifically states it analyzes Azure Application Gateway and WAF security configuration, listing concrete checks like WAF mode, OWASP rule set, SSL/TLS policy, etc. This distinguishes it clearly from sibling tools that focus on other Azure services (e.g., app service, NSG rules). The verb 'analyze' and resource 'Application Gateway' are clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for security auditing but does not explicitly state when to use this tool versus alternatives like azure_analyze_nsg_rules or azure_analyze_keyvault_security. No when-not-to-use guidance or prerequisites are mentioned, leaving the agent to infer from context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
azure_analyze_app_service_securityB
App Service security analysis: HTTPS-only, minimum TLS version, authentication, managed identity, VNet integration, IP restrictions, remote debugging status
| Name | Required | Description | Default |
|---|---|---|---|
| subscriptionId | Yes | Azure subscription ID | |
| resourceGroup | No | Optional: Filter by specific resource group | |
| format | No | Output format: 'markdown' (default, human-readable) or 'json' (machine-readable) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It lists what it checks but does not clarify if it is read-only, required permissions, or if it produces a report. The word 'analysis' is vague.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words, but the list of checks could be structured (e.g., bullets) for readability. Still efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Missing output schema and annotations; the description only lists aspects checked but does not explain what the tool returns or its behavioral impact. Lacks completeness for a security analysis tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and description adds no extra meaning beyond schema for the three parameters (subscriptionId, resourceGroup, format). Baseline score applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The tool name and description clearly state it analyzes security of App Service, listing specific security aspects (HTTPS-only, TLS, authentication, etc.). This distinguishes it from sibling tools focused on other Azure resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for App Service security analysis but does not explicitly state when to use this tool versus alternatives, nor does it provide exclusions or usage context (e.g., when to prefer it over other analysis tools).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
azure_analyze_attack_pathsA
Identify and map attack paths from public exposure to sensitive resources. Analyzes: privilege escalation chains (RBAC roles β resources), lateral movement opportunities (VM β managed identity β secrets), exposed credentials to resource access, public IP β NSG β VM β identity β data flows. Returns exploitation scenarios with step-by-step attack chains.
| Name | Required | Description | Default |
|---|---|---|---|
| subscriptionId | Yes | Azure subscription ID to analyze | |
| resourceGroup | No | Optional: Filter by specific resource group | |
| startFrom | No | Optional: Starting point for attack path analysis ('public-ips', 'storage', 'vms', 'identities'). Default: analyze all entry points. | |
| format | No | Output format: 'markdown' (default, human-readable) or 'json' (machine-readable) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that the tool returns exploitation scenarios with step-by-step chains, but does not explicitly state read-only nature, rate limits, or authorization requirements. Annotations are empty, so description carries the burden; it adds some behavioral context but could be more explicit about safety.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, front-loaded with purpose, and every sentence adds value. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, the description explains the tool returns exploitation scenarios with step-by-step chains, which is sufficient for an analysis tool. It covers the types of attack paths analyzed. Missing guidance on output structure but adequate given complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all parameters. The description adds overall context but does not enhance individual parameter understanding beyond what the schema provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool identifies and maps attack paths from public exposure to sensitive resources, listing specific analysis types (privilege escalation, lateral movement, etc.). This distinguishes it from sibling tools that analyze individual resources or configurations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. Siblings include many analysis tools for specific Azure components, but the description does not mention scenarios where attack path analysis is preferred or when to use other tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
azure_analyze_backup_securityA
NEW in v1.14.0 Analyze Azure Backup and Site Recovery (ASR) security configurations. Checks: backup vault encryption, soft delete enabled/disabled, cross-region restore, backup policies, retention periods, immutable vault (ransomware protection), ASR replication policies, failover readiness, recovery vault access control. Returns: vault security posture, backup coverage gaps, replication health, compliance with 3-2-1 backup rule.
| Name | Required | Description | Default |
|---|---|---|---|
| subscriptionId | Yes | Azure subscription ID | |
| resourceGroup | No | Optional: Filter by specific resource group | |
| includeASR | No | Include Azure Site Recovery (ASR) analysis for disaster recovery configurations. Default: true | |
| checkImmutability | No | Validate immutable vault configuration for ransomware protection. Default: true | |
| format | No | Output format: 'markdown' (default, human-readable) or 'json' (machine-readable) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are empty, so the description carries the burden. It discloses what checks are performed and the return values, but does not mention whether the tool is read-only, required permissions, rate limits, or side effects. The version note ('NEW in v1.14.0') is a minor behavioral hint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single paragraph, front-loaded with a version note and purpose. It is fairly concise and covers key aspects, though it could be broken into clearer sentences for readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 5 parameters, no output schema, and a long sibling list, the description provides a complete overview of purpose, checks, and return. It is sufficient for an AI agent to understand the tool's scope.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description lists checks that correspond to parameters (e.g., includeASR, checkImmutability) but does not add new meaning to individual parameters beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool analyzes Azure Backup and Site Recovery security configurations, listing specific checks (encryption, soft delete, cross-region restore, etc.) and returns (vault security posture, backup coverage gaps). It differentiates from sibling tools by focusing on backup/recovery security.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for backup security analysis but does not explicitly state when to use this tool versus alternatives (e.g., other azure_analyze_* tools). No guidance on when not to use or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
azure_analyze_cosmosdb_securityA
Cosmos DB security analyzer. Checks: public network access enabled, firewall rules (IP restrictions), encryption at rest, automatic failover, backup retention policy, virtual network rules. Returns security findings with compliance mapping.
| Name | Required | Description | Default |
|---|---|---|---|
| subscriptionId | Yes | Azure subscription ID | |
| resourceGroup | No | Optional: Filter by specific resource group | |
| format | No | Output format: 'markdown' (default, human-readable) or 'json' (machine-readable) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose all behavioral traits. It states it checks and returns findings but omits details such as whether it is read-only, required permissions, rate limits, or error handling. The description lacks sufficient transparency for an agent to anticipate tool behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: the first defines the tool's purpose succinctly, and the second lists key checks. It is front-loaded, efficient, and contains no extraneous text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the three parameters and no output schema, the description adequately states the tool's purpose and checks but lacks details on output structure, compliance mapping specifics, and behavioral aspects. Some gaps remain for a security analysis tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description does not add extra meaning beyond the schema's parameter descriptions; it merely restates the checks performed, which is not parameter-specific. No additional context for parameters like subscriptionId or format is provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states it is a 'Cosmos DB security analyzer' and lists specific checks (public network access, firewall rules, encryption, etc.), clearly distinguishing it from sibling tools that analyze other Azure services.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for Cosmos DB security analysis but provides no explicit guidance on when to use it vs. sibling security analyzers for other services, nor any exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
azure_analyze_firewall_policiesC
Azure Firewall and NSG rule analysis: overly permissive rules, any-to-any rules, management port exposure, threat intelligence integration
| Name | Required | Description | Default |
|---|---|---|---|
| subscriptionId | Yes | Azure subscription ID | |
| resourceGroup | No | Optional: Filter by specific resource group | |
| format | No | Output format: 'markdown' (default, human-readable) or 'json' (machine-readable) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It describes the tool as analyzing rules but does not state whether it modifies resources, required permissions, rate limits, or what the analysis entails beyond a list of checks.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence listing key analysis areas, which is concise. However, it could benefit from slight restructuring for readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite 100% schema coverage and no output schema, the description lacks details about the output format (though format parameter handles part of this), expected results, and prerequisites like subscription access. A more complete description would clarify what the analysis yields.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%; each parameter has a description in the schema. The tool description adds no additional meaning to the parameters beyond what the schema provides. Baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly identifies the tool's purpose: analyzing Azure Firewall and NSG rules for specific security issues (overly permissive, any-to-any, management port exposure, threat intelligence). It distinguishes from sibling tools like 'azure_analyze_nsg_rules' by mentioning both firewall and NSG, though not explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. Sibling tools such as 'azure_analyze_nsg_rules' exist but are not mentioned, and there is no discussion of prerequisites or limitations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
azure_analyze_function_appsA
ENHANCED v1.14.0 Azure Functions security analysis: authentication settings, managed identity, VNet integration, CORS configuration, application settings for secrets, runtime version vulnerabilities, Event Grid trigger security, Service Bus queue/topic permissions, integration authentication validation. Returns: trigger exposure risks, Event Grid subscription configurations, Service Bus SAS policies, dead letter queue security.
| Name | Required | Description | Default |
|---|---|---|---|
| subscriptionId | Yes | Azure subscription ID | |
| resourceGroup | No | Optional: Filter by specific resource group | |
| validateEventGrid | No | Validate Event Grid trigger security and subscription configurations. Default: true | |
| validateServiceBus | No | Validate Service Bus queue/topic trigger security and SAS policy permissions. Default: true | |
| checkIntegrationSecurity | No | Comprehensive analysis of integration security (Event Grid, Service Bus, Storage Queue). Default: true | |
| format | No | Output format: 'markdown' (default, human-readable) or 'json' (machine-readable) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With empty annotations, the description must fully disclose behavior. It mentions return types (risks, configurations, policies) and implies read-only analysis, but does not explicitly state it is non-destructive or mention permissions or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a bold version label, followed by a comma-separated list of analysis areas and return items. It is concise for the level of detail, though the version string could be omitted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (6 parameters, no output schema), the description provides a comprehensive list of security checks and return types. It lacks behavioral or prerequisite details, but the scope is adequately covered for an analysis tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds overall scope (list of security checks) but does not enhance per-parameter meaning beyond the schema's already clear parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Azure Functions security analysis' and enumerates specific areas like authentication, VNet integration, CORS, etc. It distinguishes itself from sibling analysis tools (e.g., azure_analyze_app_service_security) by focusing on Functions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit guidance on when to use this tool vs alternatives (e.g., other azure_analyze_* tools). It omits prerequisites, context, or exclusions, relying entirely on implicit understanding.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
azure_analyze_keyvault_securityA
Key Vault security assessment. Checks: soft delete disabled (data loss risk), purge protection disabled, public network access enabled, RBAC vs Access Policies, secret/certificate expiration, diagnostic logging. Returns risk-scored findings (CRITICAL/HIGH/MEDIUM/LOW) with remediation guidance.
| Name | Required | Description | Default |
|---|---|---|---|
| subscriptionId | Yes | Azure subscription ID | |
| resourceGroup | No | Optional: Filter by specific resource group | |
| format | No | Output format: 'markdown' (default, human-readable) or 'json' (machine-readable) |
TDQS
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 what the tool checks but does not state whether it is read-only, requires specific permissions, or has any side effects. This is a significant gap for a security assessment tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: one sentence summarizing the purpose followed by a bullet list of checks. It is front-loaded and every sentence adds value. No unnecessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description explains the return value (risk-scored findings with severity levels and remediation guidance) even though no output schema is provided. Parameter details are in the schema. The tool's purpose, inputs, and outputs are adequately covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all parameters. The description adds no additional nuance beyond what the schema provides, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool performs 'Key Vault security assessment' and enumerates specific checks (soft delete, purge protection, public network access, RBAC vs Access Policies, secret/certificate expiration, diagnostic logging). This distinguishes it from siblings that assess other Azure resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for assessing Key Vault security settings, but does not provide explicit guidance on when to use this tool versus alternatives (e.g., other security assessment tools). There are no 'when to use' or 'when not to use' statements.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
azure_analyze_logic_appsC
Logic Apps security analysis: authentication, access control, managed identity usage, exposed endpoints, workflow triggers security
| Name | Required | Description | Default |
|---|---|---|---|
| subscriptionId | Yes | Azure subscription ID | |
| resourceGroup | No | Optional: Filter by specific resource group | |
| format | No | Output format: 'markdown' (default, human-readable) or 'json' (machine-readable) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description should disclose behavior. It mentions 'security analysis' but does not clarify if the tool is read-only, whether it requires specific permissions, or what actions it performs (e.g., scanning, listing, checking).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the tool's purpose. It is efficient with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description lacks completeness. It does not explain what the analysis output looks like, what prerequisites are needed, or how the results are structured.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the parameters are already well-documented in the schema. The description does not add additional meaning or context beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it performs security analysis of Logic Apps, listing specific areas like authentication and access control. However, it does not differentiate itself from many sibling tools that also perform security analysis on other Azure services.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. The description implies it's for Logic Apps security assessment, but lacks when-not or alternative tool references.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
azure_analyze_nsg_rulesA
ENHANCED v1.14.0 Automated Network Security Group (NSG) security analysis with service endpoints and load balancer integration validation. Identifies: open management ports (RDP 3389, SSH 22, WinRM 5985/5986), database ports (SQL 1433, MySQL 3306, PostgreSQL 5432, MongoDB 27017), wildcard source rules (0.0.0.0/0, Internet, Any), overly permissive rules, service endpoint security, load balancer backend pool NSG associations. Returns findings with risk severity and remediation recommendations.
| Name | Required | Description | Default |
|---|---|---|---|
| subscriptionId | Yes | Azure subscription ID | |
| resourceGroup | No | Optional: Filter by specific resource group | |
| nsgName | No | Optional: Analyze specific NSG by name | |
| validateServiceEndpoints | No | Validate service endpoints security (checks if NSGs allow access to Azure Storage, SQL, etc.). Default: true | |
| checkLoadBalancers | No | Check NSG associations with load balancer backend pools for security misconfigurations. Default: true | |
| format | No | Output format: 'markdown' (default, human-readable) or 'json' (machine-readable) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits like read-only nature, authentication requirements, or rate limits. It only implies a read operation by stating it returns findings.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is somewhat verbose with 'ENHANCED v1.14.0' clutter, but it is front-loaded with purpose and structured as a list of checks, making it adequate though not optimally concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description vaguely states 'returns findings with risk severity and remediation recommendations' but lacks specifics on output structure, leaving moderate gaps for an automated analysis tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description adds value by detailing specific checks (e.g., ports, service endpoints, load balancers) that map to parameters, enriching the schema information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it performs automated NSG security analysis with specific checks including ports and rules, distinguishing it from sibling tools that analyze other Azure resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for NSG security analysis but does not explicitly state when to use this tool vs. alternatives or provide exclusions, leaving usage context implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
azure_analyze_rbac_privescB
Deep RBAC analysis for privilege escalation paths: role assignment permissions, custom role vulnerabilities, subscription-level access, management group permissions
| Name | Required | Description | Default |
|---|---|---|---|
| subscriptionId | Yes | Azure subscription ID | |
| targetPrincipal | No | Optional: Specific principal ID to analyze escalation paths for | |
| format | No | Output format: 'markdown' (default, human-readable) or 'json' (machine-readable) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, description carries full burden but only says 'deep analysis'. Does not disclose if the tool makes changes, required permissions, or potential side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with colon and list, concise and no redundant words. Could be structured better but efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema and no annotations. Complex RBAC analysis tool lacks explanation of return values, depth of analysis, or prerequisites, making it incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear descriptions for each parameter. Description adds no extra meaning beyond listing 'role assignment permissions, custom role vulnerabilities' which are not directly linked to parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly specifies the tool does deep RBAC analysis for privilege escalation, listing specific aspects like role assignment permissions and custom role vulnerabilities. It distinguishes from siblings like azure_enumerate_rbac_assignments by implying deeper analysis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool vs alternatives like azure_enumerate_rbac_assignments. Usage is implied but not clarified with when-not or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
azure_analyze_storage_securityA
ENHANCED v1.14.0 Comprehensive storage security analysis. Checks: public blob access, firewall rules, encryption, secure transfer (HTTPS), private endpoints, minimum TLS version, SAS token security, immutable storage (WORM), lifecycle management. NEW: Detects overly permissive SAS tokens, tokens without expiry, validates retention policies for compliance (SEC 17a-4, FINRA). Returns prioritized security findings with risk levels (CRITICAL/HIGH/MEDIUM/LOW).
| Name | Required | Description | Default |
|---|---|---|---|
| subscriptionId | Yes | Azure subscription ID | |
| resourceGroup | No | Optional: Filter by specific resource group | |
| scanSasTokens | No | Analyze stored access policies and SAS token security (default: true). Detects overly permissive scopes, tokens without expiry, IP restriction gaps. | |
| validateImmutability | No | Validate immutable storage (WORM) policies for compliance (default: false). Checks time-based retention, legal hold, policy modifications. | |
| deepSecurityScan | No | Enable all advanced checks including SAS tokens, immutability, lifecycle management (default: false). | |
| format | No | Output format: 'markdown' (default, human-readable) or 'json' (machine-readable) |
TDQS
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 is a security analysis that returns findings, implying a read-only operation, but does not explicitly state safety or disclose any behavioral traits like auth requirements or rate limits. It adds context beyond the schema but is not deeply transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single paragraph but uses bolding and bullet-like lists effectively. It is concise, covering key points without unnecessary fluff. Slightly dense but well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of the tool (multiple checks, advanced options) and no output schema, the description provides enough context: it lists checks, mentions risk levels, and notes new features. It could detail output format more, but sufficient for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers all 6 parameters with descriptions (100% coverage). The tool description does not add significant new meaning beyond summarizing the checks; e.g., it mentions 'NEW: Detects overly permissive SAS tokens' which aligns with the scanSasTokens parameter. Baseline 3 is appropriate as schema already documents parameters well.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it is a 'Comprehensive storage security analysis' tool and lists specific checks including public blob access, firewall, encryption, SAS token security, and immutability. It distinguishes itself from sibling tools like azure_analyze_app_service_security by focusing on storage.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for storage security analysis but does not explicitly mention when to use this versus alternatives among the many sibling Azure analysis tools. It provides clear context but no exclusions or when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
azure_analyze_vm_securityA
Virtual Machine security scanner. Checks: OS disk encryption (BitLocker/dm-crypt), data disk encryption, security extensions (Microsoft Defender, Azure Monitor Agent), boot diagnostics storage access, patch management status, Just-in-Time VM access. Returns vulnerability findings with exploitation paths.
| Name | Required | Description | Default |
|---|---|---|---|
| subscriptionId | Yes | Azure subscription ID | |
| resourceGroup | No | Optional: Filter by specific resource group | |
| format | No | Output format: 'markdown' (default, human-readable) or 'json' (machine-readable) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are empty, and the description does not state whether the tool is read-only or has side effects. For a security scanner, it's likely non-destructive, but without explicit disclosure, the agent lacks critical behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (two sentences with a bullet list) and front-loaded with the core purpose. Every sentence adds value with zero waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the tool's main checks and return format (vulnerability findings with exploitation paths). Lacking output schema, this is sufficient. Minor omission: no mention of permissions or scope, but overall fairly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters. The description adds no extra semantic value beyond listing checks, which is not parameter-specific. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Virtual Machine security scanner' and enumerates specific checks (OS disk encryption, data disk encryption, etc.), which precisely identifies the tool's function and differentiates it from sibling tools focusing on other Azure resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for VM security assessment, and the extensive sibling list of other Azure resource analyzers provides implicit context. However, it lacks explicit 'when to use' or 'when not to use' guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
azure_analyze_vnet_peeringA
NEW in v1.14.0 Analyze VNet peering security and network topology. Checks: peering state (connected/disconnected), allow forwarded traffic (security risk), allow gateway transit (privilege escalation), remote gateway usage, peering across subscriptions/tenants, hub-spoke topology validation, network isolation boundaries. Returns: peering security risks, network segmentation validation, cross-tenant peering warnings, topology visualization.
| Name | Required | Description | Default |
|---|---|---|---|
| subscriptionId | Yes | Azure subscription ID | |
| resourceGroup | No | Optional: Filter by specific resource group | |
| detectTopology | No | Detect and visualize hub-spoke or mesh network topology. Default: true | |
| checkCrossTenant | No | Validate cross-tenant peering security. Default: true | |
| format | No | Output format: 'markdown' (default, human-readable) or 'json' (machine-readable) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are empty, so the description carries full burden. It lists checks and returns, providing some behavioral context. However, it does not disclose whether the tool is read-only, any destructive potential, authentication needs, rate limits, or other behavioral traits. It implies analysis but is not explicit about safety.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is moderately sized, includes a version note, and uses bullet points for structure. However, it has some redundancy (checks and returns overlap) and could be more concise while maintaining clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description lists checks and returns, which is helpful given no output schema. However, it does not explain output format details (though a format parameter exists) or mention any required permissions. Given the tool's complexity (5 parameters), it is adequate but has gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all parameters have descriptions in the schema. The tool description adds overall context but does not provide additional specific meaning for each parameter beyond what the schema already provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool analyzes VNet peering security and network topology. It lists specific checks and return values. It differentiates from sibling tools by focusing on VNet peering, which is distinct from other Azure analysis tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for analyzing VNet peering but does not provide explicit guidance on when to use this tool versus alternatives, nor does it mention when not to use it. Sibling tools are listed but no differentiation is given in the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
azure_assess_defender_coverageA
NEW in v1.14.0 Assess Microsoft Defender for Cloud coverage and security posture. Checks: Defender plans enabled (VMs, Storage, SQL, App Service, Key Vault, Containers, etc.), pricing tier (Standard vs Free), auto-provisioning agents, secure score, recommendations count by severity, regulatory compliance status (Azure Security Benchmark, PCI-DSS, ISO 27001), active security alerts. Returns: coverage gaps, security score breakdown, critical recommendations, compliance posture.
| Name | Required | Description | Default |
|---|---|---|---|
| subscriptionId | Yes | Azure subscription ID | |
| includeRecommendations | No | Include detailed security recommendations analysis. Default: true | |
| includeCompliance | No | Include regulatory compliance status. Default: true | |
| format | No | Output format: 'markdown' (default, human-readable) or 'json' (machine-readable) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description extensively details what the tool checks and returns (e.g., Defender plans, pricing tier, secure score, recommendations, compliance). With no annotations, it provides good behavioral context, though it doesn't mention permissions or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is packed with useful information and front-loaded with a version note. While fairly concise, it could be slightly tighter, but overall it's well-structured for quick understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description adequately explains what the tool returns (coverage gaps, score breakdown, etc.) and covers all 4 parameters. It provides sufficient context for an agent to understand the tool's capabilities.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description does not add extra meaning to parameters beyond what the schema provides; it repeats the overall purpose but doesn't elaborate on parameter intricacies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: assessing Microsoft Defender for Cloud coverage and security posture, listing specific checks. While it doesn't explicitly differentiate from sibling tools, the focus on Defender for Cloud is distinct enough.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for overall Defender coverage assessment but lacks explicit guidance on when to use this tool versus alternatives like individual security analysis tools. No when-not-to-use or alternative references.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
azure_detect_persistence_mechanismsB
Identify Azure persistence mechanisms: automation accounts, runbooks, Logic Apps triggers, scheduled tasks, webhook endpoints, custom script extensions
| Name | Required | Description | Default |
|---|---|---|---|
| subscriptionId | Yes | Azure subscription ID | |
| format | No | Output format: 'markdown' (default, human-readable) or 'json' (machine-readable) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are empty, so description carries full burden. It indicates a read-only 'identify' operation but doesn't specify scope (subscription-level), required permissions, or whether it triggers any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no redundancy, efficiently lists key persistence mechanisms. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Purpose is clear, but description lacks detail on output format or interpretation results. With no output schema and empty annotations, more behavioral context would be beneficial for completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with both parameters described. Description adds no additional meaning beyond schema; for a 2-param tool with full schema, baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool identifies Azure persistence mechanisms and lists specific resources (automation accounts, runbooks, etc.), distinguishing it from sibling tools that focus on specific services like logic apps or storage.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus others, no prerequisites or exclusions mentioned. The description only lists what it checks without context for appropriate use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
azure_enumerate_managed_identitiesA
ENHANCED v1.14.0 Enumerate all managed identities (system-assigned and user-assigned) across subscription with federated identity credentials and cross-subscription access analysis. Returns: identity type, associated resources, role assignments, scope of access, cross-subscription permissions, federated credential configurations. Essential for understanding passwordless authentication patterns, workload identity federation risks, and potential privilege escalation paths.
| Name | Required | Description | Default |
|---|---|---|---|
| subscriptionId | Yes | Azure subscription ID | |
| resourceGroup | No | Optional: Filter by specific resource group | |
| analyzeFederatedCredentials | No | Analyze federated identity credentials (workload identity federation with GitHub Actions, Kubernetes, etc.). Default: true | |
| detectCrossSubscription | No | Detect cross-subscription access patterns (identities with role assignments in different subscriptions). Default: true | |
| includeRoleAssignments | No | Include detailed RBAC role assignments for each managed identity. Default: true | |
| format | No | Output format: 'markdown' (default, human-readable) or 'json' (machine-readable) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the output fields and implied read-only behavior but lacks explicit statements about side effects, authentication needs, rate limits, or safety. The description adds value over annotations (which are absent) but could be more explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the primary action and is relatively concise, though the 'ENHANCED v1.14.0' metadata adds some clutter. The content is structured with clear output categories, but could be slightly more streamlined.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (6 parameters, no output schema), the description provides a good summary of return values and behavior. It covers the main optional analysis features (federated credentials, cross-subscription, role assignments) and aligns with the parameter defaults. The format parameter is not mentioned, but the schema covers it. Overall adequate for an enumeration tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description does not need to repeat parameter details. The description briefly mentions federated credentials and cross-subscription analysis, which correspond to parameters, but does not add significant meaning beyond the schema. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool enumerates all managed identities (system-assigned and user-assigned) with federated credentials and cross-subscription analysis. It lists specific return fields and distinguishes itself from sibling enumerate tools by focusing on managed identities and their security context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context for security analysis (e.g., passwordless authentication, privilege escalation) but does not explicitly state when to use this tool versus alternatives or when not to use it. No exclusion criteria or direct comparisons are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
azure_enumerate_public_ipsA
Enumerate all public IP addresses in a subscription to map internet-exposed attack surface. Returns: IP address, DNS name, allocation method (Static/Dynamic), associated resource (VM, Load Balancer, App Gateway, etc.), resource group, location. Critical for identifying external entry points.
| Name | Required | Description | Default |
|---|---|---|---|
| subscriptionId | Yes | Azure subscription ID | |
| resourceGroup | No | Optional: Filter by specific resource group | |
| format | No | Output format: 'markdown' (default, human-readable) or 'json' (machine-readable) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must fully convey behavioral traits. It only outlines return values and purpose, omitting details like read-only nature, required permissions (e.g., Reader role), potential rate limits, or any side effects. This leaves the agent without critical behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (three sentences) and front-loaded: action and purpose in the first sentence, return values in the second, and context in the third. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 3 parameters, no output schema, and no nested objects, the description covers the essential aspects: what it does, what it returns, and its purpose. Minor gaps like handling large result sets or pagination are absent but acceptable for this scope.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% as all parameters have descriptions in the input schema. The tool description adds no additional meaning beyond stating return fields; parameter details are already sufficient in the schema. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verb 'Enumerate' and resource 'public IP addresses', clearly stating the goal to map internet-exposed attack surface. It distinguishes from sibling enumeration tools by focusing on public IPs, which is unique among the listed siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for security assessment ('mapping attack surface') but does not explicitly state when to use this tool over alternatives or when not to use it. No exclusions or comparisons are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
azure_enumerate_rbac_assignmentsA
Enumerate Role-Based Access Control (RBAC) assignments to identify who has access to what. Returns: principal name and type (User/ServicePrincipal/Group), role definition (Owner/Contributor/Reader/Custom), scope (Subscription/ResourceGroup/Resource), principal ID. Useful for identifying privileged accounts, service principals with excessive permissions, and potential privilege escalation paths.
| Name | Required | Description | Default |
|---|---|---|---|
| subscriptionId | Yes | Azure subscription ID | |
| scope | No | Optional: Specific scope to analyze (e.g., /subscriptions/{id}/resourceGroups/{rg}). If not provided, analyzes entire subscription. | |
| format | No | Output format: 'markdown' (default, human-readable) or 'json' (machine-readable) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It describes what is returned (principal, role, scope) but does not explicitly state read-only nature, authentication requirements, or potential side effects. The verb 'Enumerate' implies listing, but not fully transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences: first states purpose, second lists return types and use cases. No filler, front-loaded with key information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description adequately covers return values and use cases. However, it omits details like pagination or result limits, which could be important for large subscriptions. Still, it is mostly complete for a listing tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with good parameter descriptions. The tool description adds context by explaining the purpose of each parameter and how they affect output, e.g., scope limiting analysis. This adds value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool enumerates RBAC assignments to identify who has access to what, listing return values and use cases. It is distinct from sibling tools like azure_analyze_rbac_privesc and azure_enumerate_role_definitions, though not explicitly differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Mentions useful scenarios (identifying privileged accounts, excessive permissions) but lacks guidance on when not to use this tool versus alternatives. No explicit exclusions or context for choosing this over siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
azure_enumerate_resource_groupsB
Enumerate all resource groups in a specific subscription. Returns name, location, ID, and tags. Supports location filtering.
| Name | Required | Description | Default |
|---|---|---|---|
| subscriptionId | Yes | Azure subscription ID (format: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx) | |
| location | No | Filter by location(s): single (e.g., 'eastus'), multiple (e.g., 'eastus,westeurope'), or preset ('common', 'all') | |
| format | No | Output format: 'markdown' (default, human-readable) or 'json' (machine-readable) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are empty, so the description must fully disclose behavior. It states it enumerates resource groups and returns specific fields, but does not mention whether the operation is read-only, any required permissions, error handling for invalid subscription IDs, or rate limits. The description is thin on behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences cover the purpose, return fields, and filtering capability. No unnecessary words; each sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of output schema, the description compensates by listing return fields. It covers the main functionality and the three parameters are fully described in the schema. Missing some behavioral context (permissions, errors) but for a simple enumeration tool, it is fairly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds some value by mentioning that the output includes name, location, ID, and tags, and that location filtering is supported, but the filtering details are already in the parameter descriptions. The added output information is not overwhelming.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Enumerate', the resource 'resource groups', and the scope 'in a specific subscription'. It also lists what is returned (name, location, ID, tags) and indicates location filtering. This differentiates it from sibling enumeration tools like azure_enumerate_managed_identities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. There is no mention of prerequisites, use cases, or situations where another tool would be more appropriate given the many sibling enumeration tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
azure_enumerate_resourcesA
Enumerate all resources in a subscription or resource group. Can filter by resource type and location. Returns resource name, type, location, ID, and tags.
| Name | Required | Description | Default |
|---|---|---|---|
| subscriptionId | Yes | Azure subscription ID | |
| resourceGroup | No | Optional: Resource group name to filter by | |
| resourceType | No | Optional: Filter by resource type (e.g., Microsoft.Storage/storageAccounts, Microsoft.Compute/virtualMachines, Microsoft.Network/networkSecurityGroups) | |
| location | No | Filter by location(s): single (e.g., 'eastus'), multiple (e.g., 'eastus,westeurope'), or preset ('common', 'all') | |
| format | No | Output format: 'markdown' (default, human-readable) or 'json' (machine-readable) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It states what the tool returns but does not disclose if the operation is read-only, any permission requirements, or potential side effects. For a simple listing tool, the description is adequate but not thorough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences cover the action, scope, filtering, and output. No unnecessary words; every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a listing tool with 5 parameters and no output schema, the description covers the essential usage. It could mention pagination or limits, but the description is complete for the task at hand.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% coverage with detailed descriptions for each parameter. The description adds a summary of filtering but does not provide additional meaning beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'enumerate' and the resource 'all resources', with scope (subscription or resource group) and filtering options. It distinguishes from sibling tools like azure_enumerate_resource_groups and azure_enumerate_subscriptions by focusing on resources themselves.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for use (listing resources with filters), and the sibling tool list indicates specific alternatives for more targeted enumeration. However, it lacks an explicit 'when not to use' or alternatives statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
azure_enumerate_role_definitionsA
Enumerate Azure RBAC role definitions including custom roles. Identifies dangerous wildcard permissions (Actions: ['*']), overly broad custom roles, and privilege escalation paths via PassRole/roleAssignments-write. Checks all role definitions scoped to the subscription.
| Name | Required | Description | Default |
|---|---|---|---|
| subscriptionId | Yes | Azure subscription ID | |
| includeBuiltIn | No | Include built-in role definitions in output. Default: false (custom roles only) | |
| format | No | Output format: 'markdown' (default) or 'json' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It states it 'checks' role definitions and identifies security issues, implying a read-only operation, but does not explicitly declare read-only nature, permission requirements, or potential side effects. The security focus is clear, but transparency about operation type is lacking.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with three sentences, front-loading the primary purpose and then adding specific security details. Every sentence adds value, and there is no redundancy or unnecessary fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description covers the key purpose and security features. However, it does not explain the return structure (e.g., list of definitions) or the impact of the 'format' parameter. It is complete enough for an agent to understand the tool's value, but missing output details limits completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds context about 'custom roles' which relates to the includeBuiltIn parameter, but does not provide additional semantics beyond what the schema already describes. No enrichment of parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies the tool's purpose: enumerating Azure RBAC role definitions, including custom roles. It further distinguishes itself by highlighting security-focused capabilities such as identifying wildcard permissions and privilege escalation paths, which sets it apart from sibling tools like azure_enumerate_rbac_assignments.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for security auditing of role definitions but lacks explicit guidance on when to use this tool versus alternatives (e.g., azure_analyze_rbac_privesc). No when-not-to-use or exclusion criteria are provided, leaving the agent to infer context from the name and sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
azure_enumerate_service_principalsA
ENHANCED v1.14.0 Enumerate service principals with Azure RBAC role assignments (cloud infrastructure focus). Analyzes: role assignments on subscriptions/resource groups, privilege escalation risks (Owner/Contributor roles), multi-subscription access patterns, orphaned role assignments. NEW: Credential hygiene validation (expiry warnings), over-privileged principal detection, cross-subscription access analysis. Returns security findings with risk prioritization.
| Name | Required | Description | Default |
|---|---|---|---|
| subscriptionId | Yes | Azure subscription ID (used for authentication context) | |
| validateSecrets | No | Validate service principal credential expiry (default: true). Note: Requires Application.Read permissions for full validation. | |
| expiryWarningDays | No | Days before expiry to trigger warning (default: 30). Values: 30, 60, 90. | |
| includePrivilegeAnalysis | No | Analyze privilege escalation risks via RBAC role assignments (default: true). | |
| format | No | Output format: 'markdown' (default, human-readable) or 'json' (machine-readable) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are empty, so the description must convey behavior. It mentions 'enumerate' suggesting read-only, and includes a permission requirement for credential validation in parameter descriptions. However, it does not explicitly state that the tool is read-only, nor does it disclose rate limits or API impact. The description is adequate but not thorough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is relatively concise, using bullet-style lists for features. It includes a version tag 'ENHANCED v1.14.0' which is unnecessary but not harmful. Each sentence contributes information, though the 'NEW:' prefix is somewhat redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 5 parameters and no output schema, the description gives a good overview of analysis areas and new features. However, it lacks detail on the structure of returned security findings (e.g., fields, risk prioritization format), which is necessary for effective use. Support for the output format parameter (markdown/json) is not explained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with detailed parameter descriptions, giving baseline 3. The description adds context by linking parameters to features like credential hygiene (validateSecrets, expiryWarningDays) and privilege analysis (includePrivilegeAnalysis), enhancing understanding beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool enumerates service principals with RBAC role assignments for security analysis. It lists specific analysis areas (privilege escalation, multi-subscription access, etc.), distinguishing it from sibling tools like azure_enumerate_rbac_assignments that focus only on role assignments without service principal context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for security auditing of service principals but provides no explicit guidance on when to use this tool versus alternatives like azure_enumerate_managed_identities or azure_analyze_rbac_privesc. No exclusions or when-not-to-use information is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
azure_enumerate_subscriptionsB
Enumerate all Azure subscriptions accessible with current credentials. Returns subscription ID, name, state, and tenant ID.
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | Output format: 'markdown' (default, human-readable) or 'json' (machine-readable) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral disclosure. It mentions the tool returns specific fields and uses current credentials, but does not state whether the operation is read-only, has side effects, or requires specific permissions. The implied read-only nature from 'Enumerate' is not made explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences, front-loaded with the action and scope, and no unnecessary words. Every sentence provides value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (1 optional parameter, no output schema), the description is mostly complete, covering purpose, scope, and return fields. It could be improved by mentioning the optional format parameter, but the schema compensates.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% coverage of the single optional parameter 'format' with a complete description. The tool description adds no extra meaning beyond the schema, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verb 'Enumerate' and resource 'Azure subscriptions', clearly stating the scope ('accessible with current credentials') and returned fields. It distinguishes itself from sibling tools like azure_analyze_* and other azure_enumerate_* tools by focusing solely on subscriptions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool versus alternatives, nor does it mention prerequisites or exclusions. It implies usage for listing subscriptions, but lacks explicit guidance, relying solely on context from sibling tool names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
azure_generate_security_reportA
ENHANCED v1.14.0 Generate comprehensive security assessment report from scan results. NEW: fullScan parameter now runs ALL 40 security tools (was 34)! Quick scan (default) runs 4 core tools. Comprehensive scan (fullScan: true) runs ALL 40 tools including: Storage (with SAS+WORM), NSG (with service endpoints+LB), SQL (PostgreSQL/MySQL/Redis), KeyVault, VMs, CosmosDB, ACR, AKS, RBAC, Service Principals (RBAC-based), Managed Identities (with federation), Function Apps (with Event Grid/Service Bus), Backup Security (with ASR), VNet Peering, Private Endpoints, Diagnostic Settings, Defender Coverage, Policy Compliance, and more. Produces executive summary, risk prioritization, findings by severity (CRITICAL/HIGH/MEDIUM/LOW), remediation matrix, compliance mapping (CIS/NIST). Supports PDF, HTML, CSV, JSON export.
| Name | Required | Description | Default |
|---|---|---|---|
| subscriptionId | Yes | Azure subscription ID to report on | |
| resourceGroup | No | Optional: Filter by specific resource group | |
| format | No | Output format: 'markdown' (default), 'json', 'html', 'pdf', or 'csv' | |
| outputFile | No | Optional: Save report to file (e.g., C:\\reports\\security-report.pdf) | |
| fullScan | No | Run comprehensive scan using all 40 security tools (v1.14.0: +6 new tools including Backup, VNet Peering, Private Endpoints, Diagnostic Settings, Defender, Policy). Default: false for quick 4-tool scan. Includes: VMs, AKS, ACR, CosmosDB, RBAC, Managed Identities, Public IPs + core scans + new v1.14.0 enhancements | |
| includeRemediation | No | Include detailed remediation guidance (default: true) | |
| includeCompliance | No | Include compliance framework mapping (default: true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Describes outputs (executive summary, findings, etc.) and formats. Does not disclose potential side effects (e.g., cost, time, permissions) beyond what it does. Could be more transparent about operational impact.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is long and detailed, using bold and lists effectively. While informative for a complex tool, it could be more concise. Front-loads version and main purpose. Justified length but not optimal for quick scanning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given complexity (7 params, no output schema), description adequately explains what the tool produces (executive summary, findings by severity, remediation, compliance) and output formats. Could clarify how report is returned (e.g., file path, inline), but overall complete for a security report generator.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but description adds significant context beyond schema: explains that fullScan runs 40 tools versus 4 for quick scan, provides examples for outputFile, and details what 'comprehensive' includes. Enhances understanding of parameter behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'generate comprehensive security assessment report', distinguishes quick vs full scan, and lists many specific tools included. Differentiates from sibling tools which are focused on individual analyses.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit guidance on when to use quick scan (default) vs full scan (fullScan: true). Implicitly contrasts with specific sibling tools by offering a comprehensive overview. Lacks explicit 'when not to use' or alternatives, but context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
azure_get_aks_credentialsA
Extract AKS cluster credentials and kubeconfig for kubectl access. Returns: cluster FQDN, API server endpoint, admin credentials (if available), service principal details, managed identity info. OFFENSIVE USE: Obtain cluster access for manual kubectl exploitation, RBAC testing, pod deployment, secret extraction.
| Name | Required | Description | Default |
|---|---|---|---|
| subscriptionId | Yes | Azure subscription ID | |
| resourceGroup | Yes | Resource group name containing AKS cluster | |
| clusterName | Yes | AKS cluster name | |
| adminAccess | No | Attempt to get admin credentials (requires Azure RBAC permissions). Default: false (user credentials) | |
| format | No | Output format: 'markdown' (default, human-readable) or 'json' (machine-readable) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses that the tool extracts credentials and returns cluster details, and mentions admin credentials are only available with proper permissions. However, it does not mention any destructive side effects, rate limits, or prerequisites beyond what the schema implies.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two tight sentences plus a one-line use-case note. It front-loads the main action and all content is relevant. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 5 parameters and no output schema, the description lists return values but does not explain the format or structure of the kubeconfig. For a tool that returns complex data, more detail on how credentials are returned (e.g., as text, file, or structured data) would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description does not add extra meaning to parameters; it only mentions adminAccess implicitly via the 'admin credentials (if available)' note. No additional guidance beyond schema is provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool extracts AKS cluster credentials and kubeconfig for kubectl access. It lists return values and distinguishes itself from sibling tools like azure_scan_aks_full or azure_analyze_rbac_privesc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes an 'OFFENSIVE USE' section indicating when to use for exploitation, but it does not explicitly state when not to use the tool or compare it to alternatives like azure_get_resource_details. No exclusion criteria are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
azure_get_resource_detailsA
Get detailed configuration and properties of a specific Azure resource. Useful for analyzing security settings, network configs, encryption status, etc.
| Name | Required | Description | Default |
|---|---|---|---|
| subscriptionId | Yes | Azure subscription ID | |
| resourceGroup | Yes | Resource group name | |
| resourceProvider | Yes | Resource provider (e.g., Microsoft.Storage, Microsoft.Compute, Microsoft.Network) | |
| resourceType | Yes | Resource type (e.g., storageAccounts, virtualMachines, networkSecurityGroups) | |
| resourceName | Yes | Resource name | |
| format | No | Output format: 'markdown' (default, human-readable) or 'json' (machine-readable) |
TDQS
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 'Get detailed configuration and properties' without revealing whether the tool is read-only, what authentication or permissions are needed, or any rate limits. This lack of context could mislead an agent into expecting modifications or missing required permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: one sentence for the core purpose and one sentence for use cases. It is well-structured and front-loaded, with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having 6 parameters and no output schema, the description is minimally adequate. It mentions what the tool returns ('detailed configuration and properties') but does not specify the format or structure of the output. Given the complexity of Azure resources and the lack of output schema, more detail on return values would be beneficial.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description does not add significant meaning beyond the schema; it only includes an example of resource provider values already listed in the schema. The parameter descriptions in the schema are self-explanatory, so the description offers limited additional value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action ('Get detailed configuration and properties') and the resource type ('specific Azure resource'). It also provides concrete use cases ('analyzing security settings, network configs, encryption status') which differentiates it from sibling tools that are more specialized analysis tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for general resource detail retrieval ('Useful for analyzing...'), which distinguishes it from the siblings that focus on specific analysis (e.g., azure_analyze_nsg_rules). However, it does not explicitly state when not to use this tool or mention alternative tools for more specific needs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
azure_helpA
Display comprehensive help information about all available Azure penetration testing tools and usage examples
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, but the description accurately describes a read-only, informational behavior. There is no need for additional disclosure for a help tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no fluff, efficiently conveying the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no parameters, the description is complete enough. It could mention return format, but not essential for a simple help tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist; schema coverage is 100%. The description adds meaning by specifying that help covers all available tools and usage examples, setting clear expectations.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it displays comprehensive help for all available Azure penetration testing tools and usage examples, which distinguishes it from the many analysis and enumeration sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
While no explicit when-to-use or alternatives are given, the name and description imply it should be used when the agent needs help or examples for other tools. The context makes it obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
azure_list_active_locationsA
Discover which Azure locations have resources deployed. Quick scan to identify active regions before deep scanning. Checks resource groups, VMs, storage accounts, and AKS clusters.
| Name | Required | Description | Default |
|---|---|---|---|
| subscriptionId | Yes | Azure subscription ID | |
| scanMode | No | Preset scan mode: 'common' (10 locations) or 'all' (45+ locations). Default: common | |
| format | No | Output format: 'markdown' (default, human-readable) or 'json' (machine-readable) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavior. It states it checks resource groups, VMs, storage accounts, and AKS clusters, and mentions scan modes. However, it does not explicitly state that the tool is read-only or describe output behavior beyond format options in the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences. The main purpose is front-loaded. The second sentence adds context, but the phrase 'Quick scan' is somewhat redundant. No unnecessary details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description explains what the tool does but lacks details about output format (though schema provides options). For a simple list tool, it is mostly complete, but could benefit from specifying that the output lists region names or statuses.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameters are already documented. The description adds context about what resources are checked but does not elaborate on parameter usage beyond the schema. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Discover which Azure locations have resources deployed.' It specifies the verb (discover/scan) and resource (Azure locations), and distinguishes from sibling tools like azure_scan_all_locations by focusing on active regions for quick identification.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Quick scan to identify active regions before deep scanning' provides clear usage context, implying this tool is a preliminary step. However, it does not explicitly mention when not to use it or list alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
azure_scan_acr_securityA
Comprehensive Azure Container Registry (ACR) security scanner. Checks: admin user enabled (high risk), public network access, vulnerability scanning (Defender for Containers), content trust (image signing), network rules, anonymous pull access, registry poisoning risks (vulnerable images, weak access policies, mutable tags).
| Name | Required | Description | Default |
|---|---|---|---|
| subscriptionId | Yes | Azure subscription ID | |
| resourceGroup | No | Optional: Filter by specific resource group | |
| registryName | No | Optional: Specific ACR registry name to analyze | |
| scanMode | No | Scan mode: 'security' (basic ACR config), 'poisoning' (supply chain risks), 'all' (comprehensive analysis) | |
| format | No | Output format: 'markdown' (default, human-readable) or 'json' (machine-readable) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With empty annotations, the description bears full burden for behavioral disclosure. It lists checks (read-like operations) but does not mention side effects, permissions, rate limits, or whether it modifies state. The 'Checks' phrasing implies read-only, but this is not explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, consisting of one sentence followed by a focused list. It front-loads the primary purpose and then details checks. Minor formatting improvements (e.g., bullet list) could enhance readability, but overall it is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers many security checks but lacks explanation of output format, error handling, or prerequisites (e.g., required permissions). Given the complexity (5 parameters, no output schema), more detail on what the scan produces would be helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the input schema already describes all parameters. The tool description adds no further detail about parameter usage or semantics beyond the schema, meeting the baseline but not exceeding it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose as a 'Comprehensive Azure Container Registry (ACR) security scanner' and enumerates specific checks (admin user, public access, vulnerability scanning, etc.), making it highly specific to ACR security. The name and description together differentiate it from sibling tools that target other Azure resources like CDN or container apps.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance is given on when to use this tool versus alternatives such as azure_analyze_storage_security or azure_scan_all_locations. The description implies usage for ACR security scanning, but lacks context on prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
azure_scan_aks_fullA
π COMPREHENSIVE AKS SECURITY SCAN - Flexible AKS security analysis with multiple scan modes: 'full' (all checks), 'live' (K8s API analysis), 'imds' (IMDS exploitation), 'pod_identity' (identity analysis), 'admission' (admission controller bypass). Covers cluster security, RBAC, secrets, service accounts, IMDS access, identity risks, and policy violations.
| Name | Required | Description | Default |
|---|---|---|---|
| subscriptionId | Yes | Azure subscription ID | |
| resourceGroup | Yes | Resource group containing the AKS cluster | |
| clusterName | Yes | AKS cluster name | |
| scanMode | No | Scan mode: 'full' (all security checks), 'live' (live K8s API scanning), 'imds' (IMDS exploitation), 'pod_identity' (Pod Identity/Workload Identity analysis), 'admission' (admission controller bypass detection) | |
| namespace | No | Specific namespace to scan (for live/imds modes, scans all if not specified) | |
| podName | No | Specific pod to execute from (for imds mode, auto-selects if not specified) | |
| deepScan | No | Enable deep resource enumeration (for imds mode). Default: true | |
| testDataPlane | No | Test actual data plane access (for imds mode). Default: true | |
| exportTokens | No | Export stolen tokens to temp file (for imds mode). Default: false | |
| deepDataPlane | No | Actually READ secret values, DOWNLOAD blob contents (for imds mode). Default: false | |
| scanAllPods | No | Scan ALL pods cluster-wide for IMDS exposure (for imds mode). Default: false | |
| format | No | Output format: 'markdown' (default, human-readable) or 'json' (machine-readable) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It mentions scan modes and some behaviors (e.g., for imds mode: deep scan, export tokens) but does not disclose potential side effects, required credentials, or destructive nature. More transparency needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is dense but front-loaded with emoji and capitals. It conveys modes and coverage quickly in a single paragraph. Some structuring would improve readability, but overall efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 12 parameters and no output schema, description should explain return values. It does not describe output format content (e.g., report structure). The 'format' parameter is noted but not what the output contains. Missing comprehensive usage for optional parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, baseline is 3. Description adds some value by explaining scan modes and parameters like 'scanMode' enum values, but does not significantly enhance understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool performs a comprehensive AKS security scan with specific verb 'scan' and resource 'AKS'. It lists multiple scan modes and coverage areas, distinguishing it from sibling tools like 'azure_scan_aks_policy_bypass' by its scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description explains scan modes but does not provide explicit guidance on when to use this tool versus alternatives like 'azure_scan_aks_policy_bypass' or 'azure_analyze_rbac_privesc'. Usage context is implied but not clearly differentiated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
azure_scan_aks_policy_bypassARead-only
Detect Open Policy Agent (OPA) and Kyverno policy bypass vulnerabilities including constraint violations, policy exceptions abuse, and enforcement gaps. Analyzes Gatekeeper constraints, Kyverno policies, audit modes, and webhook configurations for security weaknesses.
| Name | Required | Description | Default |
|---|---|---|---|
| subscriptionId | Yes | Azure subscription ID | |
| resourceGroup | Yes | Resource group containing the AKS cluster | |
| clusterName | Yes | AKS cluster name | |
| format | No | Output format: 'markdown' (default), 'json', or 'table' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=true and destructiveHint=false, and the description aligns with a read-only scan. It adds transparency by detailing what is analyzed (Gatekeeper constraints, Kyverno policies, audit modes, webhook configurations), but does not mention potential time/resource requirements or permission needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with key action and scope. Every word adds value, with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is complete for a read-only scan tool, covering what vulnerabilities are detected and what is analyzed. However, without an output schema, it could be improved by briefly describing the output format (e.g., report containing findings).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides 100% coverage with descriptions for all four parameters. The tool description adds no additional info beyond the schema, so the parameter semantics are adequately covered by the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it detects OPA and Kyverno policy bypass vulnerabilities, listing specific checks (constraint violations, policy exceptions abuse, enforcement gaps). It names the technologies and resources analyzed, making the tool's purpose distinct from sibling tools like azure_scan_aks_full.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for policy bypass detection but does not explicitly guide when to use this tool versus alternatives (e.g., azure_scan_aks_full). No 'when not to use' or contextual cues are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
azure_scan_all_locationsA
Scan multiple Azure locations for resources. Supports: vms, storage, nsgs, aks, sql, keyvaults, public_ips, all. Specify custom locations OR use presets ('common'=10 locations, 'all'=45+ locations).
| Name | Required | Description | Default |
|---|---|---|---|
| subscriptionId | Yes | Azure subscription ID | |
| resourceType | Yes | Type of resource to scan: vms, storage, nsgs, aks, sql, keyvaults, public_ips, all | |
| locations | No | Custom locations to scan (comma-separated). Examples: 'eastus' or 'eastus,westeurope,southeastasia'. Use 'common' for 10 main locations or 'all' for 45+ locations. | |
| format | No | Output format: 'markdown' (default, human-readable) or 'json' (machine-readable) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are empty, so the description carries full burden. It describes scanning behavior but does not explicitly state that the tool is read-only or disclose any side effects, rate limits, or permissions needed. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences front-load the purpose and key usage details. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description does not explain return format, but the output format parameter is defined. The description is complete enough for a scanning tool with clear presets and resource types, though pagination or performance notes could be beneficial.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage, baseline is 3. The description adds value beyond schema by explaining location presets and giving examples, and clarifying the scope of 'common' and 'all'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it scans multiple Azure locations for resources, lists supported resource types (vms, storage, nsgs, aks, sql, keyvaults, public_ips, all), and distinguishes from sibling tools that focus on single resource types or specific analysis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear guidance on using presets ('common' for 10 locations, 'all' for 45+ locations) and custom locations, but does not explicitly state when not to use this tool or mention alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
azure_scan_azure_devopsB
Azure DevOps security scanner. Enumerates: organizations, projects, repositories, pipelines, service connections, variable groups, PAT tokens. Checks for: exposed secrets in repos, over-privileged service connections, insecure pipeline configurations, leaked credentials. OFFENSIVE USE: Find deployment credentials, API keys in source code, service principal secrets in pipelines.
| Name | Required | Description | Default |
|---|---|---|---|
| organizationUrl | Yes | Azure DevOps organization URL (e.g., https://dev.azure.com/yourorg) | |
| personalAccessToken | Yes | Personal Access Token (PAT) for authentication - requires Read access to Code, Build, Release | |
| scanRepositories | No | Scan repositories for hardcoded secrets (default: true) | |
| scanPipelines | No | Scan pipelines for exposed credentials (default: true) | |
| format | No | Output format: 'markdown' (default, human-readable) or 'json' (machine-readable) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With empty annotations, the description carries full burden. It mentions enumeration and checking, but does not disclose whether the tool is read-only, discusses side effects, or details authentication beyond PAT requirements. Some transparency but incomplete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with bullet points and a clear separation of scanning and offensive use. Could be slightly more concise, but front-loads the main purpose effectively.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (multiple scanning areas) and no output schema, the description covers enumerations and checks adequately. However, it lacks usage context and behavioral traits like idempotency, making it somewhat incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline 3. The description repeats scanning focus but does not add new semantic meaning beyond what the schema already provides for parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it is an 'Azure DevOps security scanner' and lists specific enumerations and checks. It distinguishes from sibling tools by focusing on Azure DevOps, with a specific verb 'scan' and resource 'Azure DevOps'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. The 'OFFENSIVE USE' note hints at scenarios but does not clarify when not to use or compare with sibling tools like azure_scan_aks_full.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
azure_scan_cdn_securityB
Detect Azure CDN and Front Door misconfigurations including origin exposure, caching exploits, WAF bypass, routing manipulation, custom domain validation bypass, and DDoS protection gaps
| Name | Required | Description | Default |
|---|---|---|---|
| subscriptionId | Yes | Azure subscription ID | |
| resourceGroup | No | Optional: Filter by specific resource group | |
| profileName | No | Optional: Target specific CDN/Front Door profile | |
| format | No | Output format: 'markdown' (default), 'json', or 'table' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must carry the full behavioral burden. It implies a read-only scan ('detect') but does not explicitly confirm no side effects, required permissions, rate limits, or output structure. For a security scanner, this is minimally adequate but leaves uncertainty.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single focused sentence that lists multiple vulnerability categories. It is concise and front-loaded with action and target. Could benefit from slight restructuring (e.g., bullet points) but remains efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a security scanning tool and the absence of an output schema or annotations, the description covers purpose but omits typical output format, prerequisite permissions, and interpretation guidance. It is minimally complete but lacks richness for optimal agent decision-making.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with clear descriptions for all 4 parameters (subscriptionId, resourceGroup, profileName, format). The description adds no extra parameter semantics beyond the schema, achieving the baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool detects misconfigurations for Azure CDN and Front Door, listing specific vulnerability types (origin exposure, caching exploits, WAF bypass, etc.). It effectively distinguishes itself from sibling tools like azure_scan_sql_databases or azure_scan_acr_security by specifying the exact Azure services it targets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, no prerequisites, and no indications of scenarios where it should not be used. Among many similar scanning siblings, this omission forces the agent to guess selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
azure_scan_container_apps_securityB
Detect Azure Container Apps vulnerabilities including ingress exposure, secret management flaws, authentication bypass, environment variable leakage, Dapr misconfigurations, and scale rule exploits
| Name | Required | Description | Default |
|---|---|---|---|
| subscriptionId | Yes | Azure subscription ID | |
| resourceGroup | No | Optional: Filter by specific resource group | |
| containerAppName | No | Optional: Target specific container app | |
| format | No | Output format: 'markdown' (default), 'json', or 'table' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are empty, so the description carries full burden. It implies a read-only scan but doesn't explicitly confirm no modifications or disclose any side effects, permissions, or rate limits. The list of vulnerability types is useful but insufficient for complete transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, avoiding unnecessary verbosity. However, the long list of vulnerability categories could be better formatted (e.g., bullet points) for readability, but overall it is concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 4 parameters, 1 required, and no output schema, the description lacks information about the return value structure or how to interpret results. It does not explain output format behavior beyond the enum, leaving the agent with gaps in understanding the complete tool behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds no additional meaning beyond what the schema already provides; it only lists vulnerability categories without explaining how parameters like resourceGroup or containerAppName affect scanning scope or output.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool detects vulnerabilities in Azure Container Apps, listing specific categories like ingress exposure and secret management flaws. This makes the purpose explicit and distinct from sibling tools which target other Azure resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. It does not mention scenarios where a different tool would be more appropriate, nor does it provide context for prerequisites or limitations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
azure_scan_gitops_securityB
Detect Azure GitOps (Flux) vulnerabilities including source repository exposure, kustomization injection, Helm release manipulation, secret leakage, and Git credential exposure in AKS clusters
| Name | Required | Description | Default |
|---|---|---|---|
| subscriptionId | Yes | Azure subscription ID | |
| resourceGroup | Yes | Resource group containing the AKS cluster | |
| clusterName | Yes | AKS cluster name to scan for GitOps configurations | |
| format | No | Output format: 'markdown' (default), 'json', or 'table' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are empty, so the description must fully disclose behavior. It does not state whether the tool is read-only, what permissions are required, or any side effects. The description merely lists vulnerability categories without behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no fluff, but it could be structured to separate purpose from capabilities. Still, it is concise and front-loaded with the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema is provided, and the description does not explain the return format or results. The optional 'format' parameter's impact is not clarified. The tool is moderately complex (4 parameters), but the description lacks completeness regarding output and prerequisites.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameters are already documented. The description adds no extra meaning beyond the schema (e.g., does not explain what subscriptionId or clusterName implies). Baseline 3 is appropriate as the description does not augment parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool detects Azure GitOps (Flux) vulnerabilities and lists specific vulnerability types. It distinguishes itself from sibling tools like azure_scan_aks_full and azure_scan_azure_devops by focusing on Flux-specific issues.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. With many sibling tools, there is no mention of when not to use it or which scenarios are appropriate. For example, it does not clarify that this is for Flux-specific vulnerabilities, not general AKS security.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
azure_scan_managed_disksA
Scan Azure Managed Disks for security misconfigurations. Checks: encryption type (platform-managed vs customer-managed key), public network access enabled (allows arbitrary download), orphaned disks (unattached β data exposure risk), disk state, OS vs data disk classification. CRITICAL: publicNetworkAccess=Enabled on unattached disks is a direct data exfiltration path.
| Name | Required | Description | Default |
|---|---|---|---|
| subscriptionId | Yes | Azure subscription ID | |
| resourceGroup | No | Optional: Filter by specific resource group | |
| orphanedOnly | No | Only return unattached (orphaned) disks. Default: false | |
| format | No | Output format: 'markdown' (default) or 'json' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description bears full responsibility. It discloses specific checks and highlights a critical finding, but lacks details on required permissions, read-only nature, rate limits, or the output structure. Provides intermediate transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no fluff. It front-loads the main action and provides a critical note. Every sentence contributes meaning without waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given four parameters and no output schema, the description covers the checks performed but does not specify output format details, severity levels, or how results are presented. Missing some context for full completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds value by explaining what the tool checks (encryption, public access, orphaned status, state, classification) beyond the parameter descriptions, enhancing semantic understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies the tool scans Azure Managed Disks for security misconfigurations, listing specific checks (encryption type, public network access, orphaned disks, disk state, classification). This distinctly differentiates it from sibling tools targeting other Azure resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for security scanning of managed disks but does not explicitly state when to use it versus alternatives among the siblings. No exclusions or alternative tool references are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
azure_scan_sql_databasesA
ENHANCED v1.14.0 Comprehensive database security scanner supporting SQL Server, PostgreSQL, MySQL, and Azure Cache for Redis. Checks: TDE/SSL encryption status, firewall rules (detects 0.0.0.0-255.255.255.255 allow-all), Azure AD authentication vs SQL/password auth, auditing enabled, public endpoint exposure, threat detection, Redis access keys, Redis SSL enforcement. Returns CRITICAL/HIGH/MEDIUM findings with CWE references and attack vectors.
| Name | Required | Description | Default |
|---|---|---|---|
| subscriptionId | Yes | Azure subscription ID | |
| resourceGroup | No | Optional: Filter by specific resource group | |
| includePostgreSQL | No | Include Azure Database for PostgreSQL security analysis. Default: true | |
| includeMySQL | No | Include Azure Database for MySQL security analysis. Default: true | |
| includeRedis | No | Include Azure Cache for Redis security analysis. Default: true | |
| format | No | Output format: 'markdown' (default, human-readable) or 'json' (machine-readable) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses that the tool scans and returns findings with severity levels and references, which is adequate for a read-only scanner.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single paragraph that efficiently lists all checks without superfluous content. It is front-loaded with version info, which is not critical but does not detract.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description adequately explains return format (findings with CWE references and attack vectors). All parameters are documented in schema, and the description covers the tool's scope comprehensively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The tool description does not add additional parameter-specific information beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it's a 'Comprehensive database security scanner' supporting specific database types and lists detailed checks, distinguishing it from sibling tools which target other Azure services.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for database security scanning but does not explicitly state when to use this tool over alternatives. The sibling context implies usage scope.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
azure_scan_storage_containersA
Deep scan of storage account containers and blobs. Lists all containers, checks container-level public access, enumerates blobs, detects sensitive files (backups, configs, keys: *.bak, web.config, appsettings.json, *.key, *.pem, *.sql). Identifies SAS tokens, checks blob encryption, finds orphaned blobs. CRITICAL for data exposure assessment.
| Name | Required | Description | Default |
|---|---|---|---|
| subscriptionId | Yes | Azure subscription ID | |
| resourceGroup | No | Optional: Filter by specific resource group | |
| storageAccountName | No | Optional: Scan specific storage account. If omitted, scans all storage accounts with public blob access. | |
| maxBlobsPerContainer | No | Optional: Maximum blobs to list per container (default: 100, prevents timeout on large containers) | |
| format | No | Output format: 'markdown' (default, human-readable) or 'json' (machine-readable) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully discloses the tool's behavior: lists containers, checks public access, enumerates blobs, detects sensitive files with specific patterns, identifies SAS tokens, checks encryption, and finds orphaned blobs. It does not mention permissions or side effects, but as a read-only scan, this is sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single paragraph but front-loaded with the main purpose and then lists specifics. It is concise without unnecessary words, though bullet points could improve readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 5 parameters, no output schema, and empty annotations, the description covers the tool's scope, detection capabilities, and output format options. It mentions default behavior for storageAccountName and maxBlobsPerContainer. Minor absence of performance or permission notes, but overall complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with parameter descriptions, but the description adds valuable context: e.g., 'If omitted, scans all storage accounts with public blob access' for storageAccountName, and default maxBlobsPerContainer value. This enhances understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Deep scan of storage account containers and blobs' and lists specific actions like listing containers, checking public access, detecting sensitive files, identifying SAS tokens, etc. It explicitly states it's 'CRITICAL for data exposure assessment', which differentiates it from siblings like 'azure_analyze_storage_security' that might be broader.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for data exposure assessment but does not explicitly state when to use this tool versus alternatives like 'azure_analyze_storage_security'. No exclusion criteria or context for when not to use it is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
azure_validate_diagnostic_settingsA
NEW in v1.14.0 Validate diagnostic settings and logging compliance across Azure resources. Checks: diagnostic settings enabled, log destinations (Log Analytics, Storage, Event Hub), retention policies, critical log categories enabled (Security, Audit, Administrative), platform metrics collection, workspace connectivity. Returns: logging coverage gaps, compliance with NIST/CIS logging requirements, resource types without diagnostics, retention policy violations.
| Name | Required | Description | Default |
|---|---|---|---|
| subscriptionId | Yes | Azure subscription ID | |
| resourceGroup | No | Optional: Filter by specific resource group | |
| resourceType | No | Optional: Filter by resource type (e.g., 'Microsoft.Network/networkSecurityGroups') | |
| checkCompliance | No | Check compliance with NIST/CIS logging requirements. Default: true | |
| format | No | Output format: 'markdown' (default, human-readable) or 'json' (machine-readable) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With empty annotations, the description carries full burden. It describes what the tool checks and returns, but does not explicitly state that it is read-only or mention any side effects, authentication needs, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, front-loaded with purpose, and uses a list format for clarity. It is slightly verbose with the version note, but overall efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description provides a good summary of returns (gaps, compliance). It covers the tool's scope well, though it could detail return structure or errors.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Parameter coverage in schema is 100%, so description adds little beyond listing checks. Baseline 3 is appropriate as the description does not significantly enhance parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Validate diagnostic settings and logging compliance across Azure resources.' It lists specific checks and returns, distinguishing it from sibling tools that focus on other Azure security aspects.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool (e.g., to check logging compliance) but lacks explicit guidance on when not to use it or how it compares to alternatives. No siblings are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
azure_validate_policy_complianceA
NEW in v1.14.0 Validate Azure Policy compliance and governance controls. Checks: policy assignments (scope: subscription/resource group/resource), compliance state (compliant/non-compliant/conflict/exempt), policy effects (deny, audit, append, modify), built-in vs custom policies, policy initiative (set) assignments, exemptions and exceptions, audit log retention. Returns: policy violations by severity, non-compliant resources, governance gaps, exemption review, compliance trends.
| Name | Required | Description | Default |
|---|---|---|---|
| subscriptionId | Yes | Azure subscription ID | |
| resourceGroup | No | Optional: Filter by specific resource group | |
| policyScope | No | Scope of policy analysis. Default: subscription | |
| includeExemptions | No | Include policy exemptions and waivers in analysis. Default: true | |
| format | No | Output format: 'markdown' (default, human-readable) or 'json' (machine-readable) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description partially bears the behavioral transparency burden. It indicates a validation/analysis operation (likely read-only) and lists what is checked and returned, but does not explicitly disclose read-only nature, required permissions, or potential performance impact.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, using two sentences to convey purpose and scope. The first sentence clearly states the main action, and the second lists items. It is front-loaded but could benefit from bullet points or clearer separation for readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description compensates by listing return items (e.g., policy violations, non-compliant resources). It covers the tool's scope and outputs reasonably well, though it could detail output structure or format specifics more.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with each parameter described adequately in the schema. The description does not add additional meaning or usage context beyond what the schema already provides, resulting in a baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Validate Azure Policy compliance and governance controls.' It lists specific checks and returns, distinguishing it from sibling tools that focus on other Azure services or general enumeration.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for policy compliance validation but does not explicitly state when to use this tool versus alternatives. No guidance on when not to use or mention of alternative tools, leaving context inferred rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
azure_validate_private_endpointsA
NEW in v1.14.0 Validate Private Endpoint and Private Link security configurations. Checks: approved/pending connections, network policies enforcement, DNS integration (private DNS zones), public access bypass, subnet delegation, private endpoint policies, service-specific configurations (Storage, SQL, KeyVault, CosmosDB). Returns: private endpoint coverage, pending approval risks, DNS misconfiguration warnings, public access exposure.
| Name | Required | Description | Default |
|---|---|---|---|
| subscriptionId | Yes | Azure subscription ID | |
| resourceGroup | No | Optional: Filter by specific resource group | |
| serviceTy | No | Optional: Filter by service type (e.g., 'Microsoft.Storage', 'Microsoft.Sql') | |
| validateDNS | No | Validate private DNS zone configuration and integration. Default: true | |
| format | No | Output format: 'markdown' (default, human-readable) or 'json' (machine-readable) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It describes validation checks and returns, but does not explicitly state that the tool is read-only or non-destructive. Missing details on authentication requirements or rate limits. Adequate but not explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is concise and front-loaded with version info. It lists checks and returns efficiently without wasted sentences. Could benefit from structured bullet points for readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers the purpose and return types, but does not explain the 'format' or 'validateDNS' parameters or output structure. With no output schema, the description should detail the format of returned data.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameters are already documented. The description adds little beyond the schema; it does not provide examples or clarify values for 'serviceTy' or format. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Validate' and the resource 'Private Endpoint and Private Link security configurations'. It lists specific checks and return values, distinguishing it from sibling tools that analyze other Azure services.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool vs alternatives. While the name and description imply private endpoint validation, it does not state when not to use it or suggest sibling tools for other scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Most tools have clearly distinct purposes targeting specific Azure resources or security aspects. Minor overlap exists between tools like azure_analyze_nsg_rules and azure_analyze_firewall_policies, but descriptions clarify the differences.
All tools follow a consistent verb_noun pattern using snake_case with the 'azure_' prefix (e.g., azure_analyze_app_service_security, azure_enumerate_subscriptions). No mixing of styles.
With 43 tools, the set is on the high side but justified for a comprehensive Azure security toolkit. The count borders on heavy, but each tool targets a specific service or attack vector, making it reasonable.
The tool surface covers a broad range of Azure services and security aspects including networking, compute, storage, databases, identity, containers, and policies. Minor gaps exist, such as limited coverage for Azure Active Directory beyond service principals.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Threat modeling, code/cloud/pipeline scanning, shadow-AI discovery, compliance checks and fixes.
CloudOracle - 14-tool multi-cloud compliance MCP: AWS, Azure, GCP posture, IAM, configs.
CTEM for your Trusteed tenant: security summary, findings, compliance gaps, and scans via OAuth.
IaC attack-path auditor: finds internet-to-crown-jewel chains in Terraform/CFN/K8s.
Related MCP Servers
- -licenseNot gradedqualityNot gradedmaintenanceProvides access to 13+ penetration testing and security audit tools through a unified MCP interface. Enables security professionals to perform vulnerability scanning, web fuzzing, network reconnaissance, and other security assessments through containerized tools like Nuclei, Nmap, SQLMap, and FFUF.
- FlicenseBqualityDmaintenanceEnables security auditing, penetration testing, and compliance validation with tools like Semgrep, Trivy, Gitleaks, and OWASP ZAP. Features strict project boundary enforcement and supports OWASP, CIS, and NIST compliance frameworks.7
- AlicenseCqualityDmaintenanceAn automated penetration testing framework that enables intelligent security assessments through reconnaissance, vulnerability scanning, and controlled exploitation. Features AI-driven workflow management with comprehensive reporting for authorized security testing.252797BSD 3-Clause
- FlicenseNot gradedqualityDmaintenanceAn AI-powered security agent that utilizes MCP tools and Groq LLMs to analyze Azure infrastructure, audit security groups, and identify storage misconfigurations. It enables users to perform natural language security assessments and ensure compliance with CIS Azure best practices.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/h4cd0c/stratos-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server